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:
authorDavid Benson [draw.io] <david@jgraph.com>2021-08-27 19:25:13 +0300
committerDavid Benson [draw.io] <david@jgraph.com>2021-08-27 19:25:13 +0300
commit501ab1e18d0afd141e4e95df3ab680b3672b2768 (patch)
treea70fe720d6c18d89e5bf37c75fb5250cab97a222
parent320a5461605275d0503c2b45dc5e5baa83954f01 (diff)
15.0.3 releasev15.0.3
-rw-r--r--ChangeLog7
-rw-r--r--VERSION2
-rw-r--r--src/main/webapp/electron.js2
-rw-r--r--src/main/webapp/js/app.min.js380
-rw-r--r--src/main/webapp/js/diagramly/App.js42
-rw-r--r--src/main/webapp/js/diagramly/DrawioFile.js1
-rw-r--r--src/main/webapp/js/diagramly/Editor.js12
-rw-r--r--src/main/webapp/js/diagramly/EditorUi.js42
-rw-r--r--src/main/webapp/js/diagramly/Minimal.js11
-rw-r--r--src/main/webapp/js/grapheditor/Graph.js2
-rw-r--r--src/main/webapp/js/viewer-static.min.js444
-rw-r--r--src/main/webapp/js/viewer.min.js444
-rw-r--r--src/main/webapp/mxgraph/mxClient.js2
-rw-r--r--src/main/webapp/resources/dia.txt3
-rw-r--r--src/main/webapp/resources/dia_am.txt3
-rw-r--r--src/main/webapp/resources/dia_ar.txt3
-rw-r--r--src/main/webapp/resources/dia_bg.txt3
-rw-r--r--src/main/webapp/resources/dia_bn.txt3
-rw-r--r--src/main/webapp/resources/dia_bs.txt3
-rw-r--r--src/main/webapp/resources/dia_ca.txt3
-rw-r--r--src/main/webapp/resources/dia_cs.txt1
-rw-r--r--src/main/webapp/resources/dia_da.txt3
-rw-r--r--src/main/webapp/resources/dia_de.txt1
-rw-r--r--src/main/webapp/resources/dia_el.txt1
-rw-r--r--src/main/webapp/resources/dia_eo.txt3
-rw-r--r--src/main/webapp/resources/dia_es.txt3
-rw-r--r--src/main/webapp/resources/dia_et.txt3
-rw-r--r--src/main/webapp/resources/dia_eu.txt1
-rw-r--r--src/main/webapp/resources/dia_fa.txt3
-rw-r--r--src/main/webapp/resources/dia_fi.txt3
-rw-r--r--src/main/webapp/resources/dia_fil.txt3
-rw-r--r--src/main/webapp/resources/dia_fr.txt3
-rw-r--r--src/main/webapp/resources/dia_gl.txt3
-rw-r--r--src/main/webapp/resources/dia_gu.txt3
-rw-r--r--src/main/webapp/resources/dia_he.txt3
-rw-r--r--src/main/webapp/resources/dia_hi.txt3
-rw-r--r--src/main/webapp/resources/dia_hr.txt3
-rw-r--r--src/main/webapp/resources/dia_hu.txt3
-rw-r--r--src/main/webapp/resources/dia_i18n.txt1
-rw-r--r--src/main/webapp/resources/dia_id.txt3
-rw-r--r--src/main/webapp/resources/dia_it.txt1
-rw-r--r--src/main/webapp/resources/dia_ja.txt3
-rw-r--r--src/main/webapp/resources/dia_kn.txt3
-rw-r--r--src/main/webapp/resources/dia_ko.txt3
-rw-r--r--src/main/webapp/resources/dia_lt.txt3
-rw-r--r--src/main/webapp/resources/dia_lv.txt3
-rw-r--r--src/main/webapp/resources/dia_ml.txt3
-rw-r--r--src/main/webapp/resources/dia_mr.txt3
-rw-r--r--src/main/webapp/resources/dia_ms.txt3
-rw-r--r--src/main/webapp/resources/dia_my.txt3
-rw-r--r--src/main/webapp/resources/dia_nl.txt3
-rw-r--r--src/main/webapp/resources/dia_no.txt3
-rw-r--r--src/main/webapp/resources/dia_pl.txt3
-rw-r--r--src/main/webapp/resources/dia_pt-br.txt3
-rw-r--r--src/main/webapp/resources/dia_pt.txt3
-rw-r--r--src/main/webapp/resources/dia_ro.txt3
-rw-r--r--src/main/webapp/resources/dia_ru.txt1
-rw-r--r--src/main/webapp/resources/dia_si.txt3
-rw-r--r--src/main/webapp/resources/dia_sk.txt3
-rw-r--r--src/main/webapp/resources/dia_sl.txt3
-rw-r--r--src/main/webapp/resources/dia_sr.txt3
-rw-r--r--src/main/webapp/resources/dia_sv.txt3
-rw-r--r--src/main/webapp/resources/dia_sw.txt3
-rw-r--r--src/main/webapp/resources/dia_ta.txt3
-rw-r--r--src/main/webapp/resources/dia_te.txt3
-rw-r--r--src/main/webapp/resources/dia_th.txt3
-rw-r--r--src/main/webapp/resources/dia_tr.txt3
-rw-r--r--src/main/webapp/resources/dia_uk.txt3
-rw-r--r--src/main/webapp/resources/dia_vi.txt3
-rw-r--r--src/main/webapp/resources/dia_zh-tw.txt3
-rw-r--r--src/main/webapp/resources/dia_zh.txt3
-rw-r--r--src/main/webapp/service-worker.js2
-rw-r--r--src/main/webapp/service-worker.js.map2
73 files changed, 852 insertions, 703 deletions
diff --git a/ChangeLog b/ChangeLog
index 379ced58..8d99d0f0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+27-AUG-2021: 15.0.3
+
+- Fixes missing background images in thumbnails
+- [conf cloud] Adds page edit comment when a diagram is saved from direct edit
+- Fixes issue with application of constraints
+- Updates background image after relevant events
+
26-AUG-2021: 15.0.2
- Fixes special cases for default page format https://github.com/jgraph/drawio/issues/2202
diff --git a/VERSION b/VERSION
index 49bf3b4a..1f231fc2 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-15.0.2 \ No newline at end of file
+15.0.3 \ No newline at end of file
diff --git a/src/main/webapp/electron.js b/src/main/webapp/electron.js
index d107429a..26c550cb 100644
--- a/src/main/webapp/electron.js
+++ b/src/main/webapp/electron.js
@@ -864,7 +864,7 @@ autoUpdater.on('update-available', (a, b) =>
function reportUpdateError(e)
{
- progressBar.detail = 'Error occured while fetching updates. ' + (e && e.message? e.message : e)
+ progressBar.detail = 'Error occurred while fetching updates. ' + (e && e.message? e.message : e)
progressBar._window.setClosable(true);
}
diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js
index d897b222..575aa82c 100644
--- a/src/main/webapp/js/app.min.js
+++ b/src/main/webapp/js/app.min.js
@@ -234,7 +234,7 @@ null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local||"1"==urlParams.lockdown)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";
"se.diagrams.net"==window.location.hostname&&(urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0",urlParams.plugins="0",urlParams.mode="google",urlParams.lockdown="1",window.DRAWIO_GOOGLE_APP_ID=window.DRAWIO_GOOGLE_APP_ID||"184079235871",window.DRAWIO_GOOGLE_CLIENT_ID=window.DRAWIO_GOOGLE_CLIENT_ID||"184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");"trello"==urlParams.mode&&(urlParams.tr="1");
"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(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||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"15.0.2",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+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||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"15.0.3",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&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:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||
0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||0<=navigator.userAgent.indexOf("Opera/"),IS_WIN:0<navigator.appVersion.indexOf("Win"),IS_MAC:0<navigator.appVersion.indexOf("Mac"),
@@ -2756,8 +2756,8 @@ this.model.setGeometry(J,n))}n=this.getCellGeometry(e);null!=n&&(n=n.clone(),n.h
!0);for(r=0;r<p.length;r++){var t=this.getCellGeometry(p[r]),v=this.getCellGeometry(Y[r]);null!=t&&null!=v&&(v=v.clone(),v.width=t.width,this.model.setGeometry(Y[r],v))}}}}for(var qa=m.apply(this,arguments),h=0;h<k.length;h++)!d&&this.model.contains(k[h])&&0==this.model.getChildCount(k[h])&&this.model.remove(k[h]);d&&this.updateCustomLinks(this.createCellMapping(g,this.createCellLookup(a)),qa)}finally{this.model.endUpdate()}return qa};var p=Graph.prototype.removeCells;Graph.prototype.removeCells=
function(a,b){var c=[];this.model.beginUpdate();try{for(var d=0;d<a.length;d++)if(this.isTableCell(a[d])){var e=this.model.getParent(a[d]),f=this.model.getParent(e);1==this.model.getChildCount(e)&&1==this.model.getChildCount(f)?0>mxUtils.indexOf(a,f)&&0>mxUtils.indexOf(c,f)&&c.push(f):this.labelChanged(a[d],"")}else{if(this.isTableRow(a[d])&&(f=this.model.getParent(a[d]),0>mxUtils.indexOf(a,f)&&0>mxUtils.indexOf(c,f))){for(var g=this.model.getChildCells(f,!0),k=0,h=0;h<g.length;h++)0<=mxUtils.indexOf(a,
g[h])&&k++;k==g.length&&c.push(f)}c.push(a[d])}c=p.apply(this,[c,b])}finally{this.model.endUpdate()}return c};Graph.prototype.updateCustomLinks=function(a,b,c){c=null!=c?c:new Graph;for(var d=0;d<b.length;d++)null!=b[d]&&c.updateCustomLinksForCell(a,b[d],c)};Graph.prototype.updateCustomLinksForCell=function(a,b){this.doUpdateCustomLinksForCell(a,b);for(var c=this.model.getChildCount(b),d=0;d<c;d++)this.updateCustomLinksForCell(a,this.model.getChildAt(b,d))};Graph.prototype.doUpdateCustomLinksForCell=
-function(a,b){};Graph.prototype.getAllConnectionConstraints=function(a,b){if(null!=a){var c=mxUtils.getValue(a.style,"points",null);if(null!=c){c=[];try{for(var d=JSON.parse(constgeraints),e=0;e<d.length;e++){var f=d[e];c.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 c}if(null!=a.shape&&null!=a.shape.bounds){f=a.shape.direction;c=a.shape.bounds;e=a.shape.scale;d=c.width/e;c=c.height/e;if(f==mxConstants.DIRECTION_NORTH||
-f==mxConstants.DIRECTION_SOUTH)f=d,d=c,c=f;c=a.shape.getConstraints(a.style,d,c);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.getCurrentCellStyle(a),b=mxUtils.getValue(b,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;
+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.getCurrentCellStyle(a),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,b,c){for(var d=this.getCurrentCellStyle(a),e=!0,f=!0,g=0;g<b.length&&f;g++)e=e&&this.isTable(b[g]),f=f&&this.isTableRow(b[g]);return("1"!=mxUtils.getValue(d,"part","0")||
this.isContainer(a))&&"0"!=mxUtils.getValue(d,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(a))&&!this.isTableRow(a)&&(!this.isTable(a)||f||e)};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,b){var c=this.getModel(),d=[];c.beginUpdate();try{for(var e=0;e<a.length;e++){var f=a[e];if(c.isEdge(f)){var g=c.getTerminal(f,
@@ -9777,7 +9777,7 @@ a()}}),!0)});this.isModified()&&null==this.backupPatch?this.ui.confirm(mxResourc
DrawioFile.prototype.ignorePatches=function(a){for(var d=!0,c=0;c<a.length&&d;c++)d=d&&0==Object.keys(a[c]).length;return d};
DrawioFile.prototype.patch=function(a,d,c){var b=this.ui.editor.undoManager,f=b.history.slice(),g=b.indexOfNextAdd,m=this.ui.editor.graph;m.container.style.visibility="hidden";var e=this.changeListenerEnabled;this.changeListenerEnabled=c;var k=m.foldingEnabled,l=m.mathEnabled,n=m.cellRenderer.redraw;m.cellRenderer.redraw=function(a){a.view.graph.isEditing(a.cell)&&(a.view.graph.scrollCellToVisible(a.cell),a.view.graph.cellEditor.resize());n.apply(this,arguments)};m.model.beginUpdate();try{for(var p=
0;p<a.length;p++)this.ui.pages=this.ui.patchPages(this.ui.pages,a[p],!0,d,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{m.container.style.visibility="";m.model.endUpdate();m.cellRenderer.redraw=n;this.changeListenerEnabled=e;c||(b.history=f,b.indexOfNextAdd=g,b.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)l!=
-m.mathEnabled?(this.ui.editor.updateGraphComponents(),m.refresh()):(k!=m.foldingEnabled?m.view.revalidate():m.view.validate(),m.sizeDidChange());this.ui.updateTabContainer()}};
+m.mathEnabled?(this.ui.editor.updateGraphComponents(),m.refresh()):(k!=m.foldingEnabled?m.view.revalidate():m.view.validate(),m.sizeDidChange());this.ui.updateTabContainer();this.ui.editor.fireEvent(new mxEventObject("pagesPatched","patches",a))}};
DrawioFile.prototype.save=function(a,d,c,b,f,g){try{if(this.isEditable())if(!f&&this.invalidChecksum)if(null!=c)c({message:mxResources.get("checksum")});else throw Error(mxResources.get("checksum"));else this.updateFileData(),this.clearAutosave(),null!=d&&d();else if(null!=c)c({message:mxResources.get("readOnly")});else throw Error(mxResources.get("readOnly"));}catch(m){if(null!=c)c(m);else throw m;}};
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,d,c){};DrawioFile.prototype.saveFile=function(a,d,c,b){};
DrawioFile.prototype.getPublicUrl=function(a){a(null)};DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.getShadowModified=function(){return this.shadowModified};DrawioFile.prototype.setShadowModified=function(a){this.shadowModified=a};DrawioFile.prototype.setModified=function(a){this.shadowModified=this.modified=a};DrawioFile.prototype.isAutosaveOptional=function(){return!1};
@@ -9852,7 +9852,7 @@ a[n]&&(C.stop(),q.style.display="none")},3E4);a.addListener("clientLoaded",mxUti
g.style.border="1px solid #d3d3d3";g.style.borderWidth="1px 0px 1px 0px";g.style.padding="10px 0px 20px 0px";var m=0,e=0,k=document.createElement("div");k.style.paddingTop="2px";g.appendChild(k);var l=document.createElement("p"),n=document.createElement("p");n.style.cssText="font-size:22px;padding:4px 0 16px 0;margin:0;color:gray;";mxUtils.write(n,mxResources.get("saveDiagramsTo")+":");f.appendChild(n);f.appendChild(g);m=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);"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");6>e&&null!=a.notion&&b(IMAGE_PATH+"/notion-logo.svg",mxResources.get("notion"),App.MODE_NOTION,"notion");g=document.createElement("span");g.style.cssText="position:absolute;cursor:pointer;bottom:27px;color:gray;userSelect:none;text-align:center;left:50%;";mxUtils.setPrefixedStyle(g.style,
-"transform","translate(-50%,0)");mxUtils.write(g,mxResources.get("decideLater"));mxEvent.addListener(g,"click",function(){a.hideDialog();var b=Editor.useLocalStorage;a.createFile(a.defaultFilename,null,null,null,null,null,null,!0);Editor.useLocalStorage=b});f.appendChild(g);mxClient.IS_SVG&&isLocalStorage&&"0"!=urlParams.gapi&&(null==document.documentMode||10<=document.documentMode)&&window.setTimeout(function(){null==a.drive&&(l.style.padding="7px",l.style.fontSize="9pt",l.style.marginTop="-14px",
+"transform","translate(-50%,0)");mxUtils.write(g,mxResources.get("decideLater"));mxEvent.addListener(g,"click",function(){a.hideDialog();var e=Editor.useLocalStorage;a.createFile(a.defaultFilename,null,null,null,null,null,null,!0);Editor.useLocalStorage=e});f.appendChild(g);mxClient.IS_SVG&&isLocalStorage&&"0"!=urlParams.gapi&&(null==document.documentMode||10<=document.documentMode)&&window.setTimeout(function(){null==a.drive&&(l.style.padding="7px",l.style.fontSize="9pt",l.style.marginTop="-14px",
l.innerHTML='<a style="background-color:#dcdcdc;padding:6px;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="absmiddle" style="margin-top:-4px"> '+mxResources.get("googleDriveMissingClickHere")+"</a>",f.appendChild(l))},5E3);this.container=f},SplashDialog=function(a){var d=document.createElement("div");d.style.textAlign="center";if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp){var c=
a.addLanguageMenu(d,!0);null!=c&&(c.style.bottom="19px")}a.getServiceCount();var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("align","absmiddle");b.style.width="32px";b.style.height="32px";b.style.marginRight="8px";b.style.marginTop="-4px";var f=document.createElement("div");f.style.margin="8px 0px 0px 0px";f.style.padding="18px 0px 24px 0px";c="";a.mode==App.MODE_GOOGLE?(b.src=IMAGE_PATH+"/google-drive-logo.svg",c=mxResources.get("googleDrive")):a.mode==App.MODE_DROPBOX?
(b.src=IMAGE_PATH+"/dropbox-logo.svg",c=mxResources.get("dropbox")):a.mode==App.MODE_ONEDRIVE?(b.src=IMAGE_PATH+"/onedrive-logo.svg",c=mxResources.get("oneDrive")):a.mode==App.MODE_GITHUB?(b.src=IMAGE_PATH+"/github-logo.svg",c=mxResources.get("github")):a.mode==App.MODE_GITLAB?(b.src=IMAGE_PATH+"/gitlab-logo.svg",c=mxResources.get("gitlab")):a.mode==App.MODE_NOTION?(b.src=IMAGE_PATH+"/notion-logo.svg",c=mxResources.get("notion")):a.mode==App.MODE_BROWSER?(b.src=IMAGE_PATH+"/osa_database.png",c=mxResources.get("browser")):
@@ -9860,8 +9860,8 @@ a.mode==App.MODE_TRELLO?(b.src=IMAGE_PATH+"/trello-logo.svg",c=mxResources.get("
"1px solid #d3d3d3";f.style.borderWidth="1px 0px 1px 0px";var m=document.createElement("table"),e=document.createElement("tbody"),k=document.createElement("tr"),l=document.createElement("td"),n=document.createElement("td");m.setAttribute("align","center");l.appendChild(b);b=document.createElement("div");b.style.fontSize="22px";b.style.paddingBottom="6px";b.style.color="gray";mxUtils.write(b,c);n.style.textAlign="left";n.appendChild(b);k.appendChild(l);k.appendChild(n);e.appendChild(k);m.appendChild(e);
d.appendChild(m);c=document.createElement("span");c.style.cssText="position:absolute;cursor:pointer;bottom:27px;color:gray;userSelect:none;text-align:center;left:50%;";mxUtils.setPrefixedStyle(c.style,"transform","translate(-50%,0)");mxUtils.write(c,mxResources.get("changeStorage"));mxEvent.addListener(c,"click",function(){a.hideDialog(!1);a.setMode(null);a.clearMode();a.showSplash(!0)});d.appendChild(c)}mxUtils.write(g,mxResources.get("createNewDiagram"));mxEvent.addListener(g,"click",function(){a.hideDialog();
a.actions.get("new").funct()});f.appendChild(g);mxUtils.br(f);g=document.createElement("button");g.className="geBigButton";g.style.marginBottom="22px";g.style.fontSize="18px";g.style.padding="10px";g.style.width="340px";mxUtils.write(g,mxResources.get("openExistingDiagram"));mxEvent.addListener(g,"click",function(){a.actions.get("open").funct()});f.appendChild(g);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_NOTION?mxResources.get("notion"):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)if(c=function(b){g.style.marginBottom="24px";var e=document.createElement("a");e.style.display="inline-block";e.style.color="gray";e.style.cursor="pointer";
-e.style.marginTop="6px";mxUtils.write(e,mxResources.get("signOut"));g.style.marginBottom="16px";f.style.paddingBottom="18px";mxEvent.addListener(e,"click",function(){a.confirm(mxResources.get("areYouSure"),function(){b()})});f.appendChild(e)},a.mode==App.MODE_GOOGLE&&null!=a.drive){var p=a.drive.getUsersList();if(0<p.length){b=document.createElement("span");b.style.marginTop="6px";mxUtils.write(b,mxResources.get("changeUser")+":");g.style.marginBottom="16px";f.style.paddingBottom="18px";f.appendChild(b);
+a.mode==App.MODE_GITHUB?mxResources.get("github"):a.mode==App.MODE_GITLAB?mxResources.get("gitlab"):a.mode==App.MODE_NOTION?mxResources.get("notion"):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)if(c=function(e){g.style.marginBottom="24px";var b=document.createElement("a");b.style.display="inline-block";b.style.color="gray";b.style.cursor="pointer";
+b.style.marginTop="6px";mxUtils.write(b,mxResources.get("signOut"));g.style.marginBottom="16px";f.style.paddingBottom="18px";mxEvent.addListener(b,"click",function(){a.confirm(mxResources.get("areYouSure"),function(){e()})});f.appendChild(b)},a.mode==App.MODE_GOOGLE&&null!=a.drive){var p=a.drive.getUsersList();if(0<p.length){b=document.createElement("span");b.style.marginTop="6px";mxUtils.write(b,mxResources.get("changeUser")+":");g.style.marginBottom="16px";f.style.paddingBottom="18px";f.appendChild(b);
var q=document.createElement("select");q.style.marginLeft="4px";q.style.width="140px";for(c=0;c<p.length;c++)m=document.createElement("option"),mxUtils.write(m,p[c].displayName),m.value=c,q.appendChild(m),m=document.createElement("option"),m.innerHTML="&nbsp;&nbsp;&nbsp;",mxUtils.write(m,"<"+p[c].email+">"),m.setAttribute("disabled","disabled"),q.appendChild(m);m=document.createElement("option");mxUtils.write(m,mxResources.get("addAccount"));m.value=p.length;q.appendChild(m);mxEvent.addListener(q,
"change",function(){var e=q.value,b=p.length!=e;b&&a.drive.setUser(p[e]);a.drive.authorize(b,function(){a.setMode(App.MODE_GOOGLE);a.hideDialog();a.showSplash()},function(e){a.handleError(e,null,function(){a.hideDialog();a.showSplash()})},!0)});f.appendChild(q)}else c(function(){a.drive.logout()})}else a.mode!=App.MODE_ONEDRIVE||null==a.oneDrive||a.oneDrive.noLogout?a.mode==App.MODE_GITHUB&&null!=a.gitHub?c(function(){a.gitHub.logout();a.openLink("https://www.github.com/logout")}):a.mode==App.MODE_GITLAB&&
null!=a.gitLab?c(function(){a.gitLab.logout();a.openLink(DRAWIO_GITLAB_URL+"/users/sign_out")}):a.mode==App.MODE_NOTION&&null!=a.notion?c(function(){a.notion.logout()}):a.mode==App.MODE_TRELLO&&null!=a.trello?a.trello.isAuthorized()&&c(function(){a.trello.logout()}):a.mode==App.MODE_DROPBOX&&null!=a.dropbox&&c(function(){a.dropbox.logout();a.openLink("https://www.dropbox.com/logout")}):c(function(){a.oneDrive.logout()});d.appendChild(f);this.container=d},EmbedDialog=function(a,d,c,b,f,g,m,e,k){m=
@@ -9905,8 +9905,8 @@ mxResources.get("width")+":");b.appendChild(n);var v=document.createElement("inp
"change",t);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&&(k.value=a.url,t()));k.focus()};b.appendChild(e);b.appendChild(l);mxUtils.br(b);g?(e.setAttribute("checked","checked"),e.checked=!0):(m.setAttribute("checked","checked"),m.checked=!0);if(!f&&e.checked){var y=document.createElement("option");mxUtils.write(y,mxResources.get("pageNotFound"));y.setAttribute("disabled","disabled");
y.setAttribute("selected","selected");y.setAttribute("value","pageNotFound");l.appendChild(y);mxEvent.addListener(l,"change",function(){null==y.parentNode||y.selected||y.parentNode.removeChild(y)})}c=document.createElement("div");c.style.marginTop="30px";c.style.textAlign="right";f=mxUtils.button(mxResources.get("reset"),function(){k.value="";v.value="";z.value="";m.checked=!0;q=!1});mxEvent.addGestureListeners(f,function(){q=!0});f.className="geBtn";f.width="100";c.appendChild(f);f=mxUtils.button(mxResources.get("cancel"),
function(){q=!0;a.hideDialog()});f.className="geBtn";a.editor.cancelFirst&&c.appendChild(f);applyBtn=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();t(null,function(a){d(""!=a&&null!=a?new mxImage(a,v.value,z.value):null,null==a)})});mxEvent.addGestureListeners(applyBtn,function(){u=!0});applyBtn.className="geBtn gePrimaryBtn";c.appendChild(applyBtn);a.editor.cancelFirst||c.appendChild(f);b.appendChild(c);this.container=b},ParseDialog=function(a,d,c){function b(e,b,c){var d=e.split("\n");
-if("plantUmlPng"==b||"plantUmlSvg"==b||"plantUmlTxt"==b){if(a.spinner.spin(document.body,mxResources.get("inserting"))){var k=function(b,e,d,k,f){g=mxEvent.isAltDown(c)?g:l.getCenterInsertPoint(new mxRectangle(0,0,k,f));var n=null;l.getModel().beginUpdate();try{n="txt"==e?a.insertAsPreText(d,g.x,g.y):l.insertVertex(null,null,null,g.x,g.y,k,f,"shape=image;noLabel=1;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a.convertDataUri(d)+";"),l.setAttributeForCell(n,"plantUmlData",JSON.stringify({data:b,
-format:e},null,2))}finally{l.getModel().endUpdate()}null!=n&&(l.setSelectionCell(n),l.scrollCellToVisible(n))},l=a.editor.graph,f="plantUmlTxt"==b?"txt":"plantUmlPng"==b?"png":"svg";"@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"==e&&"svg"==f?window.setTimeout(function(){a.spinner.stop();k(e,f,"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U2NyaXB0VHlwZT0iYXBwbGljYXRpb24vZWNtYXNjcmlwdCIgY29udGVudFN0eWxlVHlwZT0idGV4dC9jc3MiIGhlaWdodD0iMjEycHgiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiIHN0eWxlPSJ3aWR0aDoyOTVweDtoZWlnaHQ6MjEycHg7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOTUgMjEyIiB3aWR0aD0iMjk1cHgiIHpvb21BbmRQYW49Im1hZ25pZnkiPjxkZWZzLz48Zz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogNS4wLDUuMDsiIHgxPSIzMSIgeDI9IjMxIiB5MT0iMzQuNDg4MyIgeTI9IjE3MS43MzA1Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDUuMCw1LjA7IiB4MT0iMjY0LjUiIHgyPSIyNjQuNSIgeTE9IjM0LjQ4ODMiIHkyPSIxNzEuNzMwNSIvPjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIzMyIgeD0iMTUiIHk9IjIzLjUzNTIiPkFsaWNlPC90ZXh0PjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjE3MC43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMzMiIHg9IjE1IiB5PSIxOTEuMjY1NiI+QWxpY2U8L3RleHQ+PHJlY3QgZmlsbD0iI0ZFRkVDRSIgaGVpZ2h0PSIzMC40ODgzIiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuNTsiIHdpZHRoPSI0MCIgeD0iMjQ0LjUiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjIzLjUzNTIiPkJvYjwvdGV4dD48cmVjdCBmaWxsPSIjRkVGRUNFIiBoZWlnaHQ9IjMwLjQ4ODMiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS41OyIgd2lkdGg9IjQwIiB4PSIyNDQuNSIgeT0iMTcwLjczMDUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjE5MS4yNjU2Ij5Cb2I8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSIyNTIuNSw2MS43OTg4LDI2Mi41LDY1Ljc5ODgsMjUyLjUsNjkuNzk4OCwyNTYuNSw2NS43OTg4IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiIHgxPSIzMS41IiB4Mj0iMjU4LjUiIHkxPSI2NS43OTg4IiB5Mj0iNjUuNzk4OCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjE0NyIgeD0iMzguNSIgeT0iNjEuMDU2NiI+QXV0aGVudGljYXRpb24gUmVxdWVzdDwvdGV4dD48cG9seWdvbiBmaWxsPSIjQTgwMDM2IiBwb2ludHM9IjQyLjUsOTEuMTA5NCwzMi41LDk1LjEwOTQsNDIuNSw5OS4xMDk0LDM4LjUsOTUuMTA5NCIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDIuMCwyLjA7IiB4MT0iMzYuNSIgeDI9IjI2My41IiB5MT0iOTUuMTA5NCIgeTI9Ijk1LjEwOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxNTciIHg9IjQ4LjUiIHk9IjkwLjM2NzIiPkF1dGhlbnRpY2F0aW9uIFJlc3BvbnNlPC90ZXh0Pjxwb2x5Z29uIGZpbGw9IiNBODAwMzYiIHBvaW50cz0iMjUyLjUsMTIwLjQxOTksMjYyLjUsMTI0LjQxOTksMjUyLjUsMTI4LjQxOTksMjU2LjUsMTI0LjQxOTkiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIgeDE9IjMxLjUiIHgyPSIyNTguNSIgeTE9IjEyNC40MTk5IiB5Mj0iMTI0LjQxOTkiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxOTkiIHg9IjM4LjUiIHk9IjExOS42Nzc3Ij5Bbm90aGVyIGF1dGhlbnRpY2F0aW9uIFJlcXVlc3Q8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSI0Mi41LDE0OS43MzA1LDMyLjUsMTUzLjczMDUsNDIuNSwxNTcuNzMwNSwzOC41LDE1My43MzA1IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogMi4wLDIuMDsiIHgxPSIzNi41IiB4Mj0iMjYzLjUiIHkxPSIxNTMuNzMwNSIgeTI9IjE1My43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMjA5IiB4PSI0OC41IiB5PSIxNDguOTg4MyI+QW5vdGhlciBhdXRoZW50aWNhdGlvbiBSZXNwb25zZTwvdGV4dD48IS0tTUQ1PVs3ZjNlNGQwYzkwMWVmZGJjNTdlYjQ0MjQ5YTNiODE5N10KQHN0YXJ0dW1sDQpza2lucGFyYW0gc2hhZG93aW5nIGZhbHNlDQpBbGljZSAtPiBCb2I6IEF1dGhlbnRpY2F0aW9uIFJlcXVlc3QNCkJvYiAtIC0+IEFsaWNlOiBBdXRoZW50aWNhdGlvbiBSZXNwb25zZQ0KDQpBbGljZSAtPiBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVxdWVzdA0KQWxpY2UgPC0gLSBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVzcG9uc2UNCkBlbmR1bWwNCgpQbGFudFVNTCB2ZXJzaW9uIDEuMjAyMC4wMihTdW4gTWFyIDAxIDA0OjIyOjA3IENTVCAyMDIwKQooTUlUIHNvdXJjZSBkaXN0cmlidXRpb24pCkphdmEgUnVudGltZTogT3BlbkpESyBSdW50aW1lIEVudmlyb25tZW50CkpWTTogT3BlbkpESyA2NC1CaXQgU2VydmVyIFZNCkphdmEgVmVyc2lvbjogMTIrMzMKT3BlcmF0aW5nIFN5c3RlbTogTWFjIE9TIFgKRGVmYXVsdCBFbmNvZGluZzogVVRGLTgKTGFuZ3VhZ2U6IGVuCkNvdW50cnk6IFVTCi0tPjwvZz48L3N2Zz4=",
+if("plantUmlPng"==b||"plantUmlSvg"==b||"plantUmlTxt"==b){if(a.spinner.spin(document.body,mxResources.get("inserting"))){var k=function(e,b,d,k,f){g=mxEvent.isAltDown(c)?g:l.getCenterInsertPoint(new mxRectangle(0,0,k,f));var n=null;l.getModel().beginUpdate();try{n="txt"==b?a.insertAsPreText(d,g.x,g.y):l.insertVertex(null,null,null,g.x,g.y,k,f,"shape=image;noLabel=1;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a.convertDataUri(d)+";"),l.setAttributeForCell(n,"plantUmlData",JSON.stringify({data:e,
+format:b},null,2))}finally{l.getModel().endUpdate()}null!=n&&(l.setSelectionCell(n),l.scrollCellToVisible(n))},l=a.editor.graph,f="plantUmlTxt"==b?"txt":"plantUmlPng"==b?"png":"svg";"@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"==e&&"svg"==f?window.setTimeout(function(){a.spinner.stop();k(e,f,"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U2NyaXB0VHlwZT0iYXBwbGljYXRpb24vZWNtYXNjcmlwdCIgY29udGVudFN0eWxlVHlwZT0idGV4dC9jc3MiIGhlaWdodD0iMjEycHgiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiIHN0eWxlPSJ3aWR0aDoyOTVweDtoZWlnaHQ6MjEycHg7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOTUgMjEyIiB3aWR0aD0iMjk1cHgiIHpvb21BbmRQYW49Im1hZ25pZnkiPjxkZWZzLz48Zz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogNS4wLDUuMDsiIHgxPSIzMSIgeDI9IjMxIiB5MT0iMzQuNDg4MyIgeTI9IjE3MS43MzA1Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDUuMCw1LjA7IiB4MT0iMjY0LjUiIHgyPSIyNjQuNSIgeTE9IjM0LjQ4ODMiIHkyPSIxNzEuNzMwNSIvPjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIzMyIgeD0iMTUiIHk9IjIzLjUzNTIiPkFsaWNlPC90ZXh0PjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjE3MC43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMzMiIHg9IjE1IiB5PSIxOTEuMjY1NiI+QWxpY2U8L3RleHQ+PHJlY3QgZmlsbD0iI0ZFRkVDRSIgaGVpZ2h0PSIzMC40ODgzIiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuNTsiIHdpZHRoPSI0MCIgeD0iMjQ0LjUiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjIzLjUzNTIiPkJvYjwvdGV4dD48cmVjdCBmaWxsPSIjRkVGRUNFIiBoZWlnaHQ9IjMwLjQ4ODMiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS41OyIgd2lkdGg9IjQwIiB4PSIyNDQuNSIgeT0iMTcwLjczMDUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjE5MS4yNjU2Ij5Cb2I8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSIyNTIuNSw2MS43OTg4LDI2Mi41LDY1Ljc5ODgsMjUyLjUsNjkuNzk4OCwyNTYuNSw2NS43OTg4IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiIHgxPSIzMS41IiB4Mj0iMjU4LjUiIHkxPSI2NS43OTg4IiB5Mj0iNjUuNzk4OCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjE0NyIgeD0iMzguNSIgeT0iNjEuMDU2NiI+QXV0aGVudGljYXRpb24gUmVxdWVzdDwvdGV4dD48cG9seWdvbiBmaWxsPSIjQTgwMDM2IiBwb2ludHM9IjQyLjUsOTEuMTA5NCwzMi41LDk1LjEwOTQsNDIuNSw5OS4xMDk0LDM4LjUsOTUuMTA5NCIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDIuMCwyLjA7IiB4MT0iMzYuNSIgeDI9IjI2My41IiB5MT0iOTUuMTA5NCIgeTI9Ijk1LjEwOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxNTciIHg9IjQ4LjUiIHk9IjkwLjM2NzIiPkF1dGhlbnRpY2F0aW9uIFJlc3BvbnNlPC90ZXh0Pjxwb2x5Z29uIGZpbGw9IiNBODAwMzYiIHBvaW50cz0iMjUyLjUsMTIwLjQxOTksMjYyLjUsMTI0LjQxOTksMjUyLjUsMTI4LjQxOTksMjU2LjUsMTI0LjQxOTkiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIgeDE9IjMxLjUiIHgyPSIyNTguNSIgeTE9IjEyNC40MTk5IiB5Mj0iMTI0LjQxOTkiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxOTkiIHg9IjM4LjUiIHk9IjExOS42Nzc3Ij5Bbm90aGVyIGF1dGhlbnRpY2F0aW9uIFJlcXVlc3Q8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSI0Mi41LDE0OS43MzA1LDMyLjUsMTUzLjczMDUsNDIuNSwxNTcuNzMwNSwzOC41LDE1My43MzA1IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogMi4wLDIuMDsiIHgxPSIzNi41IiB4Mj0iMjYzLjUiIHkxPSIxNTMuNzMwNSIgeTI9IjE1My43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMjA5IiB4PSI0OC41IiB5PSIxNDguOTg4MyI+QW5vdGhlciBhdXRoZW50aWNhdGlvbiBSZXNwb25zZTwvdGV4dD48IS0tTUQ1PVs3ZjNlNGQwYzkwMWVmZGJjNTdlYjQ0MjQ5YTNiODE5N10KQHN0YXJ0dW1sDQpza2lucGFyYW0gc2hhZG93aW5nIGZhbHNlDQpBbGljZSAtPiBCb2I6IEF1dGhlbnRpY2F0aW9uIFJlcXVlc3QNCkJvYiAtIC0+IEFsaWNlOiBBdXRoZW50aWNhdGlvbiBSZXNwb25zZQ0KDQpBbGljZSAtPiBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVxdWVzdA0KQWxpY2UgPC0gLSBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVzcG9uc2UNCkBlbmR1bWwNCgpQbGFudFVNTCB2ZXJzaW9uIDEuMjAyMC4wMihTdW4gTWFyIDAxIDA0OjIyOjA3IENTVCAyMDIwKQooTUlUIHNvdXJjZSBkaXN0cmlidXRpb24pCkphdmEgUnVudGltZTogT3BlbkpESyBSdW50aW1lIEVudmlyb25tZW50CkpWTTogT3BlbkpESyA2NC1CaXQgU2VydmVyIFZNCkphdmEgVmVyc2lvbjogMTIrMzMKT3BlcmF0aW5nIFN5c3RlbTogTWFjIE9TIFgKRGVmYXVsdCBFbmNvZGluZzogVVRGLTgKTGFuZ3VhZ2U6IGVuCkNvdW50cnk6IFVTCi0tPjwvZz48L3N2Zz4=",
295,212)},200):a.generatePlantUmlImage(e,f,function(b,c,d){a.spinner.stop();k(e,f,b,c,d)},function(b){a.handleError(b)})}}else if("mermaid"==b)a.spinner.spin(document.body,mxResources.get("inserting"))&&(l=a.editor.graph,a.generateMermaidImage(e,f,function(b,d,k){g=mxEvent.isAltDown(c)?g:l.getCenterInsertPoint(new mxRectangle(0,0,d,k));a.spinner.stop();var f=null;l.getModel().beginUpdate();try{f=l.insertVertex(null,null,null,g.x,g.y,d,k,"shape=image;noLabel=1;verticalAlign=top;imageAspect=1;image="+
b+";"),l.setAttributeForCell(f,"mermaidData",JSON.stringify({data:e,config:EditorUi.defaultMermaidConfig},null,2))}finally{l.getModel().endUpdate()}null!=f&&(l.setSelectionCell(f),l.scrollCellToVisible(f))},function(b){a.handleError(b)}));else if("table"==b){var n=null,p=[],q=0;for(b=0;b<d.length;b++){var m=mxUtils.trim(d[b]);if("create table"==m.substring(0,12).toLowerCase())m=mxUtils.trim(m.substring(12)),"("==m.charAt(m.length-1)&&(m=mxUtils.trim(m.substring(0,m.length-1))),n=new mxCell(m,new mxGeometry(q,
0,160,40),"shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;"),n.vertex=!0,p.push(n),m=a.editor.graph.getPreferredSizeForCell(t),null!=m&&(n.geometry.width=m.width+10);else if(null!=n&&")"==m.charAt(0))q+=n.geometry.width+40,n=null;else if("("!=m&&null!=n&&(m=m.substring(0,","==m.charAt(m.length-1)?m.length-1:m.length),"primary key"!=m.substring(0,11).toLowerCase())){var u=m.toLowerCase().indexOf("primary key"),
@@ -9915,7 +9915,7 @@ m=m.replace(/primary key/i,""),t=new mxCell("",new mxGeometry(0,0,160,30),"shape
g.x,g.y)),l.scrollCellToVisible(l.getSelectionCell()))}else if("list"==b){if(0<d.length){l=a.editor.graph;t=null;p=[];for(b=n=0;b<d.length;b++)";"!=d[b].charAt(0)&&(0==d[b].length?t=null:null==t?(t=new mxCell(d[b],new mxGeometry(n,0,160,30),"swimlane;fontStyle=1;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;"),t.vertex=!0,p.push(t),m=l.getPreferredSizeForCell(t),null!=m&&t.geometry.width<m.width+10&&(t.geometry.width=
m.width+10),n+=t.geometry.width+40):"--"==d[b]?(m=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;"),m.vertex=!0,t.geometry.height+=m.geometry.height,t.insert(m)):0<d[b].length&&(q=new mxCell(d[b],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;"),
q.vertex=!0,m=l.getPreferredSizeForCell(q),null!=m&&q.geometry.width<m.width&&(q.geometry.width=m.width),t.geometry.width=Math.max(t.geometry.width,q.geometry.width),t.geometry.height+=q.geometry.height,t.insert(q)));if(0<p.length){g=mxEvent.isAltDown(c)?g:l.getCenterInsertPoint(l.getBoundingBoxFromGeometry(p,!0));l.getModel().beginUpdate();try{p=l.importCells(p,g.x,g.y);m=[];for(b=0;b<p.length;b++)m.push(p[b]),m=m.concat(p[b].children);l.fireEvent(new mxEventObject("cellsInserted","cells",m))}finally{l.getModel().endUpdate()}l.setSelectionCells(p);
-l.scrollCellToVisible(l.getSelectionCell())}}}else{var t=function(a){var b=J[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30),"whiteSpace=wrap;html=1;"),b.vertex=!0,J[a]=b,p.push(b));return b},J={},p=[];for(b=0;b<d.length;b++)if(";"!=d[b].charAt(0)){var M=d[b].split("->");2<=M.length&&(u=t(M[0]),F=t(M[M.length-1]),M=new mxCell(2<M.length?M[1]:"",new mxGeometry),M.edge=!0,u.insertEdge(M,!0),F.insertEdge(M,!1),p.push(M))}if(0<p.length){d=document.createElement("div");d.style.visibility="hidden";
+l.scrollCellToVisible(l.getSelectionCell())}}}else{var t=function(a){var b=K[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30),"whiteSpace=wrap;html=1;"),b.vertex=!0,K[a]=b,p.push(b));return b},K={},p=[];for(b=0;b<d.length;b++)if(";"!=d[b].charAt(0)){var M=d[b].split("->");2<=M.length&&(u=t(M[0]),F=t(M[M.length-1]),M=new mxCell(2<M.length?M[1]:"",new mxGeometry),M.edge=!0,u.insertEdge(M,!0),F.insertEdge(M,!1),p.push(M))}if(0<p.length){d=document.createElement("div");d.style.visibility="hidden";
document.body.appendChild(d);l=new Graph(d);l.getModel().beginUpdate();try{p=l.importCells(p);for(b=0;b<p.length;b++)l.getModel().isVertex(p[b])&&(m=l.getPreferredSizeForCell(p[b]),p[b].geometry.width=Math.max(p[b].geometry.width,m.width),p[b].geometry.height=Math.max(p[b].geometry.height,m.height));n=new mxFastOrganicLayout(l);n.disableEdgeStyle=!1;n.forceConstant=120;n.execute(l.getDefaultParent());q=new mxParallelEdgeLayout(l);q.spacing=20;q.execute(l.getDefaultParent())}finally{l.getModel().endUpdate()}l.clearCellOverlays();
m=[];a.editor.graph.getModel().beginUpdate();try{p=l.getModel().getChildren(l.getDefaultParent()),g=mxEvent.isAltDown(c)?g:a.editor.graph.getCenterInsertPoint(l.getBoundingBoxFromGeometry(p,!0)),m=a.editor.graph.importCells(p,g.x,g.y),a.editor.graph.fireEvent(new mxEventObject("cellsInserted","cells",m))}finally{a.editor.graph.getModel().endUpdate()}a.editor.graph.setSelectionCells(m);a.editor.graph.scrollCellToVisible(a.editor.graph.getSelectionCell());l.destroy();d.parentNode.removeChild(d)}}}function f(){return"list"==
e.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":"mermaid"==e.value?"graph TD;\n A--\x3eB;\n A--\x3eC;\n B--\x3eD;\n C--\x3eD;":"table"==e.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":
@@ -9926,16 +9926,16 @@ mxUtils.write(k,mxResources.get("diagram"));"plantUml"!=c&&e.appendChild(k);k=do
"plantUmlTxt");mxUtils.write(n,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!a.isOffline()&&"plantUml"==c&&(e.appendChild(k),e.appendChild(l),e.appendChild(n));var p=f();m.value=p;d.appendChild(m);this.init=function(){m.focus()};Graph.fileSupport&&(m.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),m.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){m.value=a.target.result};b.readAsText(a)}},!1));d.appendChild(e);mxEvent.addListener(e,"change",function(){var a=f();if(0==m.value.length||m.value==p)p=a,m.value=p});a.isOffline()||"mermaid"!=c&&"plantUml"!=c||(k=mxUtils.button(mxResources.get("help"),function(){a.openLink("mermaid"==c?"https://mermaid-js.github.io/mermaid/#/":"https://plantuml.com/")}),k.className="geBtn",d.appendChild(k));k=mxUtils.button(mxResources.get("close"),
function(){m.value==p?a.hideDialog():a.confirm(mxResources.get("areYouSure"),function(){a.hideDialog()})});k.className="geBtn";a.editor.cancelFirst&&d.appendChild(k);l=mxUtils.button(mxResources.get("insert"),function(c){a.hideDialog();b(m.value,e.value,c)});d.appendChild(l);l.className="geBtn gePrimaryBtn";a.editor.cancelFirst||d.appendChild(k);this.container=d},NewDialog=function(a,d,c,b,f,g,m,e,k,l,n,p,q,u,t,v,z,y){function x(a){null!=a&&(na=S=a?135:140);a=!0;if(null!=ia)for(;M<ia.length&&(a||
-0!=mxUtils.mod(M,30));){var b=ia[M++],b=C(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 A(){if(Y&&null!=u)c||a.hideDialog(),u(Y,ba,J.value);else if(b)c||a.hideDialog(),b(X,J.value,ga,ha);else{var e=J.value;null!=e&&0<e.length&&a.pickFolder(a.mode,function(b){a.createFile(e,X,null!=ha&&0<ha.length?ha:null,null,function(){a.hideDialog()},null,b,null,null!=ea&&0<ea.length?ea:null)},a.mode!=App.MODE_GOOGLE||null==
+0!=mxUtils.mod(M,30));){var b=ia[M++],b=C(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 A(){if(Y&&null!=u)c||a.hideDialog(),u(Y,ba,K.value);else if(b)c||a.hideDialog(),b(X,K.value,ga,ha);else{var e=K.value;null!=e&&0<e.length&&a.pickFolder(a.mode,function(b){a.createFile(e,X,null!=ha&&0<ha.length?ha:null,null,function(){a.hideDialog()},null,b,null,null!=ea&&0<ea.length?ea:null)},a.mode!=App.MODE_GOOGLE||null==
a.stateArg||null==a.stateArg.folderId)}}function B(a,b,c,d,l,g,f){null!=Z&&(Z.style.backgroundColor="transparent",Z.style.border="1px solid transparent");I.removeAttribute("disabled");X=b;ha=c;ea=g;Z=a;Y=d;ga=f;ba=l;Z.style.backgroundColor=e;Z.style.border=k}function C(b,e,c,d,k,l,g,f,n,p,q){function m(b,e){if(null==N){var c=b,c=/^https?:\/\//.test(c)&&!a.editor.isCorsEnabledForUrl(c)?PROXY_URL+"?url="+encodeURIComponent(c):TEMPLATE_PATH+"/"+c;mxUtils.get(c,mxUtils.bind(this,function(a){200<=a.getStatus()&&
299>=a.getStatus()&&(N=a.getText());e(N)}))}else e(N)}function x(e,d,k){if(null!=e&&mxUtils.isAncestorNode(document.body,t)){e=mxUtils.parseXml(e);e=Editor.parseDiagramNode(e.documentElement);var l=new mxCodec(e.ownerDocument),f=new mxGraphModel;l.decode(e,f);e=f.root.getChildAt(0).children;a.sidebar.createTooltip(t,e,Math.min((window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-80,1E3),Math.min((window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)-
-80,800),null!=c?mxResources.get(c,null,c):null,!0,new mxPoint(d,k),!0,function(){E=null!=a.sidebar.tooltip&&"none"!=a.sidebar.tooltip.style.display;B(t,null,null,b,g,q)},!0)}}function u(e,c){null==b||H||a.sidebar.currentElt==t?a.sidebar.hideTooltip():(a.sidebar.hideTooltip(),a.sidebar.currentElt=t,H=!0,m(b,function(b){H&&a.sidebar.currentElt==t&&x(b,mxEvent.getClientX(e),mxEvent.getClientY(e));H=!1}))}var t=document.createElement("div");t.className="geTemplate";t.style.position="relative";t.style.height=
-na+"px";t.style.width=S+"px";var N=null;Editor.isDarkMode()&&(t.style.filter="invert(100%)");null!=c?t.setAttribute("title",mxResources.get(c,null,c)):null!=d&&0<d.length&&t.setAttribute("title",d);var H=!1;if(null!=l){t.style.display="inline-flex";t.style.justifyContent="center";t.style.alignItems="center";k=document.createElement("img");k.setAttribute("src",l);k.setAttribute("alt",d);k.style.maxWidth=na+"px";k.style.maxHeight=S+"px";var z=l.replace(".drawio.xml","").replace(".drawio","").replace(".xml",
-"");t.appendChild(k);k.onerror=function(){this.src!=z?this.src=z:(this.src=Editor.errorImage,this.onerror=null)};mxEvent.addGestureListeners(t,mxUtils.bind(this,function(a){B(t,null,null,b,g,q)}),null,null);mxEvent.addListener(t,"dblclick",function(a){A();mxEvent.consume(a)})}else if(!p&&null!=b&&0<b.length){var v=function(a){I.setAttribute("disabled","disabled");t.style.backgroundColor="transparent";t.style.border="1px solid transparent";K.spin(O);m(b,function(b){K.stop();null!=b&&(B(t,b,e,null,
+80,800),null!=c?mxResources.get(c,null,c):null,!0,new mxPoint(d,k),!0,function(){V=null!=a.sidebar.tooltip&&"none"!=a.sidebar.tooltip.style.display;B(t,null,null,b,g,q)},!0)}}function u(e,c){null==b||H||a.sidebar.currentElt==t?a.sidebar.hideTooltip():(a.sidebar.hideTooltip(),a.sidebar.currentElt=t,H=!0,m(b,function(b){H&&a.sidebar.currentElt==t&&x(b,mxEvent.getClientX(e),mxEvent.getClientY(e));H=!1}))}var t=document.createElement("div");t.className="geTemplate";t.style.position="relative";t.style.height=
+na+"px";t.style.width=S+"px";var N=null;Editor.isDarkMode()&&(t.style.filter="invert(100%)");null!=c?t.setAttribute("title",mxResources.get(c,null,c)):null!=d&&0<d.length&&t.setAttribute("title",d);var H=!1;if(null!=l){t.style.display="inline-flex";t.style.justifyContent="center";t.style.alignItems="center";k=document.createElement("img");k.setAttribute("src",l);k.setAttribute("alt",d);k.style.maxWidth=na+"px";k.style.maxHeight=S+"px";var v=l.replace(".drawio.xml","").replace(".drawio","").replace(".xml",
+"");t.appendChild(k);k.onerror=function(){this.src!=v?this.src=v:(this.src=Editor.errorImage,this.onerror=null)};mxEvent.addGestureListeners(t,mxUtils.bind(this,function(a){B(t,null,null,b,g,q)}),null,null);mxEvent.addListener(t,"dblclick",function(a){A();mxEvent.consume(a)})}else if(!p&&null!=b&&0<b.length){var z=function(a){I.setAttribute("disabled","disabled");t.style.backgroundColor="transparent";t.style.border="1px solid transparent";J.spin(O);m(b,function(b){J.stop();null!=b&&(B(t,b,e,null,
null,q,R),a&&A())})};d=n||TEMPLATE_PATH+"/"+b.substring(0,b.length-4)+".png";t.style.backgroundImage="url("+d+")";t.style.backgroundPosition="center center";t.style.backgroundRepeat="no-repeat";null!=c&&(t.innerHTML='<table width="100%" height="100%" style="line-height:1.3em;'+(Editor.isDarkMode()?"":"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:'+
-(na-34)+'px;">'+mxUtils.htmlEntities(mxResources.get(c,null,c))+"</span></td></tr></table>");mxEvent.addGestureListeners(t,mxUtils.bind(this,function(a){v()}),null,null);mxEvent.addListener(t,"dblclick",function(a){v(!0);mxEvent.consume(a)})}else t.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:'+
-(na-34)+'px;">'+mxUtils.htmlEntities(mxResources.get(c,null,c))+"</span></td></tr></table>",k&&B(t),mxEvent.addGestureListeners(t,mxUtils.bind(this,function(a){B(t,null,null,b,g)}),null,null),null!=f?mxEvent.addListener(t,"click",f):(mxEvent.addListener(t,"click",function(a){B(t,null,null,b,g)}),mxEvent.addListener(t,"dblclick",function(a){A();mxEvent.consume(a)}));if(null!=b){var V=document.createElement("img");V.setAttribute("src",Sidebar.prototype.searchImage);V.setAttribute("title",mxResources.get("preview"));
-V.className="geActiveButton";V.style.position="absolute";V.style.cursor="default";V.style.padding="8px";V.style.right="0px";V.style.top="0px";t.appendChild(V);var E=!1;mxEvent.addGestureListeners(V,mxUtils.bind(this,function(b){E=a.sidebar.currentElt==t}),null,null);mxEvent.addListener(V,"click",mxUtils.bind(this,function(a){E||u(a,V);mxEvent.consume(a)}))}O.appendChild(t);return t}function D(){function a(a,b){var e=mxResources.get(a);null==e&&(e=a.substring(0,1).toUpperCase()+a.substring(1));18<
+(na-34)+'px;">'+mxUtils.htmlEntities(mxResources.get(c,null,c))+"</span></td></tr></table>");mxEvent.addGestureListeners(t,mxUtils.bind(this,function(a){z()}),null,null);mxEvent.addListener(t,"dblclick",function(a){z(!0);mxEvent.consume(a)})}else t.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:'+
+(na-34)+'px;">'+mxUtils.htmlEntities(mxResources.get(c,null,c))+"</span></td></tr></table>",k&&B(t),mxEvent.addGestureListeners(t,mxUtils.bind(this,function(a){B(t,null,null,b,g)}),null,null),null!=f?mxEvent.addListener(t,"click",f):(mxEvent.addListener(t,"click",function(a){B(t,null,null,b,g)}),mxEvent.addListener(t,"dblclick",function(a){A();mxEvent.consume(a)}));if(null!=b){var E=document.createElement("img");E.setAttribute("src",Sidebar.prototype.searchImage);E.setAttribute("title",mxResources.get("preview"));
+E.className="geActiveButton";E.style.position="absolute";E.style.cursor="default";E.style.padding="8px";E.style.right="0px";E.style.top="0px";t.appendChild(E);var V=!1;mxEvent.addGestureListeners(E,mxUtils.bind(this,function(b){V=a.sidebar.currentElt==t}),null,null);mxEvent.addListener(E,"click",mxUtils.bind(this,function(a){V||u(a,E);mxEvent.consume(a)}))}O.appendChild(t);return t}function D(){function a(a,b){var e=mxResources.get(a);null==e&&(e=a.substring(0,1).toUpperCase()+a.substring(1));18<
e.length&&(e=e.substring(0,18)+"&hellip;");return e+" ("+b.length+")"}function b(a,b,e){mxEvent.addListener(b,"click",function(){ka!=b&&(ka.style.backgroundColor="",ka=b,ka.style.backgroundColor=m,O.scrollTop=0,O.innerHTML="",M=0,ia=e?ca[a][e]:aa[a],H=null,x(!1))})}oa&&(oa=!1,mxEvent.addListener(O,"scroll",function(a){O.scrollTop+O.clientHeight>=O.scrollHeight&&(x(),mxEvent.consume(a))}));if(0<qa){var e=document.createElement("div");e.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;";
mxUtils.write(e,mxResources.get("custom"));ja.appendChild(e);for(var c in da){var d=document.createElement("div"),k=c,e=da[c];18<k.length&&(k=k.substring(0,18)+"&hellip;");d.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;user-select:none;";d.setAttribute("title",k+" ("+e.length+")");mxUtils.write(d,d.getAttribute("title"));null!=l&&(d.style.padding=l);ja.appendChild(d);(function(a,b){mxEvent.addListener(d,"click",
function(){ka!=b&&(ka.style.backgroundColor="",ka=b,ka.style.backgroundColor=m,O.scrollTop=0,O.innerHTML="",M=0,ia=da[a],H=null,x(!1))})})(c,d)}e=document.createElement("div");e.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;";mxUtils.write(e,"draw.io");ja.appendChild(e)}for(c in aa){var k=ca[c],g=d=document.createElement(k?"ul":"div"),e=aa[c],f=a(c,e);if(null!=k){var n=document.createElement("li"),p=document.createElement("div");p.className="geTempTreeCaret";
@@ -9944,10 +9944,10 @@ setTimeout(function(){a.style.visibility="hidden"},550);b.classList.toggle("geTe
e=null!=e?e:Editor.isDarkMode()?"#a2a2a2":"#e6eff8";k=null!=k?k:Editor.isDarkMode()?"1px dashed #00a8ff":"1px solid #ccd9ea";n=null!=n?n:EditorUi.templateFile;var G=document.createElement("div");G.style.userSelect="none";G.style.height="100%";var E=document.createElement("div");E.style.whiteSpace="nowrap";E.style.height="46px";c&&G.appendChild(E);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_NOTION?IMAGE_PATH+"/notion-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";
!d&&c&&E.appendChild(F);c&&mxUtils.write(E,(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_NOTION&&null!=a.notion?F=a.notion.extension:a.mode==App.MODE_TRELLO&&null!=a.trello&&(F=a.trello.extension);var J=document.createElement("input");J.setAttribute("value",a.defaultFilename+F);J.style.marginLeft="10px";J.style.width=d?"144px":"244px";this.init=function(){c&&(J.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?J.select():document.execCommand("selectAll",!1,null));null!=O.parentNode&&null!=O.parentNode.parentNode&&mxEvent.addGestureListeners(O.parentNode.parentNode,
-mxUtils.bind(this,function(b){a.sidebar.hideTooltip()}),null,null)};c&&(E.appendChild(J),y?J.style.width=d?"350px":"450px":(null!=a.editor.diagramFileTypes&&(y=FilenameDialog.createFileTypes(a,J,a.editor.diagramFileTypes),y.style.marginLeft="6px",y.style.width=d?"80px":"180px",E.appendChild(y)),null!=a.editor.fileExtensions&&(y=FilenameDialog.createTypeHint(a,J,a.editor.fileExtensions),y.style.marginTop="12px",E.appendChild(y))));var E=!1,M=0,K=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,
+App.MODE_NOTION&&null!=a.notion?F=a.notion.extension:a.mode==App.MODE_TRELLO&&null!=a.trello&&(F=a.trello.extension);var K=document.createElement("input");K.setAttribute("value",a.defaultFilename+F);K.style.marginLeft="10px";K.style.width=d?"144px":"244px";this.init=function(){c&&(K.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?K.select():document.execCommand("selectAll",!1,null));null!=O.parentNode&&null!=O.parentNode.parentNode&&mxEvent.addGestureListeners(O.parentNode.parentNode,
+mxUtils.bind(this,function(b){a.sidebar.hideTooltip()}),null,null)};c&&(E.appendChild(K),y?K.style.width=d?"350px":"450px":(null!=a.editor.diagramFileTypes&&(y=FilenameDialog.createFileTypes(a,K,a.editor.diagramFileTypes),y.style.marginLeft="6px",y.style.width=d?"80px":"180px",E.appendChild(y)),null!=a.editor.fileExtensions&&(y=FilenameDialog.createTypeHint(a,K,a.editor.fileExtensions),y.style.marginTop="12px",E.appendChild(y))));var E=!1,M=0,J=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}),I=mxUtils.button(v||mxResources.get("create"),function(){I.setAttribute("disabled","disabled");A();I.removeAttribute("disabled")});I.className="geBtn gePrimaryBtn";if(p||q){var N=[],H=null,L=null,V=null,U=function(a){I.setAttribute("disabled","disabled");for(var b=0;b<N.length;b++)N[b].className=b==a?"geBtn gePrimaryBtn":"geBtn"},E=!0;v=document.createElement("div");v.style.whiteSpace="nowrap";v.style.height="30px";G.appendChild(v);
-y=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){ja.style.display="";Q.style.display="";O.style.left="160px";U(0);O.scrollTop=0;O.innerHTML="";M=0;H!=ia&&(ia=H,aa=L,qa=V,ja.innerHTML="",D(),H=null)});N.push(y);v.appendChild(y);var P=function(a){ja.style.display="none";Q.style.display="none";O.style.left="30px";U(a?-1:1);null==H&&(H=ia);O.scrollTop=0;O.innerHTML="";K.spin(O);var b=function(a,b,e){M=0;K.stop();ia=a;e=e||{};var c=0,d;for(d in e)c+=e[d].length;if(b)O.innerHTML=
+y=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){ja.style.display="";Q.style.display="";O.style.left="160px";U(0);O.scrollTop=0;O.innerHTML="";M=0;H!=ia&&(ia=H,aa=L,qa=V,ja.innerHTML="",D(),H=null)});N.push(y);v.appendChild(y);var P=function(a){ja.style.display="none";Q.style.display="none";O.style.left="30px";U(a?-1:1);null==H&&(H=ia);O.scrollTop=0;O.innerHTML="";J.spin(O);var b=function(a,b,e){M=0;J.stop();ia=a;e=e||{};var c=0,d;for(d in e)c+=e[d].length;if(b)O.innerHTML=
b;else if(0==a.length&&0==c)O.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams",null,"No Diagrams Found"));else if(O.innerHTML="",0<c){ja.style.display="";O.style.left="160px";ja.innerHTML="";qa=0;aa={"draw.io":a};for(d in e)aa[d]=e[d];D()}else x(!0)};a?q(W.value,b):p(b)};p&&(y=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){P()}),v.appendChild(y),N.push(y));if(q){y=document.createElement("span");y.style.marginLeft="10px";y.innerHTML=mxUtils.htmlEntities(mxResources.get("search")+
":");v.appendChild(y);var W=document.createElement("input");W.style.marginRight="10px";W.style.marginLeft="10px";W.style.width="220px";mxEvent.addListener(W,"keypress",function(a){13==a.keyCode&&P(!0)});v.appendChild(W);y=mxUtils.button(mxResources.get("search"),function(){P(!0)});y.className="geBtn";v.appendChild(y)}U(0)}var ha=null,ea=null,X=null,Z=null,Y=null,ga=null,ba=null,O=document.createElement("div");O.style.border="1px solid #d3d3d3";O.style.position="absolute";O.style.left="160px";O.style.right=
"34px";v=(c?72:40)+(E?30:0);O.style.top=v+"px";O.style.bottom="68px";O.style.margin="6px 0 0 -1px";O.style.padding="6px";O.style.overflow="auto";var Q=document.createElement("div");Q.style.cssText="position:absolute;left:30px;width:128px;top:"+v+"px;height:22px;margin-top: 6px;white-space: nowrap";var ma=document.createElement("input");ma.style.cssText="width:105px;height:16px;border:1px solid #d3d3d3;padding: 3px 20px 3px 3px;font-size: 12px";ma.setAttribute("placeholder",mxResources.get("search"));
@@ -9957,9 +9957,9 @@ b.toLowerCase().split(" "),e=NewDialog.tagsList[n];if(0<qa&&null==e.__tagsList__
e.style.cssText="border: 1px solid #D3D3D3; padding: 6px; background: #F5F5F5;";mxUtils.write(e,mxResources.get(0==c.length?"noResultsFor":"resultsFor",[b]));O.appendChild(e);null!=ka&&null==pa&&(ka.style.backgroundColor="",pa=ka,ka=e);ia=c;H=null;x(!1)}mxEvent.consume(a)}}));mxEvent.addListener(ma,"keyup",mxUtils.bind(this,function(a){""==ma.value?(T.setAttribute("src",fa),T.setAttribute("title",mxResources.get("search"))):(T.setAttribute("src",Dialog.prototype.closeImage),T.setAttribute("title",
mxResources.get("reset")))}));v+=23;var ja=document.createElement("div");ja.style.cssText="position:absolute;left:30px;width:128px;top:"+v+"px;bottom:68px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";mxEvent.addListener(O,"scroll",function(){a.sidebar.hideTooltip()});var na=140,S=140,aa={},ca={},da={},qa=0,oa=!0,ka=null,pa=null;aa.basic=[{title:"blankDiagram",select:!0}];var ia=aa.basic;if(!d){var ra=function(){mxUtils.get(R,function(a){if(!wa){wa=!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=[],k=0;k<c.length;k++)d.push(encodeURIComponent(mxUtils.getTextContent(c[k])));null!=e&&0<d.length&&(b[e]=d.join(";"))}else if(d=a.getAttribute("url"),null!=d){c=a.getAttribute("section");e=a.getAttribute("subsection");if(null==c&&(k=d.indexOf("/"),c=d.substring(0,k),null==e)){var l=d.indexOf("/",k+1);-1<l&&(e=d.substring(k+1,l))}k=aa[c];null==k&&
-(k=[],aa[c]=k);d=a.getAttribute("clibs");null!=b[d]&&(d=b[d]);d={url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title"),tooltip:a.getAttribute("name")||a.getAttribute("url"),preview:a.getAttribute("preview"),clibs:d,tags:a.getAttribute("tags")};k.push(d);null!=e&&(k=ca[c],null==k&&(k={},ca[c]=k),c=k[e],null==c&&(c=[],k[e]=c),c.push(d))}a=a.nextSibling}K.stop();D()}})};G.appendChild(Q);G.appendChild(ja);G.appendChild(O);var wa=!1,R=n;/^https?:\/\//.test(R)&&!a.editor.isCorsEnabledForUrl(R)&&
-(R=PROXY_URL+"?url="+encodeURIComponent(R));K.spin(O);null!=z?z(function(a,b){da=a;V=qa=b;ra()},ra):ra();L=aa}mxEvent.addListener(J,"keypress",function(b){a.dialog.container.firstChild==G&&13==b.keyCode&&A()});z=document.createElement("div");z.style.marginTop=d?"4px":"16px";z.style.textAlign="right";z.style.position="absolute";z.style.left="40px";z.style.bottom="24px";z.style.right="40px";d||a.isOffline()||!c||null!=b||f||(v=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),
-v.className="geBtn",z.appendChild(v));v=mxUtils.button(mxResources.get("cancel"),function(){null!=g&&g();a.hideDialog(!0)});v.className="geBtn";!a.editor.cancelFirst||f&&null==g||z.appendChild(v);d||"1"==urlParams.embed||f||(d=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(J.value)+"&create="+encodeURIComponent(b)),
+(k=[],aa[c]=k);d=a.getAttribute("clibs");null!=b[d]&&(d=b[d]);d={url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title"),tooltip:a.getAttribute("name")||a.getAttribute("url"),preview:a.getAttribute("preview"),clibs:d,tags:a.getAttribute("tags")};k.push(d);null!=e&&(k=ca[c],null==k&&(k={},ca[c]=k),c=k[e],null==c&&(c=[],k[e]=c),c.push(d))}a=a.nextSibling}J.stop();D()}})};G.appendChild(Q);G.appendChild(ja);G.appendChild(O);var wa=!1,R=n;/^https?:\/\//.test(R)&&!a.editor.isCorsEnabledForUrl(R)&&
+(R=PROXY_URL+"?url="+encodeURIComponent(R));J.spin(O);null!=z?z(function(a,b){da=a;V=qa=b;ra()},ra):ra();L=aa}mxEvent.addListener(K,"keypress",function(b){a.dialog.container.firstChild==G&&13==b.keyCode&&A()});z=document.createElement("div");z.style.marginTop=d?"4px":"16px";z.style.textAlign="right";z.style.position="absolute";z.style.left="40px";z.style.bottom="24px";z.style.right="40px";d||a.isOffline()||!c||null!=b||f||(v=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),
+v.className="geBtn",z.appendChild(v));v=mxUtils.button(mxResources.get("cancel"),function(){null!=g&&g();a.hideDialog(!0)});v.className="geBtn";!a.editor.cancelFirst||f&&null==g||z.appendChild(v);d||"1"==urlParams.embed||f||(d=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(K.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()}),d.className="geBtn",z.appendChild(d));Graph.fileSupport&&t&&(t=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()}),t.className="geBtn",z.appendChild(t));z.appendChild(I);a.editor.cancelFirst||null!=b||f&&null==g||z.appendChild(v);G.appendChild(z);this.container=G};NewDialog.tagsList={};
var CreateDialog=function(a,d,c,b,f,g,m,e,k,l,n,p,q,u,t,v,z){function y(b,e,c,k){function l(){mxEvent.addListener(g,"click",function(){var b=c;if(m){var e=B.value,k=e.lastIndexOf(".");if(0>d.lastIndexOf(".")&&0>k){var b=null!=b?b:E.value,l="";b==App.MODE_GOOGLE?l=a.drive.extension:b==App.MODE_GITHUB?l=a.gitHub.extension:b==App.MODE_GITLAB?l=a.gitLab.extension:b==App.MODE_NOTION?l=a.notion.extension:b==App.MODE_TRELLO?l=a.trello.extension:b==App.MODE_DROPBOX?l=a.dropbox.extension:b==App.MODE_ONEDRIVE?
@@ -10016,9 +10016,9 @@ e.getGlobalVariable=function(a){return"page"==a&&null!=l&&null!=l[n]?l[n].getAtt
shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"},u=new Spinner(q),t=a.getCurrentFile(),v=a.getXmlFileData(!0,!1,!0).getElementsByTagName("diagram"),z={},q=0;q<v.length;q++)z[v[q].getAttribute("id")]=v[q];var y=null,x=null,A=null,B=null,C=mxUtils.button("",function(){null!=A&&e.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 D=mxUtils.button("",function(){null!=A&&e.zoomOut()});D.className="geSprite geSprite-zoomout";D.setAttribute("title",mxResources.get("zoomOut"));D.style.outline="none";D.style.border="none";D.style.margin="2px";D.setAttribute("disabled","disabled");mxUtils.setOpacity(D,20);var G=mxUtils.button("",function(){null!=A&&(e.maxFitScale=8,e.fit(8),e.center())});G.className="geSprite geSprite-fit";G.setAttribute("title",mxResources.get("fit"));G.style.outline="none";G.style.border=
"none";G.style.margin="2px";G.setAttribute("disabled","disabled");mxUtils.setOpacity(G,20);var E=mxUtils.button("",function(){null!=A&&(e.zoomActual(),e.center())});E.className="geSprite geSprite-actualsize";E.setAttribute("title",mxResources.get("actualSize"));E.style.outline="none";E.style.border="none";E.style.margin="2px";E.setAttribute("disabled","disabled");mxUtils.setOpacity(E,20);var F=mxUtils.button("",function(){});F.className="geSprite geSprite-middle";F.setAttribute("title",mxResources.get("compare"));
-F.style.outline="none";F.style.border="none";F.style.margin="2px";mxUtils.setOpacity(F,60);var J=g.cloneNode(!1);J.style.pointerEvent="none";g.parentNode.appendChild(J);var M=new Graph(J);M.setTooltips(!1);M.setEnabled(!1);M.setPanning(!0);M.panningHandler.ignoreCell=!0;M.panningHandler.useLeftButtonForPanning=!0;M.minFitScale=null;M.maxFitScale=null;M.centerZoom=!0;mxEvent.addGestureListeners(F,function(a){a=z[l[k].getAttribute("id")];mxUtils.setOpacity(F,20);m.innerHTML="";null==a?mxUtils.write(m,
-mxResources.get("pageNotFound")):(K.style.display="none",g.style.display="none",J.style.display="",J.style.backgroundColor=g.style.backgroundColor,a=Editor.parseDiagramNode(a),(new mxCodec(a.ownerDocument)).decode(a,M.getModel()),M.view.scaleAndTranslate(e.view.scale,e.view.translate.x,e.view.translate.y))},null,function(){mxUtils.setOpacity(F,60);m.innerHTML="";"none"==g.style.display&&(K.style.display="",g.style.display="",J.style.display="none")});var K=document.createElement("div");K.style.position=
-"absolute";K.style.textAlign="right";K.style.color="gray";K.style.marginTop="10px";K.style.backgroundColor="transparent";K.style.top="440px";K.style.right="32px";K.style.maxWidth="380px";K.style.cursor="default";var I=mxUtils.button(mxResources.get("download"),function(){if(null!=A){var b=mxUtils.getXml(A.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)),
+F.style.outline="none";F.style.border="none";F.style.margin="2px";mxUtils.setOpacity(F,60);var K=g.cloneNode(!1);K.style.pointerEvent="none";g.parentNode.appendChild(K);var M=new Graph(K);M.setTooltips(!1);M.setEnabled(!1);M.setPanning(!0);M.panningHandler.ignoreCell=!0;M.panningHandler.useLeftButtonForPanning=!0;M.minFitScale=null;M.maxFitScale=null;M.centerZoom=!0;mxEvent.addGestureListeners(F,function(a){a=z[l[k].getAttribute("id")];mxUtils.setOpacity(F,20);m.innerHTML="";null==a?mxUtils.write(m,
+mxResources.get("pageNotFound")):(J.style.display="none",g.style.display="none",K.style.display="",K.style.backgroundColor=g.style.backgroundColor,a=Editor.parseDiagramNode(a),(new mxCodec(a.ownerDocument)).decode(a,M.getModel()),M.view.scaleAndTranslate(e.view.scale,e.view.translate.x,e.view.translate.y))},null,function(){mxUtils.setOpacity(F,60);m.innerHTML="";"none"==g.style.display&&(J.style.display="",g.style.display="",K.style.display="none")});var J=document.createElement("div");J.style.position=
+"absolute";J.style.textAlign="right";J.style.color="gray";J.style.marginTop="10px";J.style.backgroundColor="transparent";J.style.top="440px";J.style.right="32px";J.style.maxWidth="380px";J.style.cursor="default";var I=mxUtils.button(mxResources.get("download"),function(){if(null!=A){var b=mxUtils.getXml(A.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"))}});I.className="geBtn";I.setAttribute("disabled","disabled");var N=mxUtils.button(mxResources.get("restore"),function(b){null!=A&&null!=B&&(mxEvent.isShiftDown(b)?null!=A&&(b=a.getPagesForNode(A.documentElement),b=a.diffPages(a.pages,b),b=new TextareaDialog(a,mxResources.get("compare"),JSON.stringify(b,null,2),function(b){if(0<b.length)try{a.confirm(mxResources.get("areYouSure"),function(){t.patch([JSON.parse(b)],
null,!0);a.hideDialog();a.hideDialog()})}catch(ba){a.handleError(ba)}},null,null,null,null,null,!0,null,mxResources.get("merge")),b.textarea.style.width="600px",b.textarea.style.height="380px",a.showDialog(b.container,620,460,!0,!0),b.init()):a.confirm(mxResources.get("areYouSure"),function(){null!=c?c(B):a.spinner.spin(document.body,mxResources.get("restoring"))&&t.save(!0,function(b){a.spinner.stop();a.replaceFileData(B);a.hideDialog()},function(b){a.spinner.stop();a.editor.setStatus("");a.handleError(b,
null!=b?mxResources.get("errorSavingFile"):null)})}))});N.className="geBtn";N.setAttribute("disabled","disabled");N.setAttribute("title","Shift+Click for Diff");var H=document.createElement("select");H.setAttribute("disabled","disabled");H.style.maxWidth="80px";H.style.position="relative";H.style.top="-2px";H.style.verticalAlign="bottom";H.style.marginRight="6px";H.style.display="none";var L=null;mxEvent.addListener(H,"change",function(a){null!=L&&(L(a),mxEvent.consume(a))});var V=mxUtils.button(mxResources.get("edit"),
@@ -10026,14 +10026,14 @@ function(){null!=A&&(window.openFile=new OpenFile(function(){window.openFile=nul
v=document.createElement("div");v.style.position="absolute";v.style.top="482px";v.style.width="640px";v.style.textAlign="right";var P=document.createElement("div");P.className="geToolbarContainer";P.style.backgroundColor="transparent";P.style.padding="2px";P.style.border="none";P.style.left="199px";P.style.top="442px";var W=null;if(null!=d&&0<d.length){g.style.cursor="move";var ha=document.createElement("table");ha.style.border="1px solid lightGray";ha.style.borderCollapse="collapse";ha.style.borderSpacing=
"0px";ha.style.width="100%";var ea=document.createElement("tbody"),X=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(k=mxUtils.indexOf(a.pages,a.currentPage));for(q=d.length-1;0<=q;q--){var Z=function(b){var c=new Date(b.modifiedDate),f=null;if(0<=c.getTime()){var p=function(d){u.stop();m.innerHTML="";var p=mxUtils.parseXml(d),q=a.editor.extractGraphModel(p.documentElement,!0);if(null!=q){var x=function(a){null!=a&&(a=z(Editor.parseDiagramNode(a)));return a},z=function(a){var b=a.getAttribute("background");
if(null==b||""==b||b==mxConstants.NONE)b=e.defaultPageBackgroundColor;g.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,e.getModel());e.maxFitScale=1;e.fit(8);e.center();return a};H.style.display="none";H.innerHTML="";A=p;B=d;l=parseSelectFunction=null;n=0;if("mxfile"==q.nodeName){p=q.getElementsByTagName("diagram");l=[];for(d=0;d<p.length;d++)l.push(p[d]);n=Math.min(k,l.length-1);0<l.length&&x(l[n]);if(1<l.length)for(H.removeAttribute("disabled"),H.style.display="",d=0;d<l.length;d++)p=
-document.createElement("option"),mxUtils.write(p,l[d].getAttribute("name")||mxResources.get("pageWithNumber",[d+1])),p.setAttribute("value",d),d==n&&p.setAttribute("selected","selected"),H.appendChild(p);L=function(){try{var b=parseInt(H.value);n=k=b;x(l[b])}catch(aa){H.value=k,a.handleError(aa)}}}else z(q);d=b.lastModifyingUserName;null!=d&&20<d.length&&(d=d.substring(0,20)+"...");K.innerHTML="";mxUtils.write(K,(null!=d?d+" ":"")+c.toLocaleDateString()+" "+c.toLocaleTimeString());K.setAttribute("title",
+document.createElement("option"),mxUtils.write(p,l[d].getAttribute("name")||mxResources.get("pageWithNumber",[d+1])),p.setAttribute("value",d),d==n&&p.setAttribute("selected","selected"),H.appendChild(p);L=function(){try{var b=parseInt(H.value);n=k=b;x(l[b])}catch(aa){H.value=k,a.handleError(aa)}}}else z(q);d=b.lastModifyingUserName;null!=d&&20<d.length&&(d=d.substring(0,20)+"...");J.innerHTML="";mxUtils.write(J,(null!=d?d+" ":"")+c.toLocaleDateString()+" "+c.toLocaleTimeString());J.setAttribute("title",
f.getAttribute("title"));C.removeAttribute("disabled");D.removeAttribute("disabled");G.removeAttribute("disabled");E.removeAttribute("disabled");F.removeAttribute("disabled");null!=t&&t.isRestricted()||(a.editor.graph.isEnabled()&&N.removeAttribute("disabled"),I.removeAttribute("disabled"),U.removeAttribute("disabled"),V.removeAttribute("disabled"));mxUtils.setOpacity(C,60);mxUtils.setOpacity(D,60);mxUtils.setOpacity(G,60);mxUtils.setOpacity(E,60);mxUtils.setOpacity(F,60)}else H.style.display="none",
-H.innerHTML="",K.innerHTML="",mxUtils.write(K,mxResources.get("errorLoadingFile")),mxUtils.write(m,mxResources.get("errorLoadingFile"))},f=document.createElement("tr");f.style.borderBottom="1px solid lightGray";f.style.fontSize="12px";f.style.cursor="pointer";var q=document.createElement("td");q.style.padding="6px";q.style.whiteSpace="nowrap";b==d[d.length-1]?mxUtils.write(q,mxResources.get("current")):c.toDateString()===X?mxUtils.write(q,c.toLocaleTimeString()):mxUtils.write(q,c.toLocaleDateString()+
-" "+c.toLocaleTimeString());f.appendChild(q);f.setAttribute("title",c.toLocaleDateString()+" "+c.toLocaleTimeString()+(null!=b.fileSize?" "+a.formatFileSize(parseInt(b.fileSize)):"")+(null!=b.lastModifyingUserName?" "+b.lastModifyingUserName:""));mxEvent.addListener(f,"click",function(a){x!=b&&(u.stop(),null!=y&&(y.style.backgroundColor=""),x=b,y=f,y.style.backgroundColor=Editor.isDarkMode()?"#000000":"#ebf2f9",B=A=null,K.removeAttribute("title"),K.innerHTML=mxUtils.htmlEntities(mxResources.get("loading")+
+H.innerHTML="",J.innerHTML="",mxUtils.write(J,mxResources.get("errorLoadingFile")),mxUtils.write(m,mxResources.get("errorLoadingFile"))},f=document.createElement("tr");f.style.borderBottom="1px solid lightGray";f.style.fontSize="12px";f.style.cursor="pointer";var q=document.createElement("td");q.style.padding="6px";q.style.whiteSpace="nowrap";b==d[d.length-1]?mxUtils.write(q,mxResources.get("current")):c.toDateString()===X?mxUtils.write(q,c.toLocaleTimeString()):mxUtils.write(q,c.toLocaleDateString()+
+" "+c.toLocaleTimeString());f.appendChild(q);f.setAttribute("title",c.toLocaleDateString()+" "+c.toLocaleTimeString()+(null!=b.fileSize?" "+a.formatFileSize(parseInt(b.fileSize)):"")+(null!=b.lastModifyingUserName?" "+b.lastModifyingUserName:""));mxEvent.addListener(f,"click",function(a){x!=b&&(u.stop(),null!=y&&(y.style.backgroundColor=""),x=b,y=f,y.style.backgroundColor=Editor.isDarkMode()?"#000000":"#ebf2f9",B=A=null,J.removeAttribute("title"),J.innerHTML=mxUtils.htmlEntities(mxResources.get("loading")+
"..."),g.style.backgroundColor=e.defaultPageBackgroundColor,m.innerHTML="",e.getModel().clear(),N.setAttribute("disabled","disabled"),I.setAttribute("disabled","disabled"),C.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),V.setAttribute("disabled","disabled"),U.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"),mxUtils.setOpacity(C,20),
-mxUtils.setOpacity(D,20),mxUtils.setOpacity(G,20),mxUtils.setOpacity(E,20),mxUtils.setOpacity(F,20),u.spin(g),b.getXml(function(a){if(x==b)try{p(a)}catch(fa){K.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+": "+fa.message)}},function(a){u.stop();H.style.display="none";H.innerHTML="";K.innerHTML="";mxUtils.write(K,mxResources.get("errorLoadingFile"));mxUtils.write(m,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(f,"dblclick",function(a){U.click();window.getSelection?
+mxUtils.setOpacity(D,20),mxUtils.setOpacity(G,20),mxUtils.setOpacity(E,20),mxUtils.setOpacity(F,20),u.spin(g),b.getXml(function(a){if(x==b)try{p(a)}catch(fa){J.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+": "+fa.message)}},function(a){u.stop();H.style.display="none";H.innerHTML="";J.innerHTML="";mxUtils.write(J,mxResources.get("errorLoadingFile"));mxUtils.write(m,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(f,"dblclick",function(a){U.click();window.getSelection?
window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);ea.appendChild(f)}return f}(d[q]);null!=Z&&q==d.length-1&&(W=Z)}ha.appendChild(ea);f.appendChild(ha)}else null==t||null==a.drive&&t.constructor==window.DriveFile||null==a.dropbox&&t.constructor==window.DropboxFile?(g.style.display="none",P.style.display="none",mxUtils.write(f,mxResources.get("notAvailable"))):(g.style.display="none",P.style.display="none",mxUtils.write(f,mxResources.get("noRevisions")));
-this.init=function(){null!=W&&W.click()};f=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});f.className="geBtn";P.appendChild(H);P.appendChild(C);P.appendChild(D);P.appendChild(E);P.appendChild(G);P.appendChild(F);a.editor.cancelFirst?(v.appendChild(f),v.appendChild(I),v.appendChild(V),v.appendChild(N),v.appendChild(U)):(v.appendChild(I),v.appendChild(V),v.appendChild(N),v.appendChild(U),v.appendChild(f));b.appendChild(v);b.appendChild(P);b.appendChild(K);this.container=b},DraftDialog=
+this.init=function(){null!=W&&W.click()};f=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});f.className="geBtn";P.appendChild(H);P.appendChild(C);P.appendChild(D);P.appendChild(E);P.appendChild(G);P.appendChild(F);a.editor.cancelFirst?(v.appendChild(f),v.appendChild(I),v.appendChild(V),v.appendChild(N),v.appendChild(U)):(v.appendChild(I),v.appendChild(V),v.appendChild(N),v.appendChild(U),v.appendChild(f));b.appendChild(v);b.appendChild(P);b.appendChild(J);this.container=b},DraftDialog=
function(a,d,c,b,f,g,m,e,k){var l=document.createElement("div"),n=document.createElement("div");n.style.marginTop="0px";n.style.whiteSpace="nowrap";n.style.overflow="auto";n.style.lineHeight="normal";mxUtils.write(n,d);l.appendChild(n);var p=document.createElement("select"),q=mxUtils.bind(this,function(){x=mxUtils.parseXml(k[p.value].data);A=a.editor.extractGraphModel(x.documentElement,!0);B=0;this.init()});if(null!=k){p.style.marginLeft="4px";for(d=0;d<k.length;d++){var u=document.createElement("option");
u.setAttribute("value",d);var t=new Date(k[d].created),v=new Date(k[d].modified);mxUtils.write(u,t.toLocaleDateString()+" "+t.toLocaleTimeString()+" - "+(t.toDateString(),v.toDateString(),v.toLocaleDateString())+" "+v.toLocaleTimeString());p.appendChild(u)}n.appendChild(p);mxEvent.addListener(p,"change",q)}null==c&&(c=k[0].data);var z=document.createElement("div");z.style.position="absolute";z.style.border="1px solid lightGray";z.style.marginTop="10px";z.style.left="40px";z.style.right="40px";z.style.top=
"46px";z.style.bottom="74px";z.style.overflow="hidden";mxEvent.disableContextMenu(z);l.appendChild(z);var y=new Graph(z);y.setEnabled(!1);y.setPanning(!0);y.panningHandler.ignoreCell=!0;y.panningHandler.useLeftButtonForPanning=!0;y.minFitScale=null;y.maxFitScale=null;y.centerZoom=!0;var x=mxUtils.parseXml(c),A=a.editor.extractGraphModel(x.documentElement,!0),B=0,C=null,D=y.getGlobalVariable;y.getGlobalVariable=function(a){return"page"==a&&null!=C&&null!=C[B]?C[B].getAttribute("name"):"pagenumber"==
@@ -10052,15 +10052,15 @@ G.checked)return t=!0,k(!0,c,d);n.isEnabled()&&!d&&n.clearSelection()}u=null!=I;
B.style.marginBottom="6px";B.style.width=A;B.style.fontSize="12px";B.style.borderRadius="4px";B.style.padding="6px";x.appendChild(B);mxUtils.br(x);var C;g&&(C=document.createElement("input"),C.setAttribute("placeholder",mxResources.get("replaceWith")),C.setAttribute("type","text"),C.style.marginTop="4px",C.style.marginBottom="6px",C.style.width=A,C.style.fontSize="12px",C.style.borderRadius="4px",C.style.padding="6px",x.appendChild(C),mxUtils.br(x),mxEvent.addListener(C,"input",e));var D=document.createElement("input");
D.setAttribute("id","geFindWinRegExChck");D.setAttribute("type","checkbox");D.style.marginRight="4px";x.appendChild(D);A=document.createElement("label");A.setAttribute("for","geFindWinRegExChck");x.appendChild(A);mxUtils.write(A,mxResources.get("regularExpression"));x.appendChild(A);A=a.menus.createHelpLink("https://www.diagrams.net/doc/faq/find-shapes");A.style.position="relative";A.style.marginLeft="6px";A.style.top="-1px";x.appendChild(A);mxUtils.br(x);var G=document.createElement("input");G.setAttribute("id",
"geFindWinAllPagesChck");G.setAttribute("type","checkbox");G.style.marginRight="4px";x.appendChild(G);A=document.createElement("label");A.setAttribute("for","geFindWinAllPagesChck");x.appendChild(A);mxUtils.write(A,mxResources.get("allPages"));x.appendChild(A);var E=document.createElement("div");mxUtils.br(x);A=document.createElement("div");A.style.left="0px";A.style.right="0px";A.style.marginTop="6px";A.style.padding="0 6px 0 6px";A.style.textAlign="center";x.appendChild(A);var F=mxUtils.button(mxResources.get("reset"),
-function(){M.innerHTML="";B.value="";B.style.backgroundColor="";g&&(C.value="",e());p=q=null;t=!1;B.focus()});F.setAttribute("title",mxResources.get("reset"));F.style["float"]="none";F.style.width="120px";F.style.marginTop="6px";F.style.marginLeft="8px";F.style.overflow="hidden";F.style.textOverflow="ellipsis";F.className="geBtn";g||A.appendChild(F);var J=mxUtils.button(mxResources.get("find"),function(){try{B.style.backgroundColor=k()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(V){a.handleError(V)}});
-J.setAttribute("title",mxResources.get("find")+" (Enter)");J.style["float"]="none";J.style.width="120px";J.style.marginTop="6px";J.style.marginLeft="8px";J.style.overflow="hidden";J.style.textOverflow="ellipsis";J.className="geBtn gePrimaryBtn";A.appendChild(J);var M=document.createElement("div");M.style.marginTop="10px";if(g){var K=function(a,b,e,c,d){if(null==d||"1"!=d.html)return c=a.toLowerCase().indexOf(b,c),0>c?a:a.substr(0,c)+e+a.substr(c+b.length);var k=a;b=mxUtils.htmlEntities(b);d=[];for(var l=
+function(){M.innerHTML="";B.value="";B.style.backgroundColor="";g&&(C.value="",e());p=q=null;t=!1;B.focus()});F.setAttribute("title",mxResources.get("reset"));F.style["float"]="none";F.style.width="120px";F.style.marginTop="6px";F.style.marginLeft="8px";F.style.overflow="hidden";F.style.textOverflow="ellipsis";F.className="geBtn";g||A.appendChild(F);var K=mxUtils.button(mxResources.get("find"),function(){try{B.style.backgroundColor=k()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(V){a.handleError(V)}});
+K.setAttribute("title",mxResources.get("find")+" (Enter)");K.style["float"]="none";K.style.width="120px";K.style.marginTop="6px";K.style.marginLeft="8px";K.style.overflow="hidden";K.style.textOverflow="ellipsis";K.className="geBtn gePrimaryBtn";A.appendChild(K);var M=document.createElement("div");M.style.marginTop="10px";if(g){var J=function(a,b,e,c,d){if(null==d||"1"!=d.html)return c=a.toLowerCase().indexOf(b,c),0>c?a:a.substr(0,c)+e+a.substr(c+b.length);var k=a;b=mxUtils.htmlEntities(b);d=[];for(var l=
-1;-1<(l=a.indexOf("<",l+1));)d.push(l);l=a.match(/<[^>]*>/g);a=a.replace(/<[^>]*>/g,"");c=a.toLowerCase().indexOf(b,c);if(0>c)return k;k=c+b.length;e=mxUtils.htmlEntities(e);a=a.substr(0,c)+e+a.substr(k);for(var f=0,g=0;g<d.length;g++){if(d[g]-f<c)a=a.substr(0,d[g])+l[g]+a.substr(d[g]);else{var n=d[g]-f<k?c+f:d[g]+(e.length-b.length);a=a.substr(0,n)+l[g]+a.substr(n)}f+=l[g].length}return a},I=mxUtils.button(mxResources.get("replFind"),function(){try{if(null!=v&&null!=q&&C.value){var b=q.cell,e=n.getLabel(b);
-n.isCellEditable(b)&&n.model.setValue(b,K(e,v,C.value,z-v.length,n.getCurrentCellStyle(b)));B.style.backgroundColor=k(!1,!0)?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}}catch(P){a.handleError(P)}});I.setAttribute("title",mxResources.get("replFind"));I.style["float"]="none";I.style.width="120px";I.style.marginTop="6px";I.style.marginLeft="8px";I.style.overflow="hidden";I.style.textOverflow="ellipsis";I.className="geBtn gePrimaryBtn";I.setAttribute("disabled","disabled");A.appendChild(I);mxUtils.br(A);
-var N=mxUtils.button(mxResources.get("replace"),function(){try{if(null!=v&&null!=q&&C.value){var b=q.cell,e=n.getLabel(b);n.model.setValue(b,K(e,v,C.value,z-v.length,n.getCurrentCellStyle(b)));I.setAttribute("disabled","disabled");N.setAttribute("disabled","disabled")}}catch(P){a.handleError(P)}});N.setAttribute("title",mxResources.get("replace"));N.style["float"]="none";N.style.width="120px";N.style.marginTop="6px";N.style.marginLeft="8px";N.style.overflow="hidden";N.style.textOverflow="ellipsis";
-N.className="geBtn gePrimaryBtn";N.setAttribute("disabled","disabled");A.appendChild(N);var H=mxUtils.button(mxResources.get("replaceAll"),function(){M.innerHTML="";if(C.value){var b=a.currentPage,e=a.editor.graph.getSelectionCells();a.editor.graph.rendering=!1;n.getModel().beginUpdate();try{for(var c=0,d={};k(!1,!0,!0)&&100>c;){var l=q.cell,g=n.getLabel(l),f=d[l.id];if(f&&f.replAllMrk==y&&f.replAllPos>=z)break;d[l.id]={replAllMrk:y,replAllPos:z};n.isCellEditable(l)&&(n.model.setValue(l,K(g,v,C.value,
+n.isCellEditable(b)&&n.model.setValue(b,J(e,v,C.value,z-v.length,n.getCurrentCellStyle(b)));B.style.backgroundColor=k(!1,!0)?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}}catch(P){a.handleError(P)}});I.setAttribute("title",mxResources.get("replFind"));I.style["float"]="none";I.style.width="120px";I.style.marginTop="6px";I.style.marginLeft="8px";I.style.overflow="hidden";I.style.textOverflow="ellipsis";I.className="geBtn gePrimaryBtn";I.setAttribute("disabled","disabled");A.appendChild(I);mxUtils.br(A);
+var N=mxUtils.button(mxResources.get("replace"),function(){try{if(null!=v&&null!=q&&C.value){var b=q.cell,e=n.getLabel(b);n.model.setValue(b,J(e,v,C.value,z-v.length,n.getCurrentCellStyle(b)));I.setAttribute("disabled","disabled");N.setAttribute("disabled","disabled")}}catch(P){a.handleError(P)}});N.setAttribute("title",mxResources.get("replace"));N.style["float"]="none";N.style.width="120px";N.style.marginTop="6px";N.style.marginLeft="8px";N.style.overflow="hidden";N.style.textOverflow="ellipsis";
+N.className="geBtn gePrimaryBtn";N.setAttribute("disabled","disabled");A.appendChild(N);var H=mxUtils.button(mxResources.get("replaceAll"),function(){M.innerHTML="";if(C.value){var b=a.currentPage,e=a.editor.graph.getSelectionCells();a.editor.graph.rendering=!1;n.getModel().beginUpdate();try{for(var c=0,d={};k(!1,!0,!0)&&100>c;){var l=q.cell,g=n.getLabel(l),f=d[l.id];if(f&&f.replAllMrk==y&&f.replAllPos>=z)break;d[l.id]={replAllMrk:y,replAllPos:z};n.isCellEditable(l)&&(n.model.setValue(l,J(g,v,C.value,
z-v.length,n.getCurrentCellStyle(l))),c++)}b!=a.currentPage&&a.editor.graph.model.execute(new SelectPage(a,b));mxUtils.write(M,mxResources.get("matchesRepl",[c]))}catch(Z){a.handleError(Z)}finally{n.getModel().endUpdate(),a.editor.graph.setSelectionCells(e),a.editor.graph.rendering=!0}y++}});H.setAttribute("title",mxResources.get("replaceAll"));H.style["float"]="none";H.style.width="120px";H.style.marginTop="6px";H.style.marginLeft="8px";H.style.overflow="hidden";H.style.textOverflow="ellipsis";H.className=
"geBtn gePrimaryBtn";H.setAttribute("disabled","disabled");A.appendChild(H);mxUtils.br(A);A.appendChild(F);F=mxUtils.button(mxResources.get("close"),mxUtils.bind(this,function(){this.window.setVisible(!1)}));F.setAttribute("title",mxResources.get("close"));F.style["float"]="none";F.style.width="120px";F.style.marginTop="6px";F.style.marginLeft="8px";F.style.overflow="hidden";F.style.textOverflow="ellipsis";F.className="geBtn";A.appendChild(F);mxUtils.br(A);A.appendChild(M)}else F.style.width="90px",
-J.style.width="90px";mxEvent.addListener(B,"keyup",function(a){if(91==a.keyCode||93==a.keyCode||17==a.keyCode)mxEvent.consume(a);else if(27==a.keyCode)l.funct();else if(p!=B.value.toLowerCase()||13==a.keyCode)try{B.style.backgroundColor=k()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(U){B.style.backgroundColor=Editor.isDarkMode()?"#ff0000":"#ffcfcf"}});mxEvent.addListener(x,"keydown",function(b){70==b.keyCode&&a.keyHandler.isControlDown(b)&&!mxEvent.isShiftDown(b)&&(l.funct(),mxEvent.consume(b))});
+K.style.width="90px";mxEvent.addListener(B,"keyup",function(a){if(91==a.keyCode||93==a.keyCode||17==a.keyCode)mxEvent.consume(a);else if(27==a.keyCode)l.funct();else if(p!=B.value.toLowerCase()||13==a.keyCode)try{B.style.backgroundColor=k()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(U){B.style.backgroundColor=Editor.isDarkMode()?"#ff0000":"#ffcfcf"}});mxEvent.addListener(x,"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")+(g?"/"+mxResources.get("replace"):""),x,d,c,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()?(B.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?B.select():document.execCommand("selectAll",!1,null),null!=a.pages&&1<a.pages.length?G.removeAttribute("disabled"):
(G.checked=!1,G.setAttribute("disabled","disabled"))):n.container.focus()}));this.window.setLocation=function(a,b){var e=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,e-this.table.clientHeight-("1"==urlParams.sketch?3:48)));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};
var L=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",L);this.destroy=function(){mxEvent.removeListener(window,"resize",L);this.window.destroy()}},FreehandWindow=function(a,d,c,b,f){var g=a.editor.graph;a=document.createElement("div");a.style.textAlign="center";a.style.userSelect="none";a.style.overflow="hidden";a.style.height="100%";var m=mxUtils.button(mxResources.get("startDrawing"),function(){g.freehand.isDrawing()?
@@ -10107,16 +10107,16 @@ document.createElement("td");mxUtils.write(k,mxResources.get("height")+":");var
1==d.length?mxUtils.getValue(c.getCellStyle(d[0]),mxConstants.STYLE_ROTATION,0):"";l.appendChild(y);e.appendChild(k);e.appendChild(l);m.appendChild(e);g.appendChild(m);f.appendChild(g);b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";var x=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c.getModel().beginUpdate();try{for(var b=0;b<d.length;b++){var e=c.getCellGeometry(d[b]);null!=e&&(e=e.clone(),c.isCellMovable(d[b])&&(e.relative=n.checked,
0<mxUtils.trim(p.value).length&&(e.x=Number(p.value)),0<mxUtils.trim(q.value).length&&(e.y=Number(q.value)),0<mxUtils.trim(u.value).length&&(null==e.offset&&(e.offset=new mxPoint),e.offset.x=Number(u.value)),0<mxUtils.trim(t.value).length&&(null==e.offset&&(e.offset=new mxPoint),e.offset.y=Number(t.value))),c.isCellResizable(d[b])&&(0<mxUtils.trim(v.value).length&&(e.width=Number(v.value)),0<mxUtils.trim(z.value).length&&(e.height=Number(z.value))),c.getModel().setGeometry(d[b],e));0<mxUtils.trim(y.value).length&&
c.setCellStyles(mxConstants.STYLE_ROTATION,Number(y.value),[d[b]])}}finally{c.getModel().endUpdate()}});x.className="geBtn gePrimaryBtn";mxEvent.addListener(f,"keypress",function(a){13==a.keyCode&&x.click()});g=document.createElement("div");g.style.marginTop="20px";g.style.textAlign="right";a.editor.cancelFirst?(g.appendChild(b),g.appendChild(x)):(g.appendChild(x),g.appendChild(b));f.appendChild(g);this.container=f},LibraryDialog=function(a,d,c,b,f,g){function m(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 e=u.firstChild,b=0;null!=e&&e!=a;)e=e.nextSibling,b++;return b}function e(b,c,d,k,l,f,g,p,q){try{if(a.spinner.stop(),null==c||"image/"==c.substring(0,6))if(null==b&&null!=g||null==v[b]){var I=function(){D.innerHTML="";D.style.cursor="pointer";D.style.whiteSpace="nowrap";D.style.textOverflow="ellipsis";mxUtils.write(D,null!=J.title&&0<J.title.length?J.title:mxResources.get("untitled"));D.style.color=null==J.title||0==
-J.title.length?"#d0d0d0":""};u.style.backgroundImage="";t.style.display="none";var H=l,N=f;if(l>a.maxImageSize||f>a.maxImageSize){var E=Math.min(1,Math.min(a.maxImageSize/Math.max(1,l)),a.maxImageSize/Math.max(1,f));l*=E;f*=E}H>N?(N=Math.round(100*N/H),H=100):(H=Math.round(100*H/N),N=100);var y=document.createElement("div");y.setAttribute("draggable","true");y.style.display="inline-block";y.style.position="relative";y.style.cursor="move";mxUtils.setPrefixedStyle(y.style,"transition","transform .1s ease-in-out");
-if(null!=b){var G=document.createElement("img");G.setAttribute("src",A.convert(b));G.style.width=H+"px";G.style.height=N+"px";G.style.margin="10px";G.style.paddingBottom=Math.floor((100-N)/2)+"px";G.style.paddingLeft=Math.floor((100-H)/2)+"px";y.appendChild(G)}else if(null!=g){var K=a.stringToCells(Graph.decompress(g.xml));0<K.length&&(a.sidebar.createThumb(K,100,100,y,null,!0,!1),y.firstChild.style.display="inline-block",y.firstChild.style.cursor="")}var C=document.createElement("img");C.setAttribute("src",
+a.clientY);null!=a&&a.parentNode!=u;)a=a.parentNode;var b=null;if(null!=a)for(var e=u.firstChild,b=0;null!=e&&e!=a;)e=e.nextSibling,b++;return b}function e(b,c,d,k,l,f,g,p,q){try{if(a.spinner.stop(),null==c||"image/"==c.substring(0,6))if(null==b&&null!=g||null==v[b]){var I=function(){D.innerHTML="";D.style.cursor="pointer";D.style.whiteSpace="nowrap";D.style.textOverflow="ellipsis";mxUtils.write(D,null!=K.title&&0<K.title.length?K.title:mxResources.get("untitled"));D.style.color=null==K.title||0==
+K.title.length?"#d0d0d0":""};u.style.backgroundImage="";t.style.display="none";var H=l,N=f;if(l>a.maxImageSize||f>a.maxImageSize){var E=Math.min(1,Math.min(a.maxImageSize/Math.max(1,l)),a.maxImageSize/Math.max(1,f));l*=E;f*=E}H>N?(N=Math.round(100*N/H),H=100):(H=Math.round(100*H/N),N=100);var y=document.createElement("div");y.setAttribute("draggable","true");y.style.display="inline-block";y.style.position="relative";y.style.cursor="move";mxUtils.setPrefixedStyle(y.style,"transition","transform .1s ease-in-out");
+if(null!=b){var G=document.createElement("img");G.setAttribute("src",A.convert(b));G.style.width=H+"px";G.style.height=N+"px";G.style.margin="10px";G.style.paddingBottom=Math.floor((100-N)/2)+"px";G.style.paddingLeft=Math.floor((100-H)/2)+"px";y.appendChild(G)}else if(null!=g){var J=a.stringToCells(Graph.decompress(g.xml));0<J.length&&(a.sidebar.createThumb(J,100,100,y,null,!0,!1),y.firstChild.style.display="inline-block",y.firstChild.style.cursor="")}var C=document.createElement("img");C.setAttribute("src",
Editor.closeImage);C.setAttribute("border","0");C.setAttribute("title",mxResources.get("delete"));C.setAttribute("align","top");C.style.paddingTop="4px";C.style.position="absolute";C.style.marginLeft="-12px";C.style.zIndex="1";C.style.cursor="pointer";mxEvent.addListener(C,"dragstart",function(a){mxEvent.consume(a)});(function(a,b,e){mxEvent.addListener(C,"click",function(c){v[b]=null;for(var d=0;d<n.length;d++)if(null!=n[d].data&&n[d].data==b||null!=n[d].xml&&null!=e&&n[d].xml==e.xml){n.splice(d,
1);break}y.parentNode.removeChild(a);0==n.length&&(u.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",t.style.display="");mxEvent.consume(c)});mxEvent.addListener(C,"dblclick",function(a){mxEvent.consume(a)})})(y,b,g);y.appendChild(C);y.style.marginBottom="30px";var D=document.createElement("div");D.style.position="absolute";D.style.boxSizing="border-box";D.style.bottom="-18px";D.style.left="10px";D.style.right="10px";D.style.backgroundColor=Editor.isDarkMode()?"#2a2a2a":"#ffffff";D.style.overflow=
-"hidden";D.style.textAlign="center";var J=null;null!=b?(J={data:b,w:l,h:f,title:q},null!=p&&(J.aspect=p),v[b]=G,n.push(J)):null!=g&&(g.aspect="fixed",n.push(g),J=g);mxEvent.addListener(D,"keydown",function(a){13==a.keyCode&&null!=x&&(x(),x=null,mxEvent.consume(a))});I();y.appendChild(D);mxEvent.addListener(D,"mousedown",function(a){"true"!=D.getAttribute("contentEditable")&&mxEvent.consume(a)});K=function(b){if(mxClient.IS_IOS||mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var e=
-new FilenameDialog(a,J.title||"",mxResources.get("ok"),function(a){null!=a&&(J.title=a,I())},mxResources.get("enterValue"));a.showDialog(e.container,300,80,!0,!0);e.init();mxEvent.consume(b)}else if("true"!=D.getAttribute("contentEditable")){null!=x&&(x(),x=null);if(null==J.title||0==J.title.length)D.innerHTML="";D.style.textOverflow="";D.style.whiteSpace="";D.style.cursor="text";D.style.color="";D.setAttribute("contentEditable","true");mxUtils.setPrefixedStyle(D.style,"user-select","text");D.focus();
-document.execCommand("selectAll",!1,null);x=function(){D.removeAttribute("contentEditable");D.style.cursor="pointer";J.title=D.innerHTML;I()};mxEvent.consume(b)}};mxEvent.addListener(D,"click",K);mxEvent.addListener(y,"dblclick",K);u.appendChild(y);mxEvent.addListener(y,"dragstart",function(a){null==b&&null!=g&&(C.style.visibility="hidden",D.style.visibility="hidden");mxClient.IS_FF&&null!=g.xml&&a.dataTransfer.setData("Text",g.xml);z=m(a);mxClient.IS_GC&&(y.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(y.style,
+"hidden";D.style.textAlign="center";var K=null;null!=b?(K={data:b,w:l,h:f,title:q},null!=p&&(K.aspect=p),v[b]=G,n.push(K)):null!=g&&(g.aspect="fixed",n.push(g),K=g);mxEvent.addListener(D,"keydown",function(a){13==a.keyCode&&null!=x&&(x(),x=null,mxEvent.consume(a))});I();y.appendChild(D);mxEvent.addListener(D,"mousedown",function(a){"true"!=D.getAttribute("contentEditable")&&mxEvent.consume(a)});J=function(b){if(mxClient.IS_IOS||mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var e=
+new FilenameDialog(a,K.title||"",mxResources.get("ok"),function(a){null!=a&&(K.title=a,I())},mxResources.get("enterValue"));a.showDialog(e.container,300,80,!0,!0);e.init();mxEvent.consume(b)}else if("true"!=D.getAttribute("contentEditable")){null!=x&&(x(),x=null);if(null==K.title||0==K.title.length)D.innerHTML="";D.style.textOverflow="";D.style.whiteSpace="";D.style.cursor="text";D.style.color="";D.setAttribute("contentEditable","true");mxUtils.setPrefixedStyle(D.style,"user-select","text");D.focus();
+document.execCommand("selectAll",!1,null);x=function(){D.removeAttribute("contentEditable");D.style.cursor="pointer";K.title=D.innerHTML;I()};mxEvent.consume(b)}};mxEvent.addListener(D,"click",J);mxEvent.addListener(y,"dblclick",J);u.appendChild(y);mxEvent.addListener(y,"dragstart",function(a){null==b&&null!=g&&(C.style.visibility="hidden",D.style.visibility="hidden");mxClient.IS_FF&&null!=g.xml&&a.dataTransfer.setData("Text",g.xml);z=m(a);mxClient.IS_GC&&(y.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(y.style,
"transform","scale(0.5,0.5)");mxUtils.setOpacity(y,30);C.style.visibility="";D.style.visibility=""},0)});mxEvent.addListener(y,"dragend",function(a){"hidden"==C.style.visibility&&(C.style.visibility="",D.style.visibility="");z=null;mxUtils.setOpacity(y,100);mxUtils.setPrefixedStyle(y.style,"transform",null)})}else B||(B=!0,a.handleError({message:mxResources.get("fileExists")}));else{l=!1;try{if(H=mxUtils.parseXml(b),"mxlibrary"==H.documentElement.nodeName){N=JSON.parse(mxUtils.getTextContent(H.documentElement));
-if(null!=N&&0<N.length)for(var F=0;F<N.length;F++)null!=N[F].xml?e(null,null,0,0,0,0,N[F]):e(N[F].data,null,0,0,N[F].w,N[F].h,null,"fixed",N[F].title);l=!0}else if("mxfile"==H.documentElement.nodeName){for(var M=H.documentElement.getElementsByTagName("diagram"),F=0;F<M.length;F++){var N=mxUtils.getTextContent(M[F]),K=a.stringToCells(Graph.decompress(N)),O=a.editor.graph.getBoundingBoxFromGeometry(K);e(null,null,0,0,0,0,{xml:N,w:O.width,h:O.height})}l=!0}}catch(Q){}l||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(Q){}return null}
+if(null!=N&&0<N.length)for(var F=0;F<N.length;F++)null!=N[F].xml?e(null,null,0,0,0,0,N[F]):e(N[F].data,null,0,0,N[F].w,N[F].h,null,"fixed",N[F].title);l=!0}else if("mxfile"==H.documentElement.nodeName){for(var M=H.documentElement.getElementsByTagName("diagram"),F=0;F<M.length;F++){var N=mxUtils.getTextContent(M[F]),J=a.stringToCells(Graph.decompress(N)),O=a.editor.graph.getBoundingBoxFromGeometry(J);e(null,null,0,0,0,0,{xml:N,w:O.width,h:O.height})}l=!0}}catch(Q){}l||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(Q){}return null}
function k(a){a.dataTransfer.dropEffect=null!=z?"move":"copy";a.stopPropagation();a.preventDefault()}function l(b){b.stopPropagation();b.preventDefault();B=!1;y=m(b);if(null!=z)null!=y&&y<u.children.length?(n.splice(y>z?y-1:y,0,n.splice(z,1)[0]),u.insertBefore(u.children[z],u.children[y])):(n.push(n.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,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){e(c,null,0,0,a.width,a.height);u.scrollTop=u.scrollHeight})}b.stopPropagation();b.preventDefault()}var n=[];c=document.createElement("div");c.style.height="100%";var p=document.createElement("div");p.style.whiteSpace="nowrap";p.style.height="40px";c.appendChild(p);mxUtils.write(p,mxResources.get("filename")+
":");null==d&&(d=a.defaultLibraryName+".xml");var q=document.createElement("input");q.setAttribute("value",d);q.style.marginRight="20px";q.style.marginLeft="10px";q.style.width="500px";null==f||f.isRenamable()||q.setAttribute("disabled","true");this.init=function(){if(null==f||f.isRenamable())q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};p.appendChild(q);var u=document.createElement("div");u.style.borderWidth="1px 0px 1px 0px";
@@ -10161,19 +10161,19 @@ mxUtils.write(e,mxResources.get("custom"));k.appendChild(e);for(var l in b){e=do
I.style.padding="0";I.style.margin="0";d(l,u.lblOnly,I,x);q.appendChild(I)}p.appendChild(q);e.className="geTempTree";e.appendChild(p);(function(a,b){mxEvent.addListener(b,"click",function(){for(var e=a.querySelectorAll("li"),c=0;c<e.length;c++)e[c].style.margin="";a.style.visibility="visible";a.classList.toggle("geTempTreeActive");a.classList.toggle("geTempTreeNested")&&setTimeout(function(){for(var b=0;b<e.length;b++)e[b].style.margin="0";a.style.visibility="hidden"},250);b.classList.toggle("geTempTreeCaret-down")})})(q,
m)}else e.className="geTemplateCatLink geTemplateDrawioCatLink",e.setAttribute("title",f.fullLbl),e.innerHTML=f.lbl;k.appendChild(e);d(l,f.lblOnly,n)}}function F(){mxUtils.get(b,function(a){if(!ra){ra=!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=[],k=0;k<c.length;k++)d.push(encodeURIComponent(mxUtils.getTextContent(c[k])));null!=e&&0<d.length&&(b[e]=
d.join(";"))}else if(d=a.getAttribute("url"),null!=d){c=a.getAttribute("section");e=a.getAttribute("subsection");if(null==c&&(k=d.indexOf("/"),c=d.substring(0,k),null==e)){var l=d.indexOf("/",k+1);-1<l&&(e=d.substring(k+1,l))}k=R[c];null==k&&(va++,k=[],R[c]=k);d=a.getAttribute("clibs");null!=b[d]&&(d=b[d]);d={url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title")||a.getAttribute("name"),preview:a.getAttribute("preview"),clibs:d,tags:a.getAttribute("tags")};k.push(d);null!=
-e&&(k=ta[c],null==k&&(k={},ta[c]=k),c=k[e],null==c&&(c=[],k[e]=c),c.push(d))}a=a.nextSibling}E(R,la,ya)}})}function J(a){m&&(na.scrollTop=0,T.innerHTML="",pa.spin(T),V=!1,L=!0,fa.innerHTML=mxUtils.htmlEntities(mxResources.get("recentDiag")),ba=null,m(xa,function(){v(mxResources.get("cannotLoad"));xa([])},a?null:g))}function M(a){if(""==a)null!=P&&(P.click(),P=null);else{if(null==TemplatesDialog.tagsList[b]){var e={},c;for(c in R)for(var d=R[c],k=0;k<d.length;k++){var l=d[k];if(null!=l.tags)for(var f=
+e&&(k=ta[c],null==k&&(k={},ta[c]=k),c=k[e],null==c&&(c=[],k[e]=c),c.push(d))}a=a.nextSibling}E(R,la,ya)}})}function K(a){m&&(na.scrollTop=0,T.innerHTML="",pa.spin(T),V=!1,L=!0,fa.innerHTML=mxUtils.htmlEntities(mxResources.get("recentDiag")),ba=null,m(xa,function(){v(mxResources.get("cannotLoad"));xa([])},a?null:g))}function M(a){if(""==a)null!=P&&(P.click(),P=null);else{if(null==TemplatesDialog.tagsList[b]){var e={},c;for(c in R)for(var d=R[c],k=0;k<d.length;k++){var l=d[k];if(null!=l.tags)for(var f=
l.tags.toLowerCase().split(";"),g=0;g<f.length;g++)null==e[f[g]]&&(e[f[g]]=[]),e[f[g]].push(l)}TemplatesDialog.tagsList[b]=e}var n=a.toLowerCase().split(" "),e=TemplatesDialog.tagsList[b];if(0<ya&&null==e.__tagsList__){for(c in la)for(d=la[c],k=0;k<d.length;k++)for(l=d[k],f=l.title.split(" "),f.push(c),g=0;g<f.length;g++){var p=f[g].toLowerCase();null==e[p]&&(e[p]=[]);e[p].push(l)}e.__tagsList__=!0}c=[];d={};for(k=f=0;k<n.length;k++)if(0<n[k].length){var p=e[n[k]],m={};c=[];if(null!=p)for(g=0;g<p.length;g++)l=
-p[g],0==f==(null==d[l.url])&&(m[l.url]=!0,c.push(l));d=m;f++}0==c.length?fa.innerHTML=mxResources.get("noResultsFor",[a]):D(c,!0)}}function K(a){if(ba!=a||X!=O)z(),na.scrollTop=0,T.innerHTML="",fa.innerHTML=mxUtils.htmlEntities(mxResources.get("searchResults"))+' "'+mxUtils.htmlEntities(a)+'"',sa=null,Q?M(a):e&&(a?(pa.spin(T),V=!1,L=!0,e(a,xa,function(){v(mxResources.get("searchFailed"));xa([])},X?null:g)):J(X)),ba=a,O=X}function I(a){null!=sa&&clearTimeout(sa);13==a.keyCode?K(oa.value):sa=setTimeout(function(){K(oa.value)},
+p[g],0==f==(null==d[l.url])&&(m[l.url]=!0,c.push(l));d=m;f++}0==c.length?fa.innerHTML=mxResources.get("noResultsFor",[a]):D(c,!0)}}function J(a){if(ba!=a||X!=O)z(),na.scrollTop=0,T.innerHTML="",fa.innerHTML=mxUtils.htmlEntities(mxResources.get("searchResults"))+' "'+mxUtils.htmlEntities(a)+'"',sa=null,Q?M(a):e&&(a?(pa.spin(T),V=!1,L=!0,e(a,xa,function(){v(mxResources.get("searchFailed"));xa([])},X?null:g)):K(X)),ba=a,O=X}function I(a){null!=sa&&clearTimeout(sa);13==a.keyCode?J(oa.value):sa=setTimeout(function(){J(oa.value)},
1E3)}var N='<div class="geTempDlgHeader"><img src="/images/draw.io-logo.svg" class="geTempDlgHeaderLogo"><input type="search" class="geTempDlgSearchBox" '+(e?"":'style="display: none"')+' placeholder="'+mxResources.get("search")+'"></div><div class="geTemplatesList" style="display: none"><div class="geTempDlgBack">&lt; '+mxResources.get("back")+'</div><div class="geTempDlgHLine"></div><div class="geTemplatesLbl">'+mxResources.get("templates")+'</div></div><div class="geTempDlgContent" style="width: 100%"><div class="geTempDlgNewDiagramCat"><div class="geTempDlgNewDiagramCatLbl">'+
mxResources.get("newDiagram")+'</div><div class="geTempDlgNewDiagramCatList"></div><div class="geTempDlgNewDiagramCatFooter"><div class="geTempDlgShowAllBtn">'+mxResources.get("showMore")+'</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")+'</span></div><div class="geTempDlgRadioBtn geTempDlgRadioBtnLarge geTempDlgRadioBtnActive" data-id="allDiagramsBtn"><img src="/images/all-diagrams-sel.svg" class="geTempDlgAllDiagramsBtnImg"> <span>'+mxResources.get("allDiagrams")+'</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"><div class="geTempDlgErrMsg"></div>'+
(q?'<span class="geTempDlgLinkToDiagram geTempDlgLinkToDiagramHint">'+mxResources.get("linkToDiagramHint")+'</span><button class="geTempDlgLinkToDiagram geTempDlgLinkToDiagramBtn">'+mxResources.get("linkToDiagram")+"</button>":"")+(p?'<div class="geTempDlgOpenBtn">'+mxResources.get("open")+"</div>":"")+'<div class="geTempDlgCreateBtn">'+mxResources.get("create")+'</div><div class="geTempDlgCancelBtn">'+mxResources.get("cancel")+"</div></div>",H=document.createElement("div");H.innerHTML=N;H.className=
"geTemplateDlg";this.container=H;b=null!=b?b:TEMPLATE_PATH+"/index.xml";f=null!=f?f:NEW_DIAGRAM_CATS_PATH+"/index.xml";var L=!1,V=!1,U=null,P=null,W=null,ha=null,ea=!1,X=!0,Z=!1,Y=[],ga=null,ba,O,Q=!1,ma=H.querySelector(".geTempDlgShowAllBtn"),T=H.querySelector(".geTempDlgDiagramsTiles"),fa=H.querySelector(".geTempDlgDiagramsListTitle"),ja=H.querySelector(".geTempDlgDiagramsListBtns"),na=H.querySelector(".geTempDlgContent"),S=H.querySelector(".geTempDlgDiagramsList"),aa=H.querySelector(".geTempDlgNewDiagramCat"),
ca=H.querySelector(".geTempDlgNewDiagramCatList"),da=H.querySelector(".geTempDlgCreateBtn"),qa=H.querySelector(".geTempDlgOpenBtn"),oa=H.querySelector(".geTempDlgSearchBox"),ka=H.querySelector(".geTempDlgErrMsg"),pa=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(H.querySelector(".geTempDlgBack"),"click",function(){z();Q=!1;H.querySelector(".geTemplatesList").style.display="none";na.style.width=
-"100%";aa.style.display="";S.style.minHeight="calc(100% - 280px)";oa.style.display=e?"":"none";oa.value="";ba=null;J(X)});mxEvent.addListener(H.querySelector(".geTempDlgRadioBtn[data-id=allDiagramsBtn]"),"click",function(){y(this,"geTempDlgAllDiagramsBtnImg","all-diagrams","myDiagramsBtn","geTempDlgMyDiagramsBtnImg","my-diagrams",!0)&&(X=!0,null==ba?J(X):K(ba))});mxEvent.addListener(H.querySelector(".geTempDlgRadioBtn[data-id=myDiagramsBtn]"),"click",function(){y(this,"geTempDlgMyDiagramsBtnImg",
-"my-diagrams","allDiagramsBtn","geTempDlgAllDiagramsBtnImg","all-diagrams",!0)&&(X=!1,null==ba?J(X):K(ba))});mxEvent.addListener(H.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){y(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg","tiles",!1)&&(Z=!0,D(Y,!1,Z,ga))});mxEvent.addListener(H.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){y(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(Z=!1,D(Y,!1,Z,ga))});
+"100%";aa.style.display="";S.style.minHeight="calc(100% - 280px)";oa.style.display=e?"":"none";oa.value="";ba=null;K(X)});mxEvent.addListener(H.querySelector(".geTempDlgRadioBtn[data-id=allDiagramsBtn]"),"click",function(){y(this,"geTempDlgAllDiagramsBtnImg","all-diagrams","myDiagramsBtn","geTempDlgMyDiagramsBtnImg","my-diagrams",!0)&&(X=!0,null==ba?K(X):J(ba))});mxEvent.addListener(H.querySelector(".geTempDlgRadioBtn[data-id=myDiagramsBtn]"),"click",function(){y(this,"geTempDlgMyDiagramsBtnImg",
+"my-diagrams","allDiagramsBtn","geTempDlgAllDiagramsBtnImg","all-diagrams",!0)&&(X=!1,null==ba?K(X):J(ba))});mxEvent.addListener(H.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){y(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg","tiles",!1)&&(Z=!0,D(Y,!1,Z,ga))});mxEvent.addListener(H.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){y(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(Z=!1,D(Y,!1,Z,ga))});
var ia=!1;mxEvent.addListener(ma,"click",function(){ea?(aa.style.height="280px",ca.style.height="190px",ma.innerHTML=mxUtils.htmlEntities(mxResources.get("showMore")),G(ua)):(aa.style.height="440px",ca.style.height="355px",ma.innerHTML=mxUtils.htmlEntities(mxResources.get("showLess")),G(ua,!0));ea=!ea});var ra=!1,wa=!1,R={},ta={},la={},ua=[],va=1,ya=0;null!=n?n(function(a,b){la=a;ya=b;F()},F):F();mxUtils.get(f,function(a){if(!wa){wa=!0;for(a=a.getXml().documentElement.firstChild;null!=a;)"undefined"!==
-typeof a.getAttribute&&null!=a.getAttribute("title")&&ua.push({img:a.getAttribute("img"),libs:a.getAttribute("libs"),clibs:a.getAttribute("clibs"),title:a.getAttribute("title")}),a=a.nextSibling;G(ua)}});var xa=function(a,b,e){ja.style.display="";pa.stop();L=!1;if(V)V=!1;else if(b)T.innerHTML=b;else{e=e||{};b=0;for(var c in e)b+=e[c].length;0==a.length&&0==b?T.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams")):D(a,!1,Z,0==b?null:e)}};J(X);var sa=null;mxEvent.addListener(oa,"keyup",I);mxEvent.addListener(oa,
+typeof a.getAttribute&&null!=a.getAttribute("title")&&ua.push({img:a.getAttribute("img"),libs:a.getAttribute("libs"),clibs:a.getAttribute("clibs"),title:a.getAttribute("title")}),a=a.nextSibling;G(ua)}});var xa=function(a,b,e){ja.style.display="";pa.stop();L=!1;if(V)V=!1;else if(b)T.innerHTML=b;else{e=e||{};b=0;for(var c in e)b+=e[c].length;0==a.length&&0==b?T.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams")):D(a,!1,Z,0==b?null:e)}};K(X);var sa=null;mxEvent.addListener(oa,"keyup",I);mxEvent.addListener(oa,
"search",I);mxEvent.addListener(oa,"input",I);mxEvent.addListener(da,"click",function(a){B(!1,!1)});p&&mxEvent.addListener(qa,"click",function(a){B(!1,!0)});q&&mxEvent.addListener(H.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(a){B(!0)});mxEvent.addListener(H.querySelector(".geTempDlgCancelBtn"),"click",function(){null!=c&&c();t||a.hideDialog(!0)})};TemplatesDialog.tagsList={};
var BtnDialog=function(a,d,c,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 m="Unknown",e=document.createElement("img");e.setAttribute("border","0");e.setAttribute("align","absmiddle");e.style.marginRight="10px";d==a.drive?(m=mxResources.get("googleDrive"),e.src=IMAGE_PATH+"/google-drive-logo-white.svg"):d==a.dropbox?
(m=mxResources.get("dropbox"),e.src=IMAGE_PATH+"/dropbox-logo-white.svg"):d==a.oneDrive?(m=mxResources.get("oneDrive"),e.src=IMAGE_PATH+"/onedrive-logo-white.svg"):d==a.gitHub?(m=mxResources.get("github"),e.src=IMAGE_PATH+"/github-logo-white.svg"):d==a.gitLab?(m=mxResources.get("gitlab"),e.src=IMAGE_PATH+"/gitlab-logo.svg"):d==a.notion?(m=mxResources.get("notion"),e.src=IMAGE_PATH+"/notion-logo.svg"):d==a.trello&&(m=mxResources.get("trello"),e.src=IMAGE_PATH+"/trello-logo-white.svg");a=document.createElement("p");
@@ -10312,8 +10312,8 @@ mxUtils.bind(this,function(a){this.cachedGoogleFonts[b]=a;e+=a;c--;d()}),mxUtils
Editor.prototype.addFontCss=function(a,b){b=null!=b?b:this.absoluteCssFonts(this.fontCss);if(null!=b){var e=a.getElementsByTagName("defs"),c=a.ownerDocument;0==e.length?(e=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"defs"):c.createElement("defs"),null!=a.firstChild?a.insertBefore(e,a.firstChild):a.appendChild(e)):e=e[0];c=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"style"):c.createElement("style");c.setAttribute("type","text/css");mxUtils.setTextContent(c,b);e.appendChild(c)}};
Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(a,b,e){var c=mxClient.IS_FF?8192:16384;return Math.min(e,Math.min(c/a,c/b))};Editor.prototype.exportToCanvas=function(a,b,e,c,d,k,l,f,g,n,p,m,q,x,u,t,A,z){try{k=null!=k?k:!0;l=null!=l?l:!0;m=null!=m?m:this.graph;q=null!=q?q:0;var v=g?null:m.background;v==mxConstants.NONE&&(v=null);null==v&&(v=c);null==v&&0==g&&(v=t?this.graph.defaultPageBackgroundColor:"#ffffff");
this.convertImages(m.getSvg(null,null,q,x,null,l,null,null,null,n,null,t,A,z),mxUtils.bind(this,function(e){try{var c=new Image;c.onload=mxUtils.bind(this,function(){try{var l=function(){mxClient.IS_SF?window.setTimeout(function(){x.drawImage(c,0,0);a(g,e)},0):(x.drawImage(c,0,0),a(g,e))},g=document.createElement("canvas"),n=parseInt(e.getAttribute("width")),p=parseInt(e.getAttribute("height"));f=null!=f?f:1;null!=b&&(f=k?Math.min(1,Math.min(3*b/(4*p),b/n)):b/n);f=this.getMaxCanvasScale(n,p,f);n=
-Math.ceil(f*n);p=Math.ceil(f*p);g.setAttribute("width",n);g.setAttribute("height",p);var x=g.getContext("2d");null!=v&&(x.beginPath(),x.rect(0,0,n,p),x.fillStyle=v,x.fill());1!=f&&x.scale(f,f);if(u){var t=m.view,A=t.scale;t.scale=1;var z=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=A;var z="data:image/svg+xml;base64,"+z,I=m.gridSize*t.gridSteps*f,B=m.getGraphBounds(),y=t.translate.x*A,E=t.translate.y*A,H=y+(B.x-y)/A-q,N=E+(B.y-E)/A-q,K=new Image;K.onload=function(){try{for(var a=
--Math.round(I-mxUtils.mod((y-H)*f,I)),b=-Math.round(I-mxUtils.mod((E-N)*f,I));a<n;a+=I)for(var e=b;e<p;e+=I)x.drawImage(K,a/f,e/f);l()}catch(sa){null!=d&&d(sa)}};K.onerror=function(a){null!=d&&d(a)};K.src=z}else l()}catch(va){null!=d&&d(va)}});c.onerror=function(a){null!=d&&d(a)};n&&this.graph.addSvgShadow(e);this.graph.mathEnabled&&this.addMathCss(e);var l=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(e,this.resolvedFontCss),c.src=Editor.createSvgDataUri(mxUtils.getXml(e))}catch(S){null!=
+Math.ceil(f*n);p=Math.ceil(f*p);g.setAttribute("width",n);g.setAttribute("height",p);var x=g.getContext("2d");null!=v&&(x.beginPath(),x.rect(0,0,n,p),x.fillStyle=v,x.fill());1!=f&&x.scale(f,f);if(u){var t=m.view,A=t.scale;t.scale=1;var z=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=A;var z="data:image/svg+xml;base64,"+z,I=m.gridSize*t.gridSteps*f,B=m.getGraphBounds(),E=t.translate.x*A,y=t.translate.y*A,H=E+(B.x-E)/A-q,N=y+(B.y-y)/A-q,J=new Image;J.onload=function(){try{for(var a=
+-Math.round(I-mxUtils.mod((E-H)*f,I)),b=-Math.round(I-mxUtils.mod((y-N)*f,I));a<n;a+=I)for(var e=b;e<p;e+=I)x.drawImage(J,a/f,e/f);l()}catch(sa){null!=d&&d(sa)}};J.onerror=function(a){null!=d&&d(a)};J.src=z}else l()}catch(va){null!=d&&d(va)}});c.onerror=function(a){null!=d&&d(a)};n&&this.graph.addSvgShadow(e);this.graph.mathEnabled&&this.addMathCss(e);var l=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(e,this.resolvedFontCss),c.src=Editor.createSvgDataUri(mxUtils.getXml(e))}catch(S){null!=
d&&d(S)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.addFontCss(e,a),this.loadFonts(l)}catch(aa){null!=d&&d(aa)}}))}catch(S){null!=d&&d(S)}}),e,p)}catch(fa){null!=d&&d(fa)}};Editor.crcTable=[];for(var f=0;256>f;f++)for(var g=f,m=0;8>m;m++)g=1==(g&1)?3988292384^g>>>1:g>>>1,Editor.crcTable[f]=g;Editor.updateCRC=function(a,b,e,c){for(var d=0;d<c;d++)a=Editor.crcTable[(a^b.charCodeAt(e+d))&255]^a>>>8;return a};Editor.crc32=function(a){for(var b=-1,e=0;e<a.length;e++)b=b>>>8^Editor.crcTable[(b^
a.charCodeAt(e))&255];return(b^-1)>>>0};Editor.writeGraphModelToPng=function(a,b,e,c,d){function k(a,b){var e=g;g+=b;return a.substring(e,g)}function l(a){a=k(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(k(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(k(a,
4),"IHDR"!=k(a,4))null!=d&&d();else{k(a,17);d=a.substring(0,g);do{var n=l(a);if("IDAT"==k(a,4)){d=a.substring(0,g-8);"pHYs"==b&&"dpi"==e?(e=Math.round(c/.0254),e=f(e)+f(e)+String.fromCharCode(1)):e=e+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+c;c=4294967295;c=Editor.updateCRC(c,b,0,4);c=Editor.updateCRC(c,e,0,e.length);d+=f(e.length)+b+e+f(c^4294967295);d+=a.substring(g-8,a.length);break}d+=a.substring(g-8,g-4+n);k(a,n);k(a,4)}while(n);return"data:image/png;base64,"+(window.btoa?
@@ -10362,9 +10362,9 @@ e,mxEvent.addListener(A,"click",mxUtils.bind(p,function(){function k(){var a=l.v
u?"1":"any",null!=n.min&&(l.min=parseFloat(n.min)),null!=n.max&&(l.max=parseFloat(n.max)));a.appendChild(l);mxEvent.addListener(l,"keypress",function(a){13==a.keyCode&&k()});l.focus();mxEvent.addListener(l,"blur",function(){k()})})));n.isDeletable&&(q=mxUtils.button("-",mxUtils.bind(p,function(a){c(b,"",n,n.index);mxEvent.consume(a)})),q.style.height="16px",q.style.width="25px",q.style["float"]="right",q.className="geColorBtn",A.appendChild(q));t.appendChild(A);return t}var p=this,m=this.editorUi.editor.graph,
q=[];a.style.position="relative";a.style.padding="0";var x=document.createElement("table");x.className="geProperties";x.style.whiteSpace="nowrap";x.style.width="100%";var u=document.createElement("tr");u.className="gePropHeader";var t=document.createElement("th");t.className="gePropHeaderCell";var A=document.createElement("img");A.src=Sidebar.prototype.expandedImage;t.appendChild(A);mxUtils.write(t,mxResources.get("property"));u.style.cursor="pointer";var z=function(){var b=x.querySelectorAll(".gePropNonHeaderRow"),
e;if(p.editorUi.propertiesCollapsed){A.src=Sidebar.prototype.collapsedImage;e="none";for(var c=a.childNodes.length-1;0<=c;c--)try{var d=a.childNodes[c],k=d.nodeName.toUpperCase();"INPUT"!=k&&"SELECT"!=k||a.removeChild(d)}catch(ra){}}else A.src=Sidebar.prototype.expandedImage,e="";for(c=0;c<b.length;c++)b[c].style.display=e};mxEvent.addListener(u,"click",function(){p.editorUi.propertiesCollapsed=!p.editorUi.propertiesCollapsed;z()});u.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";
-t.innerHTML=mxResources.get("value");u.appendChild(t);x.appendChild(u);var v=!1,B=!1,u=null;1==e.vertices.length&&0==e.edges.length?u=e.vertices[0].id:0==e.vertices.length&&1==e.edges.length&&(u=e.edges[0].id);null!=u&&x.appendChild(n("id",mxUtils.htmlEntities(u),{dispName:"ID",type:"readOnly"},!0,!1));for(var I in b)if(u=b[I],"function"!=typeof u.isVisible||u.isVisible(e,this)){var y=null!=e.style[I]?mxUtils.htmlEntities(e.style[I]+""):null!=u.getDefaultValue?u.getDefaultValue(e,this):u.defVal;if("separator"==
-u.type)B=!B;else{if("staticArr"==u.type)u.size=parseInt(e.style[u.sizeProperty]||b[u.sizeProperty].defVal)||0;else if(null!=u.dependentProps){for(var E=u.dependentProps,K=[],C=[],t=0;t<E.length;t++){var H=e.style[E[t]];C.push(b[E[t]].subDefVal);K.push(null!=H?H.split(","):[])}u.dependentPropsDefVal=C;u.dependentPropsVals=K}x.appendChild(n(I,y,u,v,B));v=!v}}for(t=0;t<q.length;t++)for(u=q[t],b=u.parentRow,e=0;e<u.values.length;e++)I=n(u.name,u.values[e],{type:u.type,parentRow:u.parentRow,isDeletable:u.isDeletable,
-index:e,defVal:u.defVal,countProperty:u.countProperty,size:u.size},0==e%2,u.flipBkg),b.parentNode.insertBefore(I,b.nextSibling),b=I;a.appendChild(x);z();return a};StyleFormatPanel.prototype.addStyles=function(a){function b(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var e=this.editorUi,c=e.editor.graph,d=document.createElement("div");d.style.whiteSpace="nowrap";d.style.paddingLeft="24px";d.style.paddingRight=
+t.innerHTML=mxResources.get("value");u.appendChild(t);x.appendChild(u);var v=!1,B=!1,u=null;1==e.vertices.length&&0==e.edges.length?u=e.vertices[0].id:0==e.vertices.length&&1==e.edges.length&&(u=e.edges[0].id);null!=u&&x.appendChild(n("id",mxUtils.htmlEntities(u),{dispName:"ID",type:"readOnly"},!0,!1));for(var E in b)if(u=b[E],"function"!=typeof u.isVisible||u.isVisible(e,this)){var I=null!=e.style[E]?mxUtils.htmlEntities(e.style[E]+""):null!=u.getDefaultValue?u.getDefaultValue(e,this):u.defVal;if("separator"==
+u.type)B=!B;else{if("staticArr"==u.type)u.size=parseInt(e.style[u.sizeProperty]||b[u.sizeProperty].defVal)||0;else if(null!=u.dependentProps){for(var y=u.dependentProps,J=[],H=[],t=0;t<y.length;t++){var C=e.style[y[t]];H.push(b[y[t]].subDefVal);J.push(null!=C?C.split(","):[])}u.dependentPropsDefVal=H;u.dependentPropsVals=J}x.appendChild(n(E,I,u,v,B));v=!v}}for(t=0;t<q.length;t++)for(u=q[t],b=u.parentRow,e=0;e<u.values.length;e++)E=n(u.name,u.values[e],{type:u.type,parentRow:u.parentRow,isDeletable:u.isDeletable,
+index:e,defVal:u.defVal,countProperty:u.countProperty,size:u.size},0==e%2,u.flipBkg),b.parentNode.insertBefore(E,b.nextSibling),b=E;a.appendChild(x);z();return a};StyleFormatPanel.prototype.addStyles=function(a){function b(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var e=this.editorUi,c=e.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 k="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(" "),l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.position="relative";l.style.textAlign="center";for(var f=[],g=0;g<this.defaultColorSchemes.length;g++){var n=document.createElement("div");n.style.display=
"inline-block";n.style.width="6px";n.style.height="6px";n.style.marginLeft="4px";n.style.marginRight="3px";n.style.borderRadius="3px";n.style.cursor="pointer";n.style.background="transparent";n.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a){mxEvent.addListener(n,"click",mxUtils.bind(this,function(){p(a)}))})(g);f.push(n);l.appendChild(n)}var p=mxUtils.bind(this,function(a){null!=this.format.currentScheme&&(f[this.format.currentScheme].style.background="transparent");this.format.currentScheme=
a;m(this.defaultColorSchemes[this.format.currentScheme]);f[this.format.currentScheme].style.background="#84d7ff"}),m=mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(a){var b=mxUtils.button("",mxUtils.bind(this,function(b){c.getModel().beginUpdate();try{for(var d=this.format.getSelectionState().cells,l=0;l<d.length;l++){for(var f=c.getModel().getStyle(d[l]),g=0;g<k.length;g++)f=mxUtils.removeStylename(f,k[g]);var n=c.getModel().isVertex(d[l])?e.initialDefaultVertexStyle:e.initialdefaultEdgeStyle;
@@ -10392,64 +10392,65 @@ this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.getC
a&&e[c].getAttribute("data-font-src")!=b&&e[c].setAttribute("data-font-src",b)}};var A=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return A.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};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(H){null!=window.console&&console.log("Error in vars URL parameter: "+H)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var B=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var b=B.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 C=Graph.prototype.getSvg;Graph.prototype.getSvg=function(a,b,e,c,d,k,l,f,g,n,p,m,q,x){var u=null,t=null;m||null==this.themes||"darkTheme"!=this.defaultThemeName||(u=this.stylesheet,t=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":"#2a2a2a",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var A=
-C.apply(this,arguments),z=this.getCustomFonts();if(p&&0<z.length){var v=A.ownerDocument,B=null!=v.createElementNS?v.createElementNS(mxConstants.NS_SVG,"style"):v.createElement("style");null!=v.setAttributeNS?B.setAttributeNS("type","text/css"):B.setAttribute("type","text/css");for(var y="",E="",I=0;I<z.length;I++){var K=z[I].name,D=z[I].url;Graph.isCssFontUrl(D)?y+="@import url("+D+");\n":E+='@font-face {\nfont-family: "'+K+'";\nsrc: url("'+D+'");\n}\n'}B.appendChild(v.createTextNode(y+E));A.getElementsByTagName("defs")[0].appendChild(B)}null!=
+C.apply(this,arguments),z=this.getCustomFonts();if(p&&0<z.length){var v=A.ownerDocument,B=null!=v.createElementNS?v.createElementNS(mxConstants.NS_SVG,"style"):v.createElement("style");null!=v.setAttributeNS?B.setAttributeNS("type","text/css"):B.setAttribute("type","text/css");for(var E="",y="",I=0;I<z.length;I++){var J=z[I].name,D=z[I].url;Graph.isCssFontUrl(D)?E+="@import url("+D+");\n":y+='@font-face {\nfont-family: "'+J+'";\nsrc: url("'+D+'");\n}\n'}B.appendChild(v.createTextNode(E+y));A.getElementsByTagName("defs")[0].appendChild(B)}null!=
u&&(this.defaultPageBackgroundColor=t,this.stylesheet=u,this.refresh());return A};var D=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var a=D.apply(this,arguments);if(this.mathEnabled){var b=a.drawText;a.drawText=function(a,e){if(null!=a.text&&null!=a.text.value&&a.text.checkBounds()&&(mxUtils.isNode(a.text.value)||a.text.dialect==mxConstants.DIALECT_STRICTHTML)){var c=a.text.getContentNode();if(null!=c){c=c.cloneNode(!0);if(c.getElementsByTagNameNS)for(var d=
c.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<d.length;)d[0].parentNode.removeChild(d[0]);null!=c.innerHTML&&(d=a.text.value,a.text.value=c.innerHTML,b.apply(this,arguments),a.text.value=d)}}else b.apply(this,arguments)}}return a};var G=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){G.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 E=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){E.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){"data:action/json,"==a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions&&this.executeCustomActions(a.actions))};Graph.prototype.executeCustomActions=
-function(a,b){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var e=!1,c=0,d=0,k=mxUtils.bind(this,function(){e||(e=!0,this.model.beginUpdate())}),l=mxUtils.bind(this,function(){e&&(e=!1,this.model.endUpdate())}),f=mxUtils.bind(this,function(){0<
-c&&c--;0==c&&g()}),g=mxUtils.bind(this,function(){if(d<a.length){var e=this.stoppingCustomActions,n=a[d++],p=[];if(null!=n.open)if(l(),this.isCustomLink(n.open)){if(!this.customLinkClicked(n.open))return}else this.openLink(n.open);null==n.wait||e||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;f()}),c++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=n.wait?parseInt(n.wait):1E3),l());null!=n.opacity&&
-null!=n.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(n.opacity,!0)),n.opacity.value);null!=n.fadeIn&&(c++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeIn,!0)),0,1,f,e?0:n.fadeIn.delay));null!=n.fadeOut&&(c++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeOut,!0)),1,0,f,e?0:n.fadeOut.delay));null!=n.wipeIn&&(p=p.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeIn,!0),!0)));null!=n.wipeOut&&(p=p.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeOut,
-!0),!1)));null!=n.toggle&&(k(),this.toggleCells(this.getCellsForAction(n.toggle,!0)));if(null!=n.show){k();var m=this.getCellsForAction(n.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(m),1);this.setCellsVisible(m,!0)}null!=n.hide&&(k(),m=this.getCellsForAction(n.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(m),0),this.setCellsVisible(m,!1));null!=n.toggleStyle&&null!=n.toggleStyle.key&&(k(),this.toggleCellStyles(n.toggleStyle.key,null!=n.toggleStyle.defaultValue?n.toggleStyle.defaultValue:
-"0",this.getCellsForAction(n.toggleStyle,!0)));null!=n.style&&null!=n.style.key&&(k(),this.setCellStyles(n.style.key,n.style.value,this.getCellsForAction(n.style,!0)));m=[];null!=n.select&&this.isEnabled()&&(m=this.getCellsForAction(n.select),this.setSelectionCells(m));null!=n.highlight&&(m=this.getCellsForAction(n.highlight),this.highlightCells(m,n.highlight.color,n.highlight.duration,n.highlight.opacity));null!=n.scroll&&(m=this.getCellsForAction(n.scroll));null!=n.viewbox&&this.fitWindow(n.viewbox,
-n.viewbox.border);0<m.length&&this.scrollCellToVisible(m[0]);0<p.length&&(c++,this.executeAnimations(p,f,e?1:n.steps,e?0:n.delay));0==c?g():l()}else this.stoppingCustomActions=this.executingCustomActions=!1,l(),null!=b&&b()});g()}};Graph.prototype.doUpdateCustomLinksForCell=function(a,b){var e=this.getLinkForCell(b);null!=e&&"data:action/json,"==e.substring(0,17)&&this.setLinkForCell(b,this.updateCustomLink(a,e));if(this.isHtmlLabel(b)){var c=document.createElement("div");c.innerHTML=this.sanitizeHtml(this.getLabel(b));
-for(var d=c.getElementsByTagName("a"),k=!1,l=0;l<d.length;l++)e=d[l].getAttribute("href"),null!=e&&"data:action/json,"==e.substring(0,17)&&(d[l].setAttribute("href",this.updateCustomLink(a,e)),k=!0);k&&this.labelChanged(b,c.innerHTML)}};Graph.prototype.updateCustomLink=function(a,b){if("data:action/json,"==b.substring(0,17))try{var e=JSON.parse(b.substring(17));null!=e.actions&&(this.updateCustomLinkActions(a,e.actions),b="data:action/json,"+JSON.stringify(e))}catch(L){}return b};Graph.prototype.updateCustomLinkActions=
-function(a,b){for(var e=0;e<b.length;e++){var c=b[e],d;for(d in c)this.updateCustomLinkAction(a,c[d],"cells"),this.updateCustomLinkAction(a,c[d],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(a,b,e){if(null!=b&&null!=b[e]){for(var c=[],d=0;d<b[e].length;d++)if("*"==b[e][d])c.push(b[e][d]);else{var k=a[b[e][d]];null!=k?""!=k&&c.push(k):c.push(b[e][d])}b[e]=c}};Graph.prototype.getCellsForAction=function(a,b){var e=this.getCellsById(a.cells).concat(this.getCellsForTags(a.tags,null,
-null,b));if(null!=a.excludeCells){for(var c=[],d=0;d<e.length;d++)0>a.excludeCells.indexOf(e[d].id)&&c.push(e[d]);e=c}return e};Graph.prototype.getCellsById=function(a){var b=[];if(null!=a)for(var e=0;e<a.length;e++)if("*"==a[e])var c=this.model.getRoot(),b=b.concat(this.model.filterDescendants(function(a){return a!=c},c));else{var d=this.model.getCell(a[e]);null!=d&&b.push(d)}return b};Graph.prototype.getCellsForTags=function(a,b,e,c){var d=[];if(null!=a){b=null!=b?b:this.model.getDescendants(this.model.getRoot());
-e=null!=e?e:"tags";for(var k=0,l={},f=0;f<a.length;f++)0<a[f].length&&(l[a[f].toLowerCase()]=!0,k++);for(f=0;f<b.length;f++)if(c&&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(e)||""):"",n=!1;if(0<g.length){if(g=g.toLowerCase().split(" "),g.length>=a.length){for(var p=n=0;p<g.length&&n<k;p++)null!=l[g[p]]&&n++;n=n==k}}else n=0==a.length;n&&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 e=0;e<a.length;e++)this.model.setVisible(a[e],b)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,b,e,c){for(var d=0;d<a.length;d++)this.highlightCell(a[d],b,e,c)};Graph.prototype.highlightCell=function(a,b,
-e,c){b=null!=b?b:mxConstants.DEFAULT_VALID_COLOR;e=null!=e?e:1E3;a=this.view.getState(a);if(null!=a){var d=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),k=new mxCellHighlight(this,b,d,!1);null!=c&&(k.opacity=c);k.highlight(a);window.setTimeout(function(){null!=k.shape&&(mxUtils.setPrefixedStyle(k.shape.node.style,"transition","all 1200ms ease-in-out"),k.shape.node.style.opacity=0);window.setTimeout(function(){k.destroy()},1200)},e)}};Graph.prototype.addSvgShadow=function(a,
-b,e){e=null!=e?e:!1;var c=a.ownerDocument,d=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"filter"):c.createElement("filter");d.setAttribute("id",this.shadowId);var k=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):c.createElement("feGaussianBlur");k.setAttribute("in","SourceAlpha");k.setAttribute("stdDeviation",this.svgShadowBlur);k.setAttribute("result","blur");d.appendChild(k);k=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feOffset"):
-c.createElement("feOffset");k.setAttribute("in","blur");k.setAttribute("dx",this.svgShadowSize);k.setAttribute("dy",this.svgShadowSize);k.setAttribute("result","offsetBlur");d.appendChild(k);k=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feFlood"):c.createElement("feFlood");k.setAttribute("flood-color",this.svgShadowColor);k.setAttribute("flood-opacity",this.svgShadowOpacity);k.setAttribute("result","offsetColor");d.appendChild(k);k=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,
-"feComposite"):c.createElement("feComposite");k.setAttribute("in","offsetColor");k.setAttribute("in2","offsetBlur");k.setAttribute("operator","in");k.setAttribute("result","offsetBlur");d.appendChild(k);k=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feBlend"):c.createElement("feBlend");k.setAttribute("in","SourceGraphic");k.setAttribute("in2","offsetBlur");d.appendChild(k);k=a.getElementsByTagName("defs");0==k.length?(c=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,
-"defs"):c.createElement("defs"),null!=a.firstChild?a.insertBefore(c,a.firstChild):a.appendChild(c)):c=k[0];c.appendChild(d);e||(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&&!mxClient.IS_SF&&(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,
-e=0;do b=this.model.getChildAt(this.model.root,e);while(e++<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+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];
-mxStencilRegistry.libraries.bpmn2=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.c4=[SHAPES_PATH+"/mxC4.js"];mxStencilRegistry.libraries.cisco19=[SHAPES_PATH+"/mxCisco19.js",STENCIL_PATH+"/cisco19.xml"];mxStencilRegistry.libraries.cisco_safe=[SHAPES_PATH+"/mxCiscoSafe.js",STENCIL_PATH+"/cisco_safe/architecture.xml",STENCIL_PATH+"/cisco_safe/business_icons.xml",STENCIL_PATH+"/cisco_safe/capability.xml",STENCIL_PATH+"/cisco_safe/design.xml",
-STENCIL_PATH+"/cisco_safe/iot_things_icons.xml",STENCIL_PATH+"/cisco_safe/people_places_things_icons.xml",STENCIL_PATH+"/cisco_safe/security_icons.xml",STENCIL_PATH+"/cisco_safe/technology_icons.xml",STENCIL_PATH+"/cisco_safe/threat.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=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/abstract"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/abstract.xml"];mxStencilRegistry.libraries["electrical/logic_gates"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries["electrical/miscellaneous"]=
-[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/miscellaneous.xml"];mxStencilRegistry.libraries["electrical/signal_sources"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/signal_sources.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries.infographic=[SHAPES_PATH+"/mxInfographic.js"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];
-mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];
-mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",SHAPES_PATH+"/mxBasic.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.ibm=[SHAPES_PATH+"/mxIBM.js",STENCIL_PATH+"/ibm.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.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=
-[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.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 F=mxMarker.createMarker;mxMarker.createMarker=function(a,b,e,c,d,k,l,f,g,n){if(null!=e&&null==mxMarker.markers[e]){var p=this.getPackageForType(e);null!=p&&mxStencilRegistry.getStencil(p)}return F.apply(this,arguments)};PrintDialog.prototype.create=function(a,b){function e(){x.value=Math.max(1,
-Math.min(f,Math.max(parseInt(x.value),parseInt(q.value))));q.value=Math.max(1,Math.min(f,Math.min(parseInt(x.value),parseInt(q.value))))}function c(b){function e(b,e,k){var l=b.useCssTransforms,f=b.currentTranslate,g=b.currentScale,n=b.view.translate,p=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 m=b.getGraphBounds(),q=0,x=0,u=M.get(),t=1/b.pageScale,v=z.checked;if(v)var t=parseInt(J.value),
-B=parseInt(F.value),t=Math.min(u.height*B/(m.height/b.view.scale),u.width*t/(m.width/b.view.scale));else t=parseInt(A.value)/(100*b.pageScale),isNaN(t)&&(c=1/b.pageScale,A.value="100 %");u=mxRectangle.fromRectangle(u);u.width=Math.ceil(u.width*c);u.height=Math.ceil(u.height*c);t*=c;!v&&b.pageVisible?(m=b.getPageLayout(),q-=m.x*u.width,x-=m.y*u.height):v=!0;if(null==e){e=PrintDialog.createPrintPreview(b,t,u,0,q,x,v);e.pageSelector=!1;e.mathEnabled=!1;q=a.getCurrentFile();null!=q&&(e.title=q.getTitle());
-var y=e.writeHead;e.writeHead=function(e){y.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)e.writeln('<style type="text/css">'),e.writeln(Editor.mathJaxWebkitCss),e.writeln("</style>");mxClient.IS_GC&&(e.writeln('<style type="text/css">'),e.writeln("@media print {"),e.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),e.writeln("}"),e.writeln("</style>"));null!=a.editor.fontCss&&(e.writeln('<style type="text/css">'),e.writeln(a.editor.fontCss),e.writeln("</style>"));for(var c=
-b.getCustomFonts(),d=0;d<c.length;d++){var k=c[d].name,l=c[d].url;Graph.isCssFontUrl(l)?e.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(l)+'" charset="UTF-8" type="text/css">'):(e.writeln('<style type="text/css">'),e.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(k)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),e.writeln("</style>"))}};if("undefined"!==typeof MathJax){var E=e.renderPage;e.renderPage=function(b,e,c,d,k,l){var f=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&
-!a.editor.useForeignObjectForMath?!0:a.editor.originalNoForeignObject;var g=E.apply(this,arguments);mxClient.NO_FO=f;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:g.className="geDisableMathJax";return g}}q=null;x=d.enableFlowAnimation;d.enableFlowAnimation=!1;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(q=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),d.refresh());e.open(null,null,k,!0);d.enableFlowAnimation=x;null!=q&&(d.stylesheet=q,d.refresh())}else{u=b.background;if(null==
-u||""==u||u==mxConstants.NONE)u="#ffffff";e.backgroundColor=u;e.autoOrigin=v;e.appendGraph(b,t,q,x,k,!0);k=b.getCustomFonts();if(null!=e.wnd)for(q=0;q<k.length;q++)x=k[q].name,v=k[q].url,Graph.isCssFontUrl(v)?e.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(v)+'" charset="UTF-8" type="text/css">'):(e.wnd.document.writeln('<style type="text/css">'),e.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(x)+'";\nsrc: url("'+mxUtils.htmlEntities(v)+'");\n}'),
-e.wnd.document.writeln("</style>"))}l&&(b.useCssTransforms=l,b.currentTranslate=f,b.currentScale=g,b.view.translate=n,b.view.scale=p);return e}var c=parseInt(N.value)/100;isNaN(c)&&(c=1,N.value="100 %");var c=.75*c,k=null;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(k=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),d.refresh());var l=q.value,f=x.value,n=!p.checked,m=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(a,p.checked,l,f,z.checked,J.value,F.value,parseInt(A.value)/100,parseInt(N.value)/
-100,M.get());else{n&&(n=l==g&&f==g);if(!n&&null!=a.pages&&a.pages.length){var u=0,n=a.pages.length-1;p.checked||(u=parseInt(l)-1,n=parseInt(f)-1);for(var t=u;t<=n;t++){var v=a.pages[t],l=v==a.currentPage?d:null;if(null==l){var l=a.createTemporaryGraph(d.stylesheet),f=!0,u=!1,B=null,y=null;null==v.viewState&&null==v.root&&a.updatePageRoot(v);null!=v.viewState&&(f=v.viewState.pageVisible,u=v.viewState.mathEnabled,B=v.viewState.background,y=v.viewState.backgroundImage,l.extFonts=v.viewState.extFonts);
-l.background=B;l.backgroundImage=null!=y?new mxImage(y.src,y.width,y.height):null;l.pageVisible=f;l.mathEnabled=u;var E=l.getGlobalVariable;l.getGlobalVariable=function(b){return"page"==b?v.getName():"pagenumber"==b?t+1:"pagecount"==b?null!=a.pages?a.pages.length:1:E.apply(this,arguments)};document.body.appendChild(l.container);a.updatePageRoot(v);l.model.setRoot(v.root)}m=e(l,m,t!=n);l!=d&&l.container.parentNode.removeChild(l.container)}}else m=e(d);null==m?a.handleError({message:mxResources.get("errorUpdatingPreview")}):
-(m.mathEnabled&&(n=m.wnd.document,b&&(m.wnd.IMMEDIATE_PRINT=!0),n.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),m.closeDocument(),!m.mathEnabled&&b&&PrintDialog.printPreview(m));null!=k&&(d.stylesheet=k,d.refresh())}}var d=a.editor.graph,k=document.createElement("div"),l=document.createElement("h3");l.style.width="100%";l.style.textAlign="center";l.style.marginTop="0px";mxUtils.write(l,b||mxResources.get("print"));k.appendChild(l);var f=1,g=1,n=
-document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var p=document.createElement("input");p.style.cssText="margin-right:8px;margin-bottom:8px;";p.setAttribute("value","all");p.setAttribute("type","radio");p.setAttribute("name","pages-printdialog");n.appendChild(p);l=document.createElement("span");mxUtils.write(l,mxResources.get("printAllPages"));n.appendChild(l);mxUtils.br(n);var m=p.cloneNode(!0);p.setAttribute("checked","checked");
-m.setAttribute("value","range");n.appendChild(m);l=document.createElement("span");mxUtils.write(l,mxResources.get("pages")+":");n.appendChild(l);var q=document.createElement("input");q.style.cssText="margin:0 8px 0 8px;";q.setAttribute("value","1");q.setAttribute("type","number");q.setAttribute("min","1");q.style.width="50px";n.appendChild(q);l=document.createElement("span");mxUtils.write(l,mxResources.get("to"));n.appendChild(l);var x=q.cloneNode(!0);n.appendChild(x);mxEvent.addListener(q,"focus",
-function(){m.checked=!0});mxEvent.addListener(x,"focus",function(){m.checked=!0});mxEvent.addListener(q,"change",e);mxEvent.addListener(x,"change",e);if(null!=a.pages&&(f=a.pages.length,null!=a.currentPage))for(l=0;l<a.pages.length;l++)if(a.currentPage==a.pages[l]){g=l+1;q.value=g;x.value=g;break}q.setAttribute("max",f);x.setAttribute("max",f);a.isPagesEnabled()?1<f&&(k.appendChild(n),m.checked=!0):m.checked=!0;var u=document.createElement("div");u.style.marginBottom="10px";var t=document.createElement("input");
-t.style.marginRight="8px";t.setAttribute("value","adjust");t.setAttribute("type","radio");t.setAttribute("name","printZoom");u.appendChild(t);l=document.createElement("span");mxUtils.write(l,mxResources.get("adjustTo"));u.appendChild(l);var A=document.createElement("input");A.style.cssText="margin:0 8px 0 8px;";A.setAttribute("value","100 %");A.style.width="50px";u.appendChild(A);mxEvent.addListener(A,"focus",function(){t.checked=!0});k.appendChild(u);var n=n.cloneNode(!1),z=t.cloneNode(!0);z.setAttribute("value",
-"fit");t.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(z);n.appendChild(l);u=document.createElement("table");u.style.display="inline-block";var v=document.createElement("tbody"),B=document.createElement("tr"),y=B.cloneNode(!0),E=document.createElement("td"),K=E.cloneNode(!0),C=E.cloneNode(!0),D=E.cloneNode(!0),G=E.cloneNode(!0),I=E.cloneNode(!0);E.style.textAlign="right";D.style.textAlign=
-"right";mxUtils.write(E,mxResources.get("fitTo"));var J=document.createElement("input");J.style.cssText="margin:0 8px 0 8px;";J.setAttribute("value","1");J.setAttribute("min","1");J.setAttribute("type","number");J.style.width="40px";K.appendChild(J);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));C.appendChild(l);mxUtils.write(D,mxResources.get("fitToBy"));var F=J.cloneNode(!0);G.appendChild(F);mxEvent.addListener(J,"focus",function(){z.checked=!0});mxEvent.addListener(F,
-"focus",function(){z.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));I.appendChild(l);B.appendChild(E);B.appendChild(K);B.appendChild(C);y.appendChild(D);y.appendChild(G);y.appendChild(I);v.appendChild(B);v.appendChild(y);u.appendChild(v);n.appendChild(u);k.appendChild(n);n=document.createElement("div");l=document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));n.appendChild(l);
-l=document.createElement("div");l.style.marginBottom="12px";var M=PageSetupDialog.addPageFormatPanel(l,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(l);l=document.createElement("span");mxUtils.write(l,mxResources.get("pageScale"));n.appendChild(l);var N=document.createElement("input");N.style.cssText="margin:0 8px 0 8px;";N.setAttribute("value","100 %");N.style.width="60px";n.appendChild(N);k.appendChild(n);l=document.createElement("div");l.style.cssText=
-"text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";a.editor.cancelFirst&&l.appendChild(n);a.isOffline()||(u=mxUtils.button(mxResources.get("help"),function(){d.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),u.className="geBtn",l.appendChild(u));PrintDialog.previewEnabled&&(u=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();c(!1)}),u.className="geBtn",l.appendChild(u));u=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?
-"print":"ok"),function(){a.hideDialog();c(!0)});u.className="geBtn gePrimaryBtn";l.appendChild(u);a.editor.cancelFirst||l.appendChild(n);k.appendChild(l);this.container=k};var J=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var a=this.image;null!=a&&null!=a.src&&Graph.isPageLink(a.src)&&
-(a={originalSrc:a.src});this.page.viewState.backgroundImage=a}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)}}else J.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 M=document.createElement("canvas"),K=new Image;K.onload=function(){try{M.getContext("2d").drawImage(K,0,0);var a=M.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(N){}};K.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(I){}})();
+this.webKitForceRepaintNode.style.cssText="position:absolute;",a.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,a.ownerSVGElement))}};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&this.setBackgroundImage(this.backgroundImage)};var E=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){E.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){"data:action/json,"==
+a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions&&this.executeCustomActions(a.actions))};Graph.prototype.executeCustomActions=function(a,b){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var e=!1,c=0,d=0,k=mxUtils.bind(this,function(){e||
+(e=!0,this.model.beginUpdate())}),l=mxUtils.bind(this,function(){e&&(e=!1,this.model.endUpdate())}),f=mxUtils.bind(this,function(){0<c&&c--;0==c&&g()}),g=mxUtils.bind(this,function(){if(d<a.length){var e=this.stoppingCustomActions,n=a[d++],p=[];if(null!=n.open)if(l(),this.isCustomLink(n.open)){if(!this.customLinkClicked(n.open))return}else this.openLink(n.open);null==n.wait||e||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;f()}),
+c++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=n.wait?parseInt(n.wait):1E3),l());null!=n.opacity&&null!=n.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(n.opacity,!0)),n.opacity.value);null!=n.fadeIn&&(c++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeIn,!0)),0,1,f,e?0:n.fadeIn.delay));null!=n.fadeOut&&(c++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeOut,!0)),1,0,f,e?0:n.fadeOut.delay));
+null!=n.wipeIn&&(p=p.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeIn,!0),!0)));null!=n.wipeOut&&(p=p.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeOut,!0),!1)));null!=n.toggle&&(k(),this.toggleCells(this.getCellsForAction(n.toggle,!0)));if(null!=n.show){k();var m=this.getCellsForAction(n.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(m),1);this.setCellsVisible(m,!0)}null!=n.hide&&(k(),m=this.getCellsForAction(n.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(m),
+0),this.setCellsVisible(m,!1));null!=n.toggleStyle&&null!=n.toggleStyle.key&&(k(),this.toggleCellStyles(n.toggleStyle.key,null!=n.toggleStyle.defaultValue?n.toggleStyle.defaultValue:"0",this.getCellsForAction(n.toggleStyle,!0)));null!=n.style&&null!=n.style.key&&(k(),this.setCellStyles(n.style.key,n.style.value,this.getCellsForAction(n.style,!0)));m=[];null!=n.select&&this.isEnabled()&&(m=this.getCellsForAction(n.select),this.setSelectionCells(m));null!=n.highlight&&(m=this.getCellsForAction(n.highlight),
+this.highlightCells(m,n.highlight.color,n.highlight.duration,n.highlight.opacity));null!=n.scroll&&(m=this.getCellsForAction(n.scroll));null!=n.viewbox&&this.fitWindow(n.viewbox,n.viewbox.border);0<m.length&&this.scrollCellToVisible(m[0]);0<p.length&&(c++,this.executeAnimations(p,f,e?1:n.steps,e?0:n.delay));0==c?g():l()}else this.stoppingCustomActions=this.executingCustomActions=!1,l(),null!=b&&b()});g()}};Graph.prototype.doUpdateCustomLinksForCell=function(a,b){var e=this.getLinkForCell(b);null!=
+e&&"data:action/json,"==e.substring(0,17)&&this.setLinkForCell(b,this.updateCustomLink(a,e));if(this.isHtmlLabel(b)){var c=document.createElement("div");c.innerHTML=this.sanitizeHtml(this.getLabel(b));for(var d=c.getElementsByTagName("a"),k=!1,l=0;l<d.length;l++)e=d[l].getAttribute("href"),null!=e&&"data:action/json,"==e.substring(0,17)&&(d[l].setAttribute("href",this.updateCustomLink(a,e)),k=!0);k&&this.labelChanged(b,c.innerHTML)}};Graph.prototype.updateCustomLink=function(a,b){if("data:action/json,"==
+b.substring(0,17))try{var e=JSON.parse(b.substring(17));null!=e.actions&&(this.updateCustomLinkActions(a,e.actions),b="data:action/json,"+JSON.stringify(e))}catch(L){}return b};Graph.prototype.updateCustomLinkActions=function(a,b){for(var e=0;e<b.length;e++){var c=b[e],d;for(d in c)this.updateCustomLinkAction(a,c[d],"cells"),this.updateCustomLinkAction(a,c[d],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(a,b,e){if(null!=b&&null!=b[e]){for(var c=[],d=0;d<b[e].length;d++)if("*"==
+b[e][d])c.push(b[e][d]);else{var k=a[b[e][d]];null!=k?""!=k&&c.push(k):c.push(b[e][d])}b[e]=c}};Graph.prototype.getCellsForAction=function(a,b){var e=this.getCellsById(a.cells).concat(this.getCellsForTags(a.tags,null,null,b));if(null!=a.excludeCells){for(var c=[],d=0;d<e.length;d++)0>a.excludeCells.indexOf(e[d].id)&&c.push(e[d]);e=c}return e};Graph.prototype.getCellsById=function(a){var b=[];if(null!=a)for(var e=0;e<a.length;e++)if("*"==a[e])var c=this.model.getRoot(),b=b.concat(this.model.filterDescendants(function(a){return a!=
+c},c));else{var d=this.model.getCell(a[e]);null!=d&&b.push(d)}return b};Graph.prototype.getCellsForTags=function(a,b,e,c){var d=[];if(null!=a){b=null!=b?b:this.model.getDescendants(this.model.getRoot());e=null!=e?e:"tags";for(var k=0,l={},f=0;f<a.length;f++)0<a[f].length&&(l[a[f].toLowerCase()]=!0,k++);for(f=0;f<b.length;f++)if(c&&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(e)||
+""):"",n=!1;if(0<g.length){if(g=g.toLowerCase().split(" "),g.length>=a.length){for(var p=n=0;p<g.length&&n<k;p++)null!=l[g[p]]&&n++;n=n==k}}else n=0==a.length;n&&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 e=0;e<a.length;e++)this.model.setVisible(a[e],b)}finally{this.model.endUpdate()}};
+Graph.prototype.highlightCells=function(a,b,e,c){for(var d=0;d<a.length;d++)this.highlightCell(a[d],b,e,c)};Graph.prototype.highlightCell=function(a,b,e,c){b=null!=b?b:mxConstants.DEFAULT_VALID_COLOR;e=null!=e?e:1E3;a=this.view.getState(a);if(null!=a){var d=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),k=new mxCellHighlight(this,b,d,!1);null!=c&&(k.opacity=c);k.highlight(a);window.setTimeout(function(){null!=k.shape&&(mxUtils.setPrefixedStyle(k.shape.node.style,"transition",
+"all 1200ms ease-in-out"),k.shape.node.style.opacity=0);window.setTimeout(function(){k.destroy()},1200)},e)}};Graph.prototype.addSvgShadow=function(a,b,e){e=null!=e?e:!1;var c=a.ownerDocument,d=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"filter"):c.createElement("filter");d.setAttribute("id",this.shadowId);var k=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):c.createElement("feGaussianBlur");k.setAttribute("in","SourceAlpha");k.setAttribute("stdDeviation",
+this.svgShadowBlur);k.setAttribute("result","blur");d.appendChild(k);k=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feOffset"):c.createElement("feOffset");k.setAttribute("in","blur");k.setAttribute("dx",this.svgShadowSize);k.setAttribute("dy",this.svgShadowSize);k.setAttribute("result","offsetBlur");d.appendChild(k);k=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feFlood"):c.createElement("feFlood");k.setAttribute("flood-color",this.svgShadowColor);k.setAttribute("flood-opacity",
+this.svgShadowOpacity);k.setAttribute("result","offsetColor");d.appendChild(k);k=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feComposite"):c.createElement("feComposite");k.setAttribute("in","offsetColor");k.setAttribute("in2","offsetBlur");k.setAttribute("operator","in");k.setAttribute("result","offsetBlur");d.appendChild(k);k=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feBlend"):c.createElement("feBlend");k.setAttribute("in","SourceGraphic");k.setAttribute("in2",
+"offsetBlur");d.appendChild(k);k=a.getElementsByTagName("defs");0==k.length?(c=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"defs"):c.createElement("defs"),null!=a.firstChild?a.insertBefore(c,a.firstChild):a.appendChild(c)):c=k[0];c.appendChild(d);e||(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&&!mxClient.IS_SF&&(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,e=0;do b=this.model.getChildAt(this.model.root,e);while(e++<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+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.bpmn2=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.c4=[SHAPES_PATH+"/mxC4.js"];mxStencilRegistry.libraries.cisco19=[SHAPES_PATH+"/mxCisco19.js",STENCIL_PATH+"/cisco19.xml"];mxStencilRegistry.libraries.cisco_safe=[SHAPES_PATH+"/mxCiscoSafe.js",STENCIL_PATH+"/cisco_safe/architecture.xml",STENCIL_PATH+"/cisco_safe/business_icons.xml",
+STENCIL_PATH+"/cisco_safe/capability.xml",STENCIL_PATH+"/cisco_safe/design.xml",STENCIL_PATH+"/cisco_safe/iot_things_icons.xml",STENCIL_PATH+"/cisco_safe/people_places_things_icons.xml",STENCIL_PATH+"/cisco_safe/security_icons.xml",STENCIL_PATH+"/cisco_safe/technology_icons.xml",STENCIL_PATH+"/cisco_safe/threat.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=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/abstract"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/abstract.xml"];mxStencilRegistry.libraries["electrical/logic_gates"]=
+[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries["electrical/miscellaneous"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/miscellaneous.xml"];mxStencilRegistry.libraries["electrical/signal_sources"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/signal_sources.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries.infographic=
+[SHAPES_PATH+"/mxInfographic.js"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];
+mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",SHAPES_PATH+
+"/mxBasic.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.ibm=[SHAPES_PATH+"/mxIBM.js",STENCIL_PATH+"/ibm.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.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.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 F=mxMarker.createMarker;mxMarker.createMarker=function(a,b,e,c,d,k,l,f,g,n){if(null!=e&&null==mxMarker.markers[e]){var p=this.getPackageForType(e);null!=p&&
+mxStencilRegistry.getStencil(p)}return F.apply(this,arguments)};PrintDialog.prototype.create=function(a,b){function e(){x.value=Math.max(1,Math.min(f,Math.max(parseInt(x.value),parseInt(q.value))));q.value=Math.max(1,Math.min(f,Math.min(parseInt(x.value),parseInt(q.value))))}function c(b){function e(b,e,k){var l=b.useCssTransforms,f=b.currentTranslate,g=b.currentScale,n=b.view.translate,p=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 m=b.getGraphBounds(),q=0,x=0,u=M.get(),t=1/b.pageScale,v=z.checked;if(v)var t=parseInt(I.value),B=parseInt(F.value),t=Math.min(u.height*B/(m.height/b.view.scale),u.width*t/(m.width/b.view.scale));else t=parseInt(A.value)/(100*b.pageScale),isNaN(t)&&(c=1/b.pageScale,A.value="100 %");u=mxRectangle.fromRectangle(u);u.width=Math.ceil(u.width*c);u.height=Math.ceil(u.height*c);t*=c;!v&&b.pageVisible?(m=b.getPageLayout(),q-=m.x*u.width,x-=m.y*u.height):
+v=!0;if(null==e){e=PrintDialog.createPrintPreview(b,t,u,0,q,x,v);e.pageSelector=!1;e.mathEnabled=!1;q=a.getCurrentFile();null!=q&&(e.title=q.getTitle());var E=e.writeHead;e.writeHead=function(e){E.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)e.writeln('<style type="text/css">'),e.writeln(Editor.mathJaxWebkitCss),e.writeln("</style>");mxClient.IS_GC&&(e.writeln('<style type="text/css">'),e.writeln("@media print {"),e.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),e.writeln("}"),
+e.writeln("</style>"));null!=a.editor.fontCss&&(e.writeln('<style type="text/css">'),e.writeln(a.editor.fontCss),e.writeln("</style>"));for(var c=b.getCustomFonts(),d=0;d<c.length;d++){var k=c[d].name,l=c[d].url;Graph.isCssFontUrl(l)?e.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(l)+'" charset="UTF-8" type="text/css">'):(e.writeln('<style type="text/css">'),e.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(k)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),e.writeln("</style>"))}};
+if("undefined"!==typeof MathJax){var y=e.renderPage;e.renderPage=function(b,e,c,d,k,l){var f=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!a.editor.useForeignObjectForMath?!0:a.editor.originalNoForeignObject;var g=y.apply(this,arguments);mxClient.NO_FO=f;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:g.className="geDisableMathJax";return g}}q=null;x=d.enableFlowAnimation;d.enableFlowAnimation=!1;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(q=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),
+d.refresh());e.open(null,null,k,!0);d.enableFlowAnimation=x;null!=q&&(d.stylesheet=q,d.refresh())}else{u=b.background;if(null==u||""==u||u==mxConstants.NONE)u="#ffffff";e.backgroundColor=u;e.autoOrigin=v;e.appendGraph(b,t,q,x,k,!0);k=b.getCustomFonts();if(null!=e.wnd)for(q=0;q<k.length;q++)x=k[q].name,v=k[q].url,Graph.isCssFontUrl(v)?e.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(v)+'" charset="UTF-8" type="text/css">'):(e.wnd.document.writeln('<style type="text/css">'),
+e.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(x)+'";\nsrc: url("'+mxUtils.htmlEntities(v)+'");\n}'),e.wnd.document.writeln("</style>"))}l&&(b.useCssTransforms=l,b.currentTranslate=f,b.currentScale=g,b.view.translate=n,b.view.scale=p);return e}var c=parseInt(N.value)/100;isNaN(c)&&(c=1,N.value="100 %");var c=.75*c,k=null;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(k=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),d.refresh());var l=q.value,f=x.value,n=!p.checked,
+m=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(a,p.checked,l,f,z.checked,I.value,F.value,parseInt(A.value)/100,parseInt(N.value)/100,M.get());else{n&&(n=l==g&&f==g);if(!n&&null!=a.pages&&a.pages.length){var u=0,n=a.pages.length-1;p.checked||(u=parseInt(l)-1,n=parseInt(f)-1);for(var t=u;t<=n;t++){var v=a.pages[t],l=v==a.currentPage?d:null;if(null==l){var l=a.createTemporaryGraph(d.stylesheet),f=!0,u=!1,B=null,E=null;null==v.viewState&&null==v.root&&a.updatePageRoot(v);null!=v.viewState&&
+(f=v.viewState.pageVisible,u=v.viewState.mathEnabled,B=v.viewState.background,E=v.viewState.backgroundImage,l.extFonts=v.viewState.extFonts);l.background=B;l.backgroundImage=null!=E?new mxImage(E.src,E.width,E.height):null;l.pageVisible=f;l.mathEnabled=u;var y=l.getGlobalVariable;l.getGlobalVariable=function(b){return"page"==b?v.getName():"pagenumber"==b?t+1:"pagecount"==b?null!=a.pages?a.pages.length:1:y.apply(this,arguments)};document.body.appendChild(l.container);a.updatePageRoot(v);l.model.setRoot(v.root)}m=
+e(l,m,t!=n);l!=d&&l.container.parentNode.removeChild(l.container)}}else m=e(d);null==m?a.handleError({message:mxResources.get("errorUpdatingPreview")}):(m.mathEnabled&&(n=m.wnd.document,b&&(m.wnd.IMMEDIATE_PRINT=!0),n.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),m.closeDocument(),!m.mathEnabled&&b&&PrintDialog.printPreview(m));null!=k&&(d.stylesheet=k,d.refresh())}}var d=a.editor.graph,k=document.createElement("div"),l=document.createElement("h3");
+l.style.width="100%";l.style.textAlign="center";l.style.marginTop="0px";mxUtils.write(l,b||mxResources.get("print"));k.appendChild(l);var f=1,g=1,n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var p=document.createElement("input");p.style.cssText="margin-right:8px;margin-bottom:8px;";p.setAttribute("value","all");p.setAttribute("type","radio");p.setAttribute("name","pages-printdialog");n.appendChild(p);l=document.createElement("span");
+mxUtils.write(l,mxResources.get("printAllPages"));n.appendChild(l);mxUtils.br(n);var m=p.cloneNode(!0);p.setAttribute("checked","checked");m.setAttribute("value","range");n.appendChild(m);l=document.createElement("span");mxUtils.write(l,mxResources.get("pages")+":");n.appendChild(l);var q=document.createElement("input");q.style.cssText="margin:0 8px 0 8px;";q.setAttribute("value","1");q.setAttribute("type","number");q.setAttribute("min","1");q.style.width="50px";n.appendChild(q);l=document.createElement("span");
+mxUtils.write(l,mxResources.get("to"));n.appendChild(l);var x=q.cloneNode(!0);n.appendChild(x);mxEvent.addListener(q,"focus",function(){m.checked=!0});mxEvent.addListener(x,"focus",function(){m.checked=!0});mxEvent.addListener(q,"change",e);mxEvent.addListener(x,"change",e);if(null!=a.pages&&(f=a.pages.length,null!=a.currentPage))for(l=0;l<a.pages.length;l++)if(a.currentPage==a.pages[l]){g=l+1;q.value=g;x.value=g;break}q.setAttribute("max",f);x.setAttribute("max",f);a.isPagesEnabled()?1<f&&(k.appendChild(n),
+m.checked=!0):m.checked=!0;var u=document.createElement("div");u.style.marginBottom="10px";var t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("value","adjust");t.setAttribute("type","radio");t.setAttribute("name","printZoom");u.appendChild(t);l=document.createElement("span");mxUtils.write(l,mxResources.get("adjustTo"));u.appendChild(l);var A=document.createElement("input");A.style.cssText="margin:0 8px 0 8px;";A.setAttribute("value","100 %");A.style.width="50px";u.appendChild(A);
+mxEvent.addListener(A,"focus",function(){t.checked=!0});k.appendChild(u);var n=n.cloneNode(!1),z=t.cloneNode(!0);z.setAttribute("value","fit");t.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(z);n.appendChild(l);u=document.createElement("table");u.style.display="inline-block";var v=document.createElement("tbody"),B=document.createElement("tr"),E=B.cloneNode(!0),y=document.createElement("td"),
+J=y.cloneNode(!0),C=y.cloneNode(!0),D=y.cloneNode(!0),G=y.cloneNode(!0),K=y.cloneNode(!0);y.style.textAlign="right";D.style.textAlign="right";mxUtils.write(y,mxResources.get("fitTo"));var I=document.createElement("input");I.style.cssText="margin:0 8px 0 8px;";I.setAttribute("value","1");I.setAttribute("min","1");I.setAttribute("type","number");I.style.width="40px";J.appendChild(I);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));C.appendChild(l);mxUtils.write(D,
+mxResources.get("fitToBy"));var F=I.cloneNode(!0);G.appendChild(F);mxEvent.addListener(I,"focus",function(){z.checked=!0});mxEvent.addListener(F,"focus",function(){z.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));K.appendChild(l);B.appendChild(y);B.appendChild(J);B.appendChild(C);E.appendChild(D);E.appendChild(G);E.appendChild(K);v.appendChild(B);v.appendChild(E);u.appendChild(v);n.appendChild(u);k.appendChild(n);n=document.createElement("div");l=
+document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));n.appendChild(l);l=document.createElement("div");l.style.marginBottom="12px";var M=PageSetupDialog.addPageFormatPanel(l,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(l);l=document.createElement("span");mxUtils.write(l,mxResources.get("pageScale"));n.appendChild(l);var N=document.createElement("input");N.style.cssText="margin:0 8px 0 8px;";
+N.setAttribute("value","100 %");N.style.width="60px";n.appendChild(N);k.appendChild(n);l=document.createElement("div");l.style.cssText="text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";a.editor.cancelFirst&&l.appendChild(n);a.isOffline()||(u=mxUtils.button(mxResources.get("help"),function(){d.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),u.className="geBtn",l.appendChild(u));PrintDialog.previewEnabled&&(u=
+mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();c(!1)}),u.className="geBtn",l.appendChild(u));u=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();c(!0)});u.className="geBtn gePrimaryBtn";l.appendChild(u);a.editor.cancelFirst||l.appendChild(n);k.appendChild(l);this.container=k};var K=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=
+this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var a=this.image;null!=a&&null!=a.src&&Graph.isPageLink(a.src)&&(a={originalSrc:a.src});this.page.viewState.backgroundImage=a}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)}}else K.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 M=document.createElement("canvas"),J=new Image;J.onload=function(){try{M.getContext("2d").drawImage(J,0,0);var a=M.toDataURL("image/png");Editor.prototype.useCanvasForExport=
+null!=a&&6<a.length}catch(N){}};J.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(I){}})();
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,c,b){b.ui=a.ui;return c};a.afterDecode=function(a,c,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(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,c,b){b.ui=a.ui;return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="15.0.2";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,c,b){b.ui=a.ui;return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="15.0.3";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;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.nativeFileSupport=
!mxClient.IS_OP&&!EditorUi.isElectronApp&&"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,
noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(a,b,c,d,f,g,m){g=null!=g?g:0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":
@@ -10506,9 +10507,9 @@ m:"")+(null!=t?"&border="+t:""))};EditorUi.prototype.setMode=function(a,b){this.
mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var k=null!=a.interval?parseInt(a.interval):6E4,l=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(l);l=window.setTimeout(f,k)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){g();f()}));g();f()}null!=b&&b()});null!=a.url&&0<a.url.length?this.editor.loadUrl(a.url,mxUtils.bind(this,function(a){d(a)}),mxUtils.bind(this,function(a){null!=c&&c(a)})):d("")};EditorUi.prototype.updateDiagram=function(a){function b(a){var b=new mxCellOverlay(a.image||d.warningImage,
a.tooltip,a.align,a.valign,a.offset);b.addListener(mxEvent.CLICK,function(b,e){c.alert(a.tooltip)});return b}var e=null,c=this;if(null!=a&&0<a.length&&(e=mxUtils.parseXml(a),a=null!=e?e.documentElement:null,null!=a&&"updates"==a.nodeName)){var d=this.editor.graph,f=d.getModel();f.beginUpdate();var g=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var m=f.getCell(a.getAttribute("id"));if(null!=m){try{var v=a.getAttribute("value");if(null!=v){var z=mxUtils.parseXml(v).documentElement;
-if(null!=z)if("1"==z.getAttribute("replace-value"))f.setValue(m,z);else for(var y=z.attributes,x=0;x<y.length;x++)d.setAttributeForCell(m,y[x].nodeName,0<y[x].nodeValue.length?y[x].nodeValue:null)}}catch(J){null!=window.console&&console.log("Error in value for "+m.id+": "+J)}try{var A=a.getAttribute("style");null!=A&&d.model.setStyle(m,A)}catch(J){null!=window.console&&console.log("Error in style for "+m.id+": "+J)}try{var B=a.getAttribute("icon");if(null!=B){var C=0<B.length?JSON.parse(B):null;null!=
-C&&C.append||d.removeCellOverlays(m);null!=C&&d.addCellOverlay(m,b(C))}}catch(J){null!=window.console&&console.log("Error in icon for "+m.id+": "+J)}try{var D=a.getAttribute("geometry");if(null!=D){var D=JSON.parse(D),G=d.getCellGeometry(m);if(null!=G){G=G.clone();for(key in D){var E=parseFloat(D[key]);"dx"==key?G.x+=E:"dy"==key?G.y+=E:"dw"==key?G.width+=E:"dh"==key?G.height+=E:G[key]=parseFloat(D[key])}d.model.setGeometry(m,G)}}}catch(J){null!=window.console&&console.log("Error in icon for "+m.id+
-": "+J)}}}else if("model"==a.nodeName){for(var F=a.firstChild;null!=F&&F.nodeType!=mxConstants.NODETYPE_ELEMENT;)F=F.nextSibling;null!=F&&(new mxCodec(a.firstChild)).decode(F,f)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(d.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(g=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):
+if(null!=z)if("1"==z.getAttribute("replace-value"))f.setValue(m,z);else for(var y=z.attributes,x=0;x<y.length;x++)d.setAttributeForCell(m,y[x].nodeName,0<y[x].nodeValue.length?y[x].nodeValue:null)}}catch(K){null!=window.console&&console.log("Error in value for "+m.id+": "+K)}try{var A=a.getAttribute("style");null!=A&&d.model.setStyle(m,A)}catch(K){null!=window.console&&console.log("Error in style for "+m.id+": "+K)}try{var B=a.getAttribute("icon");if(null!=B){var C=0<B.length?JSON.parse(B):null;null!=
+C&&C.append||d.removeCellOverlays(m);null!=C&&d.addCellOverlay(m,b(C))}}catch(K){null!=window.console&&console.log("Error in icon for "+m.id+": "+K)}try{var D=a.getAttribute("geometry");if(null!=D){var D=JSON.parse(D),G=d.getCellGeometry(m);if(null!=G){G=G.clone();for(key in D){var E=parseFloat(D[key]);"dx"==key?G.x+=E:"dy"==key?G.y+=E:"dw"==key?G.width+=E:"dh"==key?G.height+=E:G[key]=parseFloat(D[key])}d.model.setGeometry(m,G)}}}catch(K){null!=window.console&&console.log("Error in icon for "+m.id+
+": "+K)}}}else if("model"==a.nodeName){for(var F=a.firstChild;null!=F&&F.nodeType!=mxConstants.NODETYPE_ELEMENT;)F=F.nextSibling;null!=F&&(new mxCodec(a.firstChild)).decode(F,f)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(d.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(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 e};EditorUi.prototype.getCopyFilename=function(a,b){var e=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename,c="",d=e.lastIndexOf(".");0<=d&&(c=e.substring(d),e=e.substring(0,d));if(b)var k=new Date,d=k.getFullYear(),f=k.getMonth()+1,g=k.getDate(),m=k.getHours(),z=k.getMinutes(),k=k.getSeconds(),e=e+(" "+(d+"-"+f+"-"+g+"-"+m+"-"+z+"-"+k));return e=mxResources.get("copyOf",[e])+c};
EditorUi.prototype.fileLoaded=function(a,b){var e=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var c=!1;this.hideDialog();null!=e&&(EditorUi.debug("File.closed",[e]),e.removeListener(this.descriptorChangedListener),e.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=e&&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);
@@ -10600,21 +10601,21 @@ mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.hideDialog();thi
E.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,e,mxUtils.bind(this,function(){d(g.checked?c:null,x.checked,A.value,m.getTarget(),m.getColor(),B.checked,C.checked,D.checked,G.checked,E.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);k.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,d,f,g){var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=document.createElement("h3");mxUtils.write(k,a||mxResources.get("link"));k.style.cssText=
"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";e.appendChild(k);var l=this.getCurrentFile(),k="https://www.diagrams.net/doc/faq/publish-diagram-as-link";a=0;if(null!=l&&l.constructor==window.DriveFile&&!b){a=80;var k="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var m=document.createElement("div");
m.style.whiteSpace="normal";mxUtils.write(m,mxResources.get("linkAccountRequired"));n.appendChild(m);m=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(l.getId())}));m.style.marginTop="12px";m.className="geBtn";n.appendChild(m);e.appendChild(n);m=document.createElement("a");m.style.paddingLeft="12px";m.style.color="gray";m.style.fontSize="11px";m.style.cursor="pointer";mxUtils.write(m,mxResources.get("check"));n.appendChild(m);mxEvent.addListener(m,"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 p=null,q=null;if(null!=c||null!=d)a+=30,mxUtils.write(e,mxResources.get("width")+":"),p=document.createElement("input"),p.setAttribute("type","text"),
-p.style.marginRight="16px",p.style.width="50px",p.style.marginLeft="6px",p.style.marginRight="16px",p.style.marginBottom="10px",p.value="100%",e.appendChild(p),mxUtils.write(e,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=d+"px",e.appendChild(q),mxUtils.br(e);var B=this.addLinkSection(e,g);c=null!=this.pages&&1<this.pages.length;var C=null;if(null==l||l.constructor!=window.DriveFile||
+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 x=null,p=null;if(null!=c||null!=d)a+=30,mxUtils.write(e,mxResources.get("width")+":"),x=document.createElement("input"),x.setAttribute("type","text"),
+x.style.marginRight="16px",x.style.width="50px",x.style.marginLeft="6px",x.style.marginRight="16px",x.style.marginBottom="10px",x.value="100%",e.appendChild(x),mxUtils.write(e,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=d+"px",e.appendChild(p),mxUtils.br(e);var q=this.addLinkSection(e,g);c=null!=this.pages&&1<this.pages.length;var C=null;if(null==l||l.constructor!=window.DriveFile||
b)C=this.addCheckbox(e,mxResources.get("allPages"),c,!c);var D=this.addCheckbox(e,mxResources.get("lightbox"),!0,null,null,!g),G=this.addEditButton(e,D),E=G.getEditInput();g&&(E.style.marginLeft=D.style.marginLeft,D.style.display="none",a-=30);var F=this.addCheckbox(e,mxResources.get("layers"),!0);F.style.marginLeft=E.style.marginLeft;F.style.marginBottom="16px";F.style.marginTop="8px";mxEvent.addListener(D,"change",function(){D.checked?(F.removeAttribute("disabled"),E.removeAttribute("disabled")):
-(F.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"));E.checked&&D.checked?G.getEditSelect().removeAttribute("disabled"):G.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,e,mxUtils.bind(this,function(){f(B.getTarget(),B.getColor(),null==C?!0:C.checked,D.checked,G.getLink(),F.checked,null!=p?p.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),k);this.showDialog(b.container,340,254+a,!0,!0);null!=p?(p.focus(),mxClient.IS_GC||mxClient.IS_FF||
-5<=document.documentMode?p.select():document.execCommand("selectAll",!1,null)):B.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,d,f){var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=document.createElement("h3");mxUtils.write(k,mxResources.get("image"));k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(f?"10":"4")+"px";e.appendChild(k);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 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";e.appendChild(l);mxUtils.br(e)}var n=this.addCheckbox(e,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),
-m=d?null:this.addCheckbox(e,mxResources.get("includeCopyOfMyDiagram"),!0),k=this.editor.graph,p=d?null:this.addCheckbox(e,mxResources.get("transparentBackground"),k.background==mxConstants.NONE||null==k.background);null!=p&&(p.style.marginBottom="16px");a=new CustomDialog(this,e,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,b=parseInt(l.value)||0;c(!n.checked,null!=m?m.checked:!1,null!=p?p.checked:!1,a,b)}),null,a,b);this.showDialog(a.container,300,(f?25:0)+(d?125:210),!0,!0)};EditorUi.prototype.showExportDialog=
+(F.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"));E.checked&&D.checked?G.getEditSelect().removeAttribute("disabled"):G.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,e,mxUtils.bind(this,function(){f(q.getTarget(),q.getColor(),null==C?!0:C.checked,D.checked,G.getLink(),F.checked,null!=x?x.value:null,null!=p?p.value:null)}),null,mxResources.get("create"),k);this.showDialog(b.container,340,254+a,!0,!0);null!=x?(x.focus(),mxClient.IS_GC||mxClient.IS_FF||
+5<=document.documentMode?x.select():document.execCommand("selectAll",!1,null)):q.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,d,f){var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=document.createElement("h3");mxUtils.write(k,mxResources.get("image"));k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(f?"10":"4")+"px";e.appendChild(k);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 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";e.appendChild(l);mxUtils.br(e)}var m=this.addCheckbox(e,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),
+n=d?null:this.addCheckbox(e,mxResources.get("includeCopyOfMyDiagram"),!0),k=this.editor.graph,p=d?null:this.addCheckbox(e,mxResources.get("transparentBackground"),k.background==mxConstants.NONE||null==k.background);null!=p&&(p.style.marginBottom="16px");a=new CustomDialog(this,e,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,b=parseInt(l.value)||0;c(!m.checked,null!=n?n.checked:!1,null!=p?p.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,m,t,v){m=null!=m?m:!0;var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=this.editor.graph,l="jpeg"==t?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 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%";e.appendChild(p);mxUtils.write(e,mxResources.get("borderWidth")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.value=this.lastExportBorder||"0";e.appendChild(q);mxUtils.br(e);var u=this.addCheckbox(e,mxResources.get("selectionOnly"),!1,k.isSelectionEmpty()),G=document.createElement("input");G.style.marginTop="16px";G.style.marginRight="8px";G.style.marginLeft=
"24px";G.setAttribute("disabled","disabled");G.setAttribute("type","checkbox");var E=document.createElement("select");E.style.marginTop="16px";E.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(n=0;n<a.length;n++)if(!k.isSelectionEmpty()||"selectionOnly"!=a[n]){var F=document.createElement("option");mxUtils.write(F,mxResources.get(a[n]));F.setAttribute("value",a[n]);E.appendChild(F)}v?(mxUtils.write(e,mxResources.get("size")+":"),e.appendChild(E),mxUtils.br(e),l+=26,mxEvent.addListener(E,
"change",function(){"selectionOnly"==E.value&&(u.checked=!0)})):g&&(e.appendChild(G),mxUtils.write(e,mxResources.get("crop")),mxUtils.br(e),l+=26,mxEvent.addListener(u,"change",function(){u.checked?G.removeAttribute("disabled"):G.setAttribute("disabled","disabled")}));k.isSelectionEmpty()?v&&(u.style.display="none",u.nextSibling.style.display="none",u.nextSibling.nextSibling.style.display="none",l-=26):(E.value="diagram",G.setAttribute("checked","checked"),G.defaultChecked=!0,mxEvent.addListener(u,
-"change",function(){E.value=u.checked?"selectionOnly":"diagram"}));var J=this.addCheckbox(e,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),M=null;Editor.isDarkMode()&&(M=this.addCheckbox(e,mxResources.get("dark"),!0),l+=26);var K=this.addCheckbox(e,mxResources.get("shadow"),k.shadowVisible),I=document.createElement("input");I.style.marginTop="16px";I.style.marginRight="8px";I.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||I.setAttribute("disabled","disabled");
+"change",function(){E.value=u.checked?"selectionOnly":"diagram"}));var K=this.addCheckbox(e,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),M=null;Editor.isDarkMode()&&(M=this.addCheckbox(e,mxResources.get("dark"),!0),l+=26);var J=this.addCheckbox(e,mxResources.get("shadow"),k.shadowVisible),I=document.createElement("input");I.style.marginTop="16px";I.style.marginRight="8px";I.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||I.setAttribute("disabled","disabled");
b&&(e.appendChild(I),mxUtils.write(e,mxResources.get("embedImages")),mxUtils.br(e),l+=26);var N=null;if("png"==t||"jpeg"==t)N=this.addCheckbox(e,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=26;var H=this.addCheckbox(e,mxResources.get("includeCopyOfMyDiagram"),m,null,null,"jpeg"!=t);H.style.marginBottom="16px";var L=document.createElement("select");L.style.maxWidth="260px";L.style.marginLeft="8px";L.style.marginRight="10px";L.className="geBtn";b=document.createElement("option");
b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));L.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");mxUtils.write(b,mxResources.get("openInNewWindow"));L.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));L.appendChild(b);"svg"==t&&(mxUtils.write(e,mxResources.get("links")+":"),e.appendChild(L),mxUtils.br(e),mxUtils.br(e),l+=26);c=new CustomDialog(this,e,
-mxUtils.bind(this,function(){this.lastExportBorder=q.value;this.lastExportZoom=p.value;f(p.value,J.checked,!u.checked,K.checked,H.checked,I.checked,q.value,G.checked,!1,L.value,null!=N?N.checked:null,null!=M?M.checked:null,E.value)}),null,c,d);this.showDialog(c.container,340,l,!0,!0,null,null,null,null,!0);p.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,d,f){var e=document.createElement("div");
+mxUtils.bind(this,function(){this.lastExportBorder=q.value;this.lastExportZoom=p.value;f(p.value,K.checked,!u.checked,J.checked,H.checked,I.checked,q.value,G.checked,!1,L.value,null!=N?N.checked:null,null!=M?M.checked:null,E.value)}),null,c,d);this.showDialog(c.container,340,l,!0,!0,null,null,null,null,!0);p.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.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 k=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";e.appendChild(g)}var l=this.addCheckbox(e,mxResources.get("fit"),!0),n=this.addCheckbox(e,mxResources.get("shadow"),k.shadowVisible&&d,!d),m=this.addCheckbox(e,c),p=this.addCheckbox(e,mxResources.get("lightbox"),!0),A=this.addEditButton(e,p),B=A.getEditInput(),C=1<k.model.getChildCount(k.model.getRoot()),
D=this.addCheckbox(e,mxResources.get("layers"),C,!C);D.style.marginLeft=B.style.marginLeft;D.style.marginBottom="12px";D.style.marginTop="8px";mxEvent.addListener(p,"change",function(){p.checked?(C&&D.removeAttribute("disabled"),B.removeAttribute("disabled")):(D.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"));B.checked&&p.checked?A.getEditSelect().removeAttribute("disabled"):A.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,e,mxUtils.bind(this,
function(){a(l.checked,n.checked,m.checked,p.checked,A.getLink(),D.checked)}),null,mxResources.get("embed"),f);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,c,d,f,g,m,t){function e(b){var e=" ",n="";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('"+
@@ -10630,7 +10631,7 @@ a){if(a.hasAttribute("scale")){var c=parseFloat(a.getAttribute("scale"));!isNaN(
!0),e),g=c;else if(k||null!=this.pages&&this.currentPage!=this.pages[0]){var e=this.createTemporaryGraph(e.getStylesheet()),l=e.getGlobalVariable,m=this.pages[0];e.getGlobalVariable=function(a){return"page"==a?m.getName():"pagenumber"==a?1:l.apply(this,arguments)};document.body.appendChild(e.container);e.model.setRoot(m.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(c){try{null==g&&(g=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var d=c.toDataURL("image/png"),d=Editor.writeGraphModelToPng(d,
"tEXt","mxfile",encodeURIComponent(g));a(d.substring(d.lastIndexOf(",")+1));e!=this.editor.graph&&e.container.parentNode.removeChild(e.container)}catch(A){null!=b&&b(A)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,d,null,e.shadowVisible,null,e,f)}catch(y){null!=b&&b(y)}};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,f,g,m,t,v,z,y,x,A){t=null!=t?t:!0;m=null!=v?v:b.background;m==mxConstants.NONE&&(m=null);g=b.getSvg(m,z,y,null,null,g,null,null,null,b.shadowVisible||
x,null,A);(b.shadowVisible||x)&&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){t?this.editor.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.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(a,this.editor.resolvedFontCss),this.editor.embedExtFonts(mxUtils.bind(this,function(c){try{null!=c&&this.editor.addFontCss(a,c),b(a)}catch(n){b(a)}}))}catch(l){b(a)}}))};
+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.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(a,this.editor.resolvedFontCss),this.editor.embedExtFonts(mxUtils.bind(this,function(e){try{null!=e&&this.editor.addFontCss(a,e),b(a)}catch(n){b(a)}}))}catch(l){b(a)}}))};
EditorUi.prototype.exportImage=function(a,b,c,d,f,g,m,t,v,z,y,x,A){v=null!=v?v:"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.editor.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,f?this.getFileData(!0,null,null,null,c,t):null,v,null==this.pages||0==this.pages.length,y)}catch(D){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,m,z,x,A)}catch(C){this.spinner.stop(),this.handleError(C)}}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return this.editor.isCorsEnabledForUrl(a)};EditorUi.prototype.importXml=function(a,b,c,d,f,g,m){b=null!=b?b:0;c=null!=c?c:0;var e=[];try{var k=this.editor.graph;if(null!=a&&0<a.length){k.model.beginUpdate();try{var l=mxUtils.parseXml(a);a={};var n=this.editor.extractGraphModel(l.documentElement,
null!=this.pages);if(null!=n&&"mxfile"==n.nodeName&&null!=this.pages){var p=n.getElementsByTagName("diagram");if(1==p.length&&!g){if(n=Editor.parseDiagramNode(p[0]),null!=this.currentPage&&(a[p[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1]))){var q=p[0].getAttribute("name");null!=q&&""!=q&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,q))}}else if(0<
@@ -10667,14 +10668,14 @@ b(a):c()})):0==d.indexOf("versions/")&&(d=parseInt(d.substr(9)),d>f&&(f=d,k=e))}
null,null!=x?mxEvent.isControlDown(x):null),v=!0)),v||(b=this.editor.graph,y=a.indexOf(";"),0<y&&(a=a.substring(0,y)+a.substring(a.indexOf(",",y+1))),z&&b.isGridEnabled()&&(c=b.snap(c),d=b.snap(d)),k=[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,l)):null!=v&&null!=m&&(/(\.v(dx|sdx?))($|\?)/i.test(m)||/(\.vs(x|sx?))($|\?)/i.test(m))?
(e=!0,this.importVisio(v,l)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,m)?(e=!0,this.parseFile(null!=v?v:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?l(a.responseText):null!=t&&t(null))}),m)):0==a.indexOf("PK")&&null!=v?(e=!0,this.importZipFile(v,l,mxUtils.bind(this,function(){k=this.insertTextAt(this.validateFileData(a),c,d,!0,null,z);t(k)}))):/(\.v(sd|dx))($|\?)/i.test(m)||/(\.vs(s|x))($|\?)/i.test(m)||
(k=this.insertTextAt(this.validateFileData(a),c,d,!0,null,z,null,null!=x?mxEvent.isControlDown(x):null));e||null==t||t(k);return k};EditorUi.prototype.importFiles=function(a,b,c,d,f,g,m,t,v,z,y,x,A){d=null!=d?d:this.maxImageSize;z=null!=z?z:this.maxImageBytes;var e=null!=b&&null!=c,k=!0;b=null!=b?b:0;c=null!=c?c:0;var l=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var n=y||this.resampleThreshold,p=0;p<a.length;p++)if("image/"==a[p].type.substring(0,6)&&a[p].size>n){l=!0;break}var q=mxUtils.bind(this,
-function(){var l=this.editor.graph,n=l.gridSize;f=null!=f?f:mxUtils.bind(this,function(a,b,c,d,f,k,g,l,m){try{return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):this.importFile(a,b,c,d,f,k,g,l,m,e,x,A)}catch(ga){return this.handleError(ga),null}});g=null!=g?g:mxUtils.bind(this,function(a){l.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=a.length,q=p,u=[],B=mxUtils.bind(this,function(a,
-b){u[a]=b;if(0==--q){this.spinner.stop();if(null!=t)t(u);else{var c=[];l.getModel().beginUpdate();try{for(var e=0;e<u.length;e++){var d=u[e]();null!=d&&(c=c.concat(d))}}finally{l.getModel().endUpdate()}}g(c)}}),E=0;E<p;E++)mxUtils.bind(this,function(e){var g=a[e];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=Graph.clipSvgDataUri(a.target.result),q=p.indexOf(","),A=decodeURIComponent(escape(atob(p.substring(q+
-1)))),u=mxUtils.parseXml(A),A=u.getElementsByTagName("svg");if(0<A.length){var A=A[0],t=x?null:A.getAttribute("content");null!=t&&"<"!=t.charAt(0)&&"%"!=t.charAt(0)&&(t=unescape(window.atob?atob(t):Base64.decode(t,!0)));null!=t&&"%"==t.charAt(0)&&(t=decodeURIComponent(t));null==t||"<mxfile "!==t.substring(0,8)&&"<mxGraphModel "!==t.substring(0,14)?B(e,mxUtils.bind(this,function(){try{if(p.substring(0,q+1),null!=u){var a=u.getElementsByTagName("svg");if(0<a.length){var k=a[0],m=k.getAttribute("width"),
-x=k.getAttribute("height"),m=null!=m&&"%"!=m.charAt(m.length-1)?parseFloat(m):NaN,x=null!=x&&"%"!=x.charAt(x.length-1)?parseFloat(x):NaN,A=k.getAttribute("viewBox");if(null==A||0==A.length)k.setAttribute("viewBox","0 0 "+m+" "+x);else if(isNaN(m)||isNaN(x)){var t=A.split(" ");3<t.length&&(m=parseFloat(t[2]),x=parseFloat(t[3]))}p=Editor.createSvgDataUri(mxUtils.getXml(k));var z=Math.min(1,Math.min(d/Math.max(1,m)),d/Math.max(1,x)),B=f(p,g.type,b+e*n,c+e*n,Math.max(1,Math.round(m*z)),Math.max(1,Math.round(x*
-z)),g.name);if(isNaN(m)||isNaN(x)){var E=new Image;E.onload=mxUtils.bind(this,function(){m=Math.max(1,E.width);x=Math.max(1,E.height);B[0].geometry.width=m;B[0].geometry.height=x;k.setAttribute("viewBox","0 0 "+m+" "+x);p=Editor.createSvgDataUri(mxUtils.getXml(k));var a=p.indexOf(";");0<a&&(p=p.substring(0,a)+p.substring(p.indexOf(",",a+1)));l.setCellStyles("image",p,[B[0]])});E.src=Editor.createSvgDataUri(mxUtils.getXml(k))}return B}}}catch(ca){}return null})):B(e,mxUtils.bind(this,function(){return f(t,
-"text/xml",b+e*n,c+e*n,0,0,g.name)}))}else B(e,mxUtils.bind(this,function(){return null}))}else{A=!1;if("image/png"==g.type){var E=x?null:this.extractGraphModelFromPng(a.target.result);if(null!=E&&0<E.length){var v=new Image;v.src=a.target.result;B(e,mxUtils.bind(this,function(){return f(E,"text/xml",b+e*n,c+e*n,v.width,v.height,g.name)}));A=!0}}A||(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(l){this.resizeImage(l,a.target.result,mxUtils.bind(this,function(a,l,m){B(e,mxUtils.bind(this,function(){if(null!=a&&a.length<z){var p=k&&this.isResampleImageSize(g.size,y)?Math.min(1,Math.min(d/l,d/m)):1;return f(a,g.type,b+e*n,c+e*n,Math.round(l*p),Math.round(m*p),g.name)}this.handleError({message:mxResources.get("imageTooBig")});
-return null}))}),k,d,y,g.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else p=a.target.result,f(p,g.type,b+e*n,c+e*n,240,160,g.name,function(a){B(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){B(e,function(){return a})},g):"image"==g.type.substring(0,5)||"application/pdf"==g.type?p.readAsDataURL(g):p.readAsText(g)}})(E)});if(l){l=
+function(){var l=this.editor.graph,n=l.gridSize;f=null!=f?f:mxUtils.bind(this,function(a,b,c,d,f,k,g,l,m){try{return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):this.importFile(a,b,c,d,f,k,g,l,m,e,x,A)}catch(ga){return this.handleError(ga),null}});g=null!=g?g:mxUtils.bind(this,function(a){l.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=a.length,q=p,u=[],E=mxUtils.bind(this,function(a,
+b){u[a]=b;if(0==--q){this.spinner.stop();if(null!=t)t(u);else{var c=[];l.getModel().beginUpdate();try{for(var e=0;e<u.length;e++){var d=u[e]();null!=d&&(c=c.concat(d))}}finally{l.getModel().endUpdate()}}g(c)}}),B=0;B<p;B++)mxUtils.bind(this,function(e){var g=a[e];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=Graph.clipSvgDataUri(a.target.result),q=p.indexOf(","),A=decodeURIComponent(escape(atob(p.substring(q+
+1)))),u=mxUtils.parseXml(A),A=u.getElementsByTagName("svg");if(0<A.length){var A=A[0],t=x?null:A.getAttribute("content");null!=t&&"<"!=t.charAt(0)&&"%"!=t.charAt(0)&&(t=unescape(window.atob?atob(t):Base64.decode(t,!0)));null!=t&&"%"==t.charAt(0)&&(t=decodeURIComponent(t));null==t||"<mxfile "!==t.substring(0,8)&&"<mxGraphModel "!==t.substring(0,14)?E(e,mxUtils.bind(this,function(){try{if(p.substring(0,q+1),null!=u){var a=u.getElementsByTagName("svg");if(0<a.length){var k=a[0],m=k.getAttribute("width"),
+x=k.getAttribute("height"),m=null!=m&&"%"!=m.charAt(m.length-1)?parseFloat(m):NaN,x=null!=x&&"%"!=x.charAt(x.length-1)?parseFloat(x):NaN,A=k.getAttribute("viewBox");if(null==A||0==A.length)k.setAttribute("viewBox","0 0 "+m+" "+x);else if(isNaN(m)||isNaN(x)){var t=A.split(" ");3<t.length&&(m=parseFloat(t[2]),x=parseFloat(t[3]))}p=Editor.createSvgDataUri(mxUtils.getXml(k));var E=Math.min(1,Math.min(d/Math.max(1,m)),d/Math.max(1,x)),z=f(p,g.type,b+e*n,c+e*n,Math.max(1,Math.round(m*E)),Math.max(1,Math.round(x*
+E)),g.name);if(isNaN(m)||isNaN(x)){var B=new Image;B.onload=mxUtils.bind(this,function(){m=Math.max(1,B.width);x=Math.max(1,B.height);z[0].geometry.width=m;z[0].geometry.height=x;k.setAttribute("viewBox","0 0 "+m+" "+x);p=Editor.createSvgDataUri(mxUtils.getXml(k));var a=p.indexOf(";");0<a&&(p=p.substring(0,a)+p.substring(p.indexOf(",",a+1)));l.setCellStyles("image",p,[z[0]])});B.src=Editor.createSvgDataUri(mxUtils.getXml(k))}return z}}}catch(ca){}return null})):E(e,mxUtils.bind(this,function(){return f(t,
+"text/xml",b+e*n,c+e*n,0,0,g.name)}))}else E(e,mxUtils.bind(this,function(){return null}))}else{A=!1;if("image/png"==g.type){var B=x?null:this.extractGraphModelFromPng(a.target.result);if(null!=B&&0<B.length){var v=new Image;v.src=a.target.result;E(e,mxUtils.bind(this,function(){return f(B,"text/xml",b+e*n,c+e*n,v.width,v.height,g.name)}));A=!0}}A||(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(l){this.resizeImage(l,a.target.result,mxUtils.bind(this,function(a,l,m){E(e,mxUtils.bind(this,function(){if(null!=a&&a.length<z){var p=k&&this.isResampleImageSize(g.size,y)?Math.min(1,Math.min(d/l,d/m)):1;return f(a,g.type,b+e*n,c+e*n,Math.round(l*p),Math.round(m*p),g.name)}this.handleError({message:mxResources.get("imageTooBig")});
+return null}))}),k,d,y,g.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else p=a.target.result,f(p,g.type,b+e*n,c+e*n,240,160,g.name,function(a){E(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){E(e,function(){return a})},g):"image"==g.type.substring(0,5)||"application/pdf"==g.type?p.readAsDataURL(g):p.readAsText(g)}})(B)});if(l){l=
[];for(p=0;p<a.length;p++)l.push(a[p]);a=l;this.confirmImageResize(function(a){k=a;q()},v)}else q()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},e=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,d=function(e,d){if(e||b)mxSettings.setResizeImages(e?d:null),mxSettings.save();c();a(d)};null==e||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),
function(a){d(a,!0)},function(a){d(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):d(!1,e)};EditorUi.prototype.parseFile=function(a,b,c){c=null!=c?c:a.name;var e=new FormData;e.append("format","xml");e.append("upfile",a,c);var d=new XMLHttpRequest;d.open("POST",
OPEN_URL);d.onreadystatechange=function(){b(d)};d.send(e);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+a.size})}catch(q){}};EditorUi.prototype.isResampleImageSize=function(a,b){b=null!=b?b:this.resampleThreshold;return a>b};EditorUi.prototype.resizeImage=function(a,b,c,d,f,g,m){f=null!=f?f:this.maxImageSize;var e=Math.max(1,a.width),k=Math.max(1,a.height);if(d&&this.isResampleImageSize(null!=m?m:b.length,g))try{var l=Math.max(e/f,k/f);if(1<l){var n=Math.round(e/l),p=Math.round(k/
@@ -10684,20 +10685,21 @@ new TextareaDialog(a,mxResources.get("plantUml")+":",f.data,function(e){null!=e&
JSON.stringify({data:e,format:f.format}))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(e.container,420,300,!0,!0);e.init()};b.cellEditor.editMermaidData=function(c,e,d){var f=JSON.parse(d);e=new TextareaDialog(a,mxResources.get("mermaid")+":",f.data,function(e){null!=e&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generateMermaidImage(e,f.config,function(d,g,k){a.spinner.stop();b.getModel().beginUpdate();try{b.setCellStyles("image",
d,[c]);var l=b.model.getGeometry(c);null!=l&&(l=l.clone(),l.width=Math.max(l.width,g),l.height=Math.max(l.height,k),b.cellsResized([c],[l],!1));b.setAttributeForCell(c,"mermaidData",JSON.stringify({data:e,config:f.config},null,2))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(e.container,420,300,!0,!0);e.init()};var c=b.cellEditor.startEditing;b.cellEditor.startEditing=function(e,d){try{var f=this.graph.getAttributeForCell(e,"plantUmlData");if(null!=
f)this.editPlantUmlData(e,d,f);else if(f=this.graph.getAttributeForCell(e,"mermaidData"),null!=f)this.editMermaidData(e,d,f);else{var g=b.getCellStyle(e);"1"==mxUtils.getValue(g,"metaEdit","0")?a.showDataDialog(e):c.apply(this,arguments)}}catch(M){a.handleError(M)}};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=b.parseBackgroundImage;b.parseBackgroundImage=function(a){var b=d.apply(this,
-arguments);null!=b&&null!=b.src&&Graph.isPageLink(b.src)&&(b={originalSrc:b.src});return b};var g=b.setBackgroundImage;b.setBackgroundImage=function(b){null!=b&&null!=b.originalSrc&&(b=a.createImageForPageLink(b.originalSrc));g.apply(this,arguments)};var m=b.getBackgroundImageObject;b.getBackgroundImageObject=function(a){var b=m.apply(this,arguments);null!=b&&null!=b.originalSrc&&(b={src:b.originalSrc,width:b.width,height:b.height});return b};var u=this.clearDefaultStyle;this.clearDefaultStyle=function(){u.apply(this,
-arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var t=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(a){a=null!=a?a:"";"1"==urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1");return t.apply(this,arguments)};
-var v=b.addClickHandler;b.addClickHandler=function(a,c,e){var d=c;c=function(a,c){if(null==c){var e=mxEvent.getSource(a);"a"==e.nodeName.toLowerCase()&&(c=e.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=d&&d(a,c)};v.call(this,a,c,e)};f.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var z=Menus.prototype.addPopupMenuEditItems;
-this.menus.addPopupMenuEditItems=function(b,c,e){a.editor.graph.isSelectionEmpty()?z.apply(this,arguments):a.menus.addMenuItems(b,"delete - cut copy copyAsImage - duplicate".split(" "),null,e)}}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 y=b.getExportVariables;b.getExportVariables=function(){var b=y.apply(this,arguments),c=a.getCurrentFile();null!=
-c&&(b.filename=c.getTitle());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 x=b.getGlobalVariable;b.getGlobalVariable=function(b){var c=a.getCurrentFile();return"filename"==b&&null!=c?c.getTitle():"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:x.apply(this,arguments)};var A=b.labelLinkClicked;b.labelLinkClicked=function(a,c,e){var d=c.getAttribute("href");if(null==d||!b.isCustomLink(d)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))A.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(d),b.getRubberband().reset();mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?
-c.getTitle():b);return b};var B=this.actions.get("print");B.setEnabled(!mxClient.IS_IOS||!navigator.standalone);B.visible=B.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"findReplace"),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),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&b.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var c=b.cellEditor.text2,e=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=e&&(e.parentNode.removeChild(e),e=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){null==
-e&&(!mxClient.IS_IE||10<document.documentMode)&&(e=this.highlightElement(c));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=e&&(e.parentNode.removeChild(e),e=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,e,d,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 e=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,e)),d/Math.max(1,a));b.insertImage(decodeURIComponent(c),e*d,a*d)})):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&&(B=this.editor.graph.view,B.setUnit(mxSettings.getUnit()),B.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,B.unit),this.refresh());if("1"==urlParams.styledev){B=document.getElementById("geFooter");null!=B&&(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)})),B.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 C=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:C.apply(this,arguments)}}B=document.getElementById("geInfo");null!=B&&B.parentNode.removeChild(B);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var D=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=D&&(D.parentNode.removeChild(D),
+arguments);null!=b&&null!=b.src&&Graph.isPageLink(b.src)&&(b={originalSrc:b.src});return b};var g=b.setBackgroundImage;b.setBackgroundImage=function(b){null!=b&&null!=b.originalSrc&&(b=a.createImageForPageLink(b.originalSrc));g.apply(this,arguments)};this.editor.addListener("pageRenamed",mxUtils.bind(this,function(){b.refreshBackgroundImage()}));this.editor.addListener("pageMoved",mxUtils.bind(this,function(){b.refreshBackgroundImage()}));this.editor.addListener("pagesPatched",mxUtils.bind(this,function(a,
+c){var e=null!=b.backgroundImage?b.backgroundImage.originalSrc:null;if(null!=e){var d=e.indexOf(",");if(0<d)for(var e=e.substring(d+1),d=c.getProperty("patches"),f=0;f<d.length;f++)if(null!=d[f][EditorUi.DIFF_UPDATE][e]){b.refreshBackgroundImage();b.view.validateBackgroundImage();break}}}));var m=b.getBackgroundImageObject;b.getBackgroundImageObject=function(a){var b=m.apply(this,arguments);null!=b&&null!=b.originalSrc&&(b={src:b.originalSrc,width:b.width,height:b.height});return b};var u=this.clearDefaultStyle;
+this.clearDefaultStyle=function(){u.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var t=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(a){a=null!=a?a:"";"1"==urlParams.dev&&(a+=(0<a.length?
+"&":"?")+"dev=1");return t.apply(this,arguments)};var v=b.addClickHandler;b.addClickHandler=function(a,c,e){var d=c;c=function(a,c){if(null==c){var e=mxEvent.getSource(a);"a"==e.nodeName.toLowerCase()&&(c=e.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=d&&d(a,c)};v.call(this,a,c,e)};f.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);
+if(null!=this.menus){var z=Menus.prototype.addPopupMenuEditItems;this.menus.addPopupMenuEditItems=function(b,c,e){a.editor.graph.isSelectionEmpty()?z.apply(this,arguments):a.menus.addMenuItems(b,"delete - cut copy copyAsImage - duplicate".split(" "),null,e)}}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 y=b.getExportVariables;b.getExportVariables=function(){var b=
+y.apply(this,arguments),c=a.getCurrentFile();null!=c&&(b.filename=c.getTitle());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 x=b.getGlobalVariable;b.getGlobalVariable=function(b){var c=a.getCurrentFile();return"filename"==b&&null!=c?c.getTitle():"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:x.apply(this,arguments)};var A=b.labelLinkClicked;b.labelLinkClicked=function(a,c,e){var d=c.getAttribute("href");if(null==d||!b.isCustomLink(d)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))A.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(d),b.getRubberband().reset();mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,
+c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?c.getTitle():b);return b};var B=this.actions.get("print");B.setEnabled(!mxClient.IS_IOS||!navigator.standalone);B.visible=B.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"findReplace"),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),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&b.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var c=b.cellEditor.text2,e=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=e&&(e.parentNode.removeChild(e),e=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,
+"dragover",mxUtils.bind(this,function(a){null==e&&(!mxClient.IS_IE||10<document.documentMode)&&(e=this.highlightElement(c));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=e&&(e.parentNode.removeChild(e),e=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,e,d,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 e=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,e)),d/Math.max(1,a));b.insertImage(decodeURIComponent(c),e*d,a*d)})):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&&(B=this.editor.graph.view,B.setUnit(mxSettings.getUnit()),B.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,B.unit),this.refresh());if("1"==urlParams.styledev){B=document.getElementById("geFooter");null!=B&&(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)})),B.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 C=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:C.apply(this,arguments)}}B=document.getElementById("geInfo");null!=B&&B.parentNode.removeChild(B);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var D=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=D&&(D.parentNode.removeChild(D),
D=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==D&&(!mxClient.IS_IE||10<document.documentMode)&&(D=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!=D&&(D.parentNode.removeChild(D),D=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),
e=b.view.translate,d=b.view.scale,f=c.x/d-e.x,g=c.y/d-e.y;if(0<a.dataTransfer.files.length)mxEvent.isShiftDown(a)?this.openFiles(a.dataTransfer.files,!0):(mxEvent.isAltDown(a)&&(g=f=null),this.importFiles(a.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a),a));else{mxEvent.isAltDown(a)&&(g=f=0);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=b.sanitizeHtml(l);var m=null,e=c.getElementsByTagName("img");null!=e&&1==e.length?(l=e[0].getAttribute("src"),null==l&&(l=e[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)||(m=!0)):(e=c.getElementsByTagName("a"),null!=e&&1==e.length?l=e[0].getAttribute("href"):
@@ -10750,17 +10752,17 @@ a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,
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("layout"==k.action){this.executeLayoutList(k.layouts);return}if("prompt"==k.action){this.spinner.stop();var n=new FilenameDialog(this,k.defaultValue||"",null!=k.okKey?mxResources.get(k.okKey):k.ok,function(a){null!=a?g.postMessage(JSON.stringify({event:"prompt",value:a,message:k}),"*"):g.postMessage(JSON.stringify({event:"prompt-cancel",message:k}),
"*")},null!=k.titleKey?mxResources.get(k.titleKey):k.title);this.showDialog(n.container,300,80,!0,!1);n.init();return}if("draft"==k.action){var p=l(k.xml);this.spinner.stop();n=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(n.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{n.init()}catch(Q){g.postMessage(JSON.stringify({event:"draft",error:Q.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();
-var q=1==k.enableRecent,t=1==k.enableSearch,u=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=k.callback){var v=this.getCurrentUser(),F=new TemplatesDialog(this,function(a,b,c){a=a||this.emptyDiagramXml;g.postMessage(JSON.stringify({event:"template",xml:a,blank:a==this.emptyDiagramXml,name:b,tempUrl:c.url,libs:c.libs,builtIn:null!=c.info&&null!=c.info.custContentId,message:k}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=v?v.id:
-null,q?mxUtils.bind(this,function(a,b,c){this.remoteInvoke("getRecentDiagrams",[c],null,a,b)}):null,t?mxUtils.bind(this,function(a,b,c,e){this.remoteInvoke("searchDiagrams",[a,e],null,b,c)}):null,mxUtils.bind(this,function(a,b,c){this.remoteInvoke("getFileContent",[a.url],null,b,c)}),null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null,!1,!1,!0,!0);this.showDialog(F.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}n=
+var q=1==k.enableRecent,t=1==k.enableSearch,u=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=k.callback){var E=this.getCurrentUser(),v=new TemplatesDialog(this,function(a,b,c){a=a||this.emptyDiagramXml;g.postMessage(JSON.stringify({event:"template",xml:a,blank:a==this.emptyDiagramXml,name:b,tempUrl:c.url,libs:c.libs,builtIn:null!=c.info&&null!=c.info.custContentId,message:k}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=E?E.id:
+null,q?mxUtils.bind(this,function(a,b,c){this.remoteInvoke("getRecentDiagrams",[c],null,a,b)}):null,t?mxUtils.bind(this,function(a,b,c,e){this.remoteInvoke("searchDiagrams",[a,e],null,b,c)}):null,mxUtils.bind(this,function(a,b,c){this.remoteInvoke("getFileContent",[a.url],null,b,c)}),null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null,!1,!1,!0,!0);this.showDialog(v.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}n=
new NewDialog(this,!1,k.templatesOnly?!1:null!=k.callback,mxUtils.bind(this,function(b,c,e,d){b=b||this.emptyDiagramXml;null!=k.callback?g.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c,tempUrl:e,libs:d,builtIn:!0,message:k}),"*"):(a(b,f,b!=this.emptyDiagramXml,k.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,q?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],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,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null,1==k.withoutType);this.showDialog(n.container,620,460,!0,!1,mxUtils.bind(this,function(a){this.sidebar.hideTooltip();
-a&&this.actions.get("exit").funct()}));n.init();return}if("textContent"==k.action){var J=this.getDiagramTextContent();g.postMessage(JSON.stringify({event:"textContent",data:J,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 M=null!=k.messageKey?mxResources.get(k.messageKey):
-k.message;null==k.show||k.show?this.spinner.spin(document.body,M):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 K=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var I=this.editor.graph,N=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=K;g.postMessage(JSON.stringify(b),"*")}),H=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==k.format&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(K)));I!=this.editor.graph&&I.container.parentNode.removeChild(I.container);N(a)}),L=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){null!=k.xml&&0<k.xml.length&&(c=!0,this.setFileData(K),c=!1);if(null!=
+a&&this.actions.get("exit").funct()}));n.init();return}if("textContent"==k.action){var K=this.getDiagramTextContent();g.postMessage(JSON.stringify({event:"textContent",data:K,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 M=null!=k.messageKey?mxResources.get(k.messageKey):
+k.message;null==k.show||k.show?this.spinner.spin(document.body,M):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 J=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var I=this.editor.graph,N=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=J;g.postMessage(JSON.stringify(b),"*")}),H=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==k.format&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(J)));I!=this.editor.graph&&I.container.parentNode.removeChild(I.container);N(a)}),L=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){null!=k.xml&&0<k.xml.length&&(c=!0,this.setFileData(J),c=!1);if(null!=
this.pages&&this.currentPage.getId()!=L){for(var V=I.getGlobalVariable,I=this.createTemporaryGraph(I.getStylesheet()),U,P=0;P<this.pages.length;P++)if(this.pages[P].getId()==L){U=this.updatePageRoot(this.pages[P]);break}null==U&&(U=this.currentPage);I.getGlobalVariable=function(a){return"page"==a?U.getName():"pagenumber"==a?1:V.apply(this,arguments)};document.body.appendChild(I.container);I.model.setRoot(U.root)}if(null!=k.layerIds){for(var W=I.model,ha=W.getChildCells(W.getRoot()),n={},P=0;P<k.layerIds.length;P++)n[k.layerIds[P]]=
!0;for(P=0;P<ha.length;P++)W.setVisible(ha[P],n[ha[P].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(a){H(a.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){H(null)}),null,null,k.scale,k.transparent,k.shadow,null,I,k.border,null,k.grid,k.keepTheme)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+(null!=L?"&pageId="+L:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):
-"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(K))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?N("data:image/png;base64,"+a.getText()):H(null)}),mxUtils.bind(this,function(){H(null)}))}}else{null!=k.xml&&0<k.xml.length&&(c=!0,this.setFileData(k.xml),c=!1);M=this.createLoadMessage("export");M.message=k;if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var ea=this.getXmlFileData();M.xml=
-mxUtils.getXml(ea);M.data=this.getFileData(null,null,!0,null,null,null,ea);M.format=k.format}else if("html"==k.format)K=this.editor.getGraphXml(),M.data=this.getHtml(K,this.editor.graph),M.xml=mxUtils.getXml(K),M.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;var X=null!=k.background?k.background:this.editor.graph.background;X==mxConstants.NONE&&(X=null);M.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);M.format="svg";var Z=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
+"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(J))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?N("data:image/png;base64,"+a.getText()):H(null)}),mxUtils.bind(this,function(){H(null)}))}}else{null!=k.xml&&0<k.xml.length&&(c=!0,this.setFileData(k.xml),c=!1);M=this.createLoadMessage("export");M.message=k;if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var ea=this.getXmlFileData();M.xml=
+mxUtils.getXml(ea);M.data=this.getFileData(null,null,!0,null,null,null,ea);M.format=k.format}else if("html"==k.format)J=this.editor.getGraphXml(),M.data=this.getHtml(J,this.editor.graph),M.xml=mxUtils.getXml(J),M.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;var X=null!=k.background?k.background:this.editor.graph.background;X==mxConstants.NONE&&(X=null);M.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);M.format="svg";var Z=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
this.spinner.stop();M.data=Editor.createSvgDataUri(a);g.postMessage(JSON.stringify(M),"*")});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(M.xml,this.editor.graph,null,!0,Z,null,null,k.embedImages,X,k.scale,k.border,k.shadow,k.keepTheme);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 Y=this.editor.graph.getSvg(X,k.scale,k.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||k.shadow,null,k.keepTheme);(this.editor.graph.shadowVisible||k.shadow)&&this.editor.graph.addSvgShadow(Y);this.embedFonts(Y,mxUtils.bind(this,function(a){k.embedImages||null==k.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){Z(mxUtils.getXml(a))})):Z(mxUtils.getXml(a))}))}return}g.postMessage(JSON.stringify(M),"*")}return}if("load"==k.action){m=k.toSketch;e=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.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=k.noSaveBtn);null!=k.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=k.noExitBtn);null!=k.title&&null!=this.buttonContainer&&(p=document.createElement("span"),mxUtils.write(p,k.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight=
@@ -10776,20 +10778,20 @@ var c=b;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var d="1"==u
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),c=b);"1"!=urlParams.noExitBtn&&(b=document.createElement("a"),c="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),
mxUtils.write(b,c),b.setAttribute("title",c),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),a.appendChild(b),c=b);c.style.marginRight="20px";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://drawio-app.com/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,e=c.getSelectionCells(),d=0;d<a.length;d++){var f=new window[a[d].layout](c);
-if(null!=a[d].config)for(var g in a[d].config)f[g]=a[d].config[g];this.executeLayout(function(){f.execute(c.getDefaultParent(),0==e.length?null:e)},d==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),e=[],d=[],f={};if(0<c.length){var g={},k=null,m=null,z=null,y=null,x=null,A=null,B=null,C=null,D=null,G="",E="auto",F="auto",J=null,M=null,K=40,I=40,N=100,H=0,L=this.editor.graph;L.getGraphBounds();for(var V=function(){null!=b?b(ia):(L.setSelectionCells(ia),L.scrollCellToVisible(L.getSelectionCell()))},
+if(null!=a[d].config)for(var g in a[d].config)f[g]=a[d].config[g];this.executeLayout(function(){f.execute(c.getDefaultParent(),0==e.length?null:e)},d==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),e=[],d=[],f={};if(0<c.length){var g={},k=null,m=null,z=null,y=null,x=null,A=null,B=null,C=null,D=null,G="",E="auto",F="auto",K=null,M=null,J=40,I=40,N=100,H=0,L=this.editor.graph;L.getGraphBounds();for(var V=function(){null!=b?b(ia):(L.setSelectionCells(ia),L.scrollCellToVisible(L.getSelectionCell()))},
U=L.getFreeInsertPoint(),P=U.x,W=U.y,U=W,ha=null,ea="auto",D=null,X=[],Z=null,Y=null,ga=0;ga<c.length&&"#"==c[ga].charAt(0);){a=c[ga];for(ga++;ga<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[ga].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[ga].substring(1)),ga++;if("#"!=a.charAt(1)){var ba=a.indexOf(":");if(0<ba){var O=mxUtils.trim(a.substring(1,ba)),Q=mxUtils.trim(a.substring(ba+1));"label"==O?ha=L.sanitizeHtml(Q):"labelname"==O&&0<Q.length&&"-"!=Q?x=Q:"labels"==O&&0<Q.length&&"-"!=Q?A=
-JSON.parse(Q):"style"==O?m=Q:"parentstyle"==O?B=Q:"stylename"==O&&0<Q.length&&"-"!=Q?y=Q:"styles"==O&&0<Q.length&&"-"!=Q?z=JSON.parse(Q):"vars"==O&&0<Q.length&&"-"!=Q?k=JSON.parse(Q):"identity"==O&&0<Q.length&&"-"!=Q?C=Q:"parent"==O&&0<Q.length&&"-"!=Q?D=Q:"namespace"==O&&0<Q.length&&"-"!=Q?G=Q:"width"==O?E=Q:"height"==O?F=Q:"left"==O&&0<Q.length?J=Q:"top"==O&&0<Q.length?M=Q:"ignore"==O?Y=Q.split(","):"connect"==O?X.push(JSON.parse(Q)):"link"==O?Z=Q:"padding"==O?H=parseFloat(Q):"edgespacing"==O?K=
+JSON.parse(Q):"style"==O?m=Q:"parentstyle"==O?B=Q:"stylename"==O&&0<Q.length&&"-"!=Q?y=Q:"styles"==O&&0<Q.length&&"-"!=Q?z=JSON.parse(Q):"vars"==O&&0<Q.length&&"-"!=Q?k=JSON.parse(Q):"identity"==O&&0<Q.length&&"-"!=Q?C=Q:"parent"==O&&0<Q.length&&"-"!=Q?D=Q:"namespace"==O&&0<Q.length&&"-"!=Q?G=Q:"width"==O?E=Q:"height"==O?F=Q:"left"==O&&0<Q.length?K=Q:"top"==O&&0<Q.length?M=Q:"ignore"==O?Y=Q.split(","):"connect"==O?X.push(JSON.parse(Q)):"link"==O?Z=Q:"padding"==O?H=parseFloat(Q):"edgespacing"==O?J=
parseFloat(Q):"nodespacing"==O?I=parseFloat(Q):"levelspacing"==O?N=parseFloat(Q):"layout"==O&&(ea=Q)}}}if(null==c[ga])throw Error(mxResources.get("invalidOrMissingFile"));for(var ma=this.editor.csvToArray(c[ga]),O=ba=null,Q=[],T=0;T<ma.length;T++)C==ma[T]&&(ba=T),D==ma[T]&&(O=T),Q.push(mxUtils.trim(ma[T]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==ha&&(ha="%"+Q[0]+"%");if(null!=X)for(var fa=0;fa<X.length;fa++)null==g[X[fa].to]&&(g[X[fa].to]={});C=[];for(T=ga+1;T<c.length;T++){var ja=
this.editor.csvToArray(c[T]);if(null==ja){var na=40<c[T].length?c[T].substring(0,40)+"...":c[T];throw Error(na+" ("+T+"):\n"+mxResources.get("containsValidationErrors"));}0<ja.length&&C.push(ja)}L.model.beginUpdate();try{for(T=0;T<C.length;T++){var ja=C[T],S=null,aa=null!=ba?G+ja[ba]:null;null!=aa&&(S=L.model.getCell(aa));var c=null!=S,ca=new mxCell(ha,new mxGeometry(P,U,0,0),m||"whiteSpace=wrap;html=1;");ca.vertex=!0;ca.id=aa;for(var da=0;da<ja.length;da++)L.setAttributeForCell(ca,Q[da],ja[da]);
if(null!=x&&null!=A){var qa=A[ca.getAttribute(x)];null!=qa&&L.labelChanged(ca,qa)}if(null!=y&&null!=z){var oa=z[ca.getAttribute(y)];null!=oa&&(ca.style=oa)}L.setAttributeForCell(ca,"placeholders","1");ca.style=L.replacePlaceholders(ca,ca.style,k);c&&(L.model.setGeometry(S,ca.geometry),L.model.setStyle(S,ca.style),0>mxUtils.indexOf(d,S)&&d.push(S));S=ca;if(!c)for(fa=0;fa<X.length;fa++)g[X[fa].to][S.getAttribute(X[fa].to)]=S;null!=Z&&"link"!=Z&&(L.setLinkForCell(S,S.getAttribute(Z)),L.setAttributeForCell(S,
-Z,null));L.fireEvent(new mxEventObject("cellsInserted","cells",[S]));var ka=this.editor.graph.getPreferredSizeForCell(S);S.vertex&&(null!=J&&null!=S.getAttribute(J)&&(S.geometry.x=P+parseFloat(S.getAttribute(J))),null!=M&&null!=S.getAttribute(M)&&(S.geometry.y=W+parseFloat(S.getAttribute(M))),"@"==E.charAt(0)&&null!=S.getAttribute(E.substring(1))?S.geometry.width=parseFloat(S.getAttribute(E.substring(1))):S.geometry.width="auto"==E?ka.width+H:parseFloat(E),"@"==F.charAt(0)&&null!=S.getAttribute(F.substring(1))?
+Z,null));L.fireEvent(new mxEventObject("cellsInserted","cells",[S]));var ka=this.editor.graph.getPreferredSizeForCell(S);S.vertex&&(null!=K&&null!=S.getAttribute(K)&&(S.geometry.x=P+parseFloat(S.getAttribute(K))),null!=M&&null!=S.getAttribute(M)&&(S.geometry.y=W+parseFloat(S.getAttribute(M))),"@"==E.charAt(0)&&null!=S.getAttribute(E.substring(1))?S.geometry.width=parseFloat(S.getAttribute(E.substring(1))):S.geometry.width="auto"==E?ka.width+H:parseFloat(E),"@"==F.charAt(0)&&null!=S.getAttribute(F.substring(1))?
S.geometry.height=parseFloat(S.getAttribute(F.substring(1))):S.geometry.height="auto"==F?ka.height+H:parseFloat(F),U+=S.geometry.height+I);c?(null==f[aa]&&(f[aa]=[]),f[aa].push(S)):(D=null!=O?L.model.getCell(G+ja[O]):null,e.push(S),null!=D?(D.style=L.replacePlaceholders(D,B,k),L.addCell(S,D)):d.push(L.addCell(S)))}for(var pa=d.slice(),ia=d.slice(),fa=0;fa<X.length;fa++)for(var ra=X[fa],T=0;T<e.length;T++){var S=e[T],wa=mxUtils.bind(this,function(a,b,c){var e=b.getAttribute(c.from);if(null!=e&&(L.setAttributeForCell(b,
c.from,null),""!=e))for(var e=e.split(","),d=0;d<e.length;d++){var f=g[c.to][e[d]];if(null!=f){var l=c.label;null!=c.fromlabel&&(l=(b.getAttribute(c.fromlabel)||"")+(l||""));null!=c.sourcelabel&&(l=L.replacePlaceholders(b,c.sourcelabel,k)+(l||""));null!=c.tolabel&&(l=(l||"")+(f.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(l=(l||"")+L.replacePlaceholders(f,c.targetlabel,k));var m="target"==c.placeholders==!c.invert?f:a,m=null!=c.style?L.replacePlaceholders(m,c.style,k):L.createCurrentEdgeStyle(),
l=L.insertEdge(null,null,l||"",c.invert?f:a,c.invert?a:f,m);if(null!=c.labels)for(m=0;m<c.labels.length;m++){var n=c.labels[m],x=new mxCell(n.label||m,new mxGeometry(null!=n.x?n.x:0,null!=n.y?n.y:0,0,0),"resizable=0;html=1;");x.vertex=!0;x.connectable=!1;x.geometry.relative=!0;null!=n.placeholders&&(x.value=L.replacePlaceholders("target"==n.placeholders==!c.invert?f:a,x.value,k));if(null!=n.dx||null!=n.dy)x.geometry.offset=new mxPoint(null!=n.dx?n.dx:0,null!=n.dy?n.dy:0);l.insert(x)}ia.push(l);mxUtils.remove(c.invert?
-a:f,pa)}}});wa(S,S,ra);if(null!=f[S.id])for(da=0;da<f[S.id].length;da++)wa(S,f[S.id][da],ra)}if(null!=Y)for(T=0;T<e.length;T++)for(S=e[T],da=0;da<Y.length;da++)L.setAttributeForCell(S,mxUtils.trim(Y[da]),null);if(0<d.length){var R=new mxParallelEdgeLayout(L);R.spacing=K;R.checkOverlap=!0;var ta=function(){0<R.spacing&&R.execute(L.getDefaultParent());for(var a=0;a<d.length;a++){var b=L.getCellGeometry(d[a]);b.x=Math.round(L.snap(b.x));b.y=Math.round(L.snap(b.y));"auto"==E&&(b.width=Math.round(L.snap(b.width)));
+a:f,pa)}}});wa(S,S,ra);if(null!=f[S.id])for(da=0;da<f[S.id].length;da++)wa(S,f[S.id][da],ra)}if(null!=Y)for(T=0;T<e.length;T++)for(S=e[T],da=0;da<Y.length;da++)L.setAttributeForCell(S,mxUtils.trim(Y[da]),null);if(0<d.length){var R=new mxParallelEdgeLayout(L);R.spacing=J;R.checkOverlap=!0;var ta=function(){0<R.spacing&&R.execute(L.getDefaultParent());for(var a=0;a<d.length;a++){var b=L.getCellGeometry(d[a]);b.x=Math.round(L.snap(b.x));b.y=Math.round(L.snap(b.y));"auto"==E&&(b.width=Math.round(L.snap(b.width)));
"auto"==F&&(b.height=Math.round(L.snap(b.height)))}};if("["==ea.charAt(0)){var la=V;L.view.validate();this.executeLayoutList(JSON.parse(ea),function(){ta();la()});V=null}else if("circle"==ea){var ua=new mxCircleLayout(L);ua.disableEdgeStyle=!1;ua.resetEdges=!1;var va=ua.isVertexIgnored;ua.isVertexIgnored=function(a){return va.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){ua.execute(L.getDefaultParent());ta()},!0,V);V=null}else if("horizontaltree"==ea||"verticaltree"==
ea||"auto"==ea&&ia.length==2*d.length-1&&1==pa.length){L.view.validate();var ya=new mxCompactTreeLayout(L,"horizontaltree"==ea);ya.levelDistance=I;ya.edgeRouting=!1;ya.resetEdges=!1;this.executeLayout(function(){ya.execute(L.getDefaultParent(),0<pa.length?pa[0]:null)},!0,V);V=null}else if("horizontalflow"==ea||"verticalflow"==ea||"auto"==ea&&1==pa.length){L.view.validate();var xa=new mxHierarchicalLayout(L,"horizontalflow"==ea?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);xa.intraCellSpacing=
-I;xa.parallelEdgeSpacing=K;xa.interRankCellSpacing=N;xa.disableEdgeStyle=!1;this.executeLayout(function(){xa.execute(L.getDefaultParent(),ia);L.moveCells(ia,P,W)},!0,V);V=null}else if("organic"==ea||"auto"==ea&&ia.length>d.length){L.view.validate();var sa=new mxFastOrganicLayout(L);sa.forceConstant=3*I;sa.disableEdgeStyle=!1;sa.resetEdges=!1;var za=sa.isVertexIgnored;sa.isVertexIgnored=function(a){return za.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){sa.execute(L.getDefaultParent());
+I;xa.parallelEdgeSpacing=J;xa.interRankCellSpacing=N;xa.disableEdgeStyle=!1;this.executeLayout(function(){xa.execute(L.getDefaultParent(),ia);L.moveCells(ia,P,W)},!0,V);V=null}else if("organic"==ea||"auto"==ea&&ia.length>d.length){L.view.validate();var sa=new mxFastOrganicLayout(L);sa.forceConstant=3*I;sa.disableEdgeStyle=!1;sa.resetEdges=!1;var za=sa.isVertexIgnored;sa.isVertexIgnored=function(a){return za.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){sa.execute(L.getDefaultParent());
ta()},!0,V);V=null}}this.hideDialog()}finally{L.model.endUpdate()}null!=V&&V()}}catch(Aa){this.handleError(Aa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>mxUtils.indexOf(a,e)&&null!=urlParams[e]&&(b+=c+e+"="+urlParams[e],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(" "),e;for(e in urlParams)0>mxUtils.indexOf(c,e)&&(a=0==b?a+"?":a+"&",null!=urlParams[e]&&(a+=e+"="+urlParams[e],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,c,d,f){a=new LinkDialog(this,a,b,c,!0,d,f);this.showDialog(a.container,560,130,!0,!0);a.init()};EditorUi.prototype.getServiceCount=function(a){var b=1;null==this.drive&&
"function"!==typeof window.DriveClient||b++;null==this.dropbox&&"function"!==typeof window.DropboxClient||b++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||b++;null!=this.gitHub&&b++;null!=this.gitLab&&b++;null!=this.notion&&b++;a&&isLocalStorage&&"1"==urlParams.browser&&b++;return b};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);
@@ -10812,12 +10814,12 @@ null,mxUtils.bind(this,function(c){a--;0==a&&this.spinner.stop();try{this.loadLi
"*");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,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)}),l=mxUtils.bind(this,function(){window.clearTimeout(g);e&&f.apply(this,arguments)});c=c||{};c.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:k,error:l});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,
b){var c=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 d=a.funtionName,e=this.remoteInvokableFns[d];if(null!=e&&"function"===typeof this[d]){if(e.allowedDomains){for(var f=!1,g=0;g<e.allowedDomains.length;g++)if(b=="https://"+e.allowedDomains[g]){f=!0;break}if(!f){c(null,"Invalid Call: "+d+" is not allowed.");return}}var k=a.functionArgs;Array.isArray(k)||
-(k=[]);if(e.isAsync)k.push(function(){c(Array.prototype.slice.apply(arguments))}),k.push(function(a){c(null,a||"Unkown Error")}),this[d].apply(this,k);else{var m=this[d].apply(this,k);c([m])}}else c(null,"Invalid Call: "+d+" is not found.")}catch(z){c(null,"Invalid Call: An error occured, "+z.message)}};EditorUi.prototype.openDatabase=function(a,b){if(null==this.database){var c=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=c)try{var d=c.open("database",2);d.onupgradeneeded=
+(k=[]);if(e.isAsync)k.push(function(){c(Array.prototype.slice.apply(arguments))}),k.push(function(a){c(null,a||"Unkown Error")}),this[d].apply(this,k);else{var m=this[d].apply(this,k);c([m])}}else c(null,"Invalid Call: "+d+" is not found.")}catch(z){c(null,"Invalid Call: An error occurred, "+z.message)}};EditorUi.prototype.openDatabase=function(a,b){if(null==this.database){var c=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=c)try{var d=c.open("database",2);d.onupgradeneeded=
function(a){try{var c=d.result;1>a.oldVersion&&c.createObjectStore("objects",{keyPath:"key"});2>a.oldVersion&&(c.createObjectStore("files",{keyPath:"title"}),c.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(u){null!=b&&b(u)}};d.onsuccess=mxUtils.bind(this,function(b){var c=d.result;this.database=c;EditorUi.migrateStorageFiles&&(StorageFile.migrate(c),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||
(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(a){if(!a||"1"==urlParams.forceMigration){var b=document.createElement("iframe");b.style.display="none";b.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(b);var c=!0,d=!1,e,f=0,g=mxUtils.bind(this,function(){d=!0;this.setDatabaseItem(".drawioMigrated3",!0);b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",
-funtionName:"setMigratedFlag"}),"*")}),k=mxUtils.bind(this,function(){f++;l()}),l=mxUtils.bind(this,function(){try{if(f>=e.length)g();else{var a=e[f];StorageFile.getFileContent(this,a,mxUtils.bind(this,function(c){null==c||".scratchpad"==a&&c==this.emptyLibraryXml?b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[a]}),"*"):k()}),k)}}catch(E){console.log(E)}}),m=mxUtils.bind(this,function(a){try{this.setDatabaseItem(null,[{title:a.title,
+funtionName:"setMigratedFlag"}),"*")}),k=mxUtils.bind(this,function(){f++;m()}),m=mxUtils.bind(this,function(){try{if(f>=e.length)g();else{var a=e[f];StorageFile.getFileContent(this,a,mxUtils.bind(this,function(c){null==c||".scratchpad"==a&&c==this.emptyLibraryXml?b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[a]}),"*"):k()}),k)}}catch(E){console.log(E)}}),l=mxUtils.bind(this,function(a){try{this.setDatabaseItem(null,[{title:a.title,
size:a.data.length,lastModified:Date.now(),type:a.isLib?"L":"F"},{title:a.title,data:a.data}],k,k,["filesInfo","files"])}catch(E){console.log(E)}});a=mxUtils.bind(this,function(a){try{if(a.source==b.contentWindow){var f={};try{f=JSON.parse(a.data)}catch(F){}"init"==f.event?(b.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=f.event||d||
-(c?null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?(e=f.resp[0],c=!1,l()):g():null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?m(f.resp[0]):k())}}catch(F){console.log(F)}});window.addEventListener("message",a)}})));a(c);c.onversionchange=function(){c.close()}});d.onerror=b;d.onblocked=function(){}}catch(p){null!=b&&b(p)}else null!=b&&b()}else a(this.database)};EditorUi.prototype.setDatabaseItem=function(a,b,c,d,f){this.openDatabase(mxUtils.bind(this,function(e){try{f=f||"objects";Array.isArray(f)||(f=
+(c?null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?(e=f.resp[0],c=!1,m()):g():null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?l(f.resp[0]):k())}}catch(F){console.log(F)}});window.addEventListener("message",a)}})));a(c);c.onversionchange=function(){c.close()}});d.onerror=b;d.onblocked=function(){}}catch(p){null!=b&&b(p)}else null!=b&&b()}else a(this.database)};EditorUi.prototype.setDatabaseItem=function(a,b,c,d,f){this.openDatabase(mxUtils.bind(this,function(e){try{f=f||"objects";Array.isArray(f)||(f=
[f],a=[a],b=[b]);var g=e.transaction(f,"readwrite");g.oncomplete=c;g.onerror=d;for(e=0;e<f.length;e++)g.objectStore(f[e]).put(null!=a&&null!=a[e]?{key:a[e],data:b[e]}:b[e])}catch(t){null!=d&&d(t)}}),d)};EditorUi.prototype.removeDatabaseItem=function(a,b,c,d){this.openDatabase(mxUtils.bind(this,function(e){d=d||"objects";Array.isArray(d)||(d=[d],a=[a]);e=e.transaction(d,"readwrite");e.oncomplete=b;e.onerror=c;for(var f=0;f<d.length;f++)e.objectStore(d[f])["delete"](a[f])}),c)};EditorUi.prototype.getDatabaseItem=
function(a,b,c,d){this.openDatabase(mxUtils.bind(this,function(e){try{d=d||"objects";var f=e.transaction([d],"readonly").objectStore(d).get(a);f.onsuccess=function(){b(f.result)};f.onerror=c}catch(u){null!=c&&c(u)}}),c)};EditorUi.prototype.getDatabaseItems=function(a,b,c){this.openDatabase(mxUtils.bind(this,function(d){try{c=c||"objects";var e=d.transaction([c],"readonly").objectStore(c).openCursor(IDBKeyRange.lowerBound(0)),f=[];e.onsuccess=function(b){null==b.target.result?a(f):(f.push(b.target.result.value),
b.target.result["continue"]())};e.onerror=b}catch(u){null!=b&&b(u)}}),b)};EditorUi.prototype.getDatabaseItemKeys=function(a,b,c){this.openDatabase(mxUtils.bind(this,function(d){try{c=c||"objects";var e=d.transaction([c],"readonly").objectStore(c).getAllKeys();e.onsuccess=function(){a(e.result)};e.onerror=b}catch(q){null!=b&&b(q)}}),b)};EditorUi.prototype.commentsSupported=function(){var a=this.getCurrentFile();return null!=a?a.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var a=
@@ -10833,20 +10835,20 @@ var CommentsWindow=function(a,d,c,b,f,g){function m(){for(var a=x.getElementsByT
"geCommentEditTxtArea";k.style.minHeight=f.offsetHeight+"px";k.value=a.content;b.insertBefore(k,f);var l=document.createElement("div");l.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){d?(b.parentNode.removeChild(b),m()):e();v=null});n.className="geCommentEditBtn";l.appendChild(n);var x=mxUtils.button(mxResources.get("save"),function(){f.innerHTML="";a.content=k.value;mxUtils.write(f,a.content);e();c(a);v=null});mxEvent.addListener(k,"keydown",mxUtils.bind(this,
function(a){mxEvent.isConsumed(a)||((mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a))&&13==a.keyCode?(x.click(),mxEvent.consume(a)):27==a.keyCode&&(n.click(),mxEvent.consume(a)))}));x.focus();x.className="geCommentEditBtn gePrimaryBtn";l.appendChild(x);b.insertBefore(l,f);g.style.display="none";f.style.display="none";k.focus()}function k(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 l(a){var b=document.createElement("img");b.className="geCommentBusyImg";b.src=IMAGE_PATH+"/spin.gif";a.appendChild(b);a.busyImg=b}function n(a){a.style.border="1px solid red";a.removeChild(a.busyImg)}function p(a){a.style.border="";a.removeChild(a.busyImg)}function q(b,c,d,f,g){function B(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)});G.appendChild(e);d&&(e.style.display="none")}function E(){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=C;a(b);return{pdiv:d,replies:c}}function K(c,d,g,k,m){function x(){l(B);b.addReply(u,function(a){u.id=a;b.replies.push(u);p(B);g&&g()},function(b){A();n(B);a.handleError(b,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},k,m)}function A(){e(u,B,function(a){x()},!0)}var t=E().pdiv,u=a.newComment(c,a.getCurrentUser());u.pCommentId=b.id;null==b.replies&&(b.replies=[]);var B=q(u,b.replies,t,f+1);d?A():x()}if(g||!b.isResolved){A.style.display="none";var C=document.createElement("div");C.className="geCommentContainer";C.setAttribute("data-commentId",b.id);C.style.marginLeft=20*f+5+"px";b.isResolved&&!Editor.isDarkMode()&&(C.style.backgroundColor="ghostWhite");
-var y=document.createElement("div");y.className="geCommentHeader";var I=document.createElement("img");I.className="geCommentUserImg";I.src=b.user.pictureUrl||Editor.userImage;y.appendChild(I);I=document.createElement("div");I.className="geCommentHeaderTxt";y.appendChild(I);var z=document.createElement("div");z.className="geCommentUsername";mxUtils.write(z,b.user.displayName||"");I.appendChild(z);z=document.createElement("div");z.className="geCommentDate";z.setAttribute("data-commentId",b.id);k(b,
-z);I.appendChild(z);C.appendChild(y);y=document.createElement("div");y.className="geCommentTxt";mxUtils.write(y,b.content||"");C.appendChild(y);b.isLocked&&(C.style.opacity="0.5");y=document.createElement("div");y.className="geCommentActions";var G=document.createElement("ul");G.className="geCommentActionsList";y.appendChild(G);u||b.isLocked||0!=f&&!t||B(mxResources.get("reply"),function(){K("",!0)},b.isResolved);I=a.getCurrentUser();null==I||I.id!=b.user.id||u||b.isLocked||(B(mxResources.get("edit"),
-function(){function c(){e(b,C,function(){l(C);b.editComment(b.content,function(){p(C)},function(b){n(C);c();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}c()},b.isResolved),B(mxResources.get("delete"),function(){a.confirm(mxResources.get("areYouSure"),function(){l(C);b.deleteComment(function(a){if(!0===a){a=C.querySelector(".geCommentTxt");a.innerHTML="";mxUtils.write(a,mxResources.get("msgDeleted"));var d=C.querySelectorAll(".geCommentAction");for(a=
-0;a<d.length;a++)d[a].parentNode.removeChild(d[a]);p(C);C.style.opacity="0.5"}else{d=E(b).replies;for(a=0;a<d.length;a++)x.removeChild(d[a]);for(a=0;a<c.length;a++)if(c[a]==b){c.splice(a,1);break}A.style.display=0==x.getElementsByTagName("div").length?"block":"none"}},function(b){n(C);a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},b.isResolved));u||b.isLocked||0!=f||B(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=E(b).replies,f=Editor.isDarkMode()?"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);D||(e[g].style.display="none")}m()}b.isResolved?K(mxResources.get("reOpened")+": ",!0,
-c,!1,!0):K(mxResources.get("markedAsResolved"),!1,c,!0)});C.appendChild(y);null!=d?x.insertBefore(C,d.nextSibling):x.appendChild(C);for(d=0;null!=b.replies&&d<b.replies.length;d++)y=b.replies[d],y.isResolved=b.isResolved,q(y,b.replies,null,f+1,g);null!=v&&(v.comment.id==b.id?(g=b.content,b.content=v.comment.content,e(b,C,v.saveCallback,v.deleteOnCancel),b.content=g):null==v.comment.id&&v.comment.pCommentId==b.id&&(x.appendChild(v.div),e(v.comment,v.div,v.saveCallback,v.deleteOnCancel)));return C}}
+"geCommentActionLnk";mxUtils.write(f,a);e.appendChild(f);mxEvent.addListener(f,"click",function(a){c(a,b);a.preventDefault();mxEvent.consume(a)});G.appendChild(e);d&&(e.style.display="none")}function E(){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=y;a(b);return{pdiv:d,replies:c}}function J(c,d,g,k,m){function x(){l(B);b.addReply(u,function(a){u.id=a;b.replies.push(u);p(B);g&&g()},function(b){A();n(B);a.handleError(b,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},k,m)}function A(){e(u,B,function(a){x()},!0)}var t=E().pdiv,u=a.newComment(c,a.getCurrentUser());u.pCommentId=b.id;null==b.replies&&(b.replies=[]);var B=q(u,b.replies,t,f+1);d?A():x()}if(g||!b.isResolved){A.style.display="none";var y=document.createElement("div");y.className="geCommentContainer";y.setAttribute("data-commentId",b.id);y.style.marginLeft=20*f+5+"px";b.isResolved&&!Editor.isDarkMode()&&(y.style.backgroundColor="ghostWhite");
+var C=document.createElement("div");C.className="geCommentHeader";var I=document.createElement("img");I.className="geCommentUserImg";I.src=b.user.pictureUrl||Editor.userImage;C.appendChild(I);I=document.createElement("div");I.className="geCommentHeaderTxt";C.appendChild(I);var z=document.createElement("div");z.className="geCommentUsername";mxUtils.write(z,b.user.displayName||"");I.appendChild(z);z=document.createElement("div");z.className="geCommentDate";z.setAttribute("data-commentId",b.id);k(b,
+z);I.appendChild(z);y.appendChild(C);C=document.createElement("div");C.className="geCommentTxt";mxUtils.write(C,b.content||"");y.appendChild(C);b.isLocked&&(y.style.opacity="0.5");C=document.createElement("div");C.className="geCommentActions";var G=document.createElement("ul");G.className="geCommentActionsList";C.appendChild(G);u||b.isLocked||0!=f&&!t||B(mxResources.get("reply"),function(){J("",!0)},b.isResolved);I=a.getCurrentUser();null==I||I.id!=b.user.id||u||b.isLocked||(B(mxResources.get("edit"),
+function(){function c(){e(b,y,function(){l(y);b.editComment(b.content,function(){p(y)},function(b){n(y);c();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}c()},b.isResolved),B(mxResources.get("delete"),function(){a.confirm(mxResources.get("areYouSure"),function(){l(y);b.deleteComment(function(a){if(!0===a){a=y.querySelector(".geCommentTxt");a.innerHTML="";mxUtils.write(a,mxResources.get("msgDeleted"));var d=y.querySelectorAll(".geCommentAction");for(a=
+0;a<d.length;a++)d[a].parentNode.removeChild(d[a]);p(y);y.style.opacity="0.5"}else{d=E(b).replies;for(a=0;a<d.length;a++)x.removeChild(d[a]);for(a=0;a<c.length;a++)if(c[a]==b){c.splice(a,1);break}A.style.display=0==x.getElementsByTagName("div").length?"block":"none"}},function(b){n(y);a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},b.isResolved));u||b.isLocked||0!=f||B(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=E(b).replies,f=Editor.isDarkMode()?"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);D||(e[g].style.display="none")}m()}b.isResolved?J(mxResources.get("reOpened")+": ",!0,
+c,!1,!0):J(mxResources.get("markedAsResolved"),!1,c,!0)});y.appendChild(C);null!=d?x.insertBefore(y,d.nextSibling):x.appendChild(y);for(d=0;null!=b.replies&&d<b.replies.length;d++)C=b.replies[d],C.isResolved=b.isResolved,q(C,b.replies,null,f+1,g);null!=v&&(v.comment.id==b.id?(g=b.content,b.content=v.comment.content,e(b,y,v.saveCallback,v.deleteOnCancel),b.content=g):null==v.comment.id&&v.comment.pCommentId==b.id&&(x.appendChild(v.div),e(v.comment,v.div,v.saveCallback,v.deleteOnCancel)));return y}}
var u=!a.canComment(),t=a.canReplyToReplies(),v=null,z=document.createElement("div");z.className="geCommentsWin";z.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var y=EditorUi.compactUi?"26px":"30px",x=document.createElement("div");x.className="geCommentsList";x.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";x.style.bottom=parseInt(y)+7+"px";z.appendChild(x);var A=document.createElement("span");A.style.cssText="display:none;padding-top:10px;text-align:center;";
mxUtils.write(A,mxResources.get("noCommentsFound"));var B=document.createElement("div");B.className="geToolbarContainer geCommentsToolbar";B.style.height=y;B.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";B.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";y=document.createElement("a");y.className="geButton";if(!u){var C=y.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(){e(d,f,function(b){l(f);a.addComment(b,function(a){b.id=a;G.push(b);p(f)},function(b){n(f);c();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var d=a.newComment("",a.getCurrentUser()),f=q(d,G,null,0);c();b.preventDefault();mxEvent.consume(b)});B.appendChild(C)}C=y.cloneNode();C.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';C.setAttribute("title",mxResources.get("showResolved"));
var D=!1;Editor.isDarkMode()&&(C.style.filter="invert(100%)");mxEvent.addListener(C,"click",function(a){this.className=(D=!D)?"geButton geCheckedBtn":"geButton";E();a.preventDefault();mxEvent.consume(a)});B.appendChild(C);a.commentsRefreshNeeded()&&(C=y.cloneNode(),C.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',C.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(C.style.filter="invert(100%)"),mxEvent.addListener(C,"click",function(a){E();
a.preventDefault();mxEvent.consume(a)}),B.appendChild(C));a.commentsSaveNeeded()&&(y=y.cloneNode(),y.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',y.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(y.style.filter="invert(100%)"),mxEvent.addListener(y,"click",function(a){g();a.preventDefault();mxEvent.consume(a)}),B.appendChild(y));z.appendChild(B);var G=[],E=mxUtils.bind(this,function(){this.hasError=!1;if(null!=v)try{v.div=v.div.cloneNode(!0);
-var b=v.div.querySelector(".geCommentEditTxtArea"),c=v.div.querySelector(".geCommentEditBtns");v.comment.content=b.value;b.parentNode.removeChild(b);c.parentNode.removeChild(c)}catch(K){a.handleError(K)}x.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";t=a.canReplyToReplies();a.commentsSupported()?a.getComments(function(a){function b(a){if(null!=a){a.sort(function(a,b){return new Date(a.modifiedDate)-
+var b=v.div.querySelector(".geCommentEditTxtArea"),c=v.div.querySelector(".geCommentEditBtns");v.comment.content=b.value;b.parentNode.removeChild(b);c.parentNode.removeChild(c)}catch(J){a.handleError(J)}x.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";t=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)});x.innerHTML="";x.appendChild(A);A.style.display="block";G=a;for(a=0;a<G.length;a++)b(G[a].replies),q(G[a],G,null,0,D);null!=v&&null==v.comment.id&&null==v.comment.pCommentId&&(x.appendChild(v.div),e(v.comment,v.div,v.saveCallback,v.deleteOnCancel))},mxUtils.bind(this,function(a){x.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(a&&a.message?
": "+a.message:""));this.hasError=!0})):x.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});E();this.refreshComments=E;B=mxUtils.bind(this,function(){function a(b){var d=c[b.id];if(null!=d)for(k(b,d),d=0;null!=b.replies&&d<b.replies.length;d++)a(b.replies[d])}if(this.window.isVisible()){for(var b=x.querySelectorAll(".geCommentDate"),c={},d=0;d<b.length;d++){var e=b[d];c[e.getAttribute("data-commentId")]=e}for(d=0;d<G.length;d++)a(G[d])}});setInterval(B,6E4);this.refreshCommentsTime=B;this.window=
new mxWindow(mxResources.get("comments"),z,d,c,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||
@@ -11336,12 +11338,12 @@ App.prototype.addRecent=function(a){if(isLocalStorage&&null!=localStorage){var d
App.prototype.resetRecent=function(a){if(isLocalStorage&&null!=localStorage)try{localStorage.removeItem(".recent")}catch(d){}};
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()||null!=a.fileHandle){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,d=this.getCurrentFile();this.isOfflineApp()&&(a+=" app");null!=d&&(a=(null!=d.getTitle()?d.getTitle():this.defaultFilename)+" - "+a);document.title!=a&&(document.title=a,a=this.editor.graph,a.invalidateDescendantsWithPlaceholders(a.model.getRoot()),a.view.validate())}};
-App.prototype.getThumbnail=function(a,d){var c=!1;try{var b=!0,f=window.setTimeout(mxUtils.bind(this,function(){b=!1;d(null)}),this.timeout),g=mxUtils.bind(this,function(a){window.clearTimeout(f);b&&d(a)});null==this.thumbImageCache&&(this.thumbImageCache={});var m=this.editor.graph,e=null!=m.themes&&"darkTheme"==m.defaultThemeName;if(null!=this.pages&&(e||this.currentPage!=this.pages[0])){var k=m.getGlobalVariable,m=this.createTemporaryGraph(e?m.getDefaultStylesheet():m.getStylesheet()),l=this.pages[0];
-e&&(m.defaultThemeName="default");m.getGlobalVariable=function(a){return"page"==a?l.getName():"pagenumber"==a?1:k.apply(this,arguments)};m.getGlobalVariable=k;document.body.appendChild(m.container);m.model.setRoot(l.root)}if(mxClient.IS_CHROMEAPP||this.useCanvasForExport)this.editor.exportToCanvas(mxUtils.bind(this,function(a){try{m!=this.editor.graph&&null!=m.container.parentNode&&m.container.parentNode.removeChild(m.container)}catch(C){a=null}g(a)}),a,this.thumbImageCache,"#ffffff",function(){g()},
-null,null,null,null,null,null,m),c=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var n=document.createElement("canvas"),p=m.getGraphBounds(),q=a/p.width,q=Math.min(1,Math.min(3*a/(4*p.height),q)),u=Math.floor(p.x),t=Math.floor(p.y);n.setAttribute("width",Math.ceil(q*(p.width+4)));n.setAttribute("height",Math.ceil(q*(p.height+4)));var v=n.getContext("2d");v.scale(q,q);v.translate(-u,-t);var z=m.background;if(null==z||""==z||z==mxConstants.NONE)z="#ffffff";v.save();v.fillStyle=z;v.fillRect(u,
-t,Math.ceil(p.width+4),Math.ceil(p.height+4));v.restore();var y=new mxJsCanvas(n),x=new mxAsyncCanvas(this.thumbImageCache);y.images=this.thumbImageCache.images;var A=new mxImageExport;A.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())};A.drawText=function(a,b){};A.drawState(m.getView().getState(m.model.root),x);x.finish(mxUtils.bind(this,function(){try{A.drawState(m.getView().getState(m.model.root),
-y),m!=this.editor.graph&&null!=m.container.parentNode&&m.container.parentNode.removeChild(m.container)}catch(B){n=null}g(n)}));c=!0}}catch(B){c=!1,null!=m&&m!=this.editor.graph&&null!=m.container.parentNode&&m.container.parentNode.removeChild(m.container)}c||window.clearTimeout(f);return c};
-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);return a};
+App.prototype.getThumbnail=function(a,d){var c=!1;try{var b=!0,f=window.setTimeout(mxUtils.bind(this,function(){b=!1;d(null)}),this.timeout),g=mxUtils.bind(this,function(a){window.clearTimeout(f);b&&d(a)});null==this.thumbImageCache&&(this.thumbImageCache={});var m=this.editor.graph,e=m.backgroundImage,k=null!=m.themes&&"darkTheme"==m.defaultThemeName;if(null!=this.pages&&(k||this.currentPage!=this.pages[0])){var l=m.getGlobalVariable,m=this.createTemporaryGraph(k?m.getDefaultStylesheet():m.getStylesheet()),
+n=this.pages[0];null!=n.viewState&&null!=n.viewState?(e=n.viewState.backgroundImage,m.backgroundImage=e):this.currentPage==this.pages[0]&&(m.backgroundImage=e);k&&(m.defaultThemeName="default");m.getGlobalVariable=function(a){return"page"==a?n.getName():"pagenumber"==a?1:l.apply(this,arguments)};m.getGlobalVariable=l;document.body.appendChild(m.container);m.model.setRoot(n.root)}if(mxClient.IS_CHROMEAPP||this.useCanvasForExport)this.editor.exportToCanvas(mxUtils.bind(this,function(a){try{m!=this.editor.graph&&
+null!=m.container.parentNode&&m.container.parentNode.removeChild(m.container)}catch(F){a=null}g(a)}),a,this.thumbImageCache,"#ffffff",function(){g()},null,null,null,null,null,null,m,null,null,null,null,"diagram",null),c=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var p=document.createElement("canvas"),q=m.getGraphBounds(),u=m.view.translate,t=m.view.scale;null!=e&&q.add(new mxRectangle((u.x+e.x)*t,(u.y+e.y)*t,e.width*t,e.height*t));var v=a/q.width,v=Math.min(1,Math.min(3*a/(4*q.height),
+v)),z=Math.floor(q.x),y=Math.floor(q.y);p.setAttribute("width",Math.ceil(v*(q.width+4)));p.setAttribute("height",Math.ceil(v*(q.height+4)));var x=p.getContext("2d");x.scale(v,v);x.translate(-z,-y);var A=m.background;if(null==A||""==A||A==mxConstants.NONE)A="#ffffff";x.save();x.fillStyle=A;x.fillRect(z,y,Math.ceil(q.width+4),Math.ceil(q.height+4));x.restore();if(null!=e){var B=new Image;B.src=e.src;x.drawImage(B,e.x*v,e.y*v,e.width*v,e.height*v)}var C=new mxJsCanvas(p),D=new mxAsyncCanvas(this.thumbImageCache);
+C.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(m.getView().getState(m.model.root),D);D.finish(mxUtils.bind(this,function(){try{G.drawState(m.getView().getState(m.model.root),C),m!=this.editor.graph&&null!=m.container.parentNode&&m.container.parentNode.removeChild(m.container)}catch(E){p=null}g(p)}));
+c=!0}}catch(E){c=!1,null!=m&&m!=this.editor.graph&&null!=m.container.parentNode&&m.container.parentNode.removeChild(m.container)}c||window.clearTimeout(f);return c};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);return a};
(function(){var a=EditorUi.prototype.setMode;App.prototype.setMode=function(d,c){a.apply(this,arguments);null!=this.mode&&(Editor.useLocalStorage=this.mode==App.MODE_BROWSER);if(null!=this.appIcon){var b=this.getCurrentFile();d=null!=b?b.getMode():d;d==App.MODE_GOOGLE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("googleDrive")])),this.appIcon.style.cursor="pointer"):d==App.MODE_DROPBOX?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("dropbox")])),
this.appIcon.style.cursor="pointer"):d==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=d==App.MODE_DEVICE?"pointer":"default")}if(c)try{if(isLocalStorage)localStorage.setItem(".mode",d);else if("undefined"!=typeof Storage){var f=new Date;f.setYear(f.getFullYear()+1);document.cookie="MODE="+d+"; expires="+f.toUTCString()}}catch(g){}}})();
App.prototype.appIconClicked=function(a){if(mxEvent.isAltDown(a))this.showSplash(!0);else{var d=this.getCurrentFile(),c=null!=d?d.getMode():null;c==App.MODE_GOOGLE?null!=d&&null!=d.desc&&null!=d.desc.parents&&0<d.desc.parents.length&&!mxEvent.isShiftDown(a)?this.openLink("https://drive.google.com/drive/folders/"+d.desc.parents[0].id):null!=d&&null!=d.getId()?this.openLink("https://drive.google.com/open?id="+d.getId()):this.openLink("https://drive.google.com/?authuser=0"):c==App.MODE_ONEDRIVE?null!=
@@ -11742,7 +11744,7 @@ t.startEditingAtCell(t.getSelectionCell()),mxEvent.consume(b);else if(mxEvent.is
mxEvent.consume(b))}}catch(H){u.handleError(H)}mxEvent.isConsumed(b)||D.apply(this,arguments)};var G=t.connectVertex;t.connectVertex=function(b,c,d,f,g,m,p){var q=t.getIncomingTreeEdges(b);if(a(b)){var u=e(b),x=u==mxConstants.DIRECTION_EAST||u==mxConstants.DIRECTION_WEST,v=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST;return u==c||0==q.length?n(b,c):x==v?l(b):k(b,c!=mxConstants.DIRECTION_NORTH&&c!=mxConstants.DIRECTION_WEST)}return G.apply(this,arguments)};t.getSubtree=function(b){var d=
[b];!c(b)&&!a(b)||m(b)||t.traverse(b,!0,function(a,b){var c=null!=b&&t.isTreeEdge(b);c&&0>mxUtils.indexOf(d,b)&&d.push(b);(null==b||c)&&0>mxUtils.indexOf(d,a)&&d.push(a);return null==b||c});return d};var E=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){E.apply(this,arguments);(c(this.state.cell)||a(this.state.cell))&&!m(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
"Move Subtree"),this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="24px",this.moveHandle.style.height="24px",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;u.hoverIcons.reset();mxEvent.consume(a)})))};var F=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){F.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 J=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){J.apply(this,
+this.graph.isMouseDown=!0;u.hoverIcons.reset();mxEvent.consume(a)})))};var F=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){F.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 K=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){K.apply(this,
arguments);null!=this.moveHandle&&(this.moveHandle.style.display=a?"":"none")};var M=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){M.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var c=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=c.apply(this,arguments),d=this.graph;return a.concat([this.addEntry("tree container",
function(){var a=new mxCell("Tree Container",new mxGeometry(0,0,400,320),"swimlane;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Parent",new mxGeometry(140,60,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');b.vertex=!0;var c=new mxCell("Child",new mxGeometry(140,140,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!0);c.insertEdge(d,!1);a.insert(d);a.insert(b);a.insert(c);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;startSize=20;horizontal=1;containerType=tree;");
@@ -11833,14 +11835,14 @@ this.formatWindow.window.toggleMinimized()}var l=this,n=l.editor.graph;l.toolbar
"gray";l.statusContainer.style.cursor="default";var u=l.hideCurrentMenu;l.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=l.descriptorChanged;l.descriptorChanged=function(){v.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;l.tabContainer=document.createElement("div");l.tabContainer.className="geTabContainer";l.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";
var k=l.diagramContainer.parentNode,z=document.createElement("div");z.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";l.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var L=l.menus.get("viewZoom"),V="1"!=urlParams.sketch?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMywxMWg4VjNIM1YxMXogTTUsNWg0djRINVY1eiIvPjxwYXRoIGQ9Ik0xMywzdjhoOFYzSDEzeiBNMTksOWgtNFY1aDRWOXoiLz48cGF0aCBkPSJNMywyMWg4di04SDNWMjF6IE01LDE1aDR2NEg1VjE1eiIvPjxwb2x5Z29uIHBvaW50cz0iMTgsMTMgMTYsMTMgMTYsMTYgMTMsMTYgMTMsMTggMTYsMTggMTYsMjEgMTgsMjEgMTgsMTggMjEsMTggMjEsMTYgMTgsMTYiLz48L2c+PC9nPjwvc3ZnPg==",
-U="1"==urlParams.sketch?document.createElement("div"):null,P="1"==urlParams.sketch?document.createElement("div"):null,W="1"==urlParams.sketch?document.createElement("div"):null;l.addListener("darkModeChanged",mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()}));
-Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(b)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))});if(null!=l.hoverIcons){var ha=l.hoverIcons.update;l.hoverIcons.update=function(){n.freehand.isDrawing()||ha.apply(this,arguments)}}if(null!=n.freehand){var ea=n.freehand.createStyle;n.freehand.createStyle=function(a){return ea.apply(this,arguments)+
-"sketch=0;"}}if("1"==urlParams.sketch){P.className="geToolbarContainer";U.className="geToolbarContainer";W.className="geToolbarContainer";p.className="geToolbarContainer";l.picker=P;var X=!1;mxEvent.addListener(p,"mouseenter",function(){l.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){X||(l.statusContainer.style.display="none")});var Z=mxUtils.bind(this,function(a){null!=l.notificationBtn&&(null!=a?l.notificationBtn.setAttribute("title",a):l.notificationBtn.removeAttribute("title"))});
-"1"!=urlParams.embed&&l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus());if(0==l.statusContainer.children.length||1==l.statusContainer.children.length&&null==l.statusContainer.firstChild.getAttribute("class")){null!=l.statusContainer.firstChild?Z(l.statusContainer.firstChild.getAttribute("title")):Z(l.editor.getStatus());var a=l.getCurrentFile(),a=null!=a?a.savingStatusKey:DrawioFile.prototype.savingStatusKey;null!=l.notificationBtn&&l.notificationBtn.getAttribute("title")==
-mxResources.get(a)+"..."?(l.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(a))+'..."src="'+IMAGE_PATH+'/spin.gif">',l.statusContainer.style.display="inline-block",X=!0):(l.statusContainer.style.display="none",X=!1)}else l.statusContainer.style.display="inline-block",Z(null),X=!0}));R=b("diagram",null,IMAGE_PATH+"/drawlogo.svg");R.style.boxShadow="none";R.style.opacity="0.4";R.style.padding="6px";R.style.margin="0px";W.appendChild(R);l.statusContainer.style.position=
-"";l.statusContainer.style.display="none";l.statusContainer.style.margin="0px";l.statusContainer.style.padding="6px 0px";l.statusContainer.style.maxWidth=Math.min(c-240,280)+"px";l.statusContainer.style.display="inline-block";l.statusContainer.style.textOverflow="ellipsis";l.buttonContainer.style.position="";l.buttonContainer.style.paddingRight="0px";l.buttonContainer.style.display="inline-block";var Y=document.createElement("a");Y.style.padding="0px";Y.style.boxShadow="none";Y.className="geMenuItem";
-Y.style.display="inline-block";Y.style.width="40px";Y.style.height="12px";Y.style.marginBottom="-2px";Y.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";Y.style.backgroundPosition="top center";Y.style.backgroundRepeat="no-repeat";Y.setAttribute("title","Minimize");var ga=!1,ba=mxUtils.bind(this,function(){P.innerHTML="";if(!ga){var a=function(a,c,d){a=e("",a.funct,null,c,a,d);a.style.width="40px";return b(a,null,"pointer")},b=function(a,b,c){null!=b&&a.setAttribute("title",b);a.style.cursor=
-null!=c?c:"default";a.style.margin="2px 0px";P.appendChild(a);mxUtils.br(P);return a};b(l.sidebar.createVertexTemplate("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",40,20,"Text",mxResources.get("text"),!0,!0,null,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");b(l.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;fontSize=24;pointerEvents=1;"+
+U="1"==urlParams.sketch?document.createElement("div"):null,P="1"==urlParams.sketch?document.createElement("div"):null,W="1"==urlParams.sketch?document.createElement("div"):null;l.addListener("darkModeChanged",mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.refreshBackgroundImage();
+n.view.validateBackground()}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(b)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))});if(null!=l.hoverIcons){var ha=l.hoverIcons.update;l.hoverIcons.update=function(){n.freehand.isDrawing()||ha.apply(this,arguments)}}if(null!=n.freehand){var ea=n.freehand.createStyle;n.freehand.createStyle=function(a){return ea.apply(this,
+arguments)+"sketch=0;"}}if("1"==urlParams.sketch){P.className="geToolbarContainer";U.className="geToolbarContainer";W.className="geToolbarContainer";p.className="geToolbarContainer";l.picker=P;var X=!1;mxEvent.addListener(p,"mouseenter",function(){l.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){X||(l.statusContainer.style.display="none")});var Z=mxUtils.bind(this,function(a){null!=l.notificationBtn&&(null!=a?l.notificationBtn.setAttribute("title",a):
+l.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed&&l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus());if(0==l.statusContainer.children.length||1==l.statusContainer.children.length&&null==l.statusContainer.firstChild.getAttribute("class")){null!=l.statusContainer.firstChild?Z(l.statusContainer.firstChild.getAttribute("title")):Z(l.editor.getStatus());var a=l.getCurrentFile(),a=null!=a?a.savingStatusKey:DrawioFile.prototype.savingStatusKey;
+null!=l.notificationBtn&&l.notificationBtn.getAttribute("title")==mxResources.get(a)+"..."?(l.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(a))+'..."src="'+IMAGE_PATH+'/spin.gif">',l.statusContainer.style.display="inline-block",X=!0):(l.statusContainer.style.display="none",X=!1)}else l.statusContainer.style.display="inline-block",Z(null),X=!0}));R=b("diagram",null,IMAGE_PATH+"/drawlogo.svg");R.style.boxShadow="none";R.style.opacity="0.4";R.style.padding="6px";R.style.margin=
+"0px";W.appendChild(R);l.statusContainer.style.position="";l.statusContainer.style.display="none";l.statusContainer.style.margin="0px";l.statusContainer.style.padding="6px 0px";l.statusContainer.style.maxWidth=Math.min(c-240,280)+"px";l.statusContainer.style.display="inline-block";l.statusContainer.style.textOverflow="ellipsis";l.buttonContainer.style.position="";l.buttonContainer.style.paddingRight="0px";l.buttonContainer.style.display="inline-block";var Y=document.createElement("a");Y.style.padding=
+"0px";Y.style.boxShadow="none";Y.className="geMenuItem";Y.style.display="inline-block";Y.style.width="40px";Y.style.height="12px";Y.style.marginBottom="-2px";Y.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";Y.style.backgroundPosition="top center";Y.style.backgroundRepeat="no-repeat";Y.setAttribute("title","Minimize");var ga=!1,ba=mxUtils.bind(this,function(){P.innerHTML="";if(!ga){var a=function(a,c,d){a=e("",a.funct,null,c,a,d);a.style.width="40px";return b(a,null,"pointer")},
+b=function(a,b,c){null!=b&&a.setAttribute("title",b);a.style.cursor=null!=c?c:"default";a.style.margin="2px 0px";P.appendChild(a);mxUtils.br(P);return a};b(l.sidebar.createVertexTemplate("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",40,20,"Text",mxResources.get("text"),!0,!0,null,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");b(l.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;fontSize=24;pointerEvents=1;"+
("0"!=urlParams.rough?"sketch=1;jiggle=2;":""),140,160,"",mxResources.get("note"),!0,!0,null,!0),mxResources.get("note"));b(l.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",160,80,"",mxResources.get("rectangle"),!0,!0,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");b(l.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!0,null,!0),mxResources.get("ellipse"));(function(){var a=new mxCell("",new mxGeometry(0,0,n.defaultEdgeLength,
0),"edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;sourcePerimeterSpacing=8;targetPerimeterSpacing=8;fontSize=16;"+("0"!=urlParams.rough?"sketch=1;":""));a.geometry.setTerminalPoint(new mxPoint(0,0),!0);a.geometry.setTerminalPoint(new mxPoint(a.geometry.width,0),!1);a.geometry.points=[];a.geometry.relative=!0;a.edge=!0;b(l.sidebar.createEdgeTemplateFromCells([a],a.geometry.width,a.geometry.height,mxResources.get("line"),!1,null,!0),mxResources.get("line"));
a=a.clone();a.style+="shape=flexArrow;rounded=1;startSize=8;endSize=8;";a.geometry.width=n.defaultEdgeLength+20;a.geometry.setTerminalPoint(new mxPoint(0,20),!0);a.geometry.setTerminalPoint(new mxPoint(a.geometry.width,20),!1);a=b(l.sidebar.createEdgeTemplateFromCells([a],a.geometry.width,40,mxResources.get("arrow"),!1,null,!0),mxResources.get("arrow"));a.style.borderBottom="1px solid lightgray";a.style.paddingBottom="14px";a.style.marginBottom="14px"})();a(l.actions.get("insertFreehand"),mxResources.get("freehand"),
@@ -11867,13 +11869,13 @@ R.style.visibility="hidden",R.style.textAlign="center",R.style.cursor="pointer",
function(){R.innerHTML=Math.round(100*l.editor.graph.view.scale)+"%"});l.editor.graph.view.addListener(mxEvent.EVENT_SCALE,na);l.editor.addListener("resetGraphView",na);l.editor.addListener("pageSelected",na);var ua=l.setGraphEnabled;l.setGraphEnabled=function(){ua.apply(this,arguments);null!=this.tabContainer&&(R.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==U?this.tabContainerHeight+"px":"0px")}}z.appendChild(p);
z.appendChild(l.diagramContainer);k.appendChild(z);l.updateTabContainer();null==U&&z.appendChild(l.tabContainer);var va=null;g();mxEvent.addListener(window,"resize",function(){g();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();
null!=l.menus.findReplaceWindow&&l.menus.findReplaceWindow.window.fit()})}}};(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var d=EditorUi.initTheme;EditorUi.initTheme=function(){d.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();(function(){var a=mxGuide.prototype.move;mxGuide.prototype.move=function(b,c,d,m){var e=c.y,f=c.x,g=!1,n=!1;if(null!=this.states&&null!=b&&null!=c){var p=this,q=new mxCellState,u=this.graph.getView().scale,t=Math.max(2,this.getGuideTolerance()/2);q.x=b.x+f;q.y=b.y+e;q.width=b.width;q.height=b.height;for(var v=[],z=[],y=0;y<this.states.length;y++){var x=this.states[y];x instanceof mxCellState&&(m||!this.graph.isCellSelected(x.cell))&&((q.x>=x.x&&q.x<=x.x+x.width||x.x>=q.x&&x.x<=q.x+q.width)&&(q.y>
-x.y+x.height+4||q.y+q.height+4<x.y)?v.push(x):(q.y>=x.y&&q.y<=x.y+x.height||x.y>=q.y&&x.y<=q.y+q.height)&&(q.x>x.x+x.width+4||q.x+q.width+4<x.x)&&z.push(x))}var A=0,B=0,C=x=0,D=0,G=0,E=0,F=0,J=5*u;if(1<v.length){v.push(q);v.sort(function(a,b){return a.y-b.y});var M=!1,y=q==v[0],u=q==v[v.length-1];if(!y&&!u)for(y=1;y<v.length-1;y++)if(q==v[y]){u=v[y-1];y=v[y+1];x=B=C=(y.y-u.y-u.height-q.height)/2;break}for(y=0;y<v.length-1;y++){var u=v[y],K=v[y+1],I=q==u||q==K,K=K.y-u.y-u.height,M=M|q==u;if(0==B&&
-0==A)B=K,A=1;else if(Math.abs(B-K)<=(I||1==y&&M?t:0))A+=1;else if(1<A&&M){v=v.slice(0,y+1);break}else if(3<=v.length-y&&!M)A=0,x=B=0!=C?C:0,v.splice(0,0==y?1:y),y=-1;else break;0!=x||I||(B=x=K)}3==v.length&&v[1]==q&&(x=0)}if(1<z.length){z.push(q);z.sort(function(a,b){return a.x-b.x});M=!1;y=q==z[0];u=q==z[z.length-1];if(!y&&!u)for(y=1;y<z.length-1;y++)if(q==z[y]){u=z[y-1];y=z[y+1];E=G=F=(y.x-u.x-u.width-q.width)/2;break}for(y=0;y<z.length-1;y++){u=z[y];K=z[y+1];I=q==u||q==K;K=K.x-u.x-u.width;M|=q==
-u;if(0==G&&0==D)G=K,D=1;else if(Math.abs(G-K)<=(I||1==y&&M?t:0))D+=1;else if(1<D&&M){z=z.slice(0,y+1);break}else if(3<=z.length-y&&!M)D=0,E=G=0!=F?F:0,z.splice(0,0==y?1:y),y=-1;else break;0!=E||I||(G=E=K)}3==z.length&&z[1]==q&&(E=0)}t=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,
+x.y+x.height+4||q.y+q.height+4<x.y)?v.push(x):(q.y>=x.y&&q.y<=x.y+x.height||x.y>=q.y&&x.y<=q.y+q.height)&&(q.x>x.x+x.width+4||q.x+q.width+4<x.x)&&z.push(x))}var A=0,B=0,C=x=0,D=0,G=0,E=0,F=0,K=5*u;if(1<v.length){v.push(q);v.sort(function(a,b){return a.y-b.y});var M=!1,y=q==v[0],u=q==v[v.length-1];if(!y&&!u)for(y=1;y<v.length-1;y++)if(q==v[y]){u=v[y-1];y=v[y+1];x=B=C=(y.y-u.y-u.height-q.height)/2;break}for(y=0;y<v.length-1;y++){var u=v[y],J=v[y+1],I=q==u||q==J,J=J.y-u.y-u.height,M=M|q==u;if(0==B&&
+0==A)B=J,A=1;else if(Math.abs(B-J)<=(I||1==y&&M?t:0))A+=1;else if(1<A&&M){v=v.slice(0,y+1);break}else if(3<=v.length-y&&!M)A=0,x=B=0!=C?C:0,v.splice(0,0==y?1:y),y=-1;else break;0!=x||I||(B=x=J)}3==v.length&&v[1]==q&&(x=0)}if(1<z.length){z.push(q);z.sort(function(a,b){return a.x-b.x});M=!1;y=q==z[0];u=q==z[z.length-1];if(!y&&!u)for(y=1;y<z.length-1;y++)if(q==z[y]){u=z[y-1];y=z[y+1];E=G=F=(y.x-u.x-u.width-q.width)/2;break}for(y=0;y<z.length-1;y++){u=z[y];J=z[y+1];I=q==u||q==J;J=J.x-u.x-u.width;M|=q==
+u;if(0==G&&0==D)G=J,D=1;else if(Math.abs(G-J)<=(I||1==y&&M?t:0))D+=1;else if(1<D&&M){z=z.slice(0,y+1);break}else if(3<=z.length-y&&!M)D=0,E=G=0!=F?F:0,z.splice(0,0==y?1:y),y=-1;else break;0!=E||I||(G=E=J)}3==z.length&&z[1]==q&&(E=0)}t=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(p.graph.getView().getOverlayPane());return a};G=function(a,b){if(a&&null!=p.guidesArrHor)for(var c=0;c<p.guidesArrHor.length;c++)p.guidesArrHor[c].node.style.visibility="hidden";if(b&&null!=p.guidesArrVer)for(c=0;c<p.guidesArrVer.length;c++)p.guidesArrVer[c].node.style.visibility="hidden"};if(1<D&&D==z.length-1){D=[];F=p.guidesArrHor;g=[];f=0;y=z[0]==q?1:0;M=z[y].y+z[y].height;if(0<E)for(y=0;y<z.length-1;y++)u=
-z[y],K=z[y+1],q==u?(f=K.x-u.width-E,g.push(new mxPoint(f+u.width+J,M)),g.push(new mxPoint(K.x-J,M))):q==K?(g.push(new mxPoint(u.x+u.width+J,M)),f=u.x+u.width+E,g.push(new mxPoint(f-J,M))):(g.push(new mxPoint(u.x+u.width+J,M)),g.push(new mxPoint(K.x-J,M)));else u=z[0],y=z[2],f=u.x+u.width+(y.x-u.x-u.width-q.width)/2,g.push(new mxPoint(u.x+u.width+J,M)),g.push(new mxPoint(f-J,M)),g.push(new mxPoint(f+q.width+J,M)),g.push(new mxPoint(y.x-J,M));for(y=0;y<g.length;y+=2)z=g[y],E=g[y+1],z=t(z,E,null!=F?
-F[y/2]:null),z.node.style.visibility="visible",z.redraw(),D.push(z);for(y=g.length/2;null!=F&&y<F.length;y++)F[y].destroy();p.guidesArrHor=D;f-=b.x;g=!0}else G(!0);if(1<A&&A==v.length-1){D=[];F=p.guidesArrVer;n=[];e=0;y=v[0]==q?1:0;A=v[y].x+v[y].width;if(0<x)for(y=0;y<v.length-1;y++)u=v[y],K=v[y+1],q==u?(e=K.y-u.height-x,n.push(new mxPoint(A,e+u.height+J)),n.push(new mxPoint(A,K.y-J))):q==K?(n.push(new mxPoint(A,u.y+u.height+J)),e=u.y+u.height+x,n.push(new mxPoint(A,e-J))):(n.push(new mxPoint(A,u.y+
-u.height+J)),n.push(new mxPoint(A,K.y-J)));else u=v[0],y=v[2],e=u.y+u.height+(y.y-u.y-u.height-q.height)/2,n.push(new mxPoint(A,u.y+u.height+J)),n.push(new mxPoint(A,e-J)),n.push(new mxPoint(A,e+q.height+J)),n.push(new mxPoint(A,y.y-J));for(y=0;y<n.length;y+=2)z=n[y],E=n[y+1],z=t(z,E,null!=F?F[y/2]:null,!0),z.node.style.visibility="visible",z.redraw(),D.push(z);for(y=n.length/2;null!=F&&y<F.length;y++)F[y].destroy();p.guidesArrVer=D;e-=b.y;n=!0}else G(!1,!0)}if(g||n)return q=new mxPoint(f,e),v=a.call(this,
+z[y],J=z[y+1],q==u?(f=J.x-u.width-E,g.push(new mxPoint(f+u.width+K,M)),g.push(new mxPoint(J.x-K,M))):q==J?(g.push(new mxPoint(u.x+u.width+K,M)),f=u.x+u.width+E,g.push(new mxPoint(f-K,M))):(g.push(new mxPoint(u.x+u.width+K,M)),g.push(new mxPoint(J.x-K,M)));else u=z[0],y=z[2],f=u.x+u.width+(y.x-u.x-u.width-q.width)/2,g.push(new mxPoint(u.x+u.width+K,M)),g.push(new mxPoint(f-K,M)),g.push(new mxPoint(f+q.width+K,M)),g.push(new mxPoint(y.x-K,M));for(y=0;y<g.length;y+=2)z=g[y],E=g[y+1],z=t(z,E,null!=F?
+F[y/2]:null),z.node.style.visibility="visible",z.redraw(),D.push(z);for(y=g.length/2;null!=F&&y<F.length;y++)F[y].destroy();p.guidesArrHor=D;f-=b.x;g=!0}else G(!0);if(1<A&&A==v.length-1){D=[];F=p.guidesArrVer;n=[];e=0;y=v[0]==q?1:0;A=v[y].x+v[y].width;if(0<x)for(y=0;y<v.length-1;y++)u=v[y],J=v[y+1],q==u?(e=J.y-u.height-x,n.push(new mxPoint(A,e+u.height+K)),n.push(new mxPoint(A,J.y-K))):q==J?(n.push(new mxPoint(A,u.y+u.height+K)),e=u.y+u.height+x,n.push(new mxPoint(A,e-K))):(n.push(new mxPoint(A,u.y+
+u.height+K)),n.push(new mxPoint(A,J.y-K)));else u=v[0],y=v[2],e=u.y+u.height+(y.y-u.y-u.height-q.height)/2,n.push(new mxPoint(A,u.y+u.height+K)),n.push(new mxPoint(A,e-K)),n.push(new mxPoint(A,e+q.height+K)),n.push(new mxPoint(A,y.y-K));for(y=0;y<n.length;y+=2)z=n[y],E=n[y+1],z=t(z,E,null!=F?F[y/2]:null,!0),z.node.style.visibility="visible",z.redraw(),D.push(z);for(y=n.length/2;null!=F&&y<F.length;y++)F[y].destroy();p.guidesArrVer=D;e-=b.y;n=!0}else G(!1,!0)}if(g||n)return q=new mxPoint(f,e),v=a.call(this,
b,q,d,m),g&&!n?q.y=v.y:n&&!g&&(q.x=v.x),v.y!=q.y&&null!=this.guideY&&null!=this.guideY.node&&(this.guideY.node.style.visibility="hidden"),v.x!=q.x&&null!=this.guideX&&null!=this.guideX.node&&(this.guideX.node.style.visibility="hidden"),q;G(!0,!0);return a.apply(this,arguments)};var d=mxGuide.prototype.setVisible;mxGuide.prototype.setVisible=function(a){d.call(this,a);var b=this.guidesArrVer,c=this.guidesArrHor;if(null!=b)for(var m=0;m<b.length;m++)b[m].node.style.visibility=a?"visible":"hidden";if(null!=
c)for(m=0;m<c.length;m++)c[m].node.style.visibility=a?"visible":"hidden"};var c=mxGuide.prototype.destroy;mxGuide.prototype.destroy=function(){c.call(this);var a=this.guidesArrVer,d=this.guidesArrHor;if(null!=a){for(var g=0;g<a.length;g++)a[g].destroy();this.guidesArrVer=null}if(null!=d){for(g=0;g<d.length;g++)d[g].destroy();this.guidesArrHor=null}}})();function mxRuler(a,d,c,b){function f(){var b=a.diagramContainer;p.style.top=b.offsetTop-k+"px";p.style.left=b.offsetLeft-k+"px";p.style.width=(c?0:b.offsetWidth)+k+"px";p.style.height=(c?b.offsetHeight:0)+k+"px"}function g(a,b,c){if(null!=m)return a;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 m=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,
e=window.cancelAnimationFrame||window.mozCancelAnimationFrame,k=this.RULER_THICKNESS,l=this;this.unit=d;var n=Editor.isDarkMode()?{bkgClr:"#202020",outBkgClr:"#2a2a2a",cornerClr:"#2a2a2a",strokeClr:"#505759",fontClr:"#BBBBBB",guideClr:"#0088cf"}:{bkgClr:"#ffffff",outBkgClr:"#e8e9ed",cornerClr:"#fbfbfb",strokeClr:"#dadce0",fontClr:"#BBBBBB",guideClr:"#0000BB"},p=document.createElement("div");p.style.position="absolute";this.updateStyle=mxUtils.bind(this,function(){n=Editor.isDarkMode()?{bkgClr:"#202020",
@@ -11884,8 +11886,8 @@ p=10;m=[3,5,5,5,5,10,5,5,5,5];break;case mxConstants.MILLIMETERS:p=10;g=mxConsta
u.fillRect(0,b,k,q.height)}else y=d-k,0<y&&u.fillRect(k,0,y,k),b<q.width&&u.fillRect(b,0,q.width,k);u.fillStyle=n.fontClr;for(e=e?d:d%(x*a);e<=b;e+=x*a)if(y=Math.round((e-d)/a/x),!(e<k||y==g)){g=y;var z=null;0==y%p&&(z=l.formatText(f+y*x)+"");c?v(k-m[Math.abs(y)%p],e,k,e,z):v(e,k-m[Math.abs(y)%p],e,k,z)}u.lineWidth=1;v(c?0:k,c?k:0,k,k);u.fillStyle=n.cornerClr;u.fillRect(0,0,k,k)},y=-1,x=function(){null!=m?(null!=e&&e(y),y=m(z)):z()};this.drawRuler=x;this.sizeListener=d=g(function(){var a=t.container;
c?(a=a.offsetHeight+k,q.height!=a&&(q.height=a,p.style.height=a+"px",x())):(a=a.offsetWidth+k,q.width!=a&&(q.width=a,p.style.width=a+"px",x()))},10);this.pageListener=function(){x()};this.scrollListener=b=g(function(){var a=c?t.container.scrollTop:t.container.scrollLeft;l.lastScroll!=a&&(l.lastScroll=a,x())},10);this.unitListener=function(a,b){l.setUnit(b.getProperty("unit"))};t.addListener(mxEvent.SIZE,d);t.container.addEventListener("scroll",b);t.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;p.style.background=n.bkgClr;z()};this.origGuideMove=mxGuide.prototype.move;mxGuide.prototype.move=function(a,b,d,e){var f;if(c&&4<a.height||!c&&4<a.width){if(null!=l.guidePart)try{u.putImageData(l.guidePart.imgData1,l.guidePart.x1,l.guidePart.y1),u.putImageData(l.guidePart.imgData2,l.guidePart.x2,l.guidePart.y2),u.putImageData(l.guidePart.imgData3,
-l.guidePart.x3,l.guidePart.y3)}catch(V){}f=l.origGuideMove.apply(this,arguments);try{var g,m,p,q,t,y,x,z,A;u.lineWidth=.5;u.strokeStyle=n.guideClr;u.setLineDash([2]);c?(m=a.y+f.y+k-this.graph.container.scrollTop,g=0,t=m+a.height/2,q=k/2,z=m+a.height,x=0,p=u.getImageData(g,m-1,k,3),v(g,m,k,m),m--,y=u.getImageData(q,t-1,k,3),v(q,t,k,t),t--,A=u.getImageData(x,z-1,k,3),v(x,z,k,z),z--):(m=0,g=a.x+f.x+k-this.graph.container.scrollLeft,t=k/2,q=g+a.width/2,z=0,x=g+a.width,p=u.getImageData(g-1,m,3,k),v(g,
-m,g,k),g--,y=u.getImageData(q-1,t,3,k),v(q,t,q,k),q--,A=u.getImageData(x-1,z,3,k),v(x,z,x,k),x--);if(null==l.guidePart||l.guidePart.x1!=g||l.guidePart.y1!=m)l.guidePart={imgData1:p,x1:g,y1:m,imgData2:y,x2:q,y2:t,imgData3:A,x3:x,y3:z}}catch(V){}}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{u.putImageData(l.guidePart.imgData1,l.guidePart.x1,
+l.guidePart.x3,l.guidePart.y3)}catch(V){}f=l.origGuideMove.apply(this,arguments);try{var g,m,p,q,t,x,y,z,A;u.lineWidth=.5;u.strokeStyle=n.guideClr;u.setLineDash([2]);c?(m=a.y+f.y+k-this.graph.container.scrollTop,g=0,t=m+a.height/2,q=k/2,z=m+a.height,y=0,p=u.getImageData(g,m-1,k,3),v(g,m,k,m),m--,x=u.getImageData(q,t-1,k,3),v(q,t,k,t),t--,A=u.getImageData(y,z-1,k,3),v(y,z,k,z),z--):(m=0,g=a.x+f.x+k-this.graph.container.scrollLeft,t=k/2,q=g+a.width/2,z=0,y=g+a.width,p=u.getImageData(g-1,m,3,k),v(g,
+m,g,k),g--,x=u.getImageData(q-1,t,3,k),v(q,t,q,k),q--,A=u.getImageData(y-1,z,3,k),v(y,z,y,k),y--);if(null==l.guidePart||l.guidePart.x1!=g||l.guidePart.y1!=m)l.guidePart={imgData1:p,x1:g,y1:m,imgData2:x,x2:q,y2:t,imgData3:A,x3:y,y3:z}}catch(V){}}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{u.putImageData(l.guidePart.imgData1,l.guidePart.x1,
l.guidePart.y1),u.putImageData(l.guidePart.imgData2,l.guidePart.x2,l.guidePart.y2),u.putImageData(l.guidePart.imgData3,l.guidePart.x3,l.guidePart.y3),l.guidePart=null}catch(B){}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",
diff --git a/src/main/webapp/js/diagramly/App.js b/src/main/webapp/js/diagramly/App.js
index 43812581..cbc04d02 100644
--- a/src/main/webapp/js/diagramly/App.js
+++ b/src/main/webapp/js/diagramly/App.js
@@ -2357,7 +2357,8 @@ App.prototype.getThumbnail = function(width, fn)
}
var graph = this.editor.graph;
-
+ var bgImg = graph.backgroundImage;
+
// Exports PNG for first page while other page is visible by creating a graph
// LATER: Add caching for the graph or SVG while not on first page
// To avoid refresh during save dark theme uses separate graph instance
@@ -2368,7 +2369,17 @@ App.prototype.getThumbnail = function(width, fn)
var graphGetGlobalVariable = graph.getGlobalVariable;
graph = this.createTemporaryGraph((darkTheme) ? graph.getDefaultStylesheet() : graph.getStylesheet());
var page = this.pages[0];
-
+
+ if (page.viewState != null && page.viewState != null)
+ {
+ bgImg = page.viewState.backgroundImage;
+ graph.backgroundImage = bgImg;
+ }
+ else if (this.currentPage == this.pages[0])
+ {
+ graph.backgroundImage = bgImg;
+ }
+
// Avoids override of stylesheet in getSvg for dark mode
if (darkTheme)
{
@@ -2417,7 +2428,8 @@ App.prototype.getThumbnail = function(width, fn)
{
// Continues with null in error case
success();
- }, null, null, null, null, null, null, graph);
+ }, null, null, null, null, null, null, graph, null, null, null,
+ null, 'diagram', null);
result = true;
}
@@ -2425,8 +2437,18 @@ App.prototype.getThumbnail = function(width, fn)
{
var canvas = document.createElement('canvas');
var bounds = graph.getGraphBounds();
+ var t = graph.view.translate;
+ var s = graph.view.scale;
+
+ if (bgImg != null)
+ {
+ bounds.add(new mxRectangle(
+ (t.x + bgImg.x) * s, (t.y + bgImg.y) * s,
+ bgImg.width * s, bgImg.height * s));
+ }
+
var scale = width / bounds.width;
-
+
// Limits scale to 1 or 2 * width / height
scale = Math.min(1, Math.min((width * 3) / (bounds.height * 4), scale));
@@ -2456,6 +2478,16 @@ App.prototype.getThumbnail = function(width, fn)
ctx.fillRect(x0, y0, Math.ceil(bounds.width + 4), Math.ceil(bounds.height + 4));
ctx.restore();
+ // Paints background image
+ if (bgImg != null)
+ {
+ var img = new Image();
+ img.src = bgImg.src;
+
+ ctx.drawImage(img, bgImg.x * scale, bgImg.y * scale,
+ bgImg.width * scale, bgImg.height * scale);
+ }
+
var htmlCanvas = new mxJsCanvas(canvas);
// NOTE: htmlCanvas passed into async canvas is only used for image
@@ -2469,7 +2501,7 @@ App.prototype.getThumbnail = function(width, fn)
// Render graph
var imgExport = new mxImageExport();
-
+
imgExport.drawShape = function(state, canvas)
{
if (state.shape instanceof mxShape && state.shape.checkBounds())
diff --git a/src/main/webapp/js/diagramly/DrawioFile.js b/src/main/webapp/js/diagramly/DrawioFile.js
index 8cc2e8fc..41dc705f 100644
--- a/src/main/webapp/js/diagramly/DrawioFile.js
+++ b/src/main/webapp/js/diagramly/DrawioFile.js
@@ -793,6 +793,7 @@ DrawioFile.prototype.patch = function(patches, resolver, undoable)
}
this.ui.updateTabContainer();
+ this.ui.editor.fireEvent(new mxEventObject('pagesPatched', 'patches', patches));
}
};
diff --git a/src/main/webapp/js/diagramly/Editor.js b/src/main/webapp/js/diagramly/Editor.js
index 2a3ffc6f..b78bee9f 100644
--- a/src/main/webapp/js/diagramly/Editor.js
+++ b/src/main/webapp/js/diagramly/Editor.js
@@ -6112,6 +6112,18 @@
}
}
};
+
+
+ /**
+ * Updates the SVG for the background image if it references another page.
+ */
+ Graph.prototype.refreshBackgroundImage = function()
+ {
+ if (this.backgroundImage != null && this.backgroundImage.originalSrc != null)
+ {
+ this.setBackgroundImage(this.backgroundImage);
+ }
+ };
/**
* Sets default style (used in editor.get/setGraphXml below)
diff --git a/src/main/webapp/js/diagramly/EditorUi.js b/src/main/webapp/js/diagramly/EditorUi.js
index 4a3b1851..b5051f6f 100644
--- a/src/main/webapp/js/diagramly/EditorUi.js
+++ b/src/main/webapp/js/diagramly/EditorUi.js
@@ -8961,6 +8961,46 @@
graphSetBackgroundImage.apply(this, arguments);
};
+ // Updates background to update placeholders for page title
+ this.editor.addListener('pageRenamed', mxUtils.bind(this, function()
+ {
+ graph.refreshBackgroundImage();
+ }));
+
+ // Updates background to update placeholders for page number
+ this.editor.addListener('pageMoved', mxUtils.bind(this, function()
+ {
+ graph.refreshBackgroundImage();
+ }));
+
+ // Updates background image after remote changes to the referenced page
+ this.editor.addListener('pagesPatched', mxUtils.bind(this, function(sender, evt)
+ {
+ var ref = (graph.backgroundImage != null) ? graph.backgroundImage.originalSrc : null;
+
+ if (ref != null)
+ {
+ var comma = ref.indexOf(',');
+
+ if (comma > 0)
+ {
+ var id = ref.substring(comma + 1);
+ var patches = evt.getProperty('patches');
+
+ for (var i = 0; i < patches.length; i++)
+ {
+ if (patches[i][EditorUi.DIFF_UPDATE][id] != null)
+ {
+ graph.refreshBackgroundImage();
+ graph.view.validateBackgroundImage();
+
+ break;
+ }
+ }
+ }
+ }
+ }));
+
// Restores background page references in output data
var graphGetBackgroundImageObject = graph.getBackgroundImageObject;
@@ -13627,7 +13667,7 @@
}
catch(e)
{
- sendResponse(null, 'Invalid Call: An error occured, ' + e.message);
+ sendResponse(null, 'Invalid Call: An error occurred, ' + e.message);
}
};
diff --git a/src/main/webapp/js/diagramly/Minimal.js b/src/main/webapp/js/diagramly/Minimal.js
index ae9f6820..c4e255a9 100644
--- a/src/main/webapp/js/diagramly/Minimal.js
+++ b/src/main/webapp/js/diagramly/Minimal.js
@@ -1748,18 +1748,11 @@ EditorUi.initMinimalTheme = function()
{
this.scratchpad = null;
this.toggleScratchpad();
-
- // Refreshes outline window
- var wnd = ui.actions.outlineWindow;
-
- if (wnd != null)
- {
- //ui.actions.outlineWindow.update(true);
- }
}
}
-
+
graph.refresh();
+ graph.refreshBackgroundImage();
graph.view.validateBackground()
}));
diff --git a/src/main/webapp/js/grapheditor/Graph.js b/src/main/webapp/js/grapheditor/Graph.js
index ca35564c..c55697f3 100644
--- a/src/main/webapp/js/grapheditor/Graph.js
+++ b/src/main/webapp/js/grapheditor/Graph.js
@@ -7863,7 +7863,7 @@ if (typeof mxVertexHandler != 'undefined')
try
{
- var c = JSON.parse(constgeraints);
+ var c = JSON.parse(constraints);
for (var i = 0; i < c.length; i++)
{
diff --git a/src/main/webapp/js/viewer-static.min.js b/src/main/webapp/js/viewer-static.min.js
index ed3c5626..ce45c154 100644
--- a/src/main/webapp/js/viewer-static.min.js
+++ b/src/main/webapp/js/viewer-static.min.js
@@ -200,7 +200,7 @@ null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local||"1"==urlParams.lockdown)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";
"se.diagrams.net"==window.location.hostname&&(urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0",urlParams.plugins="0",urlParams.mode="google",urlParams.lockdown="1",window.DRAWIO_GOOGLE_APP_ID=window.DRAWIO_GOOGLE_APP_ID||"184079235871",window.DRAWIO_GOOGLE_CLIENT_ID=window.DRAWIO_GOOGLE_CLIENT_ID||"184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");"trello"==urlParams.mode&&(urlParams.tr="1");
"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(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||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"15.0.2",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+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||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"15.0.3",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&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:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||
0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||0<=navigator.userAgent.indexOf("Opera/"),IS_WIN:0<navigator.appVersion.indexOf("Win"),IS_MAC:0<navigator.appVersion.indexOf("Mac"),
@@ -2121,8 +2121,8 @@ mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.pr
m="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" ");this.setDefaultStyle=function(a){try{var c=k.view.getState(a);if(null!=c){var e=a.clone();e.style="";var b=k.getCellStyle(e);a=[];var e=[],d;for(d in c.style)b[d]!=c.style[d]&&(a.push(c.style[d]),e.push(d));for(var g=k.getModel().getStyle(c.cell),f=null!=g?g.split(";"):[],g=0;g<f.length;g++){var n=
f[g],l=n.indexOf("=");if(0<=l){d=n.substring(0,l);var q=n.substring(l+1);null!=b[d]&&"none"==q&&(a.push(q),e.push(d))}}k.getModel().isEdge(c.cell)?k.currentEdgeStyle={}:k.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",e,"values",a,"cells",[c.cell]))}}catch(aa){this.handleError(aa)}};this.clearDefaultStyle=function(){k.currentEdgeStyle=mxUtils.clone(k.defaultEdgeStyle);k.currentVertexStyle=mxUtils.clone(k.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged",
"keys",[],"values",[],"cells",[]))};var p=["fontFamily","fontSource","fontSize","fontColor"];for(b=0;b<p.length;b++)0>mxUtils.indexOf(f,p[b])&&f.push(p[b]);var c="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),e=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["align","verticalAlign"],["opacity"],["html"]];for(b=
-0;b<e.length;b++)for(d=0;d<e[b].length;d++)f.push(e[b][d]);for(b=0;b<m.length;b++)0>mxUtils.indexOf(f,m[b])&&f.push(m[b]);var g=function(a,c,b,d,g,n,l){d=null!=d?d:k.currentVertexStyle;g=null!=g?g:k.currentEdgeStyle;b=null!=b?b:k.getModel();if(l){l=[];for(var v=0;v<a.length;v++)l=l.concat(b.getDescendants(a[v]));a=l}b.beginUpdate();try{for(v=0;v<a.length;v++){var q=a[v],B;if(c)B=["fontSize","fontFamily","fontColor"];else{var t=b.getStyle(q),u=null!=t?t.split(";"):[];B=f.slice();for(var C=0;C<u.length;C++){var J=
-u[C],p=J.indexOf("=");if(0<=p){var x=J.substring(0,p),N=mxUtils.indexOf(B,x);0<=N&&B.splice(N,1);for(l=0;l<e.length;l++){var z=e[l];if(0<=mxUtils.indexOf(z,x))for(var A=0;A<z.length;A++){var D=mxUtils.indexOf(B,z[A]);0<=D&&B.splice(D,1)}}}}}var E=b.isEdge(q);l=E?g:d;for(var H=b.getStyle(q),C=0;C<B.length;C++){var x=B[C],G=l[x];null!=G&&("shape"!=x||E)&&(!E||n||0>mxUtils.indexOf(m,x))&&(H=mxUtils.setStyle(H,x,G))}Editor.simpleLabels&&(H=mxUtils.setStyle(mxUtils.setStyle(H,"html",null),"whiteSpace",
+0;b<e.length;b++)for(d=0;d<e[b].length;d++)f.push(e[b][d]);for(b=0;b<m.length;b++)0>mxUtils.indexOf(f,m[b])&&f.push(m[b]);var g=function(a,c,b,d,g,n,l){d=null!=d?d:k.currentVertexStyle;g=null!=g?g:k.currentEdgeStyle;b=null!=b?b:k.getModel();if(l){l=[];for(var v=0;v<a.length;v++)l=l.concat(b.getDescendants(a[v]));a=l}b.beginUpdate();try{for(v=0;v<a.length;v++){var q=a[v],B;if(c)B=["fontSize","fontFamily","fontColor"];else{var t=b.getStyle(q),u=null!=t?t.split(";"):[];B=f.slice();for(var D=0;D<u.length;D++){var J=
+u[D],p=J.indexOf("=");if(0<=p){var x=J.substring(0,p),N=mxUtils.indexOf(B,x);0<=N&&B.splice(N,1);for(l=0;l<e.length;l++){var z=e[l];if(0<=mxUtils.indexOf(z,x))for(var A=0;A<z.length;A++){var C=mxUtils.indexOf(B,z[A]);0<=C&&B.splice(C,1)}}}}}var E=b.isEdge(q);l=E?g:d;for(var H=b.getStyle(q),D=0;D<B.length;D++){var x=B[D],G=l[x];null!=G&&("shape"!=x||E)&&(!E||n||0>mxUtils.indexOf(m,x))&&(H=mxUtils.setStyle(H,x,G))}Editor.simpleLabels&&(H=mxUtils.setStyle(mxUtils.setStyle(H,"html",null),"whiteSpace",
null));b.setStyle(q,H)}}finally{b.endUpdate()}};k.addListener("cellsInserted",function(a,c){g(c.getProperty("cells"))});k.addListener("textInserted",function(a,c){g(c.getProperty("cells"),!0)});this.insertHandler=g;this.createDivs();this.createUi();this.refresh();var n=mxUtils.bind(this,function(a){null==a&&(a=window.event);return k.isEditing()||null!=a&&this.isSelectionAllowed(a)});this.container==document.body&&(this.menubarContainer.onselectstart=n,this.menubarContainer.onmousedown=n,this.toolbarContainer.onselectstart=
n,this.toolbarContainer.onmousedown=n,this.diagramContainer.onselectstart=n,this.diagramContainer.onmousedown=n,this.sidebarContainer.onselectstart=n,this.sidebarContainer.onmousedown=n,this.formatContainer.onselectstart=n,this.formatContainer.onmousedown=n,this.footerContainer.onselectstart=n,this.footerContainer.onmousedown=n,null!=this.tabContainer&&(this.tabContainer.onselectstart=n));!this.editor.chromeless||this.editor.editable?(b=function(a){if(null!=a){var c=mxEvent.getSource(a);if("A"==c.nodeName)for(;null!=
c;){if("geHint"==c.className)return!0;c=c.parentNode}}return n(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):k.panningHandler.usePopupTrigger=!1;k.init(this.diagramContainer);mxClient.IS_SVG&&null!=k.view.getDrawPane()&&(b=k.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=k.graphHandler){var l=
@@ -2131,7 +2131,7 @@ k.graphHandler.start;k.graphHandler.start=function(){null!=F.hoverIcons&&F.hover
"";q=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var t=k.panningHandler.isForcePanningEvent;k.panningHandler.isForcePanningEvent=function(a){return t.apply(this,arguments)||q||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var A=k.cellEditor.isStopEditingEvent;k.cellEditor.isStopEditingEvent=function(a){return A.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 x=k.isZoomWheelEvent;k.isZoomWheelEvent=function(){return q||x.apply(this,arguments)};var G=!1,z=null,E=null,H=null,K=mxUtils.bind(this,function(){if(null!=this.toolbar&&G!=k.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var e=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),
c.push(a));a=e}a=this.toolbar.fontMenu;e=this.toolbar.sizeMenu;if(null==H)this.toolbar.createTextToolbar();else{for(var b=0;b<H.length;b++)this.toolbar.container.appendChild(H[b]);this.toolbar.fontMenu=z;this.toolbar.sizeMenu=E}G=k.cellEditor.isContentEditing();z=a;E=e;H=c}}),F=this,I=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){I.apply(this,arguments);K();if(k.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){var c=k.getSelectedEditingElement();
-null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=F.toolbar&&(F.toolbar.setFontName(Graph.stripQuotes(c.fontFamily)),F.toolbar.setFontSize(parseInt(c.fontSize))));a=!1},0))};mxEvent.addListener(k.cellEditor.textarea,"input",c);mxEvent.addListener(k.cellEditor.textarea,"touchend",c);mxEvent.addListener(k.cellEditor.textarea,"mouseup",c);mxEvent.addListener(k.cellEditor.textarea,"keyup",c);c()}};var D=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(a,c){try{D.apply(this,arguments),K()}catch(N){F.handleError(N)}};
+null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=F.toolbar&&(F.toolbar.setFontName(Graph.stripQuotes(c.fontFamily)),F.toolbar.setFontSize(parseInt(c.fontSize))));a=!1},0))};mxEvent.addListener(k.cellEditor.textarea,"input",c);mxEvent.addListener(k.cellEditor.textarea,"touchend",c);mxEvent.addListener(k.cellEditor.textarea,"mouseup",c);mxEvent.addListener(k.cellEditor.textarea,"keyup",c);c()}};var C=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(a,c){try{C.apply(this,arguments),K()}catch(N){F.handleError(N)}};
k.container.setAttribute("tabindex","0");k.container.style.cursor="default";if(window.self===window.top&&null!=k.container.parentNode)try{k.container.focus()}catch(U){}var M=k.fireMouseEvent;k.fireMouseEvent=function(a,c,e){a==mxEvent.MOUSE_DOWN&&this.container.focus();M.apply(this,arguments)};k.popupMenuHandler.autoExpand=!0;null!=this.menus&&(k.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,c,e){this.menus.createPopupMenu(a,c,e)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,
function(a){k.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};k.connectionHandler.addListener(mxEvent.CONNECT,function(a,c){var e=[c.getProperty("cell")];c.getProperty("terminalInserted")&&(e.push(c.getProperty("terminal")),window.setTimeout(function(){null!=F.hoverIcons&&F.hoverIcons.update(k.view.getState(e[e.length-1]))},0));g(e)});this.addListener("styleChanged",mxUtils.bind(this,function(a,e){var b=e.getProperty("cells"),
d=!1,g=!1;if(0<b.length)for(var n=0;n<b.length&&(d=k.getModel().isVertex(b[n])||d,!(g=k.getModel().isEdge(b[n])||g)||!d);n++);else g=d=!0;for(var b=e.getProperty("keys"),l=e.getProperty("values"),n=0;n<b.length;n++){var q=0<=mxUtils.indexOf(p,b[n]);if("strokeColor"!=b[n]||null!=l[n]&&"none"!=l[n])if(0<=mxUtils.indexOf(m,b[n]))g||0<=mxUtils.indexOf(c,b[n])?null==l[n]?delete k.currentEdgeStyle[b[n]]:k.currentEdgeStyle[b[n]]=l[n]:d&&0<=mxUtils.indexOf(f,b[n])&&(null==l[n]?delete k.currentVertexStyle[b[n]]:
@@ -2195,16 +2195,16 @@ mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});m
startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(c,e){this.startX=e.getGraphX();this.startY=e.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,c){},mouseUp:function(c,e){mxEvent.isTouchEvent(e.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<E&&Math.abs(this.scrollTop-a.container.scrollTop)<E&&Math.abs(this.startX-e.getGraphX())<E&&Math.abs(this.startY-e.getGraphY())<E&&(0<parseFloat(d.chromelessToolbar.style.opacity||0)?
t():A(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var H=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}H.apply(this,arguments)};if(!a.isViewer()){var K=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var c=
this.getPageLayout(),e=this.getPagePadding(),b=this.getPageSize(),d=Math.ceil(2*e.x+c.width*b.width),g=Math.ceil(2*e.y+c.height*b.height),f=a.minimumGraphSize;if(null==f||f.width!=d||f.height!=g)a.minimumGraphSize=new mxRectangle(0,0,d,g);d=e.x-c.x*b.width;e=e.y-c.y*b.height;this.autoTranslate||this.view.translate.x==d&&this.view.translate.y==e?K.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=c.y,c=a.view.translate.x,b=a.view.translate.y,a.view.setTranslate(d,e),a.container.scrollLeft+=
-Math.round((d-c)*a.view.scale),a.container.scrollTop+=Math.round((e-b)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var F=a.view.getBackgroundPane(),I=a.view.getDrawPane();a.cumulativeZoomFactor=1;var D=null,M=null,U=null,P=null,N=null,v=function(c){null!=D&&window.clearTimeout(D);window.setTimeout(function(){if(!a.isMouseDown||P)D=window.setTimeout(mxUtils.bind(this,function(){a.isFastZoomEnabled()&&(null!=a.view.backgroundPageShape&&
+Math.round((d-c)*a.view.scale),a.container.scrollTop+=Math.round((e-b)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var F=a.view.getBackgroundPane(),I=a.view.getDrawPane();a.cumulativeZoomFactor=1;var C=null,M=null,U=null,O=null,N=null,v=function(c){null!=C&&window.clearTimeout(C);window.setTimeout(function(){if(!a.isMouseDown||O)C=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)),I.style.transformOrigin="",F.style.transformOrigin="",mxClient.IS_SF?(I.style.transform="scale(1)",F.style.transform="scale(1)",window.setTimeout(function(){I.style.transform="";F.style.transform=""},0)):(I.style.transform="",F.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),g=a.view.scale,f=0,n=0;null!=M&&(f=a.container.offsetWidth/2-M.x+e.x,n=a.container.offsetHeight/2-M.y+e.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=g&&(null!=U&&(f+=c.x-U.x,n+=c.y-U.y),null!=b&&d.chromelessResize(!1,null,f*(a.cumulativeZoomFactor-1),n*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==f&&0==n||(a.container.scrollLeft-=f*(a.cumulativeZoomFactor-
-1),a.container.scrollTop-=n*(a.cumulativeZoomFactor-1)));null!=N&&I.setAttribute("filter",N);a.cumulativeZoomFactor=1;N=P=M=U=D=null}),null!=c?c:a.isFastZoomEnabled()?d.wheelZoomDelay:d.lazyZoomDelay)},0)},C=Date.now();a.lazyZoom=function(c,e,b){(e=e||!a.scrollbars)&&(M=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(mxClient.IS_IOS||!(15>Date.now()-C)){C=Date.now();c?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=
+1),a.container.scrollTop-=n*(a.cumulativeZoomFactor-1)));null!=N&&I.setAttribute("filter",N);a.cumulativeZoomFactor=1;N=O=M=U=C=null}),null!=c?c:a.isFastZoomEnabled()?d.wheelZoomDelay:d.lazyZoomDelay)},0)},D=Date.now();a.lazyZoom=function(c,e,b){(e=e||!a.scrollbars)&&(M=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(mxClient.IS_IOS||!(15>Date.now()-D)){D=Date.now();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()){null==N&&""!=I.getAttribute("filter")&&(N=I.getAttribute("filter"),I.removeAttribute("filter"));U=new mxPoint(a.container.scrollLeft,a.container.scrollTop);c=e?a.container.scrollLeft+a.container.clientWidth/2:M.x+a.container.scrollLeft-a.container.offsetLeft;var g=e?a.container.scrollTop+a.container.clientHeight/2:M.y+a.container.scrollTop-a.container.offsetTop;I.style.transformOrigin=c+"px "+g+"px";I.style.transform="scale("+
this.cumulativeZoomFactor+")";F.style.transformOrigin=c+"px "+g+"px";F.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",(e?a.container.clientWidth/2+a.container.scrollLeft-c.offsetLeft+"px":M.x+a.container.scrollLeft-c.offsetLeft-a.container.offsetLeft+"px")+" "+(e?a.container.clientHeight/2+a.container.scrollTop-c.offsetTop+"px":M.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!=d.hoverIcons&&d.hoverIcons.reset()}v(b)}};mxEvent.addGestureListeners(a.container,function(a){null!=D&&window.clearTimeout(D)},null,function(c){1!=a.cumulativeZoomFactor&&v(0)});mxEvent.addListener(a.container,"scroll",function(c){null==D||a.isMouseDown||1==a.cumulativeZoomFactor||
+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!=d.hoverIcons&&d.hoverIcons.reset()}v(b)}};mxEvent.addGestureListeners(a.container,function(a){null!=C&&window.clearTimeout(C)},null,function(c){1!=a.cumulativeZoomFactor&&v(0)});mxEvent.addListener(a.container,"scroll",function(c){null==C||a.isMouseDown||1==a.cumulativeZoomFactor||
v(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(c,e,b,d,g){if(null==this.dialogs||0==this.dialogs.length)if(!a.scrollbars&&!b&&a.isScrollWheelEvent(c))b=a.view.getTranslate(),d=40/a.view.scale,mxEvent.isShiftDown(c)?a.view.setTranslate(b.x+(e?-d:d),b.y):a.view.setTranslate(b.x,b.y+(e?d:-d));else if(b||a.isZoomWheelEvent(c))for(var f=mxEvent.getSource(c);null!=f;){if(f==a.container)return a.tooltipHandler.hideTooltip(),M=null!=d&&null!=g?new mxPoint(d,g):new mxPoint(mxEvent.getClientX(c),
-mxEvent.getClientY(c)),P=b,a.lazyZoom(e),mxEvent.consume(c),!1;f=f.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.isPagesEnabled=function(){return this.editor.editable||"1"!=urlParams["hide-pages"]};
+mxEvent.getClientY(c)),O=b,a.lazyZoom(e),mxEvent.consume(c),!1;f=f.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.isPagesEnabled=function(){return this.editor.editable||"1"!=urlParams["hide-pages"]};
EditorUi.prototype.createTemporaryGraph=function(a){var b=new Graph(document.createElement("div"));b.stylesheet.styles=mxUtils.clone(a.styles);b.resetViewOnRootChange=!1;b.setConnectable(!1);b.gridEnabled=!1;b.autoScroll=!1;b.setTooltips(!1);b.setEnabled(!1);b.container.style.visibility="hidden";b.container.style.position="absolute";b.container.style.overflow="hidden";b.container.style.height="1px";b.container.style.width="1px";return b};
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){a=null!=a?a:0==this.formatWidth;null!=this.format&&(this.formatWidth=a?240:0,this.formatContainer.style.display=a?"":"none",this.refresh(),this.format.refresh(),this.fireEvent(new mxEventObject("formatWidthChanged")))};
EditorUi.prototype.lightboxFit=function(a){if(this.isDiagramEmpty())this.editor.graph.view.setScale(1);else{var b=urlParams.border,d=60;null!=b&&(d=parseInt(b));this.editor.graph.maxFitScale=this.lightboxMaxFitScale;this.editor.graph.fit(d,null,null,null,null,null,a);this.editor.graph.maxFitScale=null}};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))};
@@ -2319,11 +2319,11 @@ this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineCon
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 K=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(K=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=K)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var F=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 F.apply(this,arguments);var e=c?a.sourceState.cell:a.getCell();null!=e&&(e=this.getClickableLinkForCell(e),null!=e&&(this.isCustomLink(e)?
this.customLinkClicked(e):this.openLink(e)));this.isEnabled()&&c&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};var I=this.tooltipHandler.show;this.tooltipHandler.show=function(){I.apply(this,arguments);if(null!=this.div)for(var a=this.div.getElementsByTagName("a"),c=0;c<a.length;c++)null!=a[c].getAttribute("href")&&null==a[c].getAttribute("target")&&a[c].setAttribute("target","_blank")};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.getClickableLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return D.apply(this,arguments)};this.selectRegion=function(a,c){var e=this.getCells(a.x,a.y,a.width,a.height,null,
+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 C=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||this.isCellLocked(a)){if(null!=this.getClickableLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return C.apply(this,arguments)};this.selectRegion=function(a,c){var e=this.getCells(a.x,a.y,a.width,a.height,null,
null,null,function(a){return"1"==mxUtils.getValue(a.style,"locked","0")},!0);this.selectCellsForEvent(e,c);return e};var M=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,c,e){return this.graph.isCellSelected(a)?!1:M.apply(this,arguments)};this.isCellLocked=function(a){for(;null!=a;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(a),"locked","0"))return!0;a=this.model.getParent(a)}return!1};var U=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,
mxUtils.bind(this,function(a,c){if("mouseDown"==c.getProperty("eventName")){var e=c.getProperty("event").getState();U=null==e||this.isSelectionEmpty()||this.isCellSelected(e.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,c){if(!mxEvent.isMultiTouchEvent(c)){var e=c.getProperty("event"),b=c.getProperty("cell");null==b?(e=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),t.start(e.x,e.y)):null!=U?this.addSelectionCells(U):
1<this.getSelectionCount()&&this.isCellSelected(b)&&this.removeSelectionCell(b);U=null;c.consume()}}));this.connectionHandler.selectCells=function(a,c){this.graph.setSelectionCell(c||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,c){var e=a.view.graph;return c&&(e.isCellSelected(a.cell)||e.isTableRow(a.cell)&&e.selectionCellsHandler.isHandled(e.model.getParent(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 P=this.updateMouseEvent;this.updateMouseEvent=function(a){a=P.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=null);return a}}this.currentTranslate=new mxPoint(0,0)};
+null!=a.currentFocus&&a.isStateIgnored(a.currentFocus,!0)&&(a.currentFocus=null,a.constraints=null,a.destroyIcons());a.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var O=this.updateMouseEvent;this.updateMouseEvent=function(a){a=O.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.translateDiagram="1"==urlParams["translate-diagram"];Graph.diagramLanguage=null!=urlParams["diagram-language"]?urlParams["diagram-language"]:mxClient.language;Graph.lineJumpsEnabled=!0;
Graph.defaultJumpSize=6;Graph.minTableColumnWidth=20;Graph.minTableRowHeight=20;Graph.foreignObjectWarningText="Viewer does not support full SVG 1.1";Graph.foreignObjectWarningLink="https://www.diagrams.net/doc/faq/svg-export-text-problems";Graph.pasteStyles="rounded shadow dashed dashPattern fontFamily fontSource 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 comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle".split(" ");
Graph.createSvgImage=function(a,b,d,k,f){d=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!=k&&null!=f?'viewBox="0 0 '+k+" "+f+'" ':"")+'version="1.1">'+d+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(d):Base64.encode(d,!0)),a,b)};
@@ -2467,12 +2467,12 @@ Graph.minTableColumnWidth,p.setGeometry(a,d))}}finally{p.endUpdate()}}};
arguments);null!=e&&c&&this.graph.model.isEdge(e.cell)&&null!=e.style&&1!=e.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(e);return e};var d=mxShape.prototype.paint;mxShape.prototype.paint=function(){d.apply(this,arguments);if(null!=this.state&&null!=this.node&&this.state.view.graph.enableFlowAnimation&&this.state.view.graph.model.isEdge(this.state.cell)&&"1"==mxUtils.getValue(this.state.style,"flowAnimation","0")){var a=this.node.getElementsByTagName("path");if(1<a.length){"1"!=mxUtils.getValue(this.state.style,
mxConstants.STYLE_DASHED,"0")&&a[1].setAttribute("stroke-dasharray",8*this.state.view.scale);var c=this.state.view.graph.getFlowAnimationStyle();null!=c&&a[1].setAttribute("class",c.getAttribute("id"))}}};var k=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return k.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.routedPoints,a.routedPoints)};var f=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
function(a){f.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var c=a.absolutePoints;if(Graph.lineJumpsEnabled){var e=null!=a.routedPoints,b=null;if(null!=c&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var d=function(c,e,d){var g=new mxPoint(e,d);g.type=c;b.push(g);g=null!=a.routedPoints?a.routedPoints[b.length-1]:null;return null==g||g.type!=
-c||g.x!=e||g.y!=d},g=.5*this.scale,e=!1,b=[],f=0;f<c.length-1;f++){for(var k=c[f+1],n=c[f],m=[],p=c[f+2];f<c.length-2&&mxUtils.ptSegDistSq(n.x,n.y,p.x,p.y,k.x,k.y)<1*this.scale*this.scale;)k=p,f++,p=c[f+2];for(var e=d(0,n.x,n.y)||e,K=0;K<this.validEdges.length;K++){var F=this.validEdges[K],I=F.absolutePoints;if(null!=I&&mxUtils.intersects(a,F)&&"1"!=F.style.noJump)for(F=0;F<I.length-1;F++){for(var D=I[F+1],M=I[F],p=I[F+2];F<I.length-2&&mxUtils.ptSegDistSq(M.x,M.y,p.x,p.y,D.x,D.y)<1*this.scale*this.scale;)D=
-p,F++,p=I[F+2];p=mxUtils.intersection(n.x,n.y,k.x,k.y,M.x,M.y,D.x,D.y);if(null!=p&&(Math.abs(p.x-n.x)>g||Math.abs(p.y-n.y)>g)&&(Math.abs(p.x-k.x)>g||Math.abs(p.y-k.y)>g)&&(Math.abs(p.x-M.x)>g||Math.abs(p.y-M.y)>g)&&(Math.abs(p.x-D.x)>g||Math.abs(p.y-D.y)>g)){D=p.x-n.x;M=p.y-n.y;p={distSq:D*D+M*M,x:p.x,y:p.y};for(D=0;D<m.length;D++)if(m[D].distSq>p.distSq){m.splice(D,0,p);p=null;break}null==p||0!=m.length&&m[m.length-1].x===p.x&&m[m.length-1].y===p.y||m.push(p)}}}for(F=0;F<m.length;F++)e=d(1,m[F].x,
+c||g.x!=e||g.y!=d},g=.5*this.scale,e=!1,b=[],f=0;f<c.length-1;f++){for(var k=c[f+1],n=c[f],m=[],p=c[f+2];f<c.length-2&&mxUtils.ptSegDistSq(n.x,n.y,p.x,p.y,k.x,k.y)<1*this.scale*this.scale;)k=p,f++,p=c[f+2];for(var e=d(0,n.x,n.y)||e,K=0;K<this.validEdges.length;K++){var F=this.validEdges[K],I=F.absolutePoints;if(null!=I&&mxUtils.intersects(a,F)&&"1"!=F.style.noJump)for(F=0;F<I.length-1;F++){for(var C=I[F+1],M=I[F],p=I[F+2];F<I.length-2&&mxUtils.ptSegDistSq(M.x,M.y,p.x,p.y,C.x,C.y)<1*this.scale*this.scale;)C=
+p,F++,p=I[F+2];p=mxUtils.intersection(n.x,n.y,k.x,k.y,M.x,M.y,C.x,C.y);if(null!=p&&(Math.abs(p.x-n.x)>g||Math.abs(p.y-n.y)>g)&&(Math.abs(p.x-k.x)>g||Math.abs(p.y-k.y)>g)&&(Math.abs(p.x-M.x)>g||Math.abs(p.y-M.y)>g)&&(Math.abs(p.x-C.x)>g||Math.abs(p.y-C.y)>g)){C=p.x-n.x;M=p.y-n.y;p={distSq:C*C+M*M,x:p.x,y:p.y};for(C=0;C<m.length;C++)if(m[C].distSq>p.distSq){m.splice(C,0,p);p=null;break}null==p||0!=m.length&&m[m.length-1].x===p.x&&m[m.length-1].y===p.y||m.push(p)}}}for(F=0;F<m.length;F++)e=d(1,m[F].x,
m[F].y)||e}p=c[c.length-1];e=d(0,p.x,p.y)||e}a.routedPoints=b;return e}return!1};var m=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,c,e){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)m.apply(this,arguments);else{var b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,d=(parseInt(mxUtils.getValue(this.style,
-"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,g=mxUtils.getValue(this.style,"jumpStyle","none"),f=!0,k=null,n=null,l=[],q=null;a.begin();for(var p=0;p<this.state.routedPoints.length;p++){var F=this.state.routedPoints[p],I=new mxPoint(F.x/this.scale,F.y/this.scale);0==p?I=c[0]:p==this.state.routedPoints.length-1&&(I=c[c.length-1]);var D=!1;if(null!=k&&1==F.type){var M=this.state.routedPoints[p+1],F=M.x/this.scale-I.x,M=M.y/this.scale-I.y,F=F*F+M*M;null==q&&(q=new mxPoint(I.x-k.x,I.y-k.y),
-n=Math.sqrt(q.x*q.x+q.y*q.y),0<n?(q.x=q.x*d/n,q.y=q.y*d/n):q=null);F>d*d&&0<n&&(F=k.x-I.x,M=k.y-I.y,F=F*F+M*M,F>d*d&&(D=new mxPoint(I.x-q.x,I.y-q.y),F=new mxPoint(I.x+q.x,I.y+q.y),l.push(D),this.addPoints(a,l,e,b,!1,null,f),l=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,f=!1,"sharp"==g?(a.lineTo(D.x-q.y*l,D.y+q.x*l),a.lineTo(F.x-q.y*l,F.y+q.x*l),a.lineTo(F.x,F.y)):"line"==g?(a.moveTo(D.x+q.y*l,D.y-q.x*l),a.lineTo(D.x-q.y*l,D.y+q.x*l),a.moveTo(F.x-q.y*l,F.y+q.x*l),a.lineTo(F.x+q.y*
-l,F.y-q.x*l),a.moveTo(F.x,F.y)):"arc"==g?(l*=1.3,a.curveTo(D.x-q.y*l,D.y+q.x*l,F.x-q.y*l,F.y+q.x*l,F.x,F.y)):(a.moveTo(F.x,F.y),f=!0),l=[F],D=!0))}else q=null;D||(l.push(I),k=I)}this.addPoints(a,l,e,b,!1,null,f);a.stroke()}};var p=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,c,e,b){return null!=c&&"centerPerimeter"==c.style[mxConstants.STYLE_PERIMETER]?new mxPoint(c.getCenterX(),c.getCenterY()):p.apply(this,arguments)};var c=mxGraphView.prototype.updateFloatingTerminalPoint;
+"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,g=mxUtils.getValue(this.style,"jumpStyle","none"),f=!0,k=null,n=null,l=[],q=null;a.begin();for(var p=0;p<this.state.routedPoints.length;p++){var F=this.state.routedPoints[p],I=new mxPoint(F.x/this.scale,F.y/this.scale);0==p?I=c[0]:p==this.state.routedPoints.length-1&&(I=c[c.length-1]);var C=!1;if(null!=k&&1==F.type){var M=this.state.routedPoints[p+1],F=M.x/this.scale-I.x,M=M.y/this.scale-I.y,F=F*F+M*M;null==q&&(q=new mxPoint(I.x-k.x,I.y-k.y),
+n=Math.sqrt(q.x*q.x+q.y*q.y),0<n?(q.x=q.x*d/n,q.y=q.y*d/n):q=null);F>d*d&&0<n&&(F=k.x-I.x,M=k.y-I.y,F=F*F+M*M,F>d*d&&(C=new mxPoint(I.x-q.x,I.y-q.y),F=new mxPoint(I.x+q.x,I.y+q.y),l.push(C),this.addPoints(a,l,e,b,!1,null,f),l=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,f=!1,"sharp"==g?(a.lineTo(C.x-q.y*l,C.y+q.x*l),a.lineTo(F.x-q.y*l,F.y+q.x*l),a.lineTo(F.x,F.y)):"line"==g?(a.moveTo(C.x+q.y*l,C.y-q.x*l),a.lineTo(C.x-q.y*l,C.y+q.x*l),a.moveTo(F.x-q.y*l,F.y+q.x*l),a.lineTo(F.x+q.y*
+l,F.y-q.x*l),a.moveTo(F.x,F.y)):"arc"==g?(l*=1.3,a.curveTo(C.x-q.y*l,C.y+q.x*l,F.x-q.y*l,F.y+q.x*l,F.x,F.y)):(a.moveTo(F.x,F.y),f=!0),l=[F],C=!0))}else q=null;C||(l.push(I),k=I)}this.addPoints(a,l,e,b,!1,null,f);a.stroke()}};var p=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,c,e,b){return null!=c&&"centerPerimeter"==c.style[mxConstants.STYLE_PERIMETER]?new mxPoint(c.getCenterX(),c.getCenterY()):p.apply(this,arguments)};var c=mxGraphView.prototype.updateFloatingTerminalPoint;
mxGraphView.prototype.updateFloatingTerminalPoint=function(a,e,b,d){if(null==e||null==a||"1"!=e.style.snapToPoint&&"1"!=a.style.snapToPoint)c.apply(this,arguments);else{e=this.getTerminalPort(a,e,d);var g=this.getNextPoint(a,b,d),f=this.graph.isOrthogonal(a),k=mxUtils.toRadians(Number(e.style[mxConstants.STYLE_ROTATION]||"0")),n=new mxPoint(e.getCenterX(),e.getCenterY());if(0!=k)var l=Math.cos(-k),q=Math.sin(-k),g=mxUtils.getRotatedPoint(g,l,q,n);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(e,g,0==k&&f,l);0!=k&&(l=Math.cos(k),q=Math.sin(k),g=mxUtils.getRotatedPoint(g,l,q,n));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,e,b,d,g),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,e,b,d){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);b=e=null;if(null!=a)for(var g=0;g<a.length;g++){var f=this.graph.getConnectionPoint(c,
a[g]);if(null!=f){var k=(f.x-d.x)*(f.x-d.x)+(f.y-d.y)*(f.y-d.y);if(null==b||k<b)e=f,b=k}}null!=e&&(d=e)}return d};var e=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,c,b){var d=e.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=b.state&&(d=b.state.view.graph.replacePlaceholders(b.state.cell,d));return d};var g=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var c=
@@ -2503,17 +2503,17 @@ Graph.prototype.isExtendParent=function(a){var e=this.model.getParent(a);if(null
mxConstants.NONE,[a]);var Y=this.model.getTerminal(b,!1);if(null!=Y){var t=this.getCurrentCellStyle(Y);null!=t&&"1"==t.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[a]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[a]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[b]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[b]))}}finally{this.model.endUpdate()}return b};var g=Graph.prototype.selectCell;Graph.prototype.selectCell=function(a,c,e){if(c||e)g.apply(this,arguments);
else{var b=this.getSelectionCell(),d=null,f=[],k=mxUtils.bind(this,function(c){if(null!=this.view.getState(c)&&(this.model.isVertex(c)||this.model.isEdge(c)))if(f.push(c),c==b)d=f.length-1;else if(a&&null==b&&0<f.length||null!=d&&a&&f.length>d||!a&&0<d)return;for(var e=0;e<this.model.getChildCount(c);e++)k(this.model.getChildAt(c,e))});k(this.model.root);0<f.length&&(d=null!=d?mxUtils.mod(d+(a?1:-1),f.length):0,this.setSelectionCell(f[d]))}};var n=Graph.prototype.moveCells;Graph.prototype.moveCells=
function(a,c,e,b,d,g,f){f=null!=f?f:{};if(this.isTable(d)){for(var k=[],l=0;l<a.length;l++)this.isTable(a[l])?k=k.concat(this.model.getChildCells(a[l],!0).reverse()):k.push(a[l]);a=k}this.model.beginUpdate();try{k=[];for(l=0;l<a.length;l++)if(null!=d&&this.isTableRow(a[l])){var v=this.model.getParent(a[l]),q=this.getCellGeometry(a[l]);this.isTable(v)&&k.push(v);if(null!=v&&null!=q&&this.isTable(v)&&this.isTable(d)&&(b||v!=d)){if(!b){var Y=this.getCellGeometry(v);null!=Y&&(Y=Y.clone(),Y.height-=q.height,
-this.model.setGeometry(v,Y))}Y=this.getCellGeometry(d);null!=Y&&(Y=Y.clone(),Y.height+=q.height,this.model.setGeometry(d,Y));var t=this.model.getChildCells(d,!0);if(0<t.length){a[l]=b?this.cloneCell(a[l]):a[l];var u=this.model.getChildCells(a[l],!0),m=this.model.getChildCells(t[0],!0),C=m.length-u.length;if(0<C)for(var B=0;B<C;B++){var x=this.cloneCell(u[u.length-1]);null!=x&&(x.value="",this.model.add(a[l],x))}else if(0>C)for(B=0;B>C;B--)this.model.remove(u[u.length+B-1]);u=this.model.getChildCells(a[l],
+this.model.setGeometry(v,Y))}Y=this.getCellGeometry(d);null!=Y&&(Y=Y.clone(),Y.height+=q.height,this.model.setGeometry(d,Y));var t=this.model.getChildCells(d,!0);if(0<t.length){a[l]=b?this.cloneCell(a[l]):a[l];var u=this.model.getChildCells(a[l],!0),m=this.model.getChildCells(t[0],!0),D=m.length-u.length;if(0<D)for(var B=0;B<D;B++){var x=this.cloneCell(u[u.length-1]);null!=x&&(x.value="",this.model.add(a[l],x))}else if(0>D)for(B=0;B>D;B--)this.model.remove(u[u.length+B-1]);u=this.model.getChildCells(a[l],
!0);for(B=0;B<m.length;B++){var qa=this.getCellGeometry(m[B]),p=this.getCellGeometry(u[B]);null!=qa&&null!=p&&(p=p.clone(),p.width=qa.width,this.model.setGeometry(u[B],p))}}}}for(var va=n.apply(this,arguments),l=0;l<k.length;l++)!b&&this.model.contains(k[l])&&0==this.model.getChildCount(k[l])&&this.model.remove(k[l]);b&&this.updateCustomLinks(this.createCellMapping(f,this.createCellLookup(a)),va)}finally{this.model.endUpdate()}return va};var l=Graph.prototype.removeCells;Graph.prototype.removeCells=
function(a,c){var e=[];this.model.beginUpdate();try{for(var b=0;b<a.length;b++)if(this.isTableCell(a[b])){var d=this.model.getParent(a[b]),g=this.model.getParent(d);1==this.model.getChildCount(d)&&1==this.model.getChildCount(g)?0>mxUtils.indexOf(a,g)&&0>mxUtils.indexOf(e,g)&&e.push(g):this.labelChanged(a[b],"")}else{if(this.isTableRow(a[b])&&(g=this.model.getParent(a[b]),0>mxUtils.indexOf(a,g)&&0>mxUtils.indexOf(e,g))){for(var f=this.model.getChildCells(g,!0),k=0,n=0;n<f.length;n++)0<=mxUtils.indexOf(a,
f[n])&&k++;k==f.length&&e.push(g)}e.push(a[b])}e=l.apply(this,[e,c])}finally{this.model.endUpdate()}return e};Graph.prototype.updateCustomLinks=function(a,c,e){e=null!=e?e:new Graph;for(var b=0;b<c.length;b++)null!=c[b]&&e.updateCustomLinksForCell(a,c[b],e)};Graph.prototype.updateCustomLinksForCell=function(a,c){this.doUpdateCustomLinksForCell(a,c);for(var e=this.model.getChildCount(c),b=0;b<e;b++)this.updateCustomLinksForCell(a,this.model.getChildAt(c,b))};Graph.prototype.doUpdateCustomLinksForCell=
-function(a,c){};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var e=mxUtils.getValue(a.style,"points",null);if(null!=e){e=[];try{for(var b=JSON.parse(constgeraints),d=0;d<b.length;d++){var g=b[d];e.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(za){}return e}if(null!=a.shape&&null!=a.shape.bounds){g=a.shape.direction;e=a.shape.bounds;d=a.shape.scale;b=e.width/d;e=e.height/d;if(g==mxConstants.DIRECTION_NORTH||
-g==mxConstants.DIRECTION_SOUTH)g=b,b=e,e=g;e=a.shape.getConstraints(a.style,b,e);if(null!=e)return e;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.getCurrentCellStyle(a),c=mxUtils.getValue(c,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;
+function(a,c){};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var e=mxUtils.getValue(a.style,"points",null);if(null!=e){var b=[];try{for(var d=JSON.parse(e),e=0;e<d.length;e++){var g=d[e];b.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(za){}return b}if(null!=a.shape&&null!=a.shape.bounds){g=a.shape.direction;d=a.shape.bounds;e=a.shape.scale;b=d.width/e;d=d.height/e;if(g==mxConstants.DIRECTION_NORTH||
+g==mxConstants.DIRECTION_SOUTH)g=b,b=d,d=g;e=a.shape.getConstraints(a.style,b,d);if(null!=e)return e;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.getCurrentCellStyle(a),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),e=0,b=0;b<c;b++){var d=this.model.getChildAt(a,b);this.model.isVertex(d)&&(d=this.getCellGeometry(d),null==d||d.relative||e++)}return 0<e||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a,c,e){for(var b=this.getCurrentCellStyle(a),d=!0,g=!0,f=0;f<c.length&&g;f++)d=d&&this.isTable(c[f]),g=g&&this.isTableRow(c[f]);return("1"!=mxUtils.getValue(b,"part","0")||
this.isContainer(a))&&"0"!=mxUtils.getValue(b,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(a))&&!this.isTableRow(a)&&(!this.isTable(a)||g||d)};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 e=this.model.getParent(a);
null!=e&&(e=this.layoutManager.getLayout(e),null!=e&&e.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,c){var e=this.getModel(),b=[];e.beginUpdate();try{for(var d=0;d<a.length;d++){var g=a[d];if(e.isEdge(g)){var f=e.getTerminal(g,
!0),k=e.getTerminal(g,!1);e.setTerminal(g,k,!0);e.setTerminal(g,f,!1);var l=e.getGeometry(g);if(null!=l){l=l.clone();null!=l.points&&l.points.reverse();var n=l.getTerminalPoint(!0),v=l.getTerminalPoint(!1);l.setTerminalPoint(n,!1);l.setTerminalPoint(v,!0);e.setGeometry(g,l);var q=this.view.getState(g),t=this.view.getState(f),Y=this.view.getState(k);if(null!=q){var u=null!=t?this.getConnectionConstraint(q,t,!0):null,m=null!=Y?this.getConnectionConstraint(q,Y,!1):null;this.setConnectionConstraint(g,
-f,!0,m);this.setConnectionConstraint(g,k,!1,u);var C=mxUtils.getValue(q.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(q.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[g]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,C,[g])}b.push(g)}}else if(e.isVertex(g)&&(l=this.getCellGeometry(g),null!=l)){if(!(this.isTable(g)||this.isTableRow(g)||this.isTableCell(g)||this.isSwimlane(g))){l=l.clone();l.x+=l.width/
+f,!0,m);this.setConnectionConstraint(g,k,!1,u);var D=mxUtils.getValue(q.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(q.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[g]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,D,[g])}b.push(g)}}else if(e.isVertex(g)&&(l=this.getCellGeometry(g),null!=l)){if(!(this.isTable(g)||this.isTableRow(g)||this.isTableCell(g)||this.isSwimlane(g))){l=l.clone();l.x+=l.width/
2-l.height/2;l.y+=l.height/2-l.width/2;var B=l.width;l.width=l.height;l.height=B;e.setGeometry(g,l)}var x=this.view.getState(g);if(null!=x){var p=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],z=mxUtils.getValue(x.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,p[mxUtils.mod(mxUtils.indexOf(p,z)+(c?-1:1),p.length)],[g])}b.push(g)}}}finally{e.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};var q=Graph.prototype.processChange;Graph.prototype.processChange=function(a){if(a instanceof mxGeometryChange&&(this.isTableCell(a.cell)||this.isTableRow(a.cell))&&(null==a.previous&&null!=a.geometry||null!=a.previous&&!a.previous.equals(a.geometry))){var c=a.cell;this.isTableCell(c)&&(c=this.model.getParent(c));this.isTableRow(c)&&
(c=this.model.getParent(c));var e=this.view.getState(c);null!=e&&null!=e.shape&&(this.view.invalidate(c),e.shape.bounds=null)}q.apply(this,arguments);a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value&&this.invalidateDescendantsWithPlaceholders(a.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=function(a){a=this.model.getDescendants(a);if(0<a.length)for(var c=0;c<a.length;c++){var e=this.view.getState(a[c]);null!=e&&null!=e.shape&&null!=e.shape.stencil&&
@@ -2544,12 +2544,12 @@ a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var c=thi
!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var c=mxGraph.prototype.isCellResizable.apply(this,arguments),e=this.getCurrentCellStyle(a);return!this.isTableCell(a)&&!this.isTableRow(a)&&(c||"0"!=mxUtils.getValue(e,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==e[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=function(a,c){null==c&&(c=this.getSelectionCells());if(null!=c&&1<c.length){for(var e=[],b=null,d=null,g=0;g<c.length;g++)if(this.getModel().isVertex(c[g])){var f=
this.view.getState(c[g]);if(null!=f){var k=a?f.getCenterX():f.getCenterY(),b=null!=b?Math.max(b,k):k,d=null!=d?Math.min(d,k):k;e.push(f)}}if(2<e.length){e.sort(function(c,e){return a?c.x-e.x:c.y-e.y});f=this.view.translate;k=this.view.scale;d=d/k-(a?f.x:f.y);b=b/k-(a?f.x:f.y);this.getModel().beginUpdate();try{for(var l=(b-d)/(e.length-1),b=d,g=1;g<e.length-1;g++){var n=this.view.getState(this.model.getParent(e[g].cell)),v=this.getCellGeometry(e[g].cell),b=b+l;null!=v&&null!=n&&(v=v.clone(),a?v.x=
Math.round(b-v.width/2)-n.origin.x:v.y=Math.round(b-v.height/2)-n.origin.y,this.getModel().setGeometry(e[g].cell,v))}}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.parseBackgroundImage=function(a){var c=
-null;null!=a&&0<a.length&&(a=JSON.parse(a),c=new mxImage(a.src,a.width,a.height));return c};Graph.prototype.getBackgroundImageObject=function(a){return a};Graph.prototype.getSvg=function(a,c,e,b,d,g,f,k,l,n,v,q,t,u){var m=null;if(null!=u)for(m=new mxDictionary,v=0;v<u.length;v++)m.put(u[v],!0);if(u=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{c=null!=c?c:1;e=null!=e?e:0;d=null!=d?d:!0;g=null!=g?g:!0;f=null!=f?f:!0;var C="page"==t?this.view.getBackgroundPageBounds():
-g&&null==m||b||"diagram"==t?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),B=this.view.scale;"diagram"==t&&null!=this.backgroundImage&&C.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*B,(this.view.translate.y+this.backgroundImage.y)*B,this.backgroundImage.width*B,this.backgroundImage.height*B));if(null==C)throw Error(mxResources.get("drawingEmpty"));var x=mxUtils.createXmlDocument(),p=null!=x.createElementNS?x.createElementNS(mxConstants.NS_SVG,"svg"):x.createElement("svg");
-null!=a&&(null!=p.style?p.style.backgroundColor=a:p.setAttribute("style","background-color:"+a));null==x.createElementNS?(p.setAttribute("xmlns",mxConstants.NS_SVG),p.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):p.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=c/B;var z=Math.max(1,Math.ceil(C.width*a)+2*e)+(n?5:0),L=Math.max(1,Math.ceil(C.height*a)+2*e)+(n?5:0);p.setAttribute("version","1.1");p.setAttribute("width",z+"px");p.setAttribute("height",L+"px");
-p.setAttribute("viewBox",(d?"-0.5 -0.5":"0 0")+" "+z+" "+L);x.appendChild(p);var Y=null!=x.createElementNS?x.createElementNS(mxConstants.NS_SVG,"g"):x.createElement("g");p.appendChild(Y);var J=this.createSvgCanvas(Y);J.foOffset=d?-.5:0;J.textOffset=d?-.5:0;J.imageOffset=d?-.5:0;J.translate(Math.floor(e/c-C.x/B),Math.floor(e/c-C.y/B));var A=document.createElement("div"),D=J.getAlternateText;J.getAlternateText=function(a,c,e,b,d,g,f,k,l,n,v,q,y){if(null!=g&&0<this.state.fontSize)try{mxUtils.isNode(g)?
-g=g.innerText:(A.innerHTML=g,g=mxUtils.extractTextWithWhitespace(A.childNodes));for(var sa=Math.ceil(2*b/this.state.fontSize),Pa=[],oa=0,Qa=0;(0==sa||oa<sa)&&Qa<g.length;){var Ta=g.charCodeAt(Qa);if(10==Ta||13==Ta){if(0<oa)break}else Pa.push(g.charAt(Qa)),255>Ta&&oa++;Qa++}Pa.length<g.length&&1<g.length-Pa.length&&(g=mxUtils.trim(Pa.join(""))+"...");return g}catch(fb){return D.apply(this,arguments)}else return D.apply(this,arguments)};var N=this.backgroundImage;if(null!=N){c=B/c;var W=this.view.translate,
-qa=new mxRectangle((N.x+W.x)*c,(N.y+W.y)*c,N.width*c,N.height*c);mxUtils.intersects(C,qa)&&J.image(N.x+W.x,N.y+W.y,N.width,N.height,N.src,!0)}J.scale(a);J.textEnabled=f;k=null!=k?k:this.createSvgImageExport();var E=k.drawCellState,Q=k.getLinkForCellState;k.getLinkForCellState=function(a,c){var e=Q.apply(this,arguments);return null==e||a.view.graph.isCustomLink(e)?null:e};k.getLinkTargetForCellState=function(a,c){return a.view.graph.getLinkTargetForCell(a.cell)};k.drawCellState=function(a,c){for(var e=
+null;null!=a&&0<a.length&&(a=JSON.parse(a),c=new mxImage(a.src,a.width,a.height));return c};Graph.prototype.getBackgroundImageObject=function(a){return a};Graph.prototype.getSvg=function(a,c,e,b,d,g,f,k,l,n,v,q,t,u){var m=null;if(null!=u)for(m=new mxDictionary,v=0;v<u.length;v++)m.put(u[v],!0);if(u=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{c=null!=c?c:1;e=null!=e?e:0;d=null!=d?d:!0;g=null!=g?g:!0;f=null!=f?f:!0;var D="page"==t?this.view.getBackgroundPageBounds():
+g&&null==m||b||"diagram"==t?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),B=this.view.scale;"diagram"==t&&null!=this.backgroundImage&&D.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*B,(this.view.translate.y+this.backgroundImage.y)*B,this.backgroundImage.width*B,this.backgroundImage.height*B));if(null==D)throw Error(mxResources.get("drawingEmpty"));var x=mxUtils.createXmlDocument(),p=null!=x.createElementNS?x.createElementNS(mxConstants.NS_SVG,"svg"):x.createElement("svg");
+null!=a&&(null!=p.style?p.style.backgroundColor=a:p.setAttribute("style","background-color:"+a));null==x.createElementNS?(p.setAttribute("xmlns",mxConstants.NS_SVG),p.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):p.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=c/B;var z=Math.max(1,Math.ceil(D.width*a)+2*e)+(n?5:0),L=Math.max(1,Math.ceil(D.height*a)+2*e)+(n?5:0);p.setAttribute("version","1.1");p.setAttribute("width",z+"px");p.setAttribute("height",L+"px");
+p.setAttribute("viewBox",(d?"-0.5 -0.5":"0 0")+" "+z+" "+L);x.appendChild(p);var Y=null!=x.createElementNS?x.createElementNS(mxConstants.NS_SVG,"g"):x.createElement("g");p.appendChild(Y);var J=this.createSvgCanvas(Y);J.foOffset=d?-.5:0;J.textOffset=d?-.5:0;J.imageOffset=d?-.5:0;J.translate(Math.floor(e/c-D.x/B),Math.floor(e/c-D.y/B));var A=document.createElement("div"),C=J.getAlternateText;J.getAlternateText=function(a,c,e,b,d,g,f,k,l,n,v,q,y){if(null!=g&&0<this.state.fontSize)try{mxUtils.isNode(g)?
+g=g.innerText:(A.innerHTML=g,g=mxUtils.extractTextWithWhitespace(A.childNodes));for(var sa=Math.ceil(2*b/this.state.fontSize),Pa=[],oa=0,Qa=0;(0==sa||oa<sa)&&Qa<g.length;){var Ta=g.charCodeAt(Qa);if(10==Ta||13==Ta){if(0<oa)break}else Pa.push(g.charAt(Qa)),255>Ta&&oa++;Qa++}Pa.length<g.length&&1<g.length-Pa.length&&(g=mxUtils.trim(Pa.join(""))+"...");return g}catch(fb){return C.apply(this,arguments)}else return C.apply(this,arguments)};var N=this.backgroundImage;if(null!=N){c=B/c;var W=this.view.translate,
+qa=new mxRectangle((N.x+W.x)*c,(N.y+W.y)*c,N.width*c,N.height*c);mxUtils.intersects(D,qa)&&J.image(N.x+W.x,N.y+W.y,N.width,N.height,N.src,!0)}J.scale(a);J.textEnabled=f;k=null!=k?k:this.createSvgImageExport();var E=k.drawCellState,Q=k.getLinkForCellState;k.getLinkForCellState=function(a,c){var e=Q.apply(this,arguments);return null==e||a.view.graph.isCustomLink(e)?null:e};k.getLinkTargetForCellState=function(a,c){return a.view.graph.getLinkTargetForCell(a.cell)};k.drawCellState=function(a,c){for(var e=
a.view.graph,b=null!=m?m.get(a.cell):e.isCellSelected(a.cell),d=e.model.getParent(a.cell);!(g&&null==m||b)&&null!=d;)b=null!=m?m.get(d):e.isCellSelected(d),d=e.model.getParent(d);(g&&null==m||b)&&E.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),J);this.updateSvgLinks(p,l,!0);this.addForeignObjectWarning(J,p);return p}finally{u&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(a,c){if("0"!=urlParams["svg-warning"]&&
0<c.getElementsByTagName("foreignObject").length){var e=a.createElement("switch"),b=a.createElement("g");b.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var d=a.createElement("a");d.setAttribute("transform","translate(0,-5)");null==d.setAttributeNS||c.ownerDocument!=document&&null==document.documentMode?(d.setAttribute("xlink:href",Graph.foreignObjectWarningLink),d.setAttribute("target","_blank")):(d.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),
d.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var g=a.createElement("text");g.setAttribute("text-anchor","middle");g.setAttribute("font-size","10px");g.setAttribute("x","50%");g.setAttribute("y","100%");mxUtils.write(g,Graph.foreignObjectWarningText);e.appendChild(b);d.appendChild(g);e.appendChild(d);c.appendChild(e)}};Graph.prototype.updateSvgLinks=function(a,c,e){a=a.getElementsByTagName("a");for(var b=0;b<a.length;b++)if(null==a[b].getAttribute("target")){var d=a[b].getAttribute("href");
@@ -2594,17 +2594,17 @@ function(a){var c=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOL
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)};var K=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(a,c){K.apply(this,arguments);var e=this.graph.getCellStyle(a);if(null==e.childLayout){var b=this.graph.model.getParent(a),d=null!=b?this.graph.getCellGeometry(b):null;if(null!=d&&(e=this.graph.getCellStyle(b),"stackLayout"==e.childLayout)){var g=parseFloat(mxUtils.getValue(e,"stackBorder",mxStackLayout.prototype.border)),e="1"==mxUtils.getValue(e,"horizontalStack",
"1"),f=this.graph.getActualStartSize(b),d=d.clone();e?d.height=c.height+f.y+f.height+2*g:d.width=c.width+f.x+f.width+2*g;this.graph.model.setGeometry(b,d)}}};var F=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function a(a){e.get(a)||(e.put(a,!0),d.push(a))}for(var c=F.apply(this,arguments),e=new mxDictionary,b=this.graph.model,d=[],g=0;g<c.length;g++){var f=c[g];this.graph.isTableCell(f)?a(b.getParent(b.getParent(f))):
-this.graph.isTableRow(f)&&a(b.getParent(f));a(f)}return d};var I=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(a){var c=I.apply(this,arguments);c.stroke="#C0C0C0";c.strokewidth=1;return c};var D=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(a){var c=D.apply(this,arguments);c.stroke="#C0C0C0";c.strokewidth=1;return c};mxVertexHandler.prototype.rotationHandleVSpacing=
+this.graph.isTableRow(f)&&a(b.getParent(f));a(f)}return d};var I=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(a){var c=I.apply(this,arguments);c.stroke="#C0C0C0";c.strokewidth=1;return c};var C=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(a){var c=C.apply(this,arguments);c.stroke="#C0C0C0";c.strokewidth=1;return c};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.isRecursiveVertexResize(a)&&!mxEvent.isControlDown(c.getEvent())};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 M=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return M.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)&&!this.graph.isTable(this.state.cell)};mxVertexHandler.prototype.getSizerBounds=
-function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};var U=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return U.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var P=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=
-function(a){return a.tableHandle||P.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var a=0;this.graph.isTableRow(this.state.cell)?a=1:this.graph.isTableCell(this.state.cell)&&(a=2);return a};var N=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return N.apply(this,arguments).grow(-this.getSelectionBorderInset())};
+function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};var U=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return U.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var O=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=
+function(a){return a.tableHandle||O.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var a=0;this.graph.isTableRow(this.state.cell)?a=1:this.graph.isTableCell(this.state.cell)&&(a=2);return a};var N=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return N.apply(this,arguments).grow(-this.getSelectionBorderInset())};
var v=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=v.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var c=this.graph,e=c.model,b=this.state,d=this.selectionBorder,g=this;null==a&&(a=[]);var f=c.view.getCellStates(e.getChildCells(this.state.cell,!0));if(0<f.length){for(var k=c.view.getCellStates(e.getChildCells(f[0].cell,!0)),e=0;e<k.length;e++)mxUtils.bind(this,function(e){var f=k[e],l=e<k.length-1?k[e+1]:null,n=new mxLine(new mxRectangle,
mxConstants.NONE,1,!0);n.isDashed=d.isDashed;n.svgStrokeTolerance++;n=new mxHandle(f,"col-resize",null,n);n.tableHandle=!0;var v=0;n.shape.node.parentNode.insertBefore(n.shape.node,n.shape.node.parentNode.firstChild);n.redraw=function(){if(null!=this.shape&&null!=this.state.shape){var a=c.getActualStartSize(b.cell);this.shape.stroke=0==v?mxConstants.NONE:d.stroke;this.shape.bounds.x=this.state.x+this.state.width+v*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=b.y+(e==k.length-
1?0:a.y*this.graph.view.scale);this.shape.bounds.height=b.height-(e==k.length-1?0:(a.height+a.y)*this.graph.view.scale);this.shape.redraw()}};var q=!1;n.setPosition=function(a,e,b){v=Math.max(Graph.minTableColumnWidth-a.width,e.x-a.x-a.width);q=mxEvent.isShiftDown(b.getEvent());null==l||q||(v=Math.min((l.x+l.width-f.x-f.width)/c.view.scale-Graph.minTableColumnWidth,v))};n.execute=function(a){if(0!=v)c.setTableColumnWidth(this.state.cell,v,q);else if(!g.blockDelayedSelection){var e=c.getCellAt(a.getGraphX(),
a.getGraphY())||b.cell;c.graphHandler.selectCellForEvent(e,a)}v=0};n.reset=function(){v=0};a.push(n)})(e);for(e=0;e<f.length;e++)mxUtils.bind(this,function(e){e=f[e];var k=new mxLine(new mxRectangle,mxConstants.NONE,1);k.isDashed=d.isDashed;k.svgStrokeTolerance++;e=new mxHandle(e,"row-resize",null,k);e.tableHandle=!0;var l=0;e.shape.node.parentNode.insertBefore(e.shape.node,e.shape.node.parentNode.firstChild);e.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==l?mxConstants.NONE:
d.stroke,this.shape.bounds.x=this.state.x,this.shape.bounds.width=this.state.width,this.shape.bounds.y=this.state.y+this.state.height+l*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())};e.setPosition=function(a,c,e){l=Math.max(Graph.minTableRowHeight-a.height,c.y-a.y-a.height)};e.execute=function(a){if(0!=l)c.setTableRowHeight(this.state.cell,l,!mxEvent.isShiftDown(a.getEvent()));else if(!g.blockDelayedSelection){var e=c.getCellAt(a.getGraphX(),a.getGraphY())||b.cell;c.graphHandler.selectCellForEvent(e,
-a)}l=0};e.reset=function(){l=0};a.push(e)})(e)}}return null!=a?a.reverse():null};var C=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){C.apply(this,arguments);if(null!=this.moveHandles)for(var c=0;c<this.moveHandles.length;c++)this.moveHandles[c].style.visibility=a?"":"hidden";if(null!=this.cornerHandles)for(c=0;c<this.cornerHandles.length;c++)this.cornerHandles[c].node.style.visibility=a?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=
+a)}l=0};e.reset=function(){l=0};a.push(e)})(e)}}return null!=a?a.reverse():null};var D=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){D.apply(this,arguments);if(null!=this.moveHandles)for(var c=0;c<this.moveHandles.length;c++)this.moveHandles[c].style.visibility=a?"":"hidden";if(null!=this.cornerHandles)for(c=0;c<this.cornerHandles.length;c++)this.cornerHandles[c].node.style.visibility=a?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=
function(){var a=this.graph.model;if(null!=this.moveHandles){for(var c=0;c<this.moveHandles.length;c++)this.moveHandles[c].parentNode.removeChild(this.moveHandles[c]);this.moveHandles=null}this.moveHandles=[];for(c=0;c<a.getChildCount(this.state.cell);c++)mxUtils.bind(this,function(c){if(null!=c&&a.isVertex(c.cell)){var e=mxUtils.createImage(Editor.rowMoveImage);e.style.position="absolute";e.style.cursor="pointer";e.style.width="7px";e.style.height="4px";e.style.padding="4px 2px 4px 2px";e.rowState=
c;mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(a)&&this.graph.isCellSelected(c.cell)||this.graph.selectCellForEvent(c.cell,a);mxEvent.isPopupTrigger(a)||(this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0);
mxEvent.consume(a)}),null,mxUtils.bind(this,function(a){mxEvent.isPopupTrigger(a)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(a),mxEvent.getClientY(a),c.cell,a),mxEvent.consume(a))}));this.moveHandles.push(e);this.graph.container.appendChild(e)}})(this.graph.view.getState(a.getChildAt(this.state.cell,c)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var a=0;a<this.customHandles.length;a++)this.customHandles[a].destroy();this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&
@@ -2638,7 +2638,7 @@ mxConstants.HANDLE_STROKECOLOR)};var la=mxVertexHandler.prototype.createSizerSha
if(c.isEdge(e)&&null!=b&&b.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 V.apply(this,arguments)};var ca=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=ca.apply(this,arguments),c=[],e=0;e<a.length;e++)"1"!=mxUtils.getValue(a[e].style,"part","0")&&c.push(a[e]);return c};var ma=mxVertexHandler.prototype.getSelectionBounds;
mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),e=c.getParent(a.cell),b=this.graph.getCellGeometry(a.cell);return c.isEdge(e)&&null!=b&&b.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))):ma.apply(this,arguments)};var T=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,
c){var e=this.graph.getModel(),b=e.getParent(this.state.cell),d=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!e.isEdge(b)||null==d||!d.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&T.apply(this,arguments)};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 O=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,c){O.apply(this,arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&
+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 P=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,c){P.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 ta=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){ta.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=
"");this.blockDelayedSelection=null};var X=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){X.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));if(this.graph.isTable(this.state.cell))this.refreshMoveHandles();else if(1==this.graph.getSelectionCount()&&(this.graph.isTableCell(this.state.cell)||this.graph.isTableRow(this.state.cell))){this.cornerHandles=[];for(var c=0;4>c;c++){var e=new mxRectangleShape(new mxRectangle(0,
0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);e.dialect=mxConstants.DIALECT_SVG;e.init(this.graph.view.getOverlayPane());this.cornerHandles.push(e)}}var b=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,c){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));
@@ -2659,8 +2659,8 @@ function(){if(null!=this.marker&&(ka.apply(this),null!=this.state&&null!=this.li
null!=this.linkHint&&(this.linkHint.style.visibility="")};var ja=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){ja.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(){mxSwimlane.call(this)}function b(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function k(){mxActor.call(this)}function f(){mxCylinder.call(this)}function m(){mxCylinder.call(this)}function p(){mxCylinder.call(this)}function c(){mxCylinder.call(this)}function e(){mxShape.call(this)}function g(){mxShape.call(this)}function n(a,c,e,b){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=e;this.strokewidth=null!=b?b:1}function l(){mxActor.call(this)}function q(){mxCylinder.call(this)}
function u(){mxCylinder.call(this)}function t(){mxActor.call(this)}function A(){mxActor.call(this)}function x(){mxActor.call(this)}function G(){mxActor.call(this)}function z(){mxActor.call(this)}function E(){mxActor.call(this)}function H(){mxActor.call(this)}function K(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,K.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
this.canvas.moveTo=mxUtils.bind(this,K.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,K.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,K.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,K.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,K.prototype.arcTo)}function F(){mxRectangleShape.call(this)}function I(){mxRectangleShape.call(this)}
-function D(){mxActor.call(this)}function M(){mxActor.call(this)}function U(){mxActor.call(this)}function P(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function v(){mxCylinder.call(this)}function C(){mxShape.call(this)}function B(){mxShape.call(this)}function J(){mxEllipse.call(this)}function L(){mxShape.call(this)}function W(){mxShape.call(this)}function Q(){mxRectangleShape.call(this)}function aa(){mxShape.call(this)}function na(){mxShape.call(this)}function ga(){mxShape.call(this)}
-function ea(){mxShape.call(this)}function la(){mxShape.call(this)}function V(){mxCylinder.call(this)}function ca(){mxCylinder.call(this)}function ma(){mxRectangleShape.call(this)}function T(){mxDoubleEllipse.call(this)}function O(){mxDoubleEllipse.call(this)}function ta(){mxArrowConnector.call(this);this.spacing=0}function X(){mxArrowConnector.call(this);this.spacing=0}function da(){mxActor.call(this)}function ia(){mxRectangleShape.call(this)}function pa(){mxActor.call(this)}function R(){mxActor.call(this)}
+function C(){mxActor.call(this)}function M(){mxActor.call(this)}function U(){mxActor.call(this)}function O(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function v(){mxCylinder.call(this)}function D(){mxShape.call(this)}function B(){mxShape.call(this)}function J(){mxEllipse.call(this)}function L(){mxShape.call(this)}function W(){mxShape.call(this)}function Q(){mxRectangleShape.call(this)}function aa(){mxShape.call(this)}function na(){mxShape.call(this)}function ga(){mxShape.call(this)}
+function ea(){mxShape.call(this)}function la(){mxShape.call(this)}function V(){mxCylinder.call(this)}function ca(){mxCylinder.call(this)}function ma(){mxRectangleShape.call(this)}function T(){mxDoubleEllipse.call(this)}function P(){mxDoubleEllipse.call(this)}function ta(){mxArrowConnector.call(this);this.spacing=0}function X(){mxArrowConnector.call(this);this.spacing=0}function da(){mxActor.call(this)}function ia(){mxRectangleShape.call(this)}function pa(){mxActor.call(this)}function R(){mxActor.call(this)}
function ka(){mxActor.call(this)}function ba(){mxActor.call(this)}function ja(){mxActor.call(this)}function Y(){mxActor.call(this)}function qa(){mxActor.call(this)}function va(){mxActor.call(this)}function ua(){mxActor.call(this)}function ra(){mxActor.call(this)}function ya(){mxEllipse.call(this)}function za(){mxEllipse.call(this)}function S(){mxEllipse.call(this)}function Aa(){mxRhombus.call(this)}function ha(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function wa(){mxEllipse.call(this)}
function Da(){mxEllipse.call(this)}function Ca(){mxActor.call(this)}function xa(){mxActor.call(this)}function Fa(){mxActor.call(this)}function Z(a,c,e,b){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=e;this.strokewidth=null!=b?b:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Ha(){mxConnector.call(this)}function Ua(a,c,e,b,d,g,f,k,l,n){f+=l;var y=b.clone();b.x-=d*(2*f+l);b.y-=g*(2*f+l);d*=f+l;g*=f+l;return function(){a.ellipse(y.x-
d-f,y.y-g-f,2*f,2*f);n?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxSwimlane);a.prototype.getLabelBounds=function(a){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};a.prototype.paintVertexShape=function(a,c,e,b,d){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),a.translate(-c,-e));this.paintForeground(a,
@@ -2707,18 +2707,18 @@ null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),thi
e+d),a.lineTo(c+y,e+d),a.quadTo(c,e+d,c,e+d-y),a.lineTo(c,e+y),a.quadTo(c,e,c+y,e)):(a.moveTo(c,e),a.lineTo(c+b,e),a.lineTo(c+b,e+d),a.lineTo(c,e+d),a.lineTo(c,e)),a.close(),a.end(),a.fillAndStroke()}};mxUtils.extend(F,mxRectangleShape);F.prototype.size=.1;F.prototype.fixedSize=!1;F.prototype.isHtmlAllowed=function(){return!1};F.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 c=a.width,e=a.height;a=new mxRectangle(a.x,a.y,c,e);var b=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,b=Math.max(b,Math.min(c*d,e*d));a.x+=Math.round(b);a.width-=Math.round(2*b)}return a};F.prototype.paintForeground=function(a,c,e,b,d){var y=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),
g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=y?Math.max(0,Math.min(b,g)):b*Math.max(0,Math.min(1,g));this.isRounded&&(y=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(b*y,d*y)));g=Math.round(g);a.begin();a.moveTo(c+g,e);a.lineTo(c+g,e+d);a.moveTo(c+b-g,e);a.lineTo(c+b-g,e+d);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",F);mxCellRenderer.registerShape("process2",
-F);mxUtils.extend(I,mxRectangleShape);I.prototype.paintBackground=function(a,c,e,b,d){a.setFillColor(mxConstants.NONE);a.rect(c,e,b,d);a.fill()};I.prototype.paintForeground=function(a,c,e,b,d){};mxCellRenderer.registerShape("transparent",I);mxUtils.extend(D,mxHexagon);D.prototype.size=30;D.prototype.position=.5;D.prototype.position2=.5;D.prototype.base=20;D.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};D.prototype.isRoundable=
-function(){return!0};D.prototype.redrawPath=function(a,c,e,b,d){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;e=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var y=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"base",this.base))));
-this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,d-e),new mxPoint(Math.min(b,y+f),d-e),new mxPoint(g,d),new mxPoint(Math.max(0,y),d-e),new mxPoint(0,d-e)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",D);mxUtils.extend(M,mxActor);M.prototype.size=.2;M.prototype.fixedSize=20;M.prototype.isRoundable=function(){return!0};M.prototype.redrawPath=function(a,c,e,b,d){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,
+F);mxUtils.extend(I,mxRectangleShape);I.prototype.paintBackground=function(a,c,e,b,d){a.setFillColor(mxConstants.NONE);a.rect(c,e,b,d);a.fill()};I.prototype.paintForeground=function(a,c,e,b,d){};mxCellRenderer.registerShape("transparent",I);mxUtils.extend(C,mxHexagon);C.prototype.size=30;C.prototype.position=.5;C.prototype.position2=.5;C.prototype.base=20;C.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};C.prototype.isRoundable=
+function(){return!0};C.prototype.redrawPath=function(a,c,e,b,d){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;e=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var y=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"base",this.base))));
+this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,d-e),new mxPoint(Math.min(b,y+f),d-e),new mxPoint(g,d),new mxPoint(Math.max(0,y),d-e),new mxPoint(0,d-e)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",C);mxUtils.extend(M,mxActor);M.prototype.size=.2;M.prototype.fixedSize=20;M.prototype.isRoundable=function(){return!0};M.prototype.redrawPath=function(a,c,e,b,d){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,
"size",this.fixedSize)))):b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b-c,0),new mxPoint(b,d/2),new mxPoint(b-c,d),new mxPoint(0,d),new mxPoint(c,d/2)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("step",M);mxUtils.extend(U,mxHexagon);U.prototype.size=.25;U.prototype.fixedSize=20;U.prototype.isRoundable=function(){return!0};
U.prototype.redrawPath=function(a,c,e,b,d){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*b,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(b-c,0),new mxPoint(b,.5*d),new mxPoint(b-c,d),new mxPoint(c,d),new mxPoint(0,.5*d)],this.isRounded,e,
-!0)};mxCellRenderer.registerShape("hexagon",U);mxUtils.extend(P,mxRectangleShape);P.prototype.isHtmlAllowed=function(){return!1};P.prototype.paintForeground=function(a,c,e,b,d){var g=Math.min(b/5,d/5)+1;a.begin();a.moveTo(c+b/2,e+g);a.lineTo(c+b/2,e+d-g);a.moveTo(c+g,e+d/2);a.lineTo(c+b-g,e+d/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",P);var Xa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==
+!0)};mxCellRenderer.registerShape("hexagon",U);mxUtils.extend(O,mxRectangleShape);O.prototype.isHtmlAllowed=function(){return!1};O.prototype.paintForeground=function(a,c,e,b,d){var g=Math.min(b/5,d/5)+1;a.begin();a.moveTo(c+b/2,e+g);a.lineTo(c+b/2,e+d-g);a.moveTo(c+g,e+d/2);a.lineTo(c+b-g,e+d/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",O);var Xa=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,e,b,d){Xa.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);c+=g;e+=g;b-=2*g;d-=2*g;0<b&&0<d&&(a.setShadow(!1),Xa.apply(this,[a,c,e,b,d]))}};mxUtils.extend(N,
mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.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};N.prototype.paintForeground=function(a,c,e,b,d){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);c+=g;e+=g;b-=2*g;d-=2*g;0<b&&0<d&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var g=0,y;do{y=mxCellRenderer.defaultShapes[this.style["symbol"+g]];if(null!=y){var f=this.style["symbol"+g+"Align"],k=this.style["symbol"+g+"VerticalAlign"],l=this.style["symbol"+g+"Width"],n=this.style["symbol"+g+"Height"],v=this.style["symbol"+g+"Spacing"]||0,q=this.style["symbol"+g+"VSpacing"]||v,sa=this.style["symbol"+g+"ArcSpacing"];null!=sa&&(sa*=this.getArcSize(b+this.strokewidth,
d+this.strokewidth),v+=sa,q+=sa);var sa=c,oa=e,sa=f==mxConstants.ALIGN_CENTER?sa+(b-l)/2:f==mxConstants.ALIGN_RIGHT?sa+(b-l-v):sa+v,oa=k==mxConstants.ALIGN_MIDDLE?oa+(d-n)/2:k==mxConstants.ALIGN_BOTTOM?oa+(d-n-q):oa+q;a.save();f=new y;f.style=this.style;y.prototype.paintVertexShape.call(f,a,sa,oa,l,n);a.restore()}g++}while(null!=y)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(v,mxCylinder);v.prototype.redrawPath=function(a,
-c,e,b,d,g){g?(a.moveTo(0,0),a.lineTo(b/2,d/2),a.lineTo(b,0),a.end()):(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,d),a.lineTo(0,d),a.close())};mxCellRenderer.registerShape("message",v);mxUtils.extend(C,mxShape);C.prototype.paintBackground=function(a,c,e,b,d){a.translate(c,e);a.ellipse(b/4,0,b/2,d/4);a.fillAndStroke();a.begin();a.moveTo(b/2,d/4);a.lineTo(b/2,2*d/3);a.moveTo(b/2,d/3);a.lineTo(0,d/3);a.moveTo(b/2,d/3);a.lineTo(b,d/3);a.moveTo(b/2,2*d/3);a.lineTo(0,d);a.moveTo(b/2,2*d/3);a.lineTo(b,d);a.end();
-a.stroke()};mxCellRenderer.registerShape("umlActor",C);mxUtils.extend(B,mxShape);B.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};B.prototype.paintBackground=function(a,c,e,b,d){a.translate(c,e);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(b/6,d/2);a.end();a.stroke();a.ellipse(b/6,0,5*b/6,d);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",B);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(a,
+c,e,b,d,g){g?(a.moveTo(0,0),a.lineTo(b/2,d/2),a.lineTo(b,0),a.end()):(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,d),a.lineTo(0,d),a.close())};mxCellRenderer.registerShape("message",v);mxUtils.extend(D,mxShape);D.prototype.paintBackground=function(a,c,e,b,d){a.translate(c,e);a.ellipse(b/4,0,b/2,d/4);a.fillAndStroke();a.begin();a.moveTo(b/2,d/4);a.lineTo(b/2,2*d/3);a.moveTo(b/2,d/3);a.lineTo(0,d/3);a.moveTo(b/2,d/3);a.lineTo(b,d/3);a.moveTo(b/2,2*d/3);a.lineTo(0,d);a.moveTo(b/2,2*d/3);a.lineTo(b,d);a.end();
+a.stroke()};mxCellRenderer.registerShape("umlActor",D);mxUtils.extend(B,mxShape);B.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};B.prototype.paintBackground=function(a,c,e,b,d){a.translate(c,e);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(b/6,d/2);a.end();a.stroke();a.ellipse(b/6,0,5*b/6,d);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",B);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(a,
c,e,b,d){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+b/8,e+d);a.lineTo(c+7*b/8,e+d);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(L,mxShape);L.prototype.paintVertexShape=function(a,c,e,b,d){a.translate(c,e);a.begin();a.moveTo(b,0);a.lineTo(0,d);a.moveTo(0,0);a.lineTo(b,d);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",L);mxUtils.extend(W,mxShape);W.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+
a.height/8,a.width,7*a.height/8)};W.prototype.paintBackground=function(a,c,e,b,d){a.translate(c,e);a.begin();a.moveTo(3*b/8,d/8*1.1);a.lineTo(5*b/8,0);a.end();a.stroke();a.ellipse(0,d/8,b,7*d/8);a.fillAndStroke()};W.prototype.paintForeground=function(a,c,e,b,d){a.begin();a.moveTo(3*b/8,d/8*1.1);a.lineTo(5*b/8,d/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",W);mxUtils.extend(Q,mxRectangleShape);Q.prototype.size=40;Q.prototype.isHtmlAllowed=function(){return!1};Q.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)};Q.prototype.paintBackground=function(a,c,e,b,d){var g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),y=mxUtils.getValue(this.style,"participant");null==y||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,c,e,b,g):(y=this.state.view.graph.cellRenderer.getShape(y),null!=y&&y!=Q&&(y=new y,
@@ -2728,7 +2728,7 @@ aa.prototype.width=60;aa.prototype.height=30;aa.prototype.corner=10;aa.prototype
g),e+f);a.lineTo(c,e+f);a.close();a.fillAndStroke();a.begin();a.moveTo(c+y,e);a.lineTo(c+b,e);a.lineTo(c+b,e+d);a.lineTo(c,e+d);a.lineTo(c,e+f);a.stroke()};mxCellRenderer.registerShape("umlFrame",aa);mxPerimeter.CenterPerimeter=function(a,c,e,b){return new mxPoint(a.getCenterX(),a.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(a,c,e,b){b=Q.prototype.size;null!=c&&(b=mxUtils.getValue(c.style,"size",b)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||
1)*c.view.scale/2-1;e.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+c,Math.min(a.y+a.height,Math.max(a.y+b,e.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,c,e,b){b=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,e,b){b=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||
1)*c.view.scale/2-1;null!=c.style.backboneSize&&(b+=parseFloat(c.style.backboneSize)*c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return e.x<a.getCenterX()&&(b=-1*(b+1)),new mxPoint(a.getCenterX()+b,Math.min(a.y+a.height,Math.max(a.y,e.y)));e.y<a.getCenterY()&&(b=-1*(b+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,e.x)),a.getCenterY()+b)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=
-function(a,c,e,b){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",D.prototype.size))*c.view.scale))),c.style),c,e,b)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,e,b){var d="0"!=mxUtils.getValue(c.style,"fixedSize","0"),g=d?G.prototype.fixedSize:G.prototype.size;null!=c&&(g=mxUtils.getValue(c.style,"size",g));
+function(a,c,e,b){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",C.prototype.size))*c.view.scale))),c.style),c,e,b)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,e,b){var d="0"!=mxUtils.getValue(c.style,"fixedSize","0"),g=d?G.prototype.fixedSize:G.prototype.size;null!=c&&(g=mxUtils.getValue(c.style,"size",g));
d&&(g*=c.view.scale);var f=a.x,y=a.y,k=a.width,l=a.height;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=d?Math.max(0,Math.min(l,g)):l*Math.max(0,Math.min(1,g)),y=[new mxPoint(f,y),new mxPoint(f+k,y+d),new mxPoint(f+k,y+l),new mxPoint(f,y+l-d),new mxPoint(f,y)]):(d=d?Math.max(0,Math.min(.5*k,g)):k*Math.max(0,Math.min(1,g)),y=[new mxPoint(f+d,y),new mxPoint(f+k,y),
new mxPoint(f+k-d,y+l),new mxPoint(f,y+l),new mxPoint(f+d,y)]);l=a.getCenterX();a=a.getCenterY();a=new mxPoint(l,a);b&&(e.x<f||e.x>f+k?a.y=e.y:a.x=e.x);return mxUtils.getPerimeterPoint(y,a,e)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,c,e,b){var d="0"!=mxUtils.getValue(c.style,"fixedSize","0"),g=d?z.prototype.fixedSize:z.prototype.size;null!=c&&(g=mxUtils.getValue(c.style,"size",g));d&&(g*=c.view.scale);var f=a.x,
y=a.y,k=a.width,l=a.height;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(.5*k,g)):k*Math.max(0,Math.min(1,g)),y=[new mxPoint(f+d,y),new mxPoint(f+k-d,y),new mxPoint(f+k,y+l),new mxPoint(f,y+l),new mxPoint(f+d,y)]):c==mxConstants.DIRECTION_WEST?(d=d?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),y=[new mxPoint(f,y),new mxPoint(f+k,y),new mxPoint(f+k-d,y+l),new mxPoint(f+
@@ -2745,7 +2745,7 @@ a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",ea);mxUtils
k),a.lineTo(e,k),a.lineTo(e,y+c),a.lineTo(0,y+c),a.lineTo(0,y),a.lineTo(e,y),a.close());a.end()};mxCellRenderer.registerShape("module",V);mxUtils.extend(ca,mxCylinder);ca.prototype.jettyWidth=32;ca.prototype.jettyHeight=12;ca.prototype.redrawPath=function(a,c,e,b,d,g){var f=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));e=f/2;var f=e+f/2,y=.3*d-c/2,k=.7*d-c/2;g?(a.moveTo(e,y),a.lineTo(f,y),a.lineTo(f,
y+c),a.lineTo(e,y+c),a.moveTo(e,k),a.lineTo(f,k),a.lineTo(f,k+c),a.lineTo(e,k+c)):(a.moveTo(e,0),a.lineTo(b,0),a.lineTo(b,d),a.lineTo(e,d),a.lineTo(e,k+c),a.lineTo(0,k+c),a.lineTo(0,k),a.lineTo(e,k),a.lineTo(e,y+c),a.lineTo(0,y+c),a.lineTo(0,y),a.lineTo(e,y),a.close());a.end()};mxCellRenderer.registerShape("component",ca);mxUtils.extend(ma,mxRectangleShape);ma.prototype.paintForeground=function(a,c,e,b,d){var g=b/2,f=d/2,y=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
2;a.begin();this.addPoints(a,[new mxPoint(c+g,e),new mxPoint(c+b,e+f),new mxPoint(c+g,e+d),new mxPoint(c,e+f)],this.isRounded,y,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ma);mxUtils.extend(T,mxDoubleEllipse);T.prototype.outerStroke=!0;T.prototype.paintVertexShape=function(a,c,e,b,d){var g=Math.min(4,Math.min(b/5,d/5));0<b&&0<d&&(a.ellipse(c+g,e+g,b-2*g,d-2*g),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&
-(a.ellipse(c,e,b,d),a.stroke())};mxCellRenderer.registerShape("endState",T);mxUtils.extend(O,T);O.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",O);mxUtils.extend(ta,mxArrowConnector);ta.prototype.defaultWidth=4;ta.prototype.isOpenEnded=function(){return!0};ta.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};ta.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
+(a.ellipse(c,e,b,d),a.stroke())};mxCellRenderer.registerShape("endState",T);mxUtils.extend(P,T);P.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",P);mxUtils.extend(ta,mxArrowConnector);ta.prototype.defaultWidth=4;ta.prototype.isOpenEnded=function(){return!0};ta.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};ta.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
ta);mxUtils.extend(X,mxArrowConnector);X.prototype.defaultWidth=10;X.prototype.defaultArrowWidth=20;X.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};X.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};X.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",
X);mxUtils.extend(da,mxActor);da.prototype.size=30;da.prototype.isRoundable=function(){return!0};da.prototype.redrawPath=function(a,c,e,b,d){c=Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)));e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,d),new mxPoint(0,c),new mxPoint(b,0),new mxPoint(b,d)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("manualInput",da);mxUtils.extend(ia,mxRectangleShape);ia.prototype.dx=
20;ia.prototype.dy=20;ia.prototype.isHtmlAllowed=function(){return!1};ia.prototype.paintForeground=function(a,c,e,b,d){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(b*f,d*f));f=Math.max(g,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));g=Math.max(g,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));
@@ -2773,33 +2773,33 @@ defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",
type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},
{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]}];Z.prototype.paintVertexShape=function(a,c,e,b,d){a.translate(c,e);this.strictDrawShape(a,0,0,b,d)};Z.prototype.strictDrawShape=function(a,c,e,b,d,g){var f=g&&g.rectStyle?g.rectStyle:
mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=g&&g.absoluteCornerSize?g.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),l=g&&g.size?g.size:Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),n=g&&g.rectOutline?g.rectOutline:mxUtils.getValue(this.style,"rectOutline",this.rectOutline),v=g&&g.indent?g.indent:Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),y=g&&g.dashed?g.dashed:
-mxUtils.getValue(this.style,"dashed",!1),q=g&&g.dashPattern?g.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),t=g&&g.relIndent?g.relIndent:Math.max(0,Math.min(50,v)),u=g&&g.top?g.top:mxUtils.getValue(this.style,"top",!0),m=g&&g.right?g.right:mxUtils.getValue(this.style,"right",!0),C=g&&g.bottom?g.bottom:mxUtils.getValue(this.style,"bottom",!0),B=g&&g.left?g.left:mxUtils.getValue(this.style,"left",!0),x=g&&g.topLeftStyle?g.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),
+mxUtils.getValue(this.style,"dashed",!1),q=g&&g.dashPattern?g.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),t=g&&g.relIndent?g.relIndent:Math.max(0,Math.min(50,v)),u=g&&g.top?g.top:mxUtils.getValue(this.style,"top",!0),m=g&&g.right?g.right:mxUtils.getValue(this.style,"right",!0),D=g&&g.bottom?g.bottom:mxUtils.getValue(this.style,"bottom",!0),B=g&&g.left?g.left:mxUtils.getValue(this.style,"left",!0),x=g&&g.topLeftStyle?g.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),
p=g&&g.topRightStyle?g.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),z=g&&g.bottomRightStyle?g.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),L=g&&g.bottomLeftStyle?g.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),J=g&&g.fillColor?g.fillColor:mxUtils.getValue(this.style,"fillColor","#ffffff");g&&g.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var A=g&&g.strokeWidth?g.strokeWidth:mxUtils.getValue(this.style,
-"strokeWidth","1"),D=g&&g.fillColor2?g.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),oa=g&&g.gradientColor2?g.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),N=g&&g.gradientDirection2?g.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),sa=g&&g.opacity?g.opacity:mxUtils.getValue(this.style,"opacity","100"),W=Math.max(0,Math.min(50,l));g=Z.prototype;a.setDashed(y);q&&""!=q&&a.setDashPattern(q);a.setStrokeWidth(A);l=Math.min(.5*d,.5*b,l);k||
-(l=W*Math.min(b,d)/100);l=Math.min(l,.5*Math.min(b,d));k||(v=Math.min(t*Math.min(b,d)/100));v=Math.min(v,.5*Math.min(b,d)-l);(u||m||C||B)&&"frame"!=n&&(a.begin(),u?g.moveNW(a,c,e,b,d,f,x,l,B):a.moveTo(0,0),u&&g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),m&&g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),C&&g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),B&&g.paintSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(D),
-y=k=sa,"none"==D&&(k=0),"none"==oa&&(y=0),a.setGradient(D,oa,0,0,b,d,N,k,y),a.begin(),u?g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B):a.moveTo(v,0),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),B&&C&&g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),C&&m&&g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),m&&u&&g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),u&&B&&g.paintNWInner(a,c,e,b,d,f,x,l,v),a.fill(),"none"==J&&(a.begin(),g.paintFolds(a,
-c,e,b,d,f,x,p,z,L,l,u,m,C,B),a.stroke()));u||m||C||!B?u||m||!C||B?!u&&!m&&C&&B?"frame"!=n?(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),"double"==n&&(g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C)),a.stroke()):(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,
-C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.lineNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),a.close(),a.fillAndStroke()):u||!m||C||B?!u&&m&&!C&&B?"frame"!=n?(a.begin(),g.moveSW(a,c,e,b,d,f,x,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),"double"==n&&(g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B)),a.stroke(),a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),"double"==
-n&&(g.moveSEInner(a,c,e,b,d,f,z,l,v,C),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m)),a.stroke()):(a.begin(),g.moveSW(a,c,e,b,d,f,x,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.lineNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),a.close(),a.fillAndStroke(),a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.lineSEInner(a,c,e,b,d,f,z,l,v,C),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),a.close(),a.fillAndStroke()):!u&&m&&C&&!B?"frame"!=n?(a.begin(),g.moveNE(a,c,e,b,d,f,p,
-l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m)),a.stroke()):(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.lineSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),g.paintSEInner(a,
-c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),a.close(),a.fillAndStroke()):!u&&m&&C&&B?"frame"!=n?(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),"double"==n&&(g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),g.paintSEInner(a,c,e,b,d,f,z,
-l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m)),a.stroke()):(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.lineNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),a.close(),a.fillAndStroke()):
-!u||m||C||B?u&&!m&&!C&&B?"frame"!=n?(a.begin(),g.moveSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),"double"==n&&(g.moveNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B)),a.stroke()):(a.begin(),g.moveSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.lineNEInner(a,c,e,b,d,f,p,l,v,
-m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),a.close(),a.fillAndStroke()):u&&!m&&C&&!B?"frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),"double"==n&&(g.moveNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u)),a.stroke(),a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C)),
-a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.lineNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),a.close(),a.fillAndStroke(),a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.lineSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),a.close(),a.fillAndStroke()):u&&!m&&C&&B?"frame"!=n?(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,
-b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),"double"==n&&(g.moveNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C)),a.stroke()):(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,
-e,b,d,f,p,l,m),g.lineNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),a.close(),a.fillAndStroke()):u&&m&&!C&&!B?"frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),"double"==n&&(g.moveSEInner(a,c,e,b,d,f,z,l,v,C),g.paintRightInner(a,c,e,b,d,
-f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u)),a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.lineSEInner(a,c,e,b,d,f,z,l,v,C),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),a.close(),a.fillAndStroke()):u&&m&&!C&&B?"frame"!=n?(a.begin(),g.moveSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,
-c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),"double"==n&&(g.moveSEInner(a,c,e,b,d,f,z,l,v,C),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B)),a.stroke()):(a.begin(),g.moveSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,
-e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.lineSEInner(a,c,e,b,d,f,z,l,v,C),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),a.close(),a.fillAndStroke()):u&&m&&C&&!B?"frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,
-b,d,f,L,l,B),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u)),a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.lineSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,
-c,e,b,d,f,z,l,v,m,C),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),a.close(),a.fillAndStroke()):u&&m&&C&&B&&("frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),
-a.close(),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),a.close()),a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,
-p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),a.close(),g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,
-C,B),a.close(),a.fillAndStroke())):"frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),"double"==n&&(g.moveNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u)),a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.lineNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),a.close(),a.fillAndStroke()):"frame"!=n?(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),"double"==n&&(g.moveSEInner(a,c,
-e,b,d,f,z,l,v,C),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m)),a.stroke()):(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.lineSEInner(a,c,e,b,d,f,z,l,v,C),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),a.close(),a.fillAndStroke()):"frame"!=n?(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C)),a.stroke()):(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,
-l,B),g.lineSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),a.close(),a.fillAndStroke()):"frame"!=n?(a.begin(),g.moveSW(a,c,e,b,d,f,x,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),"double"==n&&(g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B)),a.stroke()):(a.begin(),g.moveSW(a,c,e,b,d,f,x,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.lineNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),a.close(),a.fillAndStroke());a.begin();g.paintFolds(a,c,e,
-b,d,f,x,p,z,L,l,u,m,C,B);a.stroke()};Z.prototype.moveNW=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.moveTo(0,0):a.moveTo(0,l)};Z.prototype.moveNE=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.moveTo(b,0):a.moveTo(b-l,0)};Z.prototype.moveSE=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.moveTo(b,d):a.moveTo(b,d-l)};Z.prototype.moveSW=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.moveTo(0,d):
+"strokeWidth","1"),C=g&&g.fillColor2?g.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),oa=g&&g.gradientColor2?g.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),N=g&&g.gradientDirection2?g.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),sa=g&&g.opacity?g.opacity:mxUtils.getValue(this.style,"opacity","100"),W=Math.max(0,Math.min(50,l));g=Z.prototype;a.setDashed(y);q&&""!=q&&a.setDashPattern(q);a.setStrokeWidth(A);l=Math.min(.5*d,.5*b,l);k||
+(l=W*Math.min(b,d)/100);l=Math.min(l,.5*Math.min(b,d));k||(v=Math.min(t*Math.min(b,d)/100));v=Math.min(v,.5*Math.min(b,d)-l);(u||m||D||B)&&"frame"!=n&&(a.begin(),u?g.moveNW(a,c,e,b,d,f,x,l,B):a.moveTo(0,0),u&&g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),m&&g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),D&&g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),B&&g.paintSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(C),
+y=k=sa,"none"==C&&(k=0),"none"==oa&&(y=0),a.setGradient(C,oa,0,0,b,d,N,k,y),a.begin(),u?g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B):a.moveTo(v,0),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),B&&D&&g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),D&&m&&g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),m&&u&&g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),u&&B&&g.paintNWInner(a,c,e,b,d,f,x,l,v),a.fill(),"none"==J&&(a.begin(),g.paintFolds(a,
+c,e,b,d,f,x,p,z,L,l,u,m,D,B),a.stroke()));u||m||D||!B?u||m||!D||B?!u&&!m&&D&&B?"frame"!=n?(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),"double"==n&&(g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D)),a.stroke()):(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,
+D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.lineNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),a.close(),a.fillAndStroke()):u||!m||D||B?!u&&m&&!D&&B?"frame"!=n?(a.begin(),g.moveSW(a,c,e,b,d,f,x,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),"double"==n&&(g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B)),a.stroke(),a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),"double"==
+n&&(g.moveSEInner(a,c,e,b,d,f,z,l,v,D),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m)),a.stroke()):(a.begin(),g.moveSW(a,c,e,b,d,f,x,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.lineNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),a.close(),a.fillAndStroke(),a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.lineSEInner(a,c,e,b,d,f,z,l,v,D),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),a.close(),a.fillAndStroke()):!u&&m&&D&&!B?"frame"!=n?(a.begin(),g.moveNE(a,c,e,b,d,f,p,
+l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m)),a.stroke()):(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.lineSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),g.paintSEInner(a,
+c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),a.close(),a.fillAndStroke()):!u&&m&&D&&B?"frame"!=n?(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),"double"==n&&(g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),g.paintSEInner(a,c,e,b,d,f,z,
+l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m)),a.stroke()):(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.lineNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),a.close(),a.fillAndStroke()):
+!u||m||D||B?u&&!m&&!D&&B?"frame"!=n?(a.begin(),g.moveSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),"double"==n&&(g.moveNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B)),a.stroke()):(a.begin(),g.moveSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.lineNEInner(a,c,e,b,d,f,p,l,v,
+m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),a.close(),a.fillAndStroke()):u&&!m&&D&&!B?"frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),"double"==n&&(g.moveNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u)),a.stroke(),a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D)),
+a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.lineNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),a.close(),a.fillAndStroke(),a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.lineSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),a.close(),a.fillAndStroke()):u&&!m&&D&&B?"frame"!=n?(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,
+b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),"double"==n&&(g.moveNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D)),a.stroke()):(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,
+e,b,d,f,p,l,m),g.lineNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),a.close(),a.fillAndStroke()):u&&m&&!D&&!B?"frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),"double"==n&&(g.moveSEInner(a,c,e,b,d,f,z,l,v,D),g.paintRightInner(a,c,e,b,d,
+f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u)),a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.lineSEInner(a,c,e,b,d,f,z,l,v,D),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),a.close(),a.fillAndStroke()):u&&m&&!D&&B?"frame"!=n?(a.begin(),g.moveSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,
+c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),"double"==n&&(g.moveSEInner(a,c,e,b,d,f,z,l,v,D),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B)),a.stroke()):(a.begin(),g.moveSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,
+e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.lineSEInner(a,c,e,b,d,f,z,l,v,D),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),a.close(),a.fillAndStroke()):u&&m&&D&&!B?"frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,
+b,d,f,L,l,B),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u)),a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.lineSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,
+c,e,b,d,f,z,l,v,m,D),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),a.close(),a.fillAndStroke()):u&&m&&D&&B&&("frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),
+a.close(),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),a.close()),a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,
+p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),a.close(),g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,
+D,B),a.close(),a.fillAndStroke())):"frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),"double"==n&&(g.moveNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u)),a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.lineNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),a.close(),a.fillAndStroke()):"frame"!=n?(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),"double"==n&&(g.moveSEInner(a,c,
+e,b,d,f,z,l,v,D),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m)),a.stroke()):(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.lineSEInner(a,c,e,b,d,f,z,l,v,D),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),a.close(),a.fillAndStroke()):"frame"!=n?(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D)),a.stroke()):(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,
+l,B),g.lineSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),a.close(),a.fillAndStroke()):"frame"!=n?(a.begin(),g.moveSW(a,c,e,b,d,f,x,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),"double"==n&&(g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B)),a.stroke()):(a.begin(),g.moveSW(a,c,e,b,d,f,x,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.lineNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),a.close(),a.fillAndStroke());a.begin();g.paintFolds(a,c,e,
+b,d,f,x,p,z,L,l,u,m,D,B);a.stroke()};Z.prototype.moveNW=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.moveTo(0,0):a.moveTo(0,l)};Z.prototype.moveNE=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.moveTo(b,0):a.moveTo(b-l,0)};Z.prototype.moveSE=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.moveTo(b,d):a.moveTo(b,d-l)};Z.prototype.moveSW=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.moveTo(0,d):
a.moveTo(l,d)};Z.prototype.paintNW=function(a,c,e,b,d,g,f,l,k){if(k)if("rounded"==f||"default"==f&&"rounded"==g||"invRound"==f||"default"==f&&"invRound"==g){c=0;if("rounded"==f||"default"==f&&"rounded"==g)c=1;a.arcTo(l,l,0,0,c,l,0)}else("snip"==f||"default"==f&&"snip"==g||"fold"==f||"default"==f&&"fold"==g)&&a.lineTo(l,0);else a.lineTo(0,0)};Z.prototype.paintTop=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.lineTo(b,0):a.lineTo(b-l,0)};Z.prototype.paintNE=function(a,c,e,
b,d,g,f,l,k){if(k)if("rounded"==f||"default"==f&&"rounded"==g||"invRound"==f||"default"==f&&"invRound"==g){c=0;if("rounded"==f||"default"==f&&"rounded"==g)c=1;a.arcTo(l,l,0,0,c,b,l)}else("snip"==f||"default"==f&&"snip"==g||"fold"==f||"default"==f&&"fold"==g)&&a.lineTo(b,l);else a.lineTo(b,0)};Z.prototype.paintRight=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.lineTo(b,d):a.lineTo(b,d-l)};Z.prototype.paintLeft=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==
g||!k?a.lineTo(0,0):a.lineTo(0,l)};Z.prototype.paintSE=function(a,c,e,b,d,g,f,l,k){if(k)if("rounded"==f||"default"==f&&"rounded"==g||"invRound"==f||"default"==f&&"invRound"==g){c=0;if("rounded"==f||"default"==f&&"rounded"==g)c=1;a.arcTo(l,l,0,0,c,b-l,d)}else("snip"==f||"default"==f&&"snip"==g||"fold"==f||"default"==f&&"fold"==g)&&a.lineTo(b-l,d);else a.lineTo(b,d)};Z.prototype.paintBottom=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.lineTo(0,d):a.lineTo(l,d)};Z.prototype.paintSW=
@@ -2814,8 +2814,8 @@ f&&"rounded"==g||"snip"==f||"default"==f&&"snip"==g?a.lineTo(k,d-l-.5*k):("invRo
k):a.moveTo(b-k,d)};Z.prototype.lineSEInner=function(a,c,e,b,d,g,f,l,k,v){v?"square"==f||"default"==f&&"square"==g?a.lineTo(b-k,d-k):"rounded"==f||"default"==f&&"rounded"==g||"snip"==f||"default"==f&&"snip"==g?a.lineTo(b-k,d-l-.5*k):("invRound"==f||"default"==f&&"invRound"==g||"fold"==f||"default"==f&&"fold"==g)&&a.lineTo(b-k,d-l-k):a.lineTo(b-k,d)};Z.prototype.moveNEInner=function(a,c,e,b,d,g,f,l,k,v){v?"square"==f||"default"==f&&"square"==g||v?a.moveTo(b-k,k):"rounded"==f||"default"==f&&"rounded"==
g||"snip"==f||"default"==f&&"snip"==g?a.moveTo(b-k,l+.5*k):("invRound"==f||"default"==f&&"invRound"==g||"fold"==f||"default"==f&&"fold"==g)&&a.moveTo(b-k,l+k):a.moveTo(b,k)};Z.prototype.lineNEInner=function(a,c,e,b,d,g,f,l,k,v){v?"square"==f||"default"==f&&"square"==g||v?a.lineTo(b-k,k):"rounded"==f||"default"==f&&"rounded"==g||"snip"==f||"default"==f&&"snip"==g?a.lineTo(b-k,l+.5*k):("invRound"==f||"default"==f&&"invRound"==g||"fold"==f||"default"==f&&"fold"==g)&&a.lineTo(b-k,l+k):a.lineTo(b,k)};
Z.prototype.moveNWInner=function(a,c,e,b,d,g,f,l,k,v,n){v||n?!v&&n?a.moveTo(k,0):v&&!n?a.moveTo(0,k):"square"==f||"default"==f&&"square"==g?a.moveTo(k,k):"rounded"==f||"default"==f&&"rounded"==g||"snip"==f||"default"==f&&"snip"==g?a.moveTo(k,l+.5*k):("invRound"==f||"default"==f&&"invRound"==g||"fold"==f||"default"==f&&"fold"==g)&&a.moveTo(k,l+k):a.moveTo(0,0)};Z.prototype.lineNWInner=function(a,c,e,b,d,g,f,l,k,v,n){v||n?!v&&n?a.lineTo(k,0):v&&!n?a.lineTo(0,k):"square"==f||"default"==f&&"square"==
-g?a.lineTo(k,k):"rounded"==f||"default"==f&&"rounded"==g||"snip"==f||"default"==f&&"snip"==g?a.lineTo(k,l+.5*k):("invRound"==f||"default"==f&&"invRound"==g||"fold"==f||"default"==f&&"fold"==g)&&a.lineTo(k,l+k):a.lineTo(0,0)};Z.prototype.paintFolds=function(a,c,e,b,d,g,f,l,k,v,n,q,u,m,C){if("fold"==g||"fold"==f||"fold"==l||"fold"==k||"fold"==v)("fold"==f||"default"==f&&"fold"==g)&&q&&C&&(a.moveTo(0,n),a.lineTo(n,n),a.lineTo(n,0)),("fold"==l||"default"==l&&"fold"==g)&&q&&u&&(a.moveTo(b-n,0),a.lineTo(b-
-n,n),a.lineTo(b,n)),("fold"==k||"default"==k&&"fold"==g)&&m&&u&&(a.moveTo(b-n,d),a.lineTo(b-n,d-n),a.lineTo(b,d-n)),("fold"==v||"default"==v&&"fold"==g)&&m&&C&&(a.moveTo(0,d-n),a.lineTo(n,d-n),a.lineTo(n,d))};mxCellRenderer.registerShape(Z.prototype.cst.RECT2,Z);Z.prototype.constraints=null;mxUtils.extend(Ha,mxConnector);Ha.prototype.origPaintEdgeShape=Ha.prototype.paintEdgeShape;Ha.prototype.paintEdgeShape=function(a,c,e){for(var b=[],d=0;d<c.length;d++)b.push(mxUtils.clone(c[d]));var d=a.state.dashed,
+g?a.lineTo(k,k):"rounded"==f||"default"==f&&"rounded"==g||"snip"==f||"default"==f&&"snip"==g?a.lineTo(k,l+.5*k):("invRound"==f||"default"==f&&"invRound"==g||"fold"==f||"default"==f&&"fold"==g)&&a.lineTo(k,l+k):a.lineTo(0,0)};Z.prototype.paintFolds=function(a,c,e,b,d,g,f,l,k,v,n,q,u,m,D){if("fold"==g||"fold"==f||"fold"==l||"fold"==k||"fold"==v)("fold"==f||"default"==f&&"fold"==g)&&q&&D&&(a.moveTo(0,n),a.lineTo(n,n),a.lineTo(n,0)),("fold"==l||"default"==l&&"fold"==g)&&q&&u&&(a.moveTo(b-n,0),a.lineTo(b-
+n,n),a.lineTo(b,n)),("fold"==k||"default"==k&&"fold"==g)&&m&&u&&(a.moveTo(b-n,d),a.lineTo(b-n,d-n),a.lineTo(b,d-n)),("fold"==v||"default"==v&&"fold"==g)&&m&&D&&(a.moveTo(0,d-n),a.lineTo(n,d-n),a.lineTo(n,d))};mxCellRenderer.registerShape(Z.prototype.cst.RECT2,Z);Z.prototype.constraints=null;mxUtils.extend(Ha,mxConnector);Ha.prototype.origPaintEdgeShape=Ha.prototype.paintEdgeShape;Ha.prototype.paintEdgeShape=function(a,c,e){for(var b=[],d=0;d<c.length;d++)b.push(mxUtils.clone(c[d]));var d=a.state.dashed,
g=a.state.fixDash;Ha.prototype.origPaintEdgeShape.apply(this,[a,b,e]);3<=a.state.strokeWidth&&(b=mxUtils.getValue(this.style,"fillColor",null),null!=b&&(a.setStrokeColor(b),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(d,g),Ha.prototype.origPaintEdgeShape.apply(this,[a,c,e])))};mxCellRenderer.registerShape("filledEdge",Ha);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c=this.format.getSelectionState(),
e=a.apply(this,arguments);"umlFrame"==c.style.shape&&e.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return e}}();mxMarker.addMarker("dash",function(a,c,e,b,d,g,f,l,k,v){var n=d*(f+k+1),q=g*(f+k+1);return function(){a.begin();a.moveTo(b.x-n/2-q/2,b.y-q/2+n/2);a.lineTo(b.x+q/2-3*n/2,b.y-3*q/2-n/2);a.stroke()}});mxMarker.addMarker("box",function(a,c,e,b,d,g,f,l,k,v){var n=d*(f+k+1),q=g*(f+k+1),u=b.x+n/2,y=b.y+q/2;b.x-=n;b.y-=q;return function(){a.begin();
a.moveTo(u-n/2-q/2,y-q/2+n/2);a.lineTo(u-n/2+q/2,y-q/2-n/2);a.lineTo(u+q/2-3*n/2,y-3*q/2-n/2);a.lineTo(u-q/2-3*n/2,y-3*q/2+n/2);a.close();v?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("cross",function(a,c,e,b,d,g,f,l,k,v){var n=d*(f+k+1),q=g*(f+k+1);return function(){a.begin();a.moveTo(b.x-n/2-q/2,b.y-q/2+n/2);a.lineTo(b.x+q/2-3*n/2,b.y-3*q/2-n/2);a.moveTo(b.x-n/2+q/2,b.y-q/2-n/2);a.lineTo(b.x-q/2-3*n/2,b.y-3*q/2+n/2);a.stroke()}});mxMarker.addMarker("circle",Ua);mxMarker.addMarker("circlePlus",
@@ -2848,9 +2848,9 @@ Math.round(Math.max(aa.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.s
Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-c.y)/e*2,Math.max(0,a.getCenterX()-c.x)/e*2)))})]},note:function(a){return[fa(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",p.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},note2:function(a){return[fa(a,["size"],function(a){var e=
Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",c.prototype.size)))));return new mxPoint(a.x+a.width-e,a.y+e)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[fa(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",da.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*c/4)},function(a,
c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(c.y-a.y)/3)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ea(a));return c},dataStorage:function(a){return[fa(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),e=parseFloat(mxUtils.getValue(this.state.style,"size",c?Y.prototype.fixedSize:Y.prototype.size));return new mxPoint(a.x+a.width-e*(c?1:a.width),a.getCenterY())},function(a,c){var e="0"!=mxUtils.getValue(this.state.style,
-"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-c.x)):Math.max(0,Math.min(1,(a.x+a.width-c.x)/a.width));this.state.style.size=e},!1)]},callout:function(a){var c=[fa(a,["size","position"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),e=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position)));mxUtils.getValue(this.state.style,"base",D.prototype.base);return new mxPoint(a.x+e*a.width,a.y+a.height-
-c)},function(a,c){mxUtils.getValue(this.state.style,"base",D.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),fa(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",D.prototype.position2)));return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,
-(c.x-a.x)/a.width)))/100},!1),fa(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),e=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position))),b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",D.prototype.base)));return new mxPoint(a.x+Math.min(a.width,e*a.width+b),a.y+a.height-c)},function(a,c){var e=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position)));
+"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-c.x)):Math.max(0,Math.min(1,(a.x+a.width-c.x)/a.width));this.state.style.size=e},!1)]},callout:function(a){var c=[fa(a,["size","position"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",C.prototype.size))),e=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",C.prototype.position)));mxUtils.getValue(this.state.style,"base",C.prototype.base);return new mxPoint(a.x+e*a.width,a.y+a.height-
+c)},function(a,c){mxUtils.getValue(this.state.style,"base",C.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),fa(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",C.prototype.position2)));return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,
+(c.x-a.x)/a.width)))/100},!1),fa(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",C.prototype.size))),e=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",C.prototype.position))),b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",C.prototype.base)));return new mxPoint(a.x+Math.min(a.width,e*a.width+b),a.y+a.height-c)},function(a,c){var e=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",C.prototype.position)));
this.state.style.base=Math.round(Math.max(0,Math.min(a.width,c.x-a.x-e*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ea(a));return c},internalStorage:function(a){var c=[fa(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ia.prototype.dx))),e=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ia.prototype.dy)));return new mxPoint(a.x+c,a.y+e)},function(a,c){this.state.style.dx=Math.round(Math.max(0,
Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ea(a));return c},module:function(a){return[fa(a,["jettyWidth","jettyHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",V.prototype.jettyWidth))),e=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"jettyHeight",V.prototype.jettyHeight)));return new mxPoint(a.x+c/2,a.y+
2*e)},function(a,c){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y))/2)})]},corner:function(a){return[fa(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",pa.prototype.dx))),e=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",pa.prototype.dy)));return new mxPoint(a.x+c,a.y+e)},function(a,c){this.state.style.dx=Math.round(Math.max(0,
@@ -2868,12 +2868,12 @@ e.getCenterY()));var k=Na.x,v=Na.y,n=Oa.x,q=Oa.y,u="horizontal"==mxUtils.getValu
mxEdgeStyle.IsometricConnector);var db=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,c){if(c==mxEdgeStyle.IsometricConnector){var e=new mxElbowEdgeHandler(a);e.snapToTerminals=!1;return e}return db.apply(this,arguments)};k.prototype.constraints=[];f.prototype.getConstraints=function(a,c,e){a=[];var b=Math.tan(mxUtils.toRadians(30)),d=(.5-b)/2,b=Math.min(c,e/(.5+b));c=(c-b)/2;e=(e-b)/2;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e+.25*b));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,c+.5*b,e+b*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+b,e+.25*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+b,e+.75*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*b,e+(1-d)*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e+.75*b));return a};e.prototype.getConstraints=function(a,c,e){a=[];var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,b=Math.min(c*
Math.tan(b),.5*e);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e-b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
-0,b));return a};D.prototype.getConstraints=function(a,c,e){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var b=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var d=c*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,b));return a};C.prototype.getConstraints=function(a,c,e){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var b=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var d=c*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,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(e-b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,
e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(e-b)));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),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(1,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(0,1),!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(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];wa.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=
-mxRectangleShape.prototype.constraints;P.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;p.prototype.getConstraints=function(a,c,e){a=[];var b=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,
+mxRectangleShape.prototype.constraints;O.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;p.prototype.getConstraints=function(a,c,e){a=[];var b=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,
null,c-b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(e+b)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,
0),!1));return a};t.prototype.getConstraints=function(a,c,e){a=[];var b=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,0,.5*(e+b)));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};b.prototype.getConstraints=function(a,c,e){a=[];var b=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,
@@ -2890,7 +2890,7 @@ mxEllipse.prototype.constraints;da.prototype.constraints=mxRectangleShape.protot
"jettyHeight",V.prototype.jettyHeight));var b=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,c),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(1,0),!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(0,1),!1,null,c),
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(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(e-.5*a,1.5*a)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(e-.5*a,3.5*a))];e>5*a&&b.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,c));e>8*a&&b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,c));e>15*
a&&b.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,c));return b};ua.prototype.constraints=mxRectangleShape.prototype.constraints;ra.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,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];C.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,.1),!1),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,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];D.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,.1),!1),new mxConnectionConstraint(new mxPoint(0,
1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];ca.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)];l.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,
@@ -2999,7 +2999,7 @@ a()}}),!0)});this.isModified()&&null==this.backupPatch?this.ui.confirm(mxResourc
DrawioFile.prototype.ignorePatches=function(a){for(var b=!0,d=0;d<a.length&&b;d++)b=b&&0==Object.keys(a[d]).length;return b};
DrawioFile.prototype.patch=function(a,b,d){var k=this.ui.editor.undoManager,f=k.history.slice(),m=k.indexOfNextAdd,p=this.ui.editor.graph;p.container.style.visibility="hidden";var c=this.changeListenerEnabled;this.changeListenerEnabled=d;var e=p.foldingEnabled,g=p.mathEnabled,n=p.cellRenderer.redraw;p.cellRenderer.redraw=function(a){a.view.graph.isEditing(a.cell)&&(a.view.graph.scrollCellToVisible(a.cell),a.view.graph.cellEditor.resize());n.apply(this,arguments)};p.model.beginUpdate();try{for(var l=
0;l<a.length;l++)this.ui.pages=this.ui.patchPages(this.ui.pages,a[l],!0,b,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{p.container.style.visibility="";p.model.endUpdate();p.cellRenderer.redraw=n;this.changeListenerEnabled=c;d||(k.history=f,k.indexOfNextAdd=m,k.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)g!=
-p.mathEnabled?(this.ui.editor.updateGraphComponents(),p.refresh()):(e!=p.foldingEnabled?p.view.revalidate():p.view.validate(),p.sizeDidChange());this.ui.updateTabContainer()}};
+p.mathEnabled?(this.ui.editor.updateGraphComponents(),p.refresh()):(e!=p.foldingEnabled?p.view.revalidate():p.view.validate(),p.sizeDidChange());this.ui.updateTabContainer();this.ui.editor.fireEvent(new mxEventObject("pagesPatched","patches",a))}};
DrawioFile.prototype.save=function(a,b,d,k,f,m){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!=b&&b();else if(null!=d)d({message:mxResources.get("readOnly")});else throw Error(mxResources.get("readOnly"));}catch(p){if(null!=d)d(p);else throw p;}};
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,b,d){};DrawioFile.prototype.saveFile=function(a,b,d,k){};
DrawioFile.prototype.getPublicUrl=function(a){a(null)};DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.getShadowModified=function(){return this.shadowModified};DrawioFile.prototype.setShadowModified=function(a){this.shadowModified=a};DrawioFile.prototype.setModified=function(a){this.shadowModified=this.modified=a};DrawioFile.prototype.isAutosaveOptional=function(){return!1};
@@ -3160,8 +3160,8 @@ mxUtils.bind(this,function(a){this.cachedGoogleFonts[c]=a;b+=a;e--;d()}),mxUtils
Editor.prototype.addFontCss=function(a,c){c=null!=c?c:this.absoluteCssFonts(this.fontCss);if(null!=c){var b=a.getElementsByTagName("defs"),e=a.ownerDocument;0==b.length?(b=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"defs"):e.createElement("defs"),null!=a.firstChild?a.insertBefore(b,a.firstChild):a.appendChild(b)):b=b[0];e=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"style"):e.createElement("style");e.setAttribute("type","text/css");mxUtils.setTextContent(e,c);b.appendChild(e)}};
Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(a,c,b){var e=mxClient.IS_FF?8192:16384;return Math.min(b,Math.min(e/a,e/c))};Editor.prototype.exportToCanvas=function(a,c,b,e,d,g,f,k,l,n,q,m,u,t,x,p,z,A){try{g=null!=g?g:!0;f=null!=f?f:!0;m=null!=m?m:this.graph;u=null!=u?u:0;var v=l?null:m.background;v==mxConstants.NONE&&(v=null);null==v&&(v=e);null==v&&0==l&&(v=p?this.graph.defaultPageBackgroundColor:"#ffffff");
this.convertImages(m.getSvg(null,null,u,t,null,f,null,null,null,n,null,p,z,A),mxUtils.bind(this,function(b){try{var e=new Image;e.onload=mxUtils.bind(this,function(){try{var f=function(){mxClient.IS_SF?window.setTimeout(function(){t.drawImage(e,0,0);a(l,b)},0):(t.drawImage(e,0,0),a(l,b))},l=document.createElement("canvas"),n=parseInt(b.getAttribute("width")),q=parseInt(b.getAttribute("height"));k=null!=k?k:1;null!=c&&(k=g?Math.min(1,Math.min(3*c/(4*q),c/n)):c/n);k=this.getMaxCanvasScale(n,q,k);n=
-Math.ceil(k*n);q=Math.ceil(k*q);l.setAttribute("width",n);l.setAttribute("height",q);var t=l.getContext("2d");null!=v&&(t.beginPath(),t.rect(0,0,n,q),t.fillStyle=v,t.fill());1!=k&&t.scale(k,k);if(x){var p=m.view,z=p.scale;p.scale=1;var C=btoa(unescape(encodeURIComponent(p.createSvgGrid(p.gridColor))));p.scale=z;var C="data:image/svg+xml;base64,"+C,B=m.gridSize*p.gridSteps*k,A=m.getGraphBounds(),D=p.translate.x*z,N=p.translate.y*z,L=D+(A.x-D)/z-u,E=N+(A.y-N)/z-u,J=new Image;J.onload=function(){try{for(var a=
--Math.round(B-mxUtils.mod((D-L)*k,B)),c=-Math.round(B-mxUtils.mod((N-E)*k,B));a<n;a+=B)for(var b=c;b<q;b+=B)t.drawImage(J,a/k,b/k);f()}catch(xa){null!=d&&d(xa)}};J.onerror=function(a){null!=d&&d(a)};J.src=C}else f()}catch(wa){null!=d&&d(wa)}});e.onerror=function(a){null!=d&&d(a)};n&&this.graph.addSvgShadow(b);this.graph.mathEnabled&&this.addMathCss(b);var f=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(b,this.resolvedFontCss),e.src=Editor.createSvgDataUri(mxUtils.getXml(b))}catch(R){null!=
+Math.ceil(k*n);q=Math.ceil(k*q);l.setAttribute("width",n);l.setAttribute("height",q);var t=l.getContext("2d");null!=v&&(t.beginPath(),t.rect(0,0,n,q),t.fillStyle=v,t.fill());1!=k&&t.scale(k,k);if(x){var p=m.view,z=p.scale;p.scale=1;var D=btoa(unescape(encodeURIComponent(p.createSvgGrid(p.gridColor))));p.scale=z;var D="data:image/svg+xml;base64,"+D,B=m.gridSize*p.gridSteps*k,A=m.getGraphBounds(),C=p.translate.x*z,N=p.translate.y*z,L=C+(A.x-C)/z-u,E=N+(A.y-N)/z-u,J=new Image;J.onload=function(){try{for(var a=
+-Math.round(B-mxUtils.mod((C-L)*k,B)),c=-Math.round(B-mxUtils.mod((N-E)*k,B));a<n;a+=B)for(var b=c;b<q;b+=B)t.drawImage(J,a/k,b/k);f()}catch(xa){null!=d&&d(xa)}};J.onerror=function(a){null!=d&&d(a)};J.src=D}else f()}catch(wa){null!=d&&d(wa)}});e.onerror=function(a){null!=d&&d(a)};n&&this.graph.addSvgShadow(b);this.graph.mathEnabled&&this.addMathCss(b);var f=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(b,this.resolvedFontCss),e.src=Editor.createSvgDataUri(mxUtils.getXml(b))}catch(R){null!=
d&&d(R)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.addFontCss(b,a),this.loadFonts(f)}catch(ka){null!=d&&d(ka)}}))}catch(R){null!=d&&d(R)}}),b,q)}catch(da){null!=d&&d(da)}};Editor.crcTable=[];for(var f=0;256>f;f++)for(var m=f,p=0;8>p;p++)m=1==(m&1)?3988292384^m>>>1:m>>>1,Editor.crcTable[f]=m;Editor.updateCRC=function(a,c,b,e){for(var d=0;d<e;d++)a=Editor.crcTable[(a^c.charCodeAt(b+d))&255]^a>>>8;return a};Editor.crc32=function(a){for(var c=-1,b=0;b<a.length;b++)c=c>>>8^Editor.crcTable[(c^
a.charCodeAt(b))&255];return(c^-1)>>>0};Editor.writeGraphModelToPng=function(a,c,b,e,d){function g(a,c){var b=l;l+=c;return a.substring(b,l)}function f(a){a=g(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 l=0;if(g(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(g(a,
4),"IHDR"!=g(a,4))null!=d&&d();else{g(a,17);d=a.substring(0,l);do{var n=f(a);if("IDAT"==g(a,4)){d=a.substring(0,l-8);"pHYs"==c&&"dpi"==b?(b=Math.round(e/.0254),b=k(b)+k(b)+String.fromCharCode(1)):b=b+String.fromCharCode(0)+("zTXt"==c?String.fromCharCode(0):"")+e;e=4294967295;e=Editor.updateCRC(e,c,0,4);e=Editor.updateCRC(e,b,0,b.length);d+=k(b.length)+c+b+k(e^4294967295);d+=a.substring(l-8,a.length);break}d+=a.substring(l-8,l-4+n);g(a,n);g(a,4)}while(n);return"data:image/png;base64,"+(window.btoa?
@@ -3210,8 +3210,8 @@ b,mxEvent.addListener(p,"click",mxUtils.bind(q,function(){function g(){var a=f.v
t?"1":"any",null!=n.min&&(f.min=parseFloat(n.min)),null!=n.max&&(f.max=parseFloat(n.max)));a.appendChild(f);mxEvent.addListener(f,"keypress",function(a){13==a.keyCode&&g()});f.focus();mxEvent.addListener(f,"blur",function(){g()})})));n.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(q,function(a){e(c,"",n,n.index);mxEvent.consume(a)})),u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",p.appendChild(u));x.appendChild(p);return x}var q=this,m=this.editorUi.editor.graph,
u=[];a.style.position="relative";a.style.padding="0";var v=document.createElement("table");v.className="geProperties";v.style.whiteSpace="nowrap";v.style.width="100%";var t=document.createElement("tr");t.className="gePropHeader";var x=document.createElement("th");x.className="gePropHeaderCell";var p=document.createElement("img");p.src=Sidebar.prototype.expandedImage;x.appendChild(p);mxUtils.write(x,mxResources.get("property"));t.style.cursor="pointer";var z=function(){var c=v.querySelectorAll(".gePropNonHeaderRow"),
b;if(q.editorUi.propertiesCollapsed){p.src=Sidebar.prototype.collapsedImage;b="none";for(var e=a.childNodes.length-1;0<=e;e--)try{var d=a.childNodes[e],g=d.nodeName.toUpperCase();"INPUT"!=g&&"SELECT"!=g||a.removeChild(d)}catch(ya){}}else p.src=Sidebar.prototype.expandedImage,b="";for(e=0;e<c.length;e++)c[e].style.display=b};mxEvent.addListener(t,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;z()});t.appendChild(x);x=document.createElement("th");x.className="gePropHeaderCell";
-x.innerHTML=mxResources.get("value");t.appendChild(x);v.appendChild(t);var C=!1,B=!1,t=null;1==b.vertices.length&&0==b.edges.length?t=b.vertices[0].id:0==b.vertices.length&&1==b.edges.length&&(t=b.edges[0].id);null!=t&&v.appendChild(n("id",mxUtils.htmlEntities(t),{dispName:"ID",type:"readOnly"},!0,!1));for(var A in c)if(t=c[A],"function"!=typeof t.isVisible||t.isVisible(b,this)){var D=null!=b.style[A]?mxUtils.htmlEntities(b.style[A]+""):null!=t.getDefaultValue?t.getDefaultValue(b,this):t.defVal;if("separator"==
-t.type)B=!B;else{if("staticArr"==t.type)t.size=parseInt(b.style[t.sizeProperty]||c[t.sizeProperty].defVal)||0;else if(null!=t.dependentProps){for(var N=t.dependentProps,E=[],G=[],x=0;x<N.length;x++){var H=b.style[N[x]];G.push(c[N[x]].subDefVal);E.push(null!=H?H.split(","):[])}t.dependentPropsDefVal=G;t.dependentPropsVals=E}v.appendChild(n(A,D,t,C,B));C=!C}}for(x=0;x<u.length;x++)for(t=u[x],c=t.parentRow,b=0;b<t.values.length;b++)A=n(t.name,t.values[b],{type:t.type,parentRow:t.parentRow,isDeletable:t.isDeletable,
+x.innerHTML=mxResources.get("value");t.appendChild(x);v.appendChild(t);var D=!1,B=!1,t=null;1==b.vertices.length&&0==b.edges.length?t=b.vertices[0].id:0==b.vertices.length&&1==b.edges.length&&(t=b.edges[0].id);null!=t&&v.appendChild(n("id",mxUtils.htmlEntities(t),{dispName:"ID",type:"readOnly"},!0,!1));for(var A in c)if(t=c[A],"function"!=typeof t.isVisible||t.isVisible(b,this)){var C=null!=b.style[A]?mxUtils.htmlEntities(b.style[A]+""):null!=t.getDefaultValue?t.getDefaultValue(b,this):t.defVal;if("separator"==
+t.type)B=!B;else{if("staticArr"==t.type)t.size=parseInt(b.style[t.sizeProperty]||c[t.sizeProperty].defVal)||0;else if(null!=t.dependentProps){for(var N=t.dependentProps,E=[],G=[],x=0;x<N.length;x++){var H=b.style[N[x]];G.push(c[N[x]].subDefVal);E.push(null!=H?H.split(","):[])}t.dependentPropsDefVal=G;t.dependentPropsVals=E}v.appendChild(n(A,C,t,D,B));D=!D}}for(x=0;x<u.length;x++)for(t=u[x],c=t.parentRow,b=0;b<t.values.length;b++)A=n(t.name,t.values[b],{type:t.type,parentRow:t.parentRow,isDeletable:t.isDeletable,
index:b,defVal:t.defVal,countProperty:t.countProperty,size:t.size},0==b%2,t.flipBkg),c.parentNode.insertBefore(A,c.nextSibling),c=A;a.appendChild(v);z();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var b=this.editorUi,e=b.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 g="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(" "),f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.position="relative";f.style.textAlign="center";for(var k=[],l=0;l<this.defaultColorSchemes.length;l++){var n=document.createElement("div");n.style.display=
"inline-block";n.style.width="6px";n.style.height="6px";n.style.marginLeft="4px";n.style.marginRight="3px";n.style.borderRadius="3px";n.style.cursor="pointer";n.style.background="transparent";n.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a){mxEvent.addListener(n,"click",mxUtils.bind(this,function(){q(a)}))})(l);k.push(n);f.appendChild(n)}var q=mxUtils.bind(this,function(a){null!=this.format.currentScheme&&(k[this.format.currentScheme].style.background="transparent");this.format.currentScheme=
@@ -3240,64 +3240,65 @@ this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.getC
a&&b[e].getAttribute("data-font-src")!=c&&b[e].setAttribute("data-font-src",c)}};var E=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return E.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};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(B){null!=window.console&&console.log("Error in vars URL parameter: "+B)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var H=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var c=H.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 K=Graph.prototype.getSvg;Graph.prototype.getSvg=function(a,c,b,e,d,g,f,k,l,n,q,u,m,t){var v=null,x=null;u||null==this.themes||"darkTheme"!=this.defaultThemeName||(v=this.stylesheet,x=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":"#2a2a2a",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var p=
-K.apply(this,arguments),z=this.getCustomFonts();if(q&&0<z.length){var A=p.ownerDocument,D=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"style"):A.createElement("style");null!=A.setAttributeNS?D.setAttributeNS("type","text/css"):D.setAttribute("type","text/css");for(var N="",B="",C=0;C<z.length;C++){var E=z[C].name,G=z[C].url;Graph.isCssFontUrl(G)?N+="@import url("+G+");\n":B+='@font-face {\nfont-family: "'+E+'";\nsrc: url("'+G+'");\n}\n'}D.appendChild(A.createTextNode(N+B));p.getElementsByTagName("defs")[0].appendChild(D)}null!=
+K.apply(this,arguments),z=this.getCustomFonts();if(q&&0<z.length){var A=p.ownerDocument,C=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"style"):A.createElement("style");null!=A.setAttributeNS?C.setAttributeNS("type","text/css"):C.setAttribute("type","text/css");for(var N="",B="",D=0;D<z.length;D++){var E=z[D].name,G=z[D].url;Graph.isCssFontUrl(G)?N+="@import url("+G+");\n":B+='@font-face {\nfont-family: "'+E+'";\nsrc: url("'+G+'");\n}\n'}C.appendChild(A.createTextNode(N+B));p.getElementsByTagName("defs")[0].appendChild(C)}null!=
v&&(this.defaultPageBackgroundColor=x,this.stylesheet=v,this.refresh());return p};var F=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var a=F.apply(this,arguments);if(this.mathEnabled){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 I=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){I.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 D=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){D.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){"data:action/json,"==a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions&&this.executeCustomActions(a.actions))};Graph.prototype.executeCustomActions=
-function(a,c){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var b=!1,e=0,d=0,g=mxUtils.bind(this,function(){b||(b=!0,this.model.beginUpdate())}),f=mxUtils.bind(this,function(){b&&(b=!1,this.model.endUpdate())}),k=mxUtils.bind(this,function(){0<
-e&&e--;0==e&&l()}),l=mxUtils.bind(this,function(){if(d<a.length){var b=this.stoppingCustomActions,n=a[d++],q=[];if(null!=n.open)if(f(),this.isCustomLink(n.open)){if(!this.customLinkClicked(n.open))return}else this.openLink(n.open);null==n.wait||b||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;k()}),e++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=n.wait?parseInt(n.wait):1E3),f());null!=n.opacity&&
-null!=n.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(n.opacity,!0)),n.opacity.value);null!=n.fadeIn&&(e++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeIn,!0)),0,1,k,b?0:n.fadeIn.delay));null!=n.fadeOut&&(e++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeOut,!0)),1,0,k,b?0:n.fadeOut.delay));null!=n.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeIn,!0),!0)));null!=n.wipeOut&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeOut,
-!0),!1)));null!=n.toggle&&(g(),this.toggleCells(this.getCellsForAction(n.toggle,!0)));if(null!=n.show){g();var u=this.getCellsForAction(n.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(u),1);this.setCellsVisible(u,!0)}null!=n.hide&&(g(),u=this.getCellsForAction(n.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(u),0),this.setCellsVisible(u,!1));null!=n.toggleStyle&&null!=n.toggleStyle.key&&(g(),this.toggleCellStyles(n.toggleStyle.key,null!=n.toggleStyle.defaultValue?n.toggleStyle.defaultValue:
-"0",this.getCellsForAction(n.toggleStyle,!0)));null!=n.style&&null!=n.style.key&&(g(),this.setCellStyles(n.style.key,n.style.value,this.getCellsForAction(n.style,!0)));u=[];null!=n.select&&this.isEnabled()&&(u=this.getCellsForAction(n.select),this.setSelectionCells(u));null!=n.highlight&&(u=this.getCellsForAction(n.highlight),this.highlightCells(u,n.highlight.color,n.highlight.duration,n.highlight.opacity));null!=n.scroll&&(u=this.getCellsForAction(n.scroll));null!=n.viewbox&&this.fitWindow(n.viewbox,
-n.viewbox.border);0<u.length&&this.scrollCellToVisible(u[0]);0<q.length&&(e++,this.executeAnimations(q,k,b?1:n.steps,b?0:n.delay));0==e?l():f()}else this.stoppingCustomActions=this.executingCustomActions=!1,f(),null!=c&&c()});l()}};Graph.prototype.doUpdateCustomLinksForCell=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.sanitizeHtml(this.getLabel(c));
-for(var d=e.getElementsByTagName("a"),g=!1,f=0;f<d.length;f++)b=d[f].getAttribute("href"),null!=b&&"data:action/json,"==b.substring(0,17)&&(d[f].setAttribute("href",this.updateCustomLink(a,b)),g=!0);g&&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(J){}return c};Graph.prototype.updateCustomLinkActions=
-function(a,c){for(var b=0;b<c.length;b++){var e=c[b],d;for(d in e)this.updateCustomLinkAction(a,e[d],"cells"),this.updateCustomLinkAction(a,e[d],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(a,c,b){if(null!=c&&null!=c[b]){for(var e=[],d=0;d<c[b].length;d++)if("*"==c[b][d])e.push(c[b][d]);else{var g=a[c[b][d]];null!=g?""!=g&&e.push(g):e.push(c[b][d])}c[b]=e}};Graph.prototype.getCellsForAction=function(a,c){var b=this.getCellsById(a.cells).concat(this.getCellsForTags(a.tags,null,
-null,c));if(null!=a.excludeCells){for(var e=[],d=0;d<b.length;d++)0>a.excludeCells.indexOf(b[d].id)&&e.push(b[d]);b=e}return b};Graph.prototype.getCellsById=function(a){var c=[];if(null!=a)for(var b=0;b<a.length;b++)if("*"==a[b])var e=this.model.getRoot(),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 g=0,f={},k=0;k<a.length;k++)0<a[k].length&&(f[a[k].toLowerCase()]=!0,g++);for(k=0;k<c.length;k++)if(e&&this.model.getParent(c[k])==this.model.root||this.model.isVertex(c[k])||this.model.isEdge(c[k])){var l=null!=c[k].value&&"object"==typeof c[k].value?mxUtils.trim(c[k].value.getAttribute(b)||""):"",n=!1;if(0<l.length){if(l=l.toLowerCase().split(" "),l.length>=a.length){for(var q=n=0;q<l.length&&n<g;q++)null!=f[l[q]]&&n++;n=n==g}}else n=0==a.length;n&&d.push(c[k])}}return d};
-Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],!this.model.isVisible(a[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,c){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],c)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,c,b,e){for(var d=0;d<a.length;d++)this.highlightCell(a[d],c,b,e)};Graph.prototype.highlightCell=function(a,c,
-b,e){c=null!=c?c:mxConstants.DEFAULT_VALID_COLOR;b=null!=b?b:1E3;a=this.view.getState(a);if(null!=a){var d=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),g=new mxCellHighlight(this,c,d,!1);null!=e&&(g.opacity=e);g.highlight(a);window.setTimeout(function(){null!=g.shape&&(mxUtils.setPrefixedStyle(g.shape.node.style,"transition","all 1200ms ease-in-out"),g.shape.node.style.opacity=0);window.setTimeout(function(){g.destroy()},1200)},b)}};Graph.prototype.addSvgShadow=function(a,
-c,b){b=null!=b?b:!1;var e=a.ownerDocument,d=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"filter"):e.createElement("filter");d.setAttribute("id",this.shadowId);var g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):e.createElement("feGaussianBlur");g.setAttribute("in","SourceAlpha");g.setAttribute("stdDeviation",this.svgShadowBlur);g.setAttribute("result","blur");d.appendChild(g);g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feOffset"):
-e.createElement("feOffset");g.setAttribute("in","blur");g.setAttribute("dx",this.svgShadowSize);g.setAttribute("dy",this.svgShadowSize);g.setAttribute("result","offsetBlur");d.appendChild(g);g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feFlood"):e.createElement("feFlood");g.setAttribute("flood-color",this.svgShadowColor);g.setAttribute("flood-opacity",this.svgShadowOpacity);g.setAttribute("result","offsetColor");d.appendChild(g);g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,
-"feComposite"):e.createElement("feComposite");g.setAttribute("in","offsetColor");g.setAttribute("in2","offsetBlur");g.setAttribute("operator","in");g.setAttribute("result","offsetBlur");d.appendChild(g);g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feBlend"):e.createElement("feBlend");g.setAttribute("in","SourceGraphic");g.setAttribute("in2","offsetBlur");d.appendChild(g);g=a.getElementsByTagName("defs");0==g.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=g[0];e.appendChild(d);b||(c=null!=c?c:a.getElementsByTagName("g")[0],null!=c&&(c.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),c=a.getAttribute("viewBox"),null!=c&&0<c.length&&(c=c.split(" "),3<c.length&&(w=parseFloat(c[2])+6,h=parseFloat(c[3])+
-6,a.setAttribute("viewBox",c[0]+" "+c[1]+" "+w+" "+h))))));return d};Graph.prototype.setShadowVisible=function(a,c){mxClient.IS_SVG&&!mxClient.IS_SF&&(c=null!=c?c:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),c&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),c,
-b=0;do c=this.model.getChildAt(this.model.root,b);while(b++<a&&"1"==mxUtils.getValue(this.getCellStyle(c),"locked","0"));null!=c&&this.setDefaultParent(c)}};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+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];
-mxStencilRegistry.libraries.bpmn2=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.c4=[SHAPES_PATH+"/mxC4.js"];mxStencilRegistry.libraries.cisco19=[SHAPES_PATH+"/mxCisco19.js",STENCIL_PATH+"/cisco19.xml"];mxStencilRegistry.libraries.cisco_safe=[SHAPES_PATH+"/mxCiscoSafe.js",STENCIL_PATH+"/cisco_safe/architecture.xml",STENCIL_PATH+"/cisco_safe/business_icons.xml",STENCIL_PATH+"/cisco_safe/capability.xml",STENCIL_PATH+"/cisco_safe/design.xml",
-STENCIL_PATH+"/cisco_safe/iot_things_icons.xml",STENCIL_PATH+"/cisco_safe/people_places_things_icons.xml",STENCIL_PATH+"/cisco_safe/security_icons.xml",STENCIL_PATH+"/cisco_safe/technology_icons.xml",STENCIL_PATH+"/cisco_safe/threat.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=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/abstract"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/abstract.xml"];mxStencilRegistry.libraries["electrical/logic_gates"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries["electrical/miscellaneous"]=
-[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/miscellaneous.xml"];mxStencilRegistry.libraries["electrical/signal_sources"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/signal_sources.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries.infographic=[SHAPES_PATH+"/mxInfographic.js"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];
-mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];
-mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",SHAPES_PATH+"/mxBasic.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.ibm=[SHAPES_PATH+"/mxIBM.js",STENCIL_PATH+"/ibm.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.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=
-[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.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 M=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,e,d,g,f,k,l,n){if(null!=b&&null==mxMarker.markers[b]){var q=this.getPackageForType(b);null!=q&&mxStencilRegistry.getStencil(q)}return M.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){t.value=Math.max(1,
-Math.min(k,Math.max(parseInt(t.value),parseInt(m.value))));m.value=Math.max(1,Math.min(k,Math.min(parseInt(t.value),parseInt(m.value))))}function e(c){function b(c,b,g){var f=c.useCssTransforms,k=c.currentTranslate,l=c.currentScale,n=c.view.translate,q=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 u=c.getGraphBounds(),m=0,t=0,x=F.get(),p=1/c.pageScale,A=z.checked;if(A)var p=parseInt(I.value),
-D=parseInt(P.value),p=Math.min(x.height*D/(u.height/c.view.scale),x.width*p/(u.width/c.view.scale));else p=parseInt(v.value)/(100*c.pageScale),isNaN(p)&&(e=1/c.pageScale,v.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*e);x.height=Math.ceil(x.height*e);p*=e;!A&&c.pageVisible?(u=c.getPageLayout(),m-=u.x*x.width,t-=u.y*x.height):A=!0;if(null==b){b=PrintDialog.createPrintPreview(c,p,x,0,m,t,A);b.pageSelector=!1;b.mathEnabled=!1;m=a.getCurrentFile();null!=m&&(b.title=m.getTitle());
-var N=b.writeHead;b.writeHead=function(b){N.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)b.writeln('<style type="text/css">'),b.writeln(Editor.mathJaxWebkitCss),b.writeln("</style>");mxClient.IS_GC&&(b.writeln('<style type="text/css">'),b.writeln("@media print {"),b.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),b.writeln("}"),b.writeln("</style>"));null!=a.editor.fontCss&&(b.writeln('<style type="text/css">'),b.writeln(a.editor.fontCss),b.writeln("</style>"));for(var e=
-c.getCustomFonts(),d=0;d<e.length;d++){var g=e[d].name,f=e[d].url;Graph.isCssFontUrl(f)?b.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(f)+'" charset="UTF-8" type="text/css">'):(b.writeln('<style type="text/css">'),b.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(g)+'";\nsrc: url("'+mxUtils.htmlEntities(f)+'");\n}'),b.writeln("</style>"))}};if("undefined"!==typeof MathJax){var E=b.renderPage;b.renderPage=function(c,b,e,d,g,f){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&
-!a.editor.useForeignObjectForMath?!0:a.editor.originalNoForeignObject;var l=E.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:l.className="geDisableMathJax";return l}}m=null;t=d.enableFlowAnimation;d.enableFlowAnimation=!1;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(m=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),d.refresh());b.open(null,null,g,!0);d.enableFlowAnimation=t;null!=m&&(d.stylesheet=m,d.refresh())}else{x=c.background;if(null==
-x||""==x||x==mxConstants.NONE)x="#ffffff";b.backgroundColor=x;b.autoOrigin=A;b.appendGraph(c,p,m,t,g,!0);g=c.getCustomFonts();if(null!=b.wnd)for(m=0;m<g.length;m++)t=g[m].name,A=g[m].url,Graph.isCssFontUrl(A)?b.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(A)+'" charset="UTF-8" type="text/css">'):(b.wnd.document.writeln('<style type="text/css">'),b.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(t)+'";\nsrc: url("'+mxUtils.htmlEntities(A)+'");\n}'),
-b.wnd.document.writeln("</style>"))}f&&(c.useCssTransforms=f,c.currentTranslate=k,c.currentScale=l,c.view.translate=n,c.view.scale=q);return b}var e=parseInt(K.value)/100;isNaN(e)&&(e=1,K.value="100 %");var e=.75*e,g=null;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(g=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),d.refresh());var f=m.value,k=t.value,n=!q.checked,u=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(a,q.checked,f,k,z.checked,I.value,P.value,parseInt(v.value)/100,parseInt(K.value)/
-100,F.get());else{n&&(n=f==l&&k==l);if(!n&&null!=a.pages&&a.pages.length){var x=0,n=a.pages.length-1;q.checked||(x=parseInt(f)-1,n=parseInt(k)-1);for(var p=x;p<=n;p++){var A=a.pages[p],f=A==a.currentPage?d:null;if(null==f){var f=a.createTemporaryGraph(d.stylesheet),k=!0,x=!1,D=null,N=null;null==A.viewState&&null==A.root&&a.updatePageRoot(A);null!=A.viewState&&(k=A.viewState.pageVisible,x=A.viewState.mathEnabled,D=A.viewState.background,N=A.viewState.backgroundImage,f.extFonts=A.viewState.extFonts);
-f.background=D;f.backgroundImage=null!=N?new mxImage(N.src,N.width,N.height):null;f.pageVisible=k;f.mathEnabled=x;var E=f.getGlobalVariable;f.getGlobalVariable=function(c){return"page"==c?A.getName():"pagenumber"==c?p+1:"pagecount"==c?null!=a.pages?a.pages.length:1:E.apply(this,arguments)};document.body.appendChild(f.container);a.updatePageRoot(A);f.model.setRoot(A.root)}u=b(f,u,p!=n);f!=d&&f.container.parentNode.removeChild(f.container)}}else u=b(d);null==u?a.handleError({message:mxResources.get("errorUpdatingPreview")}):
-(u.mathEnabled&&(n=u.wnd.document,c&&(u.wnd.IMMEDIATE_PRINT=!0),n.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),u.closeDocument(),!u.mathEnabled&&c&&PrintDialog.printPreview(u));null!=g&&(d.stylesheet=g,d.refresh())}}var d=a.editor.graph,g=document.createElement("div"),f=document.createElement("h3");f.style.width="100%";f.style.textAlign="center";f.style.marginTop="0px";mxUtils.write(f,c||mxResources.get("print"));g.appendChild(f);var k=1,l=1,n=
-document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");n.appendChild(q);f=document.createElement("span");mxUtils.write(f,mxResources.get("printAllPages"));n.appendChild(f);mxUtils.br(n);var u=q.cloneNode(!0);q.setAttribute("checked","checked");
-u.setAttribute("value","range");n.appendChild(u);f=document.createElement("span");mxUtils.write(f,mxResources.get("pages")+":");n.appendChild(f);var m=document.createElement("input");m.style.cssText="margin:0 8px 0 8px;";m.setAttribute("value","1");m.setAttribute("type","number");m.setAttribute("min","1");m.style.width="50px";n.appendChild(m);f=document.createElement("span");mxUtils.write(f,mxResources.get("to"));n.appendChild(f);var t=m.cloneNode(!0);n.appendChild(t);mxEvent.addListener(m,"focus",
-function(){u.checked=!0});mxEvent.addListener(t,"focus",function(){u.checked=!0});mxEvent.addListener(m,"change",b);mxEvent.addListener(t,"change",b);if(null!=a.pages&&(k=a.pages.length,null!=a.currentPage))for(f=0;f<a.pages.length;f++)if(a.currentPage==a.pages[f]){l=f+1;m.value=l;t.value=l;break}m.setAttribute("max",k);t.setAttribute("max",k);a.isPagesEnabled()?1<k&&(g.appendChild(n),u.checked=!0):u.checked=!0;var x=document.createElement("div");x.style.marginBottom="10px";var p=document.createElement("input");
-p.style.marginRight="8px";p.setAttribute("value","adjust");p.setAttribute("type","radio");p.setAttribute("name","printZoom");x.appendChild(p);f=document.createElement("span");mxUtils.write(f,mxResources.get("adjustTo"));x.appendChild(f);var v=document.createElement("input");v.style.cssText="margin:0 8px 0 8px;";v.setAttribute("value","100 %");v.style.width="50px";x.appendChild(v);mxEvent.addListener(v,"focus",function(){p.checked=!0});g.appendChild(x);var n=n.cloneNode(!1),z=p.cloneNode(!0);z.setAttribute("value",
-"fit");p.setAttribute("checked","checked");f=document.createElement("div");f.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";f.appendChild(z);n.appendChild(f);x=document.createElement("table");x.style.display="inline-block";var A=document.createElement("tbody"),D=document.createElement("tr"),N=D.cloneNode(!0),E=document.createElement("td"),G=E.cloneNode(!0),H=E.cloneNode(!0),C=E.cloneNode(!0),U=E.cloneNode(!0),M=E.cloneNode(!0);E.style.textAlign="right";C.style.textAlign=
-"right";mxUtils.write(E,mxResources.get("fitTo"));var I=document.createElement("input");I.style.cssText="margin:0 8px 0 8px;";I.setAttribute("value","1");I.setAttribute("min","1");I.setAttribute("type","number");I.style.width="40px";G.appendChild(I);f=document.createElement("span");mxUtils.write(f,mxResources.get("fitToSheetsAcross"));H.appendChild(f);mxUtils.write(C,mxResources.get("fitToBy"));var P=I.cloneNode(!0);U.appendChild(P);mxEvent.addListener(I,"focus",function(){z.checked=!0});mxEvent.addListener(P,
-"focus",function(){z.checked=!0});f=document.createElement("span");mxUtils.write(f,mxResources.get("fitToSheetsDown"));M.appendChild(f);D.appendChild(E);D.appendChild(G);D.appendChild(H);N.appendChild(C);N.appendChild(U);N.appendChild(M);A.appendChild(D);A.appendChild(N);x.appendChild(A);n.appendChild(x);g.appendChild(n);n=document.createElement("div");f=document.createElement("div");f.style.fontWeight="bold";f.style.marginBottom="12px";mxUtils.write(f,mxResources.get("paperSize"));n.appendChild(f);
-f=document.createElement("div");f.style.marginBottom="12px";var F=PageSetupDialog.addPageFormatPanel(f,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(f);f=document.createElement("span");mxUtils.write(f,mxResources.get("pageScale"));n.appendChild(f);var K=document.createElement("input");K.style.cssText="margin:0 8px 0 8px;";K.setAttribute("value","100 %");K.style.width="60px";n.appendChild(K);g.appendChild(n);f=document.createElement("div");f.style.cssText=
-"text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";a.editor.cancelFirst&&f.appendChild(n);a.isOffline()||(x=mxUtils.button(mxResources.get("help"),function(){d.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),x.className="geBtn",f.appendChild(x));PrintDialog.previewEnabled&&(x=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();e(!1)}),x.className="geBtn",f.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?
-"print":"ok"),function(){a.hideDialog();e(!0)});x.className="geBtn gePrimaryBtn";f.appendChild(x);a.editor.cancelFirst||f.appendChild(n);g.appendChild(f);this.container=g};var U=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var a=this.image;null!=a&&null!=a.src&&Graph.isPageLink(a.src)&&
-(a={originalSrc:a.src});this.page.viewState.backgroundImage=a}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)}}else U.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 P=document.createElement("canvas"),N=new Image;N.onload=function(){try{P.getContext("2d").drawImage(N,0,0);var a=P.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(C){}};N.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){}})();
+this.webKitForceRepaintNode.style.cssText="position:absolute;",a.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,a.ownerSVGElement))}};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&this.setBackgroundImage(this.backgroundImage)};var C=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){C.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){"data:action/json,"==
+a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions&&this.executeCustomActions(a.actions))};Graph.prototype.executeCustomActions=function(a,c){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var b=!1,e=0,d=0,g=mxUtils.bind(this,function(){b||
+(b=!0,this.model.beginUpdate())}),f=mxUtils.bind(this,function(){b&&(b=!1,this.model.endUpdate())}),k=mxUtils.bind(this,function(){0<e&&e--;0==e&&l()}),l=mxUtils.bind(this,function(){if(d<a.length){var b=this.stoppingCustomActions,n=a[d++],q=[];if(null!=n.open)if(f(),this.isCustomLink(n.open)){if(!this.customLinkClicked(n.open))return}else this.openLink(n.open);null==n.wait||b||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;k()}),
+e++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=n.wait?parseInt(n.wait):1E3),f());null!=n.opacity&&null!=n.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(n.opacity,!0)),n.opacity.value);null!=n.fadeIn&&(e++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeIn,!0)),0,1,k,b?0:n.fadeIn.delay));null!=n.fadeOut&&(e++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeOut,!0)),1,0,k,b?0:n.fadeOut.delay));
+null!=n.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeIn,!0),!0)));null!=n.wipeOut&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeOut,!0),!1)));null!=n.toggle&&(g(),this.toggleCells(this.getCellsForAction(n.toggle,!0)));if(null!=n.show){g();var u=this.getCellsForAction(n.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(u),1);this.setCellsVisible(u,!0)}null!=n.hide&&(g(),u=this.getCellsForAction(n.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(u),
+0),this.setCellsVisible(u,!1));null!=n.toggleStyle&&null!=n.toggleStyle.key&&(g(),this.toggleCellStyles(n.toggleStyle.key,null!=n.toggleStyle.defaultValue?n.toggleStyle.defaultValue:"0",this.getCellsForAction(n.toggleStyle,!0)));null!=n.style&&null!=n.style.key&&(g(),this.setCellStyles(n.style.key,n.style.value,this.getCellsForAction(n.style,!0)));u=[];null!=n.select&&this.isEnabled()&&(u=this.getCellsForAction(n.select),this.setSelectionCells(u));null!=n.highlight&&(u=this.getCellsForAction(n.highlight),
+this.highlightCells(u,n.highlight.color,n.highlight.duration,n.highlight.opacity));null!=n.scroll&&(u=this.getCellsForAction(n.scroll));null!=n.viewbox&&this.fitWindow(n.viewbox,n.viewbox.border);0<u.length&&this.scrollCellToVisible(u[0]);0<q.length&&(e++,this.executeAnimations(q,k,b?1:n.steps,b?0:n.delay));0==e?l():f()}else this.stoppingCustomActions=this.executingCustomActions=!1,f(),null!=c&&c()});l()}};Graph.prototype.doUpdateCustomLinksForCell=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.sanitizeHtml(this.getLabel(c));for(var d=e.getElementsByTagName("a"),g=!1,f=0;f<d.length;f++)b=d[f].getAttribute("href"),null!=b&&"data:action/json,"==b.substring(0,17)&&(d[f].setAttribute("href",this.updateCustomLink(a,b)),g=!0);g&&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(J){}return c};Graph.prototype.updateCustomLinkActions=function(a,c){for(var b=0;b<c.length;b++){var e=c[b],d;for(d in e)this.updateCustomLinkAction(a,e[d],"cells"),this.updateCustomLinkAction(a,e[d],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(a,c,b){if(null!=c&&null!=c[b]){for(var e=[],d=0;d<c[b].length;d++)if("*"==
+c[b][d])e.push(c[b][d]);else{var g=a[c[b][d]];null!=g?""!=g&&e.push(g):e.push(c[b][d])}c[b]=e}};Graph.prototype.getCellsForAction=function(a,c){var b=this.getCellsById(a.cells).concat(this.getCellsForTags(a.tags,null,null,c));if(null!=a.excludeCells){for(var e=[],d=0;d<b.length;d++)0>a.excludeCells.indexOf(b[d].id)&&e.push(b[d]);b=e}return b};Graph.prototype.getCellsById=function(a){var c=[];if(null!=a)for(var b=0;b<a.length;b++)if("*"==a[b])var e=this.model.getRoot(),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 g=0,f={},k=0;k<a.length;k++)0<a[k].length&&(f[a[k].toLowerCase()]=!0,g++);for(k=0;k<c.length;k++)if(e&&this.model.getParent(c[k])==this.model.root||this.model.isVertex(c[k])||this.model.isEdge(c[k])){var l=null!=c[k].value&&"object"==typeof c[k].value?mxUtils.trim(c[k].value.getAttribute(b)||
+""):"",n=!1;if(0<l.length){if(l=l.toLowerCase().split(" "),l.length>=a.length){for(var q=n=0;q<l.length&&n<g;q++)null!=f[l[q]]&&n++;n=n==g}}else n=0==a.length;n&&d.push(c[k])}}return d};Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],!this.model.isVisible(a[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,c){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],c)}finally{this.model.endUpdate()}};
+Graph.prototype.highlightCells=function(a,c,b,e){for(var d=0;d<a.length;d++)this.highlightCell(a[d],c,b,e)};Graph.prototype.highlightCell=function(a,c,b,e){c=null!=c?c:mxConstants.DEFAULT_VALID_COLOR;b=null!=b?b:1E3;a=this.view.getState(a);if(null!=a){var d=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),g=new mxCellHighlight(this,c,d,!1);null!=e&&(g.opacity=e);g.highlight(a);window.setTimeout(function(){null!=g.shape&&(mxUtils.setPrefixedStyle(g.shape.node.style,"transition",
+"all 1200ms ease-in-out"),g.shape.node.style.opacity=0);window.setTimeout(function(){g.destroy()},1200)},b)}};Graph.prototype.addSvgShadow=function(a,c,b){b=null!=b?b:!1;var e=a.ownerDocument,d=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"filter"):e.createElement("filter");d.setAttribute("id",this.shadowId);var g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):e.createElement("feGaussianBlur");g.setAttribute("in","SourceAlpha");g.setAttribute("stdDeviation",
+this.svgShadowBlur);g.setAttribute("result","blur");d.appendChild(g);g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feOffset"):e.createElement("feOffset");g.setAttribute("in","blur");g.setAttribute("dx",this.svgShadowSize);g.setAttribute("dy",this.svgShadowSize);g.setAttribute("result","offsetBlur");d.appendChild(g);g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feFlood"):e.createElement("feFlood");g.setAttribute("flood-color",this.svgShadowColor);g.setAttribute("flood-opacity",
+this.svgShadowOpacity);g.setAttribute("result","offsetColor");d.appendChild(g);g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feComposite"):e.createElement("feComposite");g.setAttribute("in","offsetColor");g.setAttribute("in2","offsetBlur");g.setAttribute("operator","in");g.setAttribute("result","offsetBlur");d.appendChild(g);g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feBlend"):e.createElement("feBlend");g.setAttribute("in","SourceGraphic");g.setAttribute("in2",
+"offsetBlur");d.appendChild(g);g=a.getElementsByTagName("defs");0==g.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=g[0];e.appendChild(d);b||(c=null!=c?c:a.getElementsByTagName("g")[0],null!=c&&(c.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),c=a.getAttribute("viewBox"),null!=c&&0<c.length&&(c=c.split(" "),3<c.length&&(w=parseFloat(c[2])+6,h=parseFloat(c[3])+6,a.setAttribute("viewBox",c[0]+" "+c[1]+" "+w+" "+h))))));return d};Graph.prototype.setShadowVisible=function(a,c){mxClient.IS_SVG&&!mxClient.IS_SF&&(c=null!=c?c:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),c&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=
+function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),c,b=0;do c=this.model.getChildAt(this.model.root,b);while(b++<a&&"1"==mxUtils.getValue(this.getCellStyle(c),"locked","0"));null!=c&&this.setDefaultParent(c)}};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+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.bpmn2=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.c4=[SHAPES_PATH+"/mxC4.js"];mxStencilRegistry.libraries.cisco19=[SHAPES_PATH+"/mxCisco19.js",STENCIL_PATH+"/cisco19.xml"];mxStencilRegistry.libraries.cisco_safe=[SHAPES_PATH+"/mxCiscoSafe.js",STENCIL_PATH+"/cisco_safe/architecture.xml",STENCIL_PATH+"/cisco_safe/business_icons.xml",
+STENCIL_PATH+"/cisco_safe/capability.xml",STENCIL_PATH+"/cisco_safe/design.xml",STENCIL_PATH+"/cisco_safe/iot_things_icons.xml",STENCIL_PATH+"/cisco_safe/people_places_things_icons.xml",STENCIL_PATH+"/cisco_safe/security_icons.xml",STENCIL_PATH+"/cisco_safe/technology_icons.xml",STENCIL_PATH+"/cisco_safe/threat.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=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/abstract"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/abstract.xml"];mxStencilRegistry.libraries["electrical/logic_gates"]=
+[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries["electrical/miscellaneous"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/miscellaneous.xml"];mxStencilRegistry.libraries["electrical/signal_sources"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/signal_sources.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries.infographic=
+[SHAPES_PATH+"/mxInfographic.js"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];
+mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",SHAPES_PATH+
+"/mxBasic.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.ibm=[SHAPES_PATH+"/mxIBM.js",STENCIL_PATH+"/ibm.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.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.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 M=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,e,d,g,f,k,l,n){if(null!=b&&null==mxMarker.markers[b]){var q=this.getPackageForType(b);null!=q&&
+mxStencilRegistry.getStencil(q)}return M.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){t.value=Math.max(1,Math.min(k,Math.max(parseInt(t.value),parseInt(m.value))));m.value=Math.max(1,Math.min(k,Math.min(parseInt(t.value),parseInt(m.value))))}function e(c){function b(c,b,g){var f=c.useCssTransforms,k=c.currentTranslate,l=c.currentScale,n=c.view.translate,q=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 u=c.getGraphBounds(),m=0,t=0,x=F.get(),p=1/c.pageScale,A=z.checked;if(A)var p=parseInt(O.value),C=parseInt(I.value),p=Math.min(x.height*C/(u.height/c.view.scale),x.width*p/(u.width/c.view.scale));else p=parseInt(v.value)/(100*c.pageScale),isNaN(p)&&(e=1/c.pageScale,v.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*e);x.height=Math.ceil(x.height*e);p*=e;!A&&c.pageVisible?(u=c.getPageLayout(),m-=u.x*x.width,t-=u.y*x.height):
+A=!0;if(null==b){b=PrintDialog.createPrintPreview(c,p,x,0,m,t,A);b.pageSelector=!1;b.mathEnabled=!1;m=a.getCurrentFile();null!=m&&(b.title=m.getTitle());var N=b.writeHead;b.writeHead=function(b){N.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)b.writeln('<style type="text/css">'),b.writeln(Editor.mathJaxWebkitCss),b.writeln("</style>");mxClient.IS_GC&&(b.writeln('<style type="text/css">'),b.writeln("@media print {"),b.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),b.writeln("}"),
+b.writeln("</style>"));null!=a.editor.fontCss&&(b.writeln('<style type="text/css">'),b.writeln(a.editor.fontCss),b.writeln("</style>"));for(var e=c.getCustomFonts(),d=0;d<e.length;d++){var g=e[d].name,f=e[d].url;Graph.isCssFontUrl(f)?b.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(f)+'" charset="UTF-8" type="text/css">'):(b.writeln('<style type="text/css">'),b.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(g)+'";\nsrc: url("'+mxUtils.htmlEntities(f)+'");\n}'),b.writeln("</style>"))}};
+if("undefined"!==typeof MathJax){var E=b.renderPage;b.renderPage=function(c,b,e,d,g,f){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!a.editor.useForeignObjectForMath?!0:a.editor.originalNoForeignObject;var l=E.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:l.className="geDisableMathJax";return l}}m=null;t=d.enableFlowAnimation;d.enableFlowAnimation=!1;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(m=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),
+d.refresh());b.open(null,null,g,!0);d.enableFlowAnimation=t;null!=m&&(d.stylesheet=m,d.refresh())}else{x=c.background;if(null==x||""==x||x==mxConstants.NONE)x="#ffffff";b.backgroundColor=x;b.autoOrigin=A;b.appendGraph(c,p,m,t,g,!0);g=c.getCustomFonts();if(null!=b.wnd)for(m=0;m<g.length;m++)t=g[m].name,A=g[m].url,Graph.isCssFontUrl(A)?b.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(A)+'" charset="UTF-8" type="text/css">'):(b.wnd.document.writeln('<style type="text/css">'),
+b.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(t)+'";\nsrc: url("'+mxUtils.htmlEntities(A)+'");\n}'),b.wnd.document.writeln("</style>"))}f&&(c.useCssTransforms=f,c.currentTranslate=k,c.currentScale=l,c.view.translate=n,c.view.scale=q);return b}var e=parseInt(K.value)/100;isNaN(e)&&(e=1,K.value="100 %");var e=.75*e,g=null;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(g=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),d.refresh());var f=m.value,k=t.value,n=!q.checked,
+u=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(a,q.checked,f,k,z.checked,O.value,I.value,parseInt(v.value)/100,parseInt(K.value)/100,F.get());else{n&&(n=f==l&&k==l);if(!n&&null!=a.pages&&a.pages.length){var x=0,n=a.pages.length-1;q.checked||(x=parseInt(f)-1,n=parseInt(k)-1);for(var p=x;p<=n;p++){var A=a.pages[p],f=A==a.currentPage?d:null;if(null==f){var f=a.createTemporaryGraph(d.stylesheet),k=!0,x=!1,C=null,N=null;null==A.viewState&&null==A.root&&a.updatePageRoot(A);null!=A.viewState&&
+(k=A.viewState.pageVisible,x=A.viewState.mathEnabled,C=A.viewState.background,N=A.viewState.backgroundImage,f.extFonts=A.viewState.extFonts);f.background=C;f.backgroundImage=null!=N?new mxImage(N.src,N.width,N.height):null;f.pageVisible=k;f.mathEnabled=x;var E=f.getGlobalVariable;f.getGlobalVariable=function(c){return"page"==c?A.getName():"pagenumber"==c?p+1:"pagecount"==c?null!=a.pages?a.pages.length:1:E.apply(this,arguments)};document.body.appendChild(f.container);a.updatePageRoot(A);f.model.setRoot(A.root)}u=
+b(f,u,p!=n);f!=d&&f.container.parentNode.removeChild(f.container)}}else u=b(d);null==u?a.handleError({message:mxResources.get("errorUpdatingPreview")}):(u.mathEnabled&&(n=u.wnd.document,c&&(u.wnd.IMMEDIATE_PRINT=!0),n.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),u.closeDocument(),!u.mathEnabled&&c&&PrintDialog.printPreview(u));null!=g&&(d.stylesheet=g,d.refresh())}}var d=a.editor.graph,g=document.createElement("div"),f=document.createElement("h3");
+f.style.width="100%";f.style.textAlign="center";f.style.marginTop="0px";mxUtils.write(f,c||mxResources.get("print"));g.appendChild(f);var k=1,l=1,n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");n.appendChild(q);f=document.createElement("span");
+mxUtils.write(f,mxResources.get("printAllPages"));n.appendChild(f);mxUtils.br(n);var u=q.cloneNode(!0);q.setAttribute("checked","checked");u.setAttribute("value","range");n.appendChild(u);f=document.createElement("span");mxUtils.write(f,mxResources.get("pages")+":");n.appendChild(f);var m=document.createElement("input");m.style.cssText="margin:0 8px 0 8px;";m.setAttribute("value","1");m.setAttribute("type","number");m.setAttribute("min","1");m.style.width="50px";n.appendChild(m);f=document.createElement("span");
+mxUtils.write(f,mxResources.get("to"));n.appendChild(f);var t=m.cloneNode(!0);n.appendChild(t);mxEvent.addListener(m,"focus",function(){u.checked=!0});mxEvent.addListener(t,"focus",function(){u.checked=!0});mxEvent.addListener(m,"change",b);mxEvent.addListener(t,"change",b);if(null!=a.pages&&(k=a.pages.length,null!=a.currentPage))for(f=0;f<a.pages.length;f++)if(a.currentPage==a.pages[f]){l=f+1;m.value=l;t.value=l;break}m.setAttribute("max",k);t.setAttribute("max",k);a.isPagesEnabled()?1<k&&(g.appendChild(n),
+u.checked=!0):u.checked=!0;var x=document.createElement("div");x.style.marginBottom="10px";var p=document.createElement("input");p.style.marginRight="8px";p.setAttribute("value","adjust");p.setAttribute("type","radio");p.setAttribute("name","printZoom");x.appendChild(p);f=document.createElement("span");mxUtils.write(f,mxResources.get("adjustTo"));x.appendChild(f);var v=document.createElement("input");v.style.cssText="margin:0 8px 0 8px;";v.setAttribute("value","100 %");v.style.width="50px";x.appendChild(v);
+mxEvent.addListener(v,"focus",function(){p.checked=!0});g.appendChild(x);var n=n.cloneNode(!1),z=p.cloneNode(!0);z.setAttribute("value","fit");p.setAttribute("checked","checked");f=document.createElement("div");f.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";f.appendChild(z);n.appendChild(f);x=document.createElement("table");x.style.display="inline-block";var A=document.createElement("tbody"),C=document.createElement("tr"),N=C.cloneNode(!0),E=document.createElement("td"),
+G=E.cloneNode(!0),H=E.cloneNode(!0),D=E.cloneNode(!0),U=E.cloneNode(!0),M=E.cloneNode(!0);E.style.textAlign="right";D.style.textAlign="right";mxUtils.write(E,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";G.appendChild(O);f=document.createElement("span");mxUtils.write(f,mxResources.get("fitToSheetsAcross"));H.appendChild(f);mxUtils.write(D,
+mxResources.get("fitToBy"));var I=O.cloneNode(!0);U.appendChild(I);mxEvent.addListener(O,"focus",function(){z.checked=!0});mxEvent.addListener(I,"focus",function(){z.checked=!0});f=document.createElement("span");mxUtils.write(f,mxResources.get("fitToSheetsDown"));M.appendChild(f);C.appendChild(E);C.appendChild(G);C.appendChild(H);N.appendChild(D);N.appendChild(U);N.appendChild(M);A.appendChild(C);A.appendChild(N);x.appendChild(A);n.appendChild(x);g.appendChild(n);n=document.createElement("div");f=
+document.createElement("div");f.style.fontWeight="bold";f.style.marginBottom="12px";mxUtils.write(f,mxResources.get("paperSize"));n.appendChild(f);f=document.createElement("div");f.style.marginBottom="12px";var F=PageSetupDialog.addPageFormatPanel(f,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(f);f=document.createElement("span");mxUtils.write(f,mxResources.get("pageScale"));n.appendChild(f);var K=document.createElement("input");K.style.cssText="margin:0 8px 0 8px;";
+K.setAttribute("value","100 %");K.style.width="60px";n.appendChild(K);g.appendChild(n);f=document.createElement("div");f.style.cssText="text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";a.editor.cancelFirst&&f.appendChild(n);a.isOffline()||(x=mxUtils.button(mxResources.get("help"),function(){d.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),x.className="geBtn",f.appendChild(x));PrintDialog.previewEnabled&&(x=
+mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();e(!1)}),x.className="geBtn",f.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();e(!0)});x.className="geBtn gePrimaryBtn";f.appendChild(x);a.editor.cancelFirst||f.appendChild(n);g.appendChild(f);this.container=g};var U=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=
+this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var a=this.image;null!=a&&null!=a.src&&Graph.isPageLink(a.src)&&(a={originalSrc:a.src});this.page.viewState.backgroundImage=a}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)}}else U.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 O=document.createElement("canvas"),N=new Image;N.onload=function(){try{O.getContext("2d").drawImage(N,0,0);var a=O.toDataURL("image/png");Editor.prototype.useCanvasForExport=
+null!=a&&6<a.length}catch(D){}};N.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){}})();
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,k){k.ui=a.ui;return d};a.afterDecode=function(a,d,k){k.previousColor=k.color;k.previousImage=k.image;k.previousFormat=k.format;null!=k.foldingEnabled&&(k.foldingEnabled=!k.foldingEnabled);null!=k.mathEnabled&&(k.mathEnabled=!k.mathEnabled);null!=k.shadowVisible&&(k.shadowVisible=!k.shadowVisible);return k};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,d,k){k.ui=a.ui;return d};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="15.0.2";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,d,k){k.ui=a.ui;return d};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="15.0.3";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;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.nativeFileSupport=
!mxClient.IS_OP&&!EditorUi.isElectronApp&&"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,
noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(a,b,d,f,k,q,u){q=null!=q?q:0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":
@@ -3347,7 +3348,7 @@ null==a.getName()&&a.setName(mxResources.get("pageWithNumber",[d+1])),this.pages
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,k,q,m,t,p,x,G){try{f=null!=f?f:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!k),
e=c+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+this.getFileData(!0,null,null,null,f,k,null,null,null,b);this.saveData(e,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,c),this.saveData(e,a,g,"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!=q&&(this.editor.graph.pageVisible=q);var d=this.createDownloadRequest(c,a,f,b,m,k,t,p,x,G);this.editor.graph.pageVisible=e;return d}catch(v){this.handleError(v)}}));else{var l=null,n=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(l)}))});if("svg"==a){var u=this.editor.graph.background;if(m||u==mxConstants.NONE)u=
-null;var A=this.editor.graph.getSvg(u,null,null,null,null,f);d&&this.editor.graph.addSvgShadow(A);this.editor.convertImages(A,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();n('<?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",l=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();n(a)}),f)}}catch(M){this.handleError(M)}};EditorUi.prototype.createDownloadRequest=
+null;var C=this.editor.graph.getSvg(u,null,null,null,null,f);d&&this.editor.graph.addSvgShadow(C);this.editor.convertImages(C,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();n('<?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",l=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();n(a)}),f)}}catch(M){this.handleError(M)}};EditorUi.prototype.createDownloadRequest=
function(a,b,d,f,k,q,m,t,p,x){var c=this.editor.graph,e=c.getGraphBounds();d=this.getFileData(!0,null,null,null,d,0==q?!1:"xmlpng"!=b);var g="",l="";if(e.width*e.height>MAX_AREA||d.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};x=x?"1":"0";"pdf"==b&&0==q&&(l="&allPages=1");if("xmlpng"==b&&(x="1",b="png",null!=this.pages&&null!=this.currentPage))for(q=0;q<this.pages.length;q++)if(this.pages[q]==this.currentPage){g="&from="+q;break}q=c.background;"png"!=b&&"pdf"!=b||!k?k||
null!=q&&q!=mxConstants.NONE||(q="#ffffff"):q=mxConstants.NONE;k={globalVars:c.getExportVariables()};p&&(k.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});Graph.translateDiagram&&(k.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+b+g+l+"&bg="+(null!=q?q:mxConstants.NONE)+"&base64="+f+"&embedXml="+x+"&xml="+encodeURIComponent(d)+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(k))+(null!=m?"&scale="+
m:"")+(null!=t?"&border="+t:""))};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(d){var e=null!=a.data?a.data:"";null!=d&&0<d.length&&(0<e.length&&(e+="\n"),e+=d);d=new LocalFile(this,"csv"!=a.format&&0<e.length?e:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.getHash=function(){return c};this.fileLoaded(d);"csv"==a.format&&this.importCsv(e,
@@ -3355,7 +3356,7 @@ mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setMod
" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),l=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(k,f)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){l();k()}));l();k()}null!=b&&b()});null!=a.url&&0<a.url.length?this.editor.loadUrl(a.url,mxUtils.bind(this,function(a){e(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)})):e("")};EditorUi.prototype.updateDiagram=function(a){function c(a){var c=new mxCellOverlay(a.image||f.warningImage,
a.tooltip,a.align,a.valign,a.offset);c.addListener(mxEvent.CLICK,function(c,b){d.alert(a.tooltip)});return c}var b=null,d=this;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null,null!=a&&"updates"==a.nodeName)){var f=this.editor.graph,k=f.getModel();k.beginUpdate();var m=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var t=k.getCell(a.getAttribute("id"));if(null!=t){try{var p=a.getAttribute("value");if(null!=p){var x=mxUtils.parseXml(p).documentElement;
if(null!=x)if("1"==x.getAttribute("replace-value"))k.setValue(t,x);else for(var G=x.attributes,z=0;z<G.length;z++)f.setAttributeForCell(t,G[z].nodeName,0<G[z].nodeValue.length?G[z].nodeValue:null)}}catch(U){null!=window.console&&console.log("Error in value for "+t.id+": "+U)}try{var E=a.getAttribute("style");null!=E&&f.model.setStyle(t,E)}catch(U){null!=window.console&&console.log("Error in style for "+t.id+": "+U)}try{var H=a.getAttribute("icon");if(null!=H){var K=0<H.length?JSON.parse(H):null;null!=
-K&&K.append||f.removeCellOverlays(t);null!=K&&f.addCellOverlay(t,c(K))}}catch(U){null!=window.console&&console.log("Error in icon for "+t.id+": "+U)}try{var F=a.getAttribute("geometry");if(null!=F){var F=JSON.parse(F),I=f.getCellGeometry(t);if(null!=I){I=I.clone();for(key in F){var D=parseFloat(F[key]);"dx"==key?I.x+=D:"dy"==key?I.y+=D:"dw"==key?I.width+=D:"dh"==key?I.height+=D:I[key]=parseFloat(F[key])}f.model.setGeometry(t,I)}}}catch(U){null!=window.console&&console.log("Error in icon for "+t.id+
+K&&K.append||f.removeCellOverlays(t);null!=K&&f.addCellOverlay(t,c(K))}}catch(U){null!=window.console&&console.log("Error in icon for "+t.id+": "+U)}try{var F=a.getAttribute("geometry");if(null!=F){var F=JSON.parse(F),I=f.getCellGeometry(t);if(null!=I){I=I.clone();for(key in F){var C=parseFloat(F[key]);"dx"==key?I.x+=C:"dy"==key?I.y+=C:"dw"==key?I.width+=C:"dh"==key?I.height+=C:I[key]=parseFloat(F[key])}f.model.setGeometry(t,I)}}}catch(U){null!=window.console&&console.log("Error in icon for "+t.id+
": "+U)}}}else if("model"==a.nodeName){for(var M=a.firstChild;null!=M&&M.nodeType!=mxConstants.NODETYPE_ELEMENT;)M=M.nextSibling;null!=M&&(new mxCodec(a.firstChild)).decode(M,k)}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&&(m=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):
1);a=a.nextSibling}}finally{k.endUpdate()}null!=m&&this.chromelessResize&&this.chromelessResize(!0,m)}return b};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 f=new Date,e=f.getFullYear(),k=f.getMonth()+1,m=f.getDate(),p=f.getHours(),x=f.getMinutes(),f=f.getSeconds(),c=c+(" "+(e+"-"+k+"-"+m+"-"+p+"-"+x+"-"+f));return c=mxResources.get("copyOf",[c])+d};
EditorUi.prototype.fileLoaded=function(a,b){var c=this.getCurrentFile();this.fileEditable=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();
@@ -3377,15 +3378,15 @@ null!=f&&0<f.length&&".scratchpad"!=a.title&&n.setAttribute("title",this.getLibr
k,b,a,a.getMode());mxEvent.consume(c)}),F=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=H&&null!=H.parentNode&&H.parentNode.removeChild(H),H=p.cloneNode(!1),H.setAttribute("src",Editor.spinImage),H.setAttribute("title",mxResources.get("saving")),H.style.cursor="default",H.style.marginRight="2px",H.style.marginTop="-2px",m.insertBefore(H,m.firstChild),n.style.paddingRight=18*m.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=H&&null!=
H.parentNode&&(H.parentNode.removeChild(H),n.style.paddingRight=18*m.childNodes.length+"px")})):null==z&&(z=p.cloneNode(!1),z.setAttribute("src",IMAGE_PATH+"/download.png"),z.setAttribute("title",mxResources.get("save")),m.insertBefore(z,m.firstChild),mxEvent.addListener(z,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==z||a.isModified()||(n.style.paddingRight=18*m.childNodes.length+"px",z.parentNode.removeChild(z),
z=null)});mxEvent.consume(c)})),n.style.paddingRight=18*m.childNodes.length+"px")}),I=mxUtils.bind(this,function(a,c,d,f){a=E.cloneCells(mxUtils.sortCells(E.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var l=E.getCellGeometry(a[g]);null!=l&&l.translate(-c.x,-c.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,f||"",!0,!1,!1));a={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=f&&(a.title=f);b.push(a);F(d);null!=
-e&&null!=e.parentNode&&0<b.length&&(e.parentNode.removeChild(e),e=null)}),D=mxUtils.bind(this,function(a){if(E.isSelectionEmpty())E.getRubberband().isActive()?(E.getRubberband().execute(a),E.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=E.getSelectionCells(),b=E.view.getBounds(c),d=E.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=E.view.translate.x;b.y-=E.view.translate.y;I(c,b)}mxEvent.consume(a)});mxEvent.addGestureListeners(k,
+e&&null!=e.parentNode&&0<b.length&&(e.parentNode.removeChild(e),e=null)}),C=mxUtils.bind(this,function(a){if(E.isSelectionEmpty())E.getRubberband().isActive()?(E.getRubberband().execute(a),E.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=E.getSelectionCells(),b=E.view.getBounds(c),d=E.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=E.view.translate.x;b.y-=E.view.translate.y;I(c,b)}mxEvent.consume(a)});mxEvent.addGestureListeners(k,
function(){},mxUtils.bind(this,function(a){E.isMouseDown&&null!=E.panningManager&&null!=E.graphHandler.first&&(E.graphHandler.suspend(),null!=E.graphHandler.hint&&(E.graphHandler.hint.style.visibility="hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",E.panningManager.stop(),E.autoScroll=!1,mxEvent.consume(a))}),mxUtils.bind(this,function(a){E.isMouseDown&&null!=E.panningManager&&null!=E.graphHandler&&(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,
-E.panningManager.stop(),E.graphHandler.reset(),E.isMouseDown=!1,E.autoScroll=!0,D(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){E.isMouseDown&&null!=E.graphHandler.first&&(E.graphHandler.resume(),null!=E.graphHandler.hint&&(E.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",E.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(a){k.style.backgroundColor="#f1f3f4";a.dataTransfer.dropEffect=
+E.panningManager.stop(),E.graphHandler.reset(),E.isMouseDown=!1,E.autoScroll=!0,C(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){E.isMouseDown&&null!=E.graphHandler.first&&(E.graphHandler.resume(),null!=E.graphHandler.hint&&(E.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",E.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(a){k.style.backgroundColor="#f1f3f4";a.dataTransfer.dropEffect=
"copy";k.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(a){k.style.cursor="";k.style.backgroundColor="";0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,f,l,n,m,q,u,t){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(c),c=[new mxCell("",
new mxGeometry(0,0,n,m),c)],c[0].vertex=!0,I(c,new mxRectangle(0,0,n,m),a,mxEvent.isAltDown(a)?null:q.substring(0,q.lastIndexOf(".")).replace(/_/g," ")),null!=e&&null!=e.parentNode&&0<b.length&&(e.parentNode.removeChild(e),e=null);else{var p=!1,x=mxUtils.bind(this,function(c,d){if(null!=c&&"application/pdf"==d){var f=Editor.extractGraphModelFromPdf(c);null!=f&&0<f.length&&(c=f)}if(null!=c)if(f=mxUtils.parseXml(c),"mxlibrary"==f.documentElement.nodeName)try{var l=JSON.parse(mxUtils.getTextContent(f.documentElement));
g(l,k);b=b.concat(l);F(a);this.spinner.stop();p=!0}catch(T){}else if("mxfile"==f.documentElement.nodeName)try{for(var n=f.documentElement.getElementsByTagName("diagram"),l=0;l<n.length;l++){var q=this.stringToCells(Editor.getDiagramNodeXml(n[l])),m=this.editor.graph.getBoundingBoxFromGeometry(q);I(q,new mxRectangle(0,0,m.width,m.height),a)}p=!0}catch(T){null!=window.console&&console.log("error in drop handler:",T)}p||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
null!=e&&null!=e.parentNode&&0<b.length&&(e.parentNode.removeChild(e),e=null)});null!=t&&null!=q&&(/(\.v(dx|sdx?))($|\?)/i.test(q)||/(\.vs(x|sx?))($|\?)/i.test(q))?this.importVisio(t,function(a){x(a,"text/xml")},null,q):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,q)&&null!=t?this.parseFile(t,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?x(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?
"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):x(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"dragleave",function(a){k.style.cursor="";k.style.backgroundColor="";a.stopPropagation();a.preventDefault()}));p=p.cloneNode(!1);p.setAttribute("src",Editor.editImage);p.setAttribute("title",mxResources.get("edit"));m.insertBefore(p,m.firstChild);mxEvent.addListener(p,"click",K);mxEvent.addListener(k,"dblclick",function(a){mxEvent.getSource(a)==
-k&&K(a)});f=p.cloneNode(!1);f.setAttribute("src",Editor.plusImage);f.setAttribute("title",mxResources.get("add"));m.insertBefore(f,m.firstChild);mxEvent.addListener(f,"click",D);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(f=document.createElement("span"),f.setAttribute("title",mxResources.get("help")),f.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(f,"?"),mxEvent.addGestureListeners(f,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);
+k&&K(a)});f=p.cloneNode(!1);f.setAttribute("src",Editor.plusImage);f.setAttribute("title",mxResources.get("add"));m.insertBefore(f,m.firstChild);mxEvent.addListener(f,"click",C);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(f=document.createElement("span"),f.setAttribute("title",mxResources.get("help")),f.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(f,"?"),mxEvent.addGestureListeners(f,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);
mxEvent.consume(a)})),m.insertBefore(f,m.firstChild))}n.appendChild(m);n.style.paddingRight=18*m.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),f="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(f+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(f+"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.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="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):Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultPageBorderColor="#505759",BaseFormatPanel.prototype.buttonBackgroundColor=
@@ -3428,7 +3429,7 @@ c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=
a,m,!0,c,d)}catch(H){this.handleError(H)}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,u,null,1<c,e,f,m,k);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,k,m){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,b,d,f,k,m,u,p,A,x,G,z){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=G?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var g=this.editor.graph.getSvg(e,a,u,p,null,d,null,null,"blank"==
x?"_blank":"self"==x?"_top":null,null,!0,G,z);f&&this.editor.graph.addSvgShadow(g);var l=this.getBaseFilename()+".svg",n=mxUtils.bind(this,function(a){this.spinner.stop();k&&a.setAttribute("content",this.getFileData(!0,null,null,null,d,A,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(l,"svg",c,"image/svg+xml"):
-this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(g);this.editor.graph.mathEnabled&&this.editor.addMathCss(g);m?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(g,n,this.thumbImageCache)):n(g)}catch(D){this.handleError(D)}};EditorUi.prototype.addRadiobox=function(a,b,d,f,k,m,u){return this.addCheckbox(a,d,f,k,m,u,!0,b)};EditorUi.prototype.addCheckbox=function(a,
+this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(g);this.editor.graph.mathEnabled&&this.editor.addMathCss(g);m?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(g,n,this.thumbImageCache)):n(g)}catch(C){this.handleError(C)}};EditorUi.prototype.addRadiobox=function(a,b,d,f,k,m,u){return this.addCheckbox(a,d,f,k,m,u,!0,b)};EditorUi.prototype.addCheckbox=function(a,
b,d,f,k,m,u,p){m=null!=m?m:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",u?"radio":"checkbox");u="geCheckbox-"+Editor.guid();c.id=u;null!=p&&c.setAttribute("name",p);d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);f&&c.setAttribute("disabled","disabled");m&&(a.appendChild(c),d=document.createElement("label"),mxUtils.write(d,b),d.setAttribute("for",u),a.appendChild(d),k||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||
@@ -3444,25 +3445,25 @@ encodeURIComponent(a):"";G(b,'<script type="text/javascript" src="'+(0<a.length?
mxResources.get("html"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(e);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","type-embedhtmldialog");e=k.cloneNode(!0);e.setAttribute("value",
"copy");g.appendChild(e);var n=document.createElement("span");mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(n);mxUtils.br(g);g.appendChild(k);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));g.appendChild(n);var m=this.getCurrentFile();null==d&&null!=m&&m.constructor==window.DriveFile&&(n=document.createElement("a"),n.style.paddingLeft="12px",n.style.color="gray",n.style.cursor="pointer",mxUtils.write(n,mxResources.get("share")),g.appendChild(n),
mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(m.getId())})));e.setAttribute("checked","checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var p=this.addLinkSection(c),z=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var E=document.createElement("input");E.setAttribute("type","text");E.style.marginRight="16px";E.style.width="60px";E.style.marginLeft="4px";E.style.marginRight="12px";E.value=
-"100%";c.appendChild(E);var H=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,K=K=this.addCheckbox(c,mxResources.get("allPages"),g,!g),F=this.addCheckbox(c,mxResources.get("layers"),!0),I=this.addCheckbox(c,mxResources.get("lightbox"),!0),D=this.addEditButton(c,I),M=D.getEditInput();M.style.marginBottom="16px";mxEvent.addListener(I,"change",function(){I.checked?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled");M.checked&&I.checked?D.getEditSelect().removeAttribute("disabled"):
-D.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){f(k.checked?d:null,z.checked,E.value,p.getTarget(),p.getColor(),H.checked,K.checked,F.checked,I.checked,D.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);e.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,f,k,m){var c=document.createElement("div");c.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,a||mxResources.get("link"));e.style.cssText=
+"100%";c.appendChild(E);var H=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,K=K=this.addCheckbox(c,mxResources.get("allPages"),g,!g),F=this.addCheckbox(c,mxResources.get("layers"),!0),I=this.addCheckbox(c,mxResources.get("lightbox"),!0),C=this.addEditButton(c,I),M=C.getEditInput();M.style.marginBottom="16px";mxEvent.addListener(I,"change",function(){I.checked?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled");M.checked&&I.checked?C.getEditSelect().removeAttribute("disabled"):
+C.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){f(k.checked?d:null,z.checked,E.value,p.getTarget(),p.getColor(),H.checked,K.checked,F.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,k,m){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 g=this.getCurrentFile(),e="https://www.diagrams.net/doc/faq/publish-diagram-as-link";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var e="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",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 n=document.createElement("div");
n.style.whiteSpace="normal";mxUtils.write(n,mxResources.get("linkAccountRequired"));l.appendChild(n);n=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));n.style.marginTop="12px";n.className="geBtn";l.appendChild(n);c.appendChild(l);n=document.createElement("a");n.style.paddingLeft="12px";n.style.color="gray";n.style.fontSize="11px";n.style.cursor="pointer";mxUtils.write(n,mxResources.get("check"));l.appendChild(n);mxEvent.addListener(n,"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 q=null,p=null;if(null!=d||null!=f)a+=30,mxUtils.write(c,mxResources.get("width")+":"),q=document.createElement("input"),q.setAttribute("type","text"),
q.style.marginRight="16px",q.style.width="50px",q.style.marginLeft="6px",q.style.marginRight="16px",q.style.marginBottom="10px",q.value="100%",c.appendChild(q),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 H=this.addLinkSection(c,m);d=null!=this.pages&&1<this.pages.length;var K=null;if(null==g||g.constructor!=window.DriveFile||
-b)K=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var F=this.addCheckbox(c,mxResources.get("lightbox"),!0,null,null,!m),I=this.addEditButton(c,F),D=I.getEditInput();m&&(D.style.marginLeft=F.style.marginLeft,F.style.display="none",a-=30);var M=this.addCheckbox(c,mxResources.get("layers"),!0);M.style.marginLeft=D.style.marginLeft;M.style.marginBottom="16px";M.style.marginTop="8px";mxEvent.addListener(F,"change",function(){F.checked?(M.removeAttribute("disabled"),D.removeAttribute("disabled")):
-(M.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"));D.checked&&F.checked?I.getEditSelect().removeAttribute("disabled"):I.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){k(H.getTarget(),H.getColor(),null==K?!0:K.checked,F.checked,I.getLink(),M.checked,null!=q?q.value:null,null!=p?p.value:null)}),null,mxResources.get("create"),e);this.showDialog(b.container,340,254+a,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||
+b)K=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var F=this.addCheckbox(c,mxResources.get("lightbox"),!0,null,null,!m),I=this.addEditButton(c,F),C=I.getEditInput();m&&(C.style.marginLeft=F.style.marginLeft,F.style.display="none",a-=30);var M=this.addCheckbox(c,mxResources.get("layers"),!0);M.style.marginLeft=C.style.marginLeft;M.style.marginBottom="16px";M.style.marginTop="8px";mxEvent.addListener(F,"change",function(){F.checked?(M.removeAttribute("disabled"),C.removeAttribute("disabled")):
+(M.setAttribute("disabled","disabled"),C.setAttribute("disabled","disabled"));C.checked&&F.checked?I.getEditSelect().removeAttribute("disabled"):I.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){k(H.getTarget(),H.getColor(),null==K?!0:K.checked,F.checked,I.getLink(),M.checked,null!=q?q.value:null,null!=p?p.value:null)}),null,mxResources.get("create"),e);this.showDialog(b.container,340,254+a,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||
5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)):H.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,f,k){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:"+(k?"10":"4")+"px";c.appendChild(e);if(k){mxUtils.write(c,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%";c.appendChild(g);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 n=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),
m=f?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0),e=this.editor.graph,p=f?null:this.addCheckbox(c,mxResources.get("transparentBackground"),e.background==mxConstants.NONE||null==e.background);null!=p&&(p.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,c=parseInt(l.value)||0;d(!n.checked,null!=m?m.checked:!1,null!=p?p.checked:!1,a,c)}),null,a,b);this.showDialog(a.container,300,(k?25:0)+(f?125:210),!0,!0)};EditorUi.prototype.showExportDialog=
function(a,b,d,f,k,m,p,t,A){p=null!=p?p:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var e=this.editor.graph,g="jpeg"==t?196:300,l=document.createElement("h3");mxUtils.write(l,a);l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(l);mxUtils.write(c,mxResources.get("zoom")+":");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=this.lastExportZoom||"100%";c.appendChild(n);mxUtils.write(c,mxResources.get("borderWidth")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.value=this.lastExportBorder||"0";c.appendChild(q);mxUtils.br(c);var u=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,e.isSelectionEmpty()),I=document.createElement("input");I.style.marginTop="16px";I.style.marginRight="8px";I.style.marginLeft=
-"24px";I.setAttribute("disabled","disabled");I.setAttribute("type","checkbox");var D=document.createElement("select");D.style.marginTop="16px";D.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(l=0;l<a.length;l++)if(!e.isSelectionEmpty()||"selectionOnly"!=a[l]){var M=document.createElement("option");mxUtils.write(M,mxResources.get(a[l]));M.setAttribute("value",a[l]);D.appendChild(M)}A?(mxUtils.write(c,mxResources.get("size")+":"),c.appendChild(D),mxUtils.br(c),g+=26,mxEvent.addListener(D,
-"change",function(){"selectionOnly"==D.value&&(u.checked=!0)})):m&&(c.appendChild(I),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(u,"change",function(){u.checked?I.removeAttribute("disabled"):I.setAttribute("disabled","disabled")}));e.isSelectionEmpty()?A&&(u.style.display="none",u.nextSibling.style.display="none",u.nextSibling.nextSibling.style.display="none",g-=26):(D.value="diagram",I.setAttribute("checked","checked"),I.defaultChecked=!0,mxEvent.addListener(u,
-"change",function(){D.value=u.checked?"selectionOnly":"diagram"}));var U=this.addCheckbox(c,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),P=null;Editor.isDarkMode()&&(P=this.addCheckbox(c,mxResources.get("dark"),!0),g+=26);var N=this.addCheckbox(c,mxResources.get("shadow"),e.shadowVisible),v=document.createElement("input");v.style.marginTop="16px";v.style.marginRight="8px";v.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||v.setAttribute("disabled","disabled");
-b&&(c.appendChild(v),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=null;if("png"==t||"jpeg"==t)C=this.addCheckbox(c,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),g+=26;var B=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),p,null,null,"jpeg"!=t);B.style.marginBottom="16px";var J=document.createElement("select");J.style.maxWidth="260px";J.style.marginLeft="8px";J.style.marginRight="10px";J.className="geBtn";b=document.createElement("option");
+"24px";I.setAttribute("disabled","disabled");I.setAttribute("type","checkbox");var C=document.createElement("select");C.style.marginTop="16px";C.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(l=0;l<a.length;l++)if(!e.isSelectionEmpty()||"selectionOnly"!=a[l]){var M=document.createElement("option");mxUtils.write(M,mxResources.get(a[l]));M.setAttribute("value",a[l]);C.appendChild(M)}A?(mxUtils.write(c,mxResources.get("size")+":"),c.appendChild(C),mxUtils.br(c),g+=26,mxEvent.addListener(C,
+"change",function(){"selectionOnly"==C.value&&(u.checked=!0)})):m&&(c.appendChild(I),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(u,"change",function(){u.checked?I.removeAttribute("disabled"):I.setAttribute("disabled","disabled")}));e.isSelectionEmpty()?A&&(u.style.display="none",u.nextSibling.style.display="none",u.nextSibling.nextSibling.style.display="none",g-=26):(C.value="diagram",I.setAttribute("checked","checked"),I.defaultChecked=!0,mxEvent.addListener(u,
+"change",function(){C.value=u.checked?"selectionOnly":"diagram"}));var U=this.addCheckbox(c,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),O=null;Editor.isDarkMode()&&(O=this.addCheckbox(c,mxResources.get("dark"),!0),g+=26);var N=this.addCheckbox(c,mxResources.get("shadow"),e.shadowVisible),v=document.createElement("input");v.style.marginTop="16px";v.style.marginRight="8px";v.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||v.setAttribute("disabled","disabled");
+b&&(c.appendChild(v),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var D=null;if("png"==t||"jpeg"==t)D=this.addCheckbox(c,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),g+=26;var B=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),p,null,null,"jpeg"!=t);B.style.marginBottom="16px";var J=document.createElement("select");J.style.maxWidth="260px";J.style.marginLeft="8px";J.style.marginRight="10px";J.className="geBtn";b=document.createElement("option");
b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));J.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");mxUtils.write(b,mxResources.get("openInNewWindow"));J.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));J.appendChild(b);"svg"==t&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(J),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,
-mxUtils.bind(this,function(){this.lastExportBorder=q.value;this.lastExportZoom=n.value;k(n.value,U.checked,!u.checked,N.checked,B.checked,v.checked,q.value,I.checked,!1,J.value,null!=C?C.checked:null,null!=P?P.checked:null,D.value)}),null,d,f);this.showDialog(d.container,340,g,!0,!0,null,null,null,null,!0);n.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?n.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,f,k){var c=document.createElement("div");
+mxUtils.bind(this,function(){this.lastExportBorder=q.value;this.lastExportZoom=n.value;k(n.value,U.checked,!u.checked,N.checked,B.checked,v.checked,q.value,I.checked,!1,J.value,null!=D?D.checked:null,null!=O?O.checked:null,C.value)}),null,d,f);this.showDialog(d.container,340,g,!0,!0,null,null,null,null,!0);n.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?n.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,f,k){var c=document.createElement("div");
c.style.whiteSpace="nowrap";var e=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";c.appendChild(g)}var l=this.addCheckbox(c,mxResources.get("fit"),!0),n=this.addCheckbox(c,mxResources.get("shadow"),e.shadowVisible&&f,!f),m=this.addCheckbox(c,d),p=this.addCheckbox(c,mxResources.get("lightbox"),!0),E=this.addEditButton(c,p),H=E.getEditInput(),K=1<e.model.getChildCount(e.model.getRoot()),
F=this.addCheckbox(c,mxResources.get("layers"),K,!K);F.style.marginLeft=H.style.marginLeft;F.style.marginBottom="12px";F.style.marginTop="8px";mxEvent.addListener(p,"change",function(){p.checked?(K&&F.removeAttribute("disabled"),H.removeAttribute("disabled")):(F.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"));H.checked&&p.checked?E.getEditSelect().removeAttribute("disabled"):E.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,
function(){a(l.checked,n.checked,m.checked,p.checked,E.getLink(),F.checked)}),null,mxResources.get("embed"),k);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,d,f,k,m,p,t){function c(c){var b=" ",l="";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('"+
@@ -3483,7 +3484,7 @@ EditorUi.prototype.exportImage=function(a,b,d,f,k,m,p,t,A,x,G,z,E){A=null!=A?A:"
null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,f,null,null,m,p,x,z,E)}catch(K){this.spinner.stop(),this.handleError(K)}}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return this.editor.isCorsEnabledForUrl(a)};EditorUi.prototype.importXml=function(a,b,d,f,k,m,p){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 g=mxUtils.parseXml(a);a={};var l=this.editor.extractGraphModel(g.documentElement,
null!=this.pages);if(null!=l&&"mxfile"==l.nodeName&&null!=this.pages){var n=l.getElementsByTagName("diagram");if(1==n.length&&!m){if(l=Editor.parseDiagramNode(n[0]),null!=this.currentPage&&(a[n[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1]))){var q=n[0].getAttribute("name");null!=q&&""!=q&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,q))}}else if(0<
n.length){m=[];var u=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(a[n[0].getAttribute("id")]=this.pages[0].getId(),l=Editor.parseDiagramNode(n[0]),f=!1,u=1);for(;u<n.length;u++){var K=n[u].getAttribute("id");n[u].removeAttribute("id");var F=this.updatePageRoot(new DiagramPage(n[u]));a[K]=n[u].getAttribute("id");var I=this.pages.length;null==F.getName()&&F.setName(mxResources.get("pageWithNumber",[I+1]));e.model.execute(new ChangePage(this,F,F,I,!0));m.push(F)}this.updatePageLinks(a,
-m)}}if(null!=l&&"mxGraphModel"===l.nodeName&&(c=e.importGraphModel(l,b,d,f),null!=c))for(u=0;u<c.length;u++)this.updatePageLinksForCell(a,c[u]);p&&this.insertHandler(c,null,null,Graph.prototype.defaultVertexStyle,Graph.prototype.defaultEdgeStyle,!0,!0)}finally{e.model.endUpdate()}}}catch(D){if(k)throw D;this.handleError(D)}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,
+m)}}if(null!=l&&"mxGraphModel"===l.nodeName&&(c=e.importGraphModel(l,b,d,f),null!=c))for(u=0;u<c.length;u++)this.updatePageLinksForCell(a,c[u]);p&&this.insertHandler(c,null,null,Graph.prototype.defaultVertexStyle,Graph.prototype.defaultEdgeStyle,!0,!0)}finally{e.model.endUpdate()}}}catch(C){if(k)throw C;this.handleError(C)}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.sanitizeHtml(d.getLabel(b));for(var f=c.getElementsByTagName("a"),k=!1,m=0;m<f.length;m++)e=f[m].getAttribute("href"),null!=e&&(f[m].setAttribute("href",this.updatePageLink(a,e)),k=!0);k&&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(Graph.isPageLink(b)){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];if(null!=f.open&&Graph.isPageLink(f.open)){var k=f.open.substring(f.open.indexOf(",")+1),c=a[k];null!=c?f.open="data:page/id,"+c:null==this.getPageById(k)&&delete f.open}}b="data:action/json,"+JSON.stringify(d)}}catch(t){}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,k){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",g=f.lastIndexOf(".");if(0<=g&&g<f.length)e=f.substring(g+1).toUpperCase();else{var l=f.lastIndexOf("/");0<=
@@ -3497,7 +3498,7 @@ function(){mxscript("js/orgchart/OrgChart.Layout.min.js",function(){mxscript("js
a.replace(/ xmlns:\S*="http:\/\/www.w3.org\/XML\/1998\/namespace"/g,"").replace(/ (NS xml|\S*):space="preserve"/g,' xml:space="preserve"');var b=mxUtils.parseXml(a).getElementsByTagName("svg");if(0<b.length){var e=parseFloat(b[0].getAttribute("width")),g=parseFloat(b[0].getAttribute("height"));if(isNaN(e)||isNaN(g))try{var k=b[0].getAttribute("viewBox").split(/\s+/),e=parseFloat(k[2]),g=parseFloat(k[3])}catch(z){e=e||100,g=g||100}d(c.convertDataUri(Editor.createSvgDataUri(a)),e,g)}else f({message:mxResources.get("invalidInput")})}catch(z){f(z)}})}catch(u){f(u)}};
"undefined"!==typeof mermaid||this.loadingMermaid||this.isOffline(!0)?e():(this.loadingMermaid=!0,"1"==urlParams.dev?mxscript("js/mermaid/mermaid.min.js",e):mxscript("js/extensions.min.js",e))};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 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+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}(Graph.arrayBufferToString(pako.deflateRaw(a))),!0);"txt"!=b&&(g.responseType="blob");g.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 g=c.result,k=g.indexOf(","),l=decodeURIComponent(escape(atob(g.substring(k+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(D){f(D)}};b.src=c.result};c.onerror=function(a){f(a)}}else f(a)};g.onerror=
+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 g=c.result,k=g.indexOf(","),l=decodeURIComponent(escape(atob(g.substring(k+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(C){f(C)}};b.src=c.result};c.onerror=function(a){f(a)}}else f(a)};g.onerror=
function(a){f(a)};g.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,k,m,p,t){m=null!=m?m:!0;p=null!=p?p:!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()&&(k||/\.(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,m,!0,t)}if("data:image/png;base64,"==
a.substring(0,22)&&(e=this.extractGraphModelFromPng(a),null!=e&&0<e.length))return this.importXml(e,b,d,m,!0,t);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 g=this.importXml(e,b,d,m,!0,t);if(0<g.length)return g}catch(E){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,
@@ -3515,14 +3516,14 @@ b(a):d()})):0==e.indexOf("versions/")&&(e=parseInt(e.substr(9)),e>f&&(f=e,g=c))}
null,null!=z?mxEvent.isControlDown(z):null),A=!0)),A||(b=this.editor.graph,G=a.indexOf(";"),0<G&&(a=a.substring(0,G)+a.substring(a.indexOf(",",G+1))),x&&b.isGridEnabled()&&(d=b.snap(d),f=b.snap(f)),e=[b.insertVertex(null,null,"",d,f,k,m,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)?(c=!0,this.importGraphML(a,g)):null!=A&&null!=p&&(/(\.v(dx|sdx?))($|\?)/i.test(p)||/(\.vs(x|sx?))($|\?)/i.test(p))?
(c=!0,this.importVisio(A,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,p)?(c=!0,this.parseFile(null!=A?A:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?g(a.responseText):null!=t&&t(null))}),p)):0==a.indexOf("PK")&&null!=A?(c=!0,this.importZipFile(A,g,mxUtils.bind(this,function(){e=this.insertTextAt(this.validateFileData(a),d,f,!0,null,x);t(e)}))):/(\.v(sd|dx))($|\?)/i.test(p)||/(\.vs(s|x))($|\?)/i.test(p)||
(e=this.insertTextAt(this.validateFileData(a),d,f,!0,null,x,null,null!=z?mxEvent.isControlDown(z):null));c||null==t||t(e);return e};EditorUi.prototype.importFiles=function(a,b,d,f,k,m,p,t,A,x,G,z,E){f=null!=f?f:this.maxImageSize;x=null!=x?x:this.maxImageBytes;var c=null!=b&&null!=d,e=!0;b=null!=b?b:0;d=null!=d?d:0;var g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var l=G||this.resampleThreshold,n=0;n<a.length;n++)if("image/"==a[n].type.substring(0,6)&&a[n].size>l){g=!0;break}var q=mxUtils.bind(this,
-function(){var g=this.editor.graph,l=g.gridSize;k=null!=k?k: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,E)}catch(ca){return this.handleError(ca),null}});m=null!=m?m:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var n=a.length,q=n,u=[],D=mxUtils.bind(this,function(a,
+function(){var g=this.editor.graph,l=g.gridSize;k=null!=k?k: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,E)}catch(ca){return this.handleError(ca),null}});m=null!=m?m:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var n=a.length,q=n,u=[],C=mxUtils.bind(this,function(a,
c){u[a]=c;if(0==--q){this.spinner.stop();if(null!=t)t(u);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<u.length;d++){var e=u[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}m(b)}}),A=0;A<n;A++)mxUtils.bind(this,function(c){var n=a[c];if(null!=n){var m=new FileReader;m.onload=mxUtils.bind(this,function(a){if(null==p||p(n))if("image/"==n.type.substring(0,6))if("image/svg"==n.type.substring(0,9)){var m=Graph.clipSvgDataUri(a.target.result),q=m.indexOf(","),v=decodeURIComponent(escape(atob(m.substring(q+
-1)))),u=mxUtils.parseXml(v),v=u.getElementsByTagName("svg");if(0<v.length){var v=v[0],t=z?null:v.getAttribute("content");null!=t&&"<"!=t.charAt(0)&&"%"!=t.charAt(0)&&(t=unescape(window.atob?atob(t):Base64.decode(t,!0)));null!=t&&"%"==t.charAt(0)&&(t=decodeURIComponent(t));null==t||"<mxfile "!==t.substring(0,8)&&"<mxGraphModel "!==t.substring(0,14)?D(c,mxUtils.bind(this,function(){try{if(m.substring(0,q+1),null!=u){var a=u.getElementsByTagName("svg");if(0<a.length){var e=a[0],p=e.getAttribute("width"),
-v=e.getAttribute("height"),p=null!=p&&"%"!=p.charAt(p.length-1)?parseFloat(p):NaN,v=null!=v&&"%"!=v.charAt(v.length-1)?parseFloat(v):NaN,t=e.getAttribute("viewBox");if(null==t||0==t.length)e.setAttribute("viewBox","0 0 "+p+" "+v);else if(isNaN(p)||isNaN(v)){var x=t.split(" ");3<x.length&&(p=parseFloat(x[2]),v=parseFloat(x[3]))}m=Editor.createSvgDataUri(mxUtils.getXml(e));var z=Math.min(1,Math.min(f/Math.max(1,p)),f/Math.max(1,v)),D=k(m,n.type,b+c*l,d+c*l,Math.max(1,Math.round(p*z)),Math.max(1,Math.round(v*
-z)),n.name);if(isNaN(p)||isNaN(v)){var N=new Image;N.onload=mxUtils.bind(this,function(){p=Math.max(1,N.width);v=Math.max(1,N.height);D[0].geometry.width=p;D[0].geometry.height=v;e.setAttribute("viewBox","0 0 "+p+" "+v);m=Editor.createSvgDataUri(mxUtils.getXml(e));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));g.setCellStyles("image",m,[D[0]])});N.src=Editor.createSvgDataUri(mxUtils.getXml(e))}return D}}}catch(ba){}return null})):D(c,mxUtils.bind(this,function(){return k(t,
-"text/xml",b+c*l,d+c*l,0,0,n.name)}))}else D(c,mxUtils.bind(this,function(){return null}))}else{v=!1;if("image/png"==n.type){var N=z?null:this.extractGraphModelFromPng(a.target.result);if(null!=N&&0<N.length){var B=new Image;B.src=a.target.result;D(c,mxUtils.bind(this,function(){return k(N,"text/xml",b+c*l,d+c*l,B.width,B.height,n.name)}));v=!0}}v||(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(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(a,g,m){D(c,mxUtils.bind(this,function(){if(null!=a&&a.length<x){var p=e&&this.isResampleImageSize(n.size,G)?Math.min(1,Math.min(f/g,f/m)):1;return k(a,n.type,b+c*l,d+c*l,Math.round(g*p),Math.round(m*p),n.name)}this.handleError({message:mxResources.get("imageTooBig")});
-return null}))}),e,f,G,n.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else m=a.target.result,k(m,n.type,b+c*l,d+c*l,240,160,n.name,function(a){D(c,function(){return a})},n)});/(\.v(dx|sdx?))($|\?)/i.test(n.name)||/(\.vs(x|sx?))($|\?)/i.test(n.name)?k(null,n.type,b+c*l,d+c*l,240,160,n.name,function(a){D(c,function(){return a})},n):"image"==n.type.substring(0,5)||"application/pdf"==n.type?m.readAsDataURL(n):m.readAsText(n)}})(A)});if(g){g=
+1)))),u=mxUtils.parseXml(v),v=u.getElementsByTagName("svg");if(0<v.length){var v=v[0],t=z?null:v.getAttribute("content");null!=t&&"<"!=t.charAt(0)&&"%"!=t.charAt(0)&&(t=unescape(window.atob?atob(t):Base64.decode(t,!0)));null!=t&&"%"==t.charAt(0)&&(t=decodeURIComponent(t));null==t||"<mxfile "!==t.substring(0,8)&&"<mxGraphModel "!==t.substring(0,14)?C(c,mxUtils.bind(this,function(){try{if(m.substring(0,q+1),null!=u){var a=u.getElementsByTagName("svg");if(0<a.length){var e=a[0],p=e.getAttribute("width"),
+v=e.getAttribute("height"),p=null!=p&&"%"!=p.charAt(p.length-1)?parseFloat(p):NaN,v=null!=v&&"%"!=v.charAt(v.length-1)?parseFloat(v):NaN,t=e.getAttribute("viewBox");if(null==t||0==t.length)e.setAttribute("viewBox","0 0 "+p+" "+v);else if(isNaN(p)||isNaN(v)){var x=t.split(" ");3<x.length&&(p=parseFloat(x[2]),v=parseFloat(x[3]))}m=Editor.createSvgDataUri(mxUtils.getXml(e));var z=Math.min(1,Math.min(f/Math.max(1,p)),f/Math.max(1,v)),C=k(m,n.type,b+c*l,d+c*l,Math.max(1,Math.round(p*z)),Math.max(1,Math.round(v*
+z)),n.name);if(isNaN(p)||isNaN(v)){var N=new Image;N.onload=mxUtils.bind(this,function(){p=Math.max(1,N.width);v=Math.max(1,N.height);C[0].geometry.width=p;C[0].geometry.height=v;e.setAttribute("viewBox","0 0 "+p+" "+v);m=Editor.createSvgDataUri(mxUtils.getXml(e));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));g.setCellStyles("image",m,[C[0]])});N.src=Editor.createSvgDataUri(mxUtils.getXml(e))}return C}}}catch(ba){}return null})):C(c,mxUtils.bind(this,function(){return k(t,
+"text/xml",b+c*l,d+c*l,0,0,n.name)}))}else C(c,mxUtils.bind(this,function(){return null}))}else{v=!1;if("image/png"==n.type){var N=z?null:this.extractGraphModelFromPng(a.target.result);if(null!=N&&0<N.length){var B=new Image;B.src=a.target.result;C(c,mxUtils.bind(this,function(){return k(N,"text/xml",b+c*l,d+c*l,B.width,B.height,n.name)}));v=!0}}v||(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(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(a,g,m){C(c,mxUtils.bind(this,function(){if(null!=a&&a.length<x){var p=e&&this.isResampleImageSize(n.size,G)?Math.min(1,Math.min(f/g,f/m)):1;return k(a,n.type,b+c*l,d+c*l,Math.round(g*p),Math.round(m*p),n.name)}this.handleError({message:mxResources.get("imageTooBig")});
+return null}))}),e,f,G,n.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else m=a.target.result,k(m,n.type,b+c*l,d+c*l,240,160,n.name,function(a){C(c,function(){return a})},n)});/(\.v(dx|sdx?))($|\?)/i.test(n.name)||/(\.vs(x|sx?))($|\?)/i.test(n.name)?k(null,n.type,b+c*l,d+c*l,240,160,n.name,function(a){C(c,function(){return a})},n):"image"==n.type.substring(0,5)||"application/pdf"==n.type?m.readAsDataURL(n):m.readAsText(n)}})(A)});if(g){g=
[];for(n=0;n<a.length;n++)g.push(a[n]);a=g;this.confirmImageResize(function(a){e=a;q()},A)}else q()};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(q){}};EditorUi.prototype.isResampleImageSize=function(a,b){b=null!=b?b:this.resampleThreshold;return a>b};EditorUi.prototype.resizeImage=function(a,b,d,f,k,m,p){k=null!=k?k:this.maxImageSize;var c=Math.max(1,a.width),e=Math.max(1,a.height);if(f&&this.isResampleImageSize(null!=p?p:b.length,m))try{var g=Math.max(c/k,e/k);if(1<g){var l=Math.round(c/g),n=Math.round(e/
@@ -3531,21 +3532,22 @@ g),q=document.createElement("canvas");q.width=l;q.height=n;q.getContext("2d").dr
new TextareaDialog(a,mxResources.get("plantUml")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generatePlantUmlImage(d,f.format,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{if("txt"==f.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=g,l.height=k,b.cellsResized([c],[l],!1))}b.setAttributeForCell(c,"plantUmlData",
JSON.stringify({data:d,format:f.format}))}finally{b.getModel().endUpdate()}},function(c){a.handleError(c)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};b.cellEditor.editMermaidData=function(c,d,e){var f=JSON.parse(e);d=new TextareaDialog(a,mxResources.get("mermaid")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generateMermaidImage(d,f.config,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{b.setCellStyles("image",
e,[c]);var l=b.model.getGeometry(c);null!=l&&(l=l.clone(),l.width=Math.max(l.width,g),l.height=Math.max(l.height,k),b.cellsResized([c],[l],!1));b.setAttributeForCell(c,"mermaidData",JSON.stringify({data:d,config:f.config},null,2))}finally{b.getModel().endUpdate()}},function(c){a.handleError(c)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};var d=b.cellEditor.startEditing;b.cellEditor.startEditing=function(c,e){try{var f=this.graph.getAttributeForCell(c,"plantUmlData");if(null!=
-f)this.editPlantUmlData(c,e,f);else if(f=this.graph.getAttributeForCell(c,"mermaidData"),null!=f)this.editMermaidData(c,e,f);else{var g=b.getCellStyle(c);"1"==mxUtils.getValue(g,"metaEdit","0")?a.showDataDialog(c):d.apply(this,arguments)}}catch(P){a.handleError(P)}};b.getLinkTitle=function(c){return a.getLinkTitle(c)};b.customLinkClicked=function(c){var b=!1;try{a.handleCustomLink(c),b=!0}catch(M){a.handleError(M)}return b};var k=b.parseBackgroundImage;b.parseBackgroundImage=function(a){var c=k.apply(this,
-arguments);null!=c&&null!=c.src&&Graph.isPageLink(c.src)&&(c={originalSrc:c.src});return c};var l=b.setBackgroundImage;b.setBackgroundImage=function(c){null!=c&&null!=c.originalSrc&&(c=a.createImageForPageLink(c.originalSrc));l.apply(this,arguments)};var m=b.getBackgroundImageObject;b.getBackgroundImageObject=function(a){var c=m.apply(this,arguments);null!=c&&null!=c.originalSrc&&(c={src:c.originalSrc,width:c.width,height:c.height});return c};var p=this.clearDefaultStyle;this.clearDefaultStyle=function(){p.apply(this,
-arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var t=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(a){a=null!=a?a:"";"1"==urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1");return t.apply(this,arguments)};
-var A=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)};A.call(this,a,c,d)};f.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var x=Menus.prototype.addPopupMenuEditItems;
-this.menus.addPopupMenuEditItems=function(c,b,d){a.editor.graph.isSelectionEmpty()?x.apply(this,arguments):a.menus.addMenuItems(c,"delete - cut copy copyAsImage - duplicate".split(" "),null,d)}}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 G=b.getExportVariables;b.getExportVariables=function(){var c=G.apply(this,arguments),b=a.getCurrentFile();null!=
-b&&(c.filename=b.getTitle());c.pagecount=null!=a.pages?a.pages.length:1;c.page=null!=a.currentPage?a.currentPage.getName():"";c.pagenumber=null!=a.pages&&null!=a.currentPage?mxUtils.indexOf(a.pages,a.currentPage)+1:1;return c};var z=b.getGlobalVariable;b.getGlobalVariable=function(c){var b=a.getCurrentFile();return"filename"==c&&null!=b?b.getTitle():"page"==c&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==c?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:
-"pagecount"==c?null!=a.pages?a.pages.length:1:z.apply(this,arguments)};var E=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))E.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 c=a.defaultFilename,b=a.getCurrentFile();null!=b&&(c=null!=b.getTitle()?
-b.getTitle():c);return c};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,"findReplace"),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),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&b.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var 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 c=0;c<a.length;c++)a[c]()},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&&(H=this.editor.graph.view,H.setUnit(mxSettings.getUnit()),H.addListener("unitChanged",function(a,c){mxSettings.setUnit(c.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,c){if(0<this.editor.graph.getSelectionCount()){var b=this.editor.graph.getSelectionCell(),b=this.editor.graph.getModel().getStyle(b);this.styleInput.value=b||
-"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var K=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:K.apply(this,arguments)}}H=document.getElementById("geInfo");null!=H&&H.parentNode.removeChild(H);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var F=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=F&&(F.parentNode.removeChild(F),
+f)this.editPlantUmlData(c,e,f);else if(f=this.graph.getAttributeForCell(c,"mermaidData"),null!=f)this.editMermaidData(c,e,f);else{var g=b.getCellStyle(c);"1"==mxUtils.getValue(g,"metaEdit","0")?a.showDataDialog(c):d.apply(this,arguments)}}catch(O){a.handleError(O)}};b.getLinkTitle=function(c){return a.getLinkTitle(c)};b.customLinkClicked=function(c){var b=!1;try{a.handleCustomLink(c),b=!0}catch(M){a.handleError(M)}return b};var k=b.parseBackgroundImage;b.parseBackgroundImage=function(a){var c=k.apply(this,
+arguments);null!=c&&null!=c.src&&Graph.isPageLink(c.src)&&(c={originalSrc:c.src});return c};var l=b.setBackgroundImage;b.setBackgroundImage=function(c){null!=c&&null!=c.originalSrc&&(c=a.createImageForPageLink(c.originalSrc));l.apply(this,arguments)};this.editor.addListener("pageRenamed",mxUtils.bind(this,function(){b.refreshBackgroundImage()}));this.editor.addListener("pageMoved",mxUtils.bind(this,function(){b.refreshBackgroundImage()}));this.editor.addListener("pagesPatched",mxUtils.bind(this,function(a,
+c){var d=null!=b.backgroundImage?b.backgroundImage.originalSrc:null;if(null!=d){var e=d.indexOf(",");if(0<e)for(var d=d.substring(e+1),e=c.getProperty("patches"),f=0;f<e.length;f++)if(null!=e[f][EditorUi.DIFF_UPDATE][d]){b.refreshBackgroundImage();b.view.validateBackgroundImage();break}}}));var m=b.getBackgroundImageObject;b.getBackgroundImageObject=function(a){var c=m.apply(this,arguments);null!=c&&null!=c.originalSrc&&(c={src:c.originalSrc,width:c.width,height:c.height});return c};var p=this.clearDefaultStyle;
+this.clearDefaultStyle=function(){p.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var t=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(a){a=null!=a?a:"";"1"==urlParams.dev&&(a+=(0<a.length?
+"&":"?")+"dev=1");return t.apply(this,arguments)};var A=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)};A.call(this,a,c,d)};f.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);
+if(null!=this.menus){var x=Menus.prototype.addPopupMenuEditItems;this.menus.addPopupMenuEditItems=function(c,b,d){a.editor.graph.isSelectionEmpty()?x.apply(this,arguments):a.menus.addMenuItems(c,"delete - cut copy copyAsImage - duplicate".split(" "),null,d)}}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 G=b.getExportVariables;b.getExportVariables=function(){var c=
+G.apply(this,arguments),b=a.getCurrentFile();null!=b&&(c.filename=b.getTitle());c.pagecount=null!=a.pages?a.pages.length:1;c.page=null!=a.currentPage?a.currentPage.getName():"";c.pagenumber=null!=a.pages&&null!=a.currentPage?mxUtils.indexOf(a.pages,a.currentPage)+1:1;return c};var z=b.getGlobalVariable;b.getGlobalVariable=function(c){var b=a.getCurrentFile();return"filename"==c&&null!=b?b.getTitle():"page"==c&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==c?null!=a.currentPage&&null!=
+a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:"pagecount"==c?null!=a.pages?a.pages.length:1:z.apply(this,arguments)};var E=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))E.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 c=a.defaultFilename,
+b=a.getCurrentFile();null!=b&&(c=null!=b.getTitle()?b.getTitle():c);return c};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,"findReplace"),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),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&b.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var 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 c=0;c<a.length;c++)a[c]()},
+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&&(H=this.editor.graph.view,H.setUnit(mxSettings.getUnit()),H.addListener("unitChanged",function(a,c){mxSettings.setUnit(c.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,c){if(0<this.editor.graph.getSelectionCount()){var b=this.editor.graph.getSelectionCell(),b=this.editor.graph.getModel().getStyle(b);
+this.styleInput.value=b||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var K=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:K.apply(this,arguments)}}H=document.getElementById("geInfo");null!=H&&H.parentNode.removeChild(H);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var F=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=F&&(F.parentNode.removeChild(F),
F=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==F&&(!mxClient.IS_IE||10<document.documentMode)&&(F=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!=F&&(F.parentNode.removeChild(F),F=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;if(0<a.dataTransfer.files.length)mxEvent.isShiftDown(a)?this.openFiles(a.dataTransfer.files,!0):(mxEvent.isAltDown(a)&&(g=f=null),this.importFiles(a.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a),a));else{mxEvent.isAltDown(a)&&(g=f=0);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=b.sanitizeHtml(l);var n=null,d=c.getElementsByTagName("img");null!=d&&1==d.length?(l=d[0].getAttribute("src"),null==l&&(l=d[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)||(n=!0)):(d=c.getElementsByTagName("a"),null!=d&&1==d.length?l=d[0].getAttribute("href"):
@@ -3594,27 +3596,27 @@ this.addEmbedButtons();this.setGraphEnabled(!0);if(null==a||0==a.length)a=this.e
""))}}catch(A){console.log(A)}this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();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 c=this.editor.graph;return{event:a,pageVisible:c.pageVisible,translate:c.view.translate,bounds:c.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:c.view.scale,page:c.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(a){var c=null,b=!1,
d=!1,f=null,k=mxUtils.bind(this,function(a,c){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,k);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(ta){}return a});if("json"==urlParams.proto){var l=!1;try{g=JSON.parse(g)}catch(O){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?
+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(ta){}return a});if("json"==urlParams.proto){var l=!1;try{g=JSON.parse(g)}catch(P){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("layout"==g.action){this.executeLayoutList(g.layouts);return}if("prompt"==g.action){this.spinner.stop();var n=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):g.ok,function(a){null!=a?m.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*"):m.postMessage(JSON.stringify({event:"prompt-cancel",message:g}),
"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(n.container,300,80,!0,!1);n.init();return}if("draft"==g.action){var p=k(g.xml);this.spinner.stop();n=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),p,mxUtils.bind(this,function(){this.hideDialog();m.postMessage(JSON.stringify({event:"draft",result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();m.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();m.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(n.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{n.init()}catch(O){m.postMessage(JSON.stringify({event:"draft",error:O.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();
-var q=1==g.enableRecent,t=1==g.enableSearch,u=1==g.enableCustomTemp;if("1"==urlParams.newTempDlg&&!g.templatesOnly&&null!=g.callback){var D=this.getCurrentUser(),A=new TemplatesDialog(this,function(a,c,b){a=a||this.emptyDiagramXml;m.postMessage(JSON.stringify({event:"template",xml:a,blank:a==this.emptyDiagramXml,name:c,tempUrl:b.url,libs:b.libs,builtIn:null!=b.info&&null!=b.info.custContentId,message:g}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=D?D.id:
+"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();m.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(n.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{n.init()}catch(P){m.postMessage(JSON.stringify({event:"draft",error:P.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();
+var q=1==g.enableRecent,t=1==g.enableSearch,u=1==g.enableCustomTemp;if("1"==urlParams.newTempDlg&&!g.templatesOnly&&null!=g.callback){var C=this.getCurrentUser(),A=new TemplatesDialog(this,function(a,c,b){a=a||this.emptyDiagramXml;m.postMessage(JSON.stringify({event:"template",xml:a,blank:a==this.emptyDiagramXml,name:c,tempUrl:b.url,libs:b.libs,builtIn:null!=b.info&&null!=b.info.custContentId,message:g}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=C?C.id:
null,q?mxUtils.bind(this,function(a,c,b){this.remoteInvoke("getRecentDiagrams",[b],null,a,c)}):null,t?mxUtils.bind(this,function(a,c,b,d){this.remoteInvoke("searchDiagrams",[a,d],null,c,b)}):null,mxUtils.bind(this,function(a,c,b){this.remoteInvoke("getFileContent",[a.url],null,c,b)}),null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null,!1,!1,!0,!0);this.showDialog(A.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}n=
new NewDialog(this,!1,g.templatesOnly?!1:null!=g.callback,mxUtils.bind(this,function(c,b,d,f){c=c||this.emptyDiagramXml;null!=g.callback?m.postMessage(JSON.stringify({event:"template",xml:c,blank:c==this.emptyDiagramXml,name:b,tempUrl:d,libs:f,builtIn:!0,message:g}),"*"):(a(c,e,c!=this.emptyDiagramXml,g.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,q?mxUtils.bind(this,function(a){this.remoteInvoke("getRecentDiagrams",[null],null,a,function(){a(null,
"Network Error!")})}):null,t?mxUtils.bind(this,function(a,c){this.remoteInvoke("searchDiagrams",[a,null],null,c,function(){c(null,"Network Error!")})}):null,mxUtils.bind(this,function(a,c,b){m.postMessage(JSON.stringify({event:"template",docUrl:a,info:c,name:b}),"*")}),null,null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null,1==g.withoutType);this.showDialog(n.container,620,460,!0,!1,mxUtils.bind(this,function(a){this.sidebar.hideTooltip();
-a&&this.actions.get("exit").funct()}));n.init();return}if("textContent"==g.action){var U=this.getDiagramTextContent();m.postMessage(JSON.stringify({event:"textContent",data:U,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 P=null!=g.messageKey?mxResources.get(g.messageKey):
-g.message;null==g.show||g.show?this.spinner.spin(document.body,P):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 N=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var v=this.editor.graph,C=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var c=this.createLoadMessage("export");c.format=
-g.format;c.message=g;c.data=a;c.xml=N;m.postMessage(JSON.stringify(c),"*")}),B=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(N)));v!=this.editor.graph&&v.container.parentNode.removeChild(v.container);C(a)}),J=g.pageId||(null!=this.pages?g.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){null!=g.xml&&0<g.xml.length&&(b=!0,this.setFileData(N),b=!1);if(null!=
+a&&this.actions.get("exit").funct()}));n.init();return}if("textContent"==g.action){var U=this.getDiagramTextContent();m.postMessage(JSON.stringify({event:"textContent",data:U,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 O=null!=g.messageKey?mxResources.get(g.messageKey):
+g.message;null==g.show||g.show?this.spinner.spin(document.body,O):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 N=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var v=this.editor.graph,D=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var c=this.createLoadMessage("export");c.format=
+g.format;c.message=g;c.data=a;c.xml=N;m.postMessage(JSON.stringify(c),"*")}),B=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(N)));v!=this.editor.graph&&v.container.parentNode.removeChild(v.container);D(a)}),J=g.pageId||(null!=this.pages?g.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){null!=g.xml&&0<g.xml.length&&(b=!0,this.setFileData(N),b=!1);if(null!=
this.pages&&this.currentPage.getId()!=J){for(var L=v.getGlobalVariable,v=this.createTemporaryGraph(v.getStylesheet()),W,Q=0;Q<this.pages.length;Q++)if(this.pages[Q].getId()==J){W=this.updatePageRoot(this.pages[Q]);break}null==W&&(W=this.currentPage);v.getGlobalVariable=function(a){return"page"==a?W.getName():"pagenumber"==a?1:L.apply(this,arguments)};document.body.appendChild(v.container);v.model.setRoot(W.root)}if(null!=g.layerIds){for(var aa=v.model,na=aa.getChildCells(aa.getRoot()),n={},Q=0;Q<
g.layerIds.length;Q++)n[g.layerIds[Q]]=!0;for(Q=0;Q<na.length;Q++)aa.setVisible(na[Q],n[na[Q].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(a){B(a.toDataURL("image/png"))}),g.width,null,g.background,mxUtils.bind(this,function(){B(null)}),null,null,g.scale,g.transparent,g.shadow,null,v,g.border,null,g.grid,g.keepTheme)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+(null!=J?"&pageId="+J:"")+(null!=g.layerIds&&0<g.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:g.layerIds})):
-"")+(null!=g.scale?"&scale="+g.scale:"")+"&base64=1&xml="+encodeURIComponent(N))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?C("data:image/png;base64,"+a.getText()):B(null)}),mxUtils.bind(this,function(){B(null)}))}}else{null!=g.xml&&0<g.xml.length&&(b=!0,this.setFileData(g.xml),b=!1);P=this.createLoadMessage("export");P.message=g;if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var ga=this.getXmlFileData();P.xml=
-mxUtils.getXml(ga);P.data=this.getFileData(null,null,!0,null,null,null,ga);P.format=g.format}else if("html"==g.format)N=this.editor.getGraphXml(),P.data=this.getHtml(N,this.editor.graph),P.xml=mxUtils.getXml(N),P.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ea=null!=g.background?g.background:this.editor.graph.background;ea==mxConstants.NONE&&(ea=null);P.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);P.format="svg";var la=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
-this.spinner.stop();P.data=Editor.createSvgDataUri(a);m.postMessage(JSON.stringify(P),"*")});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(P.xml,this.editor.graph,null,!0,la,null,null,g.embedImages,ea,g.scale,g.border,g.shadow,g.keepTheme);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 V=this.editor.graph.getSvg(ea,g.scale,g.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||g.shadow,null,g.keepTheme);(this.editor.graph.shadowVisible||g.shadow)&&this.editor.graph.addSvgShadow(V);this.embedFonts(V,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){la(mxUtils.getXml(a))})):la(mxUtils.getXml(a))}))}return}m.postMessage(JSON.stringify(P),"*")}return}if("load"==g.action){l=g.toSketch;d=1==
+"")+(null!=g.scale?"&scale="+g.scale:"")+"&base64=1&xml="+encodeURIComponent(N))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?D("data:image/png;base64,"+a.getText()):B(null)}),mxUtils.bind(this,function(){B(null)}))}}else{null!=g.xml&&0<g.xml.length&&(b=!0,this.setFileData(g.xml),b=!1);O=this.createLoadMessage("export");O.message=g;if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var ga=this.getXmlFileData();O.xml=
+mxUtils.getXml(ga);O.data=this.getFileData(null,null,!0,null,null,null,ga);O.format=g.format}else if("html"==g.format)N=this.editor.getGraphXml(),O.data=this.getHtml(N,this.editor.graph),O.xml=mxUtils.getXml(N),O.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ea=null!=g.background?g.background:this.editor.graph.background;ea==mxConstants.NONE&&(ea=null);O.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);O.format="svg";var la=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
+this.spinner.stop();O.data=Editor.createSvgDataUri(a);m.postMessage(JSON.stringify(O),"*")});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(O.xml,this.editor.graph,null,!0,la,null,null,g.embedImages,ea,g.scale,g.border,g.shadow,g.keepTheme);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 V=this.editor.graph.getSvg(ea,g.scale,g.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||g.shadow,null,g.keepTheme);(this.editor.graph.shadowVisible||g.shadow)&&this.editor.graph.addSvgShadow(V);this.embedFonts(V,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){la(mxUtils.getXml(a))})):la(mxUtils.getXml(a))}))}return}m.postMessage(JSON.stringify(O),"*")}return}if("load"==g.action){l=g.toSketch;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.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=g.noSaveBtn);null!=g.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=g.noExitBtn);null!=g.title&&null!=this.buttonContainer&&(p=document.createElement("span"),mxUtils.write(p,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight=
-"12px",this.buttonContainer.style.paddingTop="6px",this.buttonContainer.style.right="1"==urlParams.noLangIcon?"0":"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);try{g.libs&&this.sidebar.showEntries(g.libs)}catch(O){}g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):
+"12px",this.buttonContainer.style.paddingTop="6px",this.buttonContainer.style.right="1"==urlParams.noLangIcon?"0":"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);try{g.libs&&this.sidebar.showEntries(g.libs)}catch(P){}g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):
null!=g.descriptor?g.descriptor:g.xml}else{if("merge"==g.action){var ca=this.getCurrentFile();null!=ca&&(p=k(g.xml),null!=p&&""!=p&&ca.mergeFile(new LocalFile(this,p),function(){m.postMessage(JSON.stringify({event:"merge",message:g}),"*")},function(a){m.postMessage(JSON.stringify({event:"merge",message:g,error:a}),"*")}))}else"remoteInvokeReady"==g.action?this.handleRemoteInvokeReady(m):"remoteInvoke"==g.action?this.handleRemoteInvoke(g,e.origin):"remoteInvokeResponse"==g.action?this.handleRemoteInvokeResponse(g):
-m.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}catch(O){this.handleError(O)}}var ma=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),T=mxUtils.bind(this,function(e,g){b=!0;try{a(e,g,null,l)}catch(da){this.handleError(da)}b=!1;null!=urlParams.modified&&this.editor.setStatus("");f=ma();d&&null==c&&(c=mxUtils.bind(this,function(a,c){var d=ma();if(d!=
+m.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}catch(P){this.handleError(P)}}var ma=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),T=mxUtils.bind(this,function(e,g){b=!0;try{a(e,g,null,l)}catch(da){this.handleError(da)}b=!1;null!=urlParams.modified&&this.editor.setStatus("");f=ma();d&&null==c&&(c=mxUtils.bind(this,function(a,c){var d=ma();if(d!=
f&&!b){var e=this.createLoadMessage("autosave");e.xml=d;(window.opener||window.parent).postMessage(JSON.stringify(e),"*")}f=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,c),this.editor.graph.addListener("gridSizeChanged",c),this.editor.graph.addListener("shadowVisibleChanged",c),this.addListener("pageFormatChanged",c),this.addListener("pageScaleChanged",c),this.addListener("backgroundColorChanged",c),this.addListener("backgroundImageChanged",c),this.addListener("foldingEnabledChanged",c),
this.addListener("mathEnabledChanged",c),this.addListener("gridEnabledChanged",c),this.addListener("guidesEnabledChanged",c),this.addListener("pageViewChanged",c));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var k=this.createLoadMessage("load");k.xml=e;m.postMessage(JSON.stringify(k),"*")}});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){T(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)&&T(a.responseText,e)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,
@@ -3624,20 +3626,20 @@ var d=b;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var f="1"==u
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),d=b);"1"!=urlParams.noExitBtn&&(b=document.createElement("a"),d="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),
mxUtils.write(b,d),b.setAttribute("title",d),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),a.appendChild(b),d=b);d.style.marginRight="20px";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://drawio-app.com/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 k in a[e].config)f[k]=a[e].config[k];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 k={},m=null,p=null,x=null,G=null,z=null,E=null,H=null,K=null,F=null,I="",D="auto",M="auto",U=null,P=null,N=40,v=40,C=100,B=0,J=this.editor.graph;J.getGraphBounds();for(var L=function(){null!=b?b(ra):(J.setSelectionCells(ra),J.scrollCellToVisible(J.getSelectionCell()))},
-W=J.getFreeInsertPoint(),Q=W.x,aa=W.y,W=aa,na=null,ga="auto",F=null,ea=[],la=null,V=null,ca=0;ca<c.length&&"#"==c[ca].charAt(0);){a=c[ca];for(ca++;ca<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[ca].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[ca].substring(1)),ca++;if("#"!=a.charAt(1)){var ma=a.indexOf(":");if(0<ma){var T=mxUtils.trim(a.substring(1,ma)),O=mxUtils.trim(a.substring(ma+1));"label"==T?na=J.sanitizeHtml(O):"labelname"==T&&0<O.length&&"-"!=O?z=O:"labels"==T&&0<O.length&&"-"!=
-O?E=JSON.parse(O):"style"==T?p=O:"parentstyle"==T?H=O:"stylename"==T&&0<O.length&&"-"!=O?G=O:"styles"==T&&0<O.length&&"-"!=O?x=JSON.parse(O):"vars"==T&&0<O.length&&"-"!=O?m=JSON.parse(O):"identity"==T&&0<O.length&&"-"!=O?K=O:"parent"==T&&0<O.length&&"-"!=O?F=O:"namespace"==T&&0<O.length&&"-"!=O?I=O:"width"==T?D=O:"height"==T?M=O:"left"==T&&0<O.length?U=O:"top"==T&&0<O.length?P=O:"ignore"==T?V=O.split(","):"connect"==T?ea.push(JSON.parse(O)):"link"==T?la=O:"padding"==T?B=parseFloat(O):"edgespacing"==
-T?N=parseFloat(O):"nodespacing"==T?v=parseFloat(O):"levelspacing"==T?C=parseFloat(O):"layout"==T&&(ga=O)}}}if(null==c[ca])throw Error(mxResources.get("invalidOrMissingFile"));for(var ta=this.editor.csvToArray(c[ca]),T=ma=null,O=[],X=0;X<ta.length;X++)K==ta[X]&&(ma=X),F==ta[X]&&(T=X),O.push(mxUtils.trim(ta[X]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==na&&(na="%"+O[0]+"%");if(null!=ea)for(var da=0;da<ea.length;da++)null==k[ea[da].to]&&(k[ea[da].to]={});K=[];for(X=ca+1;X<
+if(null!=a[e].config)for(var k in a[e].config)f[k]=a[e].config[k];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 k={},m=null,p=null,x=null,G=null,z=null,E=null,H=null,K=null,F=null,I="",C="auto",M="auto",U=null,O=null,N=40,v=40,D=100,B=0,J=this.editor.graph;J.getGraphBounds();for(var L=function(){null!=b?b(ra):(J.setSelectionCells(ra),J.scrollCellToVisible(J.getSelectionCell()))},
+W=J.getFreeInsertPoint(),Q=W.x,aa=W.y,W=aa,na=null,ga="auto",F=null,ea=[],la=null,V=null,ca=0;ca<c.length&&"#"==c[ca].charAt(0);){a=c[ca];for(ca++;ca<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[ca].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[ca].substring(1)),ca++;if("#"!=a.charAt(1)){var ma=a.indexOf(":");if(0<ma){var T=mxUtils.trim(a.substring(1,ma)),P=mxUtils.trim(a.substring(ma+1));"label"==T?na=J.sanitizeHtml(P):"labelname"==T&&0<P.length&&"-"!=P?z=P:"labels"==T&&0<P.length&&"-"!=
+P?E=JSON.parse(P):"style"==T?p=P:"parentstyle"==T?H=P:"stylename"==T&&0<P.length&&"-"!=P?G=P:"styles"==T&&0<P.length&&"-"!=P?x=JSON.parse(P):"vars"==T&&0<P.length&&"-"!=P?m=JSON.parse(P):"identity"==T&&0<P.length&&"-"!=P?K=P:"parent"==T&&0<P.length&&"-"!=P?F=P:"namespace"==T&&0<P.length&&"-"!=P?I=P:"width"==T?C=P:"height"==T?M=P:"left"==T&&0<P.length?U=P:"top"==T&&0<P.length?O=P:"ignore"==T?V=P.split(","):"connect"==T?ea.push(JSON.parse(P)):"link"==T?la=P:"padding"==T?B=parseFloat(P):"edgespacing"==
+T?N=parseFloat(P):"nodespacing"==T?v=parseFloat(P):"levelspacing"==T?D=parseFloat(P):"layout"==T&&(ga=P)}}}if(null==c[ca])throw Error(mxResources.get("invalidOrMissingFile"));for(var ta=this.editor.csvToArray(c[ca]),T=ma=null,P=[],X=0;X<ta.length;X++)K==ta[X]&&(ma=X),F==ta[X]&&(T=X),P.push(mxUtils.trim(ta[X]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==na&&(na="%"+P[0]+"%");if(null!=ea)for(var da=0;da<ea.length;da++)null==k[ea[da].to]&&(k[ea[da].to]={});K=[];for(X=ca+1;X<
c.length;X++){var ia=this.editor.csvToArray(c[X]);if(null==ia){var pa=40<c[X].length?c[X].substring(0,40)+"...":c[X];throw Error(pa+" ("+X+"):\n"+mxResources.get("containsValidationErrors"));}0<ia.length&&K.push(ia)}J.model.beginUpdate();try{for(X=0;X<K.length;X++){var ia=K[X],R=null,ka=null!=ma?I+ia[ma]:null;null!=ka&&(R=J.model.getCell(ka));var c=null!=R,ba=new mxCell(na,new mxGeometry(Q,W,0,0),p||"whiteSpace=wrap;html=1;");ba.vertex=!0;ba.id=ka;for(var ja=0;ja<ia.length;ja++)J.setAttributeForCell(ba,
-O[ja],ia[ja]);if(null!=z&&null!=E){var Y=E[ba.getAttribute(z)];null!=Y&&J.labelChanged(ba,Y)}if(null!=G&&null!=x){var qa=x[ba.getAttribute(G)];null!=qa&&(ba.style=qa)}J.setAttributeForCell(ba,"placeholders","1");ba.style=J.replacePlaceholders(ba,ba.style,m);c&&(J.model.setGeometry(R,ba.geometry),J.model.setStyle(R,ba.style),0>mxUtils.indexOf(e,R)&&e.push(R));R=ba;if(!c)for(da=0;da<ea.length;da++)k[ea[da].to][R.getAttribute(ea[da].to)]=R;null!=la&&"link"!=la&&(J.setLinkForCell(R,R.getAttribute(la)),
-J.setAttributeForCell(R,la,null));J.fireEvent(new mxEventObject("cellsInserted","cells",[R]));var va=this.editor.graph.getPreferredSizeForCell(R);R.vertex&&(null!=U&&null!=R.getAttribute(U)&&(R.geometry.x=Q+parseFloat(R.getAttribute(U))),null!=P&&null!=R.getAttribute(P)&&(R.geometry.y=aa+parseFloat(R.getAttribute(P))),"@"==D.charAt(0)&&null!=R.getAttribute(D.substring(1))?R.geometry.width=parseFloat(R.getAttribute(D.substring(1))):R.geometry.width="auto"==D?va.width+B:parseFloat(D),"@"==M.charAt(0)&&
+P[ja],ia[ja]);if(null!=z&&null!=E){var Y=E[ba.getAttribute(z)];null!=Y&&J.labelChanged(ba,Y)}if(null!=G&&null!=x){var qa=x[ba.getAttribute(G)];null!=qa&&(ba.style=qa)}J.setAttributeForCell(ba,"placeholders","1");ba.style=J.replacePlaceholders(ba,ba.style,m);c&&(J.model.setGeometry(R,ba.geometry),J.model.setStyle(R,ba.style),0>mxUtils.indexOf(e,R)&&e.push(R));R=ba;if(!c)for(da=0;da<ea.length;da++)k[ea[da].to][R.getAttribute(ea[da].to)]=R;null!=la&&"link"!=la&&(J.setLinkForCell(R,R.getAttribute(la)),
+J.setAttributeForCell(R,la,null));J.fireEvent(new mxEventObject("cellsInserted","cells",[R]));var va=this.editor.graph.getPreferredSizeForCell(R);R.vertex&&(null!=U&&null!=R.getAttribute(U)&&(R.geometry.x=Q+parseFloat(R.getAttribute(U))),null!=O&&null!=R.getAttribute(O)&&(R.geometry.y=aa+parseFloat(R.getAttribute(O))),"@"==C.charAt(0)&&null!=R.getAttribute(C.substring(1))?R.geometry.width=parseFloat(R.getAttribute(C.substring(1))):R.geometry.width="auto"==C?va.width+B:parseFloat(C),"@"==M.charAt(0)&&
null!=R.getAttribute(M.substring(1))?R.geometry.height=parseFloat(R.getAttribute(M.substring(1))):R.geometry.height="auto"==M?va.height+B:parseFloat(M),W+=R.geometry.height+v);c?(null==f[ka]&&(f[ka]=[]),f[ka].push(R)):(F=null!=T?J.model.getCell(I+ia[T]):null,d.push(R),null!=F?(F.style=J.replacePlaceholders(F,H,m),J.addCell(R,F)):e.push(J.addCell(R)))}for(var ua=e.slice(),ra=e.slice(),da=0;da<ea.length;da++)for(var ya=ea[da],X=0;X<d.length;X++){var R=d[X],za=mxUtils.bind(this,function(a,c,b){var d=
c.getAttribute(b.from);if(null!=d&&(J.setAttributeForCell(c,b.from,null),""!=d))for(var d=d.split(","),e=0;e<d.length;e++){var f=k[b.to][d[e]];if(null!=f){var g=b.label;null!=b.fromlabel&&(g=(c.getAttribute(b.fromlabel)||"")+(g||""));null!=b.sourcelabel&&(g=J.replacePlaceholders(c,b.sourcelabel,m)+(g||""));null!=b.tolabel&&(g=(g||"")+(f.getAttribute(b.tolabel)||""));null!=b.targetlabel&&(g=(g||"")+J.replacePlaceholders(f,b.targetlabel,m));var l="target"==b.placeholders==!b.invert?f:a,l=null!=b.style?
J.replacePlaceholders(l,b.style,m):J.createCurrentEdgeStyle(),g=J.insertEdge(null,null,g||"",b.invert?f:a,b.invert?a:f,l);if(null!=b.labels)for(l=0;l<b.labels.length;l++){var n=b.labels[l],p=new mxCell(n.label||l,new mxGeometry(null!=n.x?n.x:0,null!=n.y?n.y:0,0,0),"resizable=0;html=1;");p.vertex=!0;p.connectable=!1;p.geometry.relative=!0;null!=n.placeholders&&(p.value=J.replacePlaceholders("target"==n.placeholders==!b.invert?f:a,p.value,m));if(null!=n.dx||null!=n.dy)p.geometry.offset=new mxPoint(null!=
n.dx?n.dx:0,null!=n.dy?n.dy:0);g.insert(p)}ra.push(g);mxUtils.remove(b.invert?a:f,ua)}}});za(R,R,ya);if(null!=f[R.id])for(ja=0;ja<f[R.id].length;ja++)za(R,f[R.id][ja],ya)}if(null!=V)for(X=0;X<d.length;X++)for(R=d[X],ja=0;ja<V.length;ja++)J.setAttributeForCell(R,mxUtils.trim(V[ja]),null);if(0<e.length){var S=new mxParallelEdgeLayout(J);S.spacing=N;S.checkOverlap=!0;var Aa=function(){0<S.spacing&&S.execute(J.getDefaultParent());for(var a=0;a<e.length;a++){var c=J.getCellGeometry(e[a]);c.x=Math.round(J.snap(c.x));
-c.y=Math.round(J.snap(c.y));"auto"==D&&(c.width=Math.round(J.snap(c.width)));"auto"==M&&(c.height=Math.round(J.snap(c.height)))}};if("["==ga.charAt(0)){var ha=L;J.view.validate();this.executeLayoutList(JSON.parse(ga),function(){Aa();ha()});L=null}else if("circle"==ga){var Ba=new mxCircleLayout(J);Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var wa=Ba.isVertexIgnored;Ba.isVertexIgnored=function(a){return wa.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){Ba.execute(J.getDefaultParent());
+c.y=Math.round(J.snap(c.y));"auto"==C&&(c.width=Math.round(J.snap(c.width)));"auto"==M&&(c.height=Math.round(J.snap(c.height)))}};if("["==ga.charAt(0)){var ha=L;J.view.validate();this.executeLayoutList(JSON.parse(ga),function(){Aa();ha()});L=null}else if("circle"==ga){var Ba=new mxCircleLayout(J);Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var wa=Ba.isVertexIgnored;Ba.isVertexIgnored=function(a){return wa.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){Ba.execute(J.getDefaultParent());
Aa()},!0,L);L=null}else if("horizontaltree"==ga||"verticaltree"==ga||"auto"==ga&&ra.length==2*e.length-1&&1==ua.length){J.view.validate();var Da=new mxCompactTreeLayout(J,"horizontaltree"==ga);Da.levelDistance=v;Da.edgeRouting=!1;Da.resetEdges=!1;this.executeLayout(function(){Da.execute(J.getDefaultParent(),0<ua.length?ua[0]:null)},!0,L);L=null}else if("horizontalflow"==ga||"verticalflow"==ga||"auto"==ga&&1==ua.length){J.view.validate();var Ca=new mxHierarchicalLayout(J,"horizontalflow"==ga?mxConstants.DIRECTION_WEST:
-mxConstants.DIRECTION_NORTH);Ca.intraCellSpacing=v;Ca.parallelEdgeSpacing=N;Ca.interRankCellSpacing=C;Ca.disableEdgeStyle=!1;this.executeLayout(function(){Ca.execute(J.getDefaultParent(),ra);J.moveCells(ra,Q,aa)},!0,L);L=null}else if("organic"==ga||"auto"==ga&&ra.length>e.length){J.view.validate();var xa=new mxFastOrganicLayout(J);xa.forceConstant=3*v;xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Fa=xa.isVertexIgnored;xa.isVertexIgnored=function(a){return Fa.apply(this,arguments)||0>mxUtils.indexOf(e,
+mxConstants.DIRECTION_NORTH);Ca.intraCellSpacing=v;Ca.parallelEdgeSpacing=N;Ca.interRankCellSpacing=D;Ca.disableEdgeStyle=!1;this.executeLayout(function(){Ca.execute(J.getDefaultParent(),ra);J.moveCells(ra,Q,aa)},!0,L);L=null}else if("organic"==ga||"auto"==ga&&ra.length>e.length){J.view.validate();var xa=new mxFastOrganicLayout(J);xa.forceConstant=3*v;xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Fa=xa.isVertexIgnored;xa.isVertexIgnored=function(a){return Fa.apply(this,arguments)||0>mxUtils.indexOf(e,
a)};this.executeLayout(function(){xa.execute(J.getDefaultParent());Aa()},!0,L);L=null}}this.hideDialog()}finally{J.model.endUpdate()}null!=L&&L()}}catch(Z){this.handleError(Z)}};EditorUi.prototype.getSearch=function(a){var c="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var b="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(c+=b+d+"="+urlParams[d],b="&")}else c=window.location.search;return c};EditorUi.prototype.getUrl=function(a){a=
null!=a?a:window.location.pathname;var c=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var b="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(b,d)&&(a=0==c?a+"?":a+"&",null!=urlParams[d]&&(a+=d+"="+urlParams[d],c++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,d,f,k){a=new LinkDialog(this,a,b,d,!0,f,k);this.showDialog(a.container,560,130,!0,!0);a.init()};EditorUi.prototype.getServiceCount=
function(a){var c=1;null==this.drive&&"function"!==typeof window.DriveClient||c++;null==this.dropbox&&"function"!==typeof window.DropboxClient||c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||c++;null!=this.gitHub&&c++;null!=this.gitLab&&c++;null!=this.notion&&c++;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();
@@ -3660,11 +3662,11 @@ null,mxUtils.bind(this,function(c){a--;0==a&&this.spinner.stop();try{this.loadLi
"*");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,d,f,k){var c=!0,e=window.setTimeout(mxUtils.bind(this,function(){c=!1;k({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),
this.timeout),g=mxUtils.bind(this,function(){window.clearTimeout(e);c&&f.apply(this,arguments)}),l=mxUtils.bind(this,function(){window.clearTimeout(e);c&&k.apply(this,arguments)});d=d||{};d.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:g,error:l});a=JSON.stringify({event:"remoteInvoke",funtionName:a,functionArgs:b,msgMarkers:d});null!=this.remoteWin?this.remoteWin.postMessage(a,"*"):this.remoteInvokeQueue.push(a)};EditorUi.prototype.handleRemoteInvoke=function(a,
b){var c=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 d=a.funtionName,e=this.remoteInvokableFns[d];if(null!=e&&"function"===typeof this[d]){if(e.allowedDomains){for(var f=!1,k=0;k<e.allowedDomains.length;k++)if(b=="https://"+e.allowedDomains[k]){f=!0;break}if(!f){c(null,"Invalid Call: "+d+" is not allowed.");return}}var m=a.functionArgs;Array.isArray(m)||
-(m=[]);if(e.isAsync)m.push(function(){c(Array.prototype.slice.apply(arguments))}),m.push(function(a){c(null,a||"Unkown Error")}),this[d].apply(this,m);else{var p=this[d].apply(this,m);c([p])}}else c(null,"Invalid Call: "+d+" is not found.")}catch(x){c(null,"Invalid Call: An error occured, "+x.message)}};EditorUi.prototype.openDatabase=function(a,b){if(null==this.database){var c=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=c)try{var d=c.open("database",2);d.onupgradeneeded=
+(m=[]);if(e.isAsync)m.push(function(){c(Array.prototype.slice.apply(arguments))}),m.push(function(a){c(null,a||"Unkown Error")}),this[d].apply(this,m);else{var p=this[d].apply(this,m);c([p])}}else c(null,"Invalid Call: "+d+" is not found.")}catch(x){c(null,"Invalid Call: An error occurred, "+x.message)}};EditorUi.prototype.openDatabase=function(a,b){if(null==this.database){var c=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=c)try{var d=c.open("database",2);d.onupgradeneeded=
function(a){try{var c=d.result;1>a.oldVersion&&c.createObjectStore("objects",{keyPath:"key"});2>a.oldVersion&&(c.createObjectStore("files",{keyPath:"title"}),c.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(u){null!=b&&b(u)}};d.onsuccess=mxUtils.bind(this,function(b){var c=d.result;this.database=c;EditorUi.migrateStorageFiles&&(StorageFile.migrate(c),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||
(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(a){if(!a||"1"==urlParams.forceMigration){var b=document.createElement("iframe");b.style.display="none";b.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(b);var c=!0,d=!1,e,f=0,g=mxUtils.bind(this,function(){d=!0;this.setDatabaseItem(".drawioMigrated3",!0);b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",
-funtionName:"setMigratedFlag"}),"*")}),k=mxUtils.bind(this,function(){f++;l()}),l=mxUtils.bind(this,function(){try{if(f>=e.length)g();else{var a=e[f];StorageFile.getFileContent(this,a,mxUtils.bind(this,function(c){null==c||".scratchpad"==a&&c==this.emptyLibraryXml?b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[a]}),"*"):k()}),k)}}catch(D){console.log(D)}}),m=mxUtils.bind(this,function(a){try{this.setDatabaseItem(null,[{title:a.title,
-size:a.data.length,lastModified:Date.now(),type:a.isLib?"L":"F"},{title:a.title,data:a.data}],k,k,["filesInfo","files"])}catch(D){console.log(D)}});a=mxUtils.bind(this,function(a){try{if(a.source==b.contentWindow){var f={};try{f=JSON.parse(a.data)}catch(M){}"init"==f.event?(b.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=f.event||d||
+funtionName:"setMigratedFlag"}),"*")}),k=mxUtils.bind(this,function(){f++;l()}),l=mxUtils.bind(this,function(){try{if(f>=e.length)g();else{var a=e[f];StorageFile.getFileContent(this,a,mxUtils.bind(this,function(c){null==c||".scratchpad"==a&&c==this.emptyLibraryXml?b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[a]}),"*"):k()}),k)}}catch(C){console.log(C)}}),m=mxUtils.bind(this,function(a){try{this.setDatabaseItem(null,[{title:a.title,
+size:a.data.length,lastModified:Date.now(),type:a.isLib?"L":"F"},{title:a.title,data:a.data}],k,k,["filesInfo","files"])}catch(C){console.log(C)}});a=mxUtils.bind(this,function(a){try{if(a.source==b.contentWindow){var f={};try{f=JSON.parse(a.data)}catch(M){}"init"==f.event?(b.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=f.event||d||
(c?null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?(e=f.resp[0],c=!1,l()):g():null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?m(f.resp[0]):k())}}catch(M){console.log(M)}});window.addEventListener("message",a)}})));a(c);c.onversionchange=function(){c.close()}});d.onerror=b;d.onblocked=function(){}}catch(l){null!=b&&b(l)}else null!=b&&b()}else a(this.database)};EditorUi.prototype.setDatabaseItem=function(a,b,d,f,k){this.openDatabase(mxUtils.bind(this,function(c){try{k=k||"objects";Array.isArray(k)||(k=
[k],a=[a],b=[b]);var e=c.transaction(k,"readwrite");e.oncomplete=d;e.onerror=f;for(c=0;c<k.length;c++)e.objectStore(k[c]).put(null!=a&&null!=a[c]?{key:a[c],data:b[c]}:b[c])}catch(t){null!=f&&f(t)}}),f)};EditorUi.prototype.removeDatabaseItem=function(a,b,d,f){this.openDatabase(mxUtils.bind(this,function(c){f=f||"objects";Array.isArray(f)||(f=[f],a=[a]);c=c.transaction(f,"readwrite");c.oncomplete=b;c.onerror=d;for(var e=0;e<f.length;e++)c.objectStore(f[e])["delete"](a[e])}),d)};EditorUi.prototype.getDatabaseItem=
function(a,b,d,f){this.openDatabase(mxUtils.bind(this,function(c){try{f=f||"objects";var e=c.transaction([f],"readonly").objectStore(f).get(a);e.onsuccess=function(){b(e.result)};e.onerror=d}catch(u){null!=d&&d(u)}}),d)};EditorUi.prototype.getDatabaseItems=function(a,b,d){this.openDatabase(mxUtils.bind(this,function(c){try{d=d||"objects";var e=c.transaction([d],"readonly").objectStore(d).openCursor(IDBKeyRange.lowerBound(0)),f=[];e.onsuccess=function(b){null==b.target.result?a(f):(f.push(b.target.result.value),
@@ -3681,22 +3683,22 @@ var CommentsWindow=function(a,b,d,k,f,m){function p(){for(var a=z.getElementsByT
"geCommentEditTxtArea";k.style.minHeight=f.offsetHeight+"px";k.value=a.content;b.insertBefore(k,f);var l=document.createElement("div");l.className="geCommentEditBtns";var m=mxUtils.button(mxResources.get("cancel"),function(){d?(b.parentNode.removeChild(b),p()):e();A=null});m.className="geCommentEditBtn";l.appendChild(m);var n=mxUtils.button(mxResources.get("save"),function(){f.innerHTML="";a.content=k.value;mxUtils.write(f,a.content);e();c(a);A=null});mxEvent.addListener(k,"keydown",mxUtils.bind(this,
function(a){mxEvent.isConsumed(a)||((mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a))&&13==a.keyCode?(n.click(),mxEvent.consume(a)):27==a.keyCode&&(m.click(),mxEvent.consume(a)))}));n.focus();n.className="geCommentEditBtn gePrimaryBtn";l.appendChild(n);b.insertBefore(l,f);g.style.display="none";f.style.display="none";k.focus()}function e(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 g(a){var b=document.createElement("img");b.className="geCommentBusyImg";b.src=IMAGE_PATH+"/spin.gif";a.appendChild(b);a.busyImg=b}function n(a){a.style.border="1px solid red";a.removeChild(a.busyImg)}function l(a){a.style.border="";a.removeChild(a.busyImg)}function q(b,d,f,k,m){function v(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)});K.appendChild(e);d&&(e.style.display="none")}function N(){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=x;a(b);return{pdiv:d,replies:c}}function D(d,e,f,m,p){function v(){g(D);b.addReply(z,function(a){z.id=a;b.replies.push(z);l(D);f&&f()},function(b){t();n(D);a.handleError(b,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},m,p)}function t(){c(z,D,function(a){v()},!0)}var u=N().pdiv,z=a.newComment(d,a.getCurrentUser());z.pCommentId=b.id;null==b.replies&&(b.replies=[]);var D=q(z,b.replies,u,k+1);e?t():v()}if(m||!b.isResolved){E.style.display="none";var x=document.createElement("div");x.className="geCommentContainer";x.setAttribute("data-commentId",b.id);x.style.marginLeft=20*k+5+"px";b.isResolved&&!Editor.isDarkMode()&&(x.style.backgroundColor="ghostWhite");
-var C=document.createElement("div");C.className="geCommentHeader";var H=document.createElement("img");H.className="geCommentUserImg";H.src=b.user.pictureUrl||Editor.userImage;C.appendChild(H);H=document.createElement("div");H.className="geCommentHeaderTxt";C.appendChild(H);var P=document.createElement("div");P.className="geCommentUsername";mxUtils.write(P,b.user.displayName||"");H.appendChild(P);P=document.createElement("div");P.className="geCommentDate";P.setAttribute("data-commentId",b.id);e(b,
-P);H.appendChild(P);x.appendChild(C);C=document.createElement("div");C.className="geCommentTxt";mxUtils.write(C,b.content||"");x.appendChild(C);b.isLocked&&(x.style.opacity="0.5");C=document.createElement("div");C.className="geCommentActions";var K=document.createElement("ul");K.className="geCommentActionsList";C.appendChild(K);u||b.isLocked||0!=k&&!t||v(mxResources.get("reply"),function(){D("",!0)},b.isResolved);H=a.getCurrentUser();null==H||H.id!=b.user.id||u||b.isLocked||(v(mxResources.get("edit"),
+"geCommentActionLnk";mxUtils.write(f,a);e.appendChild(f);mxEvent.addListener(f,"click",function(a){c(a,b);a.preventDefault();mxEvent.consume(a)});K.appendChild(e);d&&(e.style.display="none")}function N(){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=x;a(b);return{pdiv:d,replies:c}}function C(d,e,f,m,p){function v(){g(C);b.addReply(z,function(a){z.id=a;b.replies.push(z);l(C);f&&f()},function(b){t();n(C);a.handleError(b,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},m,p)}function t(){c(z,C,function(a){v()},!0)}var u=N().pdiv,z=a.newComment(d,a.getCurrentUser());z.pCommentId=b.id;null==b.replies&&(b.replies=[]);var C=q(z,b.replies,u,k+1);e?t():v()}if(m||!b.isResolved){E.style.display="none";var x=document.createElement("div");x.className="geCommentContainer";x.setAttribute("data-commentId",b.id);x.style.marginLeft=20*k+5+"px";b.isResolved&&!Editor.isDarkMode()&&(x.style.backgroundColor="ghostWhite");
+var D=document.createElement("div");D.className="geCommentHeader";var O=document.createElement("img");O.className="geCommentUserImg";O.src=b.user.pictureUrl||Editor.userImage;D.appendChild(O);O=document.createElement("div");O.className="geCommentHeaderTxt";D.appendChild(O);var H=document.createElement("div");H.className="geCommentUsername";mxUtils.write(H,b.user.displayName||"");O.appendChild(H);H=document.createElement("div");H.className="geCommentDate";H.setAttribute("data-commentId",b.id);e(b,
+H);O.appendChild(H);x.appendChild(D);D=document.createElement("div");D.className="geCommentTxt";mxUtils.write(D,b.content||"");x.appendChild(D);b.isLocked&&(x.style.opacity="0.5");D=document.createElement("div");D.className="geCommentActions";var K=document.createElement("ul");K.className="geCommentActionsList";D.appendChild(K);u||b.isLocked||0!=k&&!t||v(mxResources.get("reply"),function(){C("",!0)},b.isResolved);O=a.getCurrentUser();null==O||O.id!=b.user.id||u||b.isLocked||(v(mxResources.get("edit"),
function(){function d(){c(b,x,function(){g(x);b.editComment(b.content,function(){l(x)},function(b){n(x);d();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}d()},b.isResolved),v(mxResources.get("delete"),function(){a.confirm(mxResources.get("areYouSure"),function(){g(x);b.deleteComment(function(a){if(!0===a){a=x.querySelector(".geCommentTxt");a.innerHTML="";mxUtils.write(a,mxResources.get("msgDeleted"));var c=x.querySelectorAll(".geCommentAction");for(a=
0;a<c.length;a++)c[a].parentNode.removeChild(c[a]);l(x);x.style.opacity="0.5"}else{c=N(b).replies;for(a=0;a<c.length;a++)z.removeChild(c[a]);for(a=0;a<d.length;a++)if(d[a]==b){d.splice(a,1);break}E.style.display=0==z.getElementsByTagName("div").length?"block":"none"}},function(b){n(x);a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},b.isResolved));u||b.isLocked||0!=k||v(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=N(b).replies,f=Editor.isDarkMode()?"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);F||(e[g].style.display="none")}p()}b.isResolved?D(mxResources.get("reOpened")+": ",!0,
-c,!1,!0):D(mxResources.get("markedAsResolved"),!1,c,!0)});x.appendChild(C);null!=f?z.insertBefore(x,f.nextSibling):z.appendChild(x);for(f=0;null!=b.replies&&f<b.replies.length;f++)C=b.replies[f],C.isResolved=b.isResolved,q(C,b.replies,null,k+1,m);null!=A&&(A.comment.id==b.id?(m=b.content,b.content=A.comment.content,c(b,x,A.saveCallback,A.deleteOnCancel),b.content=m):null==A.comment.id&&A.comment.pCommentId==b.id&&(z.appendChild(A.div),c(A.comment,A.div,A.saveCallback,A.deleteOnCancel)));return x}}
+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=N(b).replies,f=Editor.isDarkMode()?"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);F||(e[g].style.display="none")}p()}b.isResolved?C(mxResources.get("reOpened")+": ",!0,
+c,!1,!0):C(mxResources.get("markedAsResolved"),!1,c,!0)});x.appendChild(D);null!=f?z.insertBefore(x,f.nextSibling):z.appendChild(x);for(f=0;null!=b.replies&&f<b.replies.length;f++)D=b.replies[f],D.isResolved=b.isResolved,q(D,b.replies,null,k+1,m);null!=A&&(A.comment.id==b.id?(m=b.content,b.content=A.comment.content,c(b,x,A.saveCallback,A.deleteOnCancel),b.content=m):null==A.comment.id&&A.comment.pCommentId==b.id&&(z.appendChild(A.div),c(A.comment,A.div,A.saveCallback,A.deleteOnCancel)));return x}}
var u=!a.canComment(),t=a.canReplyToReplies(),A=null,x=document.createElement("div");x.className="geCommentsWin";x.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var G=EditorUi.compactUi?"26px":"30px",z=document.createElement("div");z.className="geCommentsList";z.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";z.style.bottom=parseInt(G)+7+"px";x.appendChild(z);var E=document.createElement("span");E.style.cssText="display:none;padding-top:10px;text-align:center;";
mxUtils.write(E,mxResources.get("noCommentsFound"));var H=document.createElement("div");H.className="geToolbarContainer geCommentsToolbar";H.style.height=G;H.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";H.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";G=document.createElement("a");G.className="geButton";if(!u){var K=G.cloneNode();K.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';K.setAttribute("title",mxResources.get("create")+
"...");mxEvent.addListener(K,"click",function(b){function d(){c(e,f,function(b){g(f);a.addComment(b,function(a){b.id=a;I.push(b);l(f)},function(b){n(f);d();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var e=a.newComment("",a.getCurrentUser()),f=q(e,I,null,0);d();b.preventDefault();mxEvent.consume(b)});H.appendChild(K)}K=G.cloneNode();K.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';K.setAttribute("title",mxResources.get("showResolved"));
-var F=!1;Editor.isDarkMode()&&(K.style.filter="invert(100%)");mxEvent.addListener(K,"click",function(a){this.className=(F=!F)?"geButton geCheckedBtn":"geButton";D();a.preventDefault();mxEvent.consume(a)});H.appendChild(K);a.commentsRefreshNeeded()&&(K=G.cloneNode(),K.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',K.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(K.style.filter="invert(100%)"),mxEvent.addListener(K,"click",function(a){D();
-a.preventDefault();mxEvent.consume(a)}),H.appendChild(K));a.commentsSaveNeeded()&&(G=G.cloneNode(),G.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',G.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(G.style.filter="invert(100%)"),mxEvent.addListener(G,"click",function(a){m();a.preventDefault();mxEvent.consume(a)}),H.appendChild(G));x.appendChild(H);var I=[],D=mxUtils.bind(this,function(){this.hasError=!1;if(null!=A)try{A.div=A.div.cloneNode(!0);
+var F=!1;Editor.isDarkMode()&&(K.style.filter="invert(100%)");mxEvent.addListener(K,"click",function(a){this.className=(F=!F)?"geButton geCheckedBtn":"geButton";C();a.preventDefault();mxEvent.consume(a)});H.appendChild(K);a.commentsRefreshNeeded()&&(K=G.cloneNode(),K.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',K.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(K.style.filter="invert(100%)"),mxEvent.addListener(K,"click",function(a){C();
+a.preventDefault();mxEvent.consume(a)}),H.appendChild(K));a.commentsSaveNeeded()&&(G=G.cloneNode(),G.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',G.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(G.style.filter="invert(100%)"),mxEvent.addListener(G,"click",function(a){m();a.preventDefault();mxEvent.consume(a)}),H.appendChild(G));x.appendChild(H);var I=[],C=mxUtils.bind(this,function(){this.hasError=!1;if(null!=A)try{A.div=A.div.cloneNode(!0);
var b=A.div.querySelector(".geCommentEditTxtArea"),d=A.div.querySelector(".geCommentEditBtns");A.comment.content=b.value;b.parentNode.removeChild(b);d.parentNode.removeChild(d)}catch(N){a.handleError(N)}z.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";t=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)});z.innerHTML="";z.appendChild(E);E.style.display="block";I=a;for(a=0;a<I.length;a++)b(I[a].replies),q(I[a],I,null,0,F);null!=A&&null==A.comment.id&&null==A.comment.pCommentId&&(z.appendChild(A.div),c(A.comment,A.div,A.saveCallback,A.deleteOnCancel))},mxUtils.bind(this,function(a){z.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(a&&a.message?
-": "+a.message:""));this.hasError=!0})):z.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});D();this.refreshComments=D;H=mxUtils.bind(this,function(){function a(b){var d=c[b.id];if(null!=d)for(e(b,d),d=0;null!=b.replies&&d<b.replies.length;d++)a(b.replies[d])}if(this.window.isVisible()){for(var b=z.querySelectorAll(".geCommentDate"),c={},d=0;d<b.length;d++){var f=b[d];c[f.getAttribute("data-commentId")]=f}for(d=0;d<I.length;d++)a(I[d])}});setInterval(H,6E4);this.refreshCommentsTime=H;this.window=
+": "+a.message:""));this.hasError=!0})):z.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});C();this.refreshComments=C;H=mxUtils.bind(this,function(){function a(b){var d=c[b.id];if(null!=d)for(e(b,d),d=0;null!=b.replies&&d<b.replies.length;d++)a(b.replies[d])}if(this.window.isVisible()){for(var b=z.querySelectorAll(".geCommentDate"),c={},d=0;d<b.length;d++){var f=b[d];c[f.getAttribute("data-commentId")]=f}for(d=0;d<I.length;d++)a(I[d])}});setInterval(H,6E4);this.refreshCommentsTime=H;this.window=
new mxWindow(mxResources.get("comments"),x,b,d,k,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 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()}},ConfirmDialog=function(a,b,d,
k,f,m,p,c,e,g,n){var l=document.createElement("div");l.style.textAlign="center";n=null!=n?n:44;var q=document.createElement("div");q.style.padding="6px";q.style.overflow="auto";q.style.maxHeight=n+"px";q.style.lineHeight="1.2em";mxUtils.write(q,b);l.appendChild(q);null!=g&&(q=document.createElement("div"),q.style.padding="6px 0 6px 0",b=document.createElement("img"),b.setAttribute("src",g),q.appendChild(b),l.appendChild(q));g=document.createElement("div");g.style.textAlign="center";g.style.whiteSpace=
@@ -3776,7 +3778,7 @@ b,d,p,c,e),mxUtils.bind(this,function(a){return this.isTreeEdge(a)}))};Graph.pro
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 e(a,b){b=null!=b?b:!0;t.model.beginUpdate();try{var d=t.model.getParent(a),e=t.getIncomingTreeEdges(a),f=t.cloneCells([e[0],a]);t.model.setTerminal(f[0],t.model.getTerminal(e[0],
!0),!0);var g=c(a),k=d.geometry;g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NORTH?f[1].geometry.x+=b?a.geometry.width+10:-f[1].geometry.width-10:f[1].geometry.y+=b?a.geometry.height+10:-f[1].geometry.height-10;t.view.currentRoot!=d&&(f[1].geometry.x-=k.x,f[1].geometry.y-=k.y);var l=t.view.getState(a),m=t.view.scale;if(null!=l){var n=mxRectangle.fromRectangle(l);g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NORTH?n.x+=(b?a.geometry.width+10:-f[1].geometry.width-10)*m:n.y+=(b?
a.geometry.height+10:-f[1].geometry.height-10)*m;var p=t.getOutgoingTreeEdges(t.model.getTerminal(e[0],!0));if(null!=p){for(var q=g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NORTH,v=k=e=0;v<p.length;v++){var u=t.model.getTerminal(p[v],!1);if(g==c(u)){var z=t.view.getState(u);u!=a&&null!=z&&(q&&b!=z.getCenterX()<l.getCenterX()||!q&&b!=z.getCenterY()<l.getCenterY())&&mxUtils.intersects(n,z)&&(e=10+Math.max(e,(Math.min(n.x+n.width,z.x+z.width)-Math.max(n.x,z.x))/m),k=10+Math.max(k,(Math.min(n.y+
-n.height,z.y+z.height)-Math.max(n.y,z.y))/m))}}q?k=0:e=0;for(v=0;v<p.length;v++)if(u=t.model.getTerminal(p[v],!1),g==c(u)&&(z=t.view.getState(u),u!=a&&null!=z&&(q&&b!=z.getCenterX()<l.getCenterX()||!q&&b!=z.getCenterY()<l.getCenterY()))){var D=[];t.traverse(z.cell,!0,function(a,b){var c=null!=b&&t.isTreeEdge(b);c&&D.push(b);(null==b||c)&&D.push(a);return null==b||c});t.moveCells(D,(b?1:-1)*e,(b?1:-1)*k)}}}return t.addCells(f,d)}finally{t.model.endUpdate()}}function g(a){t.model.beginUpdate();try{var b=
+n.height,z.y+z.height)-Math.max(n.y,z.y))/m))}}q?k=0:e=0;for(v=0;v<p.length;v++)if(u=t.model.getTerminal(p[v],!1),g==c(u)&&(z=t.view.getState(u),u!=a&&null!=z&&(q&&b!=z.getCenterX()<l.getCenterX()||!q&&b!=z.getCenterY()<l.getCenterY()))){var C=[];t.traverse(z.cell,!0,function(a,b){var c=null!=b&&t.isTreeEdge(b);c&&C.push(b);(null==b||c)&&C.push(a);return null==b||c});t.moveCells(C,(b?1:-1)*e,(b?1:-1)*k)}}}return t.addCells(f,d)}finally{t.model.endUpdate()}}function g(a){t.model.beginUpdate();try{var b=
c(a),d=t.getIncomingTreeEdges(a),e=t.cloneCells([d[0],a]);t.model.setTerminal(d[0],e[1],!1);t.model.setTerminal(e[0],e[1],!0);t.model.setTerminal(e[0],a,!1);var f=t.model.getParent(a),g=f.geometry,k=[];t.view.currentRoot!=f&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);t.traverse(a,!0,function(a,b){var c=null!=b&&t.isTreeEdge(b);c&&k.push(b);(null==b||c)&&k.push(a);return null==b||c});var l=a.geometry.width+40,m=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?l=0:b==mxConstants.DIRECTION_NORTH?
(l=0,m=-m):b==mxConstants.DIRECTION_WEST?(l=-l,m=0):b==mxConstants.DIRECTION_EAST&&(m=0);t.moveCells(k,l,m);return t.addCells(e,f)}finally{t.model.endUpdate()}}function n(a,b){t.model.beginUpdate();try{var d=t.model.getParent(a),e=t.getIncomingTreeEdges(a),f=c(a);0==e.length&&(e=[t.createEdge(d,null,"",null,null,t.createCurrentEdgeStyle())],f=b);var g=t.cloneCells([e[0],a]);t.model.setTerminal(g[0],a,!0);if(null==t.model.getTerminal(g[0],!1)){t.model.setTerminal(g[0],g[1],!1);var k=t.getCellStyle(g[1]).newEdgeStyle;
if(null!=k)try{var l=JSON.parse(k),m;for(m in l)t.setCellStyles(m,l[m],[g[0]]),"edgeStyle"==m&&"elbowEdgeStyle"==l[m]&&t.setCellStyles("elbow",f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[g[0]])}catch(ca){}}var e=t.getOutgoingTreeEdges(a),n=d.geometry,k=[];t.view.currentRoot==d&&(n=new mxRectangle);for(l=0;l<e.length;l++){var p=t.model.getTerminal(e[l],!1);null!=p&&k.push(p)}var q=t.view.getBounds(k),v=t.view.translate,u=t.view.scale;f==mxConstants.DIRECTION_SOUTH?
@@ -3796,10 +3798,10 @@ function(b,c,d,e){var f=t.model,g=null;f.beginUpdate();try{if(g=H.apply(this,arg
!t.isEditing()&&a(t.getSelectionCell())&&1==t.getSelectionCount()){var c=null;0<t.getIncomingTreeEdges(t.getSelectionCell()).length&&(9==b.which?c=mxEvent.isShiftDown(b)?g(t.getSelectionCell()):n(t.getSelectionCell()):13==b.which&&(c=e(t.getSelectionCell(),!mxEvent.isShiftDown(b))));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!=u.hoverIcons&&u.hoverIcons.update(t.view.getState(t.getSelectionCell())),
t.startEditingAtCell(t.getSelectionCell()),mxEvent.consume(b);else if(mxEvent.isAltDown(b)&&mxEvent.isShiftDown(b)){var d=K[b.keyCode];null!=d&&(d.funct(b),mxEvent.consume(b))}else 37==b.keyCode?(q(t.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(b)):38==b.keyCode?(q(t.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(b)):39==b.keyCode?(q(t.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(b)):40==b.keyCode&&(q(t.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
mxEvent.consume(b))}}catch(B){u.handleError(B)}mxEvent.isConsumed(b)||F.apply(this,arguments)};var I=t.connectVertex;t.connectVertex=function(b,d,f,k,l,m,p){var q=t.getIncomingTreeEdges(b);if(a(b)){var v=c(b),u=v==mxConstants.DIRECTION_EAST||v==mxConstants.DIRECTION_WEST,z=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST;return v==d||0==q.length?n(b,d):u==z?g(b):e(b,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)}return I.apply(this,arguments)};t.getSubtree=function(c){var d=
-[c];!b(c)&&!a(c)||p(c)||t.traverse(c,!0,function(a,b){var c=null!=b&&t.isTreeEdge(b);c&&0>mxUtils.indexOf(d,b)&&d.push(b);(null==b||c)&&0>mxUtils.indexOf(d,a)&&d.push(a);return null==b||c});return d};var D=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){D.apply(this,arguments);(b(this.state.cell)||a(this.state.cell))&&!p(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
+[c];!b(c)&&!a(c)||p(c)||t.traverse(c,!0,function(a,b){var c=null!=b&&t.isTreeEdge(b);c&&0>mxUtils.indexOf(d,b)&&d.push(b);(null==b||c)&&0>mxUtils.indexOf(d,a)&&d.push(a);return null==b||c});return d};var C=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){C.apply(this,arguments);(b(this.state.cell)||a(this.state.cell))&&!p(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
"Move Subtree"),this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="24px",this.moveHandle.style.height="24px",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;u.hoverIcons.reset();mxEvent.consume(a)})))};var M=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){M.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 U=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){U.apply(this,
-arguments);null!=this.moveHandle&&(this.moveHandle.style.display=a?"":"none")};var P=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){P.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",
+arguments);null!=this.moveHandle&&(this.moveHandle.style.display=a?"":"none")};var O=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){O.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,400,320),"swimlane;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Parent",new mxGeometry(140,60,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');b.vertex=!0;var c=new mxCell("Child",new mxGeometry(140,140,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!0);c.insertEdge(d,!1);a.insert(d);a.insert(b);a.insert(c);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;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;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":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;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
@@ -3879,7 +3881,7 @@ p.insertBefore(g,m.statusContainer):p.appendChild(g);null!=f?(g.style.background
"relative";c.style.top="0px";"1"==urlParams.sketch&&(c.style.boxShadow="none");for(var d=0;d<a.length;d++)null!=a[d]&&("1"==urlParams.sketch&&(a[d].style.padding="10px 8px",a[d].style.width="30px"),a[d].style.margin="0px",a[d].style.boxShadow="none",c.appendChild(a[d]));null!=b&&mxUtils.setOpacity(c,b);null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(c,m.statusContainer):p.appendChild(c);return c}function g(){for(var a=p.firstChild;null!=a;){var b=a.nextSibling;"geMenuItem"!=a.className&&
"geItem"!=a.className||a.parentNode.removeChild(a);a=b}q=p.firstChild;d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(a=1E3>d||"1"==urlParams.sketch)||c("diagram");if("1"==urlParams.sketch)aa.style.left=58>Q.offsetTop-Q.offsetHeight/2?"70px":"10px";else if(f([a?c("diagram",null,IMAGE_PATH+"/drawlogo.svg"):null,e(mxResources.get("shapes"),m.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),m.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":
null),e(mxResources.get("format"),m.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+m.actions.get("formatPanel").shortcut+")",m.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==":
-null)],a?60:null),b=c("insert",!0,a?L:null),f([b,e(mxResources.get("delete"),m.actions.get("delete").funct,null,mxResources.get("delete"),m.actions.get("delete"),a?ra:null)],a?60:null),411<=d&&(f([qa,va],60),520<=d&&(f([ua,640<=d?e("",O.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",O,ta):null,640<=d?e("",X.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",X,da):null],60),720<=d))){var g=e("",R.funct,null,mxResources.get("dark"),R,Editor.isDarkMode()?ba:ka);g.style.opacity=
+null)],a?60:null),b=c("insert",!0,a?L:null),f([b,e(mxResources.get("delete"),m.actions.get("delete").funct,null,mxResources.get("delete"),m.actions.get("delete"),a?ra:null)],a?60:null),411<=d&&(f([qa,va],60),520<=d&&(f([ua,640<=d?e("",P.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",P,ta):null,640<=d?e("",X.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",X,da):null],60),720<=d))){var g=e("",R.funct,null,mxResources.get("dark"),R,Editor.isDarkMode()?ba:ka);g.style.opacity=
"0.4";m.addListener("darkModeChanged",mxUtils.bind(this,function(){g.style.backgroundImage="url("+(Editor.isDarkMode()?ba:ka)+")"}));null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(g,m.statusContainer):p.appendChild(g)}a=m.menus.get("language");null!=a&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=d&&"1"!=urlParams.sketch?(null==wa&&(b=t.addMenu("",a.funct),b.setAttribute("title",mxResources.get("language")),b.className="geToolbarButton",b.style.backgroundImage="url("+Editor.globeImage+
")",b.style.backgroundPosition="center center",b.style.backgroundRepeat="no-repeat",b.style.backgroundSize="24px 24px",b.style.position="absolute",b.style.height="24px",b.style.width="24px",b.style.zIndex="1",b.style.right="8px",b.style.cursor="pointer",b.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(b),wa=b),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=wa&&(wa.parentNode.removeChild(wa),wa=null))}G.apply(this,arguments);this.doSetDarkMode(null!=
urlParams.dark?1==urlParams.dark:mxSettings.settings.darkMode);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);"1"==urlParams.sketch&&(this.toggleScratchpad(),this.editor.graph.isZoomWheelEvent=function(a){return!mxEvent.isShiftDown(a)&&!mxEvent.isMetaDown(a)&&!mxEvent.isAltDown(a)&&(!mxEvent.isControlDown(a)||
@@ -3889,14 +3891,14 @@ this.formatWindow.window.toggleMinimized()}var m=this,n=m.editor.graph;m.toolbar
"gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var x=m.descriptorChanged;m.descriptorChanged=function(){x.apply(this,arguments);var a=m.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")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";
var k=m.diagramContainer.parentNode,A=document.createElement("div");A.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var J=m.menus.get("viewZoom"),L="1"!=urlParams.sketch?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMywxMWg4VjNIM1YxMXogTTUsNWg0djRINVY1eiIvPjxwYXRoIGQ9Ik0xMywzdjhoOFYzSDEzeiBNMTksOWgtNFY1aDRWOXoiLz48cGF0aCBkPSJNMywyMWg4di04SDNWMjF6IE01LDE1aDR2NEg1VjE1eiIvPjxwb2x5Z29uIHBvaW50cz0iMTgsMTMgMTYsMTMgMTYsMTYgMTMsMTYgMTMsMTggMTYsMTggMTYsMjEgMTgsMjEgMTgsMTggMjEsMTggMjEsMTYgMTgsMTYiLz48L2c+PC9nPjwvc3ZnPg==",
-W="1"==urlParams.sketch?document.createElement("div"):null,Q="1"==urlParams.sketch?document.createElement("div"):null,aa="1"==urlParams.sketch?document.createElement("div"):null;m.addListener("darkModeChanged",mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()}));
-Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(b)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))});if(null!=m.hoverIcons){var na=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||na.apply(this,arguments)}}if(null!=n.freehand){var ga=n.freehand.createStyle;n.freehand.createStyle=function(a){return ga.apply(this,arguments)+
-"sketch=0;"}}if("1"==urlParams.sketch){Q.className="geToolbarContainer";W.className="geToolbarContainer";aa.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=Q;var ea=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){ea||(m.statusContainer.style.display="none")});var la=mxUtils.bind(this,function(a){null!=m.notificationBtn&&(null!=a?m.notificationBtn.setAttribute("title",a):m.notificationBtn.removeAttribute("title"))});
-"1"!=urlParams.embed&&m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&null==m.statusContainer.firstChild.getAttribute("class")){null!=m.statusContainer.firstChild?la(m.statusContainer.firstChild.getAttribute("title")):la(m.editor.getStatus());var a=m.getCurrentFile(),a=null!=a?a.savingStatusKey:DrawioFile.prototype.savingStatusKey;null!=m.notificationBtn&&m.notificationBtn.getAttribute("title")==
-mxResources.get(a)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(a))+'..."src="'+IMAGE_PATH+'/spin.gif">',m.statusContainer.style.display="inline-block",ea=!0):(m.statusContainer.style.display="none",ea=!1)}else m.statusContainer.style.display="inline-block",la(null),ea=!0}));S=c("diagram",null,IMAGE_PATH+"/drawlogo.svg");S.style.boxShadow="none";S.style.opacity="0.4";S.style.padding="6px";S.style.margin="0px";aa.appendChild(S);m.statusContainer.style.position=
-"";m.statusContainer.style.display="none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(d-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display="inline-block";var V=document.createElement("a");V.style.padding="0px";V.style.boxShadow="none";V.className="geMenuItem";
-V.style.display="inline-block";V.style.width="40px";V.style.height="12px";V.style.marginBottom="-2px";V.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";V.style.backgroundPosition="top center";V.style.backgroundRepeat="no-repeat";V.setAttribute("title","Minimize");var ca=!1,ma=mxUtils.bind(this,function(){Q.innerHTML="";if(!ca){var a=function(a,c,d){a=e("",a.funct,null,c,a,d);a.style.width="40px";return b(a,null,"pointer")},b=function(a,b,c){null!=b&&a.setAttribute("title",b);a.style.cursor=
-null!=c?c:"default";a.style.margin="2px 0px";Q.appendChild(a);mxUtils.br(Q);return a};b(m.sidebar.createVertexTemplate("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",40,20,"Text",mxResources.get("text"),!0,!0,null,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");b(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;fontSize=24;pointerEvents=1;"+
+W="1"==urlParams.sketch?document.createElement("div"):null,Q="1"==urlParams.sketch?document.createElement("div"):null,aa="1"==urlParams.sketch?document.createElement("div"):null;m.addListener("darkModeChanged",mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.refreshBackgroundImage();
+n.view.validateBackground()}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(b)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))});if(null!=m.hoverIcons){var na=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||na.apply(this,arguments)}}if(null!=n.freehand){var ga=n.freehand.createStyle;n.freehand.createStyle=function(a){return ga.apply(this,
+arguments)+"sketch=0;"}}if("1"==urlParams.sketch){Q.className="geToolbarContainer";W.className="geToolbarContainer";aa.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=Q;var ea=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){ea||(m.statusContainer.style.display="none")});var la=mxUtils.bind(this,function(a){null!=m.notificationBtn&&(null!=a?m.notificationBtn.setAttribute("title",
+a):m.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed&&m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&null==m.statusContainer.firstChild.getAttribute("class")){null!=m.statusContainer.firstChild?la(m.statusContainer.firstChild.getAttribute("title")):la(m.editor.getStatus());var a=m.getCurrentFile(),a=null!=a?a.savingStatusKey:DrawioFile.prototype.savingStatusKey;
+null!=m.notificationBtn&&m.notificationBtn.getAttribute("title")==mxResources.get(a)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(a))+'..."src="'+IMAGE_PATH+'/spin.gif">',m.statusContainer.style.display="inline-block",ea=!0):(m.statusContainer.style.display="none",ea=!1)}else m.statusContainer.style.display="inline-block",la(null),ea=!0}));S=c("diagram",null,IMAGE_PATH+"/drawlogo.svg");S.style.boxShadow="none";S.style.opacity="0.4";S.style.padding="6px";S.style.margin=
+"0px";aa.appendChild(S);m.statusContainer.style.position="";m.statusContainer.style.display="none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(d-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display="inline-block";var V=document.createElement("a");V.style.padding=
+"0px";V.style.boxShadow="none";V.className="geMenuItem";V.style.display="inline-block";V.style.width="40px";V.style.height="12px";V.style.marginBottom="-2px";V.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";V.style.backgroundPosition="top center";V.style.backgroundRepeat="no-repeat";V.setAttribute("title","Minimize");var ca=!1,ma=mxUtils.bind(this,function(){Q.innerHTML="";if(!ca){var a=function(a,c,d){a=e("",a.funct,null,c,a,d);a.style.width="40px";return b(a,null,"pointer")},
+b=function(a,b,c){null!=b&&a.setAttribute("title",b);a.style.cursor=null!=c?c:"default";a.style.margin="2px 0px";Q.appendChild(a);mxUtils.br(Q);return a};b(m.sidebar.createVertexTemplate("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",40,20,"Text",mxResources.get("text"),!0,!0,null,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");b(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;fontSize=24;pointerEvents=1;"+
("0"!=urlParams.rough?"sketch=1;jiggle=2;":""),140,160,"",mxResources.get("note"),!0,!0,null,!0),mxResources.get("note"));b(m.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",160,80,"",mxResources.get("rectangle"),!0,!0,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");b(m.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!0,null,!0),mxResources.get("ellipse"));(function(){var a=new mxCell("",new mxGeometry(0,0,n.defaultEdgeLength,
0),"edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;sourcePerimeterSpacing=8;targetPerimeterSpacing=8;fontSize=16;"+("0"!=urlParams.rough?"sketch=1;":""));a.geometry.setTerminalPoint(new mxPoint(0,0),!0);a.geometry.setTerminalPoint(new mxPoint(a.geometry.width,0),!1);a.geometry.points=[];a.geometry.relative=!0;a.edge=!0;b(m.sidebar.createEdgeTemplateFromCells([a],a.geometry.width,a.geometry.height,mxResources.get("line"),!1,null,!0),mxResources.get("line"));
a=a.clone();a.style+="shape=flexArrow;rounded=1;startSize=8;endSize=8;";a.geometry.width=n.defaultEdgeLength+20;a.geometry.setTerminalPoint(new mxPoint(0,20),!0);a.geometry.setTerminalPoint(new mxPoint(a.geometry.width,20),!1);a=b(m.sidebar.createEdgeTemplateFromCells([a],a.geometry.width,40,mxResources.get("arrow"),!1,null,!0),mxResources.get("arrow"));a.style.borderBottom="1px solid lightgray";a.style.paddingBottom="14px";a.style.marginBottom="14px"})();a(m.actions.get("insertFreehand"),mxResources.get("freehand"),
@@ -3904,7 +3906,7 @@ a=a.clone();a.style+="shape=flexArrow;rounded=1;startSize=8;endSize=8;";a.geomet
var c=m.actions.get("toggleShapes");a(c,mxResources.get("shapes")+" ("+c.shortcut+")",L);a(m.actions.get("insertTemplate"),mxResources.get("template"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEzIDExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTEtOUg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExeiIvPjwvc3ZnPg==")}Q.appendChild(V)});
mxEvent.addListener(V,"click",mxUtils.bind(this,function(){ca?(mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, -50%)"),Q.style.padding="8px 6px 4px",Q.style.top="50%",Q.style.bottom="",Q.style.height="",V.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",V.style.width="40px",V.style.height="12px",V.setAttribute("title","Minimize"),ca=!1,ma()):(Q.innerHTML="",Q.appendChild(V),mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, 0)"),Q.style.top="",Q.style.bottom="12px",
Q.style.padding="0px",Q.style.height="24px",V.style.height="24px",V.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==)",V.setAttribute("title",mxResources.get("insert")),V.style.width="24px",ca=!0)}));ma();m.addListener("darkModeChanged",mxUtils.bind(this,function(){ma()}))}else m.editor.addListener("statusChanged",
-mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=J){var T=function(a){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(a)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},O=m.actions.get("zoomIn"),ta="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4=",
+mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=J){var T=function(a){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(a)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},P=m.actions.get("zoomIn"),ta="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4=",
X=m.actions.get("zoomOut"),da="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg==",
ia=m.actions.get("resetView"),pa=m.actions.get("fullscreen"),R=m.actions.get("toggleDarkMode"),ka="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik05LjM3LDUuNTFDOS4xOSw2LjE1LDkuMSw2LjgyLDkuMSw3LjVjMCw0LjA4LDMuMzIsNy40LDcuNCw3LjRjMC42OCwwLDEuMzUtMC4wOSwxLjk5LTAuMjdDMTcuNDUsMTcuMTksMTQuOTMsMTksMTIsMTkgYy0zLjg2LDAtNy0zLjE0LTctN0M1LDkuMDcsNi44MSw2LjU1LDkuMzcsNS41MXogTTEyLDNjLTQuOTcsMC05LDQuMDMtOSw5czQuMDMsOSw5LDlzOS00LjAzLDktOWMwLTAuNDYtMC4wNC0wLjkyLTAuMS0xLjM2IGMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNmMtMi45OCwwLTUuNC0yLjQyLTUuNC01LjRjMC0xLjgxLDAuODktMy40MiwyLjI2LTQuNEMxMi45MiwzLjA0LDEyLjQ2LDMsMTIsM0wxMiwzeiIvPjwvc3ZnPg==",
ba="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik0xMiw5YzEuNjUsMCwzLDEuMzUsMywzcy0xLjM1LDMtMywzcy0zLTEuMzUtMy0zUzEwLjM1LDksMTIsOSBNMTIsN2MtMi43NiwwLTUsMi4yNC01LDVzMi4yNCw1LDUsNXM1LTIuMjQsNS01IFMxNC43Niw3LDEyLDdMMTIsN3ogTTIsMTNsMiwwYzAuNTUsMCwxLTAuNDUsMS0xcy0wLjQ1LTEtMS0xbC0yLDBjLTAuNTUsMC0xLDAuNDUtMSwxUzEuNDUsMTMsMiwxM3ogTTIwLDEzbDIsMGMwLjU1LDAsMS0wLjQ1LDEtMSBzLTAuNDUtMS0xLTFsLTIsMGMtMC41NSwwLTEsMC40NS0xLDFTMTkuNDUsMTMsMjAsMTN6IE0xMSwydjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMVYyYzAtMC41NS0wLjQ1LTEtMS0xUzExLDEuNDUsMTEsMnogTTExLDIwdjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMXYtMmMwLTAuNTUtMC40NS0xLTEtMUMxMS40NSwxOSwxMSwxOS40NSwxMSwyMHogTTUuOTksNC41OGMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDAgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBzMC4zOS0xLjAzLDAtMS40MUw1Ljk5LDQuNTh6IE0xOC4zNiwxNi45NSBjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDEgTDE4LjM2LDE2Ljk1eiBNMTkuNDIsNS45OWMwLjM5LTAuMzksMC4zOS0xLjAzLDAtMS40MWMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDBsLTEuMDYsMS4wNmMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDEgczEuMDMsMC4zOSwxLjQxLDBMMTkuNDIsNS45OXogTTcuMDUsMTguMzZjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDFjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwbC0xLjA2LDEuMDYgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MXMxLjAzLDAuMzksMS40MSwwTDcuMDUsMTguMzZ6Ii8+PC9zdmc+",
@@ -3914,7 +3916,7 @@ ia=e("",pa.funct,null,mxResources.get("fullscreen"),pa,"data:image/svg+xml;base6
if(null!=W){var ya=m.actions.get("delete"),za=e("",ya.funct,null,mxResources.get("delete"),ya,ra);za.style.opacity="0.1";aa.appendChild(za);ya.addListener("stateChanged",function(){za.style.opacity=ya.enabled?"0.4":"0.1"});J=function(){qa.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";va.style.display=qa.style.display;qa.style.opacity=ja.enabled?"0.4":"0.1";va.style.opacity=Y.enabled?"0.4":"0.1"};aa.appendChild(qa);aa.appendChild(va);ja.addListener("stateChanged",
J);Y.addListener("stateChanged",J);J();J=m.actions.get("outline");J=e("",J.funct,null,mxResources.get("outline"),J,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0yMC41IDNsLS4xNi4wM0wxNSA1LjEgOSAzIDMuMzYgNC45Yy0uMjEuMDctLjM2LjI1LS4zNi40OFYyMC41YzAgLjI4LjIyLjUuNS41bC4xNi0uMDNMOSAxOC45bDYgMi4xIDUuNjQtMS45Yy4yMS0uMDcuMzYtLjI1LjM2LS40OFYzLjVjMC0uMjgtLjIyLS41LS41LS41ek0xNSAxOWwtNi0yLjExVjVsNiAyLjExVjE5eiIvPjwvc3ZnPg==");
J.style.opacity="0.4";W.appendChild(J);J=e("",X.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",X,da);J.style.opacity="0.4";W.appendChild(J);var S=document.createElement("div");S.innerHTML="100%";S.setAttribute("title",mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");S.style.display="inline-block";S.style.cursor="pointer";S.style.textAlign="center";S.style.whiteSpace="nowrap";S.style.paddingRight="10px";S.style.textDecoration="none";S.style.verticalAlign=
-"top";S.style.padding="6px 0";S.style.fontSize="14px";S.style.width="40px";S.style.opacity="0.4";W.appendChild(S);mxEvent.addListener(S,"click",T);T=e("",O.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",O,ta);T.style.opacity="0.4";W.appendChild(T);var Aa=e("",R.funct,null,mxResources.get("dark"),R,Editor.isDarkMode()?ba:ka);Aa.style.opacity="0.4";W.appendChild(Aa);m.addListener("darkModeChanged",mxUtils.bind(this,function(){Aa.style.backgroundImage="url("+(Editor.isDarkMode()?
+"top";S.style.padding="6px 0";S.style.fontSize="14px";S.style.width="40px";S.style.opacity="0.4";W.appendChild(S);mxEvent.addListener(S,"click",T);T=e("",P.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",P,ta);T.style.opacity="0.4";W.appendChild(T);var Aa=e("",R.funct,null,mxResources.get("dark"),R,Editor.isDarkMode()?ba:ka);Aa.style.opacity="0.4";W.appendChild(Aa);m.addListener("darkModeChanged",mxUtils.bind(this,function(){Aa.style.backgroundImage="url("+(Editor.isDarkMode()?
ba:ka)+")"}));pa.visible&&(ia.style.opacity="0.4",W.appendChild(ia));var ha=this.createPageMenuTab(!1);ha.style.display="none";ha.style.position="";ha.style.marginLeft="";ha.style.top="";ha.style.left="";ha.style.height="100%";ha.style.lineHeight="";ha.style.borderStyle="none";ha.style.padding="3px 0";ha.style.margin="0px";ha.style.background="";ha.style.border="";ha.style.boxShadow="none";ha.style.verticalAlign="top";ha.firstChild.style.height="100%";ha.firstChild.style.opacity="0.6";ha.firstChild.style.margin=
"0px";W.appendChild(ha);m.addListener("fileDescriptorChanged",function(){ha.style.display="1"==urlParams.pages||null!=m.pages&&1<m.pages.length?"inline-block":"none"});m.tabContainer.style.visibility="hidden";p.style.cssText="position:absolute;right:12px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px 0px 6px 6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;overflow:hidden;user-select:none;";aa.style.cssText="position:absolute;left:10px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;overflow:hidden;user-select:none;";
W.style.cssText="position:absolute;right:12px;bottom:12px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;user-select:none;";A.appendChild(aa);A.appendChild(W);Q.style.cssText="position:absolute;left:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px 6px 4px 6px;white-space:nowrap;transform:translate(0, -50%);top:50%;user-select:none;";A.appendChild(Q);window.setTimeout(function(){mxUtils.setPrefixedStyle(Q.style,
@@ -3922,7 +3924,7 @@ W.style.cssText="position:absolute;right:12px;bottom:12px;height:28px;z-index:1;
S.style.visibility="hidden",S.style.textAlign="center",S.style.cursor="pointer",S.style.height=parseInt(m.tabContainerHeight)-1+"px",S.style.lineHeight=parseInt(m.tabContainerHeight)+1+"px",S.style.position="absolute",S.style.display="block",S.style.fontSize="12px",S.style.width="59px",S.style.right="0px",S.style.bottom="0px",S.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")",S.style.backgroundPosition="right 6px center",S.style.backgroundRepeat="no-repeat",A.appendChild(S);pa=mxUtils.bind(this,
function(){S.innerHTML=Math.round(100*m.editor.graph.view.scale)+"%"});m.editor.graph.view.addListener(mxEvent.EVENT_SCALE,pa);m.editor.addListener("resetGraphView",pa);m.editor.addListener("pageSelected",pa);var Ba=m.setGraphEnabled;m.setGraphEnabled=function(){Ba.apply(this,arguments);null!=this.tabContainer&&(S.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==W?this.tabContainerHeight+"px":"0px")}}A.appendChild(p);
A.appendChild(m.diagramContainer);k.appendChild(A);m.updateTabContainer();null==W&&A.appendChild(m.tabContainer);var wa=null;g();mxEvent.addListener(window,"resize",function(){g();null!=m.sidebarWindow&&m.sidebarWindow.window.fit();null!=m.formatWindow&&m.formatWindow.window.fit();null!=m.actions.outlineWindow&&m.actions.outlineWindow.window.fit();null!=m.actions.layersWindow&&m.actions.layersWindow.window.fit();null!=m.menus.tagsWindow&&m.menus.tagsWindow.window.fit();null!=m.menus.findWindow&&m.menus.findWindow.window.fit();
-null!=m.menus.findReplaceWindow&&m.menus.findReplaceWindow.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,d,k,f,m,p){this.file=a;this.id=b;this.content=d;this.modifiedDate=k;this.createdDate=f;this.isResolved=m;this.user=p;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(a){null!=a&&this.replies.push(a)};DrawioComment.prototype.addReply=function(a,b,d,k,f){b()};DrawioComment.prototype.editComment=function(a,b,d){b()};DrawioComment.prototype.deleteComment=function(a,b){a()};DrawioUser=function(a,b,d,k,f){this.id=a;this.email=b;this.displayName=d;this.pictureUrl=k;this.locale=f};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\nabout=About \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\nbringForward=Bring Forward\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\ncompare=Compare\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.\ncontainer=Container\ncsv=CSV\ndark=Dark\ndiagramXmlDesc=XML File\ndiagramHtmlDesc=HTML File\ndiagramPngDesc=Editable Bitmap Image\ndiagramSvgDesc=Editable Vector Image\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.\ndraftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.\nselectDraft=Select a draft to continue editing:\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\nconfiguration=Configuration\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.\ncopyData=Copy Data\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\ndoNotShowAgain=Do not show again\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Get 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\ninstallApp=Install App\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.\nlicenseRequired=This feature requires draw.io to be licensed.\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\nmerge=Merge\nmermaid=Mermaid\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\nnotion=Notion\nnotSatisfiedWithImport=Not satisfied with the import?\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\nparallels=Parallels\npaste=Paste\npasteData=Paste Data\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\nradial=Radial\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\nsendBackward=Send Backward\nsendMessage=Send\nsendYourFeedback=Send your feedback\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\nsharingAvailable=Sharing available for Google Drive and OneDrive files.\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\nsketch=Sketch\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\ntooLargeUseDownload=Too large, use download instead.\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\ndrawDiag=draw.io diagram\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\norgChartType=Org Chart Type\nlinear=Linear\nhanger2=Hanger 2\nhanger4=Hanger 4\nfishbone1=Fishbone 1\nfishbone2=Fishbone 2\n1ColumnLeft=Single Column Left\n1ColumnRight=Single Column Right\nsmart=Smart\nparentChildSpacing=Parent Child Spacing\nsiblingSpacing=Sibling Spacing\nconfNoPermErr=Sorry, you don\'t have enough permissions to view this embedded diagram from page {1}\ncopyAsImage=Copy as Image\nlucidImport=Lucidchart Import\nlucidImportInst1=Click the "Start Import" button to import all Lucidchart diagrams.\ninstallFirst=Please install {1} first\ndrawioChromeExt=draw.io Chrome Extension\nloginFirstThen=Please login to {1} first, then {2}\nerrFetchDocList=Error: Couldn\'t fetch documents list\nbuiltinPlugins=Built-in Plugins\nextPlugins=External Plugins\nbackupFound=Backup file found\nchromeOnly=This feature only works in Google Chrome\nmsgDeleted=This message has been deleted\nconfAErrFetchDrawList=Error fetching diagrams list. Some diagrams are skipped.\nconfAErrCheckDrawDiag=Cannot check diagram {1}\nconfAErrFetchPageList=Error fetching pages list\nconfADiagImportIncom={1} diagram "{2}" is imported partially and may have missing shapes\ninvalidSel=Invalid selection\ndiagNameEmptyErr=Diagram name cannot be empty\nopenDiagram=Open Diagram\nnewDiagram=New diagram\neditable=Editable\nconfAReimportStarted=Re-import {1} diagrams started...\nspaceFilter=Filter by spaces\ncurViewState=Current Viewer State\npageLayers=Page and Layers\ncustomize=Customize\nfirstPage=First Page (All Layers)\ncurEditorState=Current Editor State\nnoAnchorsFound=No anchors found \nattachment=Attachment\ncurDiagram=Current Diagram\nrecentDiags=Recent Diagrams\ncsvImport=CSV Import\nchooseFile=Choose a file...\nchoose=Choose\ngdriveFname=Google Drive filename\nwidthOfViewer=Width of the viewer (px)\nheightOfViewer=Height of the viewer (px)\nautoSetViewerSize=Automatically set the size of the viewer\nthumbnail=Thumbnail\nprevInDraw=Preview in draw.io\nonedriveFname=OneDrive filename\ndiagFname=Diagram filename\ndiagUrl=Diagram URL\nshowDiag=Show Diagram\ndiagPreview=Diagram Preview\ncsvFileUrl=CSV File URL\ngenerate=Generate\nselectDiag2Insert=Please select a diagram to insert it.\nerrShowingDiag=Unexpected error. Cannot show diagram\nnoRecentDiags=No recent diagrams found\nfetchingRecentFailed=Failed to fetch recent diagrams\nuseSrch2FindDiags=Use the search box to find draw.io diagrams\ncantReadChckPerms=Cannot read the specified diagram. Please check you have read permission on that file.\ncantFetchChckPerms=Cannot fetch diagram info. Please check you have read permission on that file.\nsearchFailed=Searching failed. Please try again later.\nplsTypeStr=Please type a search string.\nunsupportedFileChckUrl=Unsupported file. Please check the specified URL\ndiagNotFoundChckUrl=Diagram not found or cannot be accessed. Please check the specified URL\ncsvNotFoundChckUrl=CSV file not found or cannot be accessed. Please check the specified URL\ncantReadUpload=Cannot read the uploaded diagram\nselect=Select\nerrCantGetIdType=Unexpected Error: Cannot get content id or type.\nerrGAuthWinBlocked=Error: Google Authentication window blocked\nauthDrawAccess=Authorize draw.io to access {1}\nconnTimeout=The connection has timed out\nerrAuthSrvc=Error authenticating to {1}\nplsSelectFile=Please select a file\nmustBgtZ={1} must be greater than zero\ncantLoadPrev=Cannot load file preview.\nerrAccessFile=Error: Access Denied. You do not have permission to access "{1}".\nnoPrevAvail=No preview is available.\npersonalAccNotSup=Personal accounts are not supported.\nerrSavingTryLater=Error occured during saving, please try again later.\nplsEnterFld=Please enter {1}\ninvalidDiagUrl=Invalid Diagram URL\nunsupportedVsdx=Unsupported vsdx file\nunsupportedImg=Unsupported image file\nunsupportedFormat=Unsupported file format\nplsSelectSingleFile=Please select a single file only\nattCorrupt=Attachment file "{1}" is corrupted\nloadAttFailed=Failed to load attachment "{1}"\nembedDrawDiag=Embed draw.io Diagram\naddDiagram=Add Diagram\nembedDiagram=Embed Diagram\neditOwningPg=Edit owning page\ndeepIndexing=Deep Indexing (Index diagrams that aren\'t used in any page also)\nconfADeepIndexStarted=Deep Indexing Started\nconfADeepIndexDone=Deep Indexing Done\nofficeNoDiagramsSelected=No diagrams found in the selection\nofficeNoDiagramsInDoc=No diagrams found in the document\nofficeNotSupported=This feature is not supported in this host application\nsomeImagesFailed={1} out of {2} failed due to the following errors\nimportingNoUsedDiagrams=Importing {1} Diagrams not used in pages\nimportingDrafts=Importing {1} Diagrams in drafts\nprocessingDrafts=Processing drafts\nupdatingDrafts=Updating drafts\nupdateDrafts=Update drafts\nnotifications=Notifications\ndrawioImp=draw.io Import\nconfALibsImp=Importing draw.io Libraries\nconfALibsImpFailed=Importing {1} library failed\ncontributors=Contributors\ndrawDiagrams=draw.io Diagrams\nerrFileNotFoundOrNoPer=Error: Access Denied. File not found or you do not have permission to access "{1}" on {2}.\nconfACheckPagesWEmbed=Checking pages having embedded draw.io diagrams.\nconfADelBrokenEmbedDiagLnk=Removing broken embedded diagram links\nreplaceWith=Replace with\nreplaceAll=Replace All\nconfASkipDiagModified=Skipped "{1}" as it was modified after initial import\nreplFind=Replace/Find\nmatchesRepl={1} matches replaced\ndraftErrDataLoss=An error occurred while reading the draft file. The diagram cannot be edited now to prevent any possible data loss. Please try again later or contact support.\nibm=IBM\nlinkToDiagramHint=Add a link to this diagram. The diagram can only be edited from the page that owns it.\nlinkToDiagram=Link to Diagram\nchangedBy=Changed By\nlastModifiedOn=Last modified on\nsearchResults=Search Results\nshowAllTemps=Show all templates\nnotionToken=Notion Token\nselectDB=Select Database\nnoDBs=No Databases\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="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="edgeLabel" extend="text"><add as="labelBackgroundColor" value="#ffffff"/><add as="fontSize" value="11"/></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><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></mxStylesheet>').documentElement;
+null!=m.menus.findReplaceWindow&&m.menus.findReplaceWindow.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,d,k,f,m,p){this.file=a;this.id=b;this.content=d;this.modifiedDate=k;this.createdDate=f;this.isResolved=m;this.user=p;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(a){null!=a&&this.replies.push(a)};DrawioComment.prototype.addReply=function(a,b,d,k,f){b()};DrawioComment.prototype.editComment=function(a,b,d){b()};DrawioComment.prototype.deleteComment=function(a,b){a()};DrawioUser=function(a,b,d,k,f){this.id=a;this.email=b;this.displayName=d;this.pictureUrl=k;this.locale=f};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\nabout=About \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\nbringForward=Bring Forward\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\ncompare=Compare\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.\ncontainer=Container\ncsv=CSV\ndark=Dark\ndiagramXmlDesc=XML File\ndiagramHtmlDesc=HTML File\ndiagramPngDesc=Editable Bitmap Image\ndiagramSvgDesc=Editable Vector Image\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.\ndraftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.\nselectDraft=Select a draft to continue editing:\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\nconfiguration=Configuration\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.\ncopyData=Copy Data\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\ndoNotShowAgain=Do not show again\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Get 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\ninstallApp=Install App\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.\nlicenseRequired=This feature requires draw.io to be licensed.\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\nmerge=Merge\nmermaid=Mermaid\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\nnotion=Notion\nnotSatisfiedWithImport=Not satisfied with the import?\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\nparallels=Parallels\npaste=Paste\npasteData=Paste Data\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\nradial=Radial\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\nsendBackward=Send Backward\nsendMessage=Send\nsendYourFeedback=Send your feedback\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\nsharingAvailable=Sharing available for Google Drive and OneDrive files.\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\nsketch=Sketch\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\ntooLargeUseDownload=Too large, use download instead.\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\ndrawDiag=draw.io diagram\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\norgChartType=Org Chart Type\nlinear=Linear\nhanger2=Hanger 2\nhanger4=Hanger 4\nfishbone1=Fishbone 1\nfishbone2=Fishbone 2\n1ColumnLeft=Single Column Left\n1ColumnRight=Single Column Right\nsmart=Smart\nparentChildSpacing=Parent Child Spacing\nsiblingSpacing=Sibling Spacing\nconfNoPermErr=Sorry, you don\'t have enough permissions to view this embedded diagram from page {1}\ncopyAsImage=Copy as Image\nlucidImport=Lucidchart Import\nlucidImportInst1=Click the "Start Import" button to import all Lucidchart diagrams.\ninstallFirst=Please install {1} first\ndrawioChromeExt=draw.io Chrome Extension\nloginFirstThen=Please login to {1} first, then {2}\nerrFetchDocList=Error: Couldn\'t fetch documents list\nbuiltinPlugins=Built-in Plugins\nextPlugins=External Plugins\nbackupFound=Backup file found\nchromeOnly=This feature only works in Google Chrome\nmsgDeleted=This message has been deleted\nconfAErrFetchDrawList=Error fetching diagrams list. Some diagrams are skipped.\nconfAErrCheckDrawDiag=Cannot check diagram {1}\nconfAErrFetchPageList=Error fetching pages list\nconfADiagImportIncom={1} diagram "{2}" is imported partially and may have missing shapes\ninvalidSel=Invalid selection\ndiagNameEmptyErr=Diagram name cannot be empty\nopenDiagram=Open Diagram\nnewDiagram=New diagram\neditable=Editable\nconfAReimportStarted=Re-import {1} diagrams started...\nspaceFilter=Filter by spaces\ncurViewState=Current Viewer State\npageLayers=Page and Layers\ncustomize=Customize\nfirstPage=First Page (All Layers)\ncurEditorState=Current Editor State\nnoAnchorsFound=No anchors found \nattachment=Attachment\ncurDiagram=Current Diagram\nrecentDiags=Recent Diagrams\ncsvImport=CSV Import\nchooseFile=Choose a file...\nchoose=Choose\ngdriveFname=Google Drive filename\nwidthOfViewer=Width of the viewer (px)\nheightOfViewer=Height of the viewer (px)\nautoSetViewerSize=Automatically set the size of the viewer\nthumbnail=Thumbnail\nprevInDraw=Preview in draw.io\nonedriveFname=OneDrive filename\ndiagFname=Diagram filename\ndiagUrl=Diagram URL\nshowDiag=Show Diagram\ndiagPreview=Diagram Preview\ncsvFileUrl=CSV File URL\ngenerate=Generate\nselectDiag2Insert=Please select a diagram to insert it.\nerrShowingDiag=Unexpected error. Cannot show diagram\nnoRecentDiags=No recent diagrams found\nfetchingRecentFailed=Failed to fetch recent diagrams\nuseSrch2FindDiags=Use the search box to find draw.io diagrams\ncantReadChckPerms=Cannot read the specified diagram. Please check you have read permission on that file.\ncantFetchChckPerms=Cannot fetch diagram info. Please check you have read permission on that file.\nsearchFailed=Searching failed. Please try again later.\nplsTypeStr=Please type a search string.\nunsupportedFileChckUrl=Unsupported file. Please check the specified URL\ndiagNotFoundChckUrl=Diagram not found or cannot be accessed. Please check the specified URL\ncsvNotFoundChckUrl=CSV file not found or cannot be accessed. Please check the specified URL\ncantReadUpload=Cannot read the uploaded diagram\nselect=Select\nerrCantGetIdType=Unexpected Error: Cannot get content id or type.\nerrGAuthWinBlocked=Error: Google Authentication window blocked\nauthDrawAccess=Authorize draw.io to access {1}\nconnTimeout=The connection has timed out\nerrAuthSrvc=Error authenticating to {1}\nplsSelectFile=Please select a file\nmustBgtZ={1} must be greater than zero\ncantLoadPrev=Cannot load file preview.\nerrAccessFile=Error: Access Denied. You do not have permission to access "{1}".\nnoPrevAvail=No preview is available.\npersonalAccNotSup=Personal accounts are not supported.\nerrSavingTryLater=Error occurred during saving, please try again later.\nplsEnterFld=Please enter {1}\ninvalidDiagUrl=Invalid Diagram URL\nunsupportedVsdx=Unsupported vsdx file\nunsupportedImg=Unsupported image file\nunsupportedFormat=Unsupported file format\nplsSelectSingleFile=Please select a single file only\nattCorrupt=Attachment file "{1}" is corrupted\nloadAttFailed=Failed to load attachment "{1}"\nembedDrawDiag=Embed draw.io Diagram\naddDiagram=Add Diagram\nembedDiagram=Embed Diagram\neditOwningPg=Edit owning page\ndeepIndexing=Deep Indexing (Index diagrams that aren\'t used in any page also)\nconfADeepIndexStarted=Deep Indexing Started\nconfADeepIndexDone=Deep Indexing Done\nofficeNoDiagramsSelected=No diagrams found in the selection\nofficeNoDiagramsInDoc=No diagrams found in the document\nofficeNotSupported=This feature is not supported in this host application\nsomeImagesFailed={1} out of {2} failed due to the following errors\nimportingNoUsedDiagrams=Importing {1} Diagrams not used in pages\nimportingDrafts=Importing {1} Diagrams in drafts\nprocessingDrafts=Processing drafts\nupdatingDrafts=Updating drafts\nupdateDrafts=Update drafts\nnotifications=Notifications\ndrawioImp=draw.io Import\nconfALibsImp=Importing draw.io Libraries\nconfALibsImpFailed=Importing {1} library failed\ncontributors=Contributors\ndrawDiagrams=draw.io Diagrams\nerrFileNotFoundOrNoPer=Error: Access Denied. File not found or you do not have permission to access "{1}" on {2}.\nconfACheckPagesWEmbed=Checking pages having embedded draw.io diagrams.\nconfADelBrokenEmbedDiagLnk=Removing broken embedded diagram links\nreplaceWith=Replace with\nreplaceAll=Replace All\nconfASkipDiagModified=Skipped "{1}" as it was modified after initial import\nreplFind=Replace/Find\nmatchesRepl={1} matches replaced\ndraftErrDataLoss=An error occurred while reading the draft file. The diagram cannot be edited now to prevent any possible data loss. Please try again later or contact support.\nibm=IBM\nlinkToDiagramHint=Add a link to this diagram. The diagram can only be edited from the page that owns it.\nlinkToDiagram=Link to Diagram\nchangedBy=Changed By\nlastModifiedOn=Last modified on\nsearchResults=Search Results\nshowAllTemps=Show all templates\nnotionToken=Notion Token\nselectDB=Select Database\nnoDBs=No Databases\ndiagramEdited={1} diagram "{2}" edited\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="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="edgeLabel" extend="text"><add as="labelBackgroundColor" value="#ffffff"/><add as="fontSize" value="11"/></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><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></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="edgeLabel" extend="text"><add as="labelBackgroundColor" value="#2a2a2a"/><add as="fontSize" value="11"/></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,d){this.init(a,b,d)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://app.diagrams.net/";GraphViewer.prototype.imageBaseUrl="https://viewer.diagrams.net/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?28:30;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!1;GraphViewer.prototype.autoCrop=!1;
GraphViewer.prototype.autoOrigin=!0;GraphViewer.prototype.center=!1;GraphViewer.prototype.forceCenter=!1;GraphViewer.prototype.allowZoomIn=!1;GraphViewer.prototype.allowZoomOut=!0;GraphViewer.prototype.showTitleAsTooltip=!1;GraphViewer.prototype.checkVisibleState=!0;GraphViewer.prototype.minHeight=28;GraphViewer.prototype.minWidth=100;GraphViewer.prototype.responsive=!1;
GraphViewer.prototype.init=function(a,b,d){this.graphConfig=null!=d?d:{};this.autoFit=null!=this.graphConfig["auto-fit"]?this.graphConfig["auto-fit"]:this.autoFit;this.autoCrop=null!=this.graphConfig["auto-crop"]?this.graphConfig["auto-crop"]:this.autoCrop;this.autoOrigin=null!=this.graphConfig["auto-origin"]?this.graphConfig["auto-origin"]:this.autoOrigin;this.allowZoomOut=null!=this.graphConfig["allow-zoom-out"]?this.graphConfig["allow-zoom-out"]:this.allowZoomOut;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?
@@ -3991,8 +3993,8 @@ GraphViewer.initCss=function(){try{var a=document.createElement("style");a.type=
GraphViewer.cachedUrls={};GraphViewer.getUrl=function(a,b,d){if(null!=GraphViewer.cachedUrls[a])b(GraphViewer.cachedUrls[a]);else{var k=null!=navigator.userAgent&&0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;k.open("GET",a);k.onload=function(){b(null!=k.getText?k.getText():k.responseText)};k.onerror=d;k.send()}};GraphViewer.resizeSensorEnabled=!0;GraphViewer.useResizeSensor=!0;
(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},b=function(d,k){function f(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function m(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function p(b,c){if(!b.resizedAttached)b.resizedAttached=
new f,b.resizedAttached.add(c);else if(b.resizedAttached){b.resizedAttached.add(c);return}b.resizeSensor=document.createElement("div");b.resizeSensor.className="resize-sensor";b.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";b.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;"></div></div><div class="resize-sensor-shrink" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"></div></div>';
-b.appendChild(b.resizeSensor);"static"==m(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],g=b.resizeSensor.childNodes[1],k=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;g.scrollLeft=1E5;g.scrollTop=1E5};k();var l=!1,n=function(){b.resizedAttached&&(l&&(b.resizedAttached.call(),l=!1),a(n))};a(n);var p,q,K,F,I=function(){if((K=b.offsetWidth)!=p||(F=b.offsetHeight)!=q)l=!0,p=K,q=F;k()},D=function(a,b,c){a.attachEvent?
-a.attachEvent("on"+b,c):a.addEventListener(b,c)};D(d,"scroll",I);D(g,"scroll",I)}var c=function(){GraphViewer.resizeSensorEnabled&&k()},e=Object.prototype.toString.call(d),g="[object Array]"===e||"[object NodeList]"===e||"[object HTMLCollection]"===e||"undefined"!==typeof jQuery&&d instanceof jQuery||"undefined"!==typeof Elements&&d instanceof Elements;if(g)for(var e=0,n=d.length;e<n;e++)p(d[e],c);else p(d,c);this.detach=function(){if(g)for(var a=0,c=d.length;a<c;a++)b.detach(d[a]);else b.detach(d)}};
+b.appendChild(b.resizeSensor);"static"==m(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],g=b.resizeSensor.childNodes[1],k=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;g.scrollLeft=1E5;g.scrollTop=1E5};k();var l=!1,n=function(){b.resizedAttached&&(l&&(b.resizedAttached.call(),l=!1),a(n))};a(n);var p,q,K,F,I=function(){if((K=b.offsetWidth)!=p||(F=b.offsetHeight)!=q)l=!0,p=K,q=F;k()},C=function(a,b,c){a.attachEvent?
+a.attachEvent("on"+b,c):a.addEventListener(b,c)};C(d,"scroll",I);C(g,"scroll",I)}var c=function(){GraphViewer.resizeSensorEnabled&&k()},e=Object.prototype.toString.call(d),g="[object Array]"===e||"[object NodeList]"===e||"[object HTMLCollection]"===e||"undefined"!==typeof jQuery&&d instanceof jQuery||"undefined"!==typeof Elements&&d instanceof Elements;if(g)for(var e=0,n=d.length;e<n;e++)p(d[e],c);else p(d,c);this.detach=function(){if(g)for(var a=0,c=d.length;a<c;a++)b.detach(d[a]);else b.detach(d)}};
b.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=b})();
function mxBpmnShape(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxBpmnShape,mxShape);
mxBpmnShape.prototype.customProperties=[{name:"symbol",dispName:"Event",type:"enum",defVal:"general",enumList:[{val:"general",dispName:"General"},{val:"message",dispName:"Message"},{val:"timer",dispName:"Timer"},{val:"escalation",dispName:"Escalation"},{val:"conditional",dispName:"Conditional"},{val:"link",dispName:"Link"},{val:"error",dispName:"Error"},{val:"cancel",dispName:"Cancel"},{val:"compensation",dispName:"Compensation"},{val:"signal",dispName:"Signal"},{val:"multiple",dispName:"Multiple"},
diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js
index 245cc446..e570e8a8 100644
--- a/src/main/webapp/js/viewer.min.js
+++ b/src/main/webapp/js/viewer.min.js
@@ -200,7 +200,7 @@ null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local||"1"==urlParams.lockdown)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";
"se.diagrams.net"==window.location.hostname&&(urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0",urlParams.plugins="0",urlParams.mode="google",urlParams.lockdown="1",window.DRAWIO_GOOGLE_APP_ID=window.DRAWIO_GOOGLE_APP_ID||"184079235871",window.DRAWIO_GOOGLE_CLIENT_ID=window.DRAWIO_GOOGLE_CLIENT_ID||"184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");"trello"==urlParams.mode&&(urlParams.tr="1");
"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(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||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"15.0.2",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+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||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"15.0.3",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&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:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||
0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||0<=navigator.userAgent.indexOf("Opera/"),IS_WIN:0<navigator.appVersion.indexOf("Win"),IS_MAC:0<navigator.appVersion.indexOf("Mac"),
@@ -2121,8 +2121,8 @@ mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.pr
m="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" ");this.setDefaultStyle=function(a){try{var c=k.view.getState(a);if(null!=c){var e=a.clone();e.style="";var b=k.getCellStyle(e);a=[];var e=[],d;for(d in c.style)b[d]!=c.style[d]&&(a.push(c.style[d]),e.push(d));for(var g=k.getModel().getStyle(c.cell),f=null!=g?g.split(";"):[],g=0;g<f.length;g++){var n=
f[g],l=n.indexOf("=");if(0<=l){d=n.substring(0,l);var q=n.substring(l+1);null!=b[d]&&"none"==q&&(a.push(q),e.push(d))}}k.getModel().isEdge(c.cell)?k.currentEdgeStyle={}:k.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",e,"values",a,"cells",[c.cell]))}}catch(aa){this.handleError(aa)}};this.clearDefaultStyle=function(){k.currentEdgeStyle=mxUtils.clone(k.defaultEdgeStyle);k.currentVertexStyle=mxUtils.clone(k.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged",
"keys",[],"values",[],"cells",[]))};var p=["fontFamily","fontSource","fontSize","fontColor"];for(b=0;b<p.length;b++)0>mxUtils.indexOf(f,p[b])&&f.push(p[b]);var c="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),e=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["align","verticalAlign"],["opacity"],["html"]];for(b=
-0;b<e.length;b++)for(d=0;d<e[b].length;d++)f.push(e[b][d]);for(b=0;b<m.length;b++)0>mxUtils.indexOf(f,m[b])&&f.push(m[b]);var g=function(a,c,b,d,g,n,l){d=null!=d?d:k.currentVertexStyle;g=null!=g?g:k.currentEdgeStyle;b=null!=b?b:k.getModel();if(l){l=[];for(var v=0;v<a.length;v++)l=l.concat(b.getDescendants(a[v]));a=l}b.beginUpdate();try{for(v=0;v<a.length;v++){var q=a[v],B;if(c)B=["fontSize","fontFamily","fontColor"];else{var t=b.getStyle(q),u=null!=t?t.split(";"):[];B=f.slice();for(var C=0;C<u.length;C++){var J=
-u[C],p=J.indexOf("=");if(0<=p){var x=J.substring(0,p),N=mxUtils.indexOf(B,x);0<=N&&B.splice(N,1);for(l=0;l<e.length;l++){var z=e[l];if(0<=mxUtils.indexOf(z,x))for(var A=0;A<z.length;A++){var D=mxUtils.indexOf(B,z[A]);0<=D&&B.splice(D,1)}}}}}var E=b.isEdge(q);l=E?g:d;for(var H=b.getStyle(q),C=0;C<B.length;C++){var x=B[C],G=l[x];null!=G&&("shape"!=x||E)&&(!E||n||0>mxUtils.indexOf(m,x))&&(H=mxUtils.setStyle(H,x,G))}Editor.simpleLabels&&(H=mxUtils.setStyle(mxUtils.setStyle(H,"html",null),"whiteSpace",
+0;b<e.length;b++)for(d=0;d<e[b].length;d++)f.push(e[b][d]);for(b=0;b<m.length;b++)0>mxUtils.indexOf(f,m[b])&&f.push(m[b]);var g=function(a,c,b,d,g,n,l){d=null!=d?d:k.currentVertexStyle;g=null!=g?g:k.currentEdgeStyle;b=null!=b?b:k.getModel();if(l){l=[];for(var v=0;v<a.length;v++)l=l.concat(b.getDescendants(a[v]));a=l}b.beginUpdate();try{for(v=0;v<a.length;v++){var q=a[v],B;if(c)B=["fontSize","fontFamily","fontColor"];else{var t=b.getStyle(q),u=null!=t?t.split(";"):[];B=f.slice();for(var D=0;D<u.length;D++){var J=
+u[D],p=J.indexOf("=");if(0<=p){var x=J.substring(0,p),N=mxUtils.indexOf(B,x);0<=N&&B.splice(N,1);for(l=0;l<e.length;l++){var z=e[l];if(0<=mxUtils.indexOf(z,x))for(var A=0;A<z.length;A++){var C=mxUtils.indexOf(B,z[A]);0<=C&&B.splice(C,1)}}}}}var E=b.isEdge(q);l=E?g:d;for(var H=b.getStyle(q),D=0;D<B.length;D++){var x=B[D],G=l[x];null!=G&&("shape"!=x||E)&&(!E||n||0>mxUtils.indexOf(m,x))&&(H=mxUtils.setStyle(H,x,G))}Editor.simpleLabels&&(H=mxUtils.setStyle(mxUtils.setStyle(H,"html",null),"whiteSpace",
null));b.setStyle(q,H)}}finally{b.endUpdate()}};k.addListener("cellsInserted",function(a,c){g(c.getProperty("cells"))});k.addListener("textInserted",function(a,c){g(c.getProperty("cells"),!0)});this.insertHandler=g;this.createDivs();this.createUi();this.refresh();var n=mxUtils.bind(this,function(a){null==a&&(a=window.event);return k.isEditing()||null!=a&&this.isSelectionAllowed(a)});this.container==document.body&&(this.menubarContainer.onselectstart=n,this.menubarContainer.onmousedown=n,this.toolbarContainer.onselectstart=
n,this.toolbarContainer.onmousedown=n,this.diagramContainer.onselectstart=n,this.diagramContainer.onmousedown=n,this.sidebarContainer.onselectstart=n,this.sidebarContainer.onmousedown=n,this.formatContainer.onselectstart=n,this.formatContainer.onmousedown=n,this.footerContainer.onselectstart=n,this.footerContainer.onmousedown=n,null!=this.tabContainer&&(this.tabContainer.onselectstart=n));!this.editor.chromeless||this.editor.editable?(b=function(a){if(null!=a){var c=mxEvent.getSource(a);if("A"==c.nodeName)for(;null!=
c;){if("geHint"==c.className)return!0;c=c.parentNode}}return n(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):k.panningHandler.usePopupTrigger=!1;k.init(this.diagramContainer);mxClient.IS_SVG&&null!=k.view.getDrawPane()&&(b=k.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=k.graphHandler){var l=
@@ -2131,7 +2131,7 @@ k.graphHandler.start;k.graphHandler.start=function(){null!=F.hoverIcons&&F.hover
"";q=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var t=k.panningHandler.isForcePanningEvent;k.panningHandler.isForcePanningEvent=function(a){return t.apply(this,arguments)||q||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var A=k.cellEditor.isStopEditingEvent;k.cellEditor.isStopEditingEvent=function(a){return A.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 x=k.isZoomWheelEvent;k.isZoomWheelEvent=function(){return q||x.apply(this,arguments)};var G=!1,z=null,E=null,H=null,K=mxUtils.bind(this,function(){if(null!=this.toolbar&&G!=k.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var e=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),
c.push(a));a=e}a=this.toolbar.fontMenu;e=this.toolbar.sizeMenu;if(null==H)this.toolbar.createTextToolbar();else{for(var b=0;b<H.length;b++)this.toolbar.container.appendChild(H[b]);this.toolbar.fontMenu=z;this.toolbar.sizeMenu=E}G=k.cellEditor.isContentEditing();z=a;E=e;H=c}}),F=this,I=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){I.apply(this,arguments);K();if(k.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){var c=k.getSelectedEditingElement();
-null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=F.toolbar&&(F.toolbar.setFontName(Graph.stripQuotes(c.fontFamily)),F.toolbar.setFontSize(parseInt(c.fontSize))));a=!1},0))};mxEvent.addListener(k.cellEditor.textarea,"input",c);mxEvent.addListener(k.cellEditor.textarea,"touchend",c);mxEvent.addListener(k.cellEditor.textarea,"mouseup",c);mxEvent.addListener(k.cellEditor.textarea,"keyup",c);c()}};var D=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(a,c){try{D.apply(this,arguments),K()}catch(N){F.handleError(N)}};
+null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=F.toolbar&&(F.toolbar.setFontName(Graph.stripQuotes(c.fontFamily)),F.toolbar.setFontSize(parseInt(c.fontSize))));a=!1},0))};mxEvent.addListener(k.cellEditor.textarea,"input",c);mxEvent.addListener(k.cellEditor.textarea,"touchend",c);mxEvent.addListener(k.cellEditor.textarea,"mouseup",c);mxEvent.addListener(k.cellEditor.textarea,"keyup",c);c()}};var C=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(a,c){try{C.apply(this,arguments),K()}catch(N){F.handleError(N)}};
k.container.setAttribute("tabindex","0");k.container.style.cursor="default";if(window.self===window.top&&null!=k.container.parentNode)try{k.container.focus()}catch(U){}var M=k.fireMouseEvent;k.fireMouseEvent=function(a,c,e){a==mxEvent.MOUSE_DOWN&&this.container.focus();M.apply(this,arguments)};k.popupMenuHandler.autoExpand=!0;null!=this.menus&&(k.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,c,e){this.menus.createPopupMenu(a,c,e)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,
function(a){k.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};k.connectionHandler.addListener(mxEvent.CONNECT,function(a,c){var e=[c.getProperty("cell")];c.getProperty("terminalInserted")&&(e.push(c.getProperty("terminal")),window.setTimeout(function(){null!=F.hoverIcons&&F.hoverIcons.update(k.view.getState(e[e.length-1]))},0));g(e)});this.addListener("styleChanged",mxUtils.bind(this,function(a,e){var b=e.getProperty("cells"),
d=!1,g=!1;if(0<b.length)for(var n=0;n<b.length&&(d=k.getModel().isVertex(b[n])||d,!(g=k.getModel().isEdge(b[n])||g)||!d);n++);else g=d=!0;for(var b=e.getProperty("keys"),l=e.getProperty("values"),n=0;n<b.length;n++){var q=0<=mxUtils.indexOf(p,b[n]);if("strokeColor"!=b[n]||null!=l[n]&&"none"!=l[n])if(0<=mxUtils.indexOf(m,b[n]))g||0<=mxUtils.indexOf(c,b[n])?null==l[n]?delete k.currentEdgeStyle[b[n]]:k.currentEdgeStyle[b[n]]=l[n]:d&&0<=mxUtils.indexOf(f,b[n])&&(null==l[n]?delete k.currentVertexStyle[b[n]]:
@@ -2195,16 +2195,16 @@ mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});m
startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(c,e){this.startX=e.getGraphX();this.startY=e.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,c){},mouseUp:function(c,e){mxEvent.isTouchEvent(e.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<E&&Math.abs(this.scrollTop-a.container.scrollTop)<E&&Math.abs(this.startX-e.getGraphX())<E&&Math.abs(this.startY-e.getGraphY())<E&&(0<parseFloat(d.chromelessToolbar.style.opacity||0)?
t():A(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var H=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}H.apply(this,arguments)};if(!a.isViewer()){var K=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var c=
this.getPageLayout(),e=this.getPagePadding(),b=this.getPageSize(),d=Math.ceil(2*e.x+c.width*b.width),g=Math.ceil(2*e.y+c.height*b.height),f=a.minimumGraphSize;if(null==f||f.width!=d||f.height!=g)a.minimumGraphSize=new mxRectangle(0,0,d,g);d=e.x-c.x*b.width;e=e.y-c.y*b.height;this.autoTranslate||this.view.translate.x==d&&this.view.translate.y==e?K.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=c.y,c=a.view.translate.x,b=a.view.translate.y,a.view.setTranslate(d,e),a.container.scrollLeft+=
-Math.round((d-c)*a.view.scale),a.container.scrollTop+=Math.round((e-b)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var F=a.view.getBackgroundPane(),I=a.view.getDrawPane();a.cumulativeZoomFactor=1;var D=null,M=null,U=null,P=null,N=null,v=function(c){null!=D&&window.clearTimeout(D);window.setTimeout(function(){if(!a.isMouseDown||P)D=window.setTimeout(mxUtils.bind(this,function(){a.isFastZoomEnabled()&&(null!=a.view.backgroundPageShape&&
+Math.round((d-c)*a.view.scale),a.container.scrollTop+=Math.round((e-b)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var F=a.view.getBackgroundPane(),I=a.view.getDrawPane();a.cumulativeZoomFactor=1;var C=null,M=null,U=null,O=null,N=null,v=function(c){null!=C&&window.clearTimeout(C);window.setTimeout(function(){if(!a.isMouseDown||O)C=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)),I.style.transformOrigin="",F.style.transformOrigin="",mxClient.IS_SF?(I.style.transform="scale(1)",F.style.transform="scale(1)",window.setTimeout(function(){I.style.transform="";F.style.transform=""},0)):(I.style.transform="",F.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),g=a.view.scale,f=0,n=0;null!=M&&(f=a.container.offsetWidth/2-M.x+e.x,n=a.container.offsetHeight/2-M.y+e.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=g&&(null!=U&&(f+=c.x-U.x,n+=c.y-U.y),null!=b&&d.chromelessResize(!1,null,f*(a.cumulativeZoomFactor-1),n*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==f&&0==n||(a.container.scrollLeft-=f*(a.cumulativeZoomFactor-
-1),a.container.scrollTop-=n*(a.cumulativeZoomFactor-1)));null!=N&&I.setAttribute("filter",N);a.cumulativeZoomFactor=1;N=P=M=U=D=null}),null!=c?c:a.isFastZoomEnabled()?d.wheelZoomDelay:d.lazyZoomDelay)},0)},C=Date.now();a.lazyZoom=function(c,e,b){(e=e||!a.scrollbars)&&(M=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(mxClient.IS_IOS||!(15>Date.now()-C)){C=Date.now();c?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=
+1),a.container.scrollTop-=n*(a.cumulativeZoomFactor-1)));null!=N&&I.setAttribute("filter",N);a.cumulativeZoomFactor=1;N=O=M=U=C=null}),null!=c?c:a.isFastZoomEnabled()?d.wheelZoomDelay:d.lazyZoomDelay)},0)},D=Date.now();a.lazyZoom=function(c,e,b){(e=e||!a.scrollbars)&&(M=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(mxClient.IS_IOS||!(15>Date.now()-D)){D=Date.now();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()){null==N&&""!=I.getAttribute("filter")&&(N=I.getAttribute("filter"),I.removeAttribute("filter"));U=new mxPoint(a.container.scrollLeft,a.container.scrollTop);c=e?a.container.scrollLeft+a.container.clientWidth/2:M.x+a.container.scrollLeft-a.container.offsetLeft;var g=e?a.container.scrollTop+a.container.clientHeight/2:M.y+a.container.scrollTop-a.container.offsetTop;I.style.transformOrigin=c+"px "+g+"px";I.style.transform="scale("+
this.cumulativeZoomFactor+")";F.style.transformOrigin=c+"px "+g+"px";F.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",(e?a.container.clientWidth/2+a.container.scrollLeft-c.offsetLeft+"px":M.x+a.container.scrollLeft-c.offsetLeft-a.container.offsetLeft+"px")+" "+(e?a.container.clientHeight/2+a.container.scrollTop-c.offsetTop+"px":M.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!=d.hoverIcons&&d.hoverIcons.reset()}v(b)}};mxEvent.addGestureListeners(a.container,function(a){null!=D&&window.clearTimeout(D)},null,function(c){1!=a.cumulativeZoomFactor&&v(0)});mxEvent.addListener(a.container,"scroll",function(c){null==D||a.isMouseDown||1==a.cumulativeZoomFactor||
+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!=d.hoverIcons&&d.hoverIcons.reset()}v(b)}};mxEvent.addGestureListeners(a.container,function(a){null!=C&&window.clearTimeout(C)},null,function(c){1!=a.cumulativeZoomFactor&&v(0)});mxEvent.addListener(a.container,"scroll",function(c){null==C||a.isMouseDown||1==a.cumulativeZoomFactor||
v(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(c,e,b,d,g){if(null==this.dialogs||0==this.dialogs.length)if(!a.scrollbars&&!b&&a.isScrollWheelEvent(c))b=a.view.getTranslate(),d=40/a.view.scale,mxEvent.isShiftDown(c)?a.view.setTranslate(b.x+(e?-d:d),b.y):a.view.setTranslate(b.x,b.y+(e?d:-d));else if(b||a.isZoomWheelEvent(c))for(var f=mxEvent.getSource(c);null!=f;){if(f==a.container)return a.tooltipHandler.hideTooltip(),M=null!=d&&null!=g?new mxPoint(d,g):new mxPoint(mxEvent.getClientX(c),
-mxEvent.getClientY(c)),P=b,a.lazyZoom(e),mxEvent.consume(c),!1;f=f.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.isPagesEnabled=function(){return this.editor.editable||"1"!=urlParams["hide-pages"]};
+mxEvent.getClientY(c)),O=b,a.lazyZoom(e),mxEvent.consume(c),!1;f=f.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.isPagesEnabled=function(){return this.editor.editable||"1"!=urlParams["hide-pages"]};
EditorUi.prototype.createTemporaryGraph=function(a){var b=new Graph(document.createElement("div"));b.stylesheet.styles=mxUtils.clone(a.styles);b.resetViewOnRootChange=!1;b.setConnectable(!1);b.gridEnabled=!1;b.autoScroll=!1;b.setTooltips(!1);b.setEnabled(!1);b.container.style.visibility="hidden";b.container.style.position="absolute";b.container.style.overflow="hidden";b.container.style.height="1px";b.container.style.width="1px";return b};
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){a=null!=a?a:0==this.formatWidth;null!=this.format&&(this.formatWidth=a?240:0,this.formatContainer.style.display=a?"":"none",this.refresh(),this.format.refresh(),this.fireEvent(new mxEventObject("formatWidthChanged")))};
EditorUi.prototype.lightboxFit=function(a){if(this.isDiagramEmpty())this.editor.graph.view.setScale(1);else{var b=urlParams.border,d=60;null!=b&&(d=parseInt(b));this.editor.graph.maxFitScale=this.lightboxMaxFitScale;this.editor.graph.fit(d,null,null,null,null,null,a);this.editor.graph.maxFitScale=null}};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))};
@@ -2319,11 +2319,11 @@ this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineCon
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 K=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(K=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=K)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var F=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 F.apply(this,arguments);var e=c?a.sourceState.cell:a.getCell();null!=e&&(e=this.getClickableLinkForCell(e),null!=e&&(this.isCustomLink(e)?
this.customLinkClicked(e):this.openLink(e)));this.isEnabled()&&c&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};var I=this.tooltipHandler.show;this.tooltipHandler.show=function(){I.apply(this,arguments);if(null!=this.div)for(var a=this.div.getElementsByTagName("a"),c=0;c<a.length;c++)null!=a[c].getAttribute("href")&&null==a[c].getAttribute("target")&&a[c].setAttribute("target","_blank")};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.getClickableLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return D.apply(this,arguments)};this.selectRegion=function(a,c){var e=this.getCells(a.x,a.y,a.width,a.height,null,
+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 C=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||this.isCellLocked(a)){if(null!=this.getClickableLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return C.apply(this,arguments)};this.selectRegion=function(a,c){var e=this.getCells(a.x,a.y,a.width,a.height,null,
null,null,function(a){return"1"==mxUtils.getValue(a.style,"locked","0")},!0);this.selectCellsForEvent(e,c);return e};var M=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,c,e){return this.graph.isCellSelected(a)?!1:M.apply(this,arguments)};this.isCellLocked=function(a){for(;null!=a;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(a),"locked","0"))return!0;a=this.model.getParent(a)}return!1};var U=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,
mxUtils.bind(this,function(a,c){if("mouseDown"==c.getProperty("eventName")){var e=c.getProperty("event").getState();U=null==e||this.isSelectionEmpty()||this.isCellSelected(e.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,c){if(!mxEvent.isMultiTouchEvent(c)){var e=c.getProperty("event"),b=c.getProperty("cell");null==b?(e=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),t.start(e.x,e.y)):null!=U?this.addSelectionCells(U):
1<this.getSelectionCount()&&this.isCellSelected(b)&&this.removeSelectionCell(b);U=null;c.consume()}}));this.connectionHandler.selectCells=function(a,c){this.graph.setSelectionCell(c||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,c){var e=a.view.graph;return c&&(e.isCellSelected(a.cell)||e.isTableRow(a.cell)&&e.selectionCellsHandler.isHandled(e.model.getParent(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 P=this.updateMouseEvent;this.updateMouseEvent=function(a){a=P.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=null);return a}}this.currentTranslate=new mxPoint(0,0)};
+null!=a.currentFocus&&a.isStateIgnored(a.currentFocus,!0)&&(a.currentFocus=null,a.constraints=null,a.destroyIcons());a.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var O=this.updateMouseEvent;this.updateMouseEvent=function(a){a=O.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.translateDiagram="1"==urlParams["translate-diagram"];Graph.diagramLanguage=null!=urlParams["diagram-language"]?urlParams["diagram-language"]:mxClient.language;Graph.lineJumpsEnabled=!0;
Graph.defaultJumpSize=6;Graph.minTableColumnWidth=20;Graph.minTableRowHeight=20;Graph.foreignObjectWarningText="Viewer does not support full SVG 1.1";Graph.foreignObjectWarningLink="https://www.diagrams.net/doc/faq/svg-export-text-problems";Graph.pasteStyles="rounded shadow dashed dashPattern fontFamily fontSource 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 comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle".split(" ");
Graph.createSvgImage=function(a,b,d,k,f){d=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!=k&&null!=f?'viewBox="0 0 '+k+" "+f+'" ':"")+'version="1.1">'+d+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(d):Base64.encode(d,!0)),a,b)};
@@ -2467,12 +2467,12 @@ Graph.minTableColumnWidth,p.setGeometry(a,d))}}finally{p.endUpdate()}}};
arguments);null!=e&&c&&this.graph.model.isEdge(e.cell)&&null!=e.style&&1!=e.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(e);return e};var d=mxShape.prototype.paint;mxShape.prototype.paint=function(){d.apply(this,arguments);if(null!=this.state&&null!=this.node&&this.state.view.graph.enableFlowAnimation&&this.state.view.graph.model.isEdge(this.state.cell)&&"1"==mxUtils.getValue(this.state.style,"flowAnimation","0")){var a=this.node.getElementsByTagName("path");if(1<a.length){"1"!=mxUtils.getValue(this.state.style,
mxConstants.STYLE_DASHED,"0")&&a[1].setAttribute("stroke-dasharray",8*this.state.view.scale);var c=this.state.view.graph.getFlowAnimationStyle();null!=c&&a[1].setAttribute("class",c.getAttribute("id"))}}};var k=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return k.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.routedPoints,a.routedPoints)};var f=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
function(a){f.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var c=a.absolutePoints;if(Graph.lineJumpsEnabled){var e=null!=a.routedPoints,b=null;if(null!=c&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var d=function(c,e,d){var g=new mxPoint(e,d);g.type=c;b.push(g);g=null!=a.routedPoints?a.routedPoints[b.length-1]:null;return null==g||g.type!=
-c||g.x!=e||g.y!=d},g=.5*this.scale,e=!1,b=[],f=0;f<c.length-1;f++){for(var k=c[f+1],n=c[f],m=[],p=c[f+2];f<c.length-2&&mxUtils.ptSegDistSq(n.x,n.y,p.x,p.y,k.x,k.y)<1*this.scale*this.scale;)k=p,f++,p=c[f+2];for(var e=d(0,n.x,n.y)||e,K=0;K<this.validEdges.length;K++){var F=this.validEdges[K],I=F.absolutePoints;if(null!=I&&mxUtils.intersects(a,F)&&"1"!=F.style.noJump)for(F=0;F<I.length-1;F++){for(var D=I[F+1],M=I[F],p=I[F+2];F<I.length-2&&mxUtils.ptSegDistSq(M.x,M.y,p.x,p.y,D.x,D.y)<1*this.scale*this.scale;)D=
-p,F++,p=I[F+2];p=mxUtils.intersection(n.x,n.y,k.x,k.y,M.x,M.y,D.x,D.y);if(null!=p&&(Math.abs(p.x-n.x)>g||Math.abs(p.y-n.y)>g)&&(Math.abs(p.x-k.x)>g||Math.abs(p.y-k.y)>g)&&(Math.abs(p.x-M.x)>g||Math.abs(p.y-M.y)>g)&&(Math.abs(p.x-D.x)>g||Math.abs(p.y-D.y)>g)){D=p.x-n.x;M=p.y-n.y;p={distSq:D*D+M*M,x:p.x,y:p.y};for(D=0;D<m.length;D++)if(m[D].distSq>p.distSq){m.splice(D,0,p);p=null;break}null==p||0!=m.length&&m[m.length-1].x===p.x&&m[m.length-1].y===p.y||m.push(p)}}}for(F=0;F<m.length;F++)e=d(1,m[F].x,
+c||g.x!=e||g.y!=d},g=.5*this.scale,e=!1,b=[],f=0;f<c.length-1;f++){for(var k=c[f+1],n=c[f],m=[],p=c[f+2];f<c.length-2&&mxUtils.ptSegDistSq(n.x,n.y,p.x,p.y,k.x,k.y)<1*this.scale*this.scale;)k=p,f++,p=c[f+2];for(var e=d(0,n.x,n.y)||e,K=0;K<this.validEdges.length;K++){var F=this.validEdges[K],I=F.absolutePoints;if(null!=I&&mxUtils.intersects(a,F)&&"1"!=F.style.noJump)for(F=0;F<I.length-1;F++){for(var C=I[F+1],M=I[F],p=I[F+2];F<I.length-2&&mxUtils.ptSegDistSq(M.x,M.y,p.x,p.y,C.x,C.y)<1*this.scale*this.scale;)C=
+p,F++,p=I[F+2];p=mxUtils.intersection(n.x,n.y,k.x,k.y,M.x,M.y,C.x,C.y);if(null!=p&&(Math.abs(p.x-n.x)>g||Math.abs(p.y-n.y)>g)&&(Math.abs(p.x-k.x)>g||Math.abs(p.y-k.y)>g)&&(Math.abs(p.x-M.x)>g||Math.abs(p.y-M.y)>g)&&(Math.abs(p.x-C.x)>g||Math.abs(p.y-C.y)>g)){C=p.x-n.x;M=p.y-n.y;p={distSq:C*C+M*M,x:p.x,y:p.y};for(C=0;C<m.length;C++)if(m[C].distSq>p.distSq){m.splice(C,0,p);p=null;break}null==p||0!=m.length&&m[m.length-1].x===p.x&&m[m.length-1].y===p.y||m.push(p)}}}for(F=0;F<m.length;F++)e=d(1,m[F].x,
m[F].y)||e}p=c[c.length-1];e=d(0,p.x,p.y)||e}a.routedPoints=b;return e}return!1};var m=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,c,e){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)m.apply(this,arguments);else{var b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,d=(parseInt(mxUtils.getValue(this.style,
-"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,g=mxUtils.getValue(this.style,"jumpStyle","none"),f=!0,k=null,n=null,l=[],q=null;a.begin();for(var p=0;p<this.state.routedPoints.length;p++){var F=this.state.routedPoints[p],I=new mxPoint(F.x/this.scale,F.y/this.scale);0==p?I=c[0]:p==this.state.routedPoints.length-1&&(I=c[c.length-1]);var D=!1;if(null!=k&&1==F.type){var M=this.state.routedPoints[p+1],F=M.x/this.scale-I.x,M=M.y/this.scale-I.y,F=F*F+M*M;null==q&&(q=new mxPoint(I.x-k.x,I.y-k.y),
-n=Math.sqrt(q.x*q.x+q.y*q.y),0<n?(q.x=q.x*d/n,q.y=q.y*d/n):q=null);F>d*d&&0<n&&(F=k.x-I.x,M=k.y-I.y,F=F*F+M*M,F>d*d&&(D=new mxPoint(I.x-q.x,I.y-q.y),F=new mxPoint(I.x+q.x,I.y+q.y),l.push(D),this.addPoints(a,l,e,b,!1,null,f),l=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,f=!1,"sharp"==g?(a.lineTo(D.x-q.y*l,D.y+q.x*l),a.lineTo(F.x-q.y*l,F.y+q.x*l),a.lineTo(F.x,F.y)):"line"==g?(a.moveTo(D.x+q.y*l,D.y-q.x*l),a.lineTo(D.x-q.y*l,D.y+q.x*l),a.moveTo(F.x-q.y*l,F.y+q.x*l),a.lineTo(F.x+q.y*
-l,F.y-q.x*l),a.moveTo(F.x,F.y)):"arc"==g?(l*=1.3,a.curveTo(D.x-q.y*l,D.y+q.x*l,F.x-q.y*l,F.y+q.x*l,F.x,F.y)):(a.moveTo(F.x,F.y),f=!0),l=[F],D=!0))}else q=null;D||(l.push(I),k=I)}this.addPoints(a,l,e,b,!1,null,f);a.stroke()}};var p=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,c,e,b){return null!=c&&"centerPerimeter"==c.style[mxConstants.STYLE_PERIMETER]?new mxPoint(c.getCenterX(),c.getCenterY()):p.apply(this,arguments)};var c=mxGraphView.prototype.updateFloatingTerminalPoint;
+"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,g=mxUtils.getValue(this.style,"jumpStyle","none"),f=!0,k=null,n=null,l=[],q=null;a.begin();for(var p=0;p<this.state.routedPoints.length;p++){var F=this.state.routedPoints[p],I=new mxPoint(F.x/this.scale,F.y/this.scale);0==p?I=c[0]:p==this.state.routedPoints.length-1&&(I=c[c.length-1]);var C=!1;if(null!=k&&1==F.type){var M=this.state.routedPoints[p+1],F=M.x/this.scale-I.x,M=M.y/this.scale-I.y,F=F*F+M*M;null==q&&(q=new mxPoint(I.x-k.x,I.y-k.y),
+n=Math.sqrt(q.x*q.x+q.y*q.y),0<n?(q.x=q.x*d/n,q.y=q.y*d/n):q=null);F>d*d&&0<n&&(F=k.x-I.x,M=k.y-I.y,F=F*F+M*M,F>d*d&&(C=new mxPoint(I.x-q.x,I.y-q.y),F=new mxPoint(I.x+q.x,I.y+q.y),l.push(C),this.addPoints(a,l,e,b,!1,null,f),l=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,f=!1,"sharp"==g?(a.lineTo(C.x-q.y*l,C.y+q.x*l),a.lineTo(F.x-q.y*l,F.y+q.x*l),a.lineTo(F.x,F.y)):"line"==g?(a.moveTo(C.x+q.y*l,C.y-q.x*l),a.lineTo(C.x-q.y*l,C.y+q.x*l),a.moveTo(F.x-q.y*l,F.y+q.x*l),a.lineTo(F.x+q.y*
+l,F.y-q.x*l),a.moveTo(F.x,F.y)):"arc"==g?(l*=1.3,a.curveTo(C.x-q.y*l,C.y+q.x*l,F.x-q.y*l,F.y+q.x*l,F.x,F.y)):(a.moveTo(F.x,F.y),f=!0),l=[F],C=!0))}else q=null;C||(l.push(I),k=I)}this.addPoints(a,l,e,b,!1,null,f);a.stroke()}};var p=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,c,e,b){return null!=c&&"centerPerimeter"==c.style[mxConstants.STYLE_PERIMETER]?new mxPoint(c.getCenterX(),c.getCenterY()):p.apply(this,arguments)};var c=mxGraphView.prototype.updateFloatingTerminalPoint;
mxGraphView.prototype.updateFloatingTerminalPoint=function(a,e,b,d){if(null==e||null==a||"1"!=e.style.snapToPoint&&"1"!=a.style.snapToPoint)c.apply(this,arguments);else{e=this.getTerminalPort(a,e,d);var g=this.getNextPoint(a,b,d),f=this.graph.isOrthogonal(a),k=mxUtils.toRadians(Number(e.style[mxConstants.STYLE_ROTATION]||"0")),n=new mxPoint(e.getCenterX(),e.getCenterY());if(0!=k)var l=Math.cos(-k),q=Math.sin(-k),g=mxUtils.getRotatedPoint(g,l,q,n);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(e,g,0==k&&f,l);0!=k&&(l=Math.cos(k),q=Math.sin(k),g=mxUtils.getRotatedPoint(g,l,q,n));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,e,b,d,g),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,e,b,d){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);b=e=null;if(null!=a)for(var g=0;g<a.length;g++){var f=this.graph.getConnectionPoint(c,
a[g]);if(null!=f){var k=(f.x-d.x)*(f.x-d.x)+(f.y-d.y)*(f.y-d.y);if(null==b||k<b)e=f,b=k}}null!=e&&(d=e)}return d};var e=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,c,b){var d=e.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=b.state&&(d=b.state.view.graph.replacePlaceholders(b.state.cell,d));return d};var g=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var c=
@@ -2503,17 +2503,17 @@ Graph.prototype.isExtendParent=function(a){var e=this.model.getParent(a);if(null
mxConstants.NONE,[a]);var Y=this.model.getTerminal(b,!1);if(null!=Y){var t=this.getCurrentCellStyle(Y);null!=t&&"1"==t.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[a]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[a]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[b]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[b]))}}finally{this.model.endUpdate()}return b};var g=Graph.prototype.selectCell;Graph.prototype.selectCell=function(a,c,e){if(c||e)g.apply(this,arguments);
else{var b=this.getSelectionCell(),d=null,f=[],k=mxUtils.bind(this,function(c){if(null!=this.view.getState(c)&&(this.model.isVertex(c)||this.model.isEdge(c)))if(f.push(c),c==b)d=f.length-1;else if(a&&null==b&&0<f.length||null!=d&&a&&f.length>d||!a&&0<d)return;for(var e=0;e<this.model.getChildCount(c);e++)k(this.model.getChildAt(c,e))});k(this.model.root);0<f.length&&(d=null!=d?mxUtils.mod(d+(a?1:-1),f.length):0,this.setSelectionCell(f[d]))}};var n=Graph.prototype.moveCells;Graph.prototype.moveCells=
function(a,c,e,b,d,g,f){f=null!=f?f:{};if(this.isTable(d)){for(var k=[],l=0;l<a.length;l++)this.isTable(a[l])?k=k.concat(this.model.getChildCells(a[l],!0).reverse()):k.push(a[l]);a=k}this.model.beginUpdate();try{k=[];for(l=0;l<a.length;l++)if(null!=d&&this.isTableRow(a[l])){var v=this.model.getParent(a[l]),q=this.getCellGeometry(a[l]);this.isTable(v)&&k.push(v);if(null!=v&&null!=q&&this.isTable(v)&&this.isTable(d)&&(b||v!=d)){if(!b){var Y=this.getCellGeometry(v);null!=Y&&(Y=Y.clone(),Y.height-=q.height,
-this.model.setGeometry(v,Y))}Y=this.getCellGeometry(d);null!=Y&&(Y=Y.clone(),Y.height+=q.height,this.model.setGeometry(d,Y));var t=this.model.getChildCells(d,!0);if(0<t.length){a[l]=b?this.cloneCell(a[l]):a[l];var u=this.model.getChildCells(a[l],!0),m=this.model.getChildCells(t[0],!0),C=m.length-u.length;if(0<C)for(var B=0;B<C;B++){var x=this.cloneCell(u[u.length-1]);null!=x&&(x.value="",this.model.add(a[l],x))}else if(0>C)for(B=0;B>C;B--)this.model.remove(u[u.length+B-1]);u=this.model.getChildCells(a[l],
+this.model.setGeometry(v,Y))}Y=this.getCellGeometry(d);null!=Y&&(Y=Y.clone(),Y.height+=q.height,this.model.setGeometry(d,Y));var t=this.model.getChildCells(d,!0);if(0<t.length){a[l]=b?this.cloneCell(a[l]):a[l];var u=this.model.getChildCells(a[l],!0),m=this.model.getChildCells(t[0],!0),D=m.length-u.length;if(0<D)for(var B=0;B<D;B++){var x=this.cloneCell(u[u.length-1]);null!=x&&(x.value="",this.model.add(a[l],x))}else if(0>D)for(B=0;B>D;B--)this.model.remove(u[u.length+B-1]);u=this.model.getChildCells(a[l],
!0);for(B=0;B<m.length;B++){var qa=this.getCellGeometry(m[B]),p=this.getCellGeometry(u[B]);null!=qa&&null!=p&&(p=p.clone(),p.width=qa.width,this.model.setGeometry(u[B],p))}}}}for(var va=n.apply(this,arguments),l=0;l<k.length;l++)!b&&this.model.contains(k[l])&&0==this.model.getChildCount(k[l])&&this.model.remove(k[l]);b&&this.updateCustomLinks(this.createCellMapping(f,this.createCellLookup(a)),va)}finally{this.model.endUpdate()}return va};var l=Graph.prototype.removeCells;Graph.prototype.removeCells=
function(a,c){var e=[];this.model.beginUpdate();try{for(var b=0;b<a.length;b++)if(this.isTableCell(a[b])){var d=this.model.getParent(a[b]),g=this.model.getParent(d);1==this.model.getChildCount(d)&&1==this.model.getChildCount(g)?0>mxUtils.indexOf(a,g)&&0>mxUtils.indexOf(e,g)&&e.push(g):this.labelChanged(a[b],"")}else{if(this.isTableRow(a[b])&&(g=this.model.getParent(a[b]),0>mxUtils.indexOf(a,g)&&0>mxUtils.indexOf(e,g))){for(var f=this.model.getChildCells(g,!0),k=0,n=0;n<f.length;n++)0<=mxUtils.indexOf(a,
f[n])&&k++;k==f.length&&e.push(g)}e.push(a[b])}e=l.apply(this,[e,c])}finally{this.model.endUpdate()}return e};Graph.prototype.updateCustomLinks=function(a,c,e){e=null!=e?e:new Graph;for(var b=0;b<c.length;b++)null!=c[b]&&e.updateCustomLinksForCell(a,c[b],e)};Graph.prototype.updateCustomLinksForCell=function(a,c){this.doUpdateCustomLinksForCell(a,c);for(var e=this.model.getChildCount(c),b=0;b<e;b++)this.updateCustomLinksForCell(a,this.model.getChildAt(c,b))};Graph.prototype.doUpdateCustomLinksForCell=
-function(a,c){};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var e=mxUtils.getValue(a.style,"points",null);if(null!=e){e=[];try{for(var b=JSON.parse(constgeraints),d=0;d<b.length;d++){var g=b[d];e.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(za){}return e}if(null!=a.shape&&null!=a.shape.bounds){g=a.shape.direction;e=a.shape.bounds;d=a.shape.scale;b=e.width/d;e=e.height/d;if(g==mxConstants.DIRECTION_NORTH||
-g==mxConstants.DIRECTION_SOUTH)g=b,b=e,e=g;e=a.shape.getConstraints(a.style,b,e);if(null!=e)return e;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.getCurrentCellStyle(a),c=mxUtils.getValue(c,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;
+function(a,c){};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var e=mxUtils.getValue(a.style,"points",null);if(null!=e){var b=[];try{for(var d=JSON.parse(e),e=0;e<d.length;e++){var g=d[e];b.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(za){}return b}if(null!=a.shape&&null!=a.shape.bounds){g=a.shape.direction;d=a.shape.bounds;e=a.shape.scale;b=d.width/e;d=d.height/e;if(g==mxConstants.DIRECTION_NORTH||
+g==mxConstants.DIRECTION_SOUTH)g=b,b=d,d=g;e=a.shape.getConstraints(a.style,b,d);if(null!=e)return e;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.getCurrentCellStyle(a),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),e=0,b=0;b<c;b++){var d=this.model.getChildAt(a,b);this.model.isVertex(d)&&(d=this.getCellGeometry(d),null==d||d.relative||e++)}return 0<e||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a,c,e){for(var b=this.getCurrentCellStyle(a),d=!0,g=!0,f=0;f<c.length&&g;f++)d=d&&this.isTable(c[f]),g=g&&this.isTableRow(c[f]);return("1"!=mxUtils.getValue(b,"part","0")||
this.isContainer(a))&&"0"!=mxUtils.getValue(b,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(a))&&!this.isTableRow(a)&&(!this.isTable(a)||g||d)};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 e=this.model.getParent(a);
null!=e&&(e=this.layoutManager.getLayout(e),null!=e&&e.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,c){var e=this.getModel(),b=[];e.beginUpdate();try{for(var d=0;d<a.length;d++){var g=a[d];if(e.isEdge(g)){var f=e.getTerminal(g,
!0),k=e.getTerminal(g,!1);e.setTerminal(g,k,!0);e.setTerminal(g,f,!1);var l=e.getGeometry(g);if(null!=l){l=l.clone();null!=l.points&&l.points.reverse();var n=l.getTerminalPoint(!0),v=l.getTerminalPoint(!1);l.setTerminalPoint(n,!1);l.setTerminalPoint(v,!0);e.setGeometry(g,l);var q=this.view.getState(g),t=this.view.getState(f),Y=this.view.getState(k);if(null!=q){var u=null!=t?this.getConnectionConstraint(q,t,!0):null,m=null!=Y?this.getConnectionConstraint(q,Y,!1):null;this.setConnectionConstraint(g,
-f,!0,m);this.setConnectionConstraint(g,k,!1,u);var C=mxUtils.getValue(q.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(q.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[g]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,C,[g])}b.push(g)}}else if(e.isVertex(g)&&(l=this.getCellGeometry(g),null!=l)){if(!(this.isTable(g)||this.isTableRow(g)||this.isTableCell(g)||this.isSwimlane(g))){l=l.clone();l.x+=l.width/
+f,!0,m);this.setConnectionConstraint(g,k,!1,u);var D=mxUtils.getValue(q.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(q.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[g]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,D,[g])}b.push(g)}}else if(e.isVertex(g)&&(l=this.getCellGeometry(g),null!=l)){if(!(this.isTable(g)||this.isTableRow(g)||this.isTableCell(g)||this.isSwimlane(g))){l=l.clone();l.x+=l.width/
2-l.height/2;l.y+=l.height/2-l.width/2;var B=l.width;l.width=l.height;l.height=B;e.setGeometry(g,l)}var x=this.view.getState(g);if(null!=x){var p=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],z=mxUtils.getValue(x.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,p[mxUtils.mod(mxUtils.indexOf(p,z)+(c?-1:1),p.length)],[g])}b.push(g)}}}finally{e.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};var q=Graph.prototype.processChange;Graph.prototype.processChange=function(a){if(a instanceof mxGeometryChange&&(this.isTableCell(a.cell)||this.isTableRow(a.cell))&&(null==a.previous&&null!=a.geometry||null!=a.previous&&!a.previous.equals(a.geometry))){var c=a.cell;this.isTableCell(c)&&(c=this.model.getParent(c));this.isTableRow(c)&&
(c=this.model.getParent(c));var e=this.view.getState(c);null!=e&&null!=e.shape&&(this.view.invalidate(c),e.shape.bounds=null)}q.apply(this,arguments);a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value&&this.invalidateDescendantsWithPlaceholders(a.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=function(a){a=this.model.getDescendants(a);if(0<a.length)for(var c=0;c<a.length;c++){var e=this.view.getState(a[c]);null!=e&&null!=e.shape&&null!=e.shape.stencil&&
@@ -2544,12 +2544,12 @@ a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var c=thi
!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var c=mxGraph.prototype.isCellResizable.apply(this,arguments),e=this.getCurrentCellStyle(a);return!this.isTableCell(a)&&!this.isTableRow(a)&&(c||"0"!=mxUtils.getValue(e,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==e[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=function(a,c){null==c&&(c=this.getSelectionCells());if(null!=c&&1<c.length){for(var e=[],b=null,d=null,g=0;g<c.length;g++)if(this.getModel().isVertex(c[g])){var f=
this.view.getState(c[g]);if(null!=f){var k=a?f.getCenterX():f.getCenterY(),b=null!=b?Math.max(b,k):k,d=null!=d?Math.min(d,k):k;e.push(f)}}if(2<e.length){e.sort(function(c,e){return a?c.x-e.x:c.y-e.y});f=this.view.translate;k=this.view.scale;d=d/k-(a?f.x:f.y);b=b/k-(a?f.x:f.y);this.getModel().beginUpdate();try{for(var l=(b-d)/(e.length-1),b=d,g=1;g<e.length-1;g++){var n=this.view.getState(this.model.getParent(e[g].cell)),v=this.getCellGeometry(e[g].cell),b=b+l;null!=v&&null!=n&&(v=v.clone(),a?v.x=
Math.round(b-v.width/2)-n.origin.x:v.y=Math.round(b-v.height/2)-n.origin.y,this.getModel().setGeometry(e[g].cell,v))}}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.parseBackgroundImage=function(a){var c=
-null;null!=a&&0<a.length&&(a=JSON.parse(a),c=new mxImage(a.src,a.width,a.height));return c};Graph.prototype.getBackgroundImageObject=function(a){return a};Graph.prototype.getSvg=function(a,c,e,b,d,g,f,k,l,n,v,q,t,u){var m=null;if(null!=u)for(m=new mxDictionary,v=0;v<u.length;v++)m.put(u[v],!0);if(u=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{c=null!=c?c:1;e=null!=e?e:0;d=null!=d?d:!0;g=null!=g?g:!0;f=null!=f?f:!0;var C="page"==t?this.view.getBackgroundPageBounds():
-g&&null==m||b||"diagram"==t?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),B=this.view.scale;"diagram"==t&&null!=this.backgroundImage&&C.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*B,(this.view.translate.y+this.backgroundImage.y)*B,this.backgroundImage.width*B,this.backgroundImage.height*B));if(null==C)throw Error(mxResources.get("drawingEmpty"));var x=mxUtils.createXmlDocument(),p=null!=x.createElementNS?x.createElementNS(mxConstants.NS_SVG,"svg"):x.createElement("svg");
-null!=a&&(null!=p.style?p.style.backgroundColor=a:p.setAttribute("style","background-color:"+a));null==x.createElementNS?(p.setAttribute("xmlns",mxConstants.NS_SVG),p.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):p.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=c/B;var z=Math.max(1,Math.ceil(C.width*a)+2*e)+(n?5:0),L=Math.max(1,Math.ceil(C.height*a)+2*e)+(n?5:0);p.setAttribute("version","1.1");p.setAttribute("width",z+"px");p.setAttribute("height",L+"px");
-p.setAttribute("viewBox",(d?"-0.5 -0.5":"0 0")+" "+z+" "+L);x.appendChild(p);var Y=null!=x.createElementNS?x.createElementNS(mxConstants.NS_SVG,"g"):x.createElement("g");p.appendChild(Y);var J=this.createSvgCanvas(Y);J.foOffset=d?-.5:0;J.textOffset=d?-.5:0;J.imageOffset=d?-.5:0;J.translate(Math.floor(e/c-C.x/B),Math.floor(e/c-C.y/B));var A=document.createElement("div"),D=J.getAlternateText;J.getAlternateText=function(a,c,e,b,d,g,f,k,l,n,v,q,y){if(null!=g&&0<this.state.fontSize)try{mxUtils.isNode(g)?
-g=g.innerText:(A.innerHTML=g,g=mxUtils.extractTextWithWhitespace(A.childNodes));for(var sa=Math.ceil(2*b/this.state.fontSize),Pa=[],oa=0,Qa=0;(0==sa||oa<sa)&&Qa<g.length;){var Ta=g.charCodeAt(Qa);if(10==Ta||13==Ta){if(0<oa)break}else Pa.push(g.charAt(Qa)),255>Ta&&oa++;Qa++}Pa.length<g.length&&1<g.length-Pa.length&&(g=mxUtils.trim(Pa.join(""))+"...");return g}catch(fb){return D.apply(this,arguments)}else return D.apply(this,arguments)};var N=this.backgroundImage;if(null!=N){c=B/c;var W=this.view.translate,
-qa=new mxRectangle((N.x+W.x)*c,(N.y+W.y)*c,N.width*c,N.height*c);mxUtils.intersects(C,qa)&&J.image(N.x+W.x,N.y+W.y,N.width,N.height,N.src,!0)}J.scale(a);J.textEnabled=f;k=null!=k?k:this.createSvgImageExport();var E=k.drawCellState,Q=k.getLinkForCellState;k.getLinkForCellState=function(a,c){var e=Q.apply(this,arguments);return null==e||a.view.graph.isCustomLink(e)?null:e};k.getLinkTargetForCellState=function(a,c){return a.view.graph.getLinkTargetForCell(a.cell)};k.drawCellState=function(a,c){for(var e=
+null;null!=a&&0<a.length&&(a=JSON.parse(a),c=new mxImage(a.src,a.width,a.height));return c};Graph.prototype.getBackgroundImageObject=function(a){return a};Graph.prototype.getSvg=function(a,c,e,b,d,g,f,k,l,n,v,q,t,u){var m=null;if(null!=u)for(m=new mxDictionary,v=0;v<u.length;v++)m.put(u[v],!0);if(u=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{c=null!=c?c:1;e=null!=e?e:0;d=null!=d?d:!0;g=null!=g?g:!0;f=null!=f?f:!0;var D="page"==t?this.view.getBackgroundPageBounds():
+g&&null==m||b||"diagram"==t?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),B=this.view.scale;"diagram"==t&&null!=this.backgroundImage&&D.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*B,(this.view.translate.y+this.backgroundImage.y)*B,this.backgroundImage.width*B,this.backgroundImage.height*B));if(null==D)throw Error(mxResources.get("drawingEmpty"));var x=mxUtils.createXmlDocument(),p=null!=x.createElementNS?x.createElementNS(mxConstants.NS_SVG,"svg"):x.createElement("svg");
+null!=a&&(null!=p.style?p.style.backgroundColor=a:p.setAttribute("style","background-color:"+a));null==x.createElementNS?(p.setAttribute("xmlns",mxConstants.NS_SVG),p.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):p.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=c/B;var z=Math.max(1,Math.ceil(D.width*a)+2*e)+(n?5:0),L=Math.max(1,Math.ceil(D.height*a)+2*e)+(n?5:0);p.setAttribute("version","1.1");p.setAttribute("width",z+"px");p.setAttribute("height",L+"px");
+p.setAttribute("viewBox",(d?"-0.5 -0.5":"0 0")+" "+z+" "+L);x.appendChild(p);var Y=null!=x.createElementNS?x.createElementNS(mxConstants.NS_SVG,"g"):x.createElement("g");p.appendChild(Y);var J=this.createSvgCanvas(Y);J.foOffset=d?-.5:0;J.textOffset=d?-.5:0;J.imageOffset=d?-.5:0;J.translate(Math.floor(e/c-D.x/B),Math.floor(e/c-D.y/B));var A=document.createElement("div"),C=J.getAlternateText;J.getAlternateText=function(a,c,e,b,d,g,f,k,l,n,v,q,y){if(null!=g&&0<this.state.fontSize)try{mxUtils.isNode(g)?
+g=g.innerText:(A.innerHTML=g,g=mxUtils.extractTextWithWhitespace(A.childNodes));for(var sa=Math.ceil(2*b/this.state.fontSize),Pa=[],oa=0,Qa=0;(0==sa||oa<sa)&&Qa<g.length;){var Ta=g.charCodeAt(Qa);if(10==Ta||13==Ta){if(0<oa)break}else Pa.push(g.charAt(Qa)),255>Ta&&oa++;Qa++}Pa.length<g.length&&1<g.length-Pa.length&&(g=mxUtils.trim(Pa.join(""))+"...");return g}catch(fb){return C.apply(this,arguments)}else return C.apply(this,arguments)};var N=this.backgroundImage;if(null!=N){c=B/c;var W=this.view.translate,
+qa=new mxRectangle((N.x+W.x)*c,(N.y+W.y)*c,N.width*c,N.height*c);mxUtils.intersects(D,qa)&&J.image(N.x+W.x,N.y+W.y,N.width,N.height,N.src,!0)}J.scale(a);J.textEnabled=f;k=null!=k?k:this.createSvgImageExport();var E=k.drawCellState,Q=k.getLinkForCellState;k.getLinkForCellState=function(a,c){var e=Q.apply(this,arguments);return null==e||a.view.graph.isCustomLink(e)?null:e};k.getLinkTargetForCellState=function(a,c){return a.view.graph.getLinkTargetForCell(a.cell)};k.drawCellState=function(a,c){for(var e=
a.view.graph,b=null!=m?m.get(a.cell):e.isCellSelected(a.cell),d=e.model.getParent(a.cell);!(g&&null==m||b)&&null!=d;)b=null!=m?m.get(d):e.isCellSelected(d),d=e.model.getParent(d);(g&&null==m||b)&&E.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),J);this.updateSvgLinks(p,l,!0);this.addForeignObjectWarning(J,p);return p}finally{u&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(a,c){if("0"!=urlParams["svg-warning"]&&
0<c.getElementsByTagName("foreignObject").length){var e=a.createElement("switch"),b=a.createElement("g");b.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var d=a.createElement("a");d.setAttribute("transform","translate(0,-5)");null==d.setAttributeNS||c.ownerDocument!=document&&null==document.documentMode?(d.setAttribute("xlink:href",Graph.foreignObjectWarningLink),d.setAttribute("target","_blank")):(d.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),
d.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var g=a.createElement("text");g.setAttribute("text-anchor","middle");g.setAttribute("font-size","10px");g.setAttribute("x","50%");g.setAttribute("y","100%");mxUtils.write(g,Graph.foreignObjectWarningText);e.appendChild(b);d.appendChild(g);e.appendChild(d);c.appendChild(e)}};Graph.prototype.updateSvgLinks=function(a,c,e){a=a.getElementsByTagName("a");for(var b=0;b<a.length;b++)if(null==a[b].getAttribute("target")){var d=a[b].getAttribute("href");
@@ -2594,17 +2594,17 @@ function(a){var c=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOL
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)};var K=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(a,c){K.apply(this,arguments);var e=this.graph.getCellStyle(a);if(null==e.childLayout){var b=this.graph.model.getParent(a),d=null!=b?this.graph.getCellGeometry(b):null;if(null!=d&&(e=this.graph.getCellStyle(b),"stackLayout"==e.childLayout)){var g=parseFloat(mxUtils.getValue(e,"stackBorder",mxStackLayout.prototype.border)),e="1"==mxUtils.getValue(e,"horizontalStack",
"1"),f=this.graph.getActualStartSize(b),d=d.clone();e?d.height=c.height+f.y+f.height+2*g:d.width=c.width+f.x+f.width+2*g;this.graph.model.setGeometry(b,d)}}};var F=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function a(a){e.get(a)||(e.put(a,!0),d.push(a))}for(var c=F.apply(this,arguments),e=new mxDictionary,b=this.graph.model,d=[],g=0;g<c.length;g++){var f=c[g];this.graph.isTableCell(f)?a(b.getParent(b.getParent(f))):
-this.graph.isTableRow(f)&&a(b.getParent(f));a(f)}return d};var I=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(a){var c=I.apply(this,arguments);c.stroke="#C0C0C0";c.strokewidth=1;return c};var D=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(a){var c=D.apply(this,arguments);c.stroke="#C0C0C0";c.strokewidth=1;return c};mxVertexHandler.prototype.rotationHandleVSpacing=
+this.graph.isTableRow(f)&&a(b.getParent(f));a(f)}return d};var I=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(a){var c=I.apply(this,arguments);c.stroke="#C0C0C0";c.strokewidth=1;return c};var C=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(a){var c=C.apply(this,arguments);c.stroke="#C0C0C0";c.strokewidth=1;return c};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.isRecursiveVertexResize(a)&&!mxEvent.isControlDown(c.getEvent())};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 M=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return M.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)&&!this.graph.isTable(this.state.cell)};mxVertexHandler.prototype.getSizerBounds=
-function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};var U=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return U.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var P=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=
-function(a){return a.tableHandle||P.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var a=0;this.graph.isTableRow(this.state.cell)?a=1:this.graph.isTableCell(this.state.cell)&&(a=2);return a};var N=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return N.apply(this,arguments).grow(-this.getSelectionBorderInset())};
+function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};var U=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return U.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var O=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=
+function(a){return a.tableHandle||O.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var a=0;this.graph.isTableRow(this.state.cell)?a=1:this.graph.isTableCell(this.state.cell)&&(a=2);return a};var N=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return N.apply(this,arguments).grow(-this.getSelectionBorderInset())};
var v=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=v.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var c=this.graph,e=c.model,b=this.state,d=this.selectionBorder,g=this;null==a&&(a=[]);var f=c.view.getCellStates(e.getChildCells(this.state.cell,!0));if(0<f.length){for(var k=c.view.getCellStates(e.getChildCells(f[0].cell,!0)),e=0;e<k.length;e++)mxUtils.bind(this,function(e){var f=k[e],l=e<k.length-1?k[e+1]:null,n=new mxLine(new mxRectangle,
mxConstants.NONE,1,!0);n.isDashed=d.isDashed;n.svgStrokeTolerance++;n=new mxHandle(f,"col-resize",null,n);n.tableHandle=!0;var v=0;n.shape.node.parentNode.insertBefore(n.shape.node,n.shape.node.parentNode.firstChild);n.redraw=function(){if(null!=this.shape&&null!=this.state.shape){var a=c.getActualStartSize(b.cell);this.shape.stroke=0==v?mxConstants.NONE:d.stroke;this.shape.bounds.x=this.state.x+this.state.width+v*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=b.y+(e==k.length-
1?0:a.y*this.graph.view.scale);this.shape.bounds.height=b.height-(e==k.length-1?0:(a.height+a.y)*this.graph.view.scale);this.shape.redraw()}};var q=!1;n.setPosition=function(a,e,b){v=Math.max(Graph.minTableColumnWidth-a.width,e.x-a.x-a.width);q=mxEvent.isShiftDown(b.getEvent());null==l||q||(v=Math.min((l.x+l.width-f.x-f.width)/c.view.scale-Graph.minTableColumnWidth,v))};n.execute=function(a){if(0!=v)c.setTableColumnWidth(this.state.cell,v,q);else if(!g.blockDelayedSelection){var e=c.getCellAt(a.getGraphX(),
a.getGraphY())||b.cell;c.graphHandler.selectCellForEvent(e,a)}v=0};n.reset=function(){v=0};a.push(n)})(e);for(e=0;e<f.length;e++)mxUtils.bind(this,function(e){e=f[e];var k=new mxLine(new mxRectangle,mxConstants.NONE,1);k.isDashed=d.isDashed;k.svgStrokeTolerance++;e=new mxHandle(e,"row-resize",null,k);e.tableHandle=!0;var l=0;e.shape.node.parentNode.insertBefore(e.shape.node,e.shape.node.parentNode.firstChild);e.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==l?mxConstants.NONE:
d.stroke,this.shape.bounds.x=this.state.x,this.shape.bounds.width=this.state.width,this.shape.bounds.y=this.state.y+this.state.height+l*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())};e.setPosition=function(a,c,e){l=Math.max(Graph.minTableRowHeight-a.height,c.y-a.y-a.height)};e.execute=function(a){if(0!=l)c.setTableRowHeight(this.state.cell,l,!mxEvent.isShiftDown(a.getEvent()));else if(!g.blockDelayedSelection){var e=c.getCellAt(a.getGraphX(),a.getGraphY())||b.cell;c.graphHandler.selectCellForEvent(e,
-a)}l=0};e.reset=function(){l=0};a.push(e)})(e)}}return null!=a?a.reverse():null};var C=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){C.apply(this,arguments);if(null!=this.moveHandles)for(var c=0;c<this.moveHandles.length;c++)this.moveHandles[c].style.visibility=a?"":"hidden";if(null!=this.cornerHandles)for(c=0;c<this.cornerHandles.length;c++)this.cornerHandles[c].node.style.visibility=a?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=
+a)}l=0};e.reset=function(){l=0};a.push(e)})(e)}}return null!=a?a.reverse():null};var D=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){D.apply(this,arguments);if(null!=this.moveHandles)for(var c=0;c<this.moveHandles.length;c++)this.moveHandles[c].style.visibility=a?"":"hidden";if(null!=this.cornerHandles)for(c=0;c<this.cornerHandles.length;c++)this.cornerHandles[c].node.style.visibility=a?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=
function(){var a=this.graph.model;if(null!=this.moveHandles){for(var c=0;c<this.moveHandles.length;c++)this.moveHandles[c].parentNode.removeChild(this.moveHandles[c]);this.moveHandles=null}this.moveHandles=[];for(c=0;c<a.getChildCount(this.state.cell);c++)mxUtils.bind(this,function(c){if(null!=c&&a.isVertex(c.cell)){var e=mxUtils.createImage(Editor.rowMoveImage);e.style.position="absolute";e.style.cursor="pointer";e.style.width="7px";e.style.height="4px";e.style.padding="4px 2px 4px 2px";e.rowState=
c;mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(a)&&this.graph.isCellSelected(c.cell)||this.graph.selectCellForEvent(c.cell,a);mxEvent.isPopupTrigger(a)||(this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0);
mxEvent.consume(a)}),null,mxUtils.bind(this,function(a){mxEvent.isPopupTrigger(a)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(a),mxEvent.getClientY(a),c.cell,a),mxEvent.consume(a))}));this.moveHandles.push(e);this.graph.container.appendChild(e)}})(this.graph.view.getState(a.getChildAt(this.state.cell,c)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var a=0;a<this.customHandles.length;a++)this.customHandles[a].destroy();this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&
@@ -2638,7 +2638,7 @@ mxConstants.HANDLE_STROKECOLOR)};var la=mxVertexHandler.prototype.createSizerSha
if(c.isEdge(e)&&null!=b&&b.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 V.apply(this,arguments)};var ca=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=ca.apply(this,arguments),c=[],e=0;e<a.length;e++)"1"!=mxUtils.getValue(a[e].style,"part","0")&&c.push(a[e]);return c};var ma=mxVertexHandler.prototype.getSelectionBounds;
mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),e=c.getParent(a.cell),b=this.graph.getCellGeometry(a.cell);return c.isEdge(e)&&null!=b&&b.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))):ma.apply(this,arguments)};var T=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,
c){var e=this.graph.getModel(),b=e.getParent(this.state.cell),d=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!e.isEdge(b)||null==d||!d.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&T.apply(this,arguments)};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 O=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,c){O.apply(this,arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&
+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 P=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,c){P.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 ta=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){ta.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=
"");this.blockDelayedSelection=null};var X=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){X.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));if(this.graph.isTable(this.state.cell))this.refreshMoveHandles();else if(1==this.graph.getSelectionCount()&&(this.graph.isTableCell(this.state.cell)||this.graph.isTableRow(this.state.cell))){this.cornerHandles=[];for(var c=0;4>c;c++){var e=new mxRectangleShape(new mxRectangle(0,
0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);e.dialect=mxConstants.DIALECT_SVG;e.init(this.graph.view.getOverlayPane());this.cornerHandles.push(e)}}var b=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,c){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));
@@ -2659,8 +2659,8 @@ function(){if(null!=this.marker&&(ka.apply(this),null!=this.state&&null!=this.li
null!=this.linkHint&&(this.linkHint.style.visibility="")};var ja=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){ja.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(){mxSwimlane.call(this)}function b(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function k(){mxActor.call(this)}function f(){mxCylinder.call(this)}function m(){mxCylinder.call(this)}function p(){mxCylinder.call(this)}function c(){mxCylinder.call(this)}function e(){mxShape.call(this)}function g(){mxShape.call(this)}function n(a,c,e,b){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=e;this.strokewidth=null!=b?b:1}function l(){mxActor.call(this)}function q(){mxCylinder.call(this)}
function u(){mxCylinder.call(this)}function t(){mxActor.call(this)}function A(){mxActor.call(this)}function x(){mxActor.call(this)}function G(){mxActor.call(this)}function z(){mxActor.call(this)}function E(){mxActor.call(this)}function H(){mxActor.call(this)}function K(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,K.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
this.canvas.moveTo=mxUtils.bind(this,K.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,K.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,K.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,K.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,K.prototype.arcTo)}function F(){mxRectangleShape.call(this)}function I(){mxRectangleShape.call(this)}
-function D(){mxActor.call(this)}function M(){mxActor.call(this)}function U(){mxActor.call(this)}function P(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function v(){mxCylinder.call(this)}function C(){mxShape.call(this)}function B(){mxShape.call(this)}function J(){mxEllipse.call(this)}function L(){mxShape.call(this)}function W(){mxShape.call(this)}function Q(){mxRectangleShape.call(this)}function aa(){mxShape.call(this)}function na(){mxShape.call(this)}function ga(){mxShape.call(this)}
-function ea(){mxShape.call(this)}function la(){mxShape.call(this)}function V(){mxCylinder.call(this)}function ca(){mxCylinder.call(this)}function ma(){mxRectangleShape.call(this)}function T(){mxDoubleEllipse.call(this)}function O(){mxDoubleEllipse.call(this)}function ta(){mxArrowConnector.call(this);this.spacing=0}function X(){mxArrowConnector.call(this);this.spacing=0}function da(){mxActor.call(this)}function ia(){mxRectangleShape.call(this)}function pa(){mxActor.call(this)}function R(){mxActor.call(this)}
+function C(){mxActor.call(this)}function M(){mxActor.call(this)}function U(){mxActor.call(this)}function O(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function v(){mxCylinder.call(this)}function D(){mxShape.call(this)}function B(){mxShape.call(this)}function J(){mxEllipse.call(this)}function L(){mxShape.call(this)}function W(){mxShape.call(this)}function Q(){mxRectangleShape.call(this)}function aa(){mxShape.call(this)}function na(){mxShape.call(this)}function ga(){mxShape.call(this)}
+function ea(){mxShape.call(this)}function la(){mxShape.call(this)}function V(){mxCylinder.call(this)}function ca(){mxCylinder.call(this)}function ma(){mxRectangleShape.call(this)}function T(){mxDoubleEllipse.call(this)}function P(){mxDoubleEllipse.call(this)}function ta(){mxArrowConnector.call(this);this.spacing=0}function X(){mxArrowConnector.call(this);this.spacing=0}function da(){mxActor.call(this)}function ia(){mxRectangleShape.call(this)}function pa(){mxActor.call(this)}function R(){mxActor.call(this)}
function ka(){mxActor.call(this)}function ba(){mxActor.call(this)}function ja(){mxActor.call(this)}function Y(){mxActor.call(this)}function qa(){mxActor.call(this)}function va(){mxActor.call(this)}function ua(){mxActor.call(this)}function ra(){mxActor.call(this)}function ya(){mxEllipse.call(this)}function za(){mxEllipse.call(this)}function S(){mxEllipse.call(this)}function Aa(){mxRhombus.call(this)}function ha(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function wa(){mxEllipse.call(this)}
function Da(){mxEllipse.call(this)}function Ca(){mxActor.call(this)}function xa(){mxActor.call(this)}function Fa(){mxActor.call(this)}function Z(a,c,e,b){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=e;this.strokewidth=null!=b?b:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Ha(){mxConnector.call(this)}function Ua(a,c,e,b,d,g,f,k,l,n){f+=l;var y=b.clone();b.x-=d*(2*f+l);b.y-=g*(2*f+l);d*=f+l;g*=f+l;return function(){a.ellipse(y.x-
d-f,y.y-g-f,2*f,2*f);n?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxSwimlane);a.prototype.getLabelBounds=function(a){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};a.prototype.paintVertexShape=function(a,c,e,b,d){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),a.translate(-c,-e));this.paintForeground(a,
@@ -2707,18 +2707,18 @@ null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),thi
e+d),a.lineTo(c+y,e+d),a.quadTo(c,e+d,c,e+d-y),a.lineTo(c,e+y),a.quadTo(c,e,c+y,e)):(a.moveTo(c,e),a.lineTo(c+b,e),a.lineTo(c+b,e+d),a.lineTo(c,e+d),a.lineTo(c,e)),a.close(),a.end(),a.fillAndStroke()}};mxUtils.extend(F,mxRectangleShape);F.prototype.size=.1;F.prototype.fixedSize=!1;F.prototype.isHtmlAllowed=function(){return!1};F.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 c=a.width,e=a.height;a=new mxRectangle(a.x,a.y,c,e);var b=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,b=Math.max(b,Math.min(c*d,e*d));a.x+=Math.round(b);a.width-=Math.round(2*b)}return a};F.prototype.paintForeground=function(a,c,e,b,d){var y=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),
g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=y?Math.max(0,Math.min(b,g)):b*Math.max(0,Math.min(1,g));this.isRounded&&(y=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(b*y,d*y)));g=Math.round(g);a.begin();a.moveTo(c+g,e);a.lineTo(c+g,e+d);a.moveTo(c+b-g,e);a.lineTo(c+b-g,e+d);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",F);mxCellRenderer.registerShape("process2",
-F);mxUtils.extend(I,mxRectangleShape);I.prototype.paintBackground=function(a,c,e,b,d){a.setFillColor(mxConstants.NONE);a.rect(c,e,b,d);a.fill()};I.prototype.paintForeground=function(a,c,e,b,d){};mxCellRenderer.registerShape("transparent",I);mxUtils.extend(D,mxHexagon);D.prototype.size=30;D.prototype.position=.5;D.prototype.position2=.5;D.prototype.base=20;D.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};D.prototype.isRoundable=
-function(){return!0};D.prototype.redrawPath=function(a,c,e,b,d){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;e=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var y=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"base",this.base))));
-this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,d-e),new mxPoint(Math.min(b,y+f),d-e),new mxPoint(g,d),new mxPoint(Math.max(0,y),d-e),new mxPoint(0,d-e)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",D);mxUtils.extend(M,mxActor);M.prototype.size=.2;M.prototype.fixedSize=20;M.prototype.isRoundable=function(){return!0};M.prototype.redrawPath=function(a,c,e,b,d){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,
+F);mxUtils.extend(I,mxRectangleShape);I.prototype.paintBackground=function(a,c,e,b,d){a.setFillColor(mxConstants.NONE);a.rect(c,e,b,d);a.fill()};I.prototype.paintForeground=function(a,c,e,b,d){};mxCellRenderer.registerShape("transparent",I);mxUtils.extend(C,mxHexagon);C.prototype.size=30;C.prototype.position=.5;C.prototype.position2=.5;C.prototype.base=20;C.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};C.prototype.isRoundable=
+function(){return!0};C.prototype.redrawPath=function(a,c,e,b,d){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;e=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var y=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"base",this.base))));
+this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,d-e),new mxPoint(Math.min(b,y+f),d-e),new mxPoint(g,d),new mxPoint(Math.max(0,y),d-e),new mxPoint(0,d-e)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",C);mxUtils.extend(M,mxActor);M.prototype.size=.2;M.prototype.fixedSize=20;M.prototype.isRoundable=function(){return!0};M.prototype.redrawPath=function(a,c,e,b,d){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,
"size",this.fixedSize)))):b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b-c,0),new mxPoint(b,d/2),new mxPoint(b-c,d),new mxPoint(0,d),new mxPoint(c,d/2)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("step",M);mxUtils.extend(U,mxHexagon);U.prototype.size=.25;U.prototype.fixedSize=20;U.prototype.isRoundable=function(){return!0};
U.prototype.redrawPath=function(a,c,e,b,d){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*b,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(b-c,0),new mxPoint(b,.5*d),new mxPoint(b-c,d),new mxPoint(c,d),new mxPoint(0,.5*d)],this.isRounded,e,
-!0)};mxCellRenderer.registerShape("hexagon",U);mxUtils.extend(P,mxRectangleShape);P.prototype.isHtmlAllowed=function(){return!1};P.prototype.paintForeground=function(a,c,e,b,d){var g=Math.min(b/5,d/5)+1;a.begin();a.moveTo(c+b/2,e+g);a.lineTo(c+b/2,e+d-g);a.moveTo(c+g,e+d/2);a.lineTo(c+b-g,e+d/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",P);var Xa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==
+!0)};mxCellRenderer.registerShape("hexagon",U);mxUtils.extend(O,mxRectangleShape);O.prototype.isHtmlAllowed=function(){return!1};O.prototype.paintForeground=function(a,c,e,b,d){var g=Math.min(b/5,d/5)+1;a.begin();a.moveTo(c+b/2,e+g);a.lineTo(c+b/2,e+d-g);a.moveTo(c+g,e+d/2);a.lineTo(c+b-g,e+d/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",O);var Xa=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,e,b,d){Xa.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);c+=g;e+=g;b-=2*g;d-=2*g;0<b&&0<d&&(a.setShadow(!1),Xa.apply(this,[a,c,e,b,d]))}};mxUtils.extend(N,
mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.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};N.prototype.paintForeground=function(a,c,e,b,d){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);c+=g;e+=g;b-=2*g;d-=2*g;0<b&&0<d&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var g=0,y;do{y=mxCellRenderer.defaultShapes[this.style["symbol"+g]];if(null!=y){var f=this.style["symbol"+g+"Align"],k=this.style["symbol"+g+"VerticalAlign"],l=this.style["symbol"+g+"Width"],n=this.style["symbol"+g+"Height"],v=this.style["symbol"+g+"Spacing"]||0,q=this.style["symbol"+g+"VSpacing"]||v,sa=this.style["symbol"+g+"ArcSpacing"];null!=sa&&(sa*=this.getArcSize(b+this.strokewidth,
d+this.strokewidth),v+=sa,q+=sa);var sa=c,oa=e,sa=f==mxConstants.ALIGN_CENTER?sa+(b-l)/2:f==mxConstants.ALIGN_RIGHT?sa+(b-l-v):sa+v,oa=k==mxConstants.ALIGN_MIDDLE?oa+(d-n)/2:k==mxConstants.ALIGN_BOTTOM?oa+(d-n-q):oa+q;a.save();f=new y;f.style=this.style;y.prototype.paintVertexShape.call(f,a,sa,oa,l,n);a.restore()}g++}while(null!=y)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(v,mxCylinder);v.prototype.redrawPath=function(a,
-c,e,b,d,g){g?(a.moveTo(0,0),a.lineTo(b/2,d/2),a.lineTo(b,0),a.end()):(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,d),a.lineTo(0,d),a.close())};mxCellRenderer.registerShape("message",v);mxUtils.extend(C,mxShape);C.prototype.paintBackground=function(a,c,e,b,d){a.translate(c,e);a.ellipse(b/4,0,b/2,d/4);a.fillAndStroke();a.begin();a.moveTo(b/2,d/4);a.lineTo(b/2,2*d/3);a.moveTo(b/2,d/3);a.lineTo(0,d/3);a.moveTo(b/2,d/3);a.lineTo(b,d/3);a.moveTo(b/2,2*d/3);a.lineTo(0,d);a.moveTo(b/2,2*d/3);a.lineTo(b,d);a.end();
-a.stroke()};mxCellRenderer.registerShape("umlActor",C);mxUtils.extend(B,mxShape);B.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};B.prototype.paintBackground=function(a,c,e,b,d){a.translate(c,e);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(b/6,d/2);a.end();a.stroke();a.ellipse(b/6,0,5*b/6,d);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",B);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(a,
+c,e,b,d,g){g?(a.moveTo(0,0),a.lineTo(b/2,d/2),a.lineTo(b,0),a.end()):(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,d),a.lineTo(0,d),a.close())};mxCellRenderer.registerShape("message",v);mxUtils.extend(D,mxShape);D.prototype.paintBackground=function(a,c,e,b,d){a.translate(c,e);a.ellipse(b/4,0,b/2,d/4);a.fillAndStroke();a.begin();a.moveTo(b/2,d/4);a.lineTo(b/2,2*d/3);a.moveTo(b/2,d/3);a.lineTo(0,d/3);a.moveTo(b/2,d/3);a.lineTo(b,d/3);a.moveTo(b/2,2*d/3);a.lineTo(0,d);a.moveTo(b/2,2*d/3);a.lineTo(b,d);a.end();
+a.stroke()};mxCellRenderer.registerShape("umlActor",D);mxUtils.extend(B,mxShape);B.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};B.prototype.paintBackground=function(a,c,e,b,d){a.translate(c,e);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(b/6,d/2);a.end();a.stroke();a.ellipse(b/6,0,5*b/6,d);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",B);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(a,
c,e,b,d){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+b/8,e+d);a.lineTo(c+7*b/8,e+d);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(L,mxShape);L.prototype.paintVertexShape=function(a,c,e,b,d){a.translate(c,e);a.begin();a.moveTo(b,0);a.lineTo(0,d);a.moveTo(0,0);a.lineTo(b,d);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",L);mxUtils.extend(W,mxShape);W.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+
a.height/8,a.width,7*a.height/8)};W.prototype.paintBackground=function(a,c,e,b,d){a.translate(c,e);a.begin();a.moveTo(3*b/8,d/8*1.1);a.lineTo(5*b/8,0);a.end();a.stroke();a.ellipse(0,d/8,b,7*d/8);a.fillAndStroke()};W.prototype.paintForeground=function(a,c,e,b,d){a.begin();a.moveTo(3*b/8,d/8*1.1);a.lineTo(5*b/8,d/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",W);mxUtils.extend(Q,mxRectangleShape);Q.prototype.size=40;Q.prototype.isHtmlAllowed=function(){return!1};Q.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)};Q.prototype.paintBackground=function(a,c,e,b,d){var g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),y=mxUtils.getValue(this.style,"participant");null==y||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,c,e,b,g):(y=this.state.view.graph.cellRenderer.getShape(y),null!=y&&y!=Q&&(y=new y,
@@ -2728,7 +2728,7 @@ aa.prototype.width=60;aa.prototype.height=30;aa.prototype.corner=10;aa.prototype
g),e+f);a.lineTo(c,e+f);a.close();a.fillAndStroke();a.begin();a.moveTo(c+y,e);a.lineTo(c+b,e);a.lineTo(c+b,e+d);a.lineTo(c,e+d);a.lineTo(c,e+f);a.stroke()};mxCellRenderer.registerShape("umlFrame",aa);mxPerimeter.CenterPerimeter=function(a,c,e,b){return new mxPoint(a.getCenterX(),a.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(a,c,e,b){b=Q.prototype.size;null!=c&&(b=mxUtils.getValue(c.style,"size",b)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||
1)*c.view.scale/2-1;e.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+c,Math.min(a.y+a.height,Math.max(a.y+b,e.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,c,e,b){b=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,e,b){b=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||
1)*c.view.scale/2-1;null!=c.style.backboneSize&&(b+=parseFloat(c.style.backboneSize)*c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return e.x<a.getCenterX()&&(b=-1*(b+1)),new mxPoint(a.getCenterX()+b,Math.min(a.y+a.height,Math.max(a.y,e.y)));e.y<a.getCenterY()&&(b=-1*(b+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,e.x)),a.getCenterY()+b)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=
-function(a,c,e,b){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",D.prototype.size))*c.view.scale))),c.style),c,e,b)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,e,b){var d="0"!=mxUtils.getValue(c.style,"fixedSize","0"),g=d?G.prototype.fixedSize:G.prototype.size;null!=c&&(g=mxUtils.getValue(c.style,"size",g));
+function(a,c,e,b){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",C.prototype.size))*c.view.scale))),c.style),c,e,b)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,e,b){var d="0"!=mxUtils.getValue(c.style,"fixedSize","0"),g=d?G.prototype.fixedSize:G.prototype.size;null!=c&&(g=mxUtils.getValue(c.style,"size",g));
d&&(g*=c.view.scale);var f=a.x,y=a.y,k=a.width,l=a.height;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=d?Math.max(0,Math.min(l,g)):l*Math.max(0,Math.min(1,g)),y=[new mxPoint(f,y),new mxPoint(f+k,y+d),new mxPoint(f+k,y+l),new mxPoint(f,y+l-d),new mxPoint(f,y)]):(d=d?Math.max(0,Math.min(.5*k,g)):k*Math.max(0,Math.min(1,g)),y=[new mxPoint(f+d,y),new mxPoint(f+k,y),
new mxPoint(f+k-d,y+l),new mxPoint(f,y+l),new mxPoint(f+d,y)]);l=a.getCenterX();a=a.getCenterY();a=new mxPoint(l,a);b&&(e.x<f||e.x>f+k?a.y=e.y:a.x=e.x);return mxUtils.getPerimeterPoint(y,a,e)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,c,e,b){var d="0"!=mxUtils.getValue(c.style,"fixedSize","0"),g=d?z.prototype.fixedSize:z.prototype.size;null!=c&&(g=mxUtils.getValue(c.style,"size",g));d&&(g*=c.view.scale);var f=a.x,
y=a.y,k=a.width,l=a.height;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(.5*k,g)):k*Math.max(0,Math.min(1,g)),y=[new mxPoint(f+d,y),new mxPoint(f+k-d,y),new mxPoint(f+k,y+l),new mxPoint(f,y+l),new mxPoint(f+d,y)]):c==mxConstants.DIRECTION_WEST?(d=d?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),y=[new mxPoint(f,y),new mxPoint(f+k,y),new mxPoint(f+k-d,y+l),new mxPoint(f+
@@ -2745,7 +2745,7 @@ a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",ea);mxUtils
k),a.lineTo(e,k),a.lineTo(e,y+c),a.lineTo(0,y+c),a.lineTo(0,y),a.lineTo(e,y),a.close());a.end()};mxCellRenderer.registerShape("module",V);mxUtils.extend(ca,mxCylinder);ca.prototype.jettyWidth=32;ca.prototype.jettyHeight=12;ca.prototype.redrawPath=function(a,c,e,b,d,g){var f=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));e=f/2;var f=e+f/2,y=.3*d-c/2,k=.7*d-c/2;g?(a.moveTo(e,y),a.lineTo(f,y),a.lineTo(f,
y+c),a.lineTo(e,y+c),a.moveTo(e,k),a.lineTo(f,k),a.lineTo(f,k+c),a.lineTo(e,k+c)):(a.moveTo(e,0),a.lineTo(b,0),a.lineTo(b,d),a.lineTo(e,d),a.lineTo(e,k+c),a.lineTo(0,k+c),a.lineTo(0,k),a.lineTo(e,k),a.lineTo(e,y+c),a.lineTo(0,y+c),a.lineTo(0,y),a.lineTo(e,y),a.close());a.end()};mxCellRenderer.registerShape("component",ca);mxUtils.extend(ma,mxRectangleShape);ma.prototype.paintForeground=function(a,c,e,b,d){var g=b/2,f=d/2,y=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
2;a.begin();this.addPoints(a,[new mxPoint(c+g,e),new mxPoint(c+b,e+f),new mxPoint(c+g,e+d),new mxPoint(c,e+f)],this.isRounded,y,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ma);mxUtils.extend(T,mxDoubleEllipse);T.prototype.outerStroke=!0;T.prototype.paintVertexShape=function(a,c,e,b,d){var g=Math.min(4,Math.min(b/5,d/5));0<b&&0<d&&(a.ellipse(c+g,e+g,b-2*g,d-2*g),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&
-(a.ellipse(c,e,b,d),a.stroke())};mxCellRenderer.registerShape("endState",T);mxUtils.extend(O,T);O.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",O);mxUtils.extend(ta,mxArrowConnector);ta.prototype.defaultWidth=4;ta.prototype.isOpenEnded=function(){return!0};ta.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};ta.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
+(a.ellipse(c,e,b,d),a.stroke())};mxCellRenderer.registerShape("endState",T);mxUtils.extend(P,T);P.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",P);mxUtils.extend(ta,mxArrowConnector);ta.prototype.defaultWidth=4;ta.prototype.isOpenEnded=function(){return!0};ta.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};ta.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",
ta);mxUtils.extend(X,mxArrowConnector);X.prototype.defaultWidth=10;X.prototype.defaultArrowWidth=20;X.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};X.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};X.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",
X);mxUtils.extend(da,mxActor);da.prototype.size=30;da.prototype.isRoundable=function(){return!0};da.prototype.redrawPath=function(a,c,e,b,d){c=Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)));e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,d),new mxPoint(0,c),new mxPoint(b,0),new mxPoint(b,d)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("manualInput",da);mxUtils.extend(ia,mxRectangleShape);ia.prototype.dx=
20;ia.prototype.dy=20;ia.prototype.isHtmlAllowed=function(){return!1};ia.prototype.paintForeground=function(a,c,e,b,d){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(b*f,d*f));f=Math.max(g,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));g=Math.max(g,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));
@@ -2773,33 +2773,33 @@ defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",
type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},
{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]}];Z.prototype.paintVertexShape=function(a,c,e,b,d){a.translate(c,e);this.strictDrawShape(a,0,0,b,d)};Z.prototype.strictDrawShape=function(a,c,e,b,d,g){var f=g&&g.rectStyle?g.rectStyle:
mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=g&&g.absoluteCornerSize?g.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),l=g&&g.size?g.size:Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),n=g&&g.rectOutline?g.rectOutline:mxUtils.getValue(this.style,"rectOutline",this.rectOutline),v=g&&g.indent?g.indent:Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),y=g&&g.dashed?g.dashed:
-mxUtils.getValue(this.style,"dashed",!1),q=g&&g.dashPattern?g.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),t=g&&g.relIndent?g.relIndent:Math.max(0,Math.min(50,v)),u=g&&g.top?g.top:mxUtils.getValue(this.style,"top",!0),m=g&&g.right?g.right:mxUtils.getValue(this.style,"right",!0),C=g&&g.bottom?g.bottom:mxUtils.getValue(this.style,"bottom",!0),B=g&&g.left?g.left:mxUtils.getValue(this.style,"left",!0),x=g&&g.topLeftStyle?g.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),
+mxUtils.getValue(this.style,"dashed",!1),q=g&&g.dashPattern?g.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),t=g&&g.relIndent?g.relIndent:Math.max(0,Math.min(50,v)),u=g&&g.top?g.top:mxUtils.getValue(this.style,"top",!0),m=g&&g.right?g.right:mxUtils.getValue(this.style,"right",!0),D=g&&g.bottom?g.bottom:mxUtils.getValue(this.style,"bottom",!0),B=g&&g.left?g.left:mxUtils.getValue(this.style,"left",!0),x=g&&g.topLeftStyle?g.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),
p=g&&g.topRightStyle?g.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),z=g&&g.bottomRightStyle?g.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),L=g&&g.bottomLeftStyle?g.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),J=g&&g.fillColor?g.fillColor:mxUtils.getValue(this.style,"fillColor","#ffffff");g&&g.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var A=g&&g.strokeWidth?g.strokeWidth:mxUtils.getValue(this.style,
-"strokeWidth","1"),D=g&&g.fillColor2?g.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),oa=g&&g.gradientColor2?g.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),N=g&&g.gradientDirection2?g.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),sa=g&&g.opacity?g.opacity:mxUtils.getValue(this.style,"opacity","100"),W=Math.max(0,Math.min(50,l));g=Z.prototype;a.setDashed(y);q&&""!=q&&a.setDashPattern(q);a.setStrokeWidth(A);l=Math.min(.5*d,.5*b,l);k||
-(l=W*Math.min(b,d)/100);l=Math.min(l,.5*Math.min(b,d));k||(v=Math.min(t*Math.min(b,d)/100));v=Math.min(v,.5*Math.min(b,d)-l);(u||m||C||B)&&"frame"!=n&&(a.begin(),u?g.moveNW(a,c,e,b,d,f,x,l,B):a.moveTo(0,0),u&&g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),m&&g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),C&&g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),B&&g.paintSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(D),
-y=k=sa,"none"==D&&(k=0),"none"==oa&&(y=0),a.setGradient(D,oa,0,0,b,d,N,k,y),a.begin(),u?g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B):a.moveTo(v,0),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),B&&C&&g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),C&&m&&g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),m&&u&&g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),u&&B&&g.paintNWInner(a,c,e,b,d,f,x,l,v),a.fill(),"none"==J&&(a.begin(),g.paintFolds(a,
-c,e,b,d,f,x,p,z,L,l,u,m,C,B),a.stroke()));u||m||C||!B?u||m||!C||B?!u&&!m&&C&&B?"frame"!=n?(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),"double"==n&&(g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C)),a.stroke()):(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,
-C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.lineNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),a.close(),a.fillAndStroke()):u||!m||C||B?!u&&m&&!C&&B?"frame"!=n?(a.begin(),g.moveSW(a,c,e,b,d,f,x,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),"double"==n&&(g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B)),a.stroke(),a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),"double"==
-n&&(g.moveSEInner(a,c,e,b,d,f,z,l,v,C),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m)),a.stroke()):(a.begin(),g.moveSW(a,c,e,b,d,f,x,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.lineNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),a.close(),a.fillAndStroke(),a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.lineSEInner(a,c,e,b,d,f,z,l,v,C),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),a.close(),a.fillAndStroke()):!u&&m&&C&&!B?"frame"!=n?(a.begin(),g.moveNE(a,c,e,b,d,f,p,
-l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m)),a.stroke()):(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.lineSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),g.paintSEInner(a,
-c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),a.close(),a.fillAndStroke()):!u&&m&&C&&B?"frame"!=n?(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),"double"==n&&(g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),g.paintSEInner(a,c,e,b,d,f,z,
-l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m)),a.stroke()):(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.lineNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),a.close(),a.fillAndStroke()):
-!u||m||C||B?u&&!m&&!C&&B?"frame"!=n?(a.begin(),g.moveSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),"double"==n&&(g.moveNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B)),a.stroke()):(a.begin(),g.moveSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.lineNEInner(a,c,e,b,d,f,p,l,v,
-m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),a.close(),a.fillAndStroke()):u&&!m&&C&&!B?"frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),"double"==n&&(g.moveNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u)),a.stroke(),a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C)),
-a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.lineNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),a.close(),a.fillAndStroke(),a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.lineSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),a.close(),a.fillAndStroke()):u&&!m&&C&&B?"frame"!=n?(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,
-b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),"double"==n&&(g.moveNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C)),a.stroke()):(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,
-e,b,d,f,p,l,m),g.lineNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),a.close(),a.fillAndStroke()):u&&m&&!C&&!B?"frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),"double"==n&&(g.moveSEInner(a,c,e,b,d,f,z,l,v,C),g.paintRightInner(a,c,e,b,d,
-f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u)),a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.lineSEInner(a,c,e,b,d,f,z,l,v,C),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),a.close(),a.fillAndStroke()):u&&m&&!C&&B?"frame"!=n?(a.begin(),g.moveSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,
-c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),"double"==n&&(g.moveSEInner(a,c,e,b,d,f,z,l,v,C),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B)),a.stroke()):(a.begin(),g.moveSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,
-e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.lineSEInner(a,c,e,b,d,f,z,l,v,C),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),a.close(),a.fillAndStroke()):u&&m&&C&&!B?"frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,
-b,d,f,L,l,B),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u)),a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.lineSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,
-c,e,b,d,f,z,l,v,m,C),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),a.close(),a.fillAndStroke()):u&&m&&C&&B&&("frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),
-a.close(),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),a.close()),a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,
-p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),a.close(),g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,C),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,
-C,B),a.close(),a.fillAndStroke())):"frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),"double"==n&&(g.moveNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u)),a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.lineNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),a.close(),a.fillAndStroke()):"frame"!=n?(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),"double"==n&&(g.moveSEInner(a,c,
-e,b,d,f,z,l,v,C),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m)),a.stroke()):(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,C),g.lineSEInner(a,c,e,b,d,f,z,l,v,C),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),a.close(),a.fillAndStroke()):"frame"!=n?(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C)),a.stroke()):(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,
-l,B),g.lineSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,C),a.close(),a.fillAndStroke()):"frame"!=n?(a.begin(),g.moveSW(a,c,e,b,d,f,x,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),"double"==n&&(g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B)),a.stroke()):(a.begin(),g.moveSW(a,c,e,b,d,f,x,l,C),g.paintLeft(a,c,e,b,d,f,x,l,u),g.lineNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,C,B),a.close(),a.fillAndStroke());a.begin();g.paintFolds(a,c,e,
-b,d,f,x,p,z,L,l,u,m,C,B);a.stroke()};Z.prototype.moveNW=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.moveTo(0,0):a.moveTo(0,l)};Z.prototype.moveNE=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.moveTo(b,0):a.moveTo(b-l,0)};Z.prototype.moveSE=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.moveTo(b,d):a.moveTo(b,d-l)};Z.prototype.moveSW=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.moveTo(0,d):
+"strokeWidth","1"),C=g&&g.fillColor2?g.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),oa=g&&g.gradientColor2?g.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),N=g&&g.gradientDirection2?g.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),sa=g&&g.opacity?g.opacity:mxUtils.getValue(this.style,"opacity","100"),W=Math.max(0,Math.min(50,l));g=Z.prototype;a.setDashed(y);q&&""!=q&&a.setDashPattern(q);a.setStrokeWidth(A);l=Math.min(.5*d,.5*b,l);k||
+(l=W*Math.min(b,d)/100);l=Math.min(l,.5*Math.min(b,d));k||(v=Math.min(t*Math.min(b,d)/100));v=Math.min(v,.5*Math.min(b,d)-l);(u||m||D||B)&&"frame"!=n&&(a.begin(),u?g.moveNW(a,c,e,b,d,f,x,l,B):a.moveTo(0,0),u&&g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),m&&g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),D&&g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),B&&g.paintSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(C),
+y=k=sa,"none"==C&&(k=0),"none"==oa&&(y=0),a.setGradient(C,oa,0,0,b,d,N,k,y),a.begin(),u?g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B):a.moveTo(v,0),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),B&&D&&g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),D&&m&&g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),m&&u&&g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),u&&B&&g.paintNWInner(a,c,e,b,d,f,x,l,v),a.fill(),"none"==J&&(a.begin(),g.paintFolds(a,
+c,e,b,d,f,x,p,z,L,l,u,m,D,B),a.stroke()));u||m||D||!B?u||m||!D||B?!u&&!m&&D&&B?"frame"!=n?(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),"double"==n&&(g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D)),a.stroke()):(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,
+D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.lineNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),a.close(),a.fillAndStroke()):u||!m||D||B?!u&&m&&!D&&B?"frame"!=n?(a.begin(),g.moveSW(a,c,e,b,d,f,x,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),"double"==n&&(g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B)),a.stroke(),a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),"double"==
+n&&(g.moveSEInner(a,c,e,b,d,f,z,l,v,D),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m)),a.stroke()):(a.begin(),g.moveSW(a,c,e,b,d,f,x,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.lineNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),a.close(),a.fillAndStroke(),a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.lineSEInner(a,c,e,b,d,f,z,l,v,D),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),a.close(),a.fillAndStroke()):!u&&m&&D&&!B?"frame"!=n?(a.begin(),g.moveNE(a,c,e,b,d,f,p,
+l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m)),a.stroke()):(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.lineSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),g.paintSEInner(a,
+c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),a.close(),a.fillAndStroke()):!u&&m&&D&&B?"frame"!=n?(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),"double"==n&&(g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),g.paintSEInner(a,c,e,b,d,f,z,
+l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m)),a.stroke()):(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.lineNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),a.close(),a.fillAndStroke()):
+!u||m||D||B?u&&!m&&!D&&B?"frame"!=n?(a.begin(),g.moveSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),"double"==n&&(g.moveNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B)),a.stroke()):(a.begin(),g.moveSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.lineNEInner(a,c,e,b,d,f,p,l,v,
+m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),a.close(),a.fillAndStroke()):u&&!m&&D&&!B?"frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),"double"==n&&(g.moveNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u)),a.stroke(),a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D)),
+a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.lineNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),a.close(),a.fillAndStroke(),a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.lineSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),a.close(),a.fillAndStroke()):u&&!m&&D&&B?"frame"!=n?(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,
+b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),"double"==n&&(g.moveNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D)),a.stroke()):(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,
+e,b,d,f,p,l,m),g.lineNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),a.close(),a.fillAndStroke()):u&&m&&!D&&!B?"frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),"double"==n&&(g.moveSEInner(a,c,e,b,d,f,z,l,v,D),g.paintRightInner(a,c,e,b,d,
+f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u)),a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.lineSEInner(a,c,e,b,d,f,z,l,v,D),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),a.close(),a.fillAndStroke()):u&&m&&!D&&B?"frame"!=n?(a.begin(),g.moveSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,
+c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),"double"==n&&(g.moveSEInner(a,c,e,b,d,f,z,l,v,D),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B)),a.stroke()):(a.begin(),g.moveSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,
+e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.lineSEInner(a,c,e,b,d,f,z,l,v,D),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),a.close(),a.fillAndStroke()):u&&m&&D&&!B?"frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,
+b,d,f,L,l,B),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u)),a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.lineSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,
+c,e,b,d,f,z,l,v,m,D),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),a.close(),a.fillAndStroke()):u&&m&&D&&B&&("frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),
+a.close(),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),a.close()),a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.paintNE(a,c,e,b,d,f,
+p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.paintSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),g.paintSW(a,c,e,b,d,f,L,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),a.close(),g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintSWInner(a,c,e,b,d,f,L,l,v,D),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),g.paintSEInner(a,c,e,b,d,f,z,l,v),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),g.paintNEInner(a,c,e,b,d,f,p,l,v),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),g.paintNWInner(a,c,e,b,d,f,x,l,v),g.paintLeftInner(a,c,e,b,d,f,L,l,v,
+D,B),a.close(),a.fillAndStroke())):"frame"!=n?(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),"double"==n&&(g.moveNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u)),a.stroke()):(a.begin(),g.moveNW(a,c,e,b,d,f,x,l,B),g.paintTop(a,c,e,b,d,f,p,l,m),g.lineNEInner(a,c,e,b,d,f,p,l,v,m),g.paintTopInner(a,c,e,b,d,f,x,l,v,B,u),a.close(),a.fillAndStroke()):"frame"!=n?(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),"double"==n&&(g.moveSEInner(a,c,
+e,b,d,f,z,l,v,D),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m)),a.stroke()):(a.begin(),g.moveNE(a,c,e,b,d,f,p,l,u),g.paintRight(a,c,e,b,d,f,z,l,D),g.lineSEInner(a,c,e,b,d,f,z,l,v,D),g.paintRightInner(a,c,e,b,d,f,p,l,v,u,m),a.close(),a.fillAndStroke()):"frame"!=n?(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,l,B),"double"==n&&(g.moveSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D)),a.stroke()):(a.begin(),g.moveSE(a,c,e,b,d,f,z,l,m),g.paintBottom(a,c,e,b,d,f,L,
+l,B),g.lineSWInner(a,c,e,b,d,f,L,l,v,B),g.paintBottomInner(a,c,e,b,d,f,z,l,v,m,D),a.close(),a.fillAndStroke()):"frame"!=n?(a.begin(),g.moveSW(a,c,e,b,d,f,x,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),"double"==n&&(g.moveNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B)),a.stroke()):(a.begin(),g.moveSW(a,c,e,b,d,f,x,l,D),g.paintLeft(a,c,e,b,d,f,x,l,u),g.lineNWInner(a,c,e,b,d,f,x,l,v,u,B),g.paintLeftInner(a,c,e,b,d,f,L,l,v,D,B),a.close(),a.fillAndStroke());a.begin();g.paintFolds(a,c,e,
+b,d,f,x,p,z,L,l,u,m,D,B);a.stroke()};Z.prototype.moveNW=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.moveTo(0,0):a.moveTo(0,l)};Z.prototype.moveNE=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.moveTo(b,0):a.moveTo(b-l,0)};Z.prototype.moveSE=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.moveTo(b,d):a.moveTo(b,d-l)};Z.prototype.moveSW=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.moveTo(0,d):
a.moveTo(l,d)};Z.prototype.paintNW=function(a,c,e,b,d,g,f,l,k){if(k)if("rounded"==f||"default"==f&&"rounded"==g||"invRound"==f||"default"==f&&"invRound"==g){c=0;if("rounded"==f||"default"==f&&"rounded"==g)c=1;a.arcTo(l,l,0,0,c,l,0)}else("snip"==f||"default"==f&&"snip"==g||"fold"==f||"default"==f&&"fold"==g)&&a.lineTo(l,0);else a.lineTo(0,0)};Z.prototype.paintTop=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.lineTo(b,0):a.lineTo(b-l,0)};Z.prototype.paintNE=function(a,c,e,
b,d,g,f,l,k){if(k)if("rounded"==f||"default"==f&&"rounded"==g||"invRound"==f||"default"==f&&"invRound"==g){c=0;if("rounded"==f||"default"==f&&"rounded"==g)c=1;a.arcTo(l,l,0,0,c,b,l)}else("snip"==f||"default"==f&&"snip"==g||"fold"==f||"default"==f&&"fold"==g)&&a.lineTo(b,l);else a.lineTo(b,0)};Z.prototype.paintRight=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.lineTo(b,d):a.lineTo(b,d-l)};Z.prototype.paintLeft=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==
g||!k?a.lineTo(0,0):a.lineTo(0,l)};Z.prototype.paintSE=function(a,c,e,b,d,g,f,l,k){if(k)if("rounded"==f||"default"==f&&"rounded"==g||"invRound"==f||"default"==f&&"invRound"==g){c=0;if("rounded"==f||"default"==f&&"rounded"==g)c=1;a.arcTo(l,l,0,0,c,b-l,d)}else("snip"==f||"default"==f&&"snip"==g||"fold"==f||"default"==f&&"fold"==g)&&a.lineTo(b-l,d);else a.lineTo(b,d)};Z.prototype.paintBottom=function(a,c,e,b,d,g,f,l,k){"square"==f||"default"==f&&"square"==g||!k?a.lineTo(0,d):a.lineTo(l,d)};Z.prototype.paintSW=
@@ -2814,8 +2814,8 @@ f&&"rounded"==g||"snip"==f||"default"==f&&"snip"==g?a.lineTo(k,d-l-.5*k):("invRo
k):a.moveTo(b-k,d)};Z.prototype.lineSEInner=function(a,c,e,b,d,g,f,l,k,v){v?"square"==f||"default"==f&&"square"==g?a.lineTo(b-k,d-k):"rounded"==f||"default"==f&&"rounded"==g||"snip"==f||"default"==f&&"snip"==g?a.lineTo(b-k,d-l-.5*k):("invRound"==f||"default"==f&&"invRound"==g||"fold"==f||"default"==f&&"fold"==g)&&a.lineTo(b-k,d-l-k):a.lineTo(b-k,d)};Z.prototype.moveNEInner=function(a,c,e,b,d,g,f,l,k,v){v?"square"==f||"default"==f&&"square"==g||v?a.moveTo(b-k,k):"rounded"==f||"default"==f&&"rounded"==
g||"snip"==f||"default"==f&&"snip"==g?a.moveTo(b-k,l+.5*k):("invRound"==f||"default"==f&&"invRound"==g||"fold"==f||"default"==f&&"fold"==g)&&a.moveTo(b-k,l+k):a.moveTo(b,k)};Z.prototype.lineNEInner=function(a,c,e,b,d,g,f,l,k,v){v?"square"==f||"default"==f&&"square"==g||v?a.lineTo(b-k,k):"rounded"==f||"default"==f&&"rounded"==g||"snip"==f||"default"==f&&"snip"==g?a.lineTo(b-k,l+.5*k):("invRound"==f||"default"==f&&"invRound"==g||"fold"==f||"default"==f&&"fold"==g)&&a.lineTo(b-k,l+k):a.lineTo(b,k)};
Z.prototype.moveNWInner=function(a,c,e,b,d,g,f,l,k,v,n){v||n?!v&&n?a.moveTo(k,0):v&&!n?a.moveTo(0,k):"square"==f||"default"==f&&"square"==g?a.moveTo(k,k):"rounded"==f||"default"==f&&"rounded"==g||"snip"==f||"default"==f&&"snip"==g?a.moveTo(k,l+.5*k):("invRound"==f||"default"==f&&"invRound"==g||"fold"==f||"default"==f&&"fold"==g)&&a.moveTo(k,l+k):a.moveTo(0,0)};Z.prototype.lineNWInner=function(a,c,e,b,d,g,f,l,k,v,n){v||n?!v&&n?a.lineTo(k,0):v&&!n?a.lineTo(0,k):"square"==f||"default"==f&&"square"==
-g?a.lineTo(k,k):"rounded"==f||"default"==f&&"rounded"==g||"snip"==f||"default"==f&&"snip"==g?a.lineTo(k,l+.5*k):("invRound"==f||"default"==f&&"invRound"==g||"fold"==f||"default"==f&&"fold"==g)&&a.lineTo(k,l+k):a.lineTo(0,0)};Z.prototype.paintFolds=function(a,c,e,b,d,g,f,l,k,v,n,q,u,m,C){if("fold"==g||"fold"==f||"fold"==l||"fold"==k||"fold"==v)("fold"==f||"default"==f&&"fold"==g)&&q&&C&&(a.moveTo(0,n),a.lineTo(n,n),a.lineTo(n,0)),("fold"==l||"default"==l&&"fold"==g)&&q&&u&&(a.moveTo(b-n,0),a.lineTo(b-
-n,n),a.lineTo(b,n)),("fold"==k||"default"==k&&"fold"==g)&&m&&u&&(a.moveTo(b-n,d),a.lineTo(b-n,d-n),a.lineTo(b,d-n)),("fold"==v||"default"==v&&"fold"==g)&&m&&C&&(a.moveTo(0,d-n),a.lineTo(n,d-n),a.lineTo(n,d))};mxCellRenderer.registerShape(Z.prototype.cst.RECT2,Z);Z.prototype.constraints=null;mxUtils.extend(Ha,mxConnector);Ha.prototype.origPaintEdgeShape=Ha.prototype.paintEdgeShape;Ha.prototype.paintEdgeShape=function(a,c,e){for(var b=[],d=0;d<c.length;d++)b.push(mxUtils.clone(c[d]));var d=a.state.dashed,
+g?a.lineTo(k,k):"rounded"==f||"default"==f&&"rounded"==g||"snip"==f||"default"==f&&"snip"==g?a.lineTo(k,l+.5*k):("invRound"==f||"default"==f&&"invRound"==g||"fold"==f||"default"==f&&"fold"==g)&&a.lineTo(k,l+k):a.lineTo(0,0)};Z.prototype.paintFolds=function(a,c,e,b,d,g,f,l,k,v,n,q,u,m,D){if("fold"==g||"fold"==f||"fold"==l||"fold"==k||"fold"==v)("fold"==f||"default"==f&&"fold"==g)&&q&&D&&(a.moveTo(0,n),a.lineTo(n,n),a.lineTo(n,0)),("fold"==l||"default"==l&&"fold"==g)&&q&&u&&(a.moveTo(b-n,0),a.lineTo(b-
+n,n),a.lineTo(b,n)),("fold"==k||"default"==k&&"fold"==g)&&m&&u&&(a.moveTo(b-n,d),a.lineTo(b-n,d-n),a.lineTo(b,d-n)),("fold"==v||"default"==v&&"fold"==g)&&m&&D&&(a.moveTo(0,d-n),a.lineTo(n,d-n),a.lineTo(n,d))};mxCellRenderer.registerShape(Z.prototype.cst.RECT2,Z);Z.prototype.constraints=null;mxUtils.extend(Ha,mxConnector);Ha.prototype.origPaintEdgeShape=Ha.prototype.paintEdgeShape;Ha.prototype.paintEdgeShape=function(a,c,e){for(var b=[],d=0;d<c.length;d++)b.push(mxUtils.clone(c[d]));var d=a.state.dashed,
g=a.state.fixDash;Ha.prototype.origPaintEdgeShape.apply(this,[a,b,e]);3<=a.state.strokeWidth&&(b=mxUtils.getValue(this.style,"fillColor",null),null!=b&&(a.setStrokeColor(b),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(d,g),Ha.prototype.origPaintEdgeShape.apply(this,[a,c,e])))};mxCellRenderer.registerShape("filledEdge",Ha);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c=this.format.getSelectionState(),
e=a.apply(this,arguments);"umlFrame"==c.style.shape&&e.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return e}}();mxMarker.addMarker("dash",function(a,c,e,b,d,g,f,l,k,v){var n=d*(f+k+1),q=g*(f+k+1);return function(){a.begin();a.moveTo(b.x-n/2-q/2,b.y-q/2+n/2);a.lineTo(b.x+q/2-3*n/2,b.y-3*q/2-n/2);a.stroke()}});mxMarker.addMarker("box",function(a,c,e,b,d,g,f,l,k,v){var n=d*(f+k+1),q=g*(f+k+1),u=b.x+n/2,y=b.y+q/2;b.x-=n;b.y-=q;return function(){a.begin();
a.moveTo(u-n/2-q/2,y-q/2+n/2);a.lineTo(u-n/2+q/2,y-q/2-n/2);a.lineTo(u+q/2-3*n/2,y-3*q/2-n/2);a.lineTo(u-q/2-3*n/2,y-3*q/2+n/2);a.close();v?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("cross",function(a,c,e,b,d,g,f,l,k,v){var n=d*(f+k+1),q=g*(f+k+1);return function(){a.begin();a.moveTo(b.x-n/2-q/2,b.y-q/2+n/2);a.lineTo(b.x+q/2-3*n/2,b.y-3*q/2-n/2);a.moveTo(b.x-n/2+q/2,b.y-q/2-n/2);a.lineTo(b.x-q/2-3*n/2,b.y-3*q/2+n/2);a.stroke()}});mxMarker.addMarker("circle",Ua);mxMarker.addMarker("circlePlus",
@@ -2848,9 +2848,9 @@ Math.round(Math.max(aa.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.s
Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-c.y)/e*2,Math.max(0,a.getCenterX()-c.x)/e*2)))})]},note:function(a){return[fa(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",p.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},note2:function(a){return[fa(a,["size"],function(a){var e=
Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",c.prototype.size)))));return new mxPoint(a.x+a.width-e,a.y+e)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[fa(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",da.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*c/4)},function(a,
c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(c.y-a.y)/3)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ea(a));return c},dataStorage:function(a){return[fa(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),e=parseFloat(mxUtils.getValue(this.state.style,"size",c?Y.prototype.fixedSize:Y.prototype.size));return new mxPoint(a.x+a.width-e*(c?1:a.width),a.getCenterY())},function(a,c){var e="0"!=mxUtils.getValue(this.state.style,
-"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-c.x)):Math.max(0,Math.min(1,(a.x+a.width-c.x)/a.width));this.state.style.size=e},!1)]},callout:function(a){var c=[fa(a,["size","position"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),e=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position)));mxUtils.getValue(this.state.style,"base",D.prototype.base);return new mxPoint(a.x+e*a.width,a.y+a.height-
-c)},function(a,c){mxUtils.getValue(this.state.style,"base",D.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),fa(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",D.prototype.position2)));return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,
-(c.x-a.x)/a.width)))/100},!1),fa(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),e=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position))),b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",D.prototype.base)));return new mxPoint(a.x+Math.min(a.width,e*a.width+b),a.y+a.height-c)},function(a,c){var e=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position)));
+"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-c.x)):Math.max(0,Math.min(1,(a.x+a.width-c.x)/a.width));this.state.style.size=e},!1)]},callout:function(a){var c=[fa(a,["size","position"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",C.prototype.size))),e=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",C.prototype.position)));mxUtils.getValue(this.state.style,"base",C.prototype.base);return new mxPoint(a.x+e*a.width,a.y+a.height-
+c)},function(a,c){mxUtils.getValue(this.state.style,"base",C.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),fa(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",C.prototype.position2)));return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,
+(c.x-a.x)/a.width)))/100},!1),fa(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",C.prototype.size))),e=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",C.prototype.position))),b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",C.prototype.base)));return new mxPoint(a.x+Math.min(a.width,e*a.width+b),a.y+a.height-c)},function(a,c){var e=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",C.prototype.position)));
this.state.style.base=Math.round(Math.max(0,Math.min(a.width,c.x-a.x-e*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ea(a));return c},internalStorage:function(a){var c=[fa(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ia.prototype.dx))),e=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ia.prototype.dy)));return new mxPoint(a.x+c,a.y+e)},function(a,c){this.state.style.dx=Math.round(Math.max(0,
Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ea(a));return c},module:function(a){return[fa(a,["jettyWidth","jettyHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",V.prototype.jettyWidth))),e=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"jettyHeight",V.prototype.jettyHeight)));return new mxPoint(a.x+c/2,a.y+
2*e)},function(a,c){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y))/2)})]},corner:function(a){return[fa(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",pa.prototype.dx))),e=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",pa.prototype.dy)));return new mxPoint(a.x+c,a.y+e)},function(a,c){this.state.style.dx=Math.round(Math.max(0,
@@ -2868,12 +2868,12 @@ e.getCenterY()));var k=Na.x,v=Na.y,n=Oa.x,q=Oa.y,u="horizontal"==mxUtils.getValu
mxEdgeStyle.IsometricConnector);var db=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,c){if(c==mxEdgeStyle.IsometricConnector){var e=new mxElbowEdgeHandler(a);e.snapToTerminals=!1;return e}return db.apply(this,arguments)};k.prototype.constraints=[];f.prototype.getConstraints=function(a,c,e){a=[];var b=Math.tan(mxUtils.toRadians(30)),d=(.5-b)/2,b=Math.min(c,e/(.5+b));c=(c-b)/2;e=(e-b)/2;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e+.25*b));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,c+.5*b,e+b*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+b,e+.25*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+b,e+.75*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*b,e+(1-d)*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e+.75*b));return a};e.prototype.getConstraints=function(a,c,e){a=[];var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,b=Math.min(c*
Math.tan(b),.5*e);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e-b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
-0,b));return a};D.prototype.getConstraints=function(a,c,e){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var b=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var d=c*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,b));return a};C.prototype.getConstraints=function(a,c,e){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var b=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var d=c*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,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(e-b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,
e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(e-b)));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),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(1,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(0,1),!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(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];wa.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=
-mxRectangleShape.prototype.constraints;P.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;p.prototype.getConstraints=function(a,c,e){a=[];var b=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,
+mxRectangleShape.prototype.constraints;O.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;p.prototype.getConstraints=function(a,c,e){a=[];var b=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,
null,c-b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(e+b)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,
0),!1));return a};t.prototype.getConstraints=function(a,c,e){a=[];var b=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,0,.5*(e+b)));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};b.prototype.getConstraints=function(a,c,e){a=[];var b=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,
@@ -2890,7 +2890,7 @@ mxEllipse.prototype.constraints;da.prototype.constraints=mxRectangleShape.protot
"jettyHeight",V.prototype.jettyHeight));var b=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,c),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(1,0),!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(0,1),!1,null,c),
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(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(e-.5*a,1.5*a)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(e-.5*a,3.5*a))];e>5*a&&b.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,c));e>8*a&&b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,c));e>15*
a&&b.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,c));return b};ua.prototype.constraints=mxRectangleShape.prototype.constraints;ra.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,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];C.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,.1),!1),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,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];D.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,.1),!1),new mxConnectionConstraint(new mxPoint(0,
1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];ca.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)];l.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,
@@ -2999,7 +2999,7 @@ a()}}),!0)});this.isModified()&&null==this.backupPatch?this.ui.confirm(mxResourc
DrawioFile.prototype.ignorePatches=function(a){for(var b=!0,d=0;d<a.length&&b;d++)b=b&&0==Object.keys(a[d]).length;return b};
DrawioFile.prototype.patch=function(a,b,d){var k=this.ui.editor.undoManager,f=k.history.slice(),m=k.indexOfNextAdd,p=this.ui.editor.graph;p.container.style.visibility="hidden";var c=this.changeListenerEnabled;this.changeListenerEnabled=d;var e=p.foldingEnabled,g=p.mathEnabled,n=p.cellRenderer.redraw;p.cellRenderer.redraw=function(a){a.view.graph.isEditing(a.cell)&&(a.view.graph.scrollCellToVisible(a.cell),a.view.graph.cellEditor.resize());n.apply(this,arguments)};p.model.beginUpdate();try{for(var l=
0;l<a.length;l++)this.ui.pages=this.ui.patchPages(this.ui.pages,a[l],!0,b,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{p.container.style.visibility="";p.model.endUpdate();p.cellRenderer.redraw=n;this.changeListenerEnabled=c;d||(k.history=f,k.indexOfNextAdd=m,k.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)g!=
-p.mathEnabled?(this.ui.editor.updateGraphComponents(),p.refresh()):(e!=p.foldingEnabled?p.view.revalidate():p.view.validate(),p.sizeDidChange());this.ui.updateTabContainer()}};
+p.mathEnabled?(this.ui.editor.updateGraphComponents(),p.refresh()):(e!=p.foldingEnabled?p.view.revalidate():p.view.validate(),p.sizeDidChange());this.ui.updateTabContainer();this.ui.editor.fireEvent(new mxEventObject("pagesPatched","patches",a))}};
DrawioFile.prototype.save=function(a,b,d,k,f,m){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!=b&&b();else if(null!=d)d({message:mxResources.get("readOnly")});else throw Error(mxResources.get("readOnly"));}catch(p){if(null!=d)d(p);else throw p;}};
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,b,d){};DrawioFile.prototype.saveFile=function(a,b,d,k){};
DrawioFile.prototype.getPublicUrl=function(a){a(null)};DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.getShadowModified=function(){return this.shadowModified};DrawioFile.prototype.setShadowModified=function(a){this.shadowModified=a};DrawioFile.prototype.setModified=function(a){this.shadowModified=this.modified=a};DrawioFile.prototype.isAutosaveOptional=function(){return!1};
@@ -3160,8 +3160,8 @@ mxUtils.bind(this,function(a){this.cachedGoogleFonts[c]=a;b+=a;e--;d()}),mxUtils
Editor.prototype.addFontCss=function(a,c){c=null!=c?c:this.absoluteCssFonts(this.fontCss);if(null!=c){var b=a.getElementsByTagName("defs"),e=a.ownerDocument;0==b.length?(b=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"defs"):e.createElement("defs"),null!=a.firstChild?a.insertBefore(b,a.firstChild):a.appendChild(b)):b=b[0];e=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"style"):e.createElement("style");e.setAttribute("type","text/css");mxUtils.setTextContent(e,c);b.appendChild(e)}};
Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(a,c,b){var e=mxClient.IS_FF?8192:16384;return Math.min(b,Math.min(e/a,e/c))};Editor.prototype.exportToCanvas=function(a,c,b,e,d,g,f,k,l,n,q,m,u,t,x,p,z,A){try{g=null!=g?g:!0;f=null!=f?f:!0;m=null!=m?m:this.graph;u=null!=u?u:0;var v=l?null:m.background;v==mxConstants.NONE&&(v=null);null==v&&(v=e);null==v&&0==l&&(v=p?this.graph.defaultPageBackgroundColor:"#ffffff");
this.convertImages(m.getSvg(null,null,u,t,null,f,null,null,null,n,null,p,z,A),mxUtils.bind(this,function(b){try{var e=new Image;e.onload=mxUtils.bind(this,function(){try{var f=function(){mxClient.IS_SF?window.setTimeout(function(){t.drawImage(e,0,0);a(l,b)},0):(t.drawImage(e,0,0),a(l,b))},l=document.createElement("canvas"),n=parseInt(b.getAttribute("width")),q=parseInt(b.getAttribute("height"));k=null!=k?k:1;null!=c&&(k=g?Math.min(1,Math.min(3*c/(4*q),c/n)):c/n);k=this.getMaxCanvasScale(n,q,k);n=
-Math.ceil(k*n);q=Math.ceil(k*q);l.setAttribute("width",n);l.setAttribute("height",q);var t=l.getContext("2d");null!=v&&(t.beginPath(),t.rect(0,0,n,q),t.fillStyle=v,t.fill());1!=k&&t.scale(k,k);if(x){var p=m.view,z=p.scale;p.scale=1;var C=btoa(unescape(encodeURIComponent(p.createSvgGrid(p.gridColor))));p.scale=z;var C="data:image/svg+xml;base64,"+C,B=m.gridSize*p.gridSteps*k,A=m.getGraphBounds(),D=p.translate.x*z,N=p.translate.y*z,L=D+(A.x-D)/z-u,E=N+(A.y-N)/z-u,J=new Image;J.onload=function(){try{for(var a=
--Math.round(B-mxUtils.mod((D-L)*k,B)),c=-Math.round(B-mxUtils.mod((N-E)*k,B));a<n;a+=B)for(var b=c;b<q;b+=B)t.drawImage(J,a/k,b/k);f()}catch(xa){null!=d&&d(xa)}};J.onerror=function(a){null!=d&&d(a)};J.src=C}else f()}catch(wa){null!=d&&d(wa)}});e.onerror=function(a){null!=d&&d(a)};n&&this.graph.addSvgShadow(b);this.graph.mathEnabled&&this.addMathCss(b);var f=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(b,this.resolvedFontCss),e.src=Editor.createSvgDataUri(mxUtils.getXml(b))}catch(R){null!=
+Math.ceil(k*n);q=Math.ceil(k*q);l.setAttribute("width",n);l.setAttribute("height",q);var t=l.getContext("2d");null!=v&&(t.beginPath(),t.rect(0,0,n,q),t.fillStyle=v,t.fill());1!=k&&t.scale(k,k);if(x){var p=m.view,z=p.scale;p.scale=1;var D=btoa(unescape(encodeURIComponent(p.createSvgGrid(p.gridColor))));p.scale=z;var D="data:image/svg+xml;base64,"+D,B=m.gridSize*p.gridSteps*k,A=m.getGraphBounds(),C=p.translate.x*z,N=p.translate.y*z,L=C+(A.x-C)/z-u,E=N+(A.y-N)/z-u,J=new Image;J.onload=function(){try{for(var a=
+-Math.round(B-mxUtils.mod((C-L)*k,B)),c=-Math.round(B-mxUtils.mod((N-E)*k,B));a<n;a+=B)for(var b=c;b<q;b+=B)t.drawImage(J,a/k,b/k);f()}catch(xa){null!=d&&d(xa)}};J.onerror=function(a){null!=d&&d(a)};J.src=D}else f()}catch(wa){null!=d&&d(wa)}});e.onerror=function(a){null!=d&&d(a)};n&&this.graph.addSvgShadow(b);this.graph.mathEnabled&&this.addMathCss(b);var f=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(b,this.resolvedFontCss),e.src=Editor.createSvgDataUri(mxUtils.getXml(b))}catch(R){null!=
d&&d(R)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.addFontCss(b,a),this.loadFonts(f)}catch(ka){null!=d&&d(ka)}}))}catch(R){null!=d&&d(R)}}),b,q)}catch(da){null!=d&&d(da)}};Editor.crcTable=[];for(var f=0;256>f;f++)for(var m=f,p=0;8>p;p++)m=1==(m&1)?3988292384^m>>>1:m>>>1,Editor.crcTable[f]=m;Editor.updateCRC=function(a,c,b,e){for(var d=0;d<e;d++)a=Editor.crcTable[(a^c.charCodeAt(b+d))&255]^a>>>8;return a};Editor.crc32=function(a){for(var c=-1,b=0;b<a.length;b++)c=c>>>8^Editor.crcTable[(c^
a.charCodeAt(b))&255];return(c^-1)>>>0};Editor.writeGraphModelToPng=function(a,c,b,e,d){function g(a,c){var b=l;l+=c;return a.substring(b,l)}function f(a){a=g(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 l=0;if(g(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(g(a,
4),"IHDR"!=g(a,4))null!=d&&d();else{g(a,17);d=a.substring(0,l);do{var n=f(a);if("IDAT"==g(a,4)){d=a.substring(0,l-8);"pHYs"==c&&"dpi"==b?(b=Math.round(e/.0254),b=k(b)+k(b)+String.fromCharCode(1)):b=b+String.fromCharCode(0)+("zTXt"==c?String.fromCharCode(0):"")+e;e=4294967295;e=Editor.updateCRC(e,c,0,4);e=Editor.updateCRC(e,b,0,b.length);d+=k(b.length)+c+b+k(e^4294967295);d+=a.substring(l-8,a.length);break}d+=a.substring(l-8,l-4+n);g(a,n);g(a,4)}while(n);return"data:image/png;base64,"+(window.btoa?
@@ -3210,8 +3210,8 @@ b,mxEvent.addListener(p,"click",mxUtils.bind(q,function(){function g(){var a=f.v
t?"1":"any",null!=n.min&&(f.min=parseFloat(n.min)),null!=n.max&&(f.max=parseFloat(n.max)));a.appendChild(f);mxEvent.addListener(f,"keypress",function(a){13==a.keyCode&&g()});f.focus();mxEvent.addListener(f,"blur",function(){g()})})));n.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(q,function(a){e(c,"",n,n.index);mxEvent.consume(a)})),u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",p.appendChild(u));x.appendChild(p);return x}var q=this,m=this.editorUi.editor.graph,
u=[];a.style.position="relative";a.style.padding="0";var v=document.createElement("table");v.className="geProperties";v.style.whiteSpace="nowrap";v.style.width="100%";var t=document.createElement("tr");t.className="gePropHeader";var x=document.createElement("th");x.className="gePropHeaderCell";var p=document.createElement("img");p.src=Sidebar.prototype.expandedImage;x.appendChild(p);mxUtils.write(x,mxResources.get("property"));t.style.cursor="pointer";var z=function(){var c=v.querySelectorAll(".gePropNonHeaderRow"),
b;if(q.editorUi.propertiesCollapsed){p.src=Sidebar.prototype.collapsedImage;b="none";for(var e=a.childNodes.length-1;0<=e;e--)try{var d=a.childNodes[e],g=d.nodeName.toUpperCase();"INPUT"!=g&&"SELECT"!=g||a.removeChild(d)}catch(ya){}}else p.src=Sidebar.prototype.expandedImage,b="";for(e=0;e<c.length;e++)c[e].style.display=b};mxEvent.addListener(t,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;z()});t.appendChild(x);x=document.createElement("th");x.className="gePropHeaderCell";
-x.innerHTML=mxResources.get("value");t.appendChild(x);v.appendChild(t);var C=!1,B=!1,t=null;1==b.vertices.length&&0==b.edges.length?t=b.vertices[0].id:0==b.vertices.length&&1==b.edges.length&&(t=b.edges[0].id);null!=t&&v.appendChild(n("id",mxUtils.htmlEntities(t),{dispName:"ID",type:"readOnly"},!0,!1));for(var A in c)if(t=c[A],"function"!=typeof t.isVisible||t.isVisible(b,this)){var D=null!=b.style[A]?mxUtils.htmlEntities(b.style[A]+""):null!=t.getDefaultValue?t.getDefaultValue(b,this):t.defVal;if("separator"==
-t.type)B=!B;else{if("staticArr"==t.type)t.size=parseInt(b.style[t.sizeProperty]||c[t.sizeProperty].defVal)||0;else if(null!=t.dependentProps){for(var N=t.dependentProps,E=[],G=[],x=0;x<N.length;x++){var H=b.style[N[x]];G.push(c[N[x]].subDefVal);E.push(null!=H?H.split(","):[])}t.dependentPropsDefVal=G;t.dependentPropsVals=E}v.appendChild(n(A,D,t,C,B));C=!C}}for(x=0;x<u.length;x++)for(t=u[x],c=t.parentRow,b=0;b<t.values.length;b++)A=n(t.name,t.values[b],{type:t.type,parentRow:t.parentRow,isDeletable:t.isDeletable,
+x.innerHTML=mxResources.get("value");t.appendChild(x);v.appendChild(t);var D=!1,B=!1,t=null;1==b.vertices.length&&0==b.edges.length?t=b.vertices[0].id:0==b.vertices.length&&1==b.edges.length&&(t=b.edges[0].id);null!=t&&v.appendChild(n("id",mxUtils.htmlEntities(t),{dispName:"ID",type:"readOnly"},!0,!1));for(var A in c)if(t=c[A],"function"!=typeof t.isVisible||t.isVisible(b,this)){var C=null!=b.style[A]?mxUtils.htmlEntities(b.style[A]+""):null!=t.getDefaultValue?t.getDefaultValue(b,this):t.defVal;if("separator"==
+t.type)B=!B;else{if("staticArr"==t.type)t.size=parseInt(b.style[t.sizeProperty]||c[t.sizeProperty].defVal)||0;else if(null!=t.dependentProps){for(var N=t.dependentProps,E=[],G=[],x=0;x<N.length;x++){var H=b.style[N[x]];G.push(c[N[x]].subDefVal);E.push(null!=H?H.split(","):[])}t.dependentPropsDefVal=G;t.dependentPropsVals=E}v.appendChild(n(A,C,t,D,B));D=!D}}for(x=0;x<u.length;x++)for(t=u[x],c=t.parentRow,b=0;b<t.values.length;b++)A=n(t.name,t.values[b],{type:t.type,parentRow:t.parentRow,isDeletable:t.isDeletable,
index:b,defVal:t.defVal,countProperty:t.countProperty,size:t.size},0==b%2,t.flipBkg),c.parentNode.insertBefore(A,c.nextSibling),c=A;a.appendChild(v);z();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var b=this.editorUi,e=b.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 g="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(" "),f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.position="relative";f.style.textAlign="center";for(var k=[],l=0;l<this.defaultColorSchemes.length;l++){var n=document.createElement("div");n.style.display=
"inline-block";n.style.width="6px";n.style.height="6px";n.style.marginLeft="4px";n.style.marginRight="3px";n.style.borderRadius="3px";n.style.cursor="pointer";n.style.background="transparent";n.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a){mxEvent.addListener(n,"click",mxUtils.bind(this,function(){q(a)}))})(l);k.push(n);f.appendChild(n)}var q=mxUtils.bind(this,function(a){null!=this.format.currentScheme&&(k[this.format.currentScheme].style.background="transparent");this.format.currentScheme=
@@ -3240,64 +3240,65 @@ this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.getC
a&&b[e].getAttribute("data-font-src")!=c&&b[e].setAttribute("data-font-src",c)}};var E=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return E.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};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(B){null!=window.console&&console.log("Error in vars URL parameter: "+B)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var H=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var c=H.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 K=Graph.prototype.getSvg;Graph.prototype.getSvg=function(a,c,b,e,d,g,f,k,l,n,q,u,m,t){var v=null,x=null;u||null==this.themes||"darkTheme"!=this.defaultThemeName||(v=this.stylesheet,x=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":"#2a2a2a",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var p=
-K.apply(this,arguments),z=this.getCustomFonts();if(q&&0<z.length){var A=p.ownerDocument,D=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"style"):A.createElement("style");null!=A.setAttributeNS?D.setAttributeNS("type","text/css"):D.setAttribute("type","text/css");for(var N="",B="",C=0;C<z.length;C++){var E=z[C].name,G=z[C].url;Graph.isCssFontUrl(G)?N+="@import url("+G+");\n":B+='@font-face {\nfont-family: "'+E+'";\nsrc: url("'+G+'");\n}\n'}D.appendChild(A.createTextNode(N+B));p.getElementsByTagName("defs")[0].appendChild(D)}null!=
+K.apply(this,arguments),z=this.getCustomFonts();if(q&&0<z.length){var A=p.ownerDocument,C=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"style"):A.createElement("style");null!=A.setAttributeNS?C.setAttributeNS("type","text/css"):C.setAttribute("type","text/css");for(var N="",B="",D=0;D<z.length;D++){var E=z[D].name,G=z[D].url;Graph.isCssFontUrl(G)?N+="@import url("+G+");\n":B+='@font-face {\nfont-family: "'+E+'";\nsrc: url("'+G+'");\n}\n'}C.appendChild(A.createTextNode(N+B));p.getElementsByTagName("defs")[0].appendChild(C)}null!=
v&&(this.defaultPageBackgroundColor=x,this.stylesheet=v,this.refresh());return p};var F=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var a=F.apply(this,arguments);if(this.mathEnabled){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 I=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){I.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 D=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){D.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){"data:action/json,"==a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions&&this.executeCustomActions(a.actions))};Graph.prototype.executeCustomActions=
-function(a,c){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var b=!1,e=0,d=0,g=mxUtils.bind(this,function(){b||(b=!0,this.model.beginUpdate())}),f=mxUtils.bind(this,function(){b&&(b=!1,this.model.endUpdate())}),k=mxUtils.bind(this,function(){0<
-e&&e--;0==e&&l()}),l=mxUtils.bind(this,function(){if(d<a.length){var b=this.stoppingCustomActions,n=a[d++],q=[];if(null!=n.open)if(f(),this.isCustomLink(n.open)){if(!this.customLinkClicked(n.open))return}else this.openLink(n.open);null==n.wait||b||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;k()}),e++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=n.wait?parseInt(n.wait):1E3),f());null!=n.opacity&&
-null!=n.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(n.opacity,!0)),n.opacity.value);null!=n.fadeIn&&(e++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeIn,!0)),0,1,k,b?0:n.fadeIn.delay));null!=n.fadeOut&&(e++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeOut,!0)),1,0,k,b?0:n.fadeOut.delay));null!=n.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeIn,!0),!0)));null!=n.wipeOut&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeOut,
-!0),!1)));null!=n.toggle&&(g(),this.toggleCells(this.getCellsForAction(n.toggle,!0)));if(null!=n.show){g();var u=this.getCellsForAction(n.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(u),1);this.setCellsVisible(u,!0)}null!=n.hide&&(g(),u=this.getCellsForAction(n.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(u),0),this.setCellsVisible(u,!1));null!=n.toggleStyle&&null!=n.toggleStyle.key&&(g(),this.toggleCellStyles(n.toggleStyle.key,null!=n.toggleStyle.defaultValue?n.toggleStyle.defaultValue:
-"0",this.getCellsForAction(n.toggleStyle,!0)));null!=n.style&&null!=n.style.key&&(g(),this.setCellStyles(n.style.key,n.style.value,this.getCellsForAction(n.style,!0)));u=[];null!=n.select&&this.isEnabled()&&(u=this.getCellsForAction(n.select),this.setSelectionCells(u));null!=n.highlight&&(u=this.getCellsForAction(n.highlight),this.highlightCells(u,n.highlight.color,n.highlight.duration,n.highlight.opacity));null!=n.scroll&&(u=this.getCellsForAction(n.scroll));null!=n.viewbox&&this.fitWindow(n.viewbox,
-n.viewbox.border);0<u.length&&this.scrollCellToVisible(u[0]);0<q.length&&(e++,this.executeAnimations(q,k,b?1:n.steps,b?0:n.delay));0==e?l():f()}else this.stoppingCustomActions=this.executingCustomActions=!1,f(),null!=c&&c()});l()}};Graph.prototype.doUpdateCustomLinksForCell=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.sanitizeHtml(this.getLabel(c));
-for(var d=e.getElementsByTagName("a"),g=!1,f=0;f<d.length;f++)b=d[f].getAttribute("href"),null!=b&&"data:action/json,"==b.substring(0,17)&&(d[f].setAttribute("href",this.updateCustomLink(a,b)),g=!0);g&&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(J){}return c};Graph.prototype.updateCustomLinkActions=
-function(a,c){for(var b=0;b<c.length;b++){var e=c[b],d;for(d in e)this.updateCustomLinkAction(a,e[d],"cells"),this.updateCustomLinkAction(a,e[d],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(a,c,b){if(null!=c&&null!=c[b]){for(var e=[],d=0;d<c[b].length;d++)if("*"==c[b][d])e.push(c[b][d]);else{var g=a[c[b][d]];null!=g?""!=g&&e.push(g):e.push(c[b][d])}c[b]=e}};Graph.prototype.getCellsForAction=function(a,c){var b=this.getCellsById(a.cells).concat(this.getCellsForTags(a.tags,null,
-null,c));if(null!=a.excludeCells){for(var e=[],d=0;d<b.length;d++)0>a.excludeCells.indexOf(b[d].id)&&e.push(b[d]);b=e}return b};Graph.prototype.getCellsById=function(a){var c=[];if(null!=a)for(var b=0;b<a.length;b++)if("*"==a[b])var e=this.model.getRoot(),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 g=0,f={},k=0;k<a.length;k++)0<a[k].length&&(f[a[k].toLowerCase()]=!0,g++);for(k=0;k<c.length;k++)if(e&&this.model.getParent(c[k])==this.model.root||this.model.isVertex(c[k])||this.model.isEdge(c[k])){var l=null!=c[k].value&&"object"==typeof c[k].value?mxUtils.trim(c[k].value.getAttribute(b)||""):"",n=!1;if(0<l.length){if(l=l.toLowerCase().split(" "),l.length>=a.length){for(var q=n=0;q<l.length&&n<g;q++)null!=f[l[q]]&&n++;n=n==g}}else n=0==a.length;n&&d.push(c[k])}}return d};
-Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],!this.model.isVisible(a[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,c){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],c)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,c,b,e){for(var d=0;d<a.length;d++)this.highlightCell(a[d],c,b,e)};Graph.prototype.highlightCell=function(a,c,
-b,e){c=null!=c?c:mxConstants.DEFAULT_VALID_COLOR;b=null!=b?b:1E3;a=this.view.getState(a);if(null!=a){var d=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),g=new mxCellHighlight(this,c,d,!1);null!=e&&(g.opacity=e);g.highlight(a);window.setTimeout(function(){null!=g.shape&&(mxUtils.setPrefixedStyle(g.shape.node.style,"transition","all 1200ms ease-in-out"),g.shape.node.style.opacity=0);window.setTimeout(function(){g.destroy()},1200)},b)}};Graph.prototype.addSvgShadow=function(a,
-c,b){b=null!=b?b:!1;var e=a.ownerDocument,d=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"filter"):e.createElement("filter");d.setAttribute("id",this.shadowId);var g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):e.createElement("feGaussianBlur");g.setAttribute("in","SourceAlpha");g.setAttribute("stdDeviation",this.svgShadowBlur);g.setAttribute("result","blur");d.appendChild(g);g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feOffset"):
-e.createElement("feOffset");g.setAttribute("in","blur");g.setAttribute("dx",this.svgShadowSize);g.setAttribute("dy",this.svgShadowSize);g.setAttribute("result","offsetBlur");d.appendChild(g);g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feFlood"):e.createElement("feFlood");g.setAttribute("flood-color",this.svgShadowColor);g.setAttribute("flood-opacity",this.svgShadowOpacity);g.setAttribute("result","offsetColor");d.appendChild(g);g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,
-"feComposite"):e.createElement("feComposite");g.setAttribute("in","offsetColor");g.setAttribute("in2","offsetBlur");g.setAttribute("operator","in");g.setAttribute("result","offsetBlur");d.appendChild(g);g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feBlend"):e.createElement("feBlend");g.setAttribute("in","SourceGraphic");g.setAttribute("in2","offsetBlur");d.appendChild(g);g=a.getElementsByTagName("defs");0==g.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=g[0];e.appendChild(d);b||(c=null!=c?c:a.getElementsByTagName("g")[0],null!=c&&(c.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),c=a.getAttribute("viewBox"),null!=c&&0<c.length&&(c=c.split(" "),3<c.length&&(w=parseFloat(c[2])+6,h=parseFloat(c[3])+
-6,a.setAttribute("viewBox",c[0]+" "+c[1]+" "+w+" "+h))))));return d};Graph.prototype.setShadowVisible=function(a,c){mxClient.IS_SVG&&!mxClient.IS_SF&&(c=null!=c?c:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),c&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),c,
-b=0;do c=this.model.getChildAt(this.model.root,b);while(b++<a&&"1"==mxUtils.getValue(this.getCellStyle(c),"locked","0"));null!=c&&this.setDefaultParent(c)}};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+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];
-mxStencilRegistry.libraries.bpmn2=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.c4=[SHAPES_PATH+"/mxC4.js"];mxStencilRegistry.libraries.cisco19=[SHAPES_PATH+"/mxCisco19.js",STENCIL_PATH+"/cisco19.xml"];mxStencilRegistry.libraries.cisco_safe=[SHAPES_PATH+"/mxCiscoSafe.js",STENCIL_PATH+"/cisco_safe/architecture.xml",STENCIL_PATH+"/cisco_safe/business_icons.xml",STENCIL_PATH+"/cisco_safe/capability.xml",STENCIL_PATH+"/cisco_safe/design.xml",
-STENCIL_PATH+"/cisco_safe/iot_things_icons.xml",STENCIL_PATH+"/cisco_safe/people_places_things_icons.xml",STENCIL_PATH+"/cisco_safe/security_icons.xml",STENCIL_PATH+"/cisco_safe/technology_icons.xml",STENCIL_PATH+"/cisco_safe/threat.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=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/abstract"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/abstract.xml"];mxStencilRegistry.libraries["electrical/logic_gates"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries["electrical/miscellaneous"]=
-[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/miscellaneous.xml"];mxStencilRegistry.libraries["electrical/signal_sources"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/signal_sources.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries.infographic=[SHAPES_PATH+"/mxInfographic.js"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];
-mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];
-mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",SHAPES_PATH+"/mxBasic.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.ibm=[SHAPES_PATH+"/mxIBM.js",STENCIL_PATH+"/ibm.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.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=
-[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.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 M=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,e,d,g,f,k,l,n){if(null!=b&&null==mxMarker.markers[b]){var q=this.getPackageForType(b);null!=q&&mxStencilRegistry.getStencil(q)}return M.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){t.value=Math.max(1,
-Math.min(k,Math.max(parseInt(t.value),parseInt(m.value))));m.value=Math.max(1,Math.min(k,Math.min(parseInt(t.value),parseInt(m.value))))}function e(c){function b(c,b,g){var f=c.useCssTransforms,k=c.currentTranslate,l=c.currentScale,n=c.view.translate,q=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 u=c.getGraphBounds(),m=0,t=0,x=F.get(),p=1/c.pageScale,A=z.checked;if(A)var p=parseInt(I.value),
-D=parseInt(P.value),p=Math.min(x.height*D/(u.height/c.view.scale),x.width*p/(u.width/c.view.scale));else p=parseInt(v.value)/(100*c.pageScale),isNaN(p)&&(e=1/c.pageScale,v.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*e);x.height=Math.ceil(x.height*e);p*=e;!A&&c.pageVisible?(u=c.getPageLayout(),m-=u.x*x.width,t-=u.y*x.height):A=!0;if(null==b){b=PrintDialog.createPrintPreview(c,p,x,0,m,t,A);b.pageSelector=!1;b.mathEnabled=!1;m=a.getCurrentFile();null!=m&&(b.title=m.getTitle());
-var N=b.writeHead;b.writeHead=function(b){N.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)b.writeln('<style type="text/css">'),b.writeln(Editor.mathJaxWebkitCss),b.writeln("</style>");mxClient.IS_GC&&(b.writeln('<style type="text/css">'),b.writeln("@media print {"),b.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),b.writeln("}"),b.writeln("</style>"));null!=a.editor.fontCss&&(b.writeln('<style type="text/css">'),b.writeln(a.editor.fontCss),b.writeln("</style>"));for(var e=
-c.getCustomFonts(),d=0;d<e.length;d++){var g=e[d].name,f=e[d].url;Graph.isCssFontUrl(f)?b.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(f)+'" charset="UTF-8" type="text/css">'):(b.writeln('<style type="text/css">'),b.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(g)+'";\nsrc: url("'+mxUtils.htmlEntities(f)+'");\n}'),b.writeln("</style>"))}};if("undefined"!==typeof MathJax){var E=b.renderPage;b.renderPage=function(c,b,e,d,g,f){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&
-!a.editor.useForeignObjectForMath?!0:a.editor.originalNoForeignObject;var l=E.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:l.className="geDisableMathJax";return l}}m=null;t=d.enableFlowAnimation;d.enableFlowAnimation=!1;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(m=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),d.refresh());b.open(null,null,g,!0);d.enableFlowAnimation=t;null!=m&&(d.stylesheet=m,d.refresh())}else{x=c.background;if(null==
-x||""==x||x==mxConstants.NONE)x="#ffffff";b.backgroundColor=x;b.autoOrigin=A;b.appendGraph(c,p,m,t,g,!0);g=c.getCustomFonts();if(null!=b.wnd)for(m=0;m<g.length;m++)t=g[m].name,A=g[m].url,Graph.isCssFontUrl(A)?b.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(A)+'" charset="UTF-8" type="text/css">'):(b.wnd.document.writeln('<style type="text/css">'),b.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(t)+'";\nsrc: url("'+mxUtils.htmlEntities(A)+'");\n}'),
-b.wnd.document.writeln("</style>"))}f&&(c.useCssTransforms=f,c.currentTranslate=k,c.currentScale=l,c.view.translate=n,c.view.scale=q);return b}var e=parseInt(K.value)/100;isNaN(e)&&(e=1,K.value="100 %");var e=.75*e,g=null;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(g=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),d.refresh());var f=m.value,k=t.value,n=!q.checked,u=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(a,q.checked,f,k,z.checked,I.value,P.value,parseInt(v.value)/100,parseInt(K.value)/
-100,F.get());else{n&&(n=f==l&&k==l);if(!n&&null!=a.pages&&a.pages.length){var x=0,n=a.pages.length-1;q.checked||(x=parseInt(f)-1,n=parseInt(k)-1);for(var p=x;p<=n;p++){var A=a.pages[p],f=A==a.currentPage?d:null;if(null==f){var f=a.createTemporaryGraph(d.stylesheet),k=!0,x=!1,D=null,N=null;null==A.viewState&&null==A.root&&a.updatePageRoot(A);null!=A.viewState&&(k=A.viewState.pageVisible,x=A.viewState.mathEnabled,D=A.viewState.background,N=A.viewState.backgroundImage,f.extFonts=A.viewState.extFonts);
-f.background=D;f.backgroundImage=null!=N?new mxImage(N.src,N.width,N.height):null;f.pageVisible=k;f.mathEnabled=x;var E=f.getGlobalVariable;f.getGlobalVariable=function(c){return"page"==c?A.getName():"pagenumber"==c?p+1:"pagecount"==c?null!=a.pages?a.pages.length:1:E.apply(this,arguments)};document.body.appendChild(f.container);a.updatePageRoot(A);f.model.setRoot(A.root)}u=b(f,u,p!=n);f!=d&&f.container.parentNode.removeChild(f.container)}}else u=b(d);null==u?a.handleError({message:mxResources.get("errorUpdatingPreview")}):
-(u.mathEnabled&&(n=u.wnd.document,c&&(u.wnd.IMMEDIATE_PRINT=!0),n.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),u.closeDocument(),!u.mathEnabled&&c&&PrintDialog.printPreview(u));null!=g&&(d.stylesheet=g,d.refresh())}}var d=a.editor.graph,g=document.createElement("div"),f=document.createElement("h3");f.style.width="100%";f.style.textAlign="center";f.style.marginTop="0px";mxUtils.write(f,c||mxResources.get("print"));g.appendChild(f);var k=1,l=1,n=
-document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");n.appendChild(q);f=document.createElement("span");mxUtils.write(f,mxResources.get("printAllPages"));n.appendChild(f);mxUtils.br(n);var u=q.cloneNode(!0);q.setAttribute("checked","checked");
-u.setAttribute("value","range");n.appendChild(u);f=document.createElement("span");mxUtils.write(f,mxResources.get("pages")+":");n.appendChild(f);var m=document.createElement("input");m.style.cssText="margin:0 8px 0 8px;";m.setAttribute("value","1");m.setAttribute("type","number");m.setAttribute("min","1");m.style.width="50px";n.appendChild(m);f=document.createElement("span");mxUtils.write(f,mxResources.get("to"));n.appendChild(f);var t=m.cloneNode(!0);n.appendChild(t);mxEvent.addListener(m,"focus",
-function(){u.checked=!0});mxEvent.addListener(t,"focus",function(){u.checked=!0});mxEvent.addListener(m,"change",b);mxEvent.addListener(t,"change",b);if(null!=a.pages&&(k=a.pages.length,null!=a.currentPage))for(f=0;f<a.pages.length;f++)if(a.currentPage==a.pages[f]){l=f+1;m.value=l;t.value=l;break}m.setAttribute("max",k);t.setAttribute("max",k);a.isPagesEnabled()?1<k&&(g.appendChild(n),u.checked=!0):u.checked=!0;var x=document.createElement("div");x.style.marginBottom="10px";var p=document.createElement("input");
-p.style.marginRight="8px";p.setAttribute("value","adjust");p.setAttribute("type","radio");p.setAttribute("name","printZoom");x.appendChild(p);f=document.createElement("span");mxUtils.write(f,mxResources.get("adjustTo"));x.appendChild(f);var v=document.createElement("input");v.style.cssText="margin:0 8px 0 8px;";v.setAttribute("value","100 %");v.style.width="50px";x.appendChild(v);mxEvent.addListener(v,"focus",function(){p.checked=!0});g.appendChild(x);var n=n.cloneNode(!1),z=p.cloneNode(!0);z.setAttribute("value",
-"fit");p.setAttribute("checked","checked");f=document.createElement("div");f.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";f.appendChild(z);n.appendChild(f);x=document.createElement("table");x.style.display="inline-block";var A=document.createElement("tbody"),D=document.createElement("tr"),N=D.cloneNode(!0),E=document.createElement("td"),G=E.cloneNode(!0),H=E.cloneNode(!0),C=E.cloneNode(!0),U=E.cloneNode(!0),M=E.cloneNode(!0);E.style.textAlign="right";C.style.textAlign=
-"right";mxUtils.write(E,mxResources.get("fitTo"));var I=document.createElement("input");I.style.cssText="margin:0 8px 0 8px;";I.setAttribute("value","1");I.setAttribute("min","1");I.setAttribute("type","number");I.style.width="40px";G.appendChild(I);f=document.createElement("span");mxUtils.write(f,mxResources.get("fitToSheetsAcross"));H.appendChild(f);mxUtils.write(C,mxResources.get("fitToBy"));var P=I.cloneNode(!0);U.appendChild(P);mxEvent.addListener(I,"focus",function(){z.checked=!0});mxEvent.addListener(P,
-"focus",function(){z.checked=!0});f=document.createElement("span");mxUtils.write(f,mxResources.get("fitToSheetsDown"));M.appendChild(f);D.appendChild(E);D.appendChild(G);D.appendChild(H);N.appendChild(C);N.appendChild(U);N.appendChild(M);A.appendChild(D);A.appendChild(N);x.appendChild(A);n.appendChild(x);g.appendChild(n);n=document.createElement("div");f=document.createElement("div");f.style.fontWeight="bold";f.style.marginBottom="12px";mxUtils.write(f,mxResources.get("paperSize"));n.appendChild(f);
-f=document.createElement("div");f.style.marginBottom="12px";var F=PageSetupDialog.addPageFormatPanel(f,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(f);f=document.createElement("span");mxUtils.write(f,mxResources.get("pageScale"));n.appendChild(f);var K=document.createElement("input");K.style.cssText="margin:0 8px 0 8px;";K.setAttribute("value","100 %");K.style.width="60px";n.appendChild(K);g.appendChild(n);f=document.createElement("div");f.style.cssText=
-"text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";a.editor.cancelFirst&&f.appendChild(n);a.isOffline()||(x=mxUtils.button(mxResources.get("help"),function(){d.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),x.className="geBtn",f.appendChild(x));PrintDialog.previewEnabled&&(x=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();e(!1)}),x.className="geBtn",f.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?
-"print":"ok"),function(){a.hideDialog();e(!0)});x.className="geBtn gePrimaryBtn";f.appendChild(x);a.editor.cancelFirst||f.appendChild(n);g.appendChild(f);this.container=g};var U=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var a=this.image;null!=a&&null!=a.src&&Graph.isPageLink(a.src)&&
-(a={originalSrc:a.src});this.page.viewState.backgroundImage=a}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)}}else U.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 P=document.createElement("canvas"),N=new Image;N.onload=function(){try{P.getContext("2d").drawImage(N,0,0);var a=P.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(C){}};N.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){}})();
+this.webKitForceRepaintNode.style.cssText="position:absolute;",a.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,a.ownerSVGElement))}};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&this.setBackgroundImage(this.backgroundImage)};var C=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){C.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){"data:action/json,"==
+a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions&&this.executeCustomActions(a.actions))};Graph.prototype.executeCustomActions=function(a,c){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var b=!1,e=0,d=0,g=mxUtils.bind(this,function(){b||
+(b=!0,this.model.beginUpdate())}),f=mxUtils.bind(this,function(){b&&(b=!1,this.model.endUpdate())}),k=mxUtils.bind(this,function(){0<e&&e--;0==e&&l()}),l=mxUtils.bind(this,function(){if(d<a.length){var b=this.stoppingCustomActions,n=a[d++],q=[];if(null!=n.open)if(f(),this.isCustomLink(n.open)){if(!this.customLinkClicked(n.open))return}else this.openLink(n.open);null==n.wait||b||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;k()}),
+e++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=n.wait?parseInt(n.wait):1E3),f());null!=n.opacity&&null!=n.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(n.opacity,!0)),n.opacity.value);null!=n.fadeIn&&(e++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeIn,!0)),0,1,k,b?0:n.fadeIn.delay));null!=n.fadeOut&&(e++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeOut,!0)),1,0,k,b?0:n.fadeOut.delay));
+null!=n.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeIn,!0),!0)));null!=n.wipeOut&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeOut,!0),!1)));null!=n.toggle&&(g(),this.toggleCells(this.getCellsForAction(n.toggle,!0)));if(null!=n.show){g();var u=this.getCellsForAction(n.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(u),1);this.setCellsVisible(u,!0)}null!=n.hide&&(g(),u=this.getCellsForAction(n.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(u),
+0),this.setCellsVisible(u,!1));null!=n.toggleStyle&&null!=n.toggleStyle.key&&(g(),this.toggleCellStyles(n.toggleStyle.key,null!=n.toggleStyle.defaultValue?n.toggleStyle.defaultValue:"0",this.getCellsForAction(n.toggleStyle,!0)));null!=n.style&&null!=n.style.key&&(g(),this.setCellStyles(n.style.key,n.style.value,this.getCellsForAction(n.style,!0)));u=[];null!=n.select&&this.isEnabled()&&(u=this.getCellsForAction(n.select),this.setSelectionCells(u));null!=n.highlight&&(u=this.getCellsForAction(n.highlight),
+this.highlightCells(u,n.highlight.color,n.highlight.duration,n.highlight.opacity));null!=n.scroll&&(u=this.getCellsForAction(n.scroll));null!=n.viewbox&&this.fitWindow(n.viewbox,n.viewbox.border);0<u.length&&this.scrollCellToVisible(u[0]);0<q.length&&(e++,this.executeAnimations(q,k,b?1:n.steps,b?0:n.delay));0==e?l():f()}else this.stoppingCustomActions=this.executingCustomActions=!1,f(),null!=c&&c()});l()}};Graph.prototype.doUpdateCustomLinksForCell=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.sanitizeHtml(this.getLabel(c));for(var d=e.getElementsByTagName("a"),g=!1,f=0;f<d.length;f++)b=d[f].getAttribute("href"),null!=b&&"data:action/json,"==b.substring(0,17)&&(d[f].setAttribute("href",this.updateCustomLink(a,b)),g=!0);g&&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(J){}return c};Graph.prototype.updateCustomLinkActions=function(a,c){for(var b=0;b<c.length;b++){var e=c[b],d;for(d in e)this.updateCustomLinkAction(a,e[d],"cells"),this.updateCustomLinkAction(a,e[d],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(a,c,b){if(null!=c&&null!=c[b]){for(var e=[],d=0;d<c[b].length;d++)if("*"==
+c[b][d])e.push(c[b][d]);else{var g=a[c[b][d]];null!=g?""!=g&&e.push(g):e.push(c[b][d])}c[b]=e}};Graph.prototype.getCellsForAction=function(a,c){var b=this.getCellsById(a.cells).concat(this.getCellsForTags(a.tags,null,null,c));if(null!=a.excludeCells){for(var e=[],d=0;d<b.length;d++)0>a.excludeCells.indexOf(b[d].id)&&e.push(b[d]);b=e}return b};Graph.prototype.getCellsById=function(a){var c=[];if(null!=a)for(var b=0;b<a.length;b++)if("*"==a[b])var e=this.model.getRoot(),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 g=0,f={},k=0;k<a.length;k++)0<a[k].length&&(f[a[k].toLowerCase()]=!0,g++);for(k=0;k<c.length;k++)if(e&&this.model.getParent(c[k])==this.model.root||this.model.isVertex(c[k])||this.model.isEdge(c[k])){var l=null!=c[k].value&&"object"==typeof c[k].value?mxUtils.trim(c[k].value.getAttribute(b)||
+""):"",n=!1;if(0<l.length){if(l=l.toLowerCase().split(" "),l.length>=a.length){for(var q=n=0;q<l.length&&n<g;q++)null!=f[l[q]]&&n++;n=n==g}}else n=0==a.length;n&&d.push(c[k])}}return d};Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],!this.model.isVisible(a[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,c){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],c)}finally{this.model.endUpdate()}};
+Graph.prototype.highlightCells=function(a,c,b,e){for(var d=0;d<a.length;d++)this.highlightCell(a[d],c,b,e)};Graph.prototype.highlightCell=function(a,c,b,e){c=null!=c?c:mxConstants.DEFAULT_VALID_COLOR;b=null!=b?b:1E3;a=this.view.getState(a);if(null!=a){var d=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),g=new mxCellHighlight(this,c,d,!1);null!=e&&(g.opacity=e);g.highlight(a);window.setTimeout(function(){null!=g.shape&&(mxUtils.setPrefixedStyle(g.shape.node.style,"transition",
+"all 1200ms ease-in-out"),g.shape.node.style.opacity=0);window.setTimeout(function(){g.destroy()},1200)},b)}};Graph.prototype.addSvgShadow=function(a,c,b){b=null!=b?b:!1;var e=a.ownerDocument,d=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"filter"):e.createElement("filter");d.setAttribute("id",this.shadowId);var g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):e.createElement("feGaussianBlur");g.setAttribute("in","SourceAlpha");g.setAttribute("stdDeviation",
+this.svgShadowBlur);g.setAttribute("result","blur");d.appendChild(g);g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feOffset"):e.createElement("feOffset");g.setAttribute("in","blur");g.setAttribute("dx",this.svgShadowSize);g.setAttribute("dy",this.svgShadowSize);g.setAttribute("result","offsetBlur");d.appendChild(g);g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feFlood"):e.createElement("feFlood");g.setAttribute("flood-color",this.svgShadowColor);g.setAttribute("flood-opacity",
+this.svgShadowOpacity);g.setAttribute("result","offsetColor");d.appendChild(g);g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feComposite"):e.createElement("feComposite");g.setAttribute("in","offsetColor");g.setAttribute("in2","offsetBlur");g.setAttribute("operator","in");g.setAttribute("result","offsetBlur");d.appendChild(g);g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feBlend"):e.createElement("feBlend");g.setAttribute("in","SourceGraphic");g.setAttribute("in2",
+"offsetBlur");d.appendChild(g);g=a.getElementsByTagName("defs");0==g.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=g[0];e.appendChild(d);b||(c=null!=c?c:a.getElementsByTagName("g")[0],null!=c&&(c.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),c=a.getAttribute("viewBox"),null!=c&&0<c.length&&(c=c.split(" "),3<c.length&&(w=parseFloat(c[2])+6,h=parseFloat(c[3])+6,a.setAttribute("viewBox",c[0]+" "+c[1]+" "+w+" "+h))))));return d};Graph.prototype.setShadowVisible=function(a,c){mxClient.IS_SVG&&!mxClient.IS_SF&&(c=null!=c?c:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),c&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=
+function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),c,b=0;do c=this.model.getChildAt(this.model.root,b);while(b++<a&&"1"==mxUtils.getValue(this.getCellStyle(c),"locked","0"));null!=c&&this.setDefaultParent(c)}};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+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.bpmn2=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.c4=[SHAPES_PATH+"/mxC4.js"];mxStencilRegistry.libraries.cisco19=[SHAPES_PATH+"/mxCisco19.js",STENCIL_PATH+"/cisco19.xml"];mxStencilRegistry.libraries.cisco_safe=[SHAPES_PATH+"/mxCiscoSafe.js",STENCIL_PATH+"/cisco_safe/architecture.xml",STENCIL_PATH+"/cisco_safe/business_icons.xml",
+STENCIL_PATH+"/cisco_safe/capability.xml",STENCIL_PATH+"/cisco_safe/design.xml",STENCIL_PATH+"/cisco_safe/iot_things_icons.xml",STENCIL_PATH+"/cisco_safe/people_places_things_icons.xml",STENCIL_PATH+"/cisco_safe/security_icons.xml",STENCIL_PATH+"/cisco_safe/technology_icons.xml",STENCIL_PATH+"/cisco_safe/threat.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=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/abstract"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/abstract.xml"];mxStencilRegistry.libraries["electrical/logic_gates"]=
+[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries["electrical/miscellaneous"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/miscellaneous.xml"];mxStencilRegistry.libraries["electrical/signal_sources"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/signal_sources.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries.infographic=
+[SHAPES_PATH+"/mxInfographic.js"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];
+mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",SHAPES_PATH+
+"/mxBasic.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.ibm=[SHAPES_PATH+"/mxIBM.js",STENCIL_PATH+"/ibm.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.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.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 M=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,e,d,g,f,k,l,n){if(null!=b&&null==mxMarker.markers[b]){var q=this.getPackageForType(b);null!=q&&
+mxStencilRegistry.getStencil(q)}return M.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){t.value=Math.max(1,Math.min(k,Math.max(parseInt(t.value),parseInt(m.value))));m.value=Math.max(1,Math.min(k,Math.min(parseInt(t.value),parseInt(m.value))))}function e(c){function b(c,b,g){var f=c.useCssTransforms,k=c.currentTranslate,l=c.currentScale,n=c.view.translate,q=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 u=c.getGraphBounds(),m=0,t=0,x=F.get(),p=1/c.pageScale,A=z.checked;if(A)var p=parseInt(O.value),C=parseInt(I.value),p=Math.min(x.height*C/(u.height/c.view.scale),x.width*p/(u.width/c.view.scale));else p=parseInt(v.value)/(100*c.pageScale),isNaN(p)&&(e=1/c.pageScale,v.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*e);x.height=Math.ceil(x.height*e);p*=e;!A&&c.pageVisible?(u=c.getPageLayout(),m-=u.x*x.width,t-=u.y*x.height):
+A=!0;if(null==b){b=PrintDialog.createPrintPreview(c,p,x,0,m,t,A);b.pageSelector=!1;b.mathEnabled=!1;m=a.getCurrentFile();null!=m&&(b.title=m.getTitle());var N=b.writeHead;b.writeHead=function(b){N.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)b.writeln('<style type="text/css">'),b.writeln(Editor.mathJaxWebkitCss),b.writeln("</style>");mxClient.IS_GC&&(b.writeln('<style type="text/css">'),b.writeln("@media print {"),b.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),b.writeln("}"),
+b.writeln("</style>"));null!=a.editor.fontCss&&(b.writeln('<style type="text/css">'),b.writeln(a.editor.fontCss),b.writeln("</style>"));for(var e=c.getCustomFonts(),d=0;d<e.length;d++){var g=e[d].name,f=e[d].url;Graph.isCssFontUrl(f)?b.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(f)+'" charset="UTF-8" type="text/css">'):(b.writeln('<style type="text/css">'),b.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(g)+'";\nsrc: url("'+mxUtils.htmlEntities(f)+'");\n}'),b.writeln("</style>"))}};
+if("undefined"!==typeof MathJax){var E=b.renderPage;b.renderPage=function(c,b,e,d,g,f){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!a.editor.useForeignObjectForMath?!0:a.editor.originalNoForeignObject;var l=E.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:l.className="geDisableMathJax";return l}}m=null;t=d.enableFlowAnimation;d.enableFlowAnimation=!1;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(m=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),
+d.refresh());b.open(null,null,g,!0);d.enableFlowAnimation=t;null!=m&&(d.stylesheet=m,d.refresh())}else{x=c.background;if(null==x||""==x||x==mxConstants.NONE)x="#ffffff";b.backgroundColor=x;b.autoOrigin=A;b.appendGraph(c,p,m,t,g,!0);g=c.getCustomFonts();if(null!=b.wnd)for(m=0;m<g.length;m++)t=g[m].name,A=g[m].url,Graph.isCssFontUrl(A)?b.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(A)+'" charset="UTF-8" type="text/css">'):(b.wnd.document.writeln('<style type="text/css">'),
+b.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(t)+'";\nsrc: url("'+mxUtils.htmlEntities(A)+'");\n}'),b.wnd.document.writeln("</style>"))}f&&(c.useCssTransforms=f,c.currentTranslate=k,c.currentScale=l,c.view.translate=n,c.view.scale=q);return b}var e=parseInt(K.value)/100;isNaN(e)&&(e=1,K.value="100 %");var e=.75*e,g=null;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(g=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),d.refresh());var f=m.value,k=t.value,n=!q.checked,
+u=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(a,q.checked,f,k,z.checked,O.value,I.value,parseInt(v.value)/100,parseInt(K.value)/100,F.get());else{n&&(n=f==l&&k==l);if(!n&&null!=a.pages&&a.pages.length){var x=0,n=a.pages.length-1;q.checked||(x=parseInt(f)-1,n=parseInt(k)-1);for(var p=x;p<=n;p++){var A=a.pages[p],f=A==a.currentPage?d:null;if(null==f){var f=a.createTemporaryGraph(d.stylesheet),k=!0,x=!1,C=null,N=null;null==A.viewState&&null==A.root&&a.updatePageRoot(A);null!=A.viewState&&
+(k=A.viewState.pageVisible,x=A.viewState.mathEnabled,C=A.viewState.background,N=A.viewState.backgroundImage,f.extFonts=A.viewState.extFonts);f.background=C;f.backgroundImage=null!=N?new mxImage(N.src,N.width,N.height):null;f.pageVisible=k;f.mathEnabled=x;var E=f.getGlobalVariable;f.getGlobalVariable=function(c){return"page"==c?A.getName():"pagenumber"==c?p+1:"pagecount"==c?null!=a.pages?a.pages.length:1:E.apply(this,arguments)};document.body.appendChild(f.container);a.updatePageRoot(A);f.model.setRoot(A.root)}u=
+b(f,u,p!=n);f!=d&&f.container.parentNode.removeChild(f.container)}}else u=b(d);null==u?a.handleError({message:mxResources.get("errorUpdatingPreview")}):(u.mathEnabled&&(n=u.wnd.document,c&&(u.wnd.IMMEDIATE_PRINT=!0),n.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),u.closeDocument(),!u.mathEnabled&&c&&PrintDialog.printPreview(u));null!=g&&(d.stylesheet=g,d.refresh())}}var d=a.editor.graph,g=document.createElement("div"),f=document.createElement("h3");
+f.style.width="100%";f.style.textAlign="center";f.style.marginTop="0px";mxUtils.write(f,c||mxResources.get("print"));g.appendChild(f);var k=1,l=1,n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");n.appendChild(q);f=document.createElement("span");
+mxUtils.write(f,mxResources.get("printAllPages"));n.appendChild(f);mxUtils.br(n);var u=q.cloneNode(!0);q.setAttribute("checked","checked");u.setAttribute("value","range");n.appendChild(u);f=document.createElement("span");mxUtils.write(f,mxResources.get("pages")+":");n.appendChild(f);var m=document.createElement("input");m.style.cssText="margin:0 8px 0 8px;";m.setAttribute("value","1");m.setAttribute("type","number");m.setAttribute("min","1");m.style.width="50px";n.appendChild(m);f=document.createElement("span");
+mxUtils.write(f,mxResources.get("to"));n.appendChild(f);var t=m.cloneNode(!0);n.appendChild(t);mxEvent.addListener(m,"focus",function(){u.checked=!0});mxEvent.addListener(t,"focus",function(){u.checked=!0});mxEvent.addListener(m,"change",b);mxEvent.addListener(t,"change",b);if(null!=a.pages&&(k=a.pages.length,null!=a.currentPage))for(f=0;f<a.pages.length;f++)if(a.currentPage==a.pages[f]){l=f+1;m.value=l;t.value=l;break}m.setAttribute("max",k);t.setAttribute("max",k);a.isPagesEnabled()?1<k&&(g.appendChild(n),
+u.checked=!0):u.checked=!0;var x=document.createElement("div");x.style.marginBottom="10px";var p=document.createElement("input");p.style.marginRight="8px";p.setAttribute("value","adjust");p.setAttribute("type","radio");p.setAttribute("name","printZoom");x.appendChild(p);f=document.createElement("span");mxUtils.write(f,mxResources.get("adjustTo"));x.appendChild(f);var v=document.createElement("input");v.style.cssText="margin:0 8px 0 8px;";v.setAttribute("value","100 %");v.style.width="50px";x.appendChild(v);
+mxEvent.addListener(v,"focus",function(){p.checked=!0});g.appendChild(x);var n=n.cloneNode(!1),z=p.cloneNode(!0);z.setAttribute("value","fit");p.setAttribute("checked","checked");f=document.createElement("div");f.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";f.appendChild(z);n.appendChild(f);x=document.createElement("table");x.style.display="inline-block";var A=document.createElement("tbody"),C=document.createElement("tr"),N=C.cloneNode(!0),E=document.createElement("td"),
+G=E.cloneNode(!0),H=E.cloneNode(!0),D=E.cloneNode(!0),U=E.cloneNode(!0),M=E.cloneNode(!0);E.style.textAlign="right";D.style.textAlign="right";mxUtils.write(E,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";G.appendChild(O);f=document.createElement("span");mxUtils.write(f,mxResources.get("fitToSheetsAcross"));H.appendChild(f);mxUtils.write(D,
+mxResources.get("fitToBy"));var I=O.cloneNode(!0);U.appendChild(I);mxEvent.addListener(O,"focus",function(){z.checked=!0});mxEvent.addListener(I,"focus",function(){z.checked=!0});f=document.createElement("span");mxUtils.write(f,mxResources.get("fitToSheetsDown"));M.appendChild(f);C.appendChild(E);C.appendChild(G);C.appendChild(H);N.appendChild(D);N.appendChild(U);N.appendChild(M);A.appendChild(C);A.appendChild(N);x.appendChild(A);n.appendChild(x);g.appendChild(n);n=document.createElement("div");f=
+document.createElement("div");f.style.fontWeight="bold";f.style.marginBottom="12px";mxUtils.write(f,mxResources.get("paperSize"));n.appendChild(f);f=document.createElement("div");f.style.marginBottom="12px";var F=PageSetupDialog.addPageFormatPanel(f,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(f);f=document.createElement("span");mxUtils.write(f,mxResources.get("pageScale"));n.appendChild(f);var K=document.createElement("input");K.style.cssText="margin:0 8px 0 8px;";
+K.setAttribute("value","100 %");K.style.width="60px";n.appendChild(K);g.appendChild(n);f=document.createElement("div");f.style.cssText="text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";a.editor.cancelFirst&&f.appendChild(n);a.isOffline()||(x=mxUtils.button(mxResources.get("help"),function(){d.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),x.className="geBtn",f.appendChild(x));PrintDialog.previewEnabled&&(x=
+mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();e(!1)}),x.className="geBtn",f.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();e(!0)});x.className="geBtn gePrimaryBtn";f.appendChild(x);a.editor.cancelFirst||f.appendChild(n);g.appendChild(f);this.container=g};var U=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=
+this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var a=this.image;null!=a&&null!=a.src&&Graph.isPageLink(a.src)&&(a={originalSrc:a.src});this.page.viewState.backgroundImage=a}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)}}else U.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 O=document.createElement("canvas"),N=new Image;N.onload=function(){try{O.getContext("2d").drawImage(N,0,0);var a=O.toDataURL("image/png");Editor.prototype.useCanvasForExport=
+null!=a&&6<a.length}catch(D){}};N.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){}})();
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,k){k.ui=a.ui;return d};a.afterDecode=function(a,d,k){k.previousColor=k.color;k.previousImage=k.image;k.previousFormat=k.format;null!=k.foldingEnabled&&(k.foldingEnabled=!k.foldingEnabled);null!=k.mathEnabled&&(k.mathEnabled=!k.mathEnabled);null!=k.shadowVisible&&(k.shadowVisible=!k.shadowVisible);return k};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,d,k){k.ui=a.ui;return d};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="15.0.2";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,d,k){k.ui=a.ui;return d};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="15.0.3";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;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.nativeFileSupport=
!mxClient.IS_OP&&!EditorUi.isElectronApp&&"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,
noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(a,b,d,f,k,q,u){q=null!=q?q:0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":
@@ -3347,7 +3348,7 @@ null==a.getName()&&a.setName(mxResources.get("pageWithNumber",[d+1])),this.pages
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,k,q,m,t,p,x,G){try{f=null!=f?f:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!k),
e=c+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+this.getFileData(!0,null,null,null,f,k,null,null,null,b);this.saveData(e,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,c),this.saveData(e,a,g,"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!=q&&(this.editor.graph.pageVisible=q);var d=this.createDownloadRequest(c,a,f,b,m,k,t,p,x,G);this.editor.graph.pageVisible=e;return d}catch(v){this.handleError(v)}}));else{var l=null,n=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(l)}))});if("svg"==a){var u=this.editor.graph.background;if(m||u==mxConstants.NONE)u=
-null;var A=this.editor.graph.getSvg(u,null,null,null,null,f);d&&this.editor.graph.addSvgShadow(A);this.editor.convertImages(A,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();n('<?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",l=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();n(a)}),f)}}catch(M){this.handleError(M)}};EditorUi.prototype.createDownloadRequest=
+null;var C=this.editor.graph.getSvg(u,null,null,null,null,f);d&&this.editor.graph.addSvgShadow(C);this.editor.convertImages(C,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();n('<?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",l=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();n(a)}),f)}}catch(M){this.handleError(M)}};EditorUi.prototype.createDownloadRequest=
function(a,b,d,f,k,q,m,t,p,x){var c=this.editor.graph,e=c.getGraphBounds();d=this.getFileData(!0,null,null,null,d,0==q?!1:"xmlpng"!=b);var g="",l="";if(e.width*e.height>MAX_AREA||d.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};x=x?"1":"0";"pdf"==b&&0==q&&(l="&allPages=1");if("xmlpng"==b&&(x="1",b="png",null!=this.pages&&null!=this.currentPage))for(q=0;q<this.pages.length;q++)if(this.pages[q]==this.currentPage){g="&from="+q;break}q=c.background;"png"!=b&&"pdf"!=b||!k?k||
null!=q&&q!=mxConstants.NONE||(q="#ffffff"):q=mxConstants.NONE;k={globalVars:c.getExportVariables()};p&&(k.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});Graph.translateDiagram&&(k.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+b+g+l+"&bg="+(null!=q?q:mxConstants.NONE)+"&base64="+f+"&embedXml="+x+"&xml="+encodeURIComponent(d)+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(k))+(null!=m?"&scale="+
m:"")+(null!=t?"&border="+t:""))};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(d){var e=null!=a.data?a.data:"";null!=d&&0<d.length&&(0<e.length&&(e+="\n"),e+=d);d=new LocalFile(this,"csv"!=a.format&&0<e.length?e:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.getHash=function(){return c};this.fileLoaded(d);"csv"==a.format&&this.importCsv(e,
@@ -3355,7 +3356,7 @@ mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setMod
" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),l=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(k,f)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){l();k()}));l();k()}null!=b&&b()});null!=a.url&&0<a.url.length?this.editor.loadUrl(a.url,mxUtils.bind(this,function(a){e(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)})):e("")};EditorUi.prototype.updateDiagram=function(a){function c(a){var c=new mxCellOverlay(a.image||f.warningImage,
a.tooltip,a.align,a.valign,a.offset);c.addListener(mxEvent.CLICK,function(c,b){d.alert(a.tooltip)});return c}var b=null,d=this;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null,null!=a&&"updates"==a.nodeName)){var f=this.editor.graph,k=f.getModel();k.beginUpdate();var m=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var t=k.getCell(a.getAttribute("id"));if(null!=t){try{var p=a.getAttribute("value");if(null!=p){var x=mxUtils.parseXml(p).documentElement;
if(null!=x)if("1"==x.getAttribute("replace-value"))k.setValue(t,x);else for(var G=x.attributes,z=0;z<G.length;z++)f.setAttributeForCell(t,G[z].nodeName,0<G[z].nodeValue.length?G[z].nodeValue:null)}}catch(U){null!=window.console&&console.log("Error in value for "+t.id+": "+U)}try{var E=a.getAttribute("style");null!=E&&f.model.setStyle(t,E)}catch(U){null!=window.console&&console.log("Error in style for "+t.id+": "+U)}try{var H=a.getAttribute("icon");if(null!=H){var K=0<H.length?JSON.parse(H):null;null!=
-K&&K.append||f.removeCellOverlays(t);null!=K&&f.addCellOverlay(t,c(K))}}catch(U){null!=window.console&&console.log("Error in icon for "+t.id+": "+U)}try{var F=a.getAttribute("geometry");if(null!=F){var F=JSON.parse(F),I=f.getCellGeometry(t);if(null!=I){I=I.clone();for(key in F){var D=parseFloat(F[key]);"dx"==key?I.x+=D:"dy"==key?I.y+=D:"dw"==key?I.width+=D:"dh"==key?I.height+=D:I[key]=parseFloat(F[key])}f.model.setGeometry(t,I)}}}catch(U){null!=window.console&&console.log("Error in icon for "+t.id+
+K&&K.append||f.removeCellOverlays(t);null!=K&&f.addCellOverlay(t,c(K))}}catch(U){null!=window.console&&console.log("Error in icon for "+t.id+": "+U)}try{var F=a.getAttribute("geometry");if(null!=F){var F=JSON.parse(F),I=f.getCellGeometry(t);if(null!=I){I=I.clone();for(key in F){var C=parseFloat(F[key]);"dx"==key?I.x+=C:"dy"==key?I.y+=C:"dw"==key?I.width+=C:"dh"==key?I.height+=C:I[key]=parseFloat(F[key])}f.model.setGeometry(t,I)}}}catch(U){null!=window.console&&console.log("Error in icon for "+t.id+
": "+U)}}}else if("model"==a.nodeName){for(var M=a.firstChild;null!=M&&M.nodeType!=mxConstants.NODETYPE_ELEMENT;)M=M.nextSibling;null!=M&&(new mxCodec(a.firstChild)).decode(M,k)}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&&(m=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):
1);a=a.nextSibling}}finally{k.endUpdate()}null!=m&&this.chromelessResize&&this.chromelessResize(!0,m)}return b};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 f=new Date,e=f.getFullYear(),k=f.getMonth()+1,m=f.getDate(),p=f.getHours(),x=f.getMinutes(),f=f.getSeconds(),c=c+(" "+(e+"-"+k+"-"+m+"-"+p+"-"+x+"-"+f));return c=mxResources.get("copyOf",[c])+d};
EditorUi.prototype.fileLoaded=function(a,b){var c=this.getCurrentFile();this.fileEditable=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();
@@ -3377,15 +3378,15 @@ null!=f&&0<f.length&&".scratchpad"!=a.title&&n.setAttribute("title",this.getLibr
k,b,a,a.getMode());mxEvent.consume(c)}),F=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=H&&null!=H.parentNode&&H.parentNode.removeChild(H),H=p.cloneNode(!1),H.setAttribute("src",Editor.spinImage),H.setAttribute("title",mxResources.get("saving")),H.style.cursor="default",H.style.marginRight="2px",H.style.marginTop="-2px",m.insertBefore(H,m.firstChild),n.style.paddingRight=18*m.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=H&&null!=
H.parentNode&&(H.parentNode.removeChild(H),n.style.paddingRight=18*m.childNodes.length+"px")})):null==z&&(z=p.cloneNode(!1),z.setAttribute("src",IMAGE_PATH+"/download.png"),z.setAttribute("title",mxResources.get("save")),m.insertBefore(z,m.firstChild),mxEvent.addListener(z,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==z||a.isModified()||(n.style.paddingRight=18*m.childNodes.length+"px",z.parentNode.removeChild(z),
z=null)});mxEvent.consume(c)})),n.style.paddingRight=18*m.childNodes.length+"px")}),I=mxUtils.bind(this,function(a,c,d,f){a=E.cloneCells(mxUtils.sortCells(E.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var l=E.getCellGeometry(a[g]);null!=l&&l.translate(-c.x,-c.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,f||"",!0,!1,!1));a={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=f&&(a.title=f);b.push(a);F(d);null!=
-e&&null!=e.parentNode&&0<b.length&&(e.parentNode.removeChild(e),e=null)}),D=mxUtils.bind(this,function(a){if(E.isSelectionEmpty())E.getRubberband().isActive()?(E.getRubberband().execute(a),E.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=E.getSelectionCells(),b=E.view.getBounds(c),d=E.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=E.view.translate.x;b.y-=E.view.translate.y;I(c,b)}mxEvent.consume(a)});mxEvent.addGestureListeners(k,
+e&&null!=e.parentNode&&0<b.length&&(e.parentNode.removeChild(e),e=null)}),C=mxUtils.bind(this,function(a){if(E.isSelectionEmpty())E.getRubberband().isActive()?(E.getRubberband().execute(a),E.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=E.getSelectionCells(),b=E.view.getBounds(c),d=E.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=E.view.translate.x;b.y-=E.view.translate.y;I(c,b)}mxEvent.consume(a)});mxEvent.addGestureListeners(k,
function(){},mxUtils.bind(this,function(a){E.isMouseDown&&null!=E.panningManager&&null!=E.graphHandler.first&&(E.graphHandler.suspend(),null!=E.graphHandler.hint&&(E.graphHandler.hint.style.visibility="hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",E.panningManager.stop(),E.autoScroll=!1,mxEvent.consume(a))}),mxUtils.bind(this,function(a){E.isMouseDown&&null!=E.panningManager&&null!=E.graphHandler&&(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,
-E.panningManager.stop(),E.graphHandler.reset(),E.isMouseDown=!1,E.autoScroll=!0,D(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){E.isMouseDown&&null!=E.graphHandler.first&&(E.graphHandler.resume(),null!=E.graphHandler.hint&&(E.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",E.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(a){k.style.backgroundColor="#f1f3f4";a.dataTransfer.dropEffect=
+E.panningManager.stop(),E.graphHandler.reset(),E.isMouseDown=!1,E.autoScroll=!0,C(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){E.isMouseDown&&null!=E.graphHandler.first&&(E.graphHandler.resume(),null!=E.graphHandler.hint&&(E.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",E.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(a){k.style.backgroundColor="#f1f3f4";a.dataTransfer.dropEffect=
"copy";k.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(a){k.style.cursor="";k.style.backgroundColor="";0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,f,l,n,m,q,u,t){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(c),c=[new mxCell("",
new mxGeometry(0,0,n,m),c)],c[0].vertex=!0,I(c,new mxRectangle(0,0,n,m),a,mxEvent.isAltDown(a)?null:q.substring(0,q.lastIndexOf(".")).replace(/_/g," ")),null!=e&&null!=e.parentNode&&0<b.length&&(e.parentNode.removeChild(e),e=null);else{var p=!1,x=mxUtils.bind(this,function(c,d){if(null!=c&&"application/pdf"==d){var f=Editor.extractGraphModelFromPdf(c);null!=f&&0<f.length&&(c=f)}if(null!=c)if(f=mxUtils.parseXml(c),"mxlibrary"==f.documentElement.nodeName)try{var l=JSON.parse(mxUtils.getTextContent(f.documentElement));
g(l,k);b=b.concat(l);F(a);this.spinner.stop();p=!0}catch(T){}else if("mxfile"==f.documentElement.nodeName)try{for(var n=f.documentElement.getElementsByTagName("diagram"),l=0;l<n.length;l++){var q=this.stringToCells(Editor.getDiagramNodeXml(n[l])),m=this.editor.graph.getBoundingBoxFromGeometry(q);I(q,new mxRectangle(0,0,m.width,m.height),a)}p=!0}catch(T){null!=window.console&&console.log("error in drop handler:",T)}p||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
null!=e&&null!=e.parentNode&&0<b.length&&(e.parentNode.removeChild(e),e=null)});null!=t&&null!=q&&(/(\.v(dx|sdx?))($|\?)/i.test(q)||/(\.vs(x|sx?))($|\?)/i.test(q))?this.importVisio(t,function(a){x(a,"text/xml")},null,q):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,q)&&null!=t?this.parseFile(t,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?x(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?
"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):x(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"dragleave",function(a){k.style.cursor="";k.style.backgroundColor="";a.stopPropagation();a.preventDefault()}));p=p.cloneNode(!1);p.setAttribute("src",Editor.editImage);p.setAttribute("title",mxResources.get("edit"));m.insertBefore(p,m.firstChild);mxEvent.addListener(p,"click",K);mxEvent.addListener(k,"dblclick",function(a){mxEvent.getSource(a)==
-k&&K(a)});f=p.cloneNode(!1);f.setAttribute("src",Editor.plusImage);f.setAttribute("title",mxResources.get("add"));m.insertBefore(f,m.firstChild);mxEvent.addListener(f,"click",D);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(f=document.createElement("span"),f.setAttribute("title",mxResources.get("help")),f.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(f,"?"),mxEvent.addGestureListeners(f,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);
+k&&K(a)});f=p.cloneNode(!1);f.setAttribute("src",Editor.plusImage);f.setAttribute("title",mxResources.get("add"));m.insertBefore(f,m.firstChild);mxEvent.addListener(f,"click",C);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(f=document.createElement("span"),f.setAttribute("title",mxResources.get("help")),f.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(f,"?"),mxEvent.addGestureListeners(f,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);
mxEvent.consume(a)})),m.insertBefore(f,m.firstChild))}n.appendChild(m);n.style.paddingRight=18*m.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),f="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(f+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(f+"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.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="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):Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultPageBorderColor="#505759",BaseFormatPanel.prototype.buttonBackgroundColor=
@@ -3428,7 +3429,7 @@ c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=
a,m,!0,c,d)}catch(H){this.handleError(H)}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,u,null,1<c,e,f,m,k);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,k,m){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,b,d,f,k,m,u,p,A,x,G,z){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=G?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var g=this.editor.graph.getSvg(e,a,u,p,null,d,null,null,"blank"==
x?"_blank":"self"==x?"_top":null,null,!0,G,z);f&&this.editor.graph.addSvgShadow(g);var l=this.getBaseFilename()+".svg",n=mxUtils.bind(this,function(a){this.spinner.stop();k&&a.setAttribute("content",this.getFileData(!0,null,null,null,d,A,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(l,"svg",c,"image/svg+xml"):
-this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(g);this.editor.graph.mathEnabled&&this.editor.addMathCss(g);m?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(g,n,this.thumbImageCache)):n(g)}catch(D){this.handleError(D)}};EditorUi.prototype.addRadiobox=function(a,b,d,f,k,m,u){return this.addCheckbox(a,d,f,k,m,u,!0,b)};EditorUi.prototype.addCheckbox=function(a,
+this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(g);this.editor.graph.mathEnabled&&this.editor.addMathCss(g);m?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(g,n,this.thumbImageCache)):n(g)}catch(C){this.handleError(C)}};EditorUi.prototype.addRadiobox=function(a,b,d,f,k,m,u){return this.addCheckbox(a,d,f,k,m,u,!0,b)};EditorUi.prototype.addCheckbox=function(a,
b,d,f,k,m,u,p){m=null!=m?m:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",u?"radio":"checkbox");u="geCheckbox-"+Editor.guid();c.id=u;null!=p&&c.setAttribute("name",p);d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);f&&c.setAttribute("disabled","disabled");m&&(a.appendChild(c),d=document.createElement("label"),mxUtils.write(d,b),d.setAttribute("for",u),a.appendChild(d),k||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||
@@ -3444,25 +3445,25 @@ encodeURIComponent(a):"";G(b,'<script type="text/javascript" src="'+(0<a.length?
mxResources.get("html"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(e);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","type-embedhtmldialog");e=k.cloneNode(!0);e.setAttribute("value",
"copy");g.appendChild(e);var n=document.createElement("span");mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(n);mxUtils.br(g);g.appendChild(k);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));g.appendChild(n);var m=this.getCurrentFile();null==d&&null!=m&&m.constructor==window.DriveFile&&(n=document.createElement("a"),n.style.paddingLeft="12px",n.style.color="gray",n.style.cursor="pointer",mxUtils.write(n,mxResources.get("share")),g.appendChild(n),
mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(m.getId())})));e.setAttribute("checked","checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var p=this.addLinkSection(c),z=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var E=document.createElement("input");E.setAttribute("type","text");E.style.marginRight="16px";E.style.width="60px";E.style.marginLeft="4px";E.style.marginRight="12px";E.value=
-"100%";c.appendChild(E);var H=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,K=K=this.addCheckbox(c,mxResources.get("allPages"),g,!g),F=this.addCheckbox(c,mxResources.get("layers"),!0),I=this.addCheckbox(c,mxResources.get("lightbox"),!0),D=this.addEditButton(c,I),M=D.getEditInput();M.style.marginBottom="16px";mxEvent.addListener(I,"change",function(){I.checked?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled");M.checked&&I.checked?D.getEditSelect().removeAttribute("disabled"):
-D.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){f(k.checked?d:null,z.checked,E.value,p.getTarget(),p.getColor(),H.checked,K.checked,F.checked,I.checked,D.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);e.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,f,k,m){var c=document.createElement("div");c.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,a||mxResources.get("link"));e.style.cssText=
+"100%";c.appendChild(E);var H=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,K=K=this.addCheckbox(c,mxResources.get("allPages"),g,!g),F=this.addCheckbox(c,mxResources.get("layers"),!0),I=this.addCheckbox(c,mxResources.get("lightbox"),!0),C=this.addEditButton(c,I),M=C.getEditInput();M.style.marginBottom="16px";mxEvent.addListener(I,"change",function(){I.checked?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled");M.checked&&I.checked?C.getEditSelect().removeAttribute("disabled"):
+C.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){f(k.checked?d:null,z.checked,E.value,p.getTarget(),p.getColor(),H.checked,K.checked,F.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,k,m){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 g=this.getCurrentFile(),e="https://www.diagrams.net/doc/faq/publish-diagram-as-link";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var e="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",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 n=document.createElement("div");
n.style.whiteSpace="normal";mxUtils.write(n,mxResources.get("linkAccountRequired"));l.appendChild(n);n=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));n.style.marginTop="12px";n.className="geBtn";l.appendChild(n);c.appendChild(l);n=document.createElement("a");n.style.paddingLeft="12px";n.style.color="gray";n.style.fontSize="11px";n.style.cursor="pointer";mxUtils.write(n,mxResources.get("check"));l.appendChild(n);mxEvent.addListener(n,"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 q=null,p=null;if(null!=d||null!=f)a+=30,mxUtils.write(c,mxResources.get("width")+":"),q=document.createElement("input"),q.setAttribute("type","text"),
q.style.marginRight="16px",q.style.width="50px",q.style.marginLeft="6px",q.style.marginRight="16px",q.style.marginBottom="10px",q.value="100%",c.appendChild(q),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 H=this.addLinkSection(c,m);d=null!=this.pages&&1<this.pages.length;var K=null;if(null==g||g.constructor!=window.DriveFile||
-b)K=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var F=this.addCheckbox(c,mxResources.get("lightbox"),!0,null,null,!m),I=this.addEditButton(c,F),D=I.getEditInput();m&&(D.style.marginLeft=F.style.marginLeft,F.style.display="none",a-=30);var M=this.addCheckbox(c,mxResources.get("layers"),!0);M.style.marginLeft=D.style.marginLeft;M.style.marginBottom="16px";M.style.marginTop="8px";mxEvent.addListener(F,"change",function(){F.checked?(M.removeAttribute("disabled"),D.removeAttribute("disabled")):
-(M.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"));D.checked&&F.checked?I.getEditSelect().removeAttribute("disabled"):I.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){k(H.getTarget(),H.getColor(),null==K?!0:K.checked,F.checked,I.getLink(),M.checked,null!=q?q.value:null,null!=p?p.value:null)}),null,mxResources.get("create"),e);this.showDialog(b.container,340,254+a,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||
+b)K=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var F=this.addCheckbox(c,mxResources.get("lightbox"),!0,null,null,!m),I=this.addEditButton(c,F),C=I.getEditInput();m&&(C.style.marginLeft=F.style.marginLeft,F.style.display="none",a-=30);var M=this.addCheckbox(c,mxResources.get("layers"),!0);M.style.marginLeft=C.style.marginLeft;M.style.marginBottom="16px";M.style.marginTop="8px";mxEvent.addListener(F,"change",function(){F.checked?(M.removeAttribute("disabled"),C.removeAttribute("disabled")):
+(M.setAttribute("disabled","disabled"),C.setAttribute("disabled","disabled"));C.checked&&F.checked?I.getEditSelect().removeAttribute("disabled"):I.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){k(H.getTarget(),H.getColor(),null==K?!0:K.checked,F.checked,I.getLink(),M.checked,null!=q?q.value:null,null!=p?p.value:null)}),null,mxResources.get("create"),e);this.showDialog(b.container,340,254+a,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||
5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)):H.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,f,k){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:"+(k?"10":"4")+"px";c.appendChild(e);if(k){mxUtils.write(c,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%";c.appendChild(g);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 n=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),
m=f?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0),e=this.editor.graph,p=f?null:this.addCheckbox(c,mxResources.get("transparentBackground"),e.background==mxConstants.NONE||null==e.background);null!=p&&(p.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,c=parseInt(l.value)||0;d(!n.checked,null!=m?m.checked:!1,null!=p?p.checked:!1,a,c)}),null,a,b);this.showDialog(a.container,300,(k?25:0)+(f?125:210),!0,!0)};EditorUi.prototype.showExportDialog=
function(a,b,d,f,k,m,p,t,A){p=null!=p?p:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var e=this.editor.graph,g="jpeg"==t?196:300,l=document.createElement("h3");mxUtils.write(l,a);l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(l);mxUtils.write(c,mxResources.get("zoom")+":");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=this.lastExportZoom||"100%";c.appendChild(n);mxUtils.write(c,mxResources.get("borderWidth")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.value=this.lastExportBorder||"0";c.appendChild(q);mxUtils.br(c);var u=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,e.isSelectionEmpty()),I=document.createElement("input");I.style.marginTop="16px";I.style.marginRight="8px";I.style.marginLeft=
-"24px";I.setAttribute("disabled","disabled");I.setAttribute("type","checkbox");var D=document.createElement("select");D.style.marginTop="16px";D.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(l=0;l<a.length;l++)if(!e.isSelectionEmpty()||"selectionOnly"!=a[l]){var M=document.createElement("option");mxUtils.write(M,mxResources.get(a[l]));M.setAttribute("value",a[l]);D.appendChild(M)}A?(mxUtils.write(c,mxResources.get("size")+":"),c.appendChild(D),mxUtils.br(c),g+=26,mxEvent.addListener(D,
-"change",function(){"selectionOnly"==D.value&&(u.checked=!0)})):m&&(c.appendChild(I),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(u,"change",function(){u.checked?I.removeAttribute("disabled"):I.setAttribute("disabled","disabled")}));e.isSelectionEmpty()?A&&(u.style.display="none",u.nextSibling.style.display="none",u.nextSibling.nextSibling.style.display="none",g-=26):(D.value="diagram",I.setAttribute("checked","checked"),I.defaultChecked=!0,mxEvent.addListener(u,
-"change",function(){D.value=u.checked?"selectionOnly":"diagram"}));var U=this.addCheckbox(c,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),P=null;Editor.isDarkMode()&&(P=this.addCheckbox(c,mxResources.get("dark"),!0),g+=26);var N=this.addCheckbox(c,mxResources.get("shadow"),e.shadowVisible),v=document.createElement("input");v.style.marginTop="16px";v.style.marginRight="8px";v.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||v.setAttribute("disabled","disabled");
-b&&(c.appendChild(v),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=null;if("png"==t||"jpeg"==t)C=this.addCheckbox(c,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),g+=26;var B=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),p,null,null,"jpeg"!=t);B.style.marginBottom="16px";var J=document.createElement("select");J.style.maxWidth="260px";J.style.marginLeft="8px";J.style.marginRight="10px";J.className="geBtn";b=document.createElement("option");
+"24px";I.setAttribute("disabled","disabled");I.setAttribute("type","checkbox");var C=document.createElement("select");C.style.marginTop="16px";C.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(l=0;l<a.length;l++)if(!e.isSelectionEmpty()||"selectionOnly"!=a[l]){var M=document.createElement("option");mxUtils.write(M,mxResources.get(a[l]));M.setAttribute("value",a[l]);C.appendChild(M)}A?(mxUtils.write(c,mxResources.get("size")+":"),c.appendChild(C),mxUtils.br(c),g+=26,mxEvent.addListener(C,
+"change",function(){"selectionOnly"==C.value&&(u.checked=!0)})):m&&(c.appendChild(I),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(u,"change",function(){u.checked?I.removeAttribute("disabled"):I.setAttribute("disabled","disabled")}));e.isSelectionEmpty()?A&&(u.style.display="none",u.nextSibling.style.display="none",u.nextSibling.nextSibling.style.display="none",g-=26):(C.value="diagram",I.setAttribute("checked","checked"),I.defaultChecked=!0,mxEvent.addListener(u,
+"change",function(){C.value=u.checked?"selectionOnly":"diagram"}));var U=this.addCheckbox(c,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),O=null;Editor.isDarkMode()&&(O=this.addCheckbox(c,mxResources.get("dark"),!0),g+=26);var N=this.addCheckbox(c,mxResources.get("shadow"),e.shadowVisible),v=document.createElement("input");v.style.marginTop="16px";v.style.marginRight="8px";v.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||v.setAttribute("disabled","disabled");
+b&&(c.appendChild(v),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var D=null;if("png"==t||"jpeg"==t)D=this.addCheckbox(c,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),g+=26;var B=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),p,null,null,"jpeg"!=t);B.style.marginBottom="16px";var J=document.createElement("select");J.style.maxWidth="260px";J.style.marginLeft="8px";J.style.marginRight="10px";J.className="geBtn";b=document.createElement("option");
b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));J.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");mxUtils.write(b,mxResources.get("openInNewWindow"));J.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));J.appendChild(b);"svg"==t&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(J),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,
-mxUtils.bind(this,function(){this.lastExportBorder=q.value;this.lastExportZoom=n.value;k(n.value,U.checked,!u.checked,N.checked,B.checked,v.checked,q.value,I.checked,!1,J.value,null!=C?C.checked:null,null!=P?P.checked:null,D.value)}),null,d,f);this.showDialog(d.container,340,g,!0,!0,null,null,null,null,!0);n.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?n.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,f,k){var c=document.createElement("div");
+mxUtils.bind(this,function(){this.lastExportBorder=q.value;this.lastExportZoom=n.value;k(n.value,U.checked,!u.checked,N.checked,B.checked,v.checked,q.value,I.checked,!1,J.value,null!=D?D.checked:null,null!=O?O.checked:null,C.value)}),null,d,f);this.showDialog(d.container,340,g,!0,!0,null,null,null,null,!0);n.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?n.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,f,k){var c=document.createElement("div");
c.style.whiteSpace="nowrap";var e=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";c.appendChild(g)}var l=this.addCheckbox(c,mxResources.get("fit"),!0),n=this.addCheckbox(c,mxResources.get("shadow"),e.shadowVisible&&f,!f),m=this.addCheckbox(c,d),p=this.addCheckbox(c,mxResources.get("lightbox"),!0),E=this.addEditButton(c,p),H=E.getEditInput(),K=1<e.model.getChildCount(e.model.getRoot()),
F=this.addCheckbox(c,mxResources.get("layers"),K,!K);F.style.marginLeft=H.style.marginLeft;F.style.marginBottom="12px";F.style.marginTop="8px";mxEvent.addListener(p,"change",function(){p.checked?(K&&F.removeAttribute("disabled"),H.removeAttribute("disabled")):(F.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"));H.checked&&p.checked?E.getEditSelect().removeAttribute("disabled"):E.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,
function(){a(l.checked,n.checked,m.checked,p.checked,E.getLink(),F.checked)}),null,mxResources.get("embed"),k);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,d,f,k,m,p,t){function c(c){var b=" ",l="";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('"+
@@ -3483,7 +3484,7 @@ EditorUi.prototype.exportImage=function(a,b,d,f,k,m,p,t,A,x,G,z,E){A=null!=A?A:"
null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,f,null,null,m,p,x,z,E)}catch(K){this.spinner.stop(),this.handleError(K)}}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return this.editor.isCorsEnabledForUrl(a)};EditorUi.prototype.importXml=function(a,b,d,f,k,m,p){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 g=mxUtils.parseXml(a);a={};var l=this.editor.extractGraphModel(g.documentElement,
null!=this.pages);if(null!=l&&"mxfile"==l.nodeName&&null!=this.pages){var n=l.getElementsByTagName("diagram");if(1==n.length&&!m){if(l=Editor.parseDiagramNode(n[0]),null!=this.currentPage&&(a[n[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1]))){var q=n[0].getAttribute("name");null!=q&&""!=q&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,q))}}else if(0<
n.length){m=[];var u=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(a[n[0].getAttribute("id")]=this.pages[0].getId(),l=Editor.parseDiagramNode(n[0]),f=!1,u=1);for(;u<n.length;u++){var K=n[u].getAttribute("id");n[u].removeAttribute("id");var F=this.updatePageRoot(new DiagramPage(n[u]));a[K]=n[u].getAttribute("id");var I=this.pages.length;null==F.getName()&&F.setName(mxResources.get("pageWithNumber",[I+1]));e.model.execute(new ChangePage(this,F,F,I,!0));m.push(F)}this.updatePageLinks(a,
-m)}}if(null!=l&&"mxGraphModel"===l.nodeName&&(c=e.importGraphModel(l,b,d,f),null!=c))for(u=0;u<c.length;u++)this.updatePageLinksForCell(a,c[u]);p&&this.insertHandler(c,null,null,Graph.prototype.defaultVertexStyle,Graph.prototype.defaultEdgeStyle,!0,!0)}finally{e.model.endUpdate()}}}catch(D){if(k)throw D;this.handleError(D)}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,
+m)}}if(null!=l&&"mxGraphModel"===l.nodeName&&(c=e.importGraphModel(l,b,d,f),null!=c))for(u=0;u<c.length;u++)this.updatePageLinksForCell(a,c[u]);p&&this.insertHandler(c,null,null,Graph.prototype.defaultVertexStyle,Graph.prototype.defaultEdgeStyle,!0,!0)}finally{e.model.endUpdate()}}}catch(C){if(k)throw C;this.handleError(C)}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.sanitizeHtml(d.getLabel(b));for(var f=c.getElementsByTagName("a"),k=!1,m=0;m<f.length;m++)e=f[m].getAttribute("href"),null!=e&&(f[m].setAttribute("href",this.updatePageLink(a,e)),k=!0);k&&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(Graph.isPageLink(b)){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];if(null!=f.open&&Graph.isPageLink(f.open)){var k=f.open.substring(f.open.indexOf(",")+1),c=a[k];null!=c?f.open="data:page/id,"+c:null==this.getPageById(k)&&delete f.open}}b="data:action/json,"+JSON.stringify(d)}}catch(t){}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,k){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",g=f.lastIndexOf(".");if(0<=g&&g<f.length)e=f.substring(g+1).toUpperCase();else{var l=f.lastIndexOf("/");0<=
@@ -3497,7 +3498,7 @@ function(){mxscript("js/orgchart/OrgChart.Layout.min.js",function(){mxscript("js
a.replace(/ xmlns:\S*="http:\/\/www.w3.org\/XML\/1998\/namespace"/g,"").replace(/ (NS xml|\S*):space="preserve"/g,' xml:space="preserve"');var b=mxUtils.parseXml(a).getElementsByTagName("svg");if(0<b.length){var e=parseFloat(b[0].getAttribute("width")),g=parseFloat(b[0].getAttribute("height"));if(isNaN(e)||isNaN(g))try{var k=b[0].getAttribute("viewBox").split(/\s+/),e=parseFloat(k[2]),g=parseFloat(k[3])}catch(z){e=e||100,g=g||100}d(c.convertDataUri(Editor.createSvgDataUri(a)),e,g)}else f({message:mxResources.get("invalidInput")})}catch(z){f(z)}})}catch(u){f(u)}};
"undefined"!==typeof mermaid||this.loadingMermaid||this.isOffline(!0)?e():(this.loadingMermaid=!0,"1"==urlParams.dev?mxscript("js/mermaid/mermaid.min.js",e):mxscript("js/extensions.min.js",e))};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 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+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}(Graph.arrayBufferToString(pako.deflateRaw(a))),!0);"txt"!=b&&(g.responseType="blob");g.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 g=c.result,k=g.indexOf(","),l=decodeURIComponent(escape(atob(g.substring(k+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(D){f(D)}};b.src=c.result};c.onerror=function(a){f(a)}}else f(a)};g.onerror=
+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 g=c.result,k=g.indexOf(","),l=decodeURIComponent(escape(atob(g.substring(k+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(C){f(C)}};b.src=c.result};c.onerror=function(a){f(a)}}else f(a)};g.onerror=
function(a){f(a)};g.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,k,m,p,t){m=null!=m?m:!0;p=null!=p?p:!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()&&(k||/\.(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,m,!0,t)}if("data:image/png;base64,"==
a.substring(0,22)&&(e=this.extractGraphModelFromPng(a),null!=e&&0<e.length))return this.importXml(e,b,d,m,!0,t);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 g=this.importXml(e,b,d,m,!0,t);if(0<g.length)return g}catch(E){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,
@@ -3515,14 +3516,14 @@ b(a):d()})):0==e.indexOf("versions/")&&(e=parseInt(e.substr(9)),e>f&&(f=e,g=c))}
null,null!=z?mxEvent.isControlDown(z):null),A=!0)),A||(b=this.editor.graph,G=a.indexOf(";"),0<G&&(a=a.substring(0,G)+a.substring(a.indexOf(",",G+1))),x&&b.isGridEnabled()&&(d=b.snap(d),f=b.snap(f)),e=[b.insertVertex(null,null,"",d,f,k,m,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)?(c=!0,this.importGraphML(a,g)):null!=A&&null!=p&&(/(\.v(dx|sdx?))($|\?)/i.test(p)||/(\.vs(x|sx?))($|\?)/i.test(p))?
(c=!0,this.importVisio(A,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,p)?(c=!0,this.parseFile(null!=A?A:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?g(a.responseText):null!=t&&t(null))}),p)):0==a.indexOf("PK")&&null!=A?(c=!0,this.importZipFile(A,g,mxUtils.bind(this,function(){e=this.insertTextAt(this.validateFileData(a),d,f,!0,null,x);t(e)}))):/(\.v(sd|dx))($|\?)/i.test(p)||/(\.vs(s|x))($|\?)/i.test(p)||
(e=this.insertTextAt(this.validateFileData(a),d,f,!0,null,x,null,null!=z?mxEvent.isControlDown(z):null));c||null==t||t(e);return e};EditorUi.prototype.importFiles=function(a,b,d,f,k,m,p,t,A,x,G,z,E){f=null!=f?f:this.maxImageSize;x=null!=x?x:this.maxImageBytes;var c=null!=b&&null!=d,e=!0;b=null!=b?b:0;d=null!=d?d:0;var g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var l=G||this.resampleThreshold,n=0;n<a.length;n++)if("image/"==a[n].type.substring(0,6)&&a[n].size>l){g=!0;break}var q=mxUtils.bind(this,
-function(){var g=this.editor.graph,l=g.gridSize;k=null!=k?k: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,E)}catch(ca){return this.handleError(ca),null}});m=null!=m?m:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var n=a.length,q=n,u=[],D=mxUtils.bind(this,function(a,
+function(){var g=this.editor.graph,l=g.gridSize;k=null!=k?k: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,E)}catch(ca){return this.handleError(ca),null}});m=null!=m?m:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var n=a.length,q=n,u=[],C=mxUtils.bind(this,function(a,
c){u[a]=c;if(0==--q){this.spinner.stop();if(null!=t)t(u);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<u.length;d++){var e=u[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}m(b)}}),A=0;A<n;A++)mxUtils.bind(this,function(c){var n=a[c];if(null!=n){var m=new FileReader;m.onload=mxUtils.bind(this,function(a){if(null==p||p(n))if("image/"==n.type.substring(0,6))if("image/svg"==n.type.substring(0,9)){var m=Graph.clipSvgDataUri(a.target.result),q=m.indexOf(","),v=decodeURIComponent(escape(atob(m.substring(q+
-1)))),u=mxUtils.parseXml(v),v=u.getElementsByTagName("svg");if(0<v.length){var v=v[0],t=z?null:v.getAttribute("content");null!=t&&"<"!=t.charAt(0)&&"%"!=t.charAt(0)&&(t=unescape(window.atob?atob(t):Base64.decode(t,!0)));null!=t&&"%"==t.charAt(0)&&(t=decodeURIComponent(t));null==t||"<mxfile "!==t.substring(0,8)&&"<mxGraphModel "!==t.substring(0,14)?D(c,mxUtils.bind(this,function(){try{if(m.substring(0,q+1),null!=u){var a=u.getElementsByTagName("svg");if(0<a.length){var e=a[0],p=e.getAttribute("width"),
-v=e.getAttribute("height"),p=null!=p&&"%"!=p.charAt(p.length-1)?parseFloat(p):NaN,v=null!=v&&"%"!=v.charAt(v.length-1)?parseFloat(v):NaN,t=e.getAttribute("viewBox");if(null==t||0==t.length)e.setAttribute("viewBox","0 0 "+p+" "+v);else if(isNaN(p)||isNaN(v)){var x=t.split(" ");3<x.length&&(p=parseFloat(x[2]),v=parseFloat(x[3]))}m=Editor.createSvgDataUri(mxUtils.getXml(e));var z=Math.min(1,Math.min(f/Math.max(1,p)),f/Math.max(1,v)),D=k(m,n.type,b+c*l,d+c*l,Math.max(1,Math.round(p*z)),Math.max(1,Math.round(v*
-z)),n.name);if(isNaN(p)||isNaN(v)){var N=new Image;N.onload=mxUtils.bind(this,function(){p=Math.max(1,N.width);v=Math.max(1,N.height);D[0].geometry.width=p;D[0].geometry.height=v;e.setAttribute("viewBox","0 0 "+p+" "+v);m=Editor.createSvgDataUri(mxUtils.getXml(e));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));g.setCellStyles("image",m,[D[0]])});N.src=Editor.createSvgDataUri(mxUtils.getXml(e))}return D}}}catch(ba){}return null})):D(c,mxUtils.bind(this,function(){return k(t,
-"text/xml",b+c*l,d+c*l,0,0,n.name)}))}else D(c,mxUtils.bind(this,function(){return null}))}else{v=!1;if("image/png"==n.type){var N=z?null:this.extractGraphModelFromPng(a.target.result);if(null!=N&&0<N.length){var B=new Image;B.src=a.target.result;D(c,mxUtils.bind(this,function(){return k(N,"text/xml",b+c*l,d+c*l,B.width,B.height,n.name)}));v=!0}}v||(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(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(a,g,m){D(c,mxUtils.bind(this,function(){if(null!=a&&a.length<x){var p=e&&this.isResampleImageSize(n.size,G)?Math.min(1,Math.min(f/g,f/m)):1;return k(a,n.type,b+c*l,d+c*l,Math.round(g*p),Math.round(m*p),n.name)}this.handleError({message:mxResources.get("imageTooBig")});
-return null}))}),e,f,G,n.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else m=a.target.result,k(m,n.type,b+c*l,d+c*l,240,160,n.name,function(a){D(c,function(){return a})},n)});/(\.v(dx|sdx?))($|\?)/i.test(n.name)||/(\.vs(x|sx?))($|\?)/i.test(n.name)?k(null,n.type,b+c*l,d+c*l,240,160,n.name,function(a){D(c,function(){return a})},n):"image"==n.type.substring(0,5)||"application/pdf"==n.type?m.readAsDataURL(n):m.readAsText(n)}})(A)});if(g){g=
+1)))),u=mxUtils.parseXml(v),v=u.getElementsByTagName("svg");if(0<v.length){var v=v[0],t=z?null:v.getAttribute("content");null!=t&&"<"!=t.charAt(0)&&"%"!=t.charAt(0)&&(t=unescape(window.atob?atob(t):Base64.decode(t,!0)));null!=t&&"%"==t.charAt(0)&&(t=decodeURIComponent(t));null==t||"<mxfile "!==t.substring(0,8)&&"<mxGraphModel "!==t.substring(0,14)?C(c,mxUtils.bind(this,function(){try{if(m.substring(0,q+1),null!=u){var a=u.getElementsByTagName("svg");if(0<a.length){var e=a[0],p=e.getAttribute("width"),
+v=e.getAttribute("height"),p=null!=p&&"%"!=p.charAt(p.length-1)?parseFloat(p):NaN,v=null!=v&&"%"!=v.charAt(v.length-1)?parseFloat(v):NaN,t=e.getAttribute("viewBox");if(null==t||0==t.length)e.setAttribute("viewBox","0 0 "+p+" "+v);else if(isNaN(p)||isNaN(v)){var x=t.split(" ");3<x.length&&(p=parseFloat(x[2]),v=parseFloat(x[3]))}m=Editor.createSvgDataUri(mxUtils.getXml(e));var z=Math.min(1,Math.min(f/Math.max(1,p)),f/Math.max(1,v)),C=k(m,n.type,b+c*l,d+c*l,Math.max(1,Math.round(p*z)),Math.max(1,Math.round(v*
+z)),n.name);if(isNaN(p)||isNaN(v)){var N=new Image;N.onload=mxUtils.bind(this,function(){p=Math.max(1,N.width);v=Math.max(1,N.height);C[0].geometry.width=p;C[0].geometry.height=v;e.setAttribute("viewBox","0 0 "+p+" "+v);m=Editor.createSvgDataUri(mxUtils.getXml(e));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));g.setCellStyles("image",m,[C[0]])});N.src=Editor.createSvgDataUri(mxUtils.getXml(e))}return C}}}catch(ba){}return null})):C(c,mxUtils.bind(this,function(){return k(t,
+"text/xml",b+c*l,d+c*l,0,0,n.name)}))}else C(c,mxUtils.bind(this,function(){return null}))}else{v=!1;if("image/png"==n.type){var N=z?null:this.extractGraphModelFromPng(a.target.result);if(null!=N&&0<N.length){var B=new Image;B.src=a.target.result;C(c,mxUtils.bind(this,function(){return k(N,"text/xml",b+c*l,d+c*l,B.width,B.height,n.name)}));v=!0}}v||(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(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(a,g,m){C(c,mxUtils.bind(this,function(){if(null!=a&&a.length<x){var p=e&&this.isResampleImageSize(n.size,G)?Math.min(1,Math.min(f/g,f/m)):1;return k(a,n.type,b+c*l,d+c*l,Math.round(g*p),Math.round(m*p),n.name)}this.handleError({message:mxResources.get("imageTooBig")});
+return null}))}),e,f,G,n.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else m=a.target.result,k(m,n.type,b+c*l,d+c*l,240,160,n.name,function(a){C(c,function(){return a})},n)});/(\.v(dx|sdx?))($|\?)/i.test(n.name)||/(\.vs(x|sx?))($|\?)/i.test(n.name)?k(null,n.type,b+c*l,d+c*l,240,160,n.name,function(a){C(c,function(){return a})},n):"image"==n.type.substring(0,5)||"application/pdf"==n.type?m.readAsDataURL(n):m.readAsText(n)}})(A)});if(g){g=
[];for(n=0;n<a.length;n++)g.push(a[n]);a=g;this.confirmImageResize(function(a){e=a;q()},A)}else q()};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(q){}};EditorUi.prototype.isResampleImageSize=function(a,b){b=null!=b?b:this.resampleThreshold;return a>b};EditorUi.prototype.resizeImage=function(a,b,d,f,k,m,p){k=null!=k?k:this.maxImageSize;var c=Math.max(1,a.width),e=Math.max(1,a.height);if(f&&this.isResampleImageSize(null!=p?p:b.length,m))try{var g=Math.max(c/k,e/k);if(1<g){var l=Math.round(c/g),n=Math.round(e/
@@ -3531,21 +3532,22 @@ g),q=document.createElement("canvas");q.width=l;q.height=n;q.getContext("2d").dr
new TextareaDialog(a,mxResources.get("plantUml")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generatePlantUmlImage(d,f.format,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{if("txt"==f.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=g,l.height=k,b.cellsResized([c],[l],!1))}b.setAttributeForCell(c,"plantUmlData",
JSON.stringify({data:d,format:f.format}))}finally{b.getModel().endUpdate()}},function(c){a.handleError(c)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};b.cellEditor.editMermaidData=function(c,d,e){var f=JSON.parse(e);d=new TextareaDialog(a,mxResources.get("mermaid")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generateMermaidImage(d,f.config,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{b.setCellStyles("image",
e,[c]);var l=b.model.getGeometry(c);null!=l&&(l=l.clone(),l.width=Math.max(l.width,g),l.height=Math.max(l.height,k),b.cellsResized([c],[l],!1));b.setAttributeForCell(c,"mermaidData",JSON.stringify({data:d,config:f.config},null,2))}finally{b.getModel().endUpdate()}},function(c){a.handleError(c)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};var d=b.cellEditor.startEditing;b.cellEditor.startEditing=function(c,e){try{var f=this.graph.getAttributeForCell(c,"plantUmlData");if(null!=
-f)this.editPlantUmlData(c,e,f);else if(f=this.graph.getAttributeForCell(c,"mermaidData"),null!=f)this.editMermaidData(c,e,f);else{var g=b.getCellStyle(c);"1"==mxUtils.getValue(g,"metaEdit","0")?a.showDataDialog(c):d.apply(this,arguments)}}catch(P){a.handleError(P)}};b.getLinkTitle=function(c){return a.getLinkTitle(c)};b.customLinkClicked=function(c){var b=!1;try{a.handleCustomLink(c),b=!0}catch(M){a.handleError(M)}return b};var k=b.parseBackgroundImage;b.parseBackgroundImage=function(a){var c=k.apply(this,
-arguments);null!=c&&null!=c.src&&Graph.isPageLink(c.src)&&(c={originalSrc:c.src});return c};var l=b.setBackgroundImage;b.setBackgroundImage=function(c){null!=c&&null!=c.originalSrc&&(c=a.createImageForPageLink(c.originalSrc));l.apply(this,arguments)};var m=b.getBackgroundImageObject;b.getBackgroundImageObject=function(a){var c=m.apply(this,arguments);null!=c&&null!=c.originalSrc&&(c={src:c.originalSrc,width:c.width,height:c.height});return c};var p=this.clearDefaultStyle;this.clearDefaultStyle=function(){p.apply(this,
-arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var t=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(a){a=null!=a?a:"";"1"==urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1");return t.apply(this,arguments)};
-var A=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)};A.call(this,a,c,d)};f.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var x=Menus.prototype.addPopupMenuEditItems;
-this.menus.addPopupMenuEditItems=function(c,b,d){a.editor.graph.isSelectionEmpty()?x.apply(this,arguments):a.menus.addMenuItems(c,"delete - cut copy copyAsImage - duplicate".split(" "),null,d)}}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 G=b.getExportVariables;b.getExportVariables=function(){var c=G.apply(this,arguments),b=a.getCurrentFile();null!=
-b&&(c.filename=b.getTitle());c.pagecount=null!=a.pages?a.pages.length:1;c.page=null!=a.currentPage?a.currentPage.getName():"";c.pagenumber=null!=a.pages&&null!=a.currentPage?mxUtils.indexOf(a.pages,a.currentPage)+1:1;return c};var z=b.getGlobalVariable;b.getGlobalVariable=function(c){var b=a.getCurrentFile();return"filename"==c&&null!=b?b.getTitle():"page"==c&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==c?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:
-"pagecount"==c?null!=a.pages?a.pages.length:1:z.apply(this,arguments)};var E=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))E.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 c=a.defaultFilename,b=a.getCurrentFile();null!=b&&(c=null!=b.getTitle()?
-b.getTitle():c);return c};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,"findReplace"),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),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&b.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var 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 c=0;c<a.length;c++)a[c]()},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&&(H=this.editor.graph.view,H.setUnit(mxSettings.getUnit()),H.addListener("unitChanged",function(a,c){mxSettings.setUnit(c.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,c){if(0<this.editor.graph.getSelectionCount()){var b=this.editor.graph.getSelectionCell(),b=this.editor.graph.getModel().getStyle(b);this.styleInput.value=b||
-"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var K=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:K.apply(this,arguments)}}H=document.getElementById("geInfo");null!=H&&H.parentNode.removeChild(H);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var F=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=F&&(F.parentNode.removeChild(F),
+f)this.editPlantUmlData(c,e,f);else if(f=this.graph.getAttributeForCell(c,"mermaidData"),null!=f)this.editMermaidData(c,e,f);else{var g=b.getCellStyle(c);"1"==mxUtils.getValue(g,"metaEdit","0")?a.showDataDialog(c):d.apply(this,arguments)}}catch(O){a.handleError(O)}};b.getLinkTitle=function(c){return a.getLinkTitle(c)};b.customLinkClicked=function(c){var b=!1;try{a.handleCustomLink(c),b=!0}catch(M){a.handleError(M)}return b};var k=b.parseBackgroundImage;b.parseBackgroundImage=function(a){var c=k.apply(this,
+arguments);null!=c&&null!=c.src&&Graph.isPageLink(c.src)&&(c={originalSrc:c.src});return c};var l=b.setBackgroundImage;b.setBackgroundImage=function(c){null!=c&&null!=c.originalSrc&&(c=a.createImageForPageLink(c.originalSrc));l.apply(this,arguments)};this.editor.addListener("pageRenamed",mxUtils.bind(this,function(){b.refreshBackgroundImage()}));this.editor.addListener("pageMoved",mxUtils.bind(this,function(){b.refreshBackgroundImage()}));this.editor.addListener("pagesPatched",mxUtils.bind(this,function(a,
+c){var d=null!=b.backgroundImage?b.backgroundImage.originalSrc:null;if(null!=d){var e=d.indexOf(",");if(0<e)for(var d=d.substring(e+1),e=c.getProperty("patches"),f=0;f<e.length;f++)if(null!=e[f][EditorUi.DIFF_UPDATE][d]){b.refreshBackgroundImage();b.view.validateBackgroundImage();break}}}));var m=b.getBackgroundImageObject;b.getBackgroundImageObject=function(a){var c=m.apply(this,arguments);null!=c&&null!=c.originalSrc&&(c={src:c.originalSrc,width:c.width,height:c.height});return c};var p=this.clearDefaultStyle;
+this.clearDefaultStyle=function(){p.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var t=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(a){a=null!=a?a:"";"1"==urlParams.dev&&(a+=(0<a.length?
+"&":"?")+"dev=1");return t.apply(this,arguments)};var A=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)};A.call(this,a,c,d)};f.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);
+if(null!=this.menus){var x=Menus.prototype.addPopupMenuEditItems;this.menus.addPopupMenuEditItems=function(c,b,d){a.editor.graph.isSelectionEmpty()?x.apply(this,arguments):a.menus.addMenuItems(c,"delete - cut copy copyAsImage - duplicate".split(" "),null,d)}}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 G=b.getExportVariables;b.getExportVariables=function(){var c=
+G.apply(this,arguments),b=a.getCurrentFile();null!=b&&(c.filename=b.getTitle());c.pagecount=null!=a.pages?a.pages.length:1;c.page=null!=a.currentPage?a.currentPage.getName():"";c.pagenumber=null!=a.pages&&null!=a.currentPage?mxUtils.indexOf(a.pages,a.currentPage)+1:1;return c};var z=b.getGlobalVariable;b.getGlobalVariable=function(c){var b=a.getCurrentFile();return"filename"==c&&null!=b?b.getTitle():"page"==c&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==c?null!=a.currentPage&&null!=
+a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:"pagecount"==c?null!=a.pages?a.pages.length:1:z.apply(this,arguments)};var E=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))E.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 c=a.defaultFilename,
+b=a.getCurrentFile();null!=b&&(c=null!=b.getTitle()?b.getTitle():c);return c};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,"findReplace"),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),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&b.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var 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 c=0;c<a.length;c++)a[c]()},
+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&&(H=this.editor.graph.view,H.setUnit(mxSettings.getUnit()),H.addListener("unitChanged",function(a,c){mxSettings.setUnit(c.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,c){if(0<this.editor.graph.getSelectionCount()){var b=this.editor.graph.getSelectionCell(),b=this.editor.graph.getModel().getStyle(b);
+this.styleInput.value=b||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var K=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:K.apply(this,arguments)}}H=document.getElementById("geInfo");null!=H&&H.parentNode.removeChild(H);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var F=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=F&&(F.parentNode.removeChild(F),
F=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==F&&(!mxClient.IS_IE||10<document.documentMode)&&(F=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!=F&&(F.parentNode.removeChild(F),F=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;if(0<a.dataTransfer.files.length)mxEvent.isShiftDown(a)?this.openFiles(a.dataTransfer.files,!0):(mxEvent.isAltDown(a)&&(g=f=null),this.importFiles(a.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a),a));else{mxEvent.isAltDown(a)&&(g=f=0);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=b.sanitizeHtml(l);var n=null,d=c.getElementsByTagName("img");null!=d&&1==d.length?(l=d[0].getAttribute("src"),null==l&&(l=d[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)||(n=!0)):(d=c.getElementsByTagName("a"),null!=d&&1==d.length?l=d[0].getAttribute("href"):
@@ -3594,27 +3596,27 @@ this.addEmbedButtons();this.setGraphEnabled(!0);if(null==a||0==a.length)a=this.e
""))}}catch(A){console.log(A)}this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();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 c=this.editor.graph;return{event:a,pageVisible:c.pageVisible,translate:c.view.translate,bounds:c.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:c.view.scale,page:c.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(a){var c=null,b=!1,
d=!1,f=null,k=mxUtils.bind(this,function(a,c){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,k);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(ta){}return a});if("json"==urlParams.proto){var l=!1;try{g=JSON.parse(g)}catch(O){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?
+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(ta){}return a});if("json"==urlParams.proto){var l=!1;try{g=JSON.parse(g)}catch(P){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("layout"==g.action){this.executeLayoutList(g.layouts);return}if("prompt"==g.action){this.spinner.stop();var n=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):g.ok,function(a){null!=a?m.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*"):m.postMessage(JSON.stringify({event:"prompt-cancel",message:g}),
"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(n.container,300,80,!0,!1);n.init();return}if("draft"==g.action){var p=k(g.xml);this.spinner.stop();n=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),p,mxUtils.bind(this,function(){this.hideDialog();m.postMessage(JSON.stringify({event:"draft",result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();m.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();m.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(n.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{n.init()}catch(O){m.postMessage(JSON.stringify({event:"draft",error:O.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();
-var q=1==g.enableRecent,t=1==g.enableSearch,u=1==g.enableCustomTemp;if("1"==urlParams.newTempDlg&&!g.templatesOnly&&null!=g.callback){var D=this.getCurrentUser(),A=new TemplatesDialog(this,function(a,c,b){a=a||this.emptyDiagramXml;m.postMessage(JSON.stringify({event:"template",xml:a,blank:a==this.emptyDiagramXml,name:c,tempUrl:b.url,libs:b.libs,builtIn:null!=b.info&&null!=b.info.custContentId,message:g}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=D?D.id:
+"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();m.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(n.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{n.init()}catch(P){m.postMessage(JSON.stringify({event:"draft",error:P.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();
+var q=1==g.enableRecent,t=1==g.enableSearch,u=1==g.enableCustomTemp;if("1"==urlParams.newTempDlg&&!g.templatesOnly&&null!=g.callback){var C=this.getCurrentUser(),A=new TemplatesDialog(this,function(a,c,b){a=a||this.emptyDiagramXml;m.postMessage(JSON.stringify({event:"template",xml:a,blank:a==this.emptyDiagramXml,name:c,tempUrl:b.url,libs:b.libs,builtIn:null!=b.info&&null!=b.info.custContentId,message:g}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=C?C.id:
null,q?mxUtils.bind(this,function(a,c,b){this.remoteInvoke("getRecentDiagrams",[b],null,a,c)}):null,t?mxUtils.bind(this,function(a,c,b,d){this.remoteInvoke("searchDiagrams",[a,d],null,c,b)}):null,mxUtils.bind(this,function(a,c,b){this.remoteInvoke("getFileContent",[a.url],null,c,b)}),null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null,!1,!1,!0,!0);this.showDialog(A.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}n=
new NewDialog(this,!1,g.templatesOnly?!1:null!=g.callback,mxUtils.bind(this,function(c,b,d,f){c=c||this.emptyDiagramXml;null!=g.callback?m.postMessage(JSON.stringify({event:"template",xml:c,blank:c==this.emptyDiagramXml,name:b,tempUrl:d,libs:f,builtIn:!0,message:g}),"*"):(a(c,e,c!=this.emptyDiagramXml,g.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,q?mxUtils.bind(this,function(a){this.remoteInvoke("getRecentDiagrams",[null],null,a,function(){a(null,
"Network Error!")})}):null,t?mxUtils.bind(this,function(a,c){this.remoteInvoke("searchDiagrams",[a,null],null,c,function(){c(null,"Network Error!")})}):null,mxUtils.bind(this,function(a,c,b){m.postMessage(JSON.stringify({event:"template",docUrl:a,info:c,name:b}),"*")}),null,null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null,1==g.withoutType);this.showDialog(n.container,620,460,!0,!1,mxUtils.bind(this,function(a){this.sidebar.hideTooltip();
-a&&this.actions.get("exit").funct()}));n.init();return}if("textContent"==g.action){var U=this.getDiagramTextContent();m.postMessage(JSON.stringify({event:"textContent",data:U,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 P=null!=g.messageKey?mxResources.get(g.messageKey):
-g.message;null==g.show||g.show?this.spinner.spin(document.body,P):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 N=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var v=this.editor.graph,C=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var c=this.createLoadMessage("export");c.format=
-g.format;c.message=g;c.data=a;c.xml=N;m.postMessage(JSON.stringify(c),"*")}),B=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(N)));v!=this.editor.graph&&v.container.parentNode.removeChild(v.container);C(a)}),J=g.pageId||(null!=this.pages?g.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){null!=g.xml&&0<g.xml.length&&(b=!0,this.setFileData(N),b=!1);if(null!=
+a&&this.actions.get("exit").funct()}));n.init();return}if("textContent"==g.action){var U=this.getDiagramTextContent();m.postMessage(JSON.stringify({event:"textContent",data:U,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 O=null!=g.messageKey?mxResources.get(g.messageKey):
+g.message;null==g.show||g.show?this.spinner.spin(document.body,O):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 N=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var v=this.editor.graph,D=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var c=this.createLoadMessage("export");c.format=
+g.format;c.message=g;c.data=a;c.xml=N;m.postMessage(JSON.stringify(c),"*")}),B=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(N)));v!=this.editor.graph&&v.container.parentNode.removeChild(v.container);D(a)}),J=g.pageId||(null!=this.pages?g.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){null!=g.xml&&0<g.xml.length&&(b=!0,this.setFileData(N),b=!1);if(null!=
this.pages&&this.currentPage.getId()!=J){for(var L=v.getGlobalVariable,v=this.createTemporaryGraph(v.getStylesheet()),W,Q=0;Q<this.pages.length;Q++)if(this.pages[Q].getId()==J){W=this.updatePageRoot(this.pages[Q]);break}null==W&&(W=this.currentPage);v.getGlobalVariable=function(a){return"page"==a?W.getName():"pagenumber"==a?1:L.apply(this,arguments)};document.body.appendChild(v.container);v.model.setRoot(W.root)}if(null!=g.layerIds){for(var aa=v.model,na=aa.getChildCells(aa.getRoot()),n={},Q=0;Q<
g.layerIds.length;Q++)n[g.layerIds[Q]]=!0;for(Q=0;Q<na.length;Q++)aa.setVisible(na[Q],n[na[Q].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(a){B(a.toDataURL("image/png"))}),g.width,null,g.background,mxUtils.bind(this,function(){B(null)}),null,null,g.scale,g.transparent,g.shadow,null,v,g.border,null,g.grid,g.keepTheme)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+(null!=J?"&pageId="+J:"")+(null!=g.layerIds&&0<g.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:g.layerIds})):
-"")+(null!=g.scale?"&scale="+g.scale:"")+"&base64=1&xml="+encodeURIComponent(N))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?C("data:image/png;base64,"+a.getText()):B(null)}),mxUtils.bind(this,function(){B(null)}))}}else{null!=g.xml&&0<g.xml.length&&(b=!0,this.setFileData(g.xml),b=!1);P=this.createLoadMessage("export");P.message=g;if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var ga=this.getXmlFileData();P.xml=
-mxUtils.getXml(ga);P.data=this.getFileData(null,null,!0,null,null,null,ga);P.format=g.format}else if("html"==g.format)N=this.editor.getGraphXml(),P.data=this.getHtml(N,this.editor.graph),P.xml=mxUtils.getXml(N),P.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ea=null!=g.background?g.background:this.editor.graph.background;ea==mxConstants.NONE&&(ea=null);P.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);P.format="svg";var la=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
-this.spinner.stop();P.data=Editor.createSvgDataUri(a);m.postMessage(JSON.stringify(P),"*")});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(P.xml,this.editor.graph,null,!0,la,null,null,g.embedImages,ea,g.scale,g.border,g.shadow,g.keepTheme);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 V=this.editor.graph.getSvg(ea,g.scale,g.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||g.shadow,null,g.keepTheme);(this.editor.graph.shadowVisible||g.shadow)&&this.editor.graph.addSvgShadow(V);this.embedFonts(V,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){la(mxUtils.getXml(a))})):la(mxUtils.getXml(a))}))}return}m.postMessage(JSON.stringify(P),"*")}return}if("load"==g.action){l=g.toSketch;d=1==
+"")+(null!=g.scale?"&scale="+g.scale:"")+"&base64=1&xml="+encodeURIComponent(N))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?D("data:image/png;base64,"+a.getText()):B(null)}),mxUtils.bind(this,function(){B(null)}))}}else{null!=g.xml&&0<g.xml.length&&(b=!0,this.setFileData(g.xml),b=!1);O=this.createLoadMessage("export");O.message=g;if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var ga=this.getXmlFileData();O.xml=
+mxUtils.getXml(ga);O.data=this.getFileData(null,null,!0,null,null,null,ga);O.format=g.format}else if("html"==g.format)N=this.editor.getGraphXml(),O.data=this.getHtml(N,this.editor.graph),O.xml=mxUtils.getXml(N),O.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ea=null!=g.background?g.background:this.editor.graph.background;ea==mxConstants.NONE&&(ea=null);O.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);O.format="svg";var la=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
+this.spinner.stop();O.data=Editor.createSvgDataUri(a);m.postMessage(JSON.stringify(O),"*")});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(O.xml,this.editor.graph,null,!0,la,null,null,g.embedImages,ea,g.scale,g.border,g.shadow,g.keepTheme);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 V=this.editor.graph.getSvg(ea,g.scale,g.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||g.shadow,null,g.keepTheme);(this.editor.graph.shadowVisible||g.shadow)&&this.editor.graph.addSvgShadow(V);this.embedFonts(V,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){la(mxUtils.getXml(a))})):la(mxUtils.getXml(a))}))}return}m.postMessage(JSON.stringify(O),"*")}return}if("load"==g.action){l=g.toSketch;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.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=g.noSaveBtn);null!=g.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=g.noExitBtn);null!=g.title&&null!=this.buttonContainer&&(p=document.createElement("span"),mxUtils.write(p,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight=
-"12px",this.buttonContainer.style.paddingTop="6px",this.buttonContainer.style.right="1"==urlParams.noLangIcon?"0":"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);try{g.libs&&this.sidebar.showEntries(g.libs)}catch(O){}g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):
+"12px",this.buttonContainer.style.paddingTop="6px",this.buttonContainer.style.right="1"==urlParams.noLangIcon?"0":"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);try{g.libs&&this.sidebar.showEntries(g.libs)}catch(P){}g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):
null!=g.descriptor?g.descriptor:g.xml}else{if("merge"==g.action){var ca=this.getCurrentFile();null!=ca&&(p=k(g.xml),null!=p&&""!=p&&ca.mergeFile(new LocalFile(this,p),function(){m.postMessage(JSON.stringify({event:"merge",message:g}),"*")},function(a){m.postMessage(JSON.stringify({event:"merge",message:g,error:a}),"*")}))}else"remoteInvokeReady"==g.action?this.handleRemoteInvokeReady(m):"remoteInvoke"==g.action?this.handleRemoteInvoke(g,e.origin):"remoteInvokeResponse"==g.action?this.handleRemoteInvokeResponse(g):
-m.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}catch(O){this.handleError(O)}}var ma=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),T=mxUtils.bind(this,function(e,g){b=!0;try{a(e,g,null,l)}catch(da){this.handleError(da)}b=!1;null!=urlParams.modified&&this.editor.setStatus("");f=ma();d&&null==c&&(c=mxUtils.bind(this,function(a,c){var d=ma();if(d!=
+m.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}catch(P){this.handleError(P)}}var ma=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),T=mxUtils.bind(this,function(e,g){b=!0;try{a(e,g,null,l)}catch(da){this.handleError(da)}b=!1;null!=urlParams.modified&&this.editor.setStatus("");f=ma();d&&null==c&&(c=mxUtils.bind(this,function(a,c){var d=ma();if(d!=
f&&!b){var e=this.createLoadMessage("autosave");e.xml=d;(window.opener||window.parent).postMessage(JSON.stringify(e),"*")}f=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,c),this.editor.graph.addListener("gridSizeChanged",c),this.editor.graph.addListener("shadowVisibleChanged",c),this.addListener("pageFormatChanged",c),this.addListener("pageScaleChanged",c),this.addListener("backgroundColorChanged",c),this.addListener("backgroundImageChanged",c),this.addListener("foldingEnabledChanged",c),
this.addListener("mathEnabledChanged",c),this.addListener("gridEnabledChanged",c),this.addListener("guidesEnabledChanged",c),this.addListener("pageViewChanged",c));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var k=this.createLoadMessage("load");k.xml=e;m.postMessage(JSON.stringify(k),"*")}});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){T(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)&&T(a.responseText,e)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,
@@ -3624,20 +3626,20 @@ var d=b;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var f="1"==u
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),d=b);"1"!=urlParams.noExitBtn&&(b=document.createElement("a"),d="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),
mxUtils.write(b,d),b.setAttribute("title",d),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),a.appendChild(b),d=b);d.style.marginRight="20px";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://drawio-app.com/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 k in a[e].config)f[k]=a[e].config[k];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 k={},m=null,p=null,x=null,G=null,z=null,E=null,H=null,K=null,F=null,I="",D="auto",M="auto",U=null,P=null,N=40,v=40,C=100,B=0,J=this.editor.graph;J.getGraphBounds();for(var L=function(){null!=b?b(ra):(J.setSelectionCells(ra),J.scrollCellToVisible(J.getSelectionCell()))},
-W=J.getFreeInsertPoint(),Q=W.x,aa=W.y,W=aa,na=null,ga="auto",F=null,ea=[],la=null,V=null,ca=0;ca<c.length&&"#"==c[ca].charAt(0);){a=c[ca];for(ca++;ca<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[ca].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[ca].substring(1)),ca++;if("#"!=a.charAt(1)){var ma=a.indexOf(":");if(0<ma){var T=mxUtils.trim(a.substring(1,ma)),O=mxUtils.trim(a.substring(ma+1));"label"==T?na=J.sanitizeHtml(O):"labelname"==T&&0<O.length&&"-"!=O?z=O:"labels"==T&&0<O.length&&"-"!=
-O?E=JSON.parse(O):"style"==T?p=O:"parentstyle"==T?H=O:"stylename"==T&&0<O.length&&"-"!=O?G=O:"styles"==T&&0<O.length&&"-"!=O?x=JSON.parse(O):"vars"==T&&0<O.length&&"-"!=O?m=JSON.parse(O):"identity"==T&&0<O.length&&"-"!=O?K=O:"parent"==T&&0<O.length&&"-"!=O?F=O:"namespace"==T&&0<O.length&&"-"!=O?I=O:"width"==T?D=O:"height"==T?M=O:"left"==T&&0<O.length?U=O:"top"==T&&0<O.length?P=O:"ignore"==T?V=O.split(","):"connect"==T?ea.push(JSON.parse(O)):"link"==T?la=O:"padding"==T?B=parseFloat(O):"edgespacing"==
-T?N=parseFloat(O):"nodespacing"==T?v=parseFloat(O):"levelspacing"==T?C=parseFloat(O):"layout"==T&&(ga=O)}}}if(null==c[ca])throw Error(mxResources.get("invalidOrMissingFile"));for(var ta=this.editor.csvToArray(c[ca]),T=ma=null,O=[],X=0;X<ta.length;X++)K==ta[X]&&(ma=X),F==ta[X]&&(T=X),O.push(mxUtils.trim(ta[X]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==na&&(na="%"+O[0]+"%");if(null!=ea)for(var da=0;da<ea.length;da++)null==k[ea[da].to]&&(k[ea[da].to]={});K=[];for(X=ca+1;X<
+if(null!=a[e].config)for(var k in a[e].config)f[k]=a[e].config[k];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 k={},m=null,p=null,x=null,G=null,z=null,E=null,H=null,K=null,F=null,I="",C="auto",M="auto",U=null,O=null,N=40,v=40,D=100,B=0,J=this.editor.graph;J.getGraphBounds();for(var L=function(){null!=b?b(ra):(J.setSelectionCells(ra),J.scrollCellToVisible(J.getSelectionCell()))},
+W=J.getFreeInsertPoint(),Q=W.x,aa=W.y,W=aa,na=null,ga="auto",F=null,ea=[],la=null,V=null,ca=0;ca<c.length&&"#"==c[ca].charAt(0);){a=c[ca];for(ca++;ca<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[ca].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[ca].substring(1)),ca++;if("#"!=a.charAt(1)){var ma=a.indexOf(":");if(0<ma){var T=mxUtils.trim(a.substring(1,ma)),P=mxUtils.trim(a.substring(ma+1));"label"==T?na=J.sanitizeHtml(P):"labelname"==T&&0<P.length&&"-"!=P?z=P:"labels"==T&&0<P.length&&"-"!=
+P?E=JSON.parse(P):"style"==T?p=P:"parentstyle"==T?H=P:"stylename"==T&&0<P.length&&"-"!=P?G=P:"styles"==T&&0<P.length&&"-"!=P?x=JSON.parse(P):"vars"==T&&0<P.length&&"-"!=P?m=JSON.parse(P):"identity"==T&&0<P.length&&"-"!=P?K=P:"parent"==T&&0<P.length&&"-"!=P?F=P:"namespace"==T&&0<P.length&&"-"!=P?I=P:"width"==T?C=P:"height"==T?M=P:"left"==T&&0<P.length?U=P:"top"==T&&0<P.length?O=P:"ignore"==T?V=P.split(","):"connect"==T?ea.push(JSON.parse(P)):"link"==T?la=P:"padding"==T?B=parseFloat(P):"edgespacing"==
+T?N=parseFloat(P):"nodespacing"==T?v=parseFloat(P):"levelspacing"==T?D=parseFloat(P):"layout"==T&&(ga=P)}}}if(null==c[ca])throw Error(mxResources.get("invalidOrMissingFile"));for(var ta=this.editor.csvToArray(c[ca]),T=ma=null,P=[],X=0;X<ta.length;X++)K==ta[X]&&(ma=X),F==ta[X]&&(T=X),P.push(mxUtils.trim(ta[X]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==na&&(na="%"+P[0]+"%");if(null!=ea)for(var da=0;da<ea.length;da++)null==k[ea[da].to]&&(k[ea[da].to]={});K=[];for(X=ca+1;X<
c.length;X++){var ia=this.editor.csvToArray(c[X]);if(null==ia){var pa=40<c[X].length?c[X].substring(0,40)+"...":c[X];throw Error(pa+" ("+X+"):\n"+mxResources.get("containsValidationErrors"));}0<ia.length&&K.push(ia)}J.model.beginUpdate();try{for(X=0;X<K.length;X++){var ia=K[X],R=null,ka=null!=ma?I+ia[ma]:null;null!=ka&&(R=J.model.getCell(ka));var c=null!=R,ba=new mxCell(na,new mxGeometry(Q,W,0,0),p||"whiteSpace=wrap;html=1;");ba.vertex=!0;ba.id=ka;for(var ja=0;ja<ia.length;ja++)J.setAttributeForCell(ba,
-O[ja],ia[ja]);if(null!=z&&null!=E){var Y=E[ba.getAttribute(z)];null!=Y&&J.labelChanged(ba,Y)}if(null!=G&&null!=x){var qa=x[ba.getAttribute(G)];null!=qa&&(ba.style=qa)}J.setAttributeForCell(ba,"placeholders","1");ba.style=J.replacePlaceholders(ba,ba.style,m);c&&(J.model.setGeometry(R,ba.geometry),J.model.setStyle(R,ba.style),0>mxUtils.indexOf(e,R)&&e.push(R));R=ba;if(!c)for(da=0;da<ea.length;da++)k[ea[da].to][R.getAttribute(ea[da].to)]=R;null!=la&&"link"!=la&&(J.setLinkForCell(R,R.getAttribute(la)),
-J.setAttributeForCell(R,la,null));J.fireEvent(new mxEventObject("cellsInserted","cells",[R]));var va=this.editor.graph.getPreferredSizeForCell(R);R.vertex&&(null!=U&&null!=R.getAttribute(U)&&(R.geometry.x=Q+parseFloat(R.getAttribute(U))),null!=P&&null!=R.getAttribute(P)&&(R.geometry.y=aa+parseFloat(R.getAttribute(P))),"@"==D.charAt(0)&&null!=R.getAttribute(D.substring(1))?R.geometry.width=parseFloat(R.getAttribute(D.substring(1))):R.geometry.width="auto"==D?va.width+B:parseFloat(D),"@"==M.charAt(0)&&
+P[ja],ia[ja]);if(null!=z&&null!=E){var Y=E[ba.getAttribute(z)];null!=Y&&J.labelChanged(ba,Y)}if(null!=G&&null!=x){var qa=x[ba.getAttribute(G)];null!=qa&&(ba.style=qa)}J.setAttributeForCell(ba,"placeholders","1");ba.style=J.replacePlaceholders(ba,ba.style,m);c&&(J.model.setGeometry(R,ba.geometry),J.model.setStyle(R,ba.style),0>mxUtils.indexOf(e,R)&&e.push(R));R=ba;if(!c)for(da=0;da<ea.length;da++)k[ea[da].to][R.getAttribute(ea[da].to)]=R;null!=la&&"link"!=la&&(J.setLinkForCell(R,R.getAttribute(la)),
+J.setAttributeForCell(R,la,null));J.fireEvent(new mxEventObject("cellsInserted","cells",[R]));var va=this.editor.graph.getPreferredSizeForCell(R);R.vertex&&(null!=U&&null!=R.getAttribute(U)&&(R.geometry.x=Q+parseFloat(R.getAttribute(U))),null!=O&&null!=R.getAttribute(O)&&(R.geometry.y=aa+parseFloat(R.getAttribute(O))),"@"==C.charAt(0)&&null!=R.getAttribute(C.substring(1))?R.geometry.width=parseFloat(R.getAttribute(C.substring(1))):R.geometry.width="auto"==C?va.width+B:parseFloat(C),"@"==M.charAt(0)&&
null!=R.getAttribute(M.substring(1))?R.geometry.height=parseFloat(R.getAttribute(M.substring(1))):R.geometry.height="auto"==M?va.height+B:parseFloat(M),W+=R.geometry.height+v);c?(null==f[ka]&&(f[ka]=[]),f[ka].push(R)):(F=null!=T?J.model.getCell(I+ia[T]):null,d.push(R),null!=F?(F.style=J.replacePlaceholders(F,H,m),J.addCell(R,F)):e.push(J.addCell(R)))}for(var ua=e.slice(),ra=e.slice(),da=0;da<ea.length;da++)for(var ya=ea[da],X=0;X<d.length;X++){var R=d[X],za=mxUtils.bind(this,function(a,c,b){var d=
c.getAttribute(b.from);if(null!=d&&(J.setAttributeForCell(c,b.from,null),""!=d))for(var d=d.split(","),e=0;e<d.length;e++){var f=k[b.to][d[e]];if(null!=f){var g=b.label;null!=b.fromlabel&&(g=(c.getAttribute(b.fromlabel)||"")+(g||""));null!=b.sourcelabel&&(g=J.replacePlaceholders(c,b.sourcelabel,m)+(g||""));null!=b.tolabel&&(g=(g||"")+(f.getAttribute(b.tolabel)||""));null!=b.targetlabel&&(g=(g||"")+J.replacePlaceholders(f,b.targetlabel,m));var l="target"==b.placeholders==!b.invert?f:a,l=null!=b.style?
J.replacePlaceholders(l,b.style,m):J.createCurrentEdgeStyle(),g=J.insertEdge(null,null,g||"",b.invert?f:a,b.invert?a:f,l);if(null!=b.labels)for(l=0;l<b.labels.length;l++){var n=b.labels[l],p=new mxCell(n.label||l,new mxGeometry(null!=n.x?n.x:0,null!=n.y?n.y:0,0,0),"resizable=0;html=1;");p.vertex=!0;p.connectable=!1;p.geometry.relative=!0;null!=n.placeholders&&(p.value=J.replacePlaceholders("target"==n.placeholders==!b.invert?f:a,p.value,m));if(null!=n.dx||null!=n.dy)p.geometry.offset=new mxPoint(null!=
n.dx?n.dx:0,null!=n.dy?n.dy:0);g.insert(p)}ra.push(g);mxUtils.remove(b.invert?a:f,ua)}}});za(R,R,ya);if(null!=f[R.id])for(ja=0;ja<f[R.id].length;ja++)za(R,f[R.id][ja],ya)}if(null!=V)for(X=0;X<d.length;X++)for(R=d[X],ja=0;ja<V.length;ja++)J.setAttributeForCell(R,mxUtils.trim(V[ja]),null);if(0<e.length){var S=new mxParallelEdgeLayout(J);S.spacing=N;S.checkOverlap=!0;var Aa=function(){0<S.spacing&&S.execute(J.getDefaultParent());for(var a=0;a<e.length;a++){var c=J.getCellGeometry(e[a]);c.x=Math.round(J.snap(c.x));
-c.y=Math.round(J.snap(c.y));"auto"==D&&(c.width=Math.round(J.snap(c.width)));"auto"==M&&(c.height=Math.round(J.snap(c.height)))}};if("["==ga.charAt(0)){var ha=L;J.view.validate();this.executeLayoutList(JSON.parse(ga),function(){Aa();ha()});L=null}else if("circle"==ga){var Ba=new mxCircleLayout(J);Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var wa=Ba.isVertexIgnored;Ba.isVertexIgnored=function(a){return wa.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){Ba.execute(J.getDefaultParent());
+c.y=Math.round(J.snap(c.y));"auto"==C&&(c.width=Math.round(J.snap(c.width)));"auto"==M&&(c.height=Math.round(J.snap(c.height)))}};if("["==ga.charAt(0)){var ha=L;J.view.validate();this.executeLayoutList(JSON.parse(ga),function(){Aa();ha()});L=null}else if("circle"==ga){var Ba=new mxCircleLayout(J);Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var wa=Ba.isVertexIgnored;Ba.isVertexIgnored=function(a){return wa.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){Ba.execute(J.getDefaultParent());
Aa()},!0,L);L=null}else if("horizontaltree"==ga||"verticaltree"==ga||"auto"==ga&&ra.length==2*e.length-1&&1==ua.length){J.view.validate();var Da=new mxCompactTreeLayout(J,"horizontaltree"==ga);Da.levelDistance=v;Da.edgeRouting=!1;Da.resetEdges=!1;this.executeLayout(function(){Da.execute(J.getDefaultParent(),0<ua.length?ua[0]:null)},!0,L);L=null}else if("horizontalflow"==ga||"verticalflow"==ga||"auto"==ga&&1==ua.length){J.view.validate();var Ca=new mxHierarchicalLayout(J,"horizontalflow"==ga?mxConstants.DIRECTION_WEST:
-mxConstants.DIRECTION_NORTH);Ca.intraCellSpacing=v;Ca.parallelEdgeSpacing=N;Ca.interRankCellSpacing=C;Ca.disableEdgeStyle=!1;this.executeLayout(function(){Ca.execute(J.getDefaultParent(),ra);J.moveCells(ra,Q,aa)},!0,L);L=null}else if("organic"==ga||"auto"==ga&&ra.length>e.length){J.view.validate();var xa=new mxFastOrganicLayout(J);xa.forceConstant=3*v;xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Fa=xa.isVertexIgnored;xa.isVertexIgnored=function(a){return Fa.apply(this,arguments)||0>mxUtils.indexOf(e,
+mxConstants.DIRECTION_NORTH);Ca.intraCellSpacing=v;Ca.parallelEdgeSpacing=N;Ca.interRankCellSpacing=D;Ca.disableEdgeStyle=!1;this.executeLayout(function(){Ca.execute(J.getDefaultParent(),ra);J.moveCells(ra,Q,aa)},!0,L);L=null}else if("organic"==ga||"auto"==ga&&ra.length>e.length){J.view.validate();var xa=new mxFastOrganicLayout(J);xa.forceConstant=3*v;xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Fa=xa.isVertexIgnored;xa.isVertexIgnored=function(a){return Fa.apply(this,arguments)||0>mxUtils.indexOf(e,
a)};this.executeLayout(function(){xa.execute(J.getDefaultParent());Aa()},!0,L);L=null}}this.hideDialog()}finally{J.model.endUpdate()}null!=L&&L()}}catch(Z){this.handleError(Z)}};EditorUi.prototype.getSearch=function(a){var c="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var b="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(c+=b+d+"="+urlParams[d],b="&")}else c=window.location.search;return c};EditorUi.prototype.getUrl=function(a){a=
null!=a?a:window.location.pathname;var c=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var b="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(b,d)&&(a=0==c?a+"?":a+"&",null!=urlParams[d]&&(a+=d+"="+urlParams[d],c++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,d,f,k){a=new LinkDialog(this,a,b,d,!0,f,k);this.showDialog(a.container,560,130,!0,!0);a.init()};EditorUi.prototype.getServiceCount=
function(a){var c=1;null==this.drive&&"function"!==typeof window.DriveClient||c++;null==this.dropbox&&"function"!==typeof window.DropboxClient||c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||c++;null!=this.gitHub&&c++;null!=this.gitLab&&c++;null!=this.notion&&c++;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();
@@ -3660,11 +3662,11 @@ null,mxUtils.bind(this,function(c){a--;0==a&&this.spinner.stop();try{this.loadLi
"*");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,d,f,k){var c=!0,e=window.setTimeout(mxUtils.bind(this,function(){c=!1;k({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),
this.timeout),g=mxUtils.bind(this,function(){window.clearTimeout(e);c&&f.apply(this,arguments)}),l=mxUtils.bind(this,function(){window.clearTimeout(e);c&&k.apply(this,arguments)});d=d||{};d.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:g,error:l});a=JSON.stringify({event:"remoteInvoke",funtionName:a,functionArgs:b,msgMarkers:d});null!=this.remoteWin?this.remoteWin.postMessage(a,"*"):this.remoteInvokeQueue.push(a)};EditorUi.prototype.handleRemoteInvoke=function(a,
b){var c=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 d=a.funtionName,e=this.remoteInvokableFns[d];if(null!=e&&"function"===typeof this[d]){if(e.allowedDomains){for(var f=!1,k=0;k<e.allowedDomains.length;k++)if(b=="https://"+e.allowedDomains[k]){f=!0;break}if(!f){c(null,"Invalid Call: "+d+" is not allowed.");return}}var m=a.functionArgs;Array.isArray(m)||
-(m=[]);if(e.isAsync)m.push(function(){c(Array.prototype.slice.apply(arguments))}),m.push(function(a){c(null,a||"Unkown Error")}),this[d].apply(this,m);else{var p=this[d].apply(this,m);c([p])}}else c(null,"Invalid Call: "+d+" is not found.")}catch(x){c(null,"Invalid Call: An error occured, "+x.message)}};EditorUi.prototype.openDatabase=function(a,b){if(null==this.database){var c=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=c)try{var d=c.open("database",2);d.onupgradeneeded=
+(m=[]);if(e.isAsync)m.push(function(){c(Array.prototype.slice.apply(arguments))}),m.push(function(a){c(null,a||"Unkown Error")}),this[d].apply(this,m);else{var p=this[d].apply(this,m);c([p])}}else c(null,"Invalid Call: "+d+" is not found.")}catch(x){c(null,"Invalid Call: An error occurred, "+x.message)}};EditorUi.prototype.openDatabase=function(a,b){if(null==this.database){var c=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=c)try{var d=c.open("database",2);d.onupgradeneeded=
function(a){try{var c=d.result;1>a.oldVersion&&c.createObjectStore("objects",{keyPath:"key"});2>a.oldVersion&&(c.createObjectStore("files",{keyPath:"title"}),c.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(u){null!=b&&b(u)}};d.onsuccess=mxUtils.bind(this,function(b){var c=d.result;this.database=c;EditorUi.migrateStorageFiles&&(StorageFile.migrate(c),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||
(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(a){if(!a||"1"==urlParams.forceMigration){var b=document.createElement("iframe");b.style.display="none";b.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(b);var c=!0,d=!1,e,f=0,g=mxUtils.bind(this,function(){d=!0;this.setDatabaseItem(".drawioMigrated3",!0);b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",
-funtionName:"setMigratedFlag"}),"*")}),k=mxUtils.bind(this,function(){f++;l()}),l=mxUtils.bind(this,function(){try{if(f>=e.length)g();else{var a=e[f];StorageFile.getFileContent(this,a,mxUtils.bind(this,function(c){null==c||".scratchpad"==a&&c==this.emptyLibraryXml?b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[a]}),"*"):k()}),k)}}catch(D){console.log(D)}}),m=mxUtils.bind(this,function(a){try{this.setDatabaseItem(null,[{title:a.title,
-size:a.data.length,lastModified:Date.now(),type:a.isLib?"L":"F"},{title:a.title,data:a.data}],k,k,["filesInfo","files"])}catch(D){console.log(D)}});a=mxUtils.bind(this,function(a){try{if(a.source==b.contentWindow){var f={};try{f=JSON.parse(a.data)}catch(M){}"init"==f.event?(b.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=f.event||d||
+funtionName:"setMigratedFlag"}),"*")}),k=mxUtils.bind(this,function(){f++;l()}),l=mxUtils.bind(this,function(){try{if(f>=e.length)g();else{var a=e[f];StorageFile.getFileContent(this,a,mxUtils.bind(this,function(c){null==c||".scratchpad"==a&&c==this.emptyLibraryXml?b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[a]}),"*"):k()}),k)}}catch(C){console.log(C)}}),m=mxUtils.bind(this,function(a){try{this.setDatabaseItem(null,[{title:a.title,
+size:a.data.length,lastModified:Date.now(),type:a.isLib?"L":"F"},{title:a.title,data:a.data}],k,k,["filesInfo","files"])}catch(C){console.log(C)}});a=mxUtils.bind(this,function(a){try{if(a.source==b.contentWindow){var f={};try{f=JSON.parse(a.data)}catch(M){}"init"==f.event?(b.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=f.event||d||
(c?null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?(e=f.resp[0],c=!1,l()):g():null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?m(f.resp[0]):k())}}catch(M){console.log(M)}});window.addEventListener("message",a)}})));a(c);c.onversionchange=function(){c.close()}});d.onerror=b;d.onblocked=function(){}}catch(l){null!=b&&b(l)}else null!=b&&b()}else a(this.database)};EditorUi.prototype.setDatabaseItem=function(a,b,d,f,k){this.openDatabase(mxUtils.bind(this,function(c){try{k=k||"objects";Array.isArray(k)||(k=
[k],a=[a],b=[b]);var e=c.transaction(k,"readwrite");e.oncomplete=d;e.onerror=f;for(c=0;c<k.length;c++)e.objectStore(k[c]).put(null!=a&&null!=a[c]?{key:a[c],data:b[c]}:b[c])}catch(t){null!=f&&f(t)}}),f)};EditorUi.prototype.removeDatabaseItem=function(a,b,d,f){this.openDatabase(mxUtils.bind(this,function(c){f=f||"objects";Array.isArray(f)||(f=[f],a=[a]);c=c.transaction(f,"readwrite");c.oncomplete=b;c.onerror=d;for(var e=0;e<f.length;e++)c.objectStore(f[e])["delete"](a[e])}),d)};EditorUi.prototype.getDatabaseItem=
function(a,b,d,f){this.openDatabase(mxUtils.bind(this,function(c){try{f=f||"objects";var e=c.transaction([f],"readonly").objectStore(f).get(a);e.onsuccess=function(){b(e.result)};e.onerror=d}catch(u){null!=d&&d(u)}}),d)};EditorUi.prototype.getDatabaseItems=function(a,b,d){this.openDatabase(mxUtils.bind(this,function(c){try{d=d||"objects";var e=c.transaction([d],"readonly").objectStore(d).openCursor(IDBKeyRange.lowerBound(0)),f=[];e.onsuccess=function(b){null==b.target.result?a(f):(f.push(b.target.result.value),
@@ -3681,22 +3683,22 @@ var CommentsWindow=function(a,b,d,k,f,m){function p(){for(var a=z.getElementsByT
"geCommentEditTxtArea";k.style.minHeight=f.offsetHeight+"px";k.value=a.content;b.insertBefore(k,f);var l=document.createElement("div");l.className="geCommentEditBtns";var m=mxUtils.button(mxResources.get("cancel"),function(){d?(b.parentNode.removeChild(b),p()):e();A=null});m.className="geCommentEditBtn";l.appendChild(m);var n=mxUtils.button(mxResources.get("save"),function(){f.innerHTML="";a.content=k.value;mxUtils.write(f,a.content);e();c(a);A=null});mxEvent.addListener(k,"keydown",mxUtils.bind(this,
function(a){mxEvent.isConsumed(a)||((mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a))&&13==a.keyCode?(n.click(),mxEvent.consume(a)):27==a.keyCode&&(m.click(),mxEvent.consume(a)))}));n.focus();n.className="geCommentEditBtn gePrimaryBtn";l.appendChild(n);b.insertBefore(l,f);g.style.display="none";f.style.display="none";k.focus()}function e(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 g(a){var b=document.createElement("img");b.className="geCommentBusyImg";b.src=IMAGE_PATH+"/spin.gif";a.appendChild(b);a.busyImg=b}function n(a){a.style.border="1px solid red";a.removeChild(a.busyImg)}function l(a){a.style.border="";a.removeChild(a.busyImg)}function q(b,d,f,k,m){function v(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)});K.appendChild(e);d&&(e.style.display="none")}function N(){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=x;a(b);return{pdiv:d,replies:c}}function D(d,e,f,m,p){function v(){g(D);b.addReply(z,function(a){z.id=a;b.replies.push(z);l(D);f&&f()},function(b){t();n(D);a.handleError(b,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},m,p)}function t(){c(z,D,function(a){v()},!0)}var u=N().pdiv,z=a.newComment(d,a.getCurrentUser());z.pCommentId=b.id;null==b.replies&&(b.replies=[]);var D=q(z,b.replies,u,k+1);e?t():v()}if(m||!b.isResolved){E.style.display="none";var x=document.createElement("div");x.className="geCommentContainer";x.setAttribute("data-commentId",b.id);x.style.marginLeft=20*k+5+"px";b.isResolved&&!Editor.isDarkMode()&&(x.style.backgroundColor="ghostWhite");
-var C=document.createElement("div");C.className="geCommentHeader";var H=document.createElement("img");H.className="geCommentUserImg";H.src=b.user.pictureUrl||Editor.userImage;C.appendChild(H);H=document.createElement("div");H.className="geCommentHeaderTxt";C.appendChild(H);var P=document.createElement("div");P.className="geCommentUsername";mxUtils.write(P,b.user.displayName||"");H.appendChild(P);P=document.createElement("div");P.className="geCommentDate";P.setAttribute("data-commentId",b.id);e(b,
-P);H.appendChild(P);x.appendChild(C);C=document.createElement("div");C.className="geCommentTxt";mxUtils.write(C,b.content||"");x.appendChild(C);b.isLocked&&(x.style.opacity="0.5");C=document.createElement("div");C.className="geCommentActions";var K=document.createElement("ul");K.className="geCommentActionsList";C.appendChild(K);u||b.isLocked||0!=k&&!t||v(mxResources.get("reply"),function(){D("",!0)},b.isResolved);H=a.getCurrentUser();null==H||H.id!=b.user.id||u||b.isLocked||(v(mxResources.get("edit"),
+"geCommentActionLnk";mxUtils.write(f,a);e.appendChild(f);mxEvent.addListener(f,"click",function(a){c(a,b);a.preventDefault();mxEvent.consume(a)});K.appendChild(e);d&&(e.style.display="none")}function N(){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=x;a(b);return{pdiv:d,replies:c}}function C(d,e,f,m,p){function v(){g(C);b.addReply(z,function(a){z.id=a;b.replies.push(z);l(C);f&&f()},function(b){t();n(C);a.handleError(b,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},m,p)}function t(){c(z,C,function(a){v()},!0)}var u=N().pdiv,z=a.newComment(d,a.getCurrentUser());z.pCommentId=b.id;null==b.replies&&(b.replies=[]);var C=q(z,b.replies,u,k+1);e?t():v()}if(m||!b.isResolved){E.style.display="none";var x=document.createElement("div");x.className="geCommentContainer";x.setAttribute("data-commentId",b.id);x.style.marginLeft=20*k+5+"px";b.isResolved&&!Editor.isDarkMode()&&(x.style.backgroundColor="ghostWhite");
+var D=document.createElement("div");D.className="geCommentHeader";var O=document.createElement("img");O.className="geCommentUserImg";O.src=b.user.pictureUrl||Editor.userImage;D.appendChild(O);O=document.createElement("div");O.className="geCommentHeaderTxt";D.appendChild(O);var H=document.createElement("div");H.className="geCommentUsername";mxUtils.write(H,b.user.displayName||"");O.appendChild(H);H=document.createElement("div");H.className="geCommentDate";H.setAttribute("data-commentId",b.id);e(b,
+H);O.appendChild(H);x.appendChild(D);D=document.createElement("div");D.className="geCommentTxt";mxUtils.write(D,b.content||"");x.appendChild(D);b.isLocked&&(x.style.opacity="0.5");D=document.createElement("div");D.className="geCommentActions";var K=document.createElement("ul");K.className="geCommentActionsList";D.appendChild(K);u||b.isLocked||0!=k&&!t||v(mxResources.get("reply"),function(){C("",!0)},b.isResolved);O=a.getCurrentUser();null==O||O.id!=b.user.id||u||b.isLocked||(v(mxResources.get("edit"),
function(){function d(){c(b,x,function(){g(x);b.editComment(b.content,function(){l(x)},function(b){n(x);d();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}d()},b.isResolved),v(mxResources.get("delete"),function(){a.confirm(mxResources.get("areYouSure"),function(){g(x);b.deleteComment(function(a){if(!0===a){a=x.querySelector(".geCommentTxt");a.innerHTML="";mxUtils.write(a,mxResources.get("msgDeleted"));var c=x.querySelectorAll(".geCommentAction");for(a=
0;a<c.length;a++)c[a].parentNode.removeChild(c[a]);l(x);x.style.opacity="0.5"}else{c=N(b).replies;for(a=0;a<c.length;a++)z.removeChild(c[a]);for(a=0;a<d.length;a++)if(d[a]==b){d.splice(a,1);break}E.style.display=0==z.getElementsByTagName("div").length?"block":"none"}},function(b){n(x);a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},b.isResolved));u||b.isLocked||0!=k||v(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=N(b).replies,f=Editor.isDarkMode()?"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);F||(e[g].style.display="none")}p()}b.isResolved?D(mxResources.get("reOpened")+": ",!0,
-c,!1,!0):D(mxResources.get("markedAsResolved"),!1,c,!0)});x.appendChild(C);null!=f?z.insertBefore(x,f.nextSibling):z.appendChild(x);for(f=0;null!=b.replies&&f<b.replies.length;f++)C=b.replies[f],C.isResolved=b.isResolved,q(C,b.replies,null,k+1,m);null!=A&&(A.comment.id==b.id?(m=b.content,b.content=A.comment.content,c(b,x,A.saveCallback,A.deleteOnCancel),b.content=m):null==A.comment.id&&A.comment.pCommentId==b.id&&(z.appendChild(A.div),c(A.comment,A.div,A.saveCallback,A.deleteOnCancel)));return x}}
+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=N(b).replies,f=Editor.isDarkMode()?"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);F||(e[g].style.display="none")}p()}b.isResolved?C(mxResources.get("reOpened")+": ",!0,
+c,!1,!0):C(mxResources.get("markedAsResolved"),!1,c,!0)});x.appendChild(D);null!=f?z.insertBefore(x,f.nextSibling):z.appendChild(x);for(f=0;null!=b.replies&&f<b.replies.length;f++)D=b.replies[f],D.isResolved=b.isResolved,q(D,b.replies,null,k+1,m);null!=A&&(A.comment.id==b.id?(m=b.content,b.content=A.comment.content,c(b,x,A.saveCallback,A.deleteOnCancel),b.content=m):null==A.comment.id&&A.comment.pCommentId==b.id&&(z.appendChild(A.div),c(A.comment,A.div,A.saveCallback,A.deleteOnCancel)));return x}}
var u=!a.canComment(),t=a.canReplyToReplies(),A=null,x=document.createElement("div");x.className="geCommentsWin";x.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var G=EditorUi.compactUi?"26px":"30px",z=document.createElement("div");z.className="geCommentsList";z.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";z.style.bottom=parseInt(G)+7+"px";x.appendChild(z);var E=document.createElement("span");E.style.cssText="display:none;padding-top:10px;text-align:center;";
mxUtils.write(E,mxResources.get("noCommentsFound"));var H=document.createElement("div");H.className="geToolbarContainer geCommentsToolbar";H.style.height=G;H.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";H.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";G=document.createElement("a");G.className="geButton";if(!u){var K=G.cloneNode();K.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';K.setAttribute("title",mxResources.get("create")+
"...");mxEvent.addListener(K,"click",function(b){function d(){c(e,f,function(b){g(f);a.addComment(b,function(a){b.id=a;I.push(b);l(f)},function(b){n(f);d();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var e=a.newComment("",a.getCurrentUser()),f=q(e,I,null,0);d();b.preventDefault();mxEvent.consume(b)});H.appendChild(K)}K=G.cloneNode();K.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';K.setAttribute("title",mxResources.get("showResolved"));
-var F=!1;Editor.isDarkMode()&&(K.style.filter="invert(100%)");mxEvent.addListener(K,"click",function(a){this.className=(F=!F)?"geButton geCheckedBtn":"geButton";D();a.preventDefault();mxEvent.consume(a)});H.appendChild(K);a.commentsRefreshNeeded()&&(K=G.cloneNode(),K.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',K.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(K.style.filter="invert(100%)"),mxEvent.addListener(K,"click",function(a){D();
-a.preventDefault();mxEvent.consume(a)}),H.appendChild(K));a.commentsSaveNeeded()&&(G=G.cloneNode(),G.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',G.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(G.style.filter="invert(100%)"),mxEvent.addListener(G,"click",function(a){m();a.preventDefault();mxEvent.consume(a)}),H.appendChild(G));x.appendChild(H);var I=[],D=mxUtils.bind(this,function(){this.hasError=!1;if(null!=A)try{A.div=A.div.cloneNode(!0);
+var F=!1;Editor.isDarkMode()&&(K.style.filter="invert(100%)");mxEvent.addListener(K,"click",function(a){this.className=(F=!F)?"geButton geCheckedBtn":"geButton";C();a.preventDefault();mxEvent.consume(a)});H.appendChild(K);a.commentsRefreshNeeded()&&(K=G.cloneNode(),K.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',K.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(K.style.filter="invert(100%)"),mxEvent.addListener(K,"click",function(a){C();
+a.preventDefault();mxEvent.consume(a)}),H.appendChild(K));a.commentsSaveNeeded()&&(G=G.cloneNode(),G.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',G.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(G.style.filter="invert(100%)"),mxEvent.addListener(G,"click",function(a){m();a.preventDefault();mxEvent.consume(a)}),H.appendChild(G));x.appendChild(H);var I=[],C=mxUtils.bind(this,function(){this.hasError=!1;if(null!=A)try{A.div=A.div.cloneNode(!0);
var b=A.div.querySelector(".geCommentEditTxtArea"),d=A.div.querySelector(".geCommentEditBtns");A.comment.content=b.value;b.parentNode.removeChild(b);d.parentNode.removeChild(d)}catch(N){a.handleError(N)}z.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";t=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)});z.innerHTML="";z.appendChild(E);E.style.display="block";I=a;for(a=0;a<I.length;a++)b(I[a].replies),q(I[a],I,null,0,F);null!=A&&null==A.comment.id&&null==A.comment.pCommentId&&(z.appendChild(A.div),c(A.comment,A.div,A.saveCallback,A.deleteOnCancel))},mxUtils.bind(this,function(a){z.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(a&&a.message?
-": "+a.message:""));this.hasError=!0})):z.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});D();this.refreshComments=D;H=mxUtils.bind(this,function(){function a(b){var d=c[b.id];if(null!=d)for(e(b,d),d=0;null!=b.replies&&d<b.replies.length;d++)a(b.replies[d])}if(this.window.isVisible()){for(var b=z.querySelectorAll(".geCommentDate"),c={},d=0;d<b.length;d++){var f=b[d];c[f.getAttribute("data-commentId")]=f}for(d=0;d<I.length;d++)a(I[d])}});setInterval(H,6E4);this.refreshCommentsTime=H;this.window=
+": "+a.message:""));this.hasError=!0})):z.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});C();this.refreshComments=C;H=mxUtils.bind(this,function(){function a(b){var d=c[b.id];if(null!=d)for(e(b,d),d=0;null!=b.replies&&d<b.replies.length;d++)a(b.replies[d])}if(this.window.isVisible()){for(var b=z.querySelectorAll(".geCommentDate"),c={},d=0;d<b.length;d++){var f=b[d];c[f.getAttribute("data-commentId")]=f}for(d=0;d<I.length;d++)a(I[d])}});setInterval(H,6E4);this.refreshCommentsTime=H;this.window=
new mxWindow(mxResources.get("comments"),x,b,d,k,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 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()}},ConfirmDialog=function(a,b,d,
k,f,m,p,c,e,g,n){var l=document.createElement("div");l.style.textAlign="center";n=null!=n?n:44;var q=document.createElement("div");q.style.padding="6px";q.style.overflow="auto";q.style.maxHeight=n+"px";q.style.lineHeight="1.2em";mxUtils.write(q,b);l.appendChild(q);null!=g&&(q=document.createElement("div"),q.style.padding="6px 0 6px 0",b=document.createElement("img"),b.setAttribute("src",g),q.appendChild(b),l.appendChild(q));g=document.createElement("div");g.style.textAlign="center";g.style.whiteSpace=
@@ -3776,7 +3778,7 @@ b,d,p,c,e),mxUtils.bind(this,function(a){return this.isTreeEdge(a)}))};Graph.pro
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 e(a,b){b=null!=b?b:!0;t.model.beginUpdate();try{var d=t.model.getParent(a),e=t.getIncomingTreeEdges(a),f=t.cloneCells([e[0],a]);t.model.setTerminal(f[0],t.model.getTerminal(e[0],
!0),!0);var g=c(a),k=d.geometry;g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NORTH?f[1].geometry.x+=b?a.geometry.width+10:-f[1].geometry.width-10:f[1].geometry.y+=b?a.geometry.height+10:-f[1].geometry.height-10;t.view.currentRoot!=d&&(f[1].geometry.x-=k.x,f[1].geometry.y-=k.y);var l=t.view.getState(a),m=t.view.scale;if(null!=l){var n=mxRectangle.fromRectangle(l);g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NORTH?n.x+=(b?a.geometry.width+10:-f[1].geometry.width-10)*m:n.y+=(b?
a.geometry.height+10:-f[1].geometry.height-10)*m;var p=t.getOutgoingTreeEdges(t.model.getTerminal(e[0],!0));if(null!=p){for(var q=g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NORTH,v=k=e=0;v<p.length;v++){var u=t.model.getTerminal(p[v],!1);if(g==c(u)){var z=t.view.getState(u);u!=a&&null!=z&&(q&&b!=z.getCenterX()<l.getCenterX()||!q&&b!=z.getCenterY()<l.getCenterY())&&mxUtils.intersects(n,z)&&(e=10+Math.max(e,(Math.min(n.x+n.width,z.x+z.width)-Math.max(n.x,z.x))/m),k=10+Math.max(k,(Math.min(n.y+
-n.height,z.y+z.height)-Math.max(n.y,z.y))/m))}}q?k=0:e=0;for(v=0;v<p.length;v++)if(u=t.model.getTerminal(p[v],!1),g==c(u)&&(z=t.view.getState(u),u!=a&&null!=z&&(q&&b!=z.getCenterX()<l.getCenterX()||!q&&b!=z.getCenterY()<l.getCenterY()))){var D=[];t.traverse(z.cell,!0,function(a,b){var c=null!=b&&t.isTreeEdge(b);c&&D.push(b);(null==b||c)&&D.push(a);return null==b||c});t.moveCells(D,(b?1:-1)*e,(b?1:-1)*k)}}}return t.addCells(f,d)}finally{t.model.endUpdate()}}function g(a){t.model.beginUpdate();try{var b=
+n.height,z.y+z.height)-Math.max(n.y,z.y))/m))}}q?k=0:e=0;for(v=0;v<p.length;v++)if(u=t.model.getTerminal(p[v],!1),g==c(u)&&(z=t.view.getState(u),u!=a&&null!=z&&(q&&b!=z.getCenterX()<l.getCenterX()||!q&&b!=z.getCenterY()<l.getCenterY()))){var C=[];t.traverse(z.cell,!0,function(a,b){var c=null!=b&&t.isTreeEdge(b);c&&C.push(b);(null==b||c)&&C.push(a);return null==b||c});t.moveCells(C,(b?1:-1)*e,(b?1:-1)*k)}}}return t.addCells(f,d)}finally{t.model.endUpdate()}}function g(a){t.model.beginUpdate();try{var b=
c(a),d=t.getIncomingTreeEdges(a),e=t.cloneCells([d[0],a]);t.model.setTerminal(d[0],e[1],!1);t.model.setTerminal(e[0],e[1],!0);t.model.setTerminal(e[0],a,!1);var f=t.model.getParent(a),g=f.geometry,k=[];t.view.currentRoot!=f&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);t.traverse(a,!0,function(a,b){var c=null!=b&&t.isTreeEdge(b);c&&k.push(b);(null==b||c)&&k.push(a);return null==b||c});var l=a.geometry.width+40,m=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?l=0:b==mxConstants.DIRECTION_NORTH?
(l=0,m=-m):b==mxConstants.DIRECTION_WEST?(l=-l,m=0):b==mxConstants.DIRECTION_EAST&&(m=0);t.moveCells(k,l,m);return t.addCells(e,f)}finally{t.model.endUpdate()}}function n(a,b){t.model.beginUpdate();try{var d=t.model.getParent(a),e=t.getIncomingTreeEdges(a),f=c(a);0==e.length&&(e=[t.createEdge(d,null,"",null,null,t.createCurrentEdgeStyle())],f=b);var g=t.cloneCells([e[0],a]);t.model.setTerminal(g[0],a,!0);if(null==t.model.getTerminal(g[0],!1)){t.model.setTerminal(g[0],g[1],!1);var k=t.getCellStyle(g[1]).newEdgeStyle;
if(null!=k)try{var l=JSON.parse(k),m;for(m in l)t.setCellStyles(m,l[m],[g[0]]),"edgeStyle"==m&&"elbowEdgeStyle"==l[m]&&t.setCellStyles("elbow",f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[g[0]])}catch(ca){}}var e=t.getOutgoingTreeEdges(a),n=d.geometry,k=[];t.view.currentRoot==d&&(n=new mxRectangle);for(l=0;l<e.length;l++){var p=t.model.getTerminal(e[l],!1);null!=p&&k.push(p)}var q=t.view.getBounds(k),v=t.view.translate,u=t.view.scale;f==mxConstants.DIRECTION_SOUTH?
@@ -3796,10 +3798,10 @@ function(b,c,d,e){var f=t.model,g=null;f.beginUpdate();try{if(g=H.apply(this,arg
!t.isEditing()&&a(t.getSelectionCell())&&1==t.getSelectionCount()){var c=null;0<t.getIncomingTreeEdges(t.getSelectionCell()).length&&(9==b.which?c=mxEvent.isShiftDown(b)?g(t.getSelectionCell()):n(t.getSelectionCell()):13==b.which&&(c=e(t.getSelectionCell(),!mxEvent.isShiftDown(b))));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!=u.hoverIcons&&u.hoverIcons.update(t.view.getState(t.getSelectionCell())),
t.startEditingAtCell(t.getSelectionCell()),mxEvent.consume(b);else if(mxEvent.isAltDown(b)&&mxEvent.isShiftDown(b)){var d=K[b.keyCode];null!=d&&(d.funct(b),mxEvent.consume(b))}else 37==b.keyCode?(q(t.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(b)):38==b.keyCode?(q(t.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(b)):39==b.keyCode?(q(t.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(b)):40==b.keyCode&&(q(t.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
mxEvent.consume(b))}}catch(B){u.handleError(B)}mxEvent.isConsumed(b)||F.apply(this,arguments)};var I=t.connectVertex;t.connectVertex=function(b,d,f,k,l,m,p){var q=t.getIncomingTreeEdges(b);if(a(b)){var v=c(b),u=v==mxConstants.DIRECTION_EAST||v==mxConstants.DIRECTION_WEST,z=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST;return v==d||0==q.length?n(b,d):u==z?g(b):e(b,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)}return I.apply(this,arguments)};t.getSubtree=function(c){var d=
-[c];!b(c)&&!a(c)||p(c)||t.traverse(c,!0,function(a,b){var c=null!=b&&t.isTreeEdge(b);c&&0>mxUtils.indexOf(d,b)&&d.push(b);(null==b||c)&&0>mxUtils.indexOf(d,a)&&d.push(a);return null==b||c});return d};var D=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){D.apply(this,arguments);(b(this.state.cell)||a(this.state.cell))&&!p(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
+[c];!b(c)&&!a(c)||p(c)||t.traverse(c,!0,function(a,b){var c=null!=b&&t.isTreeEdge(b);c&&0>mxUtils.indexOf(d,b)&&d.push(b);(null==b||c)&&0>mxUtils.indexOf(d,a)&&d.push(a);return null==b||c});return d};var C=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){C.apply(this,arguments);(b(this.state.cell)||a(this.state.cell))&&!p(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
"Move Subtree"),this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="24px",this.moveHandle.style.height="24px",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;u.hoverIcons.reset();mxEvent.consume(a)})))};var M=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){M.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 U=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){U.apply(this,
-arguments);null!=this.moveHandle&&(this.moveHandle.style.display=a?"":"none")};var P=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){P.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",
+arguments);null!=this.moveHandle&&(this.moveHandle.style.display=a?"":"none")};var O=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){O.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,400,320),"swimlane;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Parent",new mxGeometry(140,60,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');b.vertex=!0;var c=new mxCell("Child",new mxGeometry(140,140,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!0);c.insertEdge(d,!1);a.insert(d);a.insert(b);a.insert(c);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;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;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":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;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
@@ -3879,7 +3881,7 @@ p.insertBefore(g,m.statusContainer):p.appendChild(g);null!=f?(g.style.background
"relative";c.style.top="0px";"1"==urlParams.sketch&&(c.style.boxShadow="none");for(var d=0;d<a.length;d++)null!=a[d]&&("1"==urlParams.sketch&&(a[d].style.padding="10px 8px",a[d].style.width="30px"),a[d].style.margin="0px",a[d].style.boxShadow="none",c.appendChild(a[d]));null!=b&&mxUtils.setOpacity(c,b);null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(c,m.statusContainer):p.appendChild(c);return c}function g(){for(var a=p.firstChild;null!=a;){var b=a.nextSibling;"geMenuItem"!=a.className&&
"geItem"!=a.className||a.parentNode.removeChild(a);a=b}q=p.firstChild;d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(a=1E3>d||"1"==urlParams.sketch)||c("diagram");if("1"==urlParams.sketch)aa.style.left=58>Q.offsetTop-Q.offsetHeight/2?"70px":"10px";else if(f([a?c("diagram",null,IMAGE_PATH+"/drawlogo.svg"):null,e(mxResources.get("shapes"),m.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),m.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":
null),e(mxResources.get("format"),m.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+m.actions.get("formatPanel").shortcut+")",m.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==":
-null)],a?60:null),b=c("insert",!0,a?L:null),f([b,e(mxResources.get("delete"),m.actions.get("delete").funct,null,mxResources.get("delete"),m.actions.get("delete"),a?ra:null)],a?60:null),411<=d&&(f([qa,va],60),520<=d&&(f([ua,640<=d?e("",O.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",O,ta):null,640<=d?e("",X.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",X,da):null],60),720<=d))){var g=e("",R.funct,null,mxResources.get("dark"),R,Editor.isDarkMode()?ba:ka);g.style.opacity=
+null)],a?60:null),b=c("insert",!0,a?L:null),f([b,e(mxResources.get("delete"),m.actions.get("delete").funct,null,mxResources.get("delete"),m.actions.get("delete"),a?ra:null)],a?60:null),411<=d&&(f([qa,va],60),520<=d&&(f([ua,640<=d?e("",P.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",P,ta):null,640<=d?e("",X.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",X,da):null],60),720<=d))){var g=e("",R.funct,null,mxResources.get("dark"),R,Editor.isDarkMode()?ba:ka);g.style.opacity=
"0.4";m.addListener("darkModeChanged",mxUtils.bind(this,function(){g.style.backgroundImage="url("+(Editor.isDarkMode()?ba:ka)+")"}));null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(g,m.statusContainer):p.appendChild(g)}a=m.menus.get("language");null!=a&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=d&&"1"!=urlParams.sketch?(null==wa&&(b=t.addMenu("",a.funct),b.setAttribute("title",mxResources.get("language")),b.className="geToolbarButton",b.style.backgroundImage="url("+Editor.globeImage+
")",b.style.backgroundPosition="center center",b.style.backgroundRepeat="no-repeat",b.style.backgroundSize="24px 24px",b.style.position="absolute",b.style.height="24px",b.style.width="24px",b.style.zIndex="1",b.style.right="8px",b.style.cursor="pointer",b.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(b),wa=b),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=wa&&(wa.parentNode.removeChild(wa),wa=null))}G.apply(this,arguments);this.doSetDarkMode(null!=
urlParams.dark?1==urlParams.dark:mxSettings.settings.darkMode);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);"1"==urlParams.sketch&&(this.toggleScratchpad(),this.editor.graph.isZoomWheelEvent=function(a){return!mxEvent.isShiftDown(a)&&!mxEvent.isMetaDown(a)&&!mxEvent.isAltDown(a)&&(!mxEvent.isControlDown(a)||
@@ -3889,14 +3891,14 @@ this.formatWindow.window.toggleMinimized()}var m=this,n=m.editor.graph;m.toolbar
"gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var x=m.descriptorChanged;m.descriptorChanged=function(){x.apply(this,arguments);var a=m.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")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";
var k=m.diagramContainer.parentNode,A=document.createElement("div");A.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var J=m.menus.get("viewZoom"),L="1"!=urlParams.sketch?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMywxMWg4VjNIM1YxMXogTTUsNWg0djRINVY1eiIvPjxwYXRoIGQ9Ik0xMywzdjhoOFYzSDEzeiBNMTksOWgtNFY1aDRWOXoiLz48cGF0aCBkPSJNMywyMWg4di04SDNWMjF6IE01LDE1aDR2NEg1VjE1eiIvPjxwb2x5Z29uIHBvaW50cz0iMTgsMTMgMTYsMTMgMTYsMTYgMTMsMTYgMTMsMTggMTYsMTggMTYsMjEgMTgsMjEgMTgsMTggMjEsMTggMjEsMTYgMTgsMTYiLz48L2c+PC9nPjwvc3ZnPg==",
-W="1"==urlParams.sketch?document.createElement("div"):null,Q="1"==urlParams.sketch?document.createElement("div"):null,aa="1"==urlParams.sketch?document.createElement("div"):null;m.addListener("darkModeChanged",mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()}));
-Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(b)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))});if(null!=m.hoverIcons){var na=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||na.apply(this,arguments)}}if(null!=n.freehand){var ga=n.freehand.createStyle;n.freehand.createStyle=function(a){return ga.apply(this,arguments)+
-"sketch=0;"}}if("1"==urlParams.sketch){Q.className="geToolbarContainer";W.className="geToolbarContainer";aa.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=Q;var ea=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){ea||(m.statusContainer.style.display="none")});var la=mxUtils.bind(this,function(a){null!=m.notificationBtn&&(null!=a?m.notificationBtn.setAttribute("title",a):m.notificationBtn.removeAttribute("title"))});
-"1"!=urlParams.embed&&m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&null==m.statusContainer.firstChild.getAttribute("class")){null!=m.statusContainer.firstChild?la(m.statusContainer.firstChild.getAttribute("title")):la(m.editor.getStatus());var a=m.getCurrentFile(),a=null!=a?a.savingStatusKey:DrawioFile.prototype.savingStatusKey;null!=m.notificationBtn&&m.notificationBtn.getAttribute("title")==
-mxResources.get(a)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(a))+'..."src="'+IMAGE_PATH+'/spin.gif">',m.statusContainer.style.display="inline-block",ea=!0):(m.statusContainer.style.display="none",ea=!1)}else m.statusContainer.style.display="inline-block",la(null),ea=!0}));S=c("diagram",null,IMAGE_PATH+"/drawlogo.svg");S.style.boxShadow="none";S.style.opacity="0.4";S.style.padding="6px";S.style.margin="0px";aa.appendChild(S);m.statusContainer.style.position=
-"";m.statusContainer.style.display="none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(d-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display="inline-block";var V=document.createElement("a");V.style.padding="0px";V.style.boxShadow="none";V.className="geMenuItem";
-V.style.display="inline-block";V.style.width="40px";V.style.height="12px";V.style.marginBottom="-2px";V.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";V.style.backgroundPosition="top center";V.style.backgroundRepeat="no-repeat";V.setAttribute("title","Minimize");var ca=!1,ma=mxUtils.bind(this,function(){Q.innerHTML="";if(!ca){var a=function(a,c,d){a=e("",a.funct,null,c,a,d);a.style.width="40px";return b(a,null,"pointer")},b=function(a,b,c){null!=b&&a.setAttribute("title",b);a.style.cursor=
-null!=c?c:"default";a.style.margin="2px 0px";Q.appendChild(a);mxUtils.br(Q);return a};b(m.sidebar.createVertexTemplate("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",40,20,"Text",mxResources.get("text"),!0,!0,null,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");b(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;fontSize=24;pointerEvents=1;"+
+W="1"==urlParams.sketch?document.createElement("div"):null,Q="1"==urlParams.sketch?document.createElement("div"):null,aa="1"==urlParams.sketch?document.createElement("div"):null;m.addListener("darkModeChanged",mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.refreshBackgroundImage();
+n.view.validateBackground()}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(b)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))});if(null!=m.hoverIcons){var na=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||na.apply(this,arguments)}}if(null!=n.freehand){var ga=n.freehand.createStyle;n.freehand.createStyle=function(a){return ga.apply(this,
+arguments)+"sketch=0;"}}if("1"==urlParams.sketch){Q.className="geToolbarContainer";W.className="geToolbarContainer";aa.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=Q;var ea=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){ea||(m.statusContainer.style.display="none")});var la=mxUtils.bind(this,function(a){null!=m.notificationBtn&&(null!=a?m.notificationBtn.setAttribute("title",
+a):m.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed&&m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&null==m.statusContainer.firstChild.getAttribute("class")){null!=m.statusContainer.firstChild?la(m.statusContainer.firstChild.getAttribute("title")):la(m.editor.getStatus());var a=m.getCurrentFile(),a=null!=a?a.savingStatusKey:DrawioFile.prototype.savingStatusKey;
+null!=m.notificationBtn&&m.notificationBtn.getAttribute("title")==mxResources.get(a)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(a))+'..."src="'+IMAGE_PATH+'/spin.gif">',m.statusContainer.style.display="inline-block",ea=!0):(m.statusContainer.style.display="none",ea=!1)}else m.statusContainer.style.display="inline-block",la(null),ea=!0}));S=c("diagram",null,IMAGE_PATH+"/drawlogo.svg");S.style.boxShadow="none";S.style.opacity="0.4";S.style.padding="6px";S.style.margin=
+"0px";aa.appendChild(S);m.statusContainer.style.position="";m.statusContainer.style.display="none";m.statusContainer.style.margin="0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(d-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display="inline-block";var V=document.createElement("a");V.style.padding=
+"0px";V.style.boxShadow="none";V.className="geMenuItem";V.style.display="inline-block";V.style.width="40px";V.style.height="12px";V.style.marginBottom="-2px";V.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";V.style.backgroundPosition="top center";V.style.backgroundRepeat="no-repeat";V.setAttribute("title","Minimize");var ca=!1,ma=mxUtils.bind(this,function(){Q.innerHTML="";if(!ca){var a=function(a,c,d){a=e("",a.funct,null,c,a,d);a.style.width="40px";return b(a,null,"pointer")},
+b=function(a,b,c){null!=b&&a.setAttribute("title",b);a.style.cursor=null!=c?c:"default";a.style.margin="2px 0px";Q.appendChild(a);mxUtils.br(Q);return a};b(m.sidebar.createVertexTemplate("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",40,20,"Text",mxResources.get("text"),!0,!0,null,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");b(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;fontSize=24;pointerEvents=1;"+
("0"!=urlParams.rough?"sketch=1;jiggle=2;":""),140,160,"",mxResources.get("note"),!0,!0,null,!0),mxResources.get("note"));b(m.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",160,80,"",mxResources.get("rectangle"),!0,!0,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");b(m.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!0,null,!0),mxResources.get("ellipse"));(function(){var a=new mxCell("",new mxGeometry(0,0,n.defaultEdgeLength,
0),"edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;sourcePerimeterSpacing=8;targetPerimeterSpacing=8;fontSize=16;"+("0"!=urlParams.rough?"sketch=1;":""));a.geometry.setTerminalPoint(new mxPoint(0,0),!0);a.geometry.setTerminalPoint(new mxPoint(a.geometry.width,0),!1);a.geometry.points=[];a.geometry.relative=!0;a.edge=!0;b(m.sidebar.createEdgeTemplateFromCells([a],a.geometry.width,a.geometry.height,mxResources.get("line"),!1,null,!0),mxResources.get("line"));
a=a.clone();a.style+="shape=flexArrow;rounded=1;startSize=8;endSize=8;";a.geometry.width=n.defaultEdgeLength+20;a.geometry.setTerminalPoint(new mxPoint(0,20),!0);a.geometry.setTerminalPoint(new mxPoint(a.geometry.width,20),!1);a=b(m.sidebar.createEdgeTemplateFromCells([a],a.geometry.width,40,mxResources.get("arrow"),!1,null,!0),mxResources.get("arrow"));a.style.borderBottom="1px solid lightgray";a.style.paddingBottom="14px";a.style.marginBottom="14px"})();a(m.actions.get("insertFreehand"),mxResources.get("freehand"),
@@ -3904,7 +3906,7 @@ a=a.clone();a.style+="shape=flexArrow;rounded=1;startSize=8;endSize=8;";a.geomet
var c=m.actions.get("toggleShapes");a(c,mxResources.get("shapes")+" ("+c.shortcut+")",L);a(m.actions.get("insertTemplate"),mxResources.get("template"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEzIDExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTEtOUg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExeiIvPjwvc3ZnPg==")}Q.appendChild(V)});
mxEvent.addListener(V,"click",mxUtils.bind(this,function(){ca?(mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, -50%)"),Q.style.padding="8px 6px 4px",Q.style.top="50%",Q.style.bottom="",Q.style.height="",V.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",V.style.width="40px",V.style.height="12px",V.setAttribute("title","Minimize"),ca=!1,ma()):(Q.innerHTML="",Q.appendChild(V),mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, 0)"),Q.style.top="",Q.style.bottom="12px",
Q.style.padding="0px",Q.style.height="24px",V.style.height="24px",V.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==)",V.setAttribute("title",mxResources.get("insert")),V.style.width="24px",ca=!0)}));ma();m.addListener("darkModeChanged",mxUtils.bind(this,function(){ma()}))}else m.editor.addListener("statusChanged",
-mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=J){var T=function(a){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(a)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},O=m.actions.get("zoomIn"),ta="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4=",
+mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=J){var T=function(a){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(a)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},P=m.actions.get("zoomIn"),ta="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4=",
X=m.actions.get("zoomOut"),da="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg==",
ia=m.actions.get("resetView"),pa=m.actions.get("fullscreen"),R=m.actions.get("toggleDarkMode"),ka="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik05LjM3LDUuNTFDOS4xOSw2LjE1LDkuMSw2LjgyLDkuMSw3LjVjMCw0LjA4LDMuMzIsNy40LDcuNCw3LjRjMC42OCwwLDEuMzUtMC4wOSwxLjk5LTAuMjdDMTcuNDUsMTcuMTksMTQuOTMsMTksMTIsMTkgYy0zLjg2LDAtNy0zLjE0LTctN0M1LDkuMDcsNi44MSw2LjU1LDkuMzcsNS41MXogTTEyLDNjLTQuOTcsMC05LDQuMDMtOSw5czQuMDMsOSw5LDlzOS00LjAzLDktOWMwLTAuNDYtMC4wNC0wLjkyLTAuMS0xLjM2IGMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNmMtMi45OCwwLTUuNC0yLjQyLTUuNC01LjRjMC0xLjgxLDAuODktMy40MiwyLjI2LTQuNEMxMi45MiwzLjA0LDEyLjQ2LDMsMTIsM0wxMiwzeiIvPjwvc3ZnPg==",
ba="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik0xMiw5YzEuNjUsMCwzLDEuMzUsMywzcy0xLjM1LDMtMywzcy0zLTEuMzUtMy0zUzEwLjM1LDksMTIsOSBNMTIsN2MtMi43NiwwLTUsMi4yNC01LDVzMi4yNCw1LDUsNXM1LTIuMjQsNS01IFMxNC43Niw3LDEyLDdMMTIsN3ogTTIsMTNsMiwwYzAuNTUsMCwxLTAuNDUsMS0xcy0wLjQ1LTEtMS0xbC0yLDBjLTAuNTUsMC0xLDAuNDUtMSwxUzEuNDUsMTMsMiwxM3ogTTIwLDEzbDIsMGMwLjU1LDAsMS0wLjQ1LDEtMSBzLTAuNDUtMS0xLTFsLTIsMGMtMC41NSwwLTEsMC40NS0xLDFTMTkuNDUsMTMsMjAsMTN6IE0xMSwydjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMVYyYzAtMC41NS0wLjQ1LTEtMS0xUzExLDEuNDUsMTEsMnogTTExLDIwdjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMXYtMmMwLTAuNTUtMC40NS0xLTEtMUMxMS40NSwxOSwxMSwxOS40NSwxMSwyMHogTTUuOTksNC41OGMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDAgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBzMC4zOS0xLjAzLDAtMS40MUw1Ljk5LDQuNTh6IE0xOC4zNiwxNi45NSBjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDEgTDE4LjM2LDE2Ljk1eiBNMTkuNDIsNS45OWMwLjM5LTAuMzksMC4zOS0xLjAzLDAtMS40MWMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDBsLTEuMDYsMS4wNmMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDEgczEuMDMsMC4zOSwxLjQxLDBMMTkuNDIsNS45OXogTTcuMDUsMTguMzZjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDFjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwbC0xLjA2LDEuMDYgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MXMxLjAzLDAuMzksMS40MSwwTDcuMDUsMTguMzZ6Ii8+PC9zdmc+",
@@ -3914,7 +3916,7 @@ ia=e("",pa.funct,null,mxResources.get("fullscreen"),pa,"data:image/svg+xml;base6
if(null!=W){var ya=m.actions.get("delete"),za=e("",ya.funct,null,mxResources.get("delete"),ya,ra);za.style.opacity="0.1";aa.appendChild(za);ya.addListener("stateChanged",function(){za.style.opacity=ya.enabled?"0.4":"0.1"});J=function(){qa.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";va.style.display=qa.style.display;qa.style.opacity=ja.enabled?"0.4":"0.1";va.style.opacity=Y.enabled?"0.4":"0.1"};aa.appendChild(qa);aa.appendChild(va);ja.addListener("stateChanged",
J);Y.addListener("stateChanged",J);J();J=m.actions.get("outline");J=e("",J.funct,null,mxResources.get("outline"),J,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0yMC41IDNsLS4xNi4wM0wxNSA1LjEgOSAzIDMuMzYgNC45Yy0uMjEuMDctLjM2LjI1LS4zNi40OFYyMC41YzAgLjI4LjIyLjUuNS41bC4xNi0uMDNMOSAxOC45bDYgMi4xIDUuNjQtMS45Yy4yMS0uMDcuMzYtLjI1LjM2LS40OFYzLjVjMC0uMjgtLjIyLS41LS41LS41ek0xNSAxOWwtNi0yLjExVjVsNiAyLjExVjE5eiIvPjwvc3ZnPg==");
J.style.opacity="0.4";W.appendChild(J);J=e("",X.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",X,da);J.style.opacity="0.4";W.appendChild(J);var S=document.createElement("div");S.innerHTML="100%";S.setAttribute("title",mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");S.style.display="inline-block";S.style.cursor="pointer";S.style.textAlign="center";S.style.whiteSpace="nowrap";S.style.paddingRight="10px";S.style.textDecoration="none";S.style.verticalAlign=
-"top";S.style.padding="6px 0";S.style.fontSize="14px";S.style.width="40px";S.style.opacity="0.4";W.appendChild(S);mxEvent.addListener(S,"click",T);T=e("",O.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",O,ta);T.style.opacity="0.4";W.appendChild(T);var Aa=e("",R.funct,null,mxResources.get("dark"),R,Editor.isDarkMode()?ba:ka);Aa.style.opacity="0.4";W.appendChild(Aa);m.addListener("darkModeChanged",mxUtils.bind(this,function(){Aa.style.backgroundImage="url("+(Editor.isDarkMode()?
+"top";S.style.padding="6px 0";S.style.fontSize="14px";S.style.width="40px";S.style.opacity="0.4";W.appendChild(S);mxEvent.addListener(S,"click",T);T=e("",P.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",P,ta);T.style.opacity="0.4";W.appendChild(T);var Aa=e("",R.funct,null,mxResources.get("dark"),R,Editor.isDarkMode()?ba:ka);Aa.style.opacity="0.4";W.appendChild(Aa);m.addListener("darkModeChanged",mxUtils.bind(this,function(){Aa.style.backgroundImage="url("+(Editor.isDarkMode()?
ba:ka)+")"}));pa.visible&&(ia.style.opacity="0.4",W.appendChild(ia));var ha=this.createPageMenuTab(!1);ha.style.display="none";ha.style.position="";ha.style.marginLeft="";ha.style.top="";ha.style.left="";ha.style.height="100%";ha.style.lineHeight="";ha.style.borderStyle="none";ha.style.padding="3px 0";ha.style.margin="0px";ha.style.background="";ha.style.border="";ha.style.boxShadow="none";ha.style.verticalAlign="top";ha.firstChild.style.height="100%";ha.firstChild.style.opacity="0.6";ha.firstChild.style.margin=
"0px";W.appendChild(ha);m.addListener("fileDescriptorChanged",function(){ha.style.display="1"==urlParams.pages||null!=m.pages&&1<m.pages.length?"inline-block":"none"});m.tabContainer.style.visibility="hidden";p.style.cssText="position:absolute;right:12px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px 0px 6px 6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;overflow:hidden;user-select:none;";aa.style.cssText="position:absolute;left:10px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;overflow:hidden;user-select:none;";
W.style.cssText="position:absolute;right:12px;bottom:12px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;user-select:none;";A.appendChild(aa);A.appendChild(W);Q.style.cssText="position:absolute;left:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px 6px 4px 6px;white-space:nowrap;transform:translate(0, -50%);top:50%;user-select:none;";A.appendChild(Q);window.setTimeout(function(){mxUtils.setPrefixedStyle(Q.style,
@@ -3922,7 +3924,7 @@ W.style.cssText="position:absolute;right:12px;bottom:12px;height:28px;z-index:1;
S.style.visibility="hidden",S.style.textAlign="center",S.style.cursor="pointer",S.style.height=parseInt(m.tabContainerHeight)-1+"px",S.style.lineHeight=parseInt(m.tabContainerHeight)+1+"px",S.style.position="absolute",S.style.display="block",S.style.fontSize="12px",S.style.width="59px",S.style.right="0px",S.style.bottom="0px",S.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")",S.style.backgroundPosition="right 6px center",S.style.backgroundRepeat="no-repeat",A.appendChild(S);pa=mxUtils.bind(this,
function(){S.innerHTML=Math.round(100*m.editor.graph.view.scale)+"%"});m.editor.graph.view.addListener(mxEvent.EVENT_SCALE,pa);m.editor.addListener("resetGraphView",pa);m.editor.addListener("pageSelected",pa);var Ba=m.setGraphEnabled;m.setGraphEnabled=function(){Ba.apply(this,arguments);null!=this.tabContainer&&(S.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==W?this.tabContainerHeight+"px":"0px")}}A.appendChild(p);
A.appendChild(m.diagramContainer);k.appendChild(A);m.updateTabContainer();null==W&&A.appendChild(m.tabContainer);var wa=null;g();mxEvent.addListener(window,"resize",function(){g();null!=m.sidebarWindow&&m.sidebarWindow.window.fit();null!=m.formatWindow&&m.formatWindow.window.fit();null!=m.actions.outlineWindow&&m.actions.outlineWindow.window.fit();null!=m.actions.layersWindow&&m.actions.layersWindow.window.fit();null!=m.menus.tagsWindow&&m.menus.tagsWindow.window.fit();null!=m.menus.findWindow&&m.menus.findWindow.window.fit();
-null!=m.menus.findReplaceWindow&&m.menus.findReplaceWindow.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,d,k,f,m,p){this.file=a;this.id=b;this.content=d;this.modifiedDate=k;this.createdDate=f;this.isResolved=m;this.user=p;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(a){null!=a&&this.replies.push(a)};DrawioComment.prototype.addReply=function(a,b,d,k,f){b()};DrawioComment.prototype.editComment=function(a,b,d){b()};DrawioComment.prototype.deleteComment=function(a,b){a()};DrawioUser=function(a,b,d,k,f){this.id=a;this.email=b;this.displayName=d;this.pictureUrl=k;this.locale=f};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\nabout=About \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\nbringForward=Bring Forward\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\ncompare=Compare\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.\ncontainer=Container\ncsv=CSV\ndark=Dark\ndiagramXmlDesc=XML File\ndiagramHtmlDesc=HTML File\ndiagramPngDesc=Editable Bitmap Image\ndiagramSvgDesc=Editable Vector Image\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.\ndraftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.\nselectDraft=Select a draft to continue editing:\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\nconfiguration=Configuration\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.\ncopyData=Copy Data\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\ndoNotShowAgain=Do not show again\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Get 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\ninstallApp=Install App\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.\nlicenseRequired=This feature requires draw.io to be licensed.\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\nmerge=Merge\nmermaid=Mermaid\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\nnotion=Notion\nnotSatisfiedWithImport=Not satisfied with the import?\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\nparallels=Parallels\npaste=Paste\npasteData=Paste Data\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\nradial=Radial\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\nsendBackward=Send Backward\nsendMessage=Send\nsendYourFeedback=Send your feedback\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\nsharingAvailable=Sharing available for Google Drive and OneDrive files.\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\nsketch=Sketch\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\ntooLargeUseDownload=Too large, use download instead.\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\ndrawDiag=draw.io diagram\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\norgChartType=Org Chart Type\nlinear=Linear\nhanger2=Hanger 2\nhanger4=Hanger 4\nfishbone1=Fishbone 1\nfishbone2=Fishbone 2\n1ColumnLeft=Single Column Left\n1ColumnRight=Single Column Right\nsmart=Smart\nparentChildSpacing=Parent Child Spacing\nsiblingSpacing=Sibling Spacing\nconfNoPermErr=Sorry, you don\'t have enough permissions to view this embedded diagram from page {1}\ncopyAsImage=Copy as Image\nlucidImport=Lucidchart Import\nlucidImportInst1=Click the "Start Import" button to import all Lucidchart diagrams.\ninstallFirst=Please install {1} first\ndrawioChromeExt=draw.io Chrome Extension\nloginFirstThen=Please login to {1} first, then {2}\nerrFetchDocList=Error: Couldn\'t fetch documents list\nbuiltinPlugins=Built-in Plugins\nextPlugins=External Plugins\nbackupFound=Backup file found\nchromeOnly=This feature only works in Google Chrome\nmsgDeleted=This message has been deleted\nconfAErrFetchDrawList=Error fetching diagrams list. Some diagrams are skipped.\nconfAErrCheckDrawDiag=Cannot check diagram {1}\nconfAErrFetchPageList=Error fetching pages list\nconfADiagImportIncom={1} diagram "{2}" is imported partially and may have missing shapes\ninvalidSel=Invalid selection\ndiagNameEmptyErr=Diagram name cannot be empty\nopenDiagram=Open Diagram\nnewDiagram=New diagram\neditable=Editable\nconfAReimportStarted=Re-import {1} diagrams started...\nspaceFilter=Filter by spaces\ncurViewState=Current Viewer State\npageLayers=Page and Layers\ncustomize=Customize\nfirstPage=First Page (All Layers)\ncurEditorState=Current Editor State\nnoAnchorsFound=No anchors found \nattachment=Attachment\ncurDiagram=Current Diagram\nrecentDiags=Recent Diagrams\ncsvImport=CSV Import\nchooseFile=Choose a file...\nchoose=Choose\ngdriveFname=Google Drive filename\nwidthOfViewer=Width of the viewer (px)\nheightOfViewer=Height of the viewer (px)\nautoSetViewerSize=Automatically set the size of the viewer\nthumbnail=Thumbnail\nprevInDraw=Preview in draw.io\nonedriveFname=OneDrive filename\ndiagFname=Diagram filename\ndiagUrl=Diagram URL\nshowDiag=Show Diagram\ndiagPreview=Diagram Preview\ncsvFileUrl=CSV File URL\ngenerate=Generate\nselectDiag2Insert=Please select a diagram to insert it.\nerrShowingDiag=Unexpected error. Cannot show diagram\nnoRecentDiags=No recent diagrams found\nfetchingRecentFailed=Failed to fetch recent diagrams\nuseSrch2FindDiags=Use the search box to find draw.io diagrams\ncantReadChckPerms=Cannot read the specified diagram. Please check you have read permission on that file.\ncantFetchChckPerms=Cannot fetch diagram info. Please check you have read permission on that file.\nsearchFailed=Searching failed. Please try again later.\nplsTypeStr=Please type a search string.\nunsupportedFileChckUrl=Unsupported file. Please check the specified URL\ndiagNotFoundChckUrl=Diagram not found or cannot be accessed. Please check the specified URL\ncsvNotFoundChckUrl=CSV file not found or cannot be accessed. Please check the specified URL\ncantReadUpload=Cannot read the uploaded diagram\nselect=Select\nerrCantGetIdType=Unexpected Error: Cannot get content id or type.\nerrGAuthWinBlocked=Error: Google Authentication window blocked\nauthDrawAccess=Authorize draw.io to access {1}\nconnTimeout=The connection has timed out\nerrAuthSrvc=Error authenticating to {1}\nplsSelectFile=Please select a file\nmustBgtZ={1} must be greater than zero\ncantLoadPrev=Cannot load file preview.\nerrAccessFile=Error: Access Denied. You do not have permission to access "{1}".\nnoPrevAvail=No preview is available.\npersonalAccNotSup=Personal accounts are not supported.\nerrSavingTryLater=Error occured during saving, please try again later.\nplsEnterFld=Please enter {1}\ninvalidDiagUrl=Invalid Diagram URL\nunsupportedVsdx=Unsupported vsdx file\nunsupportedImg=Unsupported image file\nunsupportedFormat=Unsupported file format\nplsSelectSingleFile=Please select a single file only\nattCorrupt=Attachment file "{1}" is corrupted\nloadAttFailed=Failed to load attachment "{1}"\nembedDrawDiag=Embed draw.io Diagram\naddDiagram=Add Diagram\nembedDiagram=Embed Diagram\neditOwningPg=Edit owning page\ndeepIndexing=Deep Indexing (Index diagrams that aren\'t used in any page also)\nconfADeepIndexStarted=Deep Indexing Started\nconfADeepIndexDone=Deep Indexing Done\nofficeNoDiagramsSelected=No diagrams found in the selection\nofficeNoDiagramsInDoc=No diagrams found in the document\nofficeNotSupported=This feature is not supported in this host application\nsomeImagesFailed={1} out of {2} failed due to the following errors\nimportingNoUsedDiagrams=Importing {1} Diagrams not used in pages\nimportingDrafts=Importing {1} Diagrams in drafts\nprocessingDrafts=Processing drafts\nupdatingDrafts=Updating drafts\nupdateDrafts=Update drafts\nnotifications=Notifications\ndrawioImp=draw.io Import\nconfALibsImp=Importing draw.io Libraries\nconfALibsImpFailed=Importing {1} library failed\ncontributors=Contributors\ndrawDiagrams=draw.io Diagrams\nerrFileNotFoundOrNoPer=Error: Access Denied. File not found or you do not have permission to access "{1}" on {2}.\nconfACheckPagesWEmbed=Checking pages having embedded draw.io diagrams.\nconfADelBrokenEmbedDiagLnk=Removing broken embedded diagram links\nreplaceWith=Replace with\nreplaceAll=Replace All\nconfASkipDiagModified=Skipped "{1}" as it was modified after initial import\nreplFind=Replace/Find\nmatchesRepl={1} matches replaced\ndraftErrDataLoss=An error occurred while reading the draft file. The diagram cannot be edited now to prevent any possible data loss. Please try again later or contact support.\nibm=IBM\nlinkToDiagramHint=Add a link to this diagram. The diagram can only be edited from the page that owns it.\nlinkToDiagram=Link to Diagram\nchangedBy=Changed By\nlastModifiedOn=Last modified on\nsearchResults=Search Results\nshowAllTemps=Show all templates\nnotionToken=Notion Token\nselectDB=Select Database\nnoDBs=No Databases\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="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="edgeLabel" extend="text"><add as="labelBackgroundColor" value="#ffffff"/><add as="fontSize" value="11"/></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><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></mxStylesheet>').documentElement;
+null!=m.menus.findReplaceWindow&&m.menus.findReplaceWindow.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,d,k,f,m,p){this.file=a;this.id=b;this.content=d;this.modifiedDate=k;this.createdDate=f;this.isResolved=m;this.user=p;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(a){null!=a&&this.replies.push(a)};DrawioComment.prototype.addReply=function(a,b,d,k,f){b()};DrawioComment.prototype.editComment=function(a,b,d){b()};DrawioComment.prototype.deleteComment=function(a,b){a()};DrawioUser=function(a,b,d,k,f){this.id=a;this.email=b;this.displayName=d;this.pictureUrl=k;this.locale=f};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\nabout=About \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\nbringForward=Bring Forward\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\ncompare=Compare\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.\ncontainer=Container\ncsv=CSV\ndark=Dark\ndiagramXmlDesc=XML File\ndiagramHtmlDesc=HTML File\ndiagramPngDesc=Editable Bitmap Image\ndiagramSvgDesc=Editable Vector Image\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.\ndraftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.\nselectDraft=Select a draft to continue editing:\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\nconfiguration=Configuration\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.\ncopyData=Copy Data\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\ndoNotShowAgain=Do not show again\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Get 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\ninstallApp=Install App\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.\nlicenseRequired=This feature requires draw.io to be licensed.\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\nmerge=Merge\nmermaid=Mermaid\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\nnotion=Notion\nnotSatisfiedWithImport=Not satisfied with the import?\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\nparallels=Parallels\npaste=Paste\npasteData=Paste Data\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\nradial=Radial\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\nsendBackward=Send Backward\nsendMessage=Send\nsendYourFeedback=Send your feedback\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\nsharingAvailable=Sharing available for Google Drive and OneDrive files.\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\nsketch=Sketch\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\ntooLargeUseDownload=Too large, use download instead.\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\ndrawDiag=draw.io diagram\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\norgChartType=Org Chart Type\nlinear=Linear\nhanger2=Hanger 2\nhanger4=Hanger 4\nfishbone1=Fishbone 1\nfishbone2=Fishbone 2\n1ColumnLeft=Single Column Left\n1ColumnRight=Single Column Right\nsmart=Smart\nparentChildSpacing=Parent Child Spacing\nsiblingSpacing=Sibling Spacing\nconfNoPermErr=Sorry, you don\'t have enough permissions to view this embedded diagram from page {1}\ncopyAsImage=Copy as Image\nlucidImport=Lucidchart Import\nlucidImportInst1=Click the "Start Import" button to import all Lucidchart diagrams.\ninstallFirst=Please install {1} first\ndrawioChromeExt=draw.io Chrome Extension\nloginFirstThen=Please login to {1} first, then {2}\nerrFetchDocList=Error: Couldn\'t fetch documents list\nbuiltinPlugins=Built-in Plugins\nextPlugins=External Plugins\nbackupFound=Backup file found\nchromeOnly=This feature only works in Google Chrome\nmsgDeleted=This message has been deleted\nconfAErrFetchDrawList=Error fetching diagrams list. Some diagrams are skipped.\nconfAErrCheckDrawDiag=Cannot check diagram {1}\nconfAErrFetchPageList=Error fetching pages list\nconfADiagImportIncom={1} diagram "{2}" is imported partially and may have missing shapes\ninvalidSel=Invalid selection\ndiagNameEmptyErr=Diagram name cannot be empty\nopenDiagram=Open Diagram\nnewDiagram=New diagram\neditable=Editable\nconfAReimportStarted=Re-import {1} diagrams started...\nspaceFilter=Filter by spaces\ncurViewState=Current Viewer State\npageLayers=Page and Layers\ncustomize=Customize\nfirstPage=First Page (All Layers)\ncurEditorState=Current Editor State\nnoAnchorsFound=No anchors found \nattachment=Attachment\ncurDiagram=Current Diagram\nrecentDiags=Recent Diagrams\ncsvImport=CSV Import\nchooseFile=Choose a file...\nchoose=Choose\ngdriveFname=Google Drive filename\nwidthOfViewer=Width of the viewer (px)\nheightOfViewer=Height of the viewer (px)\nautoSetViewerSize=Automatically set the size of the viewer\nthumbnail=Thumbnail\nprevInDraw=Preview in draw.io\nonedriveFname=OneDrive filename\ndiagFname=Diagram filename\ndiagUrl=Diagram URL\nshowDiag=Show Diagram\ndiagPreview=Diagram Preview\ncsvFileUrl=CSV File URL\ngenerate=Generate\nselectDiag2Insert=Please select a diagram to insert it.\nerrShowingDiag=Unexpected error. Cannot show diagram\nnoRecentDiags=No recent diagrams found\nfetchingRecentFailed=Failed to fetch recent diagrams\nuseSrch2FindDiags=Use the search box to find draw.io diagrams\ncantReadChckPerms=Cannot read the specified diagram. Please check you have read permission on that file.\ncantFetchChckPerms=Cannot fetch diagram info. Please check you have read permission on that file.\nsearchFailed=Searching failed. Please try again later.\nplsTypeStr=Please type a search string.\nunsupportedFileChckUrl=Unsupported file. Please check the specified URL\ndiagNotFoundChckUrl=Diagram not found or cannot be accessed. Please check the specified URL\ncsvNotFoundChckUrl=CSV file not found or cannot be accessed. Please check the specified URL\ncantReadUpload=Cannot read the uploaded diagram\nselect=Select\nerrCantGetIdType=Unexpected Error: Cannot get content id or type.\nerrGAuthWinBlocked=Error: Google Authentication window blocked\nauthDrawAccess=Authorize draw.io to access {1}\nconnTimeout=The connection has timed out\nerrAuthSrvc=Error authenticating to {1}\nplsSelectFile=Please select a file\nmustBgtZ={1} must be greater than zero\ncantLoadPrev=Cannot load file preview.\nerrAccessFile=Error: Access Denied. You do not have permission to access "{1}".\nnoPrevAvail=No preview is available.\npersonalAccNotSup=Personal accounts are not supported.\nerrSavingTryLater=Error occurred during saving, please try again later.\nplsEnterFld=Please enter {1}\ninvalidDiagUrl=Invalid Diagram URL\nunsupportedVsdx=Unsupported vsdx file\nunsupportedImg=Unsupported image file\nunsupportedFormat=Unsupported file format\nplsSelectSingleFile=Please select a single file only\nattCorrupt=Attachment file "{1}" is corrupted\nloadAttFailed=Failed to load attachment "{1}"\nembedDrawDiag=Embed draw.io Diagram\naddDiagram=Add Diagram\nembedDiagram=Embed Diagram\neditOwningPg=Edit owning page\ndeepIndexing=Deep Indexing (Index diagrams that aren\'t used in any page also)\nconfADeepIndexStarted=Deep Indexing Started\nconfADeepIndexDone=Deep Indexing Done\nofficeNoDiagramsSelected=No diagrams found in the selection\nofficeNoDiagramsInDoc=No diagrams found in the document\nofficeNotSupported=This feature is not supported in this host application\nsomeImagesFailed={1} out of {2} failed due to the following errors\nimportingNoUsedDiagrams=Importing {1} Diagrams not used in pages\nimportingDrafts=Importing {1} Diagrams in drafts\nprocessingDrafts=Processing drafts\nupdatingDrafts=Updating drafts\nupdateDrafts=Update drafts\nnotifications=Notifications\ndrawioImp=draw.io Import\nconfALibsImp=Importing draw.io Libraries\nconfALibsImpFailed=Importing {1} library failed\ncontributors=Contributors\ndrawDiagrams=draw.io Diagrams\nerrFileNotFoundOrNoPer=Error: Access Denied. File not found or you do not have permission to access "{1}" on {2}.\nconfACheckPagesWEmbed=Checking pages having embedded draw.io diagrams.\nconfADelBrokenEmbedDiagLnk=Removing broken embedded diagram links\nreplaceWith=Replace with\nreplaceAll=Replace All\nconfASkipDiagModified=Skipped "{1}" as it was modified after initial import\nreplFind=Replace/Find\nmatchesRepl={1} matches replaced\ndraftErrDataLoss=An error occurred while reading the draft file. The diagram cannot be edited now to prevent any possible data loss. Please try again later or contact support.\nibm=IBM\nlinkToDiagramHint=Add a link to this diagram. The diagram can only be edited from the page that owns it.\nlinkToDiagram=Link to Diagram\nchangedBy=Changed By\nlastModifiedOn=Last modified on\nsearchResults=Search Results\nshowAllTemps=Show all templates\nnotionToken=Notion Token\nselectDB=Select Database\nnoDBs=No Databases\ndiagramEdited={1} diagram "{2}" edited\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="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="edgeLabel" extend="text"><add as="labelBackgroundColor" value="#ffffff"/><add as="fontSize" value="11"/></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><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></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="edgeLabel" extend="text"><add as="labelBackgroundColor" value="#2a2a2a"/><add as="fontSize" value="11"/></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,d){this.init(a,b,d)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://app.diagrams.net/";GraphViewer.prototype.imageBaseUrl="https://viewer.diagrams.net/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?28:30;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!1;GraphViewer.prototype.autoCrop=!1;
GraphViewer.prototype.autoOrigin=!0;GraphViewer.prototype.center=!1;GraphViewer.prototype.forceCenter=!1;GraphViewer.prototype.allowZoomIn=!1;GraphViewer.prototype.allowZoomOut=!0;GraphViewer.prototype.showTitleAsTooltip=!1;GraphViewer.prototype.checkVisibleState=!0;GraphViewer.prototype.minHeight=28;GraphViewer.prototype.minWidth=100;GraphViewer.prototype.responsive=!1;
GraphViewer.prototype.init=function(a,b,d){this.graphConfig=null!=d?d:{};this.autoFit=null!=this.graphConfig["auto-fit"]?this.graphConfig["auto-fit"]:this.autoFit;this.autoCrop=null!=this.graphConfig["auto-crop"]?this.graphConfig["auto-crop"]:this.autoCrop;this.autoOrigin=null!=this.graphConfig["auto-origin"]?this.graphConfig["auto-origin"]:this.autoOrigin;this.allowZoomOut=null!=this.graphConfig["allow-zoom-out"]?this.graphConfig["allow-zoom-out"]:this.allowZoomOut;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?
@@ -3991,7 +3993,7 @@ GraphViewer.initCss=function(){try{var a=document.createElement("style");a.type=
GraphViewer.cachedUrls={};GraphViewer.getUrl=function(a,b,d){if(null!=GraphViewer.cachedUrls[a])b(GraphViewer.cachedUrls[a]);else{var k=null!=navigator.userAgent&&0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;k.open("GET",a);k.onload=function(){b(null!=k.getText?k.getText():k.responseText)};k.onerror=d;k.send()}};GraphViewer.resizeSensorEnabled=!0;GraphViewer.useResizeSensor=!0;
(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},b=function(d,k){function f(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function m(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function p(b,c){if(!b.resizedAttached)b.resizedAttached=
new f,b.resizedAttached.add(c);else if(b.resizedAttached){b.resizedAttached.add(c);return}b.resizeSensor=document.createElement("div");b.resizeSensor.className="resize-sensor";b.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";b.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;"></div></div><div class="resize-sensor-shrink" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"></div></div>';
-b.appendChild(b.resizeSensor);"static"==m(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],g=b.resizeSensor.childNodes[1],k=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;g.scrollLeft=1E5;g.scrollTop=1E5};k();var l=!1,n=function(){b.resizedAttached&&(l&&(b.resizedAttached.call(),l=!1),a(n))};a(n);var p,q,K,F,I=function(){if((K=b.offsetWidth)!=p||(F=b.offsetHeight)!=q)l=!0,p=K,q=F;k()},D=function(a,b,c){a.attachEvent?
-a.attachEvent("on"+b,c):a.addEventListener(b,c)};D(d,"scroll",I);D(g,"scroll",I)}var c=function(){GraphViewer.resizeSensorEnabled&&k()},e=Object.prototype.toString.call(d),g="[object Array]"===e||"[object NodeList]"===e||"[object HTMLCollection]"===e||"undefined"!==typeof jQuery&&d instanceof jQuery||"undefined"!==typeof Elements&&d instanceof Elements;if(g)for(var e=0,n=d.length;e<n;e++)p(d[e],c);else p(d,c);this.detach=function(){if(g)for(var a=0,c=d.length;a<c;a++)b.detach(d[a]);else b.detach(d)}};
+b.appendChild(b.resizeSensor);"static"==m(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],g=b.resizeSensor.childNodes[1],k=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;g.scrollLeft=1E5;g.scrollTop=1E5};k();var l=!1,n=function(){b.resizedAttached&&(l&&(b.resizedAttached.call(),l=!1),a(n))};a(n);var p,q,K,F,I=function(){if((K=b.offsetWidth)!=p||(F=b.offsetHeight)!=q)l=!0,p=K,q=F;k()},C=function(a,b,c){a.attachEvent?
+a.attachEvent("on"+b,c):a.addEventListener(b,c)};C(d,"scroll",I);C(g,"scroll",I)}var c=function(){GraphViewer.resizeSensorEnabled&&k()},e=Object.prototype.toString.call(d),g="[object Array]"===e||"[object NodeList]"===e||"[object HTMLCollection]"===e||"undefined"!==typeof jQuery&&d instanceof jQuery||"undefined"!==typeof Elements&&d instanceof Elements;if(g)for(var e=0,n=d.length;e<n;e++)p(d[e],c);else p(d,c);this.detach=function(){if(g)for(var a=0,c=d.length;a<c;a++)b.detach(d[a]);else b.detach(d)}};
b.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=b})();
(function(){Editor.initMath();GraphViewer.initCss();if(null!=window.onDrawioViewerLoad)window.onDrawioViewerLoad();else GraphViewer.processElements()})();
diff --git a/src/main/webapp/mxgraph/mxClient.js b/src/main/webapp/mxgraph/mxClient.js
index 799d9029..92fe080b 100644
--- a/src/main/webapp/mxgraph/mxClient.js
+++ b/src/main/webapp/mxgraph/mxClient.js
@@ -1,4 +1,4 @@
-var mxClient={VERSION:"15.0.2",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+var mxClient={VERSION:"15.0.3",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&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:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||
0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||0<=navigator.userAgent.indexOf("Opera/"),IS_WIN:0<navigator.appVersion.indexOf("Win"),IS_MAC:0<navigator.appVersion.indexOf("Mac"),
diff --git a/src/main/webapp/resources/dia.txt b/src/main/webapp/resources/dia.txt
index 424761c6..45dabb32 100644
--- a/src/main/webapp/resources/dia.txt
+++ b/src/main/webapp/resources/dia.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_am.txt b/src/main/webapp/resources/dia_am.txt
index 1131cae3..95ef7444 100644
--- a/src/main/webapp/resources/dia_am.txt
+++ b/src/main/webapp/resources/dia_am.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_ar.txt b/src/main/webapp/resources/dia_ar.txt
index 56ddd08f..1cc9bdda 100644
--- a/src/main/webapp/resources/dia_ar.txt
+++ b/src/main/webapp/resources/dia_ar.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_bg.txt b/src/main/webapp/resources/dia_bg.txt
index 2f4f1f4c..d556e391 100644
--- a/src/main/webapp/resources/dia_bg.txt
+++ b/src/main/webapp/resources/dia_bg.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_bn.txt b/src/main/webapp/resources/dia_bn.txt
index 1b74fd2d..06791aab 100644
--- a/src/main/webapp/resources/dia_bn.txt
+++ b/src/main/webapp/resources/dia_bn.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_bs.txt b/src/main/webapp/resources/dia_bs.txt
index a5e3c289..1da3ed7b 100644
--- a/src/main/webapp/resources/dia_bs.txt
+++ b/src/main/webapp/resources/dia_bs.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_ca.txt b/src/main/webapp/resources/dia_ca.txt
index eba65925..7eab8c72 100644
--- a/src/main/webapp/resources/dia_ca.txt
+++ b/src/main/webapp/resources/dia_ca.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_cs.txt b/src/main/webapp/resources/dia_cs.txt
index 36752ef1..286af4e3 100644
--- a/src/main/webapp/resources/dia_cs.txt
+++ b/src/main/webapp/resources/dia_cs.txt
@@ -1154,3 +1154,4 @@ showAllTemps=Zobrazit všechny šablony
notionToken=Token pojmu
selectDB=Vybrat databázi
noDBs=Žádné databáze
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_da.txt b/src/main/webapp/resources/dia_da.txt
index 23b4669c..5c04147b 100644
--- a/src/main/webapp/resources/dia_da.txt
+++ b/src/main/webapp/resources/dia_da.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_de.txt b/src/main/webapp/resources/dia_de.txt
index 7853238e..95b9656e 100644
--- a/src/main/webapp/resources/dia_de.txt
+++ b/src/main/webapp/resources/dia_de.txt
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_el.txt b/src/main/webapp/resources/dia_el.txt
index aa03e611..8b7202ae 100644
--- a/src/main/webapp/resources/dia_el.txt
+++ b/src/main/webapp/resources/dia_el.txt
@@ -1154,3 +1154,4 @@ showAllTemps=Προβολή όλων των προτύπων
notionToken=Notion Token
selectDB=Επιλογή Βάσης Δεδομένων
noDBs=Δεν υπάρχουν Βάσεις Δεδομένων
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_eo.txt b/src/main/webapp/resources/dia_eo.txt
index 4c754b0f..71cc410e 100644
--- a/src/main/webapp/resources/dia_eo.txt
+++ b/src/main/webapp/resources/dia_eo.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_es.txt b/src/main/webapp/resources/dia_es.txt
index fa5fcfbf..887dcd19 100644
--- a/src/main/webapp/resources/dia_es.txt
+++ b/src/main/webapp/resources/dia_es.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_et.txt b/src/main/webapp/resources/dia_et.txt
index eaa6c82d..0b85a9ed 100644
--- a/src/main/webapp/resources/dia_et.txt
+++ b/src/main/webapp/resources/dia_et.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_eu.txt b/src/main/webapp/resources/dia_eu.txt
index ac884051..a354117f 100644
--- a/src/main/webapp/resources/dia_eu.txt
+++ b/src/main/webapp/resources/dia_eu.txt
@@ -1154,3 +1154,4 @@ showAllTemps=Erakutsi txantiloi guztiak
notionToken=Notion Token
selectDB=Hautatu datubasea
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_fa.txt b/src/main/webapp/resources/dia_fa.txt
index 96aa182c..6252b3a1 100644
--- a/src/main/webapp/resources/dia_fa.txt
+++ b/src/main/webapp/resources/dia_fa.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_fi.txt b/src/main/webapp/resources/dia_fi.txt
index c2755637..f1fc959b 100644
--- a/src/main/webapp/resources/dia_fi.txt
+++ b/src/main/webapp/resources/dia_fi.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_fil.txt b/src/main/webapp/resources/dia_fil.txt
index 570613b5..f57d477b 100644
--- a/src/main/webapp/resources/dia_fil.txt
+++ b/src/main/webapp/resources/dia_fil.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_fr.txt b/src/main/webapp/resources/dia_fr.txt
index 72596415..e337d499 100644
--- a/src/main/webapp/resources/dia_fr.txt
+++ b/src/main/webapp/resources/dia_fr.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_gl.txt b/src/main/webapp/resources/dia_gl.txt
index e52c55b1..7cdf08db 100644
--- a/src/main/webapp/resources/dia_gl.txt
+++ b/src/main/webapp/resources/dia_gl.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_gu.txt b/src/main/webapp/resources/dia_gu.txt
index ccd419b5..df441945 100644
--- a/src/main/webapp/resources/dia_gu.txt
+++ b/src/main/webapp/resources/dia_gu.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_he.txt b/src/main/webapp/resources/dia_he.txt
index a962bc51..93348fea 100644
--- a/src/main/webapp/resources/dia_he.txt
+++ b/src/main/webapp/resources/dia_he.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_hi.txt b/src/main/webapp/resources/dia_hi.txt
index d2414445..281779de 100644
--- a/src/main/webapp/resources/dia_hi.txt
+++ b/src/main/webapp/resources/dia_hi.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_hr.txt b/src/main/webapp/resources/dia_hr.txt
index 0ae6e89a..c76f58bb 100644
--- a/src/main/webapp/resources/dia_hr.txt
+++ b/src/main/webapp/resources/dia_hr.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_hu.txt b/src/main/webapp/resources/dia_hu.txt
index c50c11c4..d883f32f 100644
--- a/src/main/webapp/resources/dia_hu.txt
+++ b/src/main/webapp/resources/dia_hu.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_i18n.txt b/src/main/webapp/resources/dia_i18n.txt
index 4ada2b9a..2d37dfdb 100644
--- a/src/main/webapp/resources/dia_i18n.txt
+++ b/src/main/webapp/resources/dia_i18n.txt
@@ -1154,3 +1154,4 @@ showAllTemps=showAllTemps
notionToken=notionToken
selectDB=selectDB
noDBs=noDBs
+diagramEdited=diagramEdited
diff --git a/src/main/webapp/resources/dia_id.txt b/src/main/webapp/resources/dia_id.txt
index e8283cc3..3ad7ebc2 100644
--- a/src/main/webapp/resources/dia_id.txt
+++ b/src/main/webapp/resources/dia_id.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_it.txt b/src/main/webapp/resources/dia_it.txt
index da63bd8f..d1ce65d9 100644
--- a/src/main/webapp/resources/dia_it.txt
+++ b/src/main/webapp/resources/dia_it.txt
@@ -1154,3 +1154,4 @@ showAllTemps=Mostra tutti i modelli
notionToken=Token di Notion
selectDB=Seleziona database
noDBs=Nessun database
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_ja.txt b/src/main/webapp/resources/dia_ja.txt
index e185cf90..3f42a724 100644
--- a/src/main/webapp/resources/dia_ja.txt
+++ b/src/main/webapp/resources/dia_ja.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_kn.txt b/src/main/webapp/resources/dia_kn.txt
index 8b527f19..273bea72 100644
--- a/src/main/webapp/resources/dia_kn.txt
+++ b/src/main/webapp/resources/dia_kn.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_ko.txt b/src/main/webapp/resources/dia_ko.txt
index 3b486b5b..1285dfe4 100644
--- a/src/main/webapp/resources/dia_ko.txt
+++ b/src/main/webapp/resources/dia_ko.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_lt.txt b/src/main/webapp/resources/dia_lt.txt
index daa75808..214a8435 100644
--- a/src/main/webapp/resources/dia_lt.txt
+++ b/src/main/webapp/resources/dia_lt.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_lv.txt b/src/main/webapp/resources/dia_lv.txt
index 404f6046..53db44aa 100644
--- a/src/main/webapp/resources/dia_lv.txt
+++ b/src/main/webapp/resources/dia_lv.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_ml.txt b/src/main/webapp/resources/dia_ml.txt
index 166b9dcf..cd148f35 100644
--- a/src/main/webapp/resources/dia_ml.txt
+++ b/src/main/webapp/resources/dia_ml.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_mr.txt b/src/main/webapp/resources/dia_mr.txt
index 4d540453..bec1d275 100644
--- a/src/main/webapp/resources/dia_mr.txt
+++ b/src/main/webapp/resources/dia_mr.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_ms.txt b/src/main/webapp/resources/dia_ms.txt
index 7d6de09a..e16cb27b 100644
--- a/src/main/webapp/resources/dia_ms.txt
+++ b/src/main/webapp/resources/dia_ms.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_my.txt b/src/main/webapp/resources/dia_my.txt
index 424761c6..45dabb32 100644
--- a/src/main/webapp/resources/dia_my.txt
+++ b/src/main/webapp/resources/dia_my.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_nl.txt b/src/main/webapp/resources/dia_nl.txt
index 86f95d71..40c543cf 100644
--- a/src/main/webapp/resources/dia_nl.txt
+++ b/src/main/webapp/resources/dia_nl.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_no.txt b/src/main/webapp/resources/dia_no.txt
index dd99b6d9..0a5506c1 100644
--- a/src/main/webapp/resources/dia_no.txt
+++ b/src/main/webapp/resources/dia_no.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_pl.txt b/src/main/webapp/resources/dia_pl.txt
index c5ede697..238c0202 100644
--- a/src/main/webapp/resources/dia_pl.txt
+++ b/src/main/webapp/resources/dia_pl.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_pt-br.txt b/src/main/webapp/resources/dia_pt-br.txt
index dab146b0..4a8d0774 100644
--- a/src/main/webapp/resources/dia_pt-br.txt
+++ b/src/main/webapp/resources/dia_pt-br.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_pt.txt b/src/main/webapp/resources/dia_pt.txt
index 89d3bae6..7fa1ce22 100644
--- a/src/main/webapp/resources/dia_pt.txt
+++ b/src/main/webapp/resources/dia_pt.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_ro.txt b/src/main/webapp/resources/dia_ro.txt
index 0935107e..b5962af5 100644
--- a/src/main/webapp/resources/dia_ro.txt
+++ b/src/main/webapp/resources/dia_ro.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_ru.txt b/src/main/webapp/resources/dia_ru.txt
index 98db3587..3486d84a 100644
--- a/src/main/webapp/resources/dia_ru.txt
+++ b/src/main/webapp/resources/dia_ru.txt
@@ -1154,3 +1154,4 @@ showAllTemps=Показать все шаблоны
notionToken=Notion токен
selectDB=Выберите базу данных
noDBs=Нет баз данных
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_si.txt b/src/main/webapp/resources/dia_si.txt
index 424761c6..45dabb32 100644
--- a/src/main/webapp/resources/dia_si.txt
+++ b/src/main/webapp/resources/dia_si.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_sk.txt b/src/main/webapp/resources/dia_sk.txt
index d918500a..4527292a 100644
--- a/src/main/webapp/resources/dia_sk.txt
+++ b/src/main/webapp/resources/dia_sk.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_sl.txt b/src/main/webapp/resources/dia_sl.txt
index f8d33090..9d52be5d 100644
--- a/src/main/webapp/resources/dia_sl.txt
+++ b/src/main/webapp/resources/dia_sl.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_sr.txt b/src/main/webapp/resources/dia_sr.txt
index 1e0037e2..ca124017 100644
--- a/src/main/webapp/resources/dia_sr.txt
+++ b/src/main/webapp/resources/dia_sr.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_sv.txt b/src/main/webapp/resources/dia_sv.txt
index 2f0d34d4..c3a9349d 100644
--- a/src/main/webapp/resources/dia_sv.txt
+++ b/src/main/webapp/resources/dia_sv.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_sw.txt b/src/main/webapp/resources/dia_sw.txt
index fb151194..c755f4bd 100644
--- a/src/main/webapp/resources/dia_sw.txt
+++ b/src/main/webapp/resources/dia_sw.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_ta.txt b/src/main/webapp/resources/dia_ta.txt
index 8881c564..0e0f9ee1 100644
--- a/src/main/webapp/resources/dia_ta.txt
+++ b/src/main/webapp/resources/dia_ta.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_te.txt b/src/main/webapp/resources/dia_te.txt
index 21c6a64c..d9a1d31f 100644
--- a/src/main/webapp/resources/dia_te.txt
+++ b/src/main/webapp/resources/dia_te.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_th.txt b/src/main/webapp/resources/dia_th.txt
index 82c38ef5..0712b4df 100644
--- a/src/main/webapp/resources/dia_th.txt
+++ b/src/main/webapp/resources/dia_th.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_tr.txt b/src/main/webapp/resources/dia_tr.txt
index 659d2992..ba65b2d3 100644
--- a/src/main/webapp/resources/dia_tr.txt
+++ b/src/main/webapp/resources/dia_tr.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_uk.txt b/src/main/webapp/resources/dia_uk.txt
index 0ad5eb7a..6d738866 100644
--- a/src/main/webapp/resources/dia_uk.txt
+++ b/src/main/webapp/resources/dia_uk.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_vi.txt b/src/main/webapp/resources/dia_vi.txt
index d5911f2b..2bba86cb 100644
--- a/src/main/webapp/resources/dia_vi.txt
+++ b/src/main/webapp/resources/dia_vi.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_zh-tw.txt b/src/main/webapp/resources/dia_zh-tw.txt
index 79259481..8bde6611 100644
--- a/src/main/webapp/resources/dia_zh-tw.txt
+++ b/src/main/webapp/resources/dia_zh-tw.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/resources/dia_zh.txt b/src/main/webapp/resources/dia_zh.txt
index f63e68c7..6a7b2117 100644
--- a/src/main/webapp/resources/dia_zh.txt
+++ b/src/main/webapp/resources/dia_zh.txt
@@ -1104,7 +1104,7 @@ cantLoadPrev=Cannot load file preview.
errAccessFile=Error: Access Denied. You do not have permission to access "{1}".
noPrevAvail=No preview is available.
personalAccNotSup=Personal accounts are not supported.
-errSavingTryLater=Error occured during saving, please try again later.
+errSavingTryLater=Error occurred during saving, please try again later.
plsEnterFld=Please enter {1}
invalidDiagUrl=Invalid Diagram URL
unsupportedVsdx=Unsupported vsdx file
@@ -1154,3 +1154,4 @@ showAllTemps=Show all templates
notionToken=Notion Token
selectDB=Select Database
noDBs=No Databases
+diagramEdited={1} diagram "{2}" edited
diff --git a/src/main/webapp/service-worker.js b/src/main/webapp/service-worker.js
index fdc4c48a..74118a30 100644
--- a/src/main/webapp/service-worker.js
+++ b/src/main/webapp/service-worker.js
@@ -1,2 +1,2 @@
-if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let i=Promise.resolve();return r[e]||(i=new Promise((async i=>{if("document"in self){const r=document.createElement("script");r.src=e,document.head.appendChild(r),r.onload=i}else importScripts(e),i()}))),i.then((()=>{if(!r[e])throw new Error(`Module ${e} didn’t register its module`);return r[e]}))},i=(i,r)=>{Promise.all(i.map(e)).then((e=>r(1===e.length?e[0]:e)))},r={require:Promise.resolve(i)};self.define=(i,a,c)=>{r[i]||(r[i]=Promise.resolve().then((()=>{let r={};const s={uri:location.origin+i.slice(1)};return Promise.all(a.map((i=>{switch(i){case"exports":return r;case"module":return s;default:return e(i)}}))).then((e=>{const i=c(...e);return r.default||(r.default=i),r}))})))}}define("./service-worker.js",["./workbox-f163abaa"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"js/app.min.js",revision:"86aa98f38477fc2d8018a8d7a2f43323"},{url:"js/extensions.min.js",revision:"adae2bddf90d292f9e6297db50f39dd3"},{url:"js/stencils.min.js",revision:"c170a229d8726934c0d6b04c2214a36c"},{url:"js/shapes-14-6-5.min.js",revision:"2a45abd06dfe78e69135e9f87f9b78d3"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"6d4fee0a8111a8faf43063d25ceea2dc"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"a02a5d8342a82adf17798f4eae85befc"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"87d5d01385c5d0f0c4c4f5d0f3532826"},{url:"js/croppie/croppie.min.css",revision:"fc297c9002c79c15a132f13ee3ec427e"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"505e8280346666f7ee801bc59521fa67"},{url:"js/viewer-static.min.js",revision:"3502a4b05a67adf748d8fa9efa2f0f0b"},{url:"connect/jira/editor-1-3-3.html",revision:"a2b0e7267a08a838f3cc404eba831ec0"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"2ce6e99d95113e9ca6b24343cea202e0"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"ba7ece2dfb2833b72f97280d7092f25e"},{url:"connect/jira/viewerPanel.js",revision:"f7a38ee065b927f3e9568213709e5b84"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"375a89b2a867264a395f384d00eeba13"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"197ed5837ed27992688fc424699a9a78"},{url:"connect/jira/fullscreen-viewer.js",revision:"4e0775a6c156a803e777870623ac7c3e"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"c787357209cff2986dcca567b599e2ef"},{url:"plugins/cConf-1-4-8.js",revision:"ec6e55011746305549024292f46270bd"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"de7a849deac8c4347adf8a3cd7f7d23a"},{url:"connect/new_common/cac.js",revision:"3d8c436c566db645fb1e6e6ba9f69bbc"},{url:"connect/gdrive_common/gac.js",revision:"38f1df3ecc4d78290493f47e62202138"},{url:"connect/onedrive_common/ac.js",revision:"293aa21acaf0a3349686f420b2be874a"},{url:"connect/confluence/viewer-init.js",revision:"4a60c6c805cab7bc782f1e52f7818d9f"},{url:"connect/confluence/viewer.js",revision:"c861a0b3beb7a99be4eaceb970e088b5"},{url:"connect/confluence/viewer-1-4-42.html",revision:"c7b38b3af4eb7a58ab6dc4791216530e"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"8cd74a2fb60bf2e3e86026d66107cf11"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"ea920e51a37c0b54d7187e0ee2791b5d"},{url:"connect/confluence/includeDiagram.html",revision:"538252ed4fed6d5e9f4e53b35954c116"},{url:"connect/confluence/macro-editor.js",revision:"e273a48b8e81faac4530bf1a68d75aa0"},{url:"math/MathJax.js",revision:"b2c103388b71bb3d11cbf9aa45fe9b68"},{url:"math/config/TeX-MML-AM_SVG-full.js",revision:"d5cb8ac04050983170ae4af145bc66ff"},{url:"math/jax/output/SVG/fonts/TeX/fontdata.js",revision:"495e5a410955d1b6178870e605890ede"},{url:"math/jax/element/mml/optable/BasicLatin.js",revision:"cac9b2e71382e62270baa55fab07cc13"},{url:"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js",revision:"e3e5e4d5924beed29f0844550b5c8f46"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js",revision:"0767cbad7275b53da128e7e5e1109f7c"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js",revision:"346302a5c5ee00e01c302148c56dbfe3"},{url:"resources/dia.txt",revision:"22a35945d39e5c6a2295986983b95558"},{url:"resources/dia_am.txt",revision:"7679774879bab59127978f55de0e7f22"},{url:"resources/dia_ar.txt",revision:"059438adcd41c7e87e84df034a15c58a"},{url:"resources/dia_bg.txt",revision:"345449bee4662d680212d87352a6863e"},{url:"resources/dia_bn.txt",revision:"ebdee7ce8eee11360f024a7b7c84704f"},{url:"resources/dia_bs.txt",revision:"ee910b42f0d5cf7308274bb603c11ed4"},{url:"resources/dia_ca.txt",revision:"39e26b8db7ed2551f3e1ca2775499ca2"},{url:"resources/dia_cs.txt",revision:"42d5d1b7b6dc14bd1c7e9f62ddc2f550"},{url:"resources/dia_da.txt",revision:"5445d341a5622d0f1b9049052fa4940e"},{url:"resources/dia_de.txt",revision:"e6a5f2578c13859208897260eaabf1bb"},{url:"resources/dia_el.txt",revision:"ceeff57bf9c8b5805127737c5f9bd292"},{url:"resources/dia_eo.txt",revision:"ccd6a955cfe39c652c1f3d4e9206e374"},{url:"resources/dia_es.txt",revision:"7d573da6ecc4e85eecf149877b0f2530"},{url:"resources/dia_et.txt",revision:"01e9f6f54ff0d25864b4d4cd70b23cf5"},{url:"resources/dia_eu.txt",revision:"95636be93efe7c9ab1c01c85af64aea8"},{url:"resources/dia_fa.txt",revision:"e8ed1f898e6f6b893a9f1177e5a8667c"},{url:"resources/dia_fi.txt",revision:"6f85ffd8fce9a6a7b15cf32e5e797554"},{url:"resources/dia_fil.txt",revision:"5fe3ff517a060d81a706551547236792"},{url:"resources/dia_fr.txt",revision:"b22dd6f56879fc2257e373365cb10c41"},{url:"resources/dia_gl.txt",revision:"db05adb4d8189ae8685b818d2290e6d2"},{url:"resources/dia_gu.txt",revision:"dba3ed7456e4388640e156c81600ffd4"},{url:"resources/dia_he.txt",revision:"668973532a9d359fa13919d5b5c1080e"},{url:"resources/dia_hi.txt",revision:"26226074f7c93476efa7ebe52c9d1199"},{url:"resources/dia_hr.txt",revision:"836c8c9ed83900de16eca3233cf45e15"},{url:"resources/dia_hu.txt",revision:"686543629889b720819314bd2a34153f"},{url:"resources/dia_id.txt",revision:"7b57be1900e9a7d741f8a846877b9efd"},{url:"resources/dia_it.txt",revision:"e0323a8a653452942a6dbb57bb8a0afa"},{url:"resources/dia_ja.txt",revision:"c2f0822c37abc666a0f1bbf94e766d06"},{url:"resources/dia_kn.txt",revision:"f85ecc9e1d0aa5ec42bcb1ce8856c28a"},{url:"resources/dia_ko.txt",revision:"a26cd0774be487bbcb72312636aa1f31"},{url:"resources/dia_lt.txt",revision:"37210364cc4a32bfa95178aef772bee7"},{url:"resources/dia_lv.txt",revision:"624b6ad7b7a8466239832f358249f4f6"},{url:"resources/dia_ml.txt",revision:"f210b7ba44e6109e866b1657806e105a"},{url:"resources/dia_mr.txt",revision:"abdbb0053169129ce26e8651f4b0b5da"},{url:"resources/dia_ms.txt",revision:"d9be558fd1726ff8e88097afee8fbec5"},{url:"resources/dia_my.txt",revision:"22a35945d39e5c6a2295986983b95558"},{url:"resources/dia_nl.txt",revision:"407b1c15df496c2069bad1e2725b4050"},{url:"resources/dia_no.txt",revision:"700f9d5a8145697c4546f9c74ed830f7"},{url:"resources/dia_pl.txt",revision:"d98039a314e45e6eec0841a0fbf6cfff"},{url:"resources/dia_pt-br.txt",revision:"1580909ff440cd9ef3f166fbdee5de31"},{url:"resources/dia_pt.txt",revision:"95660d780e10208e99b8a1844ea14de2"},{url:"resources/dia_ro.txt",revision:"7d444c354c1860ee949e1774b2b3b380"},{url:"resources/dia_ru.txt",revision:"a53d65d97203f95131d03e94df09f4f0"},{url:"resources/dia_si.txt",revision:"22a35945d39e5c6a2295986983b95558"},{url:"resources/dia_sk.txt",revision:"95f123fdd001e1729b42a7777cc0f6ca"},{url:"resources/dia_sl.txt",revision:"7d8c29b92780639f533ed71cbc8a751e"},{url:"resources/dia_sr.txt",revision:"c337352ad08801f22340d77b78700f2e"},{url:"resources/dia_sv.txt",revision:"1a81c879e5255640f77ab879a6ec2e88"},{url:"resources/dia_sw.txt",revision:"b3f337d01ef7a052d85f3d6a535a4441"},{url:"resources/dia_ta.txt",revision:"8fe0d264ee49b39f325fc7c41d6571d0"},{url:"resources/dia_te.txt",revision:"19f764209e68d396d003c4c316831ac3"},{url:"resources/dia_th.txt",revision:"9c132c01c1c10a46e31935e0bc272826"},{url:"resources/dia_tr.txt",revision:"48802e0f328876dbb7ca0b2189bdd2b1"},{url:"resources/dia_uk.txt",revision:"b41e7c7956693f8c623cb9c7d82150a4"},{url:"resources/dia_vi.txt",revision:"a877e9f015ef1d7ee3249e862b4a76d8"},{url:"resources/dia_zh-tw.txt",revision:"cd5b395f0ba6fce42e53a61810fce978"},{url:"resources/dia_zh.txt",revision:"744770c7ddfee6852b70f371fa75bb45"},{url:"favicon.ico",revision:"fab2d88b37c72d83607527573de45281"},{url:"images/manifest.json",revision:"c6236bde53ed79aaaec60a1aca8ee2ef"},{url:"images/logo.png",revision:"89630b64b911ebe0daa3dfe442087cfa"},{url:"images/drawlogo.svg",revision:"4bf4d14ebcf072d8bd4c5a1c89e88fc6"},{url:"images/drawlogo48.png",revision:"8b13428373aca67b895364d025f42417"},{url:"images/drawlogo-gray.svg",revision:"0aabacbc0873816e1e09e4736ae44c7d"},{url:"images/drawlogo-text-bottom.svg",revision:"f6c438823ab31f290940bd4feb8dd9c2"},{url:"images/default-user.jpg",revision:"2c399696a87c8921f12d2f9e1990cc6e"},{url:"images/logo-flat-small.png",revision:"4b178e59ff499d6dd1894fc498b59877"},{url:"images/apple-touch-icon.png",revision:"73da7989a23ce9a4be565ec65658a239"},{url:"images/favicon-16x16.png",revision:"1a79d5461a5d2bf21f6652e0ac20d6e5"},{url:"images/favicon-32x32.png",revision:"e3b92da2febe70bad5372f6f3474b034"},{url:"images/android-chrome-196x196.png",revision:"f8c045b2d7b1c719fda64edab04c415c"},{url:"images/android-chrome-512x512.png",revision:"959b5fac2453963ff6d60fb85e4b73fd"},{url:"images/delete.png",revision:"5f2350f2fd20f1a229637aed32ed8f29"},{url:"images/droptarget.png",revision:"bbf7f563fb6784de1ce96f329519b043"},{url:"images/help.png",revision:"9266c6c3915bd33c243d80037d37bf61"},{url:"images/download.png",revision:"35418dd7bd48d87502c71b578cc6c37f"},{url:"images/logo-flat.png",revision:"038070ab43aee6e54a791211859fc67b"},{url:"images/google-drive-logo.svg",revision:"5d9f2f5bbc7dcc252730a0072bb23059"},{url:"images/onedrive-logo.svg",revision:"3645b344ec0634c1290dd58d7dc87b97"},{url:"images/dropbox-logo.svg",revision:"e6be408c77cf9c82d41ac64fa854280a"},{url:"images/github-logo.svg",revision:"a1a999b69a275eac0cb918360ac05ae1"},{url:"images/gitlab-logo.svg",revision:"0faea8c818899e58533e153c44b10517"},{url:"images/trello-logo.svg",revision:"006fd0d7d70d7e95dc691674cb12e044"},{url:"images/osa_drive-harddisk.png",revision:"b954e1ae772087c5b4c6ae797e1f9649"},{url:"images/osa_database.png",revision:"c350d9d9b95f37b6cfe798b40ede5fb0"},{url:"images/google-drive-logo-white.svg",revision:"f329d8b1be7778515a85b93fc35d9f26"},{url:"images/dropbox-logo-white.svg",revision:"4ea8299ac3bc31a16f199ee3aec223bf"},{url:"images/onedrive-logo-white.svg",revision:"b3602fa0fc947009cff3f33a581cff4d"},{url:"images/github-logo-white.svg",revision:"537b1127b3ca0f95b45782d1304fb77a"},{url:"images/gitlab-logo-white.svg",revision:"5fede9ac2f394c716b8c23e3fddc3910"},{url:"images/trello-logo-white-orange.svg",revision:"e2a0a52ba3766682f138138d10a75eb5"},{url:"images/logo-confluence.png",revision:"ed1e55d44ae5eba8f999aba2c93e8331"},{url:"images/logo-jira.png",revision:"f8d460555a0d1f87cfd901e940666629"},{url:"images/clear.gif",revision:"db13c778e4382e0b55258d0f811d5d70"},{url:"images/spin.gif",revision:"487cbb40b9ced439aa1ad914e816d773"},{url:"images/checkmark.gif",revision:"ba764ce62f2bf952df5bbc2bb4d381c5"},{url:"images/hs.png",revision:"fefa1a03d92ebad25c88dca94a0b63db"},{url:"images/aui-wait.gif",revision:"5a474bcbd8d2f2826f03d10ea44bf60e"},{url:"mxgraph/css/common.css",revision:"b5b7280ec98671bb6c3847a36bc7ea12"},{url:"mxgraph/images/expanded.gif",revision:"2b67c2c035af1e9a5cc814f0d22074cf"},{url:"mxgraph/images/collapsed.gif",revision:"73cc826da002a3d740ca4ce6ec5c1f4a"},{url:"mxgraph/images/maximize.gif",revision:"5cd13d6925493ab51e876694cc1c2ec2"},{url:"mxgraph/images/minimize.gif",revision:"8957741b9b0f86af9438775f2aadbb54"},{url:"mxgraph/images/close.gif",revision:"8b84669812ac7382984fca35de8da48b"},{url:"mxgraph/images/resize.gif",revision:"a6477612b3567a34033f9cac6184eed3"},{url:"mxgraph/images/separator.gif",revision:"7819742ff106c97da7a801c2372bbbe5"},{url:"mxgraph/images/window.gif",revision:"fd9a21dd4181f98052a202a0a01f18ab"},{url:"mxgraph/images/window-title.gif",revision:"3fb1d6c43246cdf991a11dfe826dfe99"},{url:"mxgraph/images/button.gif",revision:"00759bdc3ad218fa739f584369541809"},{url:"mxgraph/images/point.gif",revision:"83a43717b284902442620f61bc4e9fa6"}],{ignoreURLParametersMatching:[/.*/]})}));
+if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let i=Promise.resolve();return r[e]||(i=new Promise((async i=>{if("document"in self){const r=document.createElement("script");r.src=e,document.head.appendChild(r),r.onload=i}else importScripts(e),i()}))),i.then((()=>{if(!r[e])throw new Error(`Module ${e} didn’t register its module`);return r[e]}))},i=(i,r)=>{Promise.all(i.map(e)).then((e=>r(1===e.length?e[0]:e)))},r={require:Promise.resolve(i)};self.define=(i,a,c)=>{r[i]||(r[i]=Promise.resolve().then((()=>{let r={};const s={uri:location.origin+i.slice(1)};return Promise.all(a.map((i=>{switch(i){case"exports":return r;case"module":return s;default:return e(i)}}))).then((e=>{const i=c(...e);return r.default||(r.default=i),r}))})))}}define("./service-worker.js",["./workbox-f163abaa"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"js/app.min.js",revision:"00c4b466892ccdb5d716c4dbd02348fb"},{url:"js/extensions.min.js",revision:"adae2bddf90d292f9e6297db50f39dd3"},{url:"js/stencils.min.js",revision:"c170a229d8726934c0d6b04c2214a36c"},{url:"js/shapes-14-6-5.min.js",revision:"2a45abd06dfe78e69135e9f87f9b78d3"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"6d4fee0a8111a8faf43063d25ceea2dc"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"a02a5d8342a82adf17798f4eae85befc"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"87d5d01385c5d0f0c4c4f5d0f3532826"},{url:"js/croppie/croppie.min.css",revision:"fc297c9002c79c15a132f13ee3ec427e"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"505e8280346666f7ee801bc59521fa67"},{url:"js/viewer-static.min.js",revision:"b1a2e1b1a68bd1d096b0df37be0ee66a"},{url:"connect/jira/editor-1-3-3.html",revision:"a2b0e7267a08a838f3cc404eba831ec0"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"2ce6e99d95113e9ca6b24343cea202e0"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"ba7ece2dfb2833b72f97280d7092f25e"},{url:"connect/jira/viewerPanel.js",revision:"f7a38ee065b927f3e9568213709e5b84"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"375a89b2a867264a395f384d00eeba13"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"197ed5837ed27992688fc424699a9a78"},{url:"connect/jira/fullscreen-viewer.js",revision:"4e0775a6c156a803e777870623ac7c3e"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"c787357209cff2986dcca567b599e2ef"},{url:"plugins/cConf-1-4-8.js",revision:"ec6e55011746305549024292f46270bd"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"74878fb4834967aa4a68647cab7888c1"},{url:"connect/new_common/cac.js",revision:"3d8c436c566db645fb1e6e6ba9f69bbc"},{url:"connect/gdrive_common/gac.js",revision:"38f1df3ecc4d78290493f47e62202138"},{url:"connect/onedrive_common/ac.js",revision:"293aa21acaf0a3349686f420b2be874a"},{url:"connect/confluence/viewer-init.js",revision:"4a60c6c805cab7bc782f1e52f7818d9f"},{url:"connect/confluence/viewer.js",revision:"c861a0b3beb7a99be4eaceb970e088b5"},{url:"connect/confluence/viewer-1-4-42.html",revision:"c7b38b3af4eb7a58ab6dc4791216530e"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"8cd74a2fb60bf2e3e86026d66107cf11"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"ea920e51a37c0b54d7187e0ee2791b5d"},{url:"connect/confluence/includeDiagram.html",revision:"538252ed4fed6d5e9f4e53b35954c116"},{url:"connect/confluence/macro-editor.js",revision:"e273a48b8e81faac4530bf1a68d75aa0"},{url:"math/MathJax.js",revision:"b2c103388b71bb3d11cbf9aa45fe9b68"},{url:"math/config/TeX-MML-AM_SVG-full.js",revision:"d5cb8ac04050983170ae4af145bc66ff"},{url:"math/jax/output/SVG/fonts/TeX/fontdata.js",revision:"495e5a410955d1b6178870e605890ede"},{url:"math/jax/element/mml/optable/BasicLatin.js",revision:"cac9b2e71382e62270baa55fab07cc13"},{url:"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js",revision:"e3e5e4d5924beed29f0844550b5c8f46"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js",revision:"0767cbad7275b53da128e7e5e1109f7c"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js",revision:"346302a5c5ee00e01c302148c56dbfe3"},{url:"resources/dia.txt",revision:"b27e8770b0fc71f51c97a80bed58ec4e"},{url:"resources/dia_am.txt",revision:"ff59ef2ea422e962065b978f74f1989e"},{url:"resources/dia_ar.txt",revision:"b53a2876e65d205d42c0217216db0a0b"},{url:"resources/dia_bg.txt",revision:"5ae6ea7a2b816b32ded88cb15651dbfc"},{url:"resources/dia_bn.txt",revision:"f8775fef4398d0863d1c95b92f778f14"},{url:"resources/dia_bs.txt",revision:"1a5bbe8e6e02b215c7457d9735ada682"},{url:"resources/dia_ca.txt",revision:"d8ac61cb5b3e5d47f9ce8160c8b2f057"},{url:"resources/dia_cs.txt",revision:"aeaa9d93c19d60a9ab385a21d57f025c"},{url:"resources/dia_da.txt",revision:"5e0221a99a3fdf557b5ccf72965d99b2"},{url:"resources/dia_de.txt",revision:"d3ad299dc8cfbd2a34479edfafce74ad"},{url:"resources/dia_el.txt",revision:"80761a88228f85296bfc029bf5340718"},{url:"resources/dia_eo.txt",revision:"4544b6600298fe72d2d516fd135c54fa"},{url:"resources/dia_es.txt",revision:"863e0e73d4cdf95093461ef0157e13e5"},{url:"resources/dia_et.txt",revision:"3a47c1b462102c60e47e0f7d6e07d379"},{url:"resources/dia_eu.txt",revision:"92c451283a83cae2d83460b1b0aaf1c4"},{url:"resources/dia_fa.txt",revision:"c56a53dac116441fac2a6e6a110b4fcf"},{url:"resources/dia_fi.txt",revision:"fcc968a8202ebe596bb4efa31d5c55b7"},{url:"resources/dia_fil.txt",revision:"0c98b10b2ce7660502fab8f8a09216c0"},{url:"resources/dia_fr.txt",revision:"550ba55018af500d82b2ade74f49d6a6"},{url:"resources/dia_gl.txt",revision:"d9dedee9a17ce0e98cac6a641dbd1b17"},{url:"resources/dia_gu.txt",revision:"6d6d7e768e1d255dcb9f9abf87676787"},{url:"resources/dia_he.txt",revision:"404b9e323e5bbbecb63ea4a58385431a"},{url:"resources/dia_hi.txt",revision:"8c4436fda7e9278685d9d5d6e0942ae9"},{url:"resources/dia_hr.txt",revision:"38cf52a7e23c4e8796d0cbb7ea217f7e"},{url:"resources/dia_hu.txt",revision:"e17887d5e7057c80ec1da14fe7749c52"},{url:"resources/dia_id.txt",revision:"32c8349f2744c3b6023fd17742eb1c2c"},{url:"resources/dia_it.txt",revision:"57eba100f012d139d00543c31060cf04"},{url:"resources/dia_ja.txt",revision:"cbb7bea7bd120272c6dfe0d6f0ca85f4"},{url:"resources/dia_kn.txt",revision:"ca9045d8ab0d3c8448228187c8ba77cd"},{url:"resources/dia_ko.txt",revision:"ea4948e5456ac276658b0071172dee82"},{url:"resources/dia_lt.txt",revision:"05955be58d94abc2707dea99394a60db"},{url:"resources/dia_lv.txt",revision:"47aa1bcdd23457cd5f3026db7a357fc9"},{url:"resources/dia_ml.txt",revision:"5735f8afcd3fb73882147629d044e368"},{url:"resources/dia_mr.txt",revision:"8e891bbae07ac6fbe9038e8d19fb66fd"},{url:"resources/dia_ms.txt",revision:"ea1992800627d8e54c54d54d1078cd50"},{url:"resources/dia_my.txt",revision:"b27e8770b0fc71f51c97a80bed58ec4e"},{url:"resources/dia_nl.txt",revision:"a158a142f848a44f4b9a86b2c71de770"},{url:"resources/dia_no.txt",revision:"a73fe6de8d13ff09b57022c6152de435"},{url:"resources/dia_pl.txt",revision:"a731cde706b7b10c2bb9b8b804ecf99e"},{url:"resources/dia_pt-br.txt",revision:"6d5aef2fa11b45c7e089a78d8f8077d9"},{url:"resources/dia_pt.txt",revision:"e39267e6c115d3dfff18734d9512396a"},{url:"resources/dia_ro.txt",revision:"e2485ba528fffc006ddc16a2bdbba588"},{url:"resources/dia_ru.txt",revision:"4e4dff4df4bb635eab4648a31718bb71"},{url:"resources/dia_si.txt",revision:"b27e8770b0fc71f51c97a80bed58ec4e"},{url:"resources/dia_sk.txt",revision:"aa39fa602751e960c408b51bc4d1e9a3"},{url:"resources/dia_sl.txt",revision:"a1e9ea18592a3520a564da53754435f1"},{url:"resources/dia_sr.txt",revision:"ee7f392d230f3acf9ee64e59912d2240"},{url:"resources/dia_sv.txt",revision:"d1af4adc3abc689e2b2877348fe3a80e"},{url:"resources/dia_sw.txt",revision:"ee11057cc33d2db3915810afa98e4fb8"},{url:"resources/dia_ta.txt",revision:"64633496007987935476811363899867"},{url:"resources/dia_te.txt",revision:"b67de98cc3819f31d6aedc4a8e332d3f"},{url:"resources/dia_th.txt",revision:"bf3564b735dddb73bafa110e1ba4f364"},{url:"resources/dia_tr.txt",revision:"e66e3a8530b0bda46ff6de26598a637b"},{url:"resources/dia_uk.txt",revision:"1ea94afcd9c9383c784ceae2896c8af4"},{url:"resources/dia_vi.txt",revision:"2ea8a953b560713a201dff1d8d3917dd"},{url:"resources/dia_zh-tw.txt",revision:"7a19eef01a4ee231cc05d3b3833bba4f"},{url:"resources/dia_zh.txt",revision:"f63faca2218966f9c6f7d2c52a3872c5"},{url:"favicon.ico",revision:"fab2d88b37c72d83607527573de45281"},{url:"images/manifest.json",revision:"c6236bde53ed79aaaec60a1aca8ee2ef"},{url:"images/logo.png",revision:"89630b64b911ebe0daa3dfe442087cfa"},{url:"images/drawlogo.svg",revision:"4bf4d14ebcf072d8bd4c5a1c89e88fc6"},{url:"images/drawlogo48.png",revision:"8b13428373aca67b895364d025f42417"},{url:"images/drawlogo-gray.svg",revision:"0aabacbc0873816e1e09e4736ae44c7d"},{url:"images/drawlogo-text-bottom.svg",revision:"f6c438823ab31f290940bd4feb8dd9c2"},{url:"images/default-user.jpg",revision:"2c399696a87c8921f12d2f9e1990cc6e"},{url:"images/logo-flat-small.png",revision:"4b178e59ff499d6dd1894fc498b59877"},{url:"images/apple-touch-icon.png",revision:"73da7989a23ce9a4be565ec65658a239"},{url:"images/favicon-16x16.png",revision:"1a79d5461a5d2bf21f6652e0ac20d6e5"},{url:"images/favicon-32x32.png",revision:"e3b92da2febe70bad5372f6f3474b034"},{url:"images/android-chrome-196x196.png",revision:"f8c045b2d7b1c719fda64edab04c415c"},{url:"images/android-chrome-512x512.png",revision:"959b5fac2453963ff6d60fb85e4b73fd"},{url:"images/delete.png",revision:"5f2350f2fd20f1a229637aed32ed8f29"},{url:"images/droptarget.png",revision:"bbf7f563fb6784de1ce96f329519b043"},{url:"images/help.png",revision:"9266c6c3915bd33c243d80037d37bf61"},{url:"images/download.png",revision:"35418dd7bd48d87502c71b578cc6c37f"},{url:"images/logo-flat.png",revision:"038070ab43aee6e54a791211859fc67b"},{url:"images/google-drive-logo.svg",revision:"5d9f2f5bbc7dcc252730a0072bb23059"},{url:"images/onedrive-logo.svg",revision:"3645b344ec0634c1290dd58d7dc87b97"},{url:"images/dropbox-logo.svg",revision:"e6be408c77cf9c82d41ac64fa854280a"},{url:"images/github-logo.svg",revision:"a1a999b69a275eac0cb918360ac05ae1"},{url:"images/gitlab-logo.svg",revision:"0faea8c818899e58533e153c44b10517"},{url:"images/trello-logo.svg",revision:"006fd0d7d70d7e95dc691674cb12e044"},{url:"images/osa_drive-harddisk.png",revision:"b954e1ae772087c5b4c6ae797e1f9649"},{url:"images/osa_database.png",revision:"c350d9d9b95f37b6cfe798b40ede5fb0"},{url:"images/google-drive-logo-white.svg",revision:"f329d8b1be7778515a85b93fc35d9f26"},{url:"images/dropbox-logo-white.svg",revision:"4ea8299ac3bc31a16f199ee3aec223bf"},{url:"images/onedrive-logo-white.svg",revision:"b3602fa0fc947009cff3f33a581cff4d"},{url:"images/github-logo-white.svg",revision:"537b1127b3ca0f95b45782d1304fb77a"},{url:"images/gitlab-logo-white.svg",revision:"5fede9ac2f394c716b8c23e3fddc3910"},{url:"images/trello-logo-white-orange.svg",revision:"e2a0a52ba3766682f138138d10a75eb5"},{url:"images/logo-confluence.png",revision:"ed1e55d44ae5eba8f999aba2c93e8331"},{url:"images/logo-jira.png",revision:"f8d460555a0d1f87cfd901e940666629"},{url:"images/clear.gif",revision:"db13c778e4382e0b55258d0f811d5d70"},{url:"images/spin.gif",revision:"487cbb40b9ced439aa1ad914e816d773"},{url:"images/checkmark.gif",revision:"ba764ce62f2bf952df5bbc2bb4d381c5"},{url:"images/hs.png",revision:"fefa1a03d92ebad25c88dca94a0b63db"},{url:"images/aui-wait.gif",revision:"5a474bcbd8d2f2826f03d10ea44bf60e"},{url:"mxgraph/css/common.css",revision:"b5b7280ec98671bb6c3847a36bc7ea12"},{url:"mxgraph/images/expanded.gif",revision:"2b67c2c035af1e9a5cc814f0d22074cf"},{url:"mxgraph/images/collapsed.gif",revision:"73cc826da002a3d740ca4ce6ec5c1f4a"},{url:"mxgraph/images/maximize.gif",revision:"5cd13d6925493ab51e876694cc1c2ec2"},{url:"mxgraph/images/minimize.gif",revision:"8957741b9b0f86af9438775f2aadbb54"},{url:"mxgraph/images/close.gif",revision:"8b84669812ac7382984fca35de8da48b"},{url:"mxgraph/images/resize.gif",revision:"a6477612b3567a34033f9cac6184eed3"},{url:"mxgraph/images/separator.gif",revision:"7819742ff106c97da7a801c2372bbbe5"},{url:"mxgraph/images/window.gif",revision:"fd9a21dd4181f98052a202a0a01f18ab"},{url:"mxgraph/images/window-title.gif",revision:"3fb1d6c43246cdf991a11dfe826dfe99"},{url:"mxgraph/images/button.gif",revision:"00759bdc3ad218fa739f584369541809"},{url:"mxgraph/images/point.gif",revision:"83a43717b284902442620f61bc4e9fa6"}],{ignoreURLParametersMatching:[/.*/]})}));
//# sourceMappingURL=service-worker.js.map
diff --git a/src/main/webapp/service-worker.js.map b/src/main/webapp/service-worker.js.map
index 3ad9d93e..a65e1e43 100644
--- a/src/main/webapp/service-worker.js.map
+++ b/src/main/webapp/service-worker.js.map
@@ -1 +1 @@
-{"version":3,"file":"service-worker.js","sources":["../../../../../../private/var/folders/cv/_wml09cx4cd5ryt_r7z2tjjm0000gn/T/1a97a61a0ec4132cbd141f709e5d91ac/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/usr/local/lib/node_modules/workbox-cli/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"js/app.min.js\",\n \"revision\": \"86aa98f38477fc2d8018a8d7a2f43323\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"adae2bddf90d292f9e6297db50f39dd3\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"c170a229d8726934c0d6b04c2214a36c\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"2a45abd06dfe78e69135e9f87f9b78d3\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"9d98c920695f6c3395da4b68f723e60a\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"6d4fee0a8111a8faf43063d25ceea2dc\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"a02a5d8342a82adf17798f4eae85befc\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"e8152cda9233d3a3af017422993abfce\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"87d5d01385c5d0f0c4c4f5d0f3532826\"\n },\n {\n \"url\": \"js/croppie/croppie.min.css\",\n \"revision\": \"fc297c9002c79c15a132f13ee3ec427e\"\n },\n {\n \"url\": \"js/dropbox/Dropbox-sdk.min.js\",\n \"revision\": \"4b9842892aa37b156db0a8364b7a83b0\"\n },\n {\n \"url\": \"js/onedrive/OneDrive.js\",\n \"revision\": \"505e8280346666f7ee801bc59521fa67\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"3502a4b05a67adf748d8fa9efa2f0f0b\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"a2b0e7267a08a838f3cc404eba831ec0\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"2ce6e99d95113e9ca6b24343cea202e0\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"ba7ece2dfb2833b72f97280d7092f25e\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"f7a38ee065b927f3e9568213709e5b84\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"375a89b2a867264a395f384d00eeba13\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"197ed5837ed27992688fc424699a9a78\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"4e0775a6c156a803e777870623ac7c3e\"\n },\n {\n \"url\": \"plugins/connectJira.js\",\n \"revision\": \"4cefa13414e0d406550f3c073923080c\"\n },\n {\n \"url\": \"plugins/cConf-comments.js\",\n \"revision\": \"c787357209cff2986dcca567b599e2ef\"\n },\n {\n \"url\": \"plugins/cConf-1-4-8.js\",\n \"revision\": \"ec6e55011746305549024292f46270bd\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"de7a849deac8c4347adf8a3cd7f7d23a\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"3d8c436c566db645fb1e6e6ba9f69bbc\"\n },\n {\n \"url\": \"connect/gdrive_common/gac.js\",\n \"revision\": \"38f1df3ecc4d78290493f47e62202138\"\n },\n {\n \"url\": \"connect/onedrive_common/ac.js\",\n \"revision\": \"293aa21acaf0a3349686f420b2be874a\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"4a60c6c805cab7bc782f1e52f7818d9f\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"c861a0b3beb7a99be4eaceb970e088b5\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"c7b38b3af4eb7a58ab6dc4791216530e\"\n },\n {\n \"url\": \"connect/confluence/macroEditor-1-4-8.html\",\n \"revision\": \"8cd74a2fb60bf2e3e86026d66107cf11\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"ea920e51a37c0b54d7187e0ee2791b5d\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"538252ed4fed6d5e9f4e53b35954c116\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"e273a48b8e81faac4530bf1a68d75aa0\"\n },\n {\n \"url\": \"math/MathJax.js\",\n \"revision\": \"b2c103388b71bb3d11cbf9aa45fe9b68\"\n },\n {\n \"url\": \"math/config/TeX-MML-AM_SVG-full.js\",\n \"revision\": \"d5cb8ac04050983170ae4af145bc66ff\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/fontdata.js\",\n \"revision\": \"495e5a410955d1b6178870e605890ede\"\n },\n {\n \"url\": \"math/jax/element/mml/optable/BasicLatin.js\",\n \"revision\": \"cac9b2e71382e62270baa55fab07cc13\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js\",\n \"revision\": \"e3e5e4d5924beed29f0844550b5c8f46\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js\",\n \"revision\": \"0767cbad7275b53da128e7e5e1109f7c\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js\",\n \"revision\": \"346302a5c5ee00e01c302148c56dbfe3\"\n },\n {\n \"url\": \"resources/dia.txt\",\n \"revision\": \"22a35945d39e5c6a2295986983b95558\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"7679774879bab59127978f55de0e7f22\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"059438adcd41c7e87e84df034a15c58a\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"345449bee4662d680212d87352a6863e\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"ebdee7ce8eee11360f024a7b7c84704f\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"ee910b42f0d5cf7308274bb603c11ed4\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"39e26b8db7ed2551f3e1ca2775499ca2\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"42d5d1b7b6dc14bd1c7e9f62ddc2f550\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"5445d341a5622d0f1b9049052fa4940e\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"e6a5f2578c13859208897260eaabf1bb\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"ceeff57bf9c8b5805127737c5f9bd292\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"ccd6a955cfe39c652c1f3d4e9206e374\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"7d573da6ecc4e85eecf149877b0f2530\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"01e9f6f54ff0d25864b4d4cd70b23cf5\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"95636be93efe7c9ab1c01c85af64aea8\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"e8ed1f898e6f6b893a9f1177e5a8667c\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"6f85ffd8fce9a6a7b15cf32e5e797554\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"5fe3ff517a060d81a706551547236792\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"b22dd6f56879fc2257e373365cb10c41\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"db05adb4d8189ae8685b818d2290e6d2\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"dba3ed7456e4388640e156c81600ffd4\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"668973532a9d359fa13919d5b5c1080e\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"26226074f7c93476efa7ebe52c9d1199\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"836c8c9ed83900de16eca3233cf45e15\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"686543629889b720819314bd2a34153f\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"7b57be1900e9a7d741f8a846877b9efd\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"e0323a8a653452942a6dbb57bb8a0afa\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"c2f0822c37abc666a0f1bbf94e766d06\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"f85ecc9e1d0aa5ec42bcb1ce8856c28a\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"a26cd0774be487bbcb72312636aa1f31\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"37210364cc4a32bfa95178aef772bee7\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"624b6ad7b7a8466239832f358249f4f6\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"f210b7ba44e6109e866b1657806e105a\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"abdbb0053169129ce26e8651f4b0b5da\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"d9be558fd1726ff8e88097afee8fbec5\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"22a35945d39e5c6a2295986983b95558\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"407b1c15df496c2069bad1e2725b4050\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"700f9d5a8145697c4546f9c74ed830f7\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"d98039a314e45e6eec0841a0fbf6cfff\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"1580909ff440cd9ef3f166fbdee5de31\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"95660d780e10208e99b8a1844ea14de2\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"7d444c354c1860ee949e1774b2b3b380\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"a53d65d97203f95131d03e94df09f4f0\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"22a35945d39e5c6a2295986983b95558\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"95f123fdd001e1729b42a7777cc0f6ca\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"7d8c29b92780639f533ed71cbc8a751e\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"c337352ad08801f22340d77b78700f2e\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"1a81c879e5255640f77ab879a6ec2e88\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"b3f337d01ef7a052d85f3d6a535a4441\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"8fe0d264ee49b39f325fc7c41d6571d0\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"19f764209e68d396d003c4c316831ac3\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"9c132c01c1c10a46e31935e0bc272826\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"48802e0f328876dbb7ca0b2189bdd2b1\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"b41e7c7956693f8c623cb9c7d82150a4\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"a877e9f015ef1d7ee3249e862b4a76d8\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"cd5b395f0ba6fce42e53a61810fce978\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"744770c7ddfee6852b70f371fa75bb45\"\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"fab2d88b37c72d83607527573de45281\"\n },\n {\n \"url\": \"images/manifest.json\",\n \"revision\": \"c6236bde53ed79aaaec60a1aca8ee2ef\"\n },\n {\n \"url\": \"images/logo.png\",\n \"revision\": \"89630b64b911ebe0daa3dfe442087cfa\"\n },\n {\n \"url\": \"images/drawlogo.svg\",\n \"revision\": \"4bf4d14ebcf072d8bd4c5a1c89e88fc6\"\n },\n {\n \"url\": \"images/drawlogo48.png\",\n \"revision\": \"8b13428373aca67b895364d025f42417\"\n },\n {\n \"url\": \"images/drawlogo-gray.svg\",\n \"revision\": \"0aabacbc0873816e1e09e4736ae44c7d\"\n },\n {\n \"url\": \"images/drawlogo-text-bottom.svg\",\n \"revision\": \"f6c438823ab31f290940bd4feb8dd9c2\"\n },\n {\n \"url\": \"images/default-user.jpg\",\n \"revision\": \"2c399696a87c8921f12d2f9e1990cc6e\"\n },\n {\n \"url\": \"images/logo-flat-small.png\",\n \"revision\": \"4b178e59ff499d6dd1894fc498b59877\"\n },\n {\n \"url\": \"images/apple-touch-icon.png\",\n \"revision\": \"73da7989a23ce9a4be565ec65658a239\"\n },\n {\n \"url\": \"images/favicon-16x16.png\",\n \"revision\": \"1a79d5461a5d2bf21f6652e0ac20d6e5\"\n },\n {\n \"url\": \"images/favicon-32x32.png\",\n \"revision\": \"e3b92da2febe70bad5372f6f3474b034\"\n },\n {\n \"url\": \"images/android-chrome-196x196.png\",\n \"revision\": \"f8c045b2d7b1c719fda64edab04c415c\"\n },\n {\n \"url\": \"images/android-chrome-512x512.png\",\n \"revision\": \"959b5fac2453963ff6d60fb85e4b73fd\"\n },\n {\n \"url\": \"images/delete.png\",\n \"revision\": \"5f2350f2fd20f1a229637aed32ed8f29\"\n },\n {\n \"url\": \"images/droptarget.png\",\n \"revision\": \"bbf7f563fb6784de1ce96f329519b043\"\n },\n {\n \"url\": \"images/help.png\",\n \"revision\": \"9266c6c3915bd33c243d80037d37bf61\"\n },\n {\n \"url\": \"images/download.png\",\n \"revision\": \"35418dd7bd48d87502c71b578cc6c37f\"\n },\n {\n \"url\": \"images/logo-flat.png\",\n \"revision\": \"038070ab43aee6e54a791211859fc67b\"\n },\n {\n \"url\": \"images/google-drive-logo.svg\",\n \"revision\": \"5d9f2f5bbc7dcc252730a0072bb23059\"\n },\n {\n \"url\": \"images/onedrive-logo.svg\",\n \"revision\": \"3645b344ec0634c1290dd58d7dc87b97\"\n },\n {\n \"url\": \"images/dropbox-logo.svg\",\n \"revision\": \"e6be408c77cf9c82d41ac64fa854280a\"\n },\n {\n \"url\": \"images/github-logo.svg\",\n \"revision\": \"a1a999b69a275eac0cb918360ac05ae1\"\n },\n {\n \"url\": \"images/gitlab-logo.svg\",\n \"revision\": \"0faea8c818899e58533e153c44b10517\"\n },\n {\n \"url\": \"images/trello-logo.svg\",\n \"revision\": \"006fd0d7d70d7e95dc691674cb12e044\"\n },\n {\n \"url\": \"images/osa_drive-harddisk.png\",\n \"revision\": \"b954e1ae772087c5b4c6ae797e1f9649\"\n },\n {\n \"url\": \"images/osa_database.png\",\n \"revision\": \"c350d9d9b95f37b6cfe798b40ede5fb0\"\n },\n {\n \"url\": \"images/google-drive-logo-white.svg\",\n \"revision\": \"f329d8b1be7778515a85b93fc35d9f26\"\n },\n {\n \"url\": \"images/dropbox-logo-white.svg\",\n \"revision\": \"4ea8299ac3bc31a16f199ee3aec223bf\"\n },\n {\n \"url\": \"images/onedrive-logo-white.svg\",\n \"revision\": \"b3602fa0fc947009cff3f33a581cff4d\"\n },\n {\n \"url\": \"images/github-logo-white.svg\",\n \"revision\": \"537b1127b3ca0f95b45782d1304fb77a\"\n },\n {\n \"url\": \"images/gitlab-logo-white.svg\",\n \"revision\": \"5fede9ac2f394c716b8c23e3fddc3910\"\n },\n {\n \"url\": \"images/trello-logo-white-orange.svg\",\n \"revision\": \"e2a0a52ba3766682f138138d10a75eb5\"\n },\n {\n \"url\": \"images/logo-confluence.png\",\n \"revision\": \"ed1e55d44ae5eba8f999aba2c93e8331\"\n },\n {\n \"url\": \"images/logo-jira.png\",\n \"revision\": \"f8d460555a0d1f87cfd901e940666629\"\n },\n {\n \"url\": \"images/clear.gif\",\n \"revision\": \"db13c778e4382e0b55258d0f811d5d70\"\n },\n {\n \"url\": \"images/spin.gif\",\n \"revision\": \"487cbb40b9ced439aa1ad914e816d773\"\n },\n {\n \"url\": \"images/checkmark.gif\",\n \"revision\": \"ba764ce62f2bf952df5bbc2bb4d381c5\"\n },\n {\n \"url\": \"images/hs.png\",\n \"revision\": \"fefa1a03d92ebad25c88dca94a0b63db\"\n },\n {\n \"url\": \"images/aui-wait.gif\",\n \"revision\": \"5a474bcbd8d2f2826f03d10ea44bf60e\"\n },\n {\n \"url\": \"mxgraph/css/common.css\",\n \"revision\": \"b5b7280ec98671bb6c3847a36bc7ea12\"\n },\n {\n \"url\": \"mxgraph/images/expanded.gif\",\n \"revision\": \"2b67c2c035af1e9a5cc814f0d22074cf\"\n },\n {\n \"url\": \"mxgraph/images/collapsed.gif\",\n \"revision\": \"73cc826da002a3d740ca4ce6ec5c1f4a\"\n },\n {\n \"url\": \"mxgraph/images/maximize.gif\",\n \"revision\": \"5cd13d6925493ab51e876694cc1c2ec2\"\n },\n {\n \"url\": \"mxgraph/images/minimize.gif\",\n \"revision\": \"8957741b9b0f86af9438775f2aadbb54\"\n },\n {\n \"url\": \"mxgraph/images/close.gif\",\n \"revision\": \"8b84669812ac7382984fca35de8da48b\"\n },\n {\n \"url\": \"mxgraph/images/resize.gif\",\n \"revision\": \"a6477612b3567a34033f9cac6184eed3\"\n },\n {\n \"url\": \"mxgraph/images/separator.gif\",\n \"revision\": \"7819742ff106c97da7a801c2372bbbe5\"\n },\n {\n \"url\": \"mxgraph/images/window.gif\",\n \"revision\": \"fd9a21dd4181f98052a202a0a01f18ab\"\n },\n {\n \"url\": \"mxgraph/images/window-title.gif\",\n \"revision\": \"3fb1d6c43246cdf991a11dfe826dfe99\"\n },\n {\n \"url\": \"mxgraph/images/button.gif\",\n \"revision\": \"00759bdc3ad218fa739f584369541809\"\n },\n {\n \"url\": \"mxgraph/images/point.gif\",\n \"revision\": \"83a43717b284902442620f61bc4e9fa6\"\n }\n], {\n \"ignoreURLParametersMatching\": [/.*/]\n});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting"],"mappings":"szBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,oCAY2B,CAClC,KACS,yBACK,oCAEd,KACS,gCACK,oCAEd,KACS,8BACK,oCAEd,KACS,mCACK,oCAEd,KACS,4BACK,oCAEd,KACS,sBACK,oCAEd,KACS,qBACK,oCAEd,KACS,kCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,sCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,mCACK,oCAEd,KACS,0CACK,oCAEd,KACS,gDACK,oCAEd,KACS,oDACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kDACK,oCAEd,KACS,6CACK,oCAEd,KACS,kCACK,oCAEd,KACS,qCACK,oCAEd,KACS,kCACK,oCAEd,KACS,oDACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,yCACK,oCAEd,KACS,6CACK,oCAEd,KACS,wCACK,oCAEd,KACS,iDACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,kDACK,oCAEd,KACS,8CACK,oCAEd,KACS,2BACK,oCAEd,KACS,8CACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,+DACK,oCAEd,KACS,2EACK,oCAEd,KACS,wEACK,oCAEd,KACS,6BACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,iCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,uBACK,oCAEd,KACS,gCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,iCACK,oCAEd,KACS,oCACK,oCAEd,KACS,2CACK,oCAEd,KACS,mCACK,oCAEd,KACS,sCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,oCACK,oCAEd,KACS,6CACK,oCAEd,KACS,6CACK,oCAEd,KACS,6BACK,oCAEd,KACS,iCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,gCACK,oCAEd,KACS,wCACK,oCAEd,KACS,oCACK,oCAEd,KACS,mCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,8CACK,oCAEd,KACS,yCACK,oCAEd,KACS,0CACK,oCAEd,KACS,wCACK,oCAEd,KACS,wCACK,oCAEd,KACS,+CACK,oCAEd,KACS,sCACK,oCAEd,KACS,gCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,gCACK,oCAEd,KACS,yBACK,oCAEd,KACS,+BACK,oCAEd,KACS,kCACK,oCAEd,KACS,uCACK,oCAEd,KACS,wCACK,oCAEd,KACS,uCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,qCACK,oCAEd,KACS,2CACK,oCAEd,KACS,qCACK,oCAEd,KACS,oCACK,qCAEb,6BAC8B,CAAC"} \ No newline at end of file
+{"version":3,"file":"service-worker.js","sources":["../../../../../../private/var/folders/cv/_wml09cx4cd5ryt_r7z2tjjm0000gn/T/ff6a7cb543c17b45ecb8c47b223c3b03/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/usr/local/lib/node_modules/workbox-cli/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"js/app.min.js\",\n \"revision\": \"00c4b466892ccdb5d716c4dbd02348fb\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"adae2bddf90d292f9e6297db50f39dd3\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"c170a229d8726934c0d6b04c2214a36c\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"2a45abd06dfe78e69135e9f87f9b78d3\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"9d98c920695f6c3395da4b68f723e60a\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"6d4fee0a8111a8faf43063d25ceea2dc\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"a02a5d8342a82adf17798f4eae85befc\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"e8152cda9233d3a3af017422993abfce\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"87d5d01385c5d0f0c4c4f5d0f3532826\"\n },\n {\n \"url\": \"js/croppie/croppie.min.css\",\n \"revision\": \"fc297c9002c79c15a132f13ee3ec427e\"\n },\n {\n \"url\": \"js/dropbox/Dropbox-sdk.min.js\",\n \"revision\": \"4b9842892aa37b156db0a8364b7a83b0\"\n },\n {\n \"url\": \"js/onedrive/OneDrive.js\",\n \"revision\": \"505e8280346666f7ee801bc59521fa67\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"b1a2e1b1a68bd1d096b0df37be0ee66a\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"a2b0e7267a08a838f3cc404eba831ec0\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"2ce6e99d95113e9ca6b24343cea202e0\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"ba7ece2dfb2833b72f97280d7092f25e\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"f7a38ee065b927f3e9568213709e5b84\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"375a89b2a867264a395f384d00eeba13\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"197ed5837ed27992688fc424699a9a78\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"4e0775a6c156a803e777870623ac7c3e\"\n },\n {\n \"url\": \"plugins/connectJira.js\",\n \"revision\": \"4cefa13414e0d406550f3c073923080c\"\n },\n {\n \"url\": \"plugins/cConf-comments.js\",\n \"revision\": \"c787357209cff2986dcca567b599e2ef\"\n },\n {\n \"url\": \"plugins/cConf-1-4-8.js\",\n \"revision\": \"ec6e55011746305549024292f46270bd\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"74878fb4834967aa4a68647cab7888c1\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"3d8c436c566db645fb1e6e6ba9f69bbc\"\n },\n {\n \"url\": \"connect/gdrive_common/gac.js\",\n \"revision\": \"38f1df3ecc4d78290493f47e62202138\"\n },\n {\n \"url\": \"connect/onedrive_common/ac.js\",\n \"revision\": \"293aa21acaf0a3349686f420b2be874a\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"4a60c6c805cab7bc782f1e52f7818d9f\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"c861a0b3beb7a99be4eaceb970e088b5\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"c7b38b3af4eb7a58ab6dc4791216530e\"\n },\n {\n \"url\": \"connect/confluence/macroEditor-1-4-8.html\",\n \"revision\": \"8cd74a2fb60bf2e3e86026d66107cf11\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"ea920e51a37c0b54d7187e0ee2791b5d\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"538252ed4fed6d5e9f4e53b35954c116\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"e273a48b8e81faac4530bf1a68d75aa0\"\n },\n {\n \"url\": \"math/MathJax.js\",\n \"revision\": \"b2c103388b71bb3d11cbf9aa45fe9b68\"\n },\n {\n \"url\": \"math/config/TeX-MML-AM_SVG-full.js\",\n \"revision\": \"d5cb8ac04050983170ae4af145bc66ff\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/fontdata.js\",\n \"revision\": \"495e5a410955d1b6178870e605890ede\"\n },\n {\n \"url\": \"math/jax/element/mml/optable/BasicLatin.js\",\n \"revision\": \"cac9b2e71382e62270baa55fab07cc13\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js\",\n \"revision\": \"e3e5e4d5924beed29f0844550b5c8f46\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js\",\n \"revision\": \"0767cbad7275b53da128e7e5e1109f7c\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js\",\n \"revision\": \"346302a5c5ee00e01c302148c56dbfe3\"\n },\n {\n \"url\": \"resources/dia.txt\",\n \"revision\": \"b27e8770b0fc71f51c97a80bed58ec4e\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"ff59ef2ea422e962065b978f74f1989e\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"b53a2876e65d205d42c0217216db0a0b\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"5ae6ea7a2b816b32ded88cb15651dbfc\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"f8775fef4398d0863d1c95b92f778f14\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"1a5bbe8e6e02b215c7457d9735ada682\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"d8ac61cb5b3e5d47f9ce8160c8b2f057\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"aeaa9d93c19d60a9ab385a21d57f025c\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"5e0221a99a3fdf557b5ccf72965d99b2\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"d3ad299dc8cfbd2a34479edfafce74ad\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"80761a88228f85296bfc029bf5340718\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"4544b6600298fe72d2d516fd135c54fa\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"863e0e73d4cdf95093461ef0157e13e5\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"3a47c1b462102c60e47e0f7d6e07d379\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"92c451283a83cae2d83460b1b0aaf1c4\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"c56a53dac116441fac2a6e6a110b4fcf\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"fcc968a8202ebe596bb4efa31d5c55b7\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"0c98b10b2ce7660502fab8f8a09216c0\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"550ba55018af500d82b2ade74f49d6a6\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"d9dedee9a17ce0e98cac6a641dbd1b17\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"6d6d7e768e1d255dcb9f9abf87676787\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"404b9e323e5bbbecb63ea4a58385431a\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"8c4436fda7e9278685d9d5d6e0942ae9\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"38cf52a7e23c4e8796d0cbb7ea217f7e\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"e17887d5e7057c80ec1da14fe7749c52\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"32c8349f2744c3b6023fd17742eb1c2c\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"57eba100f012d139d00543c31060cf04\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"cbb7bea7bd120272c6dfe0d6f0ca85f4\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"ca9045d8ab0d3c8448228187c8ba77cd\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"ea4948e5456ac276658b0071172dee82\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"05955be58d94abc2707dea99394a60db\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"47aa1bcdd23457cd5f3026db7a357fc9\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"5735f8afcd3fb73882147629d044e368\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"8e891bbae07ac6fbe9038e8d19fb66fd\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"ea1992800627d8e54c54d54d1078cd50\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"b27e8770b0fc71f51c97a80bed58ec4e\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"a158a142f848a44f4b9a86b2c71de770\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"a73fe6de8d13ff09b57022c6152de435\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"a731cde706b7b10c2bb9b8b804ecf99e\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"6d5aef2fa11b45c7e089a78d8f8077d9\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"e39267e6c115d3dfff18734d9512396a\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"e2485ba528fffc006ddc16a2bdbba588\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"4e4dff4df4bb635eab4648a31718bb71\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"b27e8770b0fc71f51c97a80bed58ec4e\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"aa39fa602751e960c408b51bc4d1e9a3\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"a1e9ea18592a3520a564da53754435f1\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"ee7f392d230f3acf9ee64e59912d2240\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"d1af4adc3abc689e2b2877348fe3a80e\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"ee11057cc33d2db3915810afa98e4fb8\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"64633496007987935476811363899867\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"b67de98cc3819f31d6aedc4a8e332d3f\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"bf3564b735dddb73bafa110e1ba4f364\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"e66e3a8530b0bda46ff6de26598a637b\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"1ea94afcd9c9383c784ceae2896c8af4\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"2ea8a953b560713a201dff1d8d3917dd\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"7a19eef01a4ee231cc05d3b3833bba4f\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"f63faca2218966f9c6f7d2c52a3872c5\"\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"fab2d88b37c72d83607527573de45281\"\n },\n {\n \"url\": \"images/manifest.json\",\n \"revision\": \"c6236bde53ed79aaaec60a1aca8ee2ef\"\n },\n {\n \"url\": \"images/logo.png\",\n \"revision\": \"89630b64b911ebe0daa3dfe442087cfa\"\n },\n {\n \"url\": \"images/drawlogo.svg\",\n \"revision\": \"4bf4d14ebcf072d8bd4c5a1c89e88fc6\"\n },\n {\n \"url\": \"images/drawlogo48.png\",\n \"revision\": \"8b13428373aca67b895364d025f42417\"\n },\n {\n \"url\": \"images/drawlogo-gray.svg\",\n \"revision\": \"0aabacbc0873816e1e09e4736ae44c7d\"\n },\n {\n \"url\": \"images/drawlogo-text-bottom.svg\",\n \"revision\": \"f6c438823ab31f290940bd4feb8dd9c2\"\n },\n {\n \"url\": \"images/default-user.jpg\",\n \"revision\": \"2c399696a87c8921f12d2f9e1990cc6e\"\n },\n {\n \"url\": \"images/logo-flat-small.png\",\n \"revision\": \"4b178e59ff499d6dd1894fc498b59877\"\n },\n {\n \"url\": \"images/apple-touch-icon.png\",\n \"revision\": \"73da7989a23ce9a4be565ec65658a239\"\n },\n {\n \"url\": \"images/favicon-16x16.png\",\n \"revision\": \"1a79d5461a5d2bf21f6652e0ac20d6e5\"\n },\n {\n \"url\": \"images/favicon-32x32.png\",\n \"revision\": \"e3b92da2febe70bad5372f6f3474b034\"\n },\n {\n \"url\": \"images/android-chrome-196x196.png\",\n \"revision\": \"f8c045b2d7b1c719fda64edab04c415c\"\n },\n {\n \"url\": \"images/android-chrome-512x512.png\",\n \"revision\": \"959b5fac2453963ff6d60fb85e4b73fd\"\n },\n {\n \"url\": \"images/delete.png\",\n \"revision\": \"5f2350f2fd20f1a229637aed32ed8f29\"\n },\n {\n \"url\": \"images/droptarget.png\",\n \"revision\": \"bbf7f563fb6784de1ce96f329519b043\"\n },\n {\n \"url\": \"images/help.png\",\n \"revision\": \"9266c6c3915bd33c243d80037d37bf61\"\n },\n {\n \"url\": \"images/download.png\",\n \"revision\": \"35418dd7bd48d87502c71b578cc6c37f\"\n },\n {\n \"url\": \"images/logo-flat.png\",\n \"revision\": \"038070ab43aee6e54a791211859fc67b\"\n },\n {\n \"url\": \"images/google-drive-logo.svg\",\n \"revision\": \"5d9f2f5bbc7dcc252730a0072bb23059\"\n },\n {\n \"url\": \"images/onedrive-logo.svg\",\n \"revision\": \"3645b344ec0634c1290dd58d7dc87b97\"\n },\n {\n \"url\": \"images/dropbox-logo.svg\",\n \"revision\": \"e6be408c77cf9c82d41ac64fa854280a\"\n },\n {\n \"url\": \"images/github-logo.svg\",\n \"revision\": \"a1a999b69a275eac0cb918360ac05ae1\"\n },\n {\n \"url\": \"images/gitlab-logo.svg\",\n \"revision\": \"0faea8c818899e58533e153c44b10517\"\n },\n {\n \"url\": \"images/trello-logo.svg\",\n \"revision\": \"006fd0d7d70d7e95dc691674cb12e044\"\n },\n {\n \"url\": \"images/osa_drive-harddisk.png\",\n \"revision\": \"b954e1ae772087c5b4c6ae797e1f9649\"\n },\n {\n \"url\": \"images/osa_database.png\",\n \"revision\": \"c350d9d9b95f37b6cfe798b40ede5fb0\"\n },\n {\n \"url\": \"images/google-drive-logo-white.svg\",\n \"revision\": \"f329d8b1be7778515a85b93fc35d9f26\"\n },\n {\n \"url\": \"images/dropbox-logo-white.svg\",\n \"revision\": \"4ea8299ac3bc31a16f199ee3aec223bf\"\n },\n {\n \"url\": \"images/onedrive-logo-white.svg\",\n \"revision\": \"b3602fa0fc947009cff3f33a581cff4d\"\n },\n {\n \"url\": \"images/github-logo-white.svg\",\n \"revision\": \"537b1127b3ca0f95b45782d1304fb77a\"\n },\n {\n \"url\": \"images/gitlab-logo-white.svg\",\n \"revision\": \"5fede9ac2f394c716b8c23e3fddc3910\"\n },\n {\n \"url\": \"images/trello-logo-white-orange.svg\",\n \"revision\": \"e2a0a52ba3766682f138138d10a75eb5\"\n },\n {\n \"url\": \"images/logo-confluence.png\",\n \"revision\": \"ed1e55d44ae5eba8f999aba2c93e8331\"\n },\n {\n \"url\": \"images/logo-jira.png\",\n \"revision\": \"f8d460555a0d1f87cfd901e940666629\"\n },\n {\n \"url\": \"images/clear.gif\",\n \"revision\": \"db13c778e4382e0b55258d0f811d5d70\"\n },\n {\n \"url\": \"images/spin.gif\",\n \"revision\": \"487cbb40b9ced439aa1ad914e816d773\"\n },\n {\n \"url\": \"images/checkmark.gif\",\n \"revision\": \"ba764ce62f2bf952df5bbc2bb4d381c5\"\n },\n {\n \"url\": \"images/hs.png\",\n \"revision\": \"fefa1a03d92ebad25c88dca94a0b63db\"\n },\n {\n \"url\": \"images/aui-wait.gif\",\n \"revision\": \"5a474bcbd8d2f2826f03d10ea44bf60e\"\n },\n {\n \"url\": \"mxgraph/css/common.css\",\n \"revision\": \"b5b7280ec98671bb6c3847a36bc7ea12\"\n },\n {\n \"url\": \"mxgraph/images/expanded.gif\",\n \"revision\": \"2b67c2c035af1e9a5cc814f0d22074cf\"\n },\n {\n \"url\": \"mxgraph/images/collapsed.gif\",\n \"revision\": \"73cc826da002a3d740ca4ce6ec5c1f4a\"\n },\n {\n \"url\": \"mxgraph/images/maximize.gif\",\n \"revision\": \"5cd13d6925493ab51e876694cc1c2ec2\"\n },\n {\n \"url\": \"mxgraph/images/minimize.gif\",\n \"revision\": \"8957741b9b0f86af9438775f2aadbb54\"\n },\n {\n \"url\": \"mxgraph/images/close.gif\",\n \"revision\": \"8b84669812ac7382984fca35de8da48b\"\n },\n {\n \"url\": \"mxgraph/images/resize.gif\",\n \"revision\": \"a6477612b3567a34033f9cac6184eed3\"\n },\n {\n \"url\": \"mxgraph/images/separator.gif\",\n \"revision\": \"7819742ff106c97da7a801c2372bbbe5\"\n },\n {\n \"url\": \"mxgraph/images/window.gif\",\n \"revision\": \"fd9a21dd4181f98052a202a0a01f18ab\"\n },\n {\n \"url\": \"mxgraph/images/window-title.gif\",\n \"revision\": \"3fb1d6c43246cdf991a11dfe826dfe99\"\n },\n {\n \"url\": \"mxgraph/images/button.gif\",\n \"revision\": \"00759bdc3ad218fa739f584369541809\"\n },\n {\n \"url\": \"mxgraph/images/point.gif\",\n \"revision\": \"83a43717b284902442620f61bc4e9fa6\"\n }\n], {\n \"ignoreURLParametersMatching\": [/.*/]\n});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting"],"mappings":"szBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,oCAY2B,CAClC,KACS,yBACK,oCAEd,KACS,gCACK,oCAEd,KACS,8BACK,oCAEd,KACS,mCACK,oCAEd,KACS,4BACK,oCAEd,KACS,sBACK,oCAEd,KACS,qBACK,oCAEd,KACS,kCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,sCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,mCACK,oCAEd,KACS,0CACK,oCAEd,KACS,gDACK,oCAEd,KACS,oDACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kDACK,oCAEd,KACS,6CACK,oCAEd,KACS,kCACK,oCAEd,KACS,qCACK,oCAEd,KACS,kCACK,oCAEd,KACS,oDACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,yCACK,oCAEd,KACS,6CACK,oCAEd,KACS,wCACK,oCAEd,KACS,iDACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,kDACK,oCAEd,KACS,8CACK,oCAEd,KACS,2BACK,oCAEd,KACS,8CACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,+DACK,oCAEd,KACS,2EACK,oCAEd,KACS,wEACK,oCAEd,KACS,6BACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,iCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,uBACK,oCAEd,KACS,gCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,iCACK,oCAEd,KACS,oCACK,oCAEd,KACS,2CACK,oCAEd,KACS,mCACK,oCAEd,KACS,sCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,oCACK,oCAEd,KACS,6CACK,oCAEd,KACS,6CACK,oCAEd,KACS,6BACK,oCAEd,KACS,iCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,gCACK,oCAEd,KACS,wCACK,oCAEd,KACS,oCACK,oCAEd,KACS,mCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,8CACK,oCAEd,KACS,yCACK,oCAEd,KACS,0CACK,oCAEd,KACS,wCACK,oCAEd,KACS,wCACK,oCAEd,KACS,+CACK,oCAEd,KACS,sCACK,oCAEd,KACS,gCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,gCACK,oCAEd,KACS,yBACK,oCAEd,KACS,+BACK,oCAEd,KACS,kCACK,oCAEd,KACS,uCACK,oCAEd,KACS,wCACK,oCAEd,KACS,uCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,qCACK,oCAEd,KACS,2CACK,oCAEd,KACS,qCACK,oCAEd,KACS,oCACK,qCAEb,6BAC8B,CAAC"} \ No newline at end of file