diff --git a/ChangeLog b/ChangeLog
index 34e9e1f34d2eaacf5368b4924821fc80365a254f..cb9ed7aa629b1a314b229582f88828a0fc1f783b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+27-MAR-2019: 10.5.9
+
+- Change to connection points and arrows trigger autosave
+- Adds style options for edge labels in Arrange panel
+- Fixes scroll during Alt+mouse wheel in Chrome
+- Uses mxGraph 4.0.1 beta 5
+
 26-MAR-2019: 10.5.8
 
 - Hides icon in Confluence cloud for resolved comments
diff --git a/VERSION b/VERSION
index 3393cbc1e766450ec614a2b8402e78a434e82edd..d05f59b3ddab7b622e7ad905cd1ff0097b4b74fa 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-10.5.8
\ No newline at end of file
+10.5.9
\ No newline at end of file
diff --git a/etc/mxgraph/mxClient.js b/etc/mxgraph/mxClient.js
index 1b7a29649ebe9f32c01966ae65f8d8145327fb3c..620441c9fdd2823f909701d725afa667914586ee 100644
--- a/etc/mxgraph/mxClient.js
+++ b/etc/mxgraph/mxClient.js
@@ -116,17 +116,17 @@ var mxEvent={addListener:function(){return window.addEventListener?function(a,b,
 a.mxListenerList.length&&(a.mxListenerList=null)}};return window.removeEventListener?function(b,c,d){b.removeEventListener(c,d,!1);a(b,c,d)}:function(b,c,d){b.detachEvent("on"+c,d);a(b,c,d)}}(),removeAllListeners:function(a){var b=a.mxListenerList;if(null!=b)for(;0<b.length;){var c=b[0];mxEvent.removeListener(a,c.name,c.f)}},addGestureListeners:function(a,b,c,d){null!=b&&mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",b);null!=c&&mxEvent.addListener(a,mxClient.IS_POINTER?"pointermove":
 "mousemove",c);null!=d&&mxEvent.addListener(a,mxClient.IS_POINTER?"pointerup":"mouseup",d);!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&(null!=b&&mxEvent.addListener(a,"touchstart",b),null!=c&&mxEvent.addListener(a,"touchmove",c),null!=d&&mxEvent.addListener(a,"touchend",d))},removeGestureListeners:function(a,b,c,d){null!=b&&mxEvent.removeListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",b);null!=c&&mxEvent.removeListener(a,mxClient.IS_POINTER?"pointermove":"mousemove",c);null!=d&&mxEvent.removeListener(a,
 mxClient.IS_POINTER?"pointerup":"mouseup",d);!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&(null!=b&&mxEvent.removeListener(a,"touchstart",b),null!=c&&mxEvent.removeListener(a,"touchmove",c),null!=d&&mxEvent.removeListener(a,"touchend",d))},redirectMouseEvents:function(a,b,c,d,e,f,g){var k=function(a){return"function"==typeof c?c(a):c};mxEvent.addGestureListeners(a,function(a){null!=d?d(a):mxEvent.isConsumed(a)||b.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(a,k(a)))},function(a){null!=e?e(a):mxEvent.isConsumed(a)||
-b.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a,k(a)))},function(a){null!=f?f(a):mxEvent.isConsumed(a)||b.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(a,k(a)))});mxEvent.addListener(a,"dblclick",function(a){if(null!=g)g(a);else if(!mxEvent.isConsumed(a)){var c=k(a);b.dblClick(a,null!=c?c.cell:null)}})},release:function(a){try{if(null!=a){mxEvent.removeAllListeners(a);var b=a.childNodes;if(null!=b){var c=b.length;for(a=0;a<c;a+=1)mxEvent.release(b[a])}}}catch(d){}},addMouseWheelListener:function(a){if(null!=
-a){var b=function(b){null==b&&(b=window.event);var c;c=mxClient.IS_FF?-b.detail/2:b.wheelDelta/120;0!=c&&a(b,0<c)};mxClient.IS_NS&&null==document.documentMode?mxEvent.addListener(window,mxClient.IS_SF||mxClient.IS_GC?"mousewheel":"DOMMouseScroll",b):mxEvent.addListener(document,"mousewheel",b)}},disableContextMenu:function(a){mxEvent.addListener(a,"contextmenu",function(a){a.preventDefault&&a.preventDefault();return!1})},getSource:function(a){return null!=a.srcElement?a.srcElement:a.target},isConsumed:function(a){return null!=
-a.isConsumed&&a.isConsumed},isTouchEvent:function(a){return null!=a.pointerType?"touch"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_TOUCH:null!=a.mozInputSource?5==a.mozInputSource:0==a.type.indexOf("touch")},isPenEvent:function(a){return null!=a.pointerType?"pen"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_PEN:null!=a.mozInputSource?2==a.mozInputSource:0==a.type.indexOf("pen")},isMultiTouchEvent:function(a){return null!=a.type&&0==a.type.indexOf("touch")&&null!=a.touches&&1<a.touches.length},
-isMouseEvent:function(a){return null!=a.pointerType?"mouse"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_MOUSE:null!=a.mozInputSource?1==a.mozInputSource:0==a.type.indexOf("mouse")},isLeftMouseButton:function(a){return"buttons"in a&&("mousedown"==a.type||"mousemove"==a.type)?1==a.buttons:"which"in a?1===a.which:1===a.button},isMiddleMouseButton:function(a){return"which"in a?2===a.which:4===a.button},isRightMouseButton:function(a){return"which"in a?3===a.which:2===a.button},isPopupTrigger:function(a){return mxEvent.isRightMouseButton(a)||
-mxClient.IS_MAC&&mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)&&!mxEvent.isMetaDown(a)&&!mxEvent.isAltDown(a)},isShiftDown:function(a){return null!=a?a.shiftKey:!1},isAltDown:function(a){return null!=a?a.altKey:!1},isControlDown:function(a){return null!=a?a.ctrlKey:!1},isMetaDown:function(a){return null!=a?a.metaKey:!1},getMainEvent:function(a){"touchstart"!=a.type&&"touchmove"!=a.type||null==a.touches||null==a.touches[0]?"touchend"==a.type&&null!=a.changedTouches&&null!=a.changedTouches[0]&&
-(a=a.changedTouches[0]):a=a.touches[0];return a},getClientX:function(a){return mxEvent.getMainEvent(a).clientX},getClientY:function(a){return mxEvent.getMainEvent(a).clientY},consume:function(a,b,c){c=null!=c?c:!0;if(null!=b?b:1)a.preventDefault?(c&&a.stopPropagation(),a.preventDefault()):c&&(a.cancelBubble=!0);a.isConsumed=!0;a.preventDefault||(a.returnValue=!1)},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,CUSTOM_HANDLE:-100,VIRTUAL_HANDLE:-1E5,MOUSE_DOWN:"mouseDown",MOUSE_MOVE:"mouseMove",MOUSE_UP:"mouseUp",
-ACTIVATE:"activate",RESIZE_START:"resizeStart",RESIZE:"resize",RESIZE_END:"resizeEnd",MOVE_START:"moveStart",MOVE:"move",MOVE_END:"moveEnd",PAN_START:"panStart",PAN:"pan",PAN_END:"panEnd",MINIMIZE:"minimize",NORMALIZE:"normalize",MAXIMIZE:"maximize",HIDE:"hide",SHOW:"show",CLOSE:"close",DESTROY:"destroy",REFRESH:"refresh",SIZE:"size",SELECT:"select",FIRED:"fired",FIRE_MOUSE_EVENT:"fireMouseEvent",GESTURE:"gesture",TAP_AND_HOLD:"tapAndHold",GET:"get",RECEIVE:"receive",CONNECT:"connect",DISCONNECT:"disconnect",
-SUSPEND:"suspend",RESUME:"resume",MARK:"mark",ROOT:"root",POST:"post",OPEN:"open",SAVE:"save",BEFORE_ADD_VERTEX:"beforeAddVertex",ADD_VERTEX:"addVertex",AFTER_ADD_VERTEX:"afterAddVertex",DONE:"done",EXECUTE:"execute",EXECUTED:"executed",BEGIN_UPDATE:"beginUpdate",START_EDIT:"startEdit",END_UPDATE:"endUpdate",END_EDIT:"endEdit",BEFORE_UNDO:"beforeUndo",UNDO:"undo",REDO:"redo",CHANGE:"change",NOTIFY:"notify",LAYOUT_CELLS:"layoutCells",CLICK:"click",SCALE:"scale",TRANSLATE:"translate",SCALE_AND_TRANSLATE:"scaleAndTranslate",
-UP:"up",DOWN:"down",ADD:"add",REMOVE:"remove",CLEAR:"clear",ADD_CELLS:"addCells",CELLS_ADDED:"cellsAdded",MOVE_CELLS:"moveCells",CELLS_MOVED:"cellsMoved",RESIZE_CELLS:"resizeCells",CELLS_RESIZED:"cellsResized",TOGGLE_CELLS:"toggleCells",CELLS_TOGGLED:"cellsToggled",ORDER_CELLS:"orderCells",CELLS_ORDERED:"cellsOrdered",REMOVE_CELLS:"removeCells",CELLS_REMOVED:"cellsRemoved",GROUP_CELLS:"groupCells",UNGROUP_CELLS:"ungroupCells",REMOVE_CELLS_FROM_PARENT:"removeCellsFromParent",FOLD_CELLS:"foldCells",
-CELLS_FOLDED:"cellsFolded",ALIGN_CELLS:"alignCells",LABEL_CHANGED:"labelChanged",CONNECT_CELL:"connectCell",CELL_CONNECTED:"cellConnected",SPLIT_EDGE:"splitEdge",FLIP_EDGE:"flipEdge",START_EDITING:"startEditing",EDITING_STARTED:"editingStarted",EDITING_STOPPED:"editingStopped",ADD_OVERLAY:"addOverlay",REMOVE_OVERLAY:"removeOverlay",UPDATE_CELL_SIZE:"updateCellSize",ESCAPE:"escape",DOUBLE_CLICK:"doubleClick",START:"start",RESET:"reset"};
-function mxXmlRequest(a,b,c,d,e,f){this.url=a;this.params=b;this.method=c||"POST";this.async=null!=d?d:!0;this.username=e;this.password=f}mxXmlRequest.prototype.url=null;mxXmlRequest.prototype.params=null;mxXmlRequest.prototype.method=null;mxXmlRequest.prototype.async=null;mxXmlRequest.prototype.binary=!1;mxXmlRequest.prototype.withCredentials=!1;mxXmlRequest.prototype.username=null;mxXmlRequest.prototype.password=null;mxXmlRequest.prototype.request=null;
+b.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a,k(a)))},function(a){null!=f?f(a):mxEvent.isConsumed(a)||b.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(a,k(a)))});mxEvent.addListener(a,"dblclick",function(a){if(null!=g)g(a);else if(!mxEvent.isConsumed(a)){var c=k(a);b.dblClick(a,null!=c?c.cell:null)}})},release:function(a){try{if(null!=a){mxEvent.removeAllListeners(a);var b=a.childNodes;if(null!=b){var c=b.length;for(a=0;a<c;a+=1)mxEvent.release(b[a])}}}catch(d){}},addMouseWheelListener:function(a,
+b){if(null!=a){var c=function(b){null==b&&(b=window.event);var c;c=mxClient.IS_FF?-b.detail/2:b.wheelDelta/120;0!=c&&a(b,0<c)};mxClient.IS_NS&&null==document.documentMode?mxEvent.addListener(mxClient.IS_GC&&null!=b?b:window,mxClient.IS_SF||mxClient.IS_GC?"mousewheel":"DOMMouseScroll",c):mxEvent.addListener(document,"mousewheel",c)}},disableContextMenu:function(a){mxEvent.addListener(a,"contextmenu",function(a){a.preventDefault&&a.preventDefault();return!1})},getSource:function(a){return null!=a.srcElement?
+a.srcElement:a.target},isConsumed:function(a){return null!=a.isConsumed&&a.isConsumed},isTouchEvent:function(a){return null!=a.pointerType?"touch"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_TOUCH:null!=a.mozInputSource?5==a.mozInputSource:0==a.type.indexOf("touch")},isPenEvent:function(a){return null!=a.pointerType?"pen"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_PEN:null!=a.mozInputSource?2==a.mozInputSource:0==a.type.indexOf("pen")},isMultiTouchEvent:function(a){return null!=a.type&&
+0==a.type.indexOf("touch")&&null!=a.touches&&1<a.touches.length},isMouseEvent:function(a){return null!=a.pointerType?"mouse"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_MOUSE:null!=a.mozInputSource?1==a.mozInputSource:0==a.type.indexOf("mouse")},isLeftMouseButton:function(a){return"buttons"in a&&("mousedown"==a.type||"mousemove"==a.type)?1==a.buttons:"which"in a?1===a.which:1===a.button},isMiddleMouseButton:function(a){return"which"in a?2===a.which:4===a.button},isRightMouseButton:function(a){return"which"in
+a?3===a.which:2===a.button},isPopupTrigger:function(a){return mxEvent.isRightMouseButton(a)||mxClient.IS_MAC&&mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)&&!mxEvent.isMetaDown(a)&&!mxEvent.isAltDown(a)},isShiftDown:function(a){return null!=a?a.shiftKey:!1},isAltDown:function(a){return null!=a?a.altKey:!1},isControlDown:function(a){return null!=a?a.ctrlKey:!1},isMetaDown:function(a){return null!=a?a.metaKey:!1},getMainEvent:function(a){"touchstart"!=a.type&&"touchmove"!=a.type||null==a.touches||
+null==a.touches[0]?"touchend"==a.type&&null!=a.changedTouches&&null!=a.changedTouches[0]&&(a=a.changedTouches[0]):a=a.touches[0];return a},getClientX:function(a){return mxEvent.getMainEvent(a).clientX},getClientY:function(a){return mxEvent.getMainEvent(a).clientY},consume:function(a,b,c){c=null!=c?c:!0;if(null!=b?b:1)a.preventDefault?(c&&a.stopPropagation(),a.preventDefault()):c&&(a.cancelBubble=!0);a.isConsumed=!0;a.preventDefault||(a.returnValue=!1)},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,CUSTOM_HANDLE:-100,
+VIRTUAL_HANDLE:-1E5,MOUSE_DOWN:"mouseDown",MOUSE_MOVE:"mouseMove",MOUSE_UP:"mouseUp",ACTIVATE:"activate",RESIZE_START:"resizeStart",RESIZE:"resize",RESIZE_END:"resizeEnd",MOVE_START:"moveStart",MOVE:"move",MOVE_END:"moveEnd",PAN_START:"panStart",PAN:"pan",PAN_END:"panEnd",MINIMIZE:"minimize",NORMALIZE:"normalize",MAXIMIZE:"maximize",HIDE:"hide",SHOW:"show",CLOSE:"close",DESTROY:"destroy",REFRESH:"refresh",SIZE:"size",SELECT:"select",FIRED:"fired",FIRE_MOUSE_EVENT:"fireMouseEvent",GESTURE:"gesture",
+TAP_AND_HOLD:"tapAndHold",GET:"get",RECEIVE:"receive",CONNECT:"connect",DISCONNECT:"disconnect",SUSPEND:"suspend",RESUME:"resume",MARK:"mark",ROOT:"root",POST:"post",OPEN:"open",SAVE:"save",BEFORE_ADD_VERTEX:"beforeAddVertex",ADD_VERTEX:"addVertex",AFTER_ADD_VERTEX:"afterAddVertex",DONE:"done",EXECUTE:"execute",EXECUTED:"executed",BEGIN_UPDATE:"beginUpdate",START_EDIT:"startEdit",END_UPDATE:"endUpdate",END_EDIT:"endEdit",BEFORE_UNDO:"beforeUndo",UNDO:"undo",REDO:"redo",CHANGE:"change",NOTIFY:"notify",
+LAYOUT_CELLS:"layoutCells",CLICK:"click",SCALE:"scale",TRANSLATE:"translate",SCALE_AND_TRANSLATE:"scaleAndTranslate",UP:"up",DOWN:"down",ADD:"add",REMOVE:"remove",CLEAR:"clear",ADD_CELLS:"addCells",CELLS_ADDED:"cellsAdded",MOVE_CELLS:"moveCells",CELLS_MOVED:"cellsMoved",RESIZE_CELLS:"resizeCells",CELLS_RESIZED:"cellsResized",TOGGLE_CELLS:"toggleCells",CELLS_TOGGLED:"cellsToggled",ORDER_CELLS:"orderCells",CELLS_ORDERED:"cellsOrdered",REMOVE_CELLS:"removeCells",CELLS_REMOVED:"cellsRemoved",GROUP_CELLS:"groupCells",
+UNGROUP_CELLS:"ungroupCells",REMOVE_CELLS_FROM_PARENT:"removeCellsFromParent",FOLD_CELLS:"foldCells",CELLS_FOLDED:"cellsFolded",ALIGN_CELLS:"alignCells",LABEL_CHANGED:"labelChanged",CONNECT_CELL:"connectCell",CELL_CONNECTED:"cellConnected",SPLIT_EDGE:"splitEdge",FLIP_EDGE:"flipEdge",START_EDITING:"startEditing",EDITING_STARTED:"editingStarted",EDITING_STOPPED:"editingStopped",ADD_OVERLAY:"addOverlay",REMOVE_OVERLAY:"removeOverlay",UPDATE_CELL_SIZE:"updateCellSize",ESCAPE:"escape",DOUBLE_CLICK:"doubleClick",
+START:"start",RESET:"reset"};function mxXmlRequest(a,b,c,d,e,f){this.url=a;this.params=b;this.method=c||"POST";this.async=null!=d?d:!0;this.username=e;this.password=f}mxXmlRequest.prototype.url=null;mxXmlRequest.prototype.params=null;mxXmlRequest.prototype.method=null;mxXmlRequest.prototype.async=null;mxXmlRequest.prototype.binary=!1;mxXmlRequest.prototype.withCredentials=!1;mxXmlRequest.prototype.username=null;mxXmlRequest.prototype.password=null;mxXmlRequest.prototype.request=null;
 mxXmlRequest.prototype.decodeSimulateValues=!1;mxXmlRequest.prototype.isBinary=function(){return this.binary};mxXmlRequest.prototype.setBinary=function(a){this.binary=a};mxXmlRequest.prototype.getText=function(){return this.request.responseText};mxXmlRequest.prototype.isReady=function(){return 4==this.request.readyState};mxXmlRequest.prototype.getDocumentElement=function(){var a=this.getXml();return null!=a?a.documentElement:null};
 mxXmlRequest.prototype.getXml=function(){var a=this.request.responseXML;if(9<=document.documentMode||null==a||null==a.documentElement)a=mxUtils.parseXml(this.request.responseText);return a};mxXmlRequest.prototype.getText=function(){return this.request.responseText};mxXmlRequest.prototype.getStatus=function(){return this.request.status};
 mxXmlRequest.prototype.create=function(){if(window.XMLHttpRequest)return function(){var a=new XMLHttpRequest;this.isBinary()&&a.overrideMimeType&&a.overrideMimeType("text/plain; charset=x-user-defined");return a};if("undefined"!=typeof ActiveXObject)return function(){return new ActiveXObject("Microsoft.XMLHTTP")}}();
diff --git a/src/main/webapp/cache.manifest b/src/main/webapp/cache.manifest
index 4642b2d176d95eb294c98a9c800f5ff3e4eb6928..26a197171f35bc0eff53cab8c0cf36b456f97305 100644
--- a/src/main/webapp/cache.manifest
+++ b/src/main/webapp/cache.manifest
@@ -1,7 +1,7 @@
 CACHE MANIFEST
 
 # THIS FILE WAS GENERATED. DO NOT MODIFY!
-# 03/26/2019 03:23 PM
+# 03/27/2019 02:45 PM
 
 app.html
 index.html?offline=1
diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js
index 3f41ad0426c44e2fed1433abb6761d39b114324d..2f6ecba687bc4424e250b971d032d26df8de37b2 100644
--- a/src/main/webapp/js/app.min.js
+++ b/src/main/webapp/js/app.min.js
@@ -259,17 +259,17 @@ var mxEvent={addListener:function(){return window.addEventListener?function(a,b,
 a.mxListenerList.length&&(a.mxListenerList=null)}};return window.removeEventListener?function(b,c,d){b.removeEventListener(c,d,!1);a(b,c,d)}:function(b,c,d){b.detachEvent("on"+c,d);a(b,c,d)}}(),removeAllListeners:function(a){var b=a.mxListenerList;if(null!=b)for(;0<b.length;){var c=b[0];mxEvent.removeListener(a,c.name,c.f)}},addGestureListeners:function(a,b,c,d){null!=b&&mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",b);null!=c&&mxEvent.addListener(a,mxClient.IS_POINTER?"pointermove":
 "mousemove",c);null!=d&&mxEvent.addListener(a,mxClient.IS_POINTER?"pointerup":"mouseup",d);!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&(null!=b&&mxEvent.addListener(a,"touchstart",b),null!=c&&mxEvent.addListener(a,"touchmove",c),null!=d&&mxEvent.addListener(a,"touchend",d))},removeGestureListeners:function(a,b,c,d){null!=b&&mxEvent.removeListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",b);null!=c&&mxEvent.removeListener(a,mxClient.IS_POINTER?"pointermove":"mousemove",c);null!=d&&mxEvent.removeListener(a,
 mxClient.IS_POINTER?"pointerup":"mouseup",d);!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&(null!=b&&mxEvent.removeListener(a,"touchstart",b),null!=c&&mxEvent.removeListener(a,"touchmove",c),null!=d&&mxEvent.removeListener(a,"touchend",d))},redirectMouseEvents:function(a,b,c,d,e,f,g){var k=function(a){return"function"==typeof c?c(a):c};mxEvent.addGestureListeners(a,function(a){null!=d?d(a):mxEvent.isConsumed(a)||b.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(a,k(a)))},function(a){null!=e?e(a):mxEvent.isConsumed(a)||
-b.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a,k(a)))},function(a){null!=f?f(a):mxEvent.isConsumed(a)||b.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(a,k(a)))});mxEvent.addListener(a,"dblclick",function(a){if(null!=g)g(a);else if(!mxEvent.isConsumed(a)){var c=k(a);b.dblClick(a,null!=c?c.cell:null)}})},release:function(a){try{if(null!=a){mxEvent.removeAllListeners(a);var b=a.childNodes;if(null!=b){var c=b.length;for(a=0;a<c;a+=1)mxEvent.release(b[a])}}}catch(d){}},addMouseWheelListener:function(a){if(null!=
-a){var b=function(b){null==b&&(b=window.event);var c;c=mxClient.IS_FF?-b.detail/2:b.wheelDelta/120;0!=c&&a(b,0<c)};mxClient.IS_NS&&null==document.documentMode?mxEvent.addListener(window,mxClient.IS_SF||mxClient.IS_GC?"mousewheel":"DOMMouseScroll",b):mxEvent.addListener(document,"mousewheel",b)}},disableContextMenu:function(a){mxEvent.addListener(a,"contextmenu",function(a){a.preventDefault&&a.preventDefault();return!1})},getSource:function(a){return null!=a.srcElement?a.srcElement:a.target},isConsumed:function(a){return null!=
-a.isConsumed&&a.isConsumed},isTouchEvent:function(a){return null!=a.pointerType?"touch"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_TOUCH:null!=a.mozInputSource?5==a.mozInputSource:0==a.type.indexOf("touch")},isPenEvent:function(a){return null!=a.pointerType?"pen"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_PEN:null!=a.mozInputSource?2==a.mozInputSource:0==a.type.indexOf("pen")},isMultiTouchEvent:function(a){return null!=a.type&&0==a.type.indexOf("touch")&&null!=a.touches&&1<a.touches.length},
-isMouseEvent:function(a){return null!=a.pointerType?"mouse"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_MOUSE:null!=a.mozInputSource?1==a.mozInputSource:0==a.type.indexOf("mouse")},isLeftMouseButton:function(a){return"buttons"in a&&("mousedown"==a.type||"mousemove"==a.type)?1==a.buttons:"which"in a?1===a.which:1===a.button},isMiddleMouseButton:function(a){return"which"in a?2===a.which:4===a.button},isRightMouseButton:function(a){return"which"in a?3===a.which:2===a.button},isPopupTrigger:function(a){return mxEvent.isRightMouseButton(a)||
-mxClient.IS_MAC&&mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)&&!mxEvent.isMetaDown(a)&&!mxEvent.isAltDown(a)},isShiftDown:function(a){return null!=a?a.shiftKey:!1},isAltDown:function(a){return null!=a?a.altKey:!1},isControlDown:function(a){return null!=a?a.ctrlKey:!1},isMetaDown:function(a){return null!=a?a.metaKey:!1},getMainEvent:function(a){"touchstart"!=a.type&&"touchmove"!=a.type||null==a.touches||null==a.touches[0]?"touchend"==a.type&&null!=a.changedTouches&&null!=a.changedTouches[0]&&
-(a=a.changedTouches[0]):a=a.touches[0];return a},getClientX:function(a){return mxEvent.getMainEvent(a).clientX},getClientY:function(a){return mxEvent.getMainEvent(a).clientY},consume:function(a,b,c){c=null!=c?c:!0;if(null!=b?b:1)a.preventDefault?(c&&a.stopPropagation(),a.preventDefault()):c&&(a.cancelBubble=!0);a.isConsumed=!0;a.preventDefault||(a.returnValue=!1)},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,CUSTOM_HANDLE:-100,VIRTUAL_HANDLE:-1E5,MOUSE_DOWN:"mouseDown",MOUSE_MOVE:"mouseMove",MOUSE_UP:"mouseUp",
-ACTIVATE:"activate",RESIZE_START:"resizeStart",RESIZE:"resize",RESIZE_END:"resizeEnd",MOVE_START:"moveStart",MOVE:"move",MOVE_END:"moveEnd",PAN_START:"panStart",PAN:"pan",PAN_END:"panEnd",MINIMIZE:"minimize",NORMALIZE:"normalize",MAXIMIZE:"maximize",HIDE:"hide",SHOW:"show",CLOSE:"close",DESTROY:"destroy",REFRESH:"refresh",SIZE:"size",SELECT:"select",FIRED:"fired",FIRE_MOUSE_EVENT:"fireMouseEvent",GESTURE:"gesture",TAP_AND_HOLD:"tapAndHold",GET:"get",RECEIVE:"receive",CONNECT:"connect",DISCONNECT:"disconnect",
-SUSPEND:"suspend",RESUME:"resume",MARK:"mark",ROOT:"root",POST:"post",OPEN:"open",SAVE:"save",BEFORE_ADD_VERTEX:"beforeAddVertex",ADD_VERTEX:"addVertex",AFTER_ADD_VERTEX:"afterAddVertex",DONE:"done",EXECUTE:"execute",EXECUTED:"executed",BEGIN_UPDATE:"beginUpdate",START_EDIT:"startEdit",END_UPDATE:"endUpdate",END_EDIT:"endEdit",BEFORE_UNDO:"beforeUndo",UNDO:"undo",REDO:"redo",CHANGE:"change",NOTIFY:"notify",LAYOUT_CELLS:"layoutCells",CLICK:"click",SCALE:"scale",TRANSLATE:"translate",SCALE_AND_TRANSLATE:"scaleAndTranslate",
-UP:"up",DOWN:"down",ADD:"add",REMOVE:"remove",CLEAR:"clear",ADD_CELLS:"addCells",CELLS_ADDED:"cellsAdded",MOVE_CELLS:"moveCells",CELLS_MOVED:"cellsMoved",RESIZE_CELLS:"resizeCells",CELLS_RESIZED:"cellsResized",TOGGLE_CELLS:"toggleCells",CELLS_TOGGLED:"cellsToggled",ORDER_CELLS:"orderCells",CELLS_ORDERED:"cellsOrdered",REMOVE_CELLS:"removeCells",CELLS_REMOVED:"cellsRemoved",GROUP_CELLS:"groupCells",UNGROUP_CELLS:"ungroupCells",REMOVE_CELLS_FROM_PARENT:"removeCellsFromParent",FOLD_CELLS:"foldCells",
-CELLS_FOLDED:"cellsFolded",ALIGN_CELLS:"alignCells",LABEL_CHANGED:"labelChanged",CONNECT_CELL:"connectCell",CELL_CONNECTED:"cellConnected",SPLIT_EDGE:"splitEdge",FLIP_EDGE:"flipEdge",START_EDITING:"startEditing",EDITING_STARTED:"editingStarted",EDITING_STOPPED:"editingStopped",ADD_OVERLAY:"addOverlay",REMOVE_OVERLAY:"removeOverlay",UPDATE_CELL_SIZE:"updateCellSize",ESCAPE:"escape",DOUBLE_CLICK:"doubleClick",START:"start",RESET:"reset"};
-function mxXmlRequest(a,b,c,d,e,f){this.url=a;this.params=b;this.method=c||"POST";this.async=null!=d?d:!0;this.username=e;this.password=f}mxXmlRequest.prototype.url=null;mxXmlRequest.prototype.params=null;mxXmlRequest.prototype.method=null;mxXmlRequest.prototype.async=null;mxXmlRequest.prototype.binary=!1;mxXmlRequest.prototype.withCredentials=!1;mxXmlRequest.prototype.username=null;mxXmlRequest.prototype.password=null;mxXmlRequest.prototype.request=null;
+b.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a,k(a)))},function(a){null!=f?f(a):mxEvent.isConsumed(a)||b.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(a,k(a)))});mxEvent.addListener(a,"dblclick",function(a){if(null!=g)g(a);else if(!mxEvent.isConsumed(a)){var c=k(a);b.dblClick(a,null!=c?c.cell:null)}})},release:function(a){try{if(null!=a){mxEvent.removeAllListeners(a);var b=a.childNodes;if(null!=b){var c=b.length;for(a=0;a<c;a+=1)mxEvent.release(b[a])}}}catch(d){}},addMouseWheelListener:function(a,
+b){if(null!=a){var c=function(b){null==b&&(b=window.event);var c;c=mxClient.IS_FF?-b.detail/2:b.wheelDelta/120;0!=c&&a(b,0<c)};mxClient.IS_NS&&null==document.documentMode?mxEvent.addListener(mxClient.IS_GC&&null!=b?b:window,mxClient.IS_SF||mxClient.IS_GC?"mousewheel":"DOMMouseScroll",c):mxEvent.addListener(document,"mousewheel",c)}},disableContextMenu:function(a){mxEvent.addListener(a,"contextmenu",function(a){a.preventDefault&&a.preventDefault();return!1})},getSource:function(a){return null!=a.srcElement?
+a.srcElement:a.target},isConsumed:function(a){return null!=a.isConsumed&&a.isConsumed},isTouchEvent:function(a){return null!=a.pointerType?"touch"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_TOUCH:null!=a.mozInputSource?5==a.mozInputSource:0==a.type.indexOf("touch")},isPenEvent:function(a){return null!=a.pointerType?"pen"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_PEN:null!=a.mozInputSource?2==a.mozInputSource:0==a.type.indexOf("pen")},isMultiTouchEvent:function(a){return null!=a.type&&
+0==a.type.indexOf("touch")&&null!=a.touches&&1<a.touches.length},isMouseEvent:function(a){return null!=a.pointerType?"mouse"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_MOUSE:null!=a.mozInputSource?1==a.mozInputSource:0==a.type.indexOf("mouse")},isLeftMouseButton:function(a){return"buttons"in a&&("mousedown"==a.type||"mousemove"==a.type)?1==a.buttons:"which"in a?1===a.which:1===a.button},isMiddleMouseButton:function(a){return"which"in a?2===a.which:4===a.button},isRightMouseButton:function(a){return"which"in
+a?3===a.which:2===a.button},isPopupTrigger:function(a){return mxEvent.isRightMouseButton(a)||mxClient.IS_MAC&&mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)&&!mxEvent.isMetaDown(a)&&!mxEvent.isAltDown(a)},isShiftDown:function(a){return null!=a?a.shiftKey:!1},isAltDown:function(a){return null!=a?a.altKey:!1},isControlDown:function(a){return null!=a?a.ctrlKey:!1},isMetaDown:function(a){return null!=a?a.metaKey:!1},getMainEvent:function(a){"touchstart"!=a.type&&"touchmove"!=a.type||null==a.touches||
+null==a.touches[0]?"touchend"==a.type&&null!=a.changedTouches&&null!=a.changedTouches[0]&&(a=a.changedTouches[0]):a=a.touches[0];return a},getClientX:function(a){return mxEvent.getMainEvent(a).clientX},getClientY:function(a){return mxEvent.getMainEvent(a).clientY},consume:function(a,b,c){c=null!=c?c:!0;if(null!=b?b:1)a.preventDefault?(c&&a.stopPropagation(),a.preventDefault()):c&&(a.cancelBubble=!0);a.isConsumed=!0;a.preventDefault||(a.returnValue=!1)},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,CUSTOM_HANDLE:-100,
+VIRTUAL_HANDLE:-1E5,MOUSE_DOWN:"mouseDown",MOUSE_MOVE:"mouseMove",MOUSE_UP:"mouseUp",ACTIVATE:"activate",RESIZE_START:"resizeStart",RESIZE:"resize",RESIZE_END:"resizeEnd",MOVE_START:"moveStart",MOVE:"move",MOVE_END:"moveEnd",PAN_START:"panStart",PAN:"pan",PAN_END:"panEnd",MINIMIZE:"minimize",NORMALIZE:"normalize",MAXIMIZE:"maximize",HIDE:"hide",SHOW:"show",CLOSE:"close",DESTROY:"destroy",REFRESH:"refresh",SIZE:"size",SELECT:"select",FIRED:"fired",FIRE_MOUSE_EVENT:"fireMouseEvent",GESTURE:"gesture",
+TAP_AND_HOLD:"tapAndHold",GET:"get",RECEIVE:"receive",CONNECT:"connect",DISCONNECT:"disconnect",SUSPEND:"suspend",RESUME:"resume",MARK:"mark",ROOT:"root",POST:"post",OPEN:"open",SAVE:"save",BEFORE_ADD_VERTEX:"beforeAddVertex",ADD_VERTEX:"addVertex",AFTER_ADD_VERTEX:"afterAddVertex",DONE:"done",EXECUTE:"execute",EXECUTED:"executed",BEGIN_UPDATE:"beginUpdate",START_EDIT:"startEdit",END_UPDATE:"endUpdate",END_EDIT:"endEdit",BEFORE_UNDO:"beforeUndo",UNDO:"undo",REDO:"redo",CHANGE:"change",NOTIFY:"notify",
+LAYOUT_CELLS:"layoutCells",CLICK:"click",SCALE:"scale",TRANSLATE:"translate",SCALE_AND_TRANSLATE:"scaleAndTranslate",UP:"up",DOWN:"down",ADD:"add",REMOVE:"remove",CLEAR:"clear",ADD_CELLS:"addCells",CELLS_ADDED:"cellsAdded",MOVE_CELLS:"moveCells",CELLS_MOVED:"cellsMoved",RESIZE_CELLS:"resizeCells",CELLS_RESIZED:"cellsResized",TOGGLE_CELLS:"toggleCells",CELLS_TOGGLED:"cellsToggled",ORDER_CELLS:"orderCells",CELLS_ORDERED:"cellsOrdered",REMOVE_CELLS:"removeCells",CELLS_REMOVED:"cellsRemoved",GROUP_CELLS:"groupCells",
+UNGROUP_CELLS:"ungroupCells",REMOVE_CELLS_FROM_PARENT:"removeCellsFromParent",FOLD_CELLS:"foldCells",CELLS_FOLDED:"cellsFolded",ALIGN_CELLS:"alignCells",LABEL_CHANGED:"labelChanged",CONNECT_CELL:"connectCell",CELL_CONNECTED:"cellConnected",SPLIT_EDGE:"splitEdge",FLIP_EDGE:"flipEdge",START_EDITING:"startEditing",EDITING_STARTED:"editingStarted",EDITING_STOPPED:"editingStopped",ADD_OVERLAY:"addOverlay",REMOVE_OVERLAY:"removeOverlay",UPDATE_CELL_SIZE:"updateCellSize",ESCAPE:"escape",DOUBLE_CLICK:"doubleClick",
+START:"start",RESET:"reset"};function mxXmlRequest(a,b,c,d,e,f){this.url=a;this.params=b;this.method=c||"POST";this.async=null!=d?d:!0;this.username=e;this.password=f}mxXmlRequest.prototype.url=null;mxXmlRequest.prototype.params=null;mxXmlRequest.prototype.method=null;mxXmlRequest.prototype.async=null;mxXmlRequest.prototype.binary=!1;mxXmlRequest.prototype.withCredentials=!1;mxXmlRequest.prototype.username=null;mxXmlRequest.prototype.password=null;mxXmlRequest.prototype.request=null;
 mxXmlRequest.prototype.decodeSimulateValues=!1;mxXmlRequest.prototype.isBinary=function(){return this.binary};mxXmlRequest.prototype.setBinary=function(a){this.binary=a};mxXmlRequest.prototype.getText=function(){return this.request.responseText};mxXmlRequest.prototype.isReady=function(){return 4==this.request.readyState};mxXmlRequest.prototype.getDocumentElement=function(){var a=this.getXml();return null!=a?a.documentElement:null};
 mxXmlRequest.prototype.getXml=function(){var a=this.request.responseXML;if(9<=document.documentMode||null==a||null==a.documentElement)a=mxUtils.parseXml(this.request.responseText);return a};mxXmlRequest.prototype.getText=function(){return this.request.responseText};mxXmlRequest.prototype.getStatus=function(){return this.request.status};
 mxXmlRequest.prototype.create=function(){if(window.XMLHttpRequest)return function(){var a=new XMLHttpRequest;this.isBinary()&&a.overrideMimeType&&a.overrideMimeType("text/plain; charset=x-user-defined");return a};if("undefined"!=typeof ActiveXObject)return function(){return new ActiveXObject("Microsoft.XMLHTTP")}}();
@@ -2158,7 +2158,7 @@ d.width),g=Math.ceil(2*c.y+b.height*d.height),f=a.minimumGraphSize;if(null==f||f
 this.autoTranslate=!1)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=1;var C=null;a.lazyZoom=function(b){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);b?.15>this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=(this.view.scale+.01)/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-.01)/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(.01,Math.min(this.view.scale*this.cumulativeZoomFactor,160)/this.view.scale);this.updateZoomTimeout=window.setTimeout(mxUtils.bind(this,function(){var b=mxUtils.getOffset(a.container),e=0,g=0;null!=C&&(e=a.container.offsetWidth/2-C.x+b.x,g=a.container.offsetHeight/2-C.y+b.y);b=this.view.scale;
 this.zoom(this.cumulativeZoomFactor);this.view.scale!=b&&(null!=c&&d.chromelessResize(!1,null,e*(this.cumulativeZoomFactor-1),g*(this.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==e&&0==g||(a.container.scrollLeft-=e*(this.cumulativeZoomFactor-1),a.container.scrollTop-=g*(this.cumulativeZoomFactor-1)));this.cumulativeZoomFactor=1;this.updateZoomTimeout=null}),this.lazyZoomDelay)};mxEvent.addMouseWheelListener(mxUtils.bind(this,function(b,c){if((null==this.dialogs||0==this.dialogs.length)&&
-a.isZoomWheelEvent(b))for(var d=mxEvent.getSource(b);null!=d;){if(d==a.container){C=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b));a.lazyZoom(c);mxEvent.consume(b);break}d=d.parentNode}}))};EditorUi.prototype.addChromelessToolbarItems=function(a){a(mxUtils.bind(this,function(a){this.actions.get("print").funct();mxEvent.consume(a)}),Editor.printLargeImage,mxResources.get("print"))};
+a.isZoomWheelEvent(b))for(var d=mxEvent.getSource(b);null!=d;){if(d==a.container)return C=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b)),a.lazyZoom(c),mxEvent.consume(b),!1;d=d.parentNode}}),a.container)};EditorUi.prototype.addChromelessToolbarItems=function(a){a(mxUtils.bind(this,function(a){this.actions.get("print").funct();mxEvent.consume(a)}),Editor.printLargeImage,mxResources.get("print"))};
 EditorUi.prototype.createTemporaryGraph=function(a){a=new Graph(document.createElement("div"),null,null,a);a.resetViewOnRootChange=!1;a.setConnectable(!1);a.gridEnabled=!1;a.autoScroll=!1;a.setTooltips(!1);a.setEnabled(!1);a.container.style.visibility="hidden";a.container.style.position="absolute";a.container.style.overflow="hidden";a.container.style.height="1px";a.container.style.width="1px";return a};
 EditorUi.prototype.addChromelessClickHandler=function(){var a=urlParams.highlight;null!=a&&0<a.length&&(a="#"+a);this.editor.graph.addClickHandler(a)};EditorUi.prototype.toggleFormatPanel=function(a){null!=this.format&&(this.formatWidth=a||0<this.formatWidth?0:240,this.formatContainer.style.display=a||0<this.formatWidth?"":"none",this.refresh(),this.format.refresh(),this.fireEvent(new mxEventObject("formatWidthChanged")))};
 EditorUi.prototype.lightboxFit=function(a){if(this.isDiagramEmpty())this.editor.graph.view.setScale(1);else{var c=urlParams.border,d=60;null!=c&&(d=parseInt(c));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))};
@@ -2732,7 +2732,7 @@ BaseFormatPanel.prototype.addKeyHandler=function(a,c){mxEvent.addListener(a,"key
 BaseFormatPanel.prototype.styleButtons=function(a){for(var c=0;c<a.length;c++)mxUtils.setPrefixedStyle(a[c].style,"borderRadius","3px"),mxUtils.setOpacity(a[c],100),a[c].style.border="1px solid #a0a0a0",a[c].style.padding="4px",a[c].style.paddingTop="3px",a[c].style.paddingRight="1px",a[c].style.margin="1px",a[c].style.width="24px",a[c].style.height="20px",a[c].className+=" geColorBtn"};
 BaseFormatPanel.prototype.destroy=function(){if(null!=this.listeners){for(var a=0;a<this.listeners.length;a++)this.listeners[a].destroy();this.listeners=null}};ArrangePanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(ArrangePanel,BaseFormatPanel);
 ArrangePanel.prototype.init=function(){var a=this.format.getSelectionState();this.container.appendChild(this.addLayerOps(this.createPanel()));this.addGeometry(this.container);this.addEdgeGeometry(this.container);a.containsLabel&&0!=a.edges.length||this.container.appendChild(this.addAngle(this.createPanel()));a.containsLabel||0!=a.edges.length||this.container.appendChild(this.addFlip(this.createPanel()));1<a.vertices.length&&(this.container.appendChild(this.addAlign(this.createPanel())),this.container.appendChild(this.addDistribute(this.createPanel())));
-this.container.appendChild(this.addGroupOps(this.createPanel()))};
+this.container.appendChild(this.addGroupOps(this.createPanel()));a.containsLabel&&(a=document.createElement("div"),a.style.width="100%",a.style.marginTop="0px",a.style.fontWeight="bold",a.style.padding="10px 0 0 18px",mxUtils.write(a,mxResources.get("style")),this.container.appendChild(a),new StyleFormatPanel(this.format,this.editorUi,this.container))};
 ArrangePanel.prototype.addLayerOps=function(a){var c=this.editorUi,d=mxUtils.button(mxResources.get("toFront"),function(a){c.actions.get("toFront").funct()});d.setAttribute("title",mxResources.get("toFront")+" ("+this.editorUi.actions.get("toFront").shortcut+")");d.style.width="100px";d.style.marginRight="2px";a.appendChild(d);d=mxUtils.button(mxResources.get("toBack"),function(a){c.actions.get("toBack").funct()});d.setAttribute("title",mxResources.get("toBack")+" ("+this.editorUi.actions.get("toBack").shortcut+
 ")");d.style.width="100px";a.appendChild(d);return a};
 ArrangePanel.prototype.addGroupOps=function(a){var c=this.editorUi,d=c.editor.graph,b=d.getSelectionCell(),f=this.format.getSelectionState(),e=0,h=null;a.style.paddingTop="8px";a.style.paddingBottom="6px";1<d.getSelectionCount()?(h=mxUtils.button(mxResources.get("group"),function(a){c.actions.get("group").funct()}),h.setAttribute("title",mxResources.get("group")+" ("+this.editorUi.actions.get("group").shortcut+")"),h.style.width="202px",h.style.marginBottom="2px",a.appendChild(h),e++):1==d.getSelectionCount()&&
@@ -2820,8 +2820,8 @@ d(h.textAlign,"center")),c(q,d(h.textAlign,"right")),c(C,d(h.textAlign,"justify"
 Math.round(100*v)+" %"),d=h.color.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),e=h.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),null!=T&&(U="#"==d.charAt(0)?
 d:"#000000",T(U,!0)),null!=I&&(B="#"==e.charAt(0)?e:null,I(B,!0)),null!=l.firstChild&&(h=h.fontFamily,"'"==h.charAt(0)&&(h=h.substring(1)),"'"==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1)),'"'==h.charAt(0)&&(h=h.substring(1)),'"'==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1)),l.firstChild.nodeValue=h))}ma=!1},0))};(mxClient.IS_FF||mxClient.IS_EDGE||mxClient.IS_IE||mxClient.IS_IE11)&&mxEvent.addListener(b.cellEditor.textarea,"DOMSubtreeModified",e);mxEvent.addListener(b.cellEditor.textarea,
 "input",e);mxEvent.addListener(b.cellEditor.textarea,"touchend",e);mxEvent.addListener(b.cellEditor.textarea,"mouseup",e);mxEvent.addListener(b.cellEditor.textarea,"keyup",e);this.listeners.push({destroy:function(){}});e()}return a};StyleFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(StyleFormatPanel,BaseFormatPanel);StyleFormatPanel.prototype.defaultStrokeColor="black";
-StyleFormatPanel.prototype.init=function(){var a=this.format.getSelectionState();a.containsImage&&1==a.vertices.length&&"image"==a.style.shape&&null!=a.style.image&&"data:image/svg+xml;"==a.style.image.substring(0,19)&&this.container.appendChild(this.addSvgStyles(this.createPanel()));a.containsImage&&"image"!=a.style.shape||this.container.appendChild(this.addFill(this.createPanel()));this.container.appendChild(this.addStroke(this.createPanel()));this.container.appendChild(this.addLineJumps(this.createPanel()));
-a=this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_OPACITY,41);a.style.paddingTop="8px";a.style.paddingBottom="8px";this.container.appendChild(a);this.container.appendChild(this.addEffects(this.createPanel()));a=this.addEditOps(this.createPanel());null!=a.firstChild&&mxUtils.br(a);this.container.appendChild(this.addStyleOps(a))};
+StyleFormatPanel.prototype.init=function(){var a=this.format.getSelectionState();a.containsLabel||(a.containsImage&&1==a.vertices.length&&"image"==a.style.shape&&null!=a.style.image&&"data:image/svg+xml;"==a.style.image.substring(0,19)&&this.container.appendChild(this.addSvgStyles(this.createPanel())),a.containsImage&&"image"!=a.style.shape||this.container.appendChild(this.addFill(this.createPanel())),this.container.appendChild(this.addStroke(this.createPanel())),this.container.appendChild(this.addLineJumps(this.createPanel())),
+a=this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_OPACITY,41),a.style.paddingTop="8px",a.style.paddingBottom="8px",this.container.appendChild(a),this.container.appendChild(this.addEffects(this.createPanel())));a=this.addEditOps(this.createPanel());null!=a.firstChild&&mxUtils.br(a);this.container.appendChild(this.addStyleOps(a))};
 StyleFormatPanel.prototype.getCssRules=function(a){var c=document.implementation.createHTMLDocument(""),d=document.createElement("style");mxUtils.setTextContent(d,a);c.body.appendChild(d);return d.sheet.cssRules};
 StyleFormatPanel.prototype.addSvgStyles=function(a){var c=this.format.getSelectionState();a.style.paddingTop="6px";a.style.paddingBottom="6px";a.style.fontWeight="bold";a.style.display="none";try{var d=c.style.editableCssRules;if(null!=d){var b=new RegExp(d),f=c.style.image.substring(c.style.image.indexOf(",")+1),e=window.atob?atob(f):Base64.decode(f,!0),h=mxUtils.parseXml(e);if(null!=h)for(var g=h.getElementsByTagName("style"),c=0;c<g.length;c++)for(var k=this.getCssRules(mxUtils.getTextContent(g[c])),
 d=0;d<k.length;d++)this.addSvgRule(a,k[d],h,g[c],k,d,b)}}catch(l){}return a};
@@ -4161,57 +4161,57 @@ null,null,this.getTagsForStencil(c,"trusted advisor fault tolerant","aws amazon
 "trusted advisor checklist security","aws amazon web service management governance").join(" "))])};Sidebar.prototype.addAWS4MediaServicesPalette=function(a,d,e,b,c,f){a="outlineConnect=0;fontColor=#232F3E;gradientColor=#F78E04;gradientDirection=north;fillColor=#D05C17;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";this.addPaletteFunctions("aws4Media Services","AWS / Media Services",
 !1,[this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".elastic_transcoder;",b,b,"","Elastic Transcoder",null,null,this.getTagsForStencil(c,"elastic transcoder","aws amazon web service media services").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".kinesis_video_streams;",b,b,"","Kinesis Video Streams",null,null,this.getTagsForStencil(c,"kinesis video streams","aws amazon web service media services").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+
 c+".elemental_mediaconnect;",b,b,"","Elemental MediaConnect",null,null,this.getTagsForStencil(c,"elemental mediaconnect","aws amazon web service media services").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".elemental_mediaconvert;",b,b,"","Elemental MediaConvert",null,null,this.getTagsForStencil(c,"elemental mediaconvert","aws amazon web service media services").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".elemental_medialive;",b,b,"","Elemental MediaLive",
-null,null,this.getTagsForStencil(c,"elemental medialive","aws amazon web service media services").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".elemental_medialive;",b,b,"","Elemental MediaLive",null,null,this.getTagsForStencil(c,"elemental medialive","aws amazon web service media services").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".elemental_mediapackage;",b,b,"","Elemental MediaPackage",null,null,this.getTagsForStencil(c,"elemental mediapackage",
-"aws amazon web service media services").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".elemental_mediastore;",b,b,"","Elemental MediaStore",null,null,this.getTagsForStencil(c,"elemental mediastore","aws amazon web service media services").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".elemental_mediatailor;",b,b,"","Elemental MediaTailor",null,null,this.getTagsForStencil(c,"elemental mediatailor","aws amazon web service media services").join(" ")),
-this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".media_services;",b,b,"","Media Services",null,null,this.getTagsForStencil(c,"media services","aws amazon web service media services").join(" "))])};Sidebar.prototype.addAWS4MigrationTransferPalette=function(a,d,e,b,c,f){a="outlineConnect=0;fontColor=#232F3E;gradientColor=#4AB29A;gradientDirection=north;fillColor=#116D5B;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+
-mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";this.addPaletteFunctions("aws4Migration Transfer","AWS / Migration & Transfer",!1,[this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".application_discovery_service;",b,b,"","Application Discovery Service",null,null,this.getTagsForStencil(c,"application discovery service","aws amazon web service migration transfer").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".database_migration_service;",b,b,"","Database Migration Service",
-null,null,this.getTagsForStencil(c,"db database migration service","aws amazon web service migration transfer").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".datasync;",b,b,"","DataSync",null,null,this.getTagsForStencil(c,"datasync","aws amazon web service migration transfer").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".migration_hub;",b,b,"","Migration Hub",null,null,this.getTagsForStencil(c,"migration hub","aws amazon web service migration transfer").join(" ")),
-this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".server_migration_service;",b,b,"","Server Migration Service",null,null,this.getTagsForStencil(c,"server migration service","aws amazon web service migration transfer").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".snowball;",b,b,"","Snowball",null,null,this.getTagsForStencil(c,"snowball","aws amazon web service migration transfer").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".snowball_edge;",
-b,b,"","Snowball Edge",null,null,this.getTagsForStencil(c,"snowball edge","aws amazon web service migration transfer").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".snowmobile;",b,b,"","Snowmobile",null,null,this.getTagsForStencil(c,"snowmobile","aws amazon web service migration transfer").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".transfer_for_sftp;",b,b,"","Transfer for SFTP",null,null,this.getTagsForStencil(c,"transfer for sftp","aws amazon web service migration transfer").join(" ")),
-this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".migration_and_transfer;",b,b,"","Migration and Transfer",null,null,this.getTagsForStencil(c,"migration and transfer","aws amazon web service migration transfer").join(" "))])};Sidebar.prototype.addAWS4MobilePalette=function(a,d,e,b,c,f){a="outlineConnect=0;fontColor=#232F3E;gradientColor=#F54749;gradientDirection=north;fillColor=#C7131F;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+
-mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";this.addPaletteFunctions("aws4Mobile","AWS / Mobile",!1,[this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".api_gateway;",b,b,"","API Gateway",null,null,this.getTagsForStencil(c,"api application programming interface gateway","aws amazon web service mobile").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".pinpoint;",b,b,"","Pinpoint",null,null,this.getTagsForStencil(c,"pinpoint","aws amazon web service mobile").join(" ")),
-this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".amplify;",b,b,"","Amplify",null,null,this.getTagsForStencil(c,"amplify","aws amazon web service mobile").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".appsync;",b,b,"","AppSync",null,null,this.getTagsForStencil(c,"appsync","aws amazon web service mobile").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".device_farm;",b,b,"","Device Farm",null,null,this.getTagsForStencil(c,"device farm","aws amazon web service mobile").join(" ")),
-this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".mobile;",b,b,"","Mobile",null,null,this.getTagsForStencil(c,"mobile","aws amazon web service mobile").join(" "))])};Sidebar.prototype.addAWS4NetworkContentDeliveryPalette=function(a,d,e,b,c,f){d="outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#5A30B5;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";
-e="outlineConnect=0;fontColor=#232F3E;gradientColor=#945DF2;gradientDirection=north;fillColor=#5A30B5;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";this.addPaletteFunctions("aws4Network Content Delivery","AWS / Network & Content Delivery",!1,[this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".api_gateway;",b,b,"","API Gateway",null,null,this.getTagsForStencil(c,
-"api application programming interface gateway","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".cloudfront;",b,b,"","CloudFront",null,null,this.getTagsForStencil(c,"cloudfront","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".route_53;",b,b,"","Route 53",null,null,this.getTagsForStencil(c,"route 53","aws amazon web service netowrk content delivery").join(" ")),
-this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".vpc_privatelink;",b,b,"","VPC PrivateLink",null,null,this.getTagsForStencil(c,"vpc privatelink virtual private cloud","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".vpc;",b,b,"","VPC",null,null,this.getTagsForStencil(c,"vpc virtual private cloud","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+
-c+".app_mesh;",b,b,"","App Mesh",null,null,this.getTagsForStencil(c,"app application mesh","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".client_vpn;",b,b,"","Client VPN",null,null,this.getTagsForStencil(c,"client vpn virtual private network","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".cloud_map;",b,b,"","Cloud Map",null,null,this.getTagsForStencil(c,
-"cloud map","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".direct_connect;",b,b,"","Direct Connect",null,null,this.getTagsForStencil(c,"direct connect","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".global_accelerator;",b,b,"","Global Accelerator",null,null,this.getTagsForStencil(c,"global accelerator","aws amazon web service netowrk content delivery").join(" ")),
-this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".transit_gateway;",b,b,"","Transit Gateway",null,null,this.getTagsForStencil(c,"transit gateway","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".networking_and_content_delivery;",b,b,"","Networking and Content Delivery",null,null,this.getTagsForStencil(c,"networking and content delivery","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+
-"download_distribution;",78*a,78*a,"","Download Distribution",null,null,this.getTagsForStencil(c,"download distribution","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"edge_location;",78*a,78*a,"","Edge Location",null,null,this.getTagsForStencil(c,"edge location","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"streaming_distribution;",78*a,78*a,"","Streaming Distribution",null,null,this.getTagsForStencil(c,
-"streaming distribution","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"hosted_zone;",78*a,77*a,"","Route 53 Hosted Zone",null,null,this.getTagsForStencil(c,"hosted zone","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"route_table;",78*a,76*a,"","Route 53 Route Table",null,null,this.getTagsForStencil(c,"route table","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+
-"customer_gateway;",78*a,78*a,"","VPC Customer Gateway",null,null,this.getTagsForStencil(c,"vpc virtual private cloud customer gateway","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"elastic_network_adapter;",78*a,78*a,"","VPC Elastic Network Adapter",null,null,this.getTagsForStencil(c,"vpc virtual private cloud elastic network adapter","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"elastic_network_interface;",
-78*a,78*a,"","VPC Elastic Network Interface",null,null,this.getTagsForStencil(c,"vpc virtual private cloud elastic network interface","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"endpoints;",78*a,78*a,"","VPC Endpoints",null,null,this.getTagsForStencil(c,"vpc virtual private cloud endpoints","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"flow_logs;",78*a,78*a,"","VPC Flow Logs",null,null,this.getTagsForStencil(c,
-"vpc virtual private cloud flow logs","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"internet_gateway;",78*a,78*a,"","VPC Internet Gateway",null,null,this.getTagsForStencil(c,"vpc virtual private cloud internet gateway","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"nat_gateway;",78*a,78*a,"","VPC NAT Gateway",null,null,this.getTagsForStencil(c,"vpc virtual private cloud nat gateway","aws amazon web service netowrk content delivery").join(" ")),
-this.createVertexTemplateEntry(d+"network_access_control_list;",78*a,78*a,"","VPC Network Access Control List",null,null,this.getTagsForStencil(c,"vpc virtual private cloud network access control list","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"peering;",78*a,78*a,"","VPC Peering",null,null,this.getTagsForStencil(c,"vpc virtual private cloud network peering","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+
-"router;",78*a,78*a,"","VPC Router",null,null,this.getTagsForStencil(c,"vpc virtual private cloud network router","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"vpn_connection;",70*a,78*a,"","VPC VPN Connection",null,null,this.getTagsForStencil(c,"vpc virtual private cloud vpn network connection","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"vpn_gateway;",78*a,78*a,"","VPC VPN Gateway",null,null,this.getTagsForStencil(c,
-"vpc virtual private cloud vpn network gateway","aws amazon web service netowrk content delivery").join(" "))])};Sidebar.prototype.addAWS4RoboticsPalette=function(a,d,e,b,c,f){d="outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#BE0917;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";this.addPaletteFunctions("aws4Robotics","AWS / Robotics",!1,[this.createVertexTemplateEntry("outlineConnect=0;fontColor=#232F3E;gradientColor=#FE5151;gradientDirection=north;fillColor=#BE0917;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+
-mxConstants.STYLE_SHAPE+"=mxgraph.aws4.resourceIcon;resIcon="+c+".robotics;",b,b,"","Robotics",null,null,this.getTagsForStencil(c,"robotics","aws amazon web service robotics").join(" ")),this.createVertexTemplateEntry(d+"simulation;",78*a,64*a,"","Simulation",null,null,this.getTagsForStencil(c,"simulation","aws amazon web service robotics").join(" ")),this.createVertexTemplateEntry(d+"fleet_management;",78*a,78*a,"","Fleet Management",null,null,this.getTagsForStencil(c,"fleet management","aws amazon web service robotics").join(" ")),
-this.createVertexTemplateEntry(d+"development_environment;",78*a,71*a,"","Development Environment",null,null,this.getTagsForStencil(c,"development environment","aws amazon web service robotics").join(" ")),this.createVertexTemplateEntry(d+"cloud_extension_ros;",78*a,78*a,"","Cloud Extension ROS",null,null,this.getTagsForStencil(c,"cloud extension ros","aws amazon web service robotics").join(" "))])};Sidebar.prototype.addAWS4SatellitePalette=function(a,d,e,b,c,f){this.addPaletteFunctions("aws4Satellite",
-"AWS / Satellite",!1,[this.createVertexTemplateEntry("outlineConnect=0;fontColor=#232F3E;gradientColor=#517DFD;gradientDirection=north;fillColor=#2F29AF;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.resourceIcon;resIcon="+c+".satellite;",b,b,"","Satellite",null,null,this.getTagsForStencil(c,"satellite","aws amazon web satellite").join(" "))])};Sidebar.prototype.addAWS4SecurityIdentityCompliancePalette=
-function(a,d,e,b,c,f){d="outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#C7131F;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";e="outlineConnect=0;fontColor=#232F3E;gradientColor=#F54749;gradientDirection=north;fillColor=#C7131F;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+
-mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";this.addPaletteFunctions("aws4Security Identity Compliance","AWS / Security, Identity & Compliance",!1,[this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".cloud_directory;",b,b,"","Cloud Directory",null,null,this.getTagsForStencil(c,"cloud directory","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".cognito;",b,b,"","Cognito",null,null,this.getTagsForStencil(c,"cognito",
-"aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".guardduty;",b,b,"","GuardDuty",null,null,this.getTagsForStencil(c,"guardduty guard duty","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".inspector;",b,b,"","Inspector",null,null,this.getTagsForStencil(c,"inspector","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+
-"resourceIcon;resIcon="+c+".macie;",b,b,"","Macie",null,null,this.getTagsForStencil(c,"macie","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".artifact;",b,b,"","Artifact",null,null,this.getTagsForStencil(c,"artifact","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".certificate_manager_3;",b,b,"","Certificate Manager",null,null,this.getTagsForStencil(c,
-"certificate manager","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".cloudhsm;",b,b,"","CloudHSM",null,null,this.getTagsForStencil(c,"cloudhsm cloud hsm","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".directory_service;",b,b,"","Directory Service",null,null,this.getTagsForStencil(c,"directory service","aws amazon web service security identity compliance").join(" ")),
-this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".firewall_manager;",b,b,"","Firewall Manager",null,null,this.getTagsForStencil(c,"firewall manager","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".identity_and_access_management;",b,b,"","Identity and Access Management",null,null,this.getTagsForStencil(c,"identity and access management","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+
-"resourceIcon;resIcon="+c+".key_management_service;",b,b,"","Key Management Service",null,null,this.getTagsForStencil(c,"key management service","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".organizations;",b,b,"","Organizations",null,null,this.getTagsForStencil(c,"organizations","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".secrets_manager;",
-b,b,"","Secrets Manager",null,null,this.getTagsForStencil(c,"secrets manager","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".security_hub;",b,b,"","Security Hub",null,null,this.getTagsForStencil(c,"security hub","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".shield;",b,b,"","Shield",null,null,this.getTagsForStencil(c,"shield","aws amazon web service security identity compliance").join(" ")),
-this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".single_sign_on;",b,b,"","Single Sign-On",null,null,this.getTagsForStencil(c,"single sign on","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".waf;",b,b,"","WAF",null,null,this.getTagsForStencil(c,"waf","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".security_identity_and_compliance;",
-b,b,"","Security Identity and Compliance",null,null,this.getTagsForStencil(c,"security identity and compliance","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"agent;",78*a,74*a,"","Inspector Agent",null,null,this.getTagsForStencil(c,"inspector agent","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"certificate_manager_2;",78*a,72*a,"","Certificate Manager",null,null,this.getTagsForStencil(c,"certificate manager",
-"aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"addon;",78*a,40*a,"","Identity and Access Management - IAM Add-on",null,null,this.getTagsForStencil(c,"identity and access management iam addon add on","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"sts;",78*a,50*a,"","Identity and Access Management - IAM AWS STS",null,null,this.getTagsForStencil(c,"identity and access management iam sts","aws amazon web service security identity compliance").join(" ")),
-this.createVertexTemplateEntry(d+"sts_alternate;",62*a,78*a,"","Identity and Access Management - IAM AWS STS",null,null,this.getTagsForStencil(c,"identity and access management iam sts","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"data_encryption_key;",62*a,78*a,"","Identity and Access Management - IAM Data Encryption Key",null,null,this.getTagsForStencil(c,"identity and access management iam data encryption key","aws amazon web service security identity compliance").join(" ")),
-this.createVertexTemplateEntry(d+"encrypted_data;",62*a,78*a,"","Identity and Access Management - IAM Encrypted Data",null,null,this.getTagsForStencil(c,"identity and access management iam encrypted data","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"long_term_security_credential;",78*a,69*a,"","Identity and Access Management - IAM Long Term Security Credential",null,null,this.getTagsForStencil(c,"identity and access management iam long term security credential",
-"aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"mfa_token;",78*a,78*a,"","Identity and Access Management - IAM MFA Token",null,null,this.getTagsForStencil(c,"identity and access management iam mfa token","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"permissions;",62*a,78*a,"","Identity and Access Management - IAM Permissions",null,null,this.getTagsForStencil(c,"identity and access management iam permissions",
-"aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"role;",78*a,44*a,"","Identity and Access Management - IAM Role",null,null,this.getTagsForStencil(c,"identity and access management iam role","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"temporary_security_credential;",77*a,78*a,"","Identity and Access Management - IAM Temporary Security Credential",null,null,this.getTagsForStencil(c,"identity and access management iam temporary security credential",
-"aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"organizations_account;",74*a,78*a,"","Organizations Account",null,null,this.getTagsForStencil(c,"organizations account","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"organizations_organizational_unit;",78*a,67*a,"","Organizations Organizational Unit",null,null,this.getTagsForStencil(c,"organizations organizational unit","aws amazon web service security identity compliance").join(" ")),
-this.createVertexTemplateEntry(d+"shield_shield_advanced;",70*a,78*a,"","Shield Advanced",null,null,this.getTagsForStencil(c,"shield advanced","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"filtering_rule;",78*a,78*a,"","WAF Filtering Rule",null,null,this.getTagsForStencil(c,"filtering rule","aws amazon web service security identity compliance").join(" "))])};Sidebar.prototype.addAWS4StoragePalette=function(a,d,e,b,c,f){d="outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#277116;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+
-mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";e="outlineConnect=0;fontColor=#232F3E;gradientColor=#60A337;gradientDirection=north;fillColor=#277116;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";this.addPaletteFunctions("aws4Storage","AWS / Storage",!1,[this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".elastic_block_store;",b,b,"","Elastic Block Store",null,null,this.getTagsForStencil(c,
-"elastic block store","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".elastic_file_system;",b,b,"","Elastic File System",null,null,this.getTagsForStencil(c,"elastic file system","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".fsx;",b,b,"","FSx",null,null,this.getTagsForStencil(c,"fsx","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+
-c+".fsx_for_lustre;",b,b,"","FSx for Lustre",null,null,this.getTagsForStencil(c,"fsx for lustre","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".fsx_for_windows_file_server;",b,b,"","FSx for Windows File Server",null,null,this.getTagsForStencil(c,"fsx for windows file server","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".glacier;",b,b,"","S3 Glacier",null,null,this.getTagsForStencil(c,
-"s3 simple storage service glacier","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".s3;",b,b,"","Simple Storage Service",null,null,this.getTagsForStencil(c,"s3 simple storage service","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".backup;",b,b,"","Backup",null,null,this.getTagsForStencil(c,"backup","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+
-c+".snowball;",b,b,"","Snowball",null,null,this.getTagsForStencil(c,"snowball","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".snowball_edge;",b,b,"","Snowball Edge",null,null,this.getTagsForStencil(c,"snowball edge","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".snowmobile;",b,b,"","Snowmobile",null,null,this.getTagsForStencil(c,"snowmobile","aws amazon web service storage").join(" ")),
-this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".storage_gateway;",b,b,"","Storage Gateway",null,null,this.getTagsForStencil(c,"storage gateway","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".storage;",b,b,"","Storage",null,null,this.getTagsForStencil(c,"storage","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(d+"snapshot;",56*a,78*a,"","Snapshot",null,null,this.getTagsForStencil(c,"snapshot","aws amazon web service storage").join(" ")),
+null,null,this.getTagsForStencil(c,"elemental medialive","aws amazon web service media services").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".elemental_mediapackage;",b,b,"","Elemental MediaPackage",null,null,this.getTagsForStencil(c,"elemental mediapackage","aws amazon web service media services").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".elemental_mediastore;",b,b,"","Elemental MediaStore",null,null,this.getTagsForStencil(c,"elemental mediastore",
+"aws amazon web service media services").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".elemental_mediatailor;",b,b,"","Elemental MediaTailor",null,null,this.getTagsForStencil(c,"elemental mediatailor","aws amazon web service media services").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".media_services;",b,b,"","Media Services",null,null,this.getTagsForStencil(c,"media services","aws amazon web service media services").join(" "))])};Sidebar.prototype.addAWS4MigrationTransferPalette=
+function(a,d,e,b,c,f){a="outlineConnect=0;fontColor=#232F3E;gradientColor=#4AB29A;gradientDirection=north;fillColor=#116D5B;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";this.addPaletteFunctions("aws4Migration Transfer","AWS / Migration & Transfer",!1,[this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".application_discovery_service;",b,b,"","Application Discovery Service",
+null,null,this.getTagsForStencil(c,"application discovery service","aws amazon web service migration transfer").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".database_migration_service;",b,b,"","Database Migration Service",null,null,this.getTagsForStencil(c,"db database migration service","aws amazon web service migration transfer").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".datasync;",b,b,"","DataSync",null,null,this.getTagsForStencil(c,"datasync",
+"aws amazon web service migration transfer").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".migration_hub;",b,b,"","Migration Hub",null,null,this.getTagsForStencil(c,"migration hub","aws amazon web service migration transfer").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".server_migration_service;",b,b,"","Server Migration Service",null,null,this.getTagsForStencil(c,"server migration service","aws amazon web service migration transfer").join(" ")),
+this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".snowball;",b,b,"","Snowball",null,null,this.getTagsForStencil(c,"snowball","aws amazon web service migration transfer").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".snowball_edge;",b,b,"","Snowball Edge",null,null,this.getTagsForStencil(c,"snowball edge","aws amazon web service migration transfer").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".snowmobile;",b,b,"","Snowmobile",null,null,
+this.getTagsForStencil(c,"snowmobile","aws amazon web service migration transfer").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".transfer_for_sftp;",b,b,"","Transfer for SFTP",null,null,this.getTagsForStencil(c,"transfer for sftp","aws amazon web service migration transfer").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".migration_and_transfer;",b,b,"","Migration and Transfer",null,null,this.getTagsForStencil(c,"migration and transfer","aws amazon web service migration transfer").join(" "))])};
+Sidebar.prototype.addAWS4MobilePalette=function(a,d,e,b,c,f){a="outlineConnect=0;fontColor=#232F3E;gradientColor=#F54749;gradientDirection=north;fillColor=#C7131F;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";this.addPaletteFunctions("aws4Mobile","AWS / Mobile",!1,[this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".api_gateway;",b,b,"","API Gateway",null,null,
+this.getTagsForStencil(c,"api application programming interface gateway","aws amazon web service mobile").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".pinpoint;",b,b,"","Pinpoint",null,null,this.getTagsForStencil(c,"pinpoint","aws amazon web service mobile").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".amplify;",b,b,"","Amplify",null,null,this.getTagsForStencil(c,"amplify","aws amazon web service mobile").join(" ")),this.createVertexTemplateEntry(a+
+"resourceIcon;resIcon="+c+".appsync;",b,b,"","AppSync",null,null,this.getTagsForStencil(c,"appsync","aws amazon web service mobile").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".device_farm;",b,b,"","Device Farm",null,null,this.getTagsForStencil(c,"device farm","aws amazon web service mobile").join(" ")),this.createVertexTemplateEntry(a+"resourceIcon;resIcon="+c+".mobile;",b,b,"","Mobile",null,null,this.getTagsForStencil(c,"mobile","aws amazon web service mobile").join(" "))])};
+Sidebar.prototype.addAWS4NetworkContentDeliveryPalette=function(a,d,e,b,c,f){d="outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#5A30B5;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";e="outlineConnect=0;fontColor=#232F3E;gradientColor=#945DF2;gradientDirection=north;fillColor=#5A30B5;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+
+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";this.addPaletteFunctions("aws4Network Content Delivery","AWS / Network & Content Delivery",!1,[this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".api_gateway;",b,b,"","API Gateway",null,null,this.getTagsForStencil(c,"api application programming interface gateway","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".cloudfront;",b,b,"","CloudFront",null,null,this.getTagsForStencil(c,
+"cloudfront","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".route_53;",b,b,"","Route 53",null,null,this.getTagsForStencil(c,"route 53","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".vpc_privatelink;",b,b,"","VPC PrivateLink",null,null,this.getTagsForStencil(c,"vpc privatelink virtual private cloud","aws amazon web service netowrk content delivery").join(" ")),
+this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".vpc;",b,b,"","VPC",null,null,this.getTagsForStencil(c,"vpc virtual private cloud","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".app_mesh;",b,b,"","App Mesh",null,null,this.getTagsForStencil(c,"app application mesh","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".client_vpn;",b,b,"","Client VPN",
+null,null,this.getTagsForStencil(c,"client vpn virtual private network","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".cloud_map;",b,b,"","Cloud Map",null,null,this.getTagsForStencil(c,"cloud map","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".direct_connect;",b,b,"","Direct Connect",null,null,this.getTagsForStencil(c,"direct connect","aws amazon web service netowrk content delivery").join(" ")),
+this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".global_accelerator;",b,b,"","Global Accelerator",null,null,this.getTagsForStencil(c,"global accelerator","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".transit_gateway;",b,b,"","Transit Gateway",null,null,this.getTagsForStencil(c,"transit gateway","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+
+c+".networking_and_content_delivery;",b,b,"","Networking and Content Delivery",null,null,this.getTagsForStencil(c,"networking and content delivery","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"download_distribution;",78*a,78*a,"","Download Distribution",null,null,this.getTagsForStencil(c,"download distribution","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"edge_location;",78*a,78*a,"","Edge Location",
+null,null,this.getTagsForStencil(c,"edge location","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"streaming_distribution;",78*a,78*a,"","Streaming Distribution",null,null,this.getTagsForStencil(c,"streaming distribution","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"hosted_zone;",78*a,77*a,"","Route 53 Hosted Zone",null,null,this.getTagsForStencil(c,"hosted zone","aws amazon web service netowrk content delivery").join(" ")),
+this.createVertexTemplateEntry(d+"route_table;",78*a,76*a,"","Route 53 Route Table",null,null,this.getTagsForStencil(c,"route table","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"customer_gateway;",78*a,78*a,"","VPC Customer Gateway",null,null,this.getTagsForStencil(c,"vpc virtual private cloud customer gateway","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"elastic_network_adapter;",78*a,78*a,"","VPC Elastic Network Adapter",
+null,null,this.getTagsForStencil(c,"vpc virtual private cloud elastic network adapter","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"elastic_network_interface;",78*a,78*a,"","VPC Elastic Network Interface",null,null,this.getTagsForStencil(c,"vpc virtual private cloud elastic network interface","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"endpoints;",78*a,78*a,"","VPC Endpoints",null,null,this.getTagsForStencil(c,
+"vpc virtual private cloud endpoints","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"flow_logs;",78*a,78*a,"","VPC Flow Logs",null,null,this.getTagsForStencil(c,"vpc virtual private cloud flow logs","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"internet_gateway;",78*a,78*a,"","VPC Internet Gateway",null,null,this.getTagsForStencil(c,"vpc virtual private cloud internet gateway","aws amazon web service netowrk content delivery").join(" ")),
+this.createVertexTemplateEntry(d+"nat_gateway;",78*a,78*a,"","VPC NAT Gateway",null,null,this.getTagsForStencil(c,"vpc virtual private cloud nat gateway","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"network_access_control_list;",78*a,78*a,"","VPC Network Access Control List",null,null,this.getTagsForStencil(c,"vpc virtual private cloud network access control list","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+
+"peering;",78*a,78*a,"","VPC Peering",null,null,this.getTagsForStencil(c,"vpc virtual private cloud network peering","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"router;",78*a,78*a,"","VPC Router",null,null,this.getTagsForStencil(c,"vpc virtual private cloud network router","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"vpn_connection;",70*a,78*a,"","VPC VPN Connection",null,null,this.getTagsForStencil(c,
+"vpc virtual private cloud vpn network connection","aws amazon web service netowrk content delivery").join(" ")),this.createVertexTemplateEntry(d+"vpn_gateway;",78*a,78*a,"","VPC VPN Gateway",null,null,this.getTagsForStencil(c,"vpc virtual private cloud vpn network gateway","aws amazon web service netowrk content delivery").join(" "))])};Sidebar.prototype.addAWS4RoboticsPalette=function(a,d,e,b,c,f){d="outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#BE0917;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+
+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";this.addPaletteFunctions("aws4Robotics","AWS / Robotics",!1,[this.createVertexTemplateEntry("outlineConnect=0;fontColor=#232F3E;gradientColor=#FE5151;gradientDirection=north;fillColor=#BE0917;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.resourceIcon;resIcon="+c+".robotics;",b,b,"","Robotics",null,null,this.getTagsForStencil(c,"robotics",
+"aws amazon web service robotics").join(" ")),this.createVertexTemplateEntry(d+"simulation;",78*a,64*a,"","Simulation",null,null,this.getTagsForStencil(c,"simulation","aws amazon web service robotics").join(" ")),this.createVertexTemplateEntry(d+"fleet_management;",78*a,78*a,"","Fleet Management",null,null,this.getTagsForStencil(c,"fleet management","aws amazon web service robotics").join(" ")),this.createVertexTemplateEntry(d+"development_environment;",78*a,71*a,"","Development Environment",null,
+null,this.getTagsForStencil(c,"development environment","aws amazon web service robotics").join(" ")),this.createVertexTemplateEntry(d+"cloud_extension_ros;",78*a,78*a,"","Cloud Extension ROS",null,null,this.getTagsForStencil(c,"cloud extension ros","aws amazon web service robotics").join(" "))])};Sidebar.prototype.addAWS4SatellitePalette=function(a,d,e,b,c,f){this.addPaletteFunctions("aws4Satellite","AWS / Satellite",!1,[this.createVertexTemplateEntry("outlineConnect=0;fontColor=#232F3E;gradientColor=#517DFD;gradientDirection=north;fillColor=#2F29AF;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+
+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.resourceIcon;resIcon="+c+".satellite;",b,b,"","Satellite",null,null,this.getTagsForStencil(c,"satellite","aws amazon web satellite").join(" "))])};Sidebar.prototype.addAWS4SecurityIdentityCompliancePalette=function(a,d,e,b,c,f){d="outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#C7131F;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";
+e="outlineConnect=0;fontColor=#232F3E;gradientColor=#F54749;gradientDirection=north;fillColor=#C7131F;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";this.addPaletteFunctions("aws4Security Identity Compliance","AWS / Security, Identity & Compliance",!1,[this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".cloud_directory;",b,b,"","Cloud Directory",null,null,this.getTagsForStencil(c,
+"cloud directory","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".cognito;",b,b,"","Cognito",null,null,this.getTagsForStencil(c,"cognito","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".guardduty;",b,b,"","GuardDuty",null,null,this.getTagsForStencil(c,"guardduty guard duty","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+
+"resourceIcon;resIcon="+c+".inspector;",b,b,"","Inspector",null,null,this.getTagsForStencil(c,"inspector","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".macie;",b,b,"","Macie",null,null,this.getTagsForStencil(c,"macie","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".artifact;",b,b,"","Artifact",null,null,this.getTagsForStencil(c,"artifact",
+"aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".certificate_manager_3;",b,b,"","Certificate Manager",null,null,this.getTagsForStencil(c,"certificate manager","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".cloudhsm;",b,b,"","CloudHSM",null,null,this.getTagsForStencil(c,"cloudhsm cloud hsm","aws amazon web service security identity compliance").join(" ")),
+this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".directory_service;",b,b,"","Directory Service",null,null,this.getTagsForStencil(c,"directory service","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".firewall_manager;",b,b,"","Firewall Manager",null,null,this.getTagsForStencil(c,"firewall manager","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+
+c+".identity_and_access_management;",b,b,"","Identity and Access Management",null,null,this.getTagsForStencil(c,"identity and access management","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".key_management_service;",b,b,"","Key Management Service",null,null,this.getTagsForStencil(c,"key management service","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+
+c+".organizations;",b,b,"","Organizations",null,null,this.getTagsForStencil(c,"organizations","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".secrets_manager;",b,b,"","Secrets Manager",null,null,this.getTagsForStencil(c,"secrets manager","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".security_hub;",b,b,"","Security Hub",null,null,this.getTagsForStencil(c,
+"security hub","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".shield;",b,b,"","Shield",null,null,this.getTagsForStencil(c,"shield","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".single_sign_on;",b,b,"","Single Sign-On",null,null,this.getTagsForStencil(c,"single sign on","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+
+"resourceIcon;resIcon="+c+".waf;",b,b,"","WAF",null,null,this.getTagsForStencil(c,"waf","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".security_identity_and_compliance;",b,b,"","Security Identity and Compliance",null,null,this.getTagsForStencil(c,"security identity and compliance","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"agent;",78*a,74*a,"","Inspector Agent",
+null,null,this.getTagsForStencil(c,"inspector agent","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"certificate_manager_2;",78*a,72*a,"","Certificate Manager",null,null,this.getTagsForStencil(c,"certificate manager","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"addon;",78*a,40*a,"","Identity and Access Management - IAM Add-on",null,null,this.getTagsForStencil(c,"identity and access management iam addon add on",
+"aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"sts;",78*a,50*a,"","Identity and Access Management - IAM AWS STS",null,null,this.getTagsForStencil(c,"identity and access management iam sts","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"sts_alternate;",62*a,78*a,"","Identity and Access Management - IAM AWS STS",null,null,this.getTagsForStencil(c,"identity and access management iam sts","aws amazon web service security identity compliance").join(" ")),
+this.createVertexTemplateEntry(d+"data_encryption_key;",62*a,78*a,"","Identity and Access Management - IAM Data Encryption Key",null,null,this.getTagsForStencil(c,"identity and access management iam data encryption key","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"encrypted_data;",62*a,78*a,"","Identity and Access Management - IAM Encrypted Data",null,null,this.getTagsForStencil(c,"identity and access management iam encrypted data","aws amazon web service security identity compliance").join(" ")),
+this.createVertexTemplateEntry(d+"long_term_security_credential;",78*a,69*a,"","Identity and Access Management - IAM Long Term Security Credential",null,null,this.getTagsForStencil(c,"identity and access management iam long term security credential","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"mfa_token;",78*a,78*a,"","Identity and Access Management - IAM MFA Token",null,null,this.getTagsForStencil(c,"identity and access management iam mfa token",
+"aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"permissions;",62*a,78*a,"","Identity and Access Management - IAM Permissions",null,null,this.getTagsForStencil(c,"identity and access management iam permissions","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"role;",78*a,44*a,"","Identity and Access Management - IAM Role",null,null,this.getTagsForStencil(c,"identity and access management iam role",
+"aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"temporary_security_credential;",77*a,78*a,"","Identity and Access Management - IAM Temporary Security Credential",null,null,this.getTagsForStencil(c,"identity and access management iam temporary security credential","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"organizations_account;",74*a,78*a,"","Organizations Account",null,null,this.getTagsForStencil(c,
+"organizations account","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"organizations_organizational_unit;",78*a,67*a,"","Organizations Organizational Unit",null,null,this.getTagsForStencil(c,"organizations organizational unit","aws amazon web service security identity compliance").join(" ")),this.createVertexTemplateEntry(d+"shield_shield_advanced;",70*a,78*a,"","Shield Advanced",null,null,this.getTagsForStencil(c,"shield advanced","aws amazon web service security identity compliance").join(" ")),
+this.createVertexTemplateEntry(d+"filtering_rule;",78*a,78*a,"","WAF Filtering Rule",null,null,this.getTagsForStencil(c,"filtering rule","aws amazon web service security identity compliance").join(" "))])};Sidebar.prototype.addAWS4StoragePalette=function(a,d,e,b,c,f){d="outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#277116;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";
+e="outlineConnect=0;fontColor=#232F3E;gradientColor=#60A337;gradientDirection=north;fillColor=#277116;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;"+mxConstants.STYLE_SHAPE+"=mxgraph.aws4.";this.addPaletteFunctions("aws4Storage","AWS / Storage",!1,[this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".elastic_block_store;",b,b,"","Elastic Block Store",null,null,this.getTagsForStencil(c,"elastic block store",
+"aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".elastic_file_system;",b,b,"","Elastic File System",null,null,this.getTagsForStencil(c,"elastic file system","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".fsx;",b,b,"","FSx",null,null,this.getTagsForStencil(c,"fsx","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".fsx_for_lustre;",
+b,b,"","FSx for Lustre",null,null,this.getTagsForStencil(c,"fsx for lustre","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".fsx_for_windows_file_server;",b,b,"","FSx for Windows File Server",null,null,this.getTagsForStencil(c,"fsx for windows file server","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".glacier;",b,b,"","S3 Glacier",null,null,this.getTagsForStencil(c,"s3 simple storage service glacier",
+"aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".s3;",b,b,"","Simple Storage Service",null,null,this.getTagsForStencil(c,"s3 simple storage service","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".backup;",b,b,"","Backup",null,null,this.getTagsForStencil(c,"backup","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".snowball;",b,b,
+"","Snowball",null,null,this.getTagsForStencil(c,"snowball","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".snowball_edge;",b,b,"","Snowball Edge",null,null,this.getTagsForStencil(c,"snowball edge","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".snowmobile;",b,b,"","Snowmobile",null,null,this.getTagsForStencil(c,"snowmobile","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+
+"resourceIcon;resIcon="+c+".storage_gateway;",b,b,"","Storage Gateway",null,null,this.getTagsForStencil(c,"storage gateway","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(e+"resourceIcon;resIcon="+c+".storage;",b,b,"","Storage",null,null,this.getTagsForStencil(c,"storage","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(d+"snapshot;",56*a,78*a,"","Snapshot",null,null,this.getTagsForStencil(c,"snapshot","aws amazon web service storage").join(" ")),
 this.createVertexTemplateEntry(d+"volume;",62*a,78*a,"","Volume",null,null,this.getTagsForStencil(c,"volume","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(d+"archive;",63*a,78*a,"","S3 Glacier Archive",null,null,this.getTagsForStencil(c,"s3 simple storage service glacier archive","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(d+"vault;",62*a,78*a,"","S3 Glacier Vault",null,null,this.getTagsForStencil(c,"s3 simple storage service glacier vault",
 "aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(d+"bucket;",75*a,78*a,"","S3 Bucket",null,null,this.getTagsForStencil(c,"s3 simple storage service bucket","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(d+"bucket_with_objects;",75*a,78*a,"","S3 Bucket with Objects",null,null,this.getTagsForStencil(c,"s3 simple storage service bucket with objects","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(d+"object;",78*a,78*
 a,"","S3 Object",null,null,this.getTagsForStencil(c,"s3 simple storage service object","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(d+"import_export;",78*a,61*a,"","Snowball Import Export",null,null,this.getTagsForStencil(c,"snowball import export","aws amazon web service storage").join(" ")),this.createVertexTemplateEntry(d+"cached_volume;",62*a,78*a,"","Storage Gateway Cached Volume",null,null,this.getTagsForStencil(c,"storage gateway cached volume","aws amazon web service storage").join(" ")),
@@ -7741,7 +7741,8 @@ DrawioFile.prototype.isConflict=function(){return!1};DrawioFile.prototype.getCha
 DrawioFile.prototype.setCurrentEtag=function(a){this.setDescriptorEtag(this.getDescriptor(),a)};DrawioFile.prototype.getCurrentEtag=function(){return this.getDescriptorEtag(this.getDescriptor())};DrawioFile.prototype.getDescriptor=function(){return null};DrawioFile.prototype.setDescriptor=function(){};DrawioFile.prototype.setDescriptorEtag=function(a,c){};DrawioFile.prototype.getDescriptorEtag=function(a){return null};DrawioFile.prototype.getDescriptorSecret=function(a){return null};
 DrawioFile.prototype.installListeners=function(){null==this.changeListener&&(this.changeListener=mxUtils.bind(this,function(a,c){var b=null!=c?c.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=b&&b.ignoreEdit||this.fileChanged()}),this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener),this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener),this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener),this.ui.addListener("pageFormatChanged",
 this.changeListener),this.ui.addListener("pageScaleChanged",this.changeListener),this.ui.addListener("backgroundColorChanged",this.changeListener),this.ui.addListener("backgroundImageChanged",this.changeListener),this.ui.addListener("foldingEnabledChanged",this.changeListener),this.ui.addListener("mathEnabledChanged",this.changeListener),this.ui.addListener("gridEnabledChanged",this.changeListener),this.ui.addListener("guidesEnabledChanged",this.changeListener),this.ui.addListener("pageViewChanged",
-this.changeListener))};DrawioFile.prototype.addAllSavedStatus=function(a){null!=this.ui.statusContainer&&this.ui.getCurrentFile()==this&&(a=null!=a?a:mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey)),this.ui.editor.setStatus('<div title="'+a+'">'+a+"</div>"),a=this.ui.statusContainer.getElementsByTagName("div"),0<a.length&&this.isRevisionHistorySupported()&&(a[0].style.cursor="pointer",a[0].style.textDecoration="underline",mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))};
+this.changeListener),this.ui.addListener("connectionPointsChanged",this.changeListener),this.ui.addListener("connectionArrowsChanged",this.changeListener))};
+DrawioFile.prototype.addAllSavedStatus=function(a){null!=this.ui.statusContainer&&this.ui.getCurrentFile()==this&&(a=null!=a?a:mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey)),this.ui.editor.setStatus('<div title="'+a+'">'+a+"</div>"),a=this.ui.statusContainer.getElementsByTagName("div"),0<a.length&&this.isRevisionHistorySupported()&&(a[0].style.cursor="pointer",a[0].style.textDecoration="underline",mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))};
 DrawioFile.prototype.addUnsavedStatus=function(a){if(!this.inConflictState&&null!=this.ui.statusContainer&&this.ui.getCurrentFile()==this)if(a instanceof Error&&null!=a.message&&""!=a.message){var c=mxUtils.htmlEntities(mxResources.get("unsavedChanges"));this.ui.editor.setStatus('<div title="'+c+'" class="geStatusAlert" style="overflow:hidden;">'+c+" ("+mxUtils.htmlEntities(a.message)+")</div>")}else{c=this.getErrorMessage(a);if(null==c&&null!=this.lastSaved){var b=this.ui.timeSince(new Date(this.lastSaved));
 null!=b&&(c=mxResources.get("lastSaved",[b]))}null!=c&&60<c.length&&(c=c.substring(0,60)+"...");c=mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+(null!=c&&""!=c?" ("+mxUtils.htmlEntities(c)+")":"");this.ui.editor.setStatus('<div title="'+c+'" class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+c+"</div>");c=this.ui.statusContainer.getElementsByTagName("div");null!=c&&0<c.length?mxEvent.addListener(c[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null!=
 this.ui.mode&&this.isEditable()?"save":"saveAs").funct()})):(c=mxUtils.htmlEntities(mxResources.get("unsavedChanges")),this.ui.editor.setStatus('<div title="'+c+'" class="geStatusAlert" style="overflow:hidden;">'+c+" ("+mxUtils.htmlEntities(a.message)+")</div>"))}};
@@ -8149,25 +8150,25 @@ stroke:"#B09500",font:"#ffffff"},{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"
 {fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",
 stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(a,b,c){if(null!=b){var f=function(a){if(null!=a)if(c)for(var f=0;f<a.length;f++)b[a[f].name]=a[f];else for(var d in b){for(var k=!1,f=0;f<a.length;f++)if(a[f].name==d&&a[f].type==b[d].type){k=!0;break}k||delete b[d]}},d=this.editorUi.editor.graph.view.getState(a);null!=d&&
 null!=d.shape&&(d.shape.commonCustomPropAdded||(d.shape.commonCustomPropAdded=!0,d.shape.customProperties=d.shape.customProperties||[],d.cell.vertex?Array.prototype.push.apply(d.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(d.shape.customProperties,Editor.commonEdgeProperties)),f(d.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{f(JSON.parse(a))}catch(F){}}};var f=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=
-this.format.createSelectionState();"image"!=a.style.shape&&this.container.appendChild(this.addStyles(this.createPanel()));f.apply(this,arguments);if(Editor.enableCustomProperties){for(var b={},c=a.vertices,d=a.edges,k=0;k<c.length;k++)this.findCommonProperties(c[k],b,0==k);for(k=0;k<d.length;k++)this.findCommonProperties(d[k],b,0==c.length&&0==k);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(b).length&&this.container.appendChild(this.addProperties(this.createPanel(),b,a))}};var k=
-StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var b=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));b.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";b.style.marginRight="2px";a.appendChild(b);b=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));
-b.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";a.appendChild(b);mxUtils.br(a);return k.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,b,c){function f(a,b,c,f){u.getModel().beginUpdate();try{var d=[],k=[];if(null!=c.index){for(var p=[],e=c.parentRow.nextSibling;e&&e.getAttribute("data-pName")==a;)p.push(e.getAttribute("data-pValue")),
-e=e.nextSibling;c.index<p.length?null!=f?p.splice(f,1):p[c.index]=b:p.push(b);null!=c.size&&p.length>c.size&&(p=p.slice(0,c.size));b=p.join(",");null!=c.countProperty&&(u.setCellStyles(c.countProperty,p.length,u.getSelectionCells()),d.push(c.countProperty),k.push(p.length))}u.setCellStyles(a,b,u.getSelectionCells());d.push(a);k.push(b);if(null!=c.dependentProps)for(a=0;a<c.dependentProps.length;a++){var v=c.dependentPropsDefVal[a],g=c.dependentPropsVals[a];if(g.length>b)g=g.slice(0,b);else for(var t=
-g.length;t<b;t++)g.push(v);g=g.join(",");u.setCellStyles(c.dependentProps[a],g,u.getSelectionCells());d.push(c.dependentProps[a]);k.push(g)}if("function"==typeof c.onChange)c.onChange(u,b);l.editorUi.fireEvent(new mxEventObject("styleChanged","keys",d,"values",k,"cells",u.getSelectionCells()))}finally{u.getModel().endUpdate()}}function d(b,c,f){var d=mxUtils.getOffset(a,!0),k=mxUtils.getOffset(b,!0);c.style.position="absolute";c.style.left=k.x-d.x+"px";c.style.top=k.y-d.y+"px";c.style.width=b.offsetWidth+
-"px";c.style.height=b.offsetHeight-(f?4:0)+"px";c.style.zIndex=5}function k(a,b,c){var d=document.createElement("div");d.style.width="32px";d.style.height="4px";d.style.margin="2px";d.style.border="1px solid black";d.style.background=b&&"none"!=b?b:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(l,function(k){this.editorUi.pickColor(b,function(b){d.style.background="none"==b?"url('"+Dialog.prototype.noColorImage+"')":b;f(a,b,c)});mxEvent.consume(k)}));btn.style.height=
-"12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(d);return btn}function p(a,b,c,d,k,p,e){null!=b&&(b=b.split(","),t.push({name:a,values:b,type:c,defVal:d,countProperty:k,parentRow:p,isDeletable:!0,flipBkg:e}));btn=mxUtils.button("+",mxUtils.bind(l,function(b){for(var v=p,l=0;null!=v.nextSibling;)if(v.nextSibling.getAttribute("data-pName")==a)v=v.nextSibling,l++;else break;var u={type:c,parentRow:p,index:l,isDeletable:!0,defVal:d,countProperty:k},l=g(a,"",u,0==l%2,e);f(a,d,
-u);v.parentNode.insertBefore(l,v.nextSibling);mxEvent.consume(b)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function e(a,b,c,f,d,k,p){if(0<d){var e=Array(d);b=null!=b?b.split(","):[];for(var v=0;v<d;v++)e[v]=null!=b[v]?b[v]:null!=f?f:"";t.push({name:a,values:e,type:c,defVal:f,parentRow:k,flipBkg:p,size:d})}return document.createElement("div")}function v(a,b,c){var d=document.createElement("input");d.type="checkbox";d.checked="1"==b;mxEvent.addListener(d,
-"change",function(){f(a,d.checked?"1":"0",c)});return d}function g(b,c,g,u,t){var y=g.dispName,m=g.type,x=document.createElement("tr");x.className="gePropRow"+(t?"Dark":"")+(u?"Alt":"")+" gePropNonHeaderRow";x.setAttribute("data-pName",b);x.setAttribute("data-pValue",c);u=!1;null!=g.index&&(x.setAttribute("data-index",g.index),y=(null!=y?y:"")+"["+g.index+"]",u=!0);var B=document.createElement("td");B.className="gePropRowCell";B.innerHTML=mxUtils.htmlEntities(mxResources.get(y,null,y));u&&(B.style.textAlign=
-"right");x.appendChild(B);B=document.createElement("td");B.className="gePropRowCell";if("color"==m)B.appendChild(k(b,c,g));else if("bool"==m||"boolean"==m)B.appendChild(v(b,c,g));else if("enum"==m){var n=g.enumList;for(t=0;t<n.length;t++)if(y=n[t],y.val==c){B.innerHTML=mxUtils.htmlEntities(mxResources.get(y.dispName,null,y.dispName));break}mxEvent.addListener(B,"click",mxUtils.bind(l,function(){var k=document.createElement("select");d(B,k);for(var p=0;p<n.length;p++){var e=n[p],v=document.createElement("option");
-v.value=mxUtils.htmlEntities(e.val);v.innerHTML=mxUtils.htmlEntities(mxResources.get(e.dispName,null,e.dispName));k.appendChild(v)}k.value=c;a.appendChild(k);mxEvent.addListener(k,"change",function(){var a=mxUtils.htmlEntities(k.value);f(b,a,g)});k.focus();mxEvent.addListener(k,"blur",function(){a.removeChild(k)})}))}else"dynamicArr"==m?B.appendChild(p(b,c,g.subType,g.subDefVal,g.countProperty,x,t)):"staticArr"==m?B.appendChild(e(b,c,g.subType,g.subDefVal,g.size,x,t)):(B.innerHTML=c,mxEvent.addListener(B,
-"click",mxUtils.bind(l,function(){function k(){var a=p.value,a=0==a.length&&"string"!=m?0:a;g.allowAuto&&("auto"==a.trim().toLowerCase()?(a="auto",m="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=g.min&&a<g.min?a=g.min:null!=g.max&&a>g.max&&(a=g.max);a=mxUtils.htmlEntities(("int"==m?parseInt(a):a)+"");f(b,a,g)}var p=document.createElement("input");d(B,p,!0);p.value=c;p.className="gePropEditor";"int"!=m&&"float"!=m||g.allowAuto||(p.type="number",p.step="int"==m?"1":"any",null!=g.min&&(p.min=parseFloat(g.min)),
-null!=g.max&&(p.max=parseFloat(g.max)));a.appendChild(p);mxEvent.addListener(p,"keypress",function(a){13==a.keyCode&&k()});p.focus();mxEvent.addListener(p,"blur",function(){k()})})));g.isDeletable&&(t=mxUtils.button("-",mxUtils.bind(l,function(a){f(b,"",g,g.index);mxEvent.consume(a)})),t.style.height="16px",t.style.width="25px",t.style["float"]="right",t.className="geColorBtn",B.appendChild(t));x.appendChild(B);return x}var l=this,u=this.editorUi.editor.graph,t=[];a.style.position="relative";a.style.padding=
-"0";var m=document.createElement("table");m.style.whiteSpace="nowrap";m.style.width="100%";var y=document.createElement("tr");y.className="gePropHeader";var x=document.createElement("th");x.className="gePropHeaderCell";var B=document.createElement("img");B.src=Sidebar.prototype.expandedImage;x.appendChild(B);mxUtils.write(x,mxResources.get("property"));y.style.cursor="pointer";var n=function(){var b=m.querySelectorAll(".gePropNonHeaderRow"),c;if(l.editorUi.propertiesCollapsed){B.src=Sidebar.prototype.collapsedImage;
-c="none";for(var f=a.childNodes.length-1;0<=f;f--)try{var d=a.childNodes[f],k=d.nodeName.toUpperCase();"INPUT"!=k&&"SELECT"!=k||a.removeChild(d)}catch(da){}}else B.src=Sidebar.prototype.expandedImage,c="";for(f=0;f<b.length;f++)b[f].style.display=c};mxEvent.addListener(y,"click",function(){l.editorUi.propertiesCollapsed=!l.editorUi.propertiesCollapsed;n()});y.appendChild(x);x=document.createElement("th");x.className="gePropHeaderCell";x.innerHTML=mxResources.get("value");y.appendChild(x);m.appendChild(y);
-var z=!1,A=!1,D;for(D in b)if(y=b[D],"function"!=typeof y.isVisible||y.isVisible(c)){var q=null!=c.style[D]?mxUtils.htmlEntities(c.style[D]+""):y.defVal;if("separator"==y.type)A=!A;else{if("staticArr"==y.type)y.size=parseInt(c.style[y.sizeProperty]||b[y.sizeProperty].defVal)||0;else if(null!=y.dependentProps){for(var H=y.dependentProps,E=[],I=[],x=0;x<H.length;x++){var L=c.style[H[x]];I.push(b[H[x]].subDefVal);E.push(null!=L?L.split(","):[])}y.dependentPropsDefVal=I;y.dependentPropsVals=E}m.appendChild(g(D,
-q,y,z,A));z=!z}}for(x=0;x<t.length;x++)for(y=t[x],b=y.parentRow,c=0;c<y.values.length;c++)D=g(y.name,y.values[c],{type:y.type,parentRow:y.parentRow,isDeletable:y.isDeletable,index:c,defVal:y.defVal,countProperty:y.countProperty,size:y.size},0==c%2,y.flipBkg),b.parentNode.insertBefore(D,b.nextSibling),b=D;a.appendChild(m);n();return a};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function b(a){var b=mxUtils.button("",function(b){f.getModel().beginUpdate();try{var c=f.getSelectionCells();
-for(b=0;b<c.length;b++){for(var d=f.getModel().getStyle(c[b]),p=0;p<k.length;p++)d=mxUtils.removeStylename(d,k[p]);var e=f.getModel().isVertex(c[b])?f.defaultVertexStyle:f.defaultEdgeStyle;null!=a?(d=mxUtils.setStyle(d,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(e,mxConstants.STYLE_GRADIENTCOLOR,null)),d=""==a.fill?mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(e,mxConstants.STYLE_FILLCOLOR,null)),d=""==
-a.stroke?mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,null)),f.getModel().isVertex(c[b])&&(d=mxUtils.setStyle(d,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(e,mxConstants.STYLE_FONTCOLOR,null)))):(d=mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(e,mxConstants.STYLE_FILLCOLOR,"#ffffff")),d=mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(e,
+this.format.createSelectionState();"image"==a.style.shape||a.containsLabel||this.container.appendChild(this.addStyles(this.createPanel()));f.apply(this,arguments);if(Editor.enableCustomProperties){for(var b={},c=a.vertices,d=a.edges,k=0;k<c.length;k++)this.findCommonProperties(c[k],b,0==k);for(k=0;k<d.length;k++)this.findCommonProperties(d[k],b,0==c.length&&0==k);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(b).length&&this.container.appendChild(this.addProperties(this.createPanel(),
+b,a))}};var k=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var b=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));b.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";b.style.marginRight="2px";a.appendChild(b);b=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,
+function(a){this.editorUi.actions.get("pasteStyle").funct()}));b.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";a.appendChild(b);mxUtils.br(a);return k.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,b,c){function f(a,b,c,f){u.getModel().beginUpdate();try{var d=[],k=[];if(null!=c.index){for(var p=[],e=c.parentRow.nextSibling;e&&
+e.getAttribute("data-pName")==a;)p.push(e.getAttribute("data-pValue")),e=e.nextSibling;c.index<p.length?null!=f?p.splice(f,1):p[c.index]=b:p.push(b);null!=c.size&&p.length>c.size&&(p=p.slice(0,c.size));b=p.join(",");null!=c.countProperty&&(u.setCellStyles(c.countProperty,p.length,u.getSelectionCells()),d.push(c.countProperty),k.push(p.length))}u.setCellStyles(a,b,u.getSelectionCells());d.push(a);k.push(b);if(null!=c.dependentProps)for(a=0;a<c.dependentProps.length;a++){var v=c.dependentPropsDefVal[a],
+g=c.dependentPropsVals[a];if(g.length>b)g=g.slice(0,b);else for(var t=g.length;t<b;t++)g.push(v);g=g.join(",");u.setCellStyles(c.dependentProps[a],g,u.getSelectionCells());d.push(c.dependentProps[a]);k.push(g)}if("function"==typeof c.onChange)c.onChange(u,b);l.editorUi.fireEvent(new mxEventObject("styleChanged","keys",d,"values",k,"cells",u.getSelectionCells()))}finally{u.getModel().endUpdate()}}function d(b,c,f){var d=mxUtils.getOffset(a,!0),k=mxUtils.getOffset(b,!0);c.style.position="absolute";
+c.style.left=k.x-d.x+"px";c.style.top=k.y-d.y+"px";c.style.width=b.offsetWidth+"px";c.style.height=b.offsetHeight-(f?4:0)+"px";c.style.zIndex=5}function k(a,b,c){var d=document.createElement("div");d.style.width="32px";d.style.height="4px";d.style.margin="2px";d.style.border="1px solid black";d.style.background=b&&"none"!=b?b:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(l,function(k){this.editorUi.pickColor(b,function(b){d.style.background="none"==b?"url('"+Dialog.prototype.noColorImage+
+"')":b;f(a,b,c)});mxEvent.consume(k)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(d);return btn}function p(a,b,c,d,k,p,e){null!=b&&(b=b.split(","),t.push({name:a,values:b,type:c,defVal:d,countProperty:k,parentRow:p,isDeletable:!0,flipBkg:e}));btn=mxUtils.button("+",mxUtils.bind(l,function(b){for(var v=p,l=0;null!=v.nextSibling;)if(v.nextSibling.getAttribute("data-pName")==a)v=v.nextSibling,l++;else break;var u={type:c,parentRow:p,index:l,isDeletable:!0,
+defVal:d,countProperty:k},l=g(a,"",u,0==l%2,e);f(a,d,u);v.parentNode.insertBefore(l,v.nextSibling);mxEvent.consume(b)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function e(a,b,c,f,d,k,p){if(0<d){var e=Array(d);b=null!=b?b.split(","):[];for(var v=0;v<d;v++)e[v]=null!=b[v]?b[v]:null!=f?f:"";t.push({name:a,values:e,type:c,defVal:f,parentRow:k,flipBkg:p,size:d})}return document.createElement("div")}function v(a,b,c){var d=document.createElement("input");d.type=
+"checkbox";d.checked="1"==b;mxEvent.addListener(d,"change",function(){f(a,d.checked?"1":"0",c)});return d}function g(b,c,g,u,t){var y=g.dispName,m=g.type,x=document.createElement("tr");x.className="gePropRow"+(t?"Dark":"")+(u?"Alt":"")+" gePropNonHeaderRow";x.setAttribute("data-pName",b);x.setAttribute("data-pValue",c);u=!1;null!=g.index&&(x.setAttribute("data-index",g.index),y=(null!=y?y:"")+"["+g.index+"]",u=!0);var B=document.createElement("td");B.className="gePropRowCell";B.innerHTML=mxUtils.htmlEntities(mxResources.get(y,
+null,y));u&&(B.style.textAlign="right");x.appendChild(B);B=document.createElement("td");B.className="gePropRowCell";if("color"==m)B.appendChild(k(b,c,g));else if("bool"==m||"boolean"==m)B.appendChild(v(b,c,g));else if("enum"==m){var n=g.enumList;for(t=0;t<n.length;t++)if(y=n[t],y.val==c){B.innerHTML=mxUtils.htmlEntities(mxResources.get(y.dispName,null,y.dispName));break}mxEvent.addListener(B,"click",mxUtils.bind(l,function(){var k=document.createElement("select");d(B,k);for(var p=0;p<n.length;p++){var e=
+n[p],v=document.createElement("option");v.value=mxUtils.htmlEntities(e.val);v.innerHTML=mxUtils.htmlEntities(mxResources.get(e.dispName,null,e.dispName));k.appendChild(v)}k.value=c;a.appendChild(k);mxEvent.addListener(k,"change",function(){var a=mxUtils.htmlEntities(k.value);f(b,a,g)});k.focus();mxEvent.addListener(k,"blur",function(){a.removeChild(k)})}))}else"dynamicArr"==m?B.appendChild(p(b,c,g.subType,g.subDefVal,g.countProperty,x,t)):"staticArr"==m?B.appendChild(e(b,c,g.subType,g.subDefVal,g.size,
+x,t)):(B.innerHTML=c,mxEvent.addListener(B,"click",mxUtils.bind(l,function(){function k(){var a=p.value,a=0==a.length&&"string"!=m?0:a;g.allowAuto&&("auto"==a.trim().toLowerCase()?(a="auto",m="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=g.min&&a<g.min?a=g.min:null!=g.max&&a>g.max&&(a=g.max);a=mxUtils.htmlEntities(("int"==m?parseInt(a):a)+"");f(b,a,g)}var p=document.createElement("input");d(B,p,!0);p.value=c;p.className="gePropEditor";"int"!=m&&"float"!=m||g.allowAuto||(p.type="number",p.step=
+"int"==m?"1":"any",null!=g.min&&(p.min=parseFloat(g.min)),null!=g.max&&(p.max=parseFloat(g.max)));a.appendChild(p);mxEvent.addListener(p,"keypress",function(a){13==a.keyCode&&k()});p.focus();mxEvent.addListener(p,"blur",function(){k()})})));g.isDeletable&&(t=mxUtils.button("-",mxUtils.bind(l,function(a){f(b,"",g,g.index);mxEvent.consume(a)})),t.style.height="16px",t.style.width="25px",t.style["float"]="right",t.className="geColorBtn",B.appendChild(t));x.appendChild(B);return x}var l=this,u=this.editorUi.editor.graph,
+t=[];a.style.position="relative";a.style.padding="0";var m=document.createElement("table");m.style.whiteSpace="nowrap";m.style.width="100%";var y=document.createElement("tr");y.className="gePropHeader";var x=document.createElement("th");x.className="gePropHeaderCell";var B=document.createElement("img");B.src=Sidebar.prototype.expandedImage;x.appendChild(B);mxUtils.write(x,mxResources.get("property"));y.style.cursor="pointer";var n=function(){var b=m.querySelectorAll(".gePropNonHeaderRow"),c;if(l.editorUi.propertiesCollapsed){B.src=
+Sidebar.prototype.collapsedImage;c="none";for(var f=a.childNodes.length-1;0<=f;f--)try{var d=a.childNodes[f],k=d.nodeName.toUpperCase();"INPUT"!=k&&"SELECT"!=k||a.removeChild(d)}catch(da){}}else B.src=Sidebar.prototype.expandedImage,c="";for(f=0;f<b.length;f++)b[f].style.display=c};mxEvent.addListener(y,"click",function(){l.editorUi.propertiesCollapsed=!l.editorUi.propertiesCollapsed;n()});y.appendChild(x);x=document.createElement("th");x.className="gePropHeaderCell";x.innerHTML=mxResources.get("value");
+y.appendChild(x);m.appendChild(y);var z=!1,A=!1,D;for(D in b)if(y=b[D],"function"!=typeof y.isVisible||y.isVisible(c)){var q=null!=c.style[D]?mxUtils.htmlEntities(c.style[D]+""):y.defVal;if("separator"==y.type)A=!A;else{if("staticArr"==y.type)y.size=parseInt(c.style[y.sizeProperty]||b[y.sizeProperty].defVal)||0;else if(null!=y.dependentProps){for(var H=y.dependentProps,E=[],I=[],x=0;x<H.length;x++){var L=c.style[H[x]];I.push(b[H[x]].subDefVal);E.push(null!=L?L.split(","):[])}y.dependentPropsDefVal=
+I;y.dependentPropsVals=E}m.appendChild(g(D,q,y,z,A));z=!z}}for(x=0;x<t.length;x++)for(y=t[x],b=y.parentRow,c=0;c<y.values.length;c++)D=g(y.name,y.values[c],{type:y.type,parentRow:y.parentRow,isDeletable:y.isDeletable,index:c,defVal:y.defVal,countProperty:y.countProperty,size:y.size},0==c%2,y.flipBkg),b.parentNode.insertBefore(D,b.nextSibling),b=D;a.appendChild(m);n();return a};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function b(a){var b=mxUtils.button("",function(b){f.getModel().beginUpdate();
+try{var c=f.getSelectionCells();for(b=0;b<c.length;b++){for(var d=f.getModel().getStyle(c[b]),p=0;p<k.length;p++)d=mxUtils.removeStylename(d,k[p]);var e=f.getModel().isVertex(c[b])?f.defaultVertexStyle:f.defaultEdgeStyle;null!=a?(d=mxUtils.setStyle(d,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(e,mxConstants.STYLE_GRADIENTCOLOR,null)),d=""==a.fill?mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(e,mxConstants.STYLE_FILLCOLOR,
+null)),d=""==a.stroke?mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,null)),f.getModel().isVertex(c[b])&&(d=mxUtils.setStyle(d,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(e,mxConstants.STYLE_FONTCOLOR,null)))):(d=mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(e,mxConstants.STYLE_FILLCOLOR,"#ffffff")),d=mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(e,
 mxConstants.STYLE_STROKECOLOR,"#000000")),d=mxUtils.setStyle(d,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(e,mxConstants.STYLE_GRADIENTCOLOR,null)),f.getModel().isVertex(c[b])&&(d=mxUtils.setStyle(d,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(e,mxConstants.STYLE_FONTCOLOR,null))));f.getModel().setStyle(c[b],d)}}finally{f.getModel().endUpdate()}});b.className="geStyleButton";b.style.width="36px";b.style.height="30px";b.style.margin="0px 6px 6px 0px";if(null!=a)null!=a.gradient?mxClient.IS_IE&&
 (mxClient.IS_QUIRKS||10>document.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor=""==a.fill?mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"dark"==uiTheme?"#000000":"#ffffff"):a.fill||mxUtils.getValue(f.defaultVertexStyle,
 mxConstants.STYLE_FILLCOLOR,"dark"==uiTheme?"#000000":"#ffffff"),b.style.border=a.stroke==mxConstants.NONE?"1px solid transparent":""==a.stroke?"1px solid "+mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"dark"!=uiTheme?"#000000":"#ffffff"):"1px solid "+(a.stroke||mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"dark"!=uiTheme?"#000000":"#ffffff"));else{var c=mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),p=mxUtils.getValue(f.defaultVertexStyle,
@@ -8229,7 +8230,7 @@ document.createElement("canvas"),H=new Image;H.onload=function(){try{D.getContex
 var ErrorDialog=function(a,c,b,d,g,e,l,m,n,q,f){n=null!=n?n:!0;var k=document.createElement("div");k.style.textAlign="center";if(null!=c){var p=document.createElement("div");p.style.padding="0px";p.style.margin="0px";p.style.fontSize="18px";p.style.paddingBottom="16px";p.style.marginBottom="10px";p.style.borderBottom="1px solid #c0c0c0";p.style.color="gray";p.style.whiteSpace="nowrap";p.style.textOverflow="ellipsis";p.style.overflow="hidden";mxUtils.write(p,c);p.setAttribute("title",c);k.appendChild(p)}c=
 document.createElement("div");c.style.lineHeight="1.2em";c.style.padding="6px";c.innerHTML=b;k.appendChild(c);b=document.createElement("div");b.style.marginTop="12px";b.style.textAlign="center";null!=e&&(c=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();e()}),c.className="geBtn",b.appendChild(c),b.style.textAlign="center");null!=q&&(q=mxUtils.button(q,function(){null!=f&&f()}),q.className="geBtn",b.appendChild(q));var u=mxUtils.button(d,function(){n&&a.hideDialog();null!=g&&g()});
 u.className="geBtn";b.appendChild(u);null!=l&&(d=mxUtils.button(l,function(){n&&a.hideDialog();null!=m&&m()}),d.className="geBtn gePrimaryBtn",b.appendChild(d));this.init=function(){u.focus()};k.appendChild(b);this.container=k};
-(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,b,d){d.ui=a.ui;return b};a.afterDecode=function(a,b,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="10.5.8";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging="1"!=urlParams.stealth&&/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost="https://www.draw.io";EditorUi.lastErrorMessage=null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.logError=function(a,b,c,d,e){if("1"==urlParams.dev)EditorUi.debug("logError",a,b,c,d,e);else if(EditorUi.enableLogging)try{if(a!=
+(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,b,d){d.ui=a.ui;return b};a.afterDecode=function(a,b,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="10.5.9";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging="1"!=urlParams.stealth&&/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost="https://www.draw.io";EditorUi.lastErrorMessage=null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.logError=function(a,b,c,d,e){if("1"==urlParams.dev)EditorUi.debug("logError",a,b,c,d,e);else if(EditorUi.enableLogging)try{if(a!=
 EditorUi.lastErrorMessage&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=a;var f=0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE",k=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";e=null!=e?e:Error(a);(new Image).src=k+"/log?severity="+f+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+
 encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(c)+(null!=d?":colno:"+encodeURIComponent(d):"")+(null!=e&&null!=e.stack?"&stack="+encodeURIComponent(e.stack):"")}}catch(z){}};EditorUi.logEvent=function(a){if("1"==urlParams.dev)EditorUi.debug("logEvent",a);else if(EditorUi.enableLogging)try{var b=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=b+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):
 "")}catch(p){}};EditorUi.sendReport=function(a,b){if("1"==urlParams.dev)EditorUi.debug("sendReport",a);else if(EditorUi.enableLogging)try{b=null!=b?b:5E4,a.length>b&&(a=a.substring(0,b)+"\n...[SHORTENED]"),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(a))}catch(p){}};EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.dev){for(var a=[(new Date).toISOString()],b=0;b<arguments.length;b++)a.push(arguments[b]);
diff --git a/src/main/webapp/js/diagramly/DrawioFile.js b/src/main/webapp/js/diagramly/DrawioFile.js
index eae4e9fda12b632afd8c512d01420b8b884b0eb8..44498f8731fd8ba59191aef637fe57f5ab8c404d 100644
--- a/src/main/webapp/js/diagramly/DrawioFile.js
+++ b/src/main/webapp/js/diagramly/DrawioFile.js
@@ -1236,6 +1236,8 @@ DrawioFile.prototype.installListeners = function()
 		this.ui.addListener('gridEnabledChanged', this.changeListener);
 		this.ui.addListener('guidesEnabledChanged', this.changeListener);
 		this.ui.addListener('pageViewChanged', this.changeListener);
+		this.ui.addListener('connectionPointsChanged', this.changeListener);
+		this.ui.addListener('connectionArrowsChanged', this.changeListener);
 	}
 };
 
diff --git a/src/main/webapp/js/diagramly/Editor.js b/src/main/webapp/js/diagramly/Editor.js
index 9fbc44d3f791e734e1dee51b2c244dcc3b186309..3e397c09e78334f3f82b7a4ada3fa20f6a78428a 100644
--- a/src/main/webapp/js/diagramly/Editor.js
+++ b/src/main/webapp/js/diagramly/Editor.js
@@ -2441,7 +2441,7 @@
 			// TODO: Update sstate in Format
 			var sstate = this.format.createSelectionState();
 
-			if (sstate.style.shape != 'image')
+			if (sstate.style.shape != 'image' && !sstate.containsLabel)
 			{
 				this.container.appendChild(this.addStyles(this.createPanel()));
 			}
diff --git a/src/main/webapp/js/diagramly/EditorUi.js b/src/main/webapp/js/diagramly/EditorUi.js
index f7f9bdf82cc8f9f464e5558f320db0da267e7169..bb9775293d91f8725e6620a338a7db8d44d473c7 100644
--- a/src/main/webapp/js/diagramly/EditorUi.js
+++ b/src/main/webapp/js/diagramly/EditorUi.js
@@ -12191,7 +12191,8 @@ var CommentsWindow = function(editorUi, x, y, w, h, saveCallback)
 {
 	var readOnly = !editorUi.canComment();
 	var canReplyToReplies = editorUi.canReplyToReplies();
-	
+	var curEdited = null;
+		
 	var div = document.createElement('div');
 	div.className = 'geCommentsWin';
 	div.style.background = (Dialog.backdropColor == 'white') ? 'whiteSmoke' : Dialog.backdropColor;
@@ -12248,13 +12249,15 @@ var CommentsWindow = function(editorUi, x, y, w, h, saveCallback)
 	
 	function editComment(comment, cdiv, saveCallback, deleteOnCancel)
 	{
+		curEdited = {div: cdiv, comment: comment, saveCallback: saveCallback, deleteOnCancel: deleteOnCancel};
+		
 		var commentTxt = cdiv.querySelector('.geCommentTxt');
 		var actionsDiv = cdiv.querySelector('.geCommentActionsList');
 		
 		var textArea = document.createElement('textarea');
 		textArea.className = 'geCommentEditTxtArea';
 		textArea.style.minHeight = commentTxt.offsetHeight + 'px';
-		textArea.value = commentTxt.innerHTML;
+		textArea.value = comment.content;
 		cdiv.insertBefore(textArea, commentTxt);
 		
 		var btnDiv = document.createElement('div');
@@ -12279,6 +12282,8 @@ var CommentsWindow = function(editorUi, x, y, w, h, saveCallback)
 			{
 				reset();
 			}
+			
+			curEdited = null;
 		});
 		
 		cancelBtn.className = 'geCommentEditBtn';
@@ -12291,6 +12296,7 @@ var CommentsWindow = function(editorUi, x, y, w, h, saveCallback)
 			mxUtils.write(commentTxt, comment.content);
 			reset();
 			saveCallback(comment);
+			curEdited = null;
 		});
 		
 		// Updates modified state and handles placeholder text
@@ -12648,6 +12654,22 @@ var CommentsWindow = function(editorUi, x, y, w, h, saveCallback)
 			addComment(reply, comment.replies, null, level + 1, showResolved);
 		}
 		
+		if (curEdited != null)
+		{
+			if (curEdited.comment.id == comment.id)
+			{
+				var origContent = comment.content;
+				comment.content = curEdited.comment.content;
+				editComment(comment, cdiv, curEdited.saveCallback, curEdited.deleteOnCancel);
+				comment.content = origContent;
+			}
+			else if (curEdited.comment.id == null && curEdited.comment.pCommentId == comment.id)
+			{
+				listDiv.appendChild(curEdited.div);
+				editComment(curEdited.comment, curEdited.div, curEdited.saveCallback, curEdited.deleteOnCancel);
+			}
+		}
+
 		return cdiv;
 	};
 
@@ -12764,6 +12786,17 @@ var CommentsWindow = function(editorUi, x, y, w, h, saveCallback)
 
 	var refresh = mxUtils.bind(this, function()
 	{
+		if (curEdited != null)
+		{
+			curEdited.div = curEdited.div.cloneNode(true);
+			var commentEditTxt = curEdited.div.querySelector('.geCommentEditTxtArea');
+			var commentEditBtns = curEdited.div.querySelector('.geCommentEditBtns');
+			
+			curEdited.comment.content = commentEditTxt.value;
+			commentEditTxt.parentNode.removeChild(commentEditTxt);
+			commentEditBtns.parentNode.removeChild(commentEditBtns);
+		}
+		
 		listDiv.innerHTML = '<div style="padding-top:10px;text-align:center;"><img src="/images/spin.gif" valign="middle"> ' +
 			mxUtils.htmlEntities(mxResources.get('loading')) + '...</div>';
 		
@@ -12806,6 +12839,14 @@ var CommentsWindow = function(editorUi, x, y, w, h, saveCallback)
 					sortReplies(comments[i].replies);
 					addComment(comments[i], comments, null, 0, resolvedChecked);
 				}
+				
+				//New comment case
+				if (curEdited != null && curEdited.comment.id == null && curEdited.comment.pCommentId == null)
+				{
+					listDiv.appendChild(curEdited.div);
+					editComment(curEdited.comment, curEdited.div, curEdited.saveCallback, curEdited.deleteOnCancel);
+				}
+				
 			}, function()
 			{
 				listDiv.innerHTML = mxUtils.htmlEntities(mxResources.get('error'));
diff --git a/src/main/webapp/js/diagramly/sidebar/Sidebar-AWS4.js b/src/main/webapp/js/diagramly/sidebar/Sidebar-AWS4.js
index 4bde1df70dea0ecfee7308b1c1f4a9fa070bad67..4a99b9a5d683aa6a8791cd58a20fafa97e2bf4b5 100644
--- a/src/main/webapp/js/diagramly/sidebar/Sidebar-AWS4.js
+++ b/src/main/webapp/js/diagramly/sidebar/Sidebar-AWS4.js
@@ -956,8 +956,6 @@
 					 w2, w2, '', 'Elemental MediaConvert', null, null, this.getTagsForStencil(gn, 'elemental mediaconvert', dt).join(' ')),
 			 this.createVertexTemplateEntry(n2 + 'resourceIcon;resIcon=' + gn + '.elemental_medialive;',
 					 w2, w2, '', 'Elemental MediaLive', null, null, this.getTagsForStencil(gn, 'elemental medialive', dt).join(' ')),
-			 this.createVertexTemplateEntry(n2 + 'resourceIcon;resIcon=' + gn + '.elemental_medialive;',
-					 w2, w2, '', 'Elemental MediaLive', null, null, this.getTagsForStencil(gn, 'elemental medialive', dt).join(' ')),
 			 this.createVertexTemplateEntry(n2 + 'resourceIcon;resIcon=' + gn + '.elemental_mediapackage;',
 					 w2, w2, '', 'Elemental MediaPackage', null, null, this.getTagsForStencil(gn, 'elemental mediapackage', dt).join(' ')),
 			 this.createVertexTemplateEntry(n2 + 'resourceIcon;resIcon=' + gn + '.elemental_mediastore;',
diff --git a/src/main/webapp/js/mxgraph/EditorUi.js b/src/main/webapp/js/mxgraph/EditorUi.js
index 0fb079044dcf859e527b08439f0808024cf013e2..aa170d62304a885b8540ddc5c21d61fbc6583e1f 100644
--- a/src/main/webapp/js/mxgraph/EditorUi.js
+++ b/src/main/webapp/js/mxgraph/EditorUi.js
@@ -2105,13 +2105,13 @@ EditorUi.prototype.initCanvas = function()
 					graph.lazyZoom(up);
 					mxEvent.consume(evt);
 			
-					return;
+					return false;
 				}
 				
 				source = source.parentNode;
 			}
 		}
-	}));
+	}), graph.container);
 };
 
 /**
diff --git a/src/main/webapp/js/mxgraph/Format.js b/src/main/webapp/js/mxgraph/Format.js
index 4263d000ca543448a5d1d3b9f5632ec55647b3ff..5adf1f1bb0a2f2075ea18290c458be162c523c79 100644
--- a/src/main/webapp/js/mxgraph/Format.js
+++ b/src/main/webapp/js/mxgraph/Format.js
@@ -1492,6 +1492,20 @@ ArrangePanel.prototype.init = function()
 	}
 	
 	this.container.appendChild(this.addGroupOps(this.createPanel()));
+
+	if (ss.containsLabel)
+	{
+		// Adds functions from hidden style format panel
+		var span = document.createElement('div');
+		span.style.width = '100%';
+		span.style.marginTop = '0px';
+		span.style.fontWeight = 'bold';
+		span.style.padding = '10px 0 0 18px';
+		mxUtils.write(span, mxResources.get('style'));
+		this.container.appendChild(span);
+			
+		new StyleFormatPanel(this.format, this.editorUi, this.container);
+	}
 };
 
 /**
@@ -3868,24 +3882,28 @@ StyleFormatPanel.prototype.init = function()
 	var graph = editor.graph;
 	var ss = this.format.getSelectionState();
 	
-	if (ss.containsImage && ss.vertices.length == 1 && ss.style.shape == 'image' &&
-		ss.style.image != null && ss.style.image.substring(0, 19) == 'data:image/svg+xml;')
+	if (!ss.containsLabel)
 	{
-		this.container.appendChild(this.addSvgStyles(this.createPanel()));
-	}
+		if (ss.containsImage && ss.vertices.length == 1 && ss.style.shape == 'image' &&
+			ss.style.image != null && ss.style.image.substring(0, 19) == 'data:image/svg+xml;')
+		{
+			this.container.appendChild(this.addSvgStyles(this.createPanel()));
+		}
+		
+		if (!ss.containsImage || ss.style.shape == 'image')
+		{
+			this.container.appendChild(this.addFill(this.createPanel()));
+		}
 	
-	if (!ss.containsImage || ss.style.shape == 'image')
-	{
-		this.container.appendChild(this.addFill(this.createPanel()));
+		this.container.appendChild(this.addStroke(this.createPanel()));
+		this.container.appendChild(this.addLineJumps(this.createPanel()));
+		var opacityPanel = this.createRelativeOption(mxResources.get('opacity'), mxConstants.STYLE_OPACITY, 41);
+		opacityPanel.style.paddingTop = '8px';
+		opacityPanel.style.paddingBottom = '8px';
+		this.container.appendChild(opacityPanel);
+		this.container.appendChild(this.addEffects(this.createPanel()));
 	}
-
-	this.container.appendChild(this.addStroke(this.createPanel()));
-	this.container.appendChild(this.addLineJumps(this.createPanel()));
-	var opacityPanel = this.createRelativeOption(mxResources.get('opacity'), mxConstants.STYLE_OPACITY, 41);
-	opacityPanel.style.paddingTop = '8px';
-	opacityPanel.style.paddingBottom = '8px';
-	this.container.appendChild(opacityPanel);
-	this.container.appendChild(this.addEffects(this.createPanel()));
+	
 	var opsPanel = this.addEditOps(this.createPanel());
 	
 	if (opsPanel.firstChild != null)
diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js
index e3e067ee5c67a2e97fcb4608e6eff28fd1ba77b2..f1cd10824101222287ff07a0c3dea817dcea3a98 100644
--- a/src/main/webapp/js/viewer.min.js
+++ b/src/main/webapp/js/viewer.min.js
@@ -225,17 +225,17 @@ var mxEvent={addListener:function(){return window.addEventListener?function(a,b,
 a.mxListenerList.length&&(a.mxListenerList=null)}};return window.removeEventListener?function(b,c,d){b.removeEventListener(c,d,!1);a(b,c,d)}:function(b,c,d){b.detachEvent("on"+c,d);a(b,c,d)}}(),removeAllListeners:function(a){var b=a.mxListenerList;if(null!=b)for(;0<b.length;){var c=b[0];mxEvent.removeListener(a,c.name,c.f)}},addGestureListeners:function(a,b,c,d){null!=b&&mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",b);null!=c&&mxEvent.addListener(a,mxClient.IS_POINTER?"pointermove":
 "mousemove",c);null!=d&&mxEvent.addListener(a,mxClient.IS_POINTER?"pointerup":"mouseup",d);!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&(null!=b&&mxEvent.addListener(a,"touchstart",b),null!=c&&mxEvent.addListener(a,"touchmove",c),null!=d&&mxEvent.addListener(a,"touchend",d))},removeGestureListeners:function(a,b,c,d){null!=b&&mxEvent.removeListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",b);null!=c&&mxEvent.removeListener(a,mxClient.IS_POINTER?"pointermove":"mousemove",c);null!=d&&mxEvent.removeListener(a,
 mxClient.IS_POINTER?"pointerup":"mouseup",d);!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&(null!=b&&mxEvent.removeListener(a,"touchstart",b),null!=c&&mxEvent.removeListener(a,"touchmove",c),null!=d&&mxEvent.removeListener(a,"touchend",d))},redirectMouseEvents:function(a,b,c,d,e,f,g){var k=function(a){return"function"==typeof c?c(a):c};mxEvent.addGestureListeners(a,function(a){null!=d?d(a):mxEvent.isConsumed(a)||b.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(a,k(a)))},function(a){null!=e?e(a):mxEvent.isConsumed(a)||
-b.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a,k(a)))},function(a){null!=f?f(a):mxEvent.isConsumed(a)||b.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(a,k(a)))});mxEvent.addListener(a,"dblclick",function(a){if(null!=g)g(a);else if(!mxEvent.isConsumed(a)){var c=k(a);b.dblClick(a,null!=c?c.cell:null)}})},release:function(a){try{if(null!=a){mxEvent.removeAllListeners(a);var b=a.childNodes;if(null!=b){var c=b.length;for(a=0;a<c;a+=1)mxEvent.release(b[a])}}}catch(d){}},addMouseWheelListener:function(a){if(null!=
-a){var b=function(b){null==b&&(b=window.event);var c;c=mxClient.IS_FF?-b.detail/2:b.wheelDelta/120;0!=c&&a(b,0<c)};mxClient.IS_NS&&null==document.documentMode?mxEvent.addListener(window,mxClient.IS_SF||mxClient.IS_GC?"mousewheel":"DOMMouseScroll",b):mxEvent.addListener(document,"mousewheel",b)}},disableContextMenu:function(a){mxEvent.addListener(a,"contextmenu",function(a){a.preventDefault&&a.preventDefault();return!1})},getSource:function(a){return null!=a.srcElement?a.srcElement:a.target},isConsumed:function(a){return null!=
-a.isConsumed&&a.isConsumed},isTouchEvent:function(a){return null!=a.pointerType?"touch"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_TOUCH:null!=a.mozInputSource?5==a.mozInputSource:0==a.type.indexOf("touch")},isPenEvent:function(a){return null!=a.pointerType?"pen"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_PEN:null!=a.mozInputSource?2==a.mozInputSource:0==a.type.indexOf("pen")},isMultiTouchEvent:function(a){return null!=a.type&&0==a.type.indexOf("touch")&&null!=a.touches&&1<a.touches.length},
-isMouseEvent:function(a){return null!=a.pointerType?"mouse"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_MOUSE:null!=a.mozInputSource?1==a.mozInputSource:0==a.type.indexOf("mouse")},isLeftMouseButton:function(a){return"buttons"in a&&("mousedown"==a.type||"mousemove"==a.type)?1==a.buttons:"which"in a?1===a.which:1===a.button},isMiddleMouseButton:function(a){return"which"in a?2===a.which:4===a.button},isRightMouseButton:function(a){return"which"in a?3===a.which:2===a.button},isPopupTrigger:function(a){return mxEvent.isRightMouseButton(a)||
-mxClient.IS_MAC&&mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)&&!mxEvent.isMetaDown(a)&&!mxEvent.isAltDown(a)},isShiftDown:function(a){return null!=a?a.shiftKey:!1},isAltDown:function(a){return null!=a?a.altKey:!1},isControlDown:function(a){return null!=a?a.ctrlKey:!1},isMetaDown:function(a){return null!=a?a.metaKey:!1},getMainEvent:function(a){"touchstart"!=a.type&&"touchmove"!=a.type||null==a.touches||null==a.touches[0]?"touchend"==a.type&&null!=a.changedTouches&&null!=a.changedTouches[0]&&
-(a=a.changedTouches[0]):a=a.touches[0];return a},getClientX:function(a){return mxEvent.getMainEvent(a).clientX},getClientY:function(a){return mxEvent.getMainEvent(a).clientY},consume:function(a,b,c){c=null!=c?c:!0;if(null!=b?b:1)a.preventDefault?(c&&a.stopPropagation(),a.preventDefault()):c&&(a.cancelBubble=!0);a.isConsumed=!0;a.preventDefault||(a.returnValue=!1)},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,CUSTOM_HANDLE:-100,VIRTUAL_HANDLE:-1E5,MOUSE_DOWN:"mouseDown",MOUSE_MOVE:"mouseMove",MOUSE_UP:"mouseUp",
-ACTIVATE:"activate",RESIZE_START:"resizeStart",RESIZE:"resize",RESIZE_END:"resizeEnd",MOVE_START:"moveStart",MOVE:"move",MOVE_END:"moveEnd",PAN_START:"panStart",PAN:"pan",PAN_END:"panEnd",MINIMIZE:"minimize",NORMALIZE:"normalize",MAXIMIZE:"maximize",HIDE:"hide",SHOW:"show",CLOSE:"close",DESTROY:"destroy",REFRESH:"refresh",SIZE:"size",SELECT:"select",FIRED:"fired",FIRE_MOUSE_EVENT:"fireMouseEvent",GESTURE:"gesture",TAP_AND_HOLD:"tapAndHold",GET:"get",RECEIVE:"receive",CONNECT:"connect",DISCONNECT:"disconnect",
-SUSPEND:"suspend",RESUME:"resume",MARK:"mark",ROOT:"root",POST:"post",OPEN:"open",SAVE:"save",BEFORE_ADD_VERTEX:"beforeAddVertex",ADD_VERTEX:"addVertex",AFTER_ADD_VERTEX:"afterAddVertex",DONE:"done",EXECUTE:"execute",EXECUTED:"executed",BEGIN_UPDATE:"beginUpdate",START_EDIT:"startEdit",END_UPDATE:"endUpdate",END_EDIT:"endEdit",BEFORE_UNDO:"beforeUndo",UNDO:"undo",REDO:"redo",CHANGE:"change",NOTIFY:"notify",LAYOUT_CELLS:"layoutCells",CLICK:"click",SCALE:"scale",TRANSLATE:"translate",SCALE_AND_TRANSLATE:"scaleAndTranslate",
-UP:"up",DOWN:"down",ADD:"add",REMOVE:"remove",CLEAR:"clear",ADD_CELLS:"addCells",CELLS_ADDED:"cellsAdded",MOVE_CELLS:"moveCells",CELLS_MOVED:"cellsMoved",RESIZE_CELLS:"resizeCells",CELLS_RESIZED:"cellsResized",TOGGLE_CELLS:"toggleCells",CELLS_TOGGLED:"cellsToggled",ORDER_CELLS:"orderCells",CELLS_ORDERED:"cellsOrdered",REMOVE_CELLS:"removeCells",CELLS_REMOVED:"cellsRemoved",GROUP_CELLS:"groupCells",UNGROUP_CELLS:"ungroupCells",REMOVE_CELLS_FROM_PARENT:"removeCellsFromParent",FOLD_CELLS:"foldCells",
-CELLS_FOLDED:"cellsFolded",ALIGN_CELLS:"alignCells",LABEL_CHANGED:"labelChanged",CONNECT_CELL:"connectCell",CELL_CONNECTED:"cellConnected",SPLIT_EDGE:"splitEdge",FLIP_EDGE:"flipEdge",START_EDITING:"startEditing",EDITING_STARTED:"editingStarted",EDITING_STOPPED:"editingStopped",ADD_OVERLAY:"addOverlay",REMOVE_OVERLAY:"removeOverlay",UPDATE_CELL_SIZE:"updateCellSize",ESCAPE:"escape",DOUBLE_CLICK:"doubleClick",START:"start",RESET:"reset"};
-function mxXmlRequest(a,b,c,d,e,f){this.url=a;this.params=b;this.method=c||"POST";this.async=null!=d?d:!0;this.username=e;this.password=f}mxXmlRequest.prototype.url=null;mxXmlRequest.prototype.params=null;mxXmlRequest.prototype.method=null;mxXmlRequest.prototype.async=null;mxXmlRequest.prototype.binary=!1;mxXmlRequest.prototype.withCredentials=!1;mxXmlRequest.prototype.username=null;mxXmlRequest.prototype.password=null;mxXmlRequest.prototype.request=null;
+b.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a,k(a)))},function(a){null!=f?f(a):mxEvent.isConsumed(a)||b.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(a,k(a)))});mxEvent.addListener(a,"dblclick",function(a){if(null!=g)g(a);else if(!mxEvent.isConsumed(a)){var c=k(a);b.dblClick(a,null!=c?c.cell:null)}})},release:function(a){try{if(null!=a){mxEvent.removeAllListeners(a);var b=a.childNodes;if(null!=b){var c=b.length;for(a=0;a<c;a+=1)mxEvent.release(b[a])}}}catch(d){}},addMouseWheelListener:function(a,
+b){if(null!=a){var c=function(b){null==b&&(b=window.event);var c;c=mxClient.IS_FF?-b.detail/2:b.wheelDelta/120;0!=c&&a(b,0<c)};mxClient.IS_NS&&null==document.documentMode?mxEvent.addListener(mxClient.IS_GC&&null!=b?b:window,mxClient.IS_SF||mxClient.IS_GC?"mousewheel":"DOMMouseScroll",c):mxEvent.addListener(document,"mousewheel",c)}},disableContextMenu:function(a){mxEvent.addListener(a,"contextmenu",function(a){a.preventDefault&&a.preventDefault();return!1})},getSource:function(a){return null!=a.srcElement?
+a.srcElement:a.target},isConsumed:function(a){return null!=a.isConsumed&&a.isConsumed},isTouchEvent:function(a){return null!=a.pointerType?"touch"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_TOUCH:null!=a.mozInputSource?5==a.mozInputSource:0==a.type.indexOf("touch")},isPenEvent:function(a){return null!=a.pointerType?"pen"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_PEN:null!=a.mozInputSource?2==a.mozInputSource:0==a.type.indexOf("pen")},isMultiTouchEvent:function(a){return null!=a.type&&
+0==a.type.indexOf("touch")&&null!=a.touches&&1<a.touches.length},isMouseEvent:function(a){return null!=a.pointerType?"mouse"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_MOUSE:null!=a.mozInputSource?1==a.mozInputSource:0==a.type.indexOf("mouse")},isLeftMouseButton:function(a){return"buttons"in a&&("mousedown"==a.type||"mousemove"==a.type)?1==a.buttons:"which"in a?1===a.which:1===a.button},isMiddleMouseButton:function(a){return"which"in a?2===a.which:4===a.button},isRightMouseButton:function(a){return"which"in
+a?3===a.which:2===a.button},isPopupTrigger:function(a){return mxEvent.isRightMouseButton(a)||mxClient.IS_MAC&&mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)&&!mxEvent.isMetaDown(a)&&!mxEvent.isAltDown(a)},isShiftDown:function(a){return null!=a?a.shiftKey:!1},isAltDown:function(a){return null!=a?a.altKey:!1},isControlDown:function(a){return null!=a?a.ctrlKey:!1},isMetaDown:function(a){return null!=a?a.metaKey:!1},getMainEvent:function(a){"touchstart"!=a.type&&"touchmove"!=a.type||null==a.touches||
+null==a.touches[0]?"touchend"==a.type&&null!=a.changedTouches&&null!=a.changedTouches[0]&&(a=a.changedTouches[0]):a=a.touches[0];return a},getClientX:function(a){return mxEvent.getMainEvent(a).clientX},getClientY:function(a){return mxEvent.getMainEvent(a).clientY},consume:function(a,b,c){c=null!=c?c:!0;if(null!=b?b:1)a.preventDefault?(c&&a.stopPropagation(),a.preventDefault()):c&&(a.cancelBubble=!0);a.isConsumed=!0;a.preventDefault||(a.returnValue=!1)},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,CUSTOM_HANDLE:-100,
+VIRTUAL_HANDLE:-1E5,MOUSE_DOWN:"mouseDown",MOUSE_MOVE:"mouseMove",MOUSE_UP:"mouseUp",ACTIVATE:"activate",RESIZE_START:"resizeStart",RESIZE:"resize",RESIZE_END:"resizeEnd",MOVE_START:"moveStart",MOVE:"move",MOVE_END:"moveEnd",PAN_START:"panStart",PAN:"pan",PAN_END:"panEnd",MINIMIZE:"minimize",NORMALIZE:"normalize",MAXIMIZE:"maximize",HIDE:"hide",SHOW:"show",CLOSE:"close",DESTROY:"destroy",REFRESH:"refresh",SIZE:"size",SELECT:"select",FIRED:"fired",FIRE_MOUSE_EVENT:"fireMouseEvent",GESTURE:"gesture",
+TAP_AND_HOLD:"tapAndHold",GET:"get",RECEIVE:"receive",CONNECT:"connect",DISCONNECT:"disconnect",SUSPEND:"suspend",RESUME:"resume",MARK:"mark",ROOT:"root",POST:"post",OPEN:"open",SAVE:"save",BEFORE_ADD_VERTEX:"beforeAddVertex",ADD_VERTEX:"addVertex",AFTER_ADD_VERTEX:"afterAddVertex",DONE:"done",EXECUTE:"execute",EXECUTED:"executed",BEGIN_UPDATE:"beginUpdate",START_EDIT:"startEdit",END_UPDATE:"endUpdate",END_EDIT:"endEdit",BEFORE_UNDO:"beforeUndo",UNDO:"undo",REDO:"redo",CHANGE:"change",NOTIFY:"notify",
+LAYOUT_CELLS:"layoutCells",CLICK:"click",SCALE:"scale",TRANSLATE:"translate",SCALE_AND_TRANSLATE:"scaleAndTranslate",UP:"up",DOWN:"down",ADD:"add",REMOVE:"remove",CLEAR:"clear",ADD_CELLS:"addCells",CELLS_ADDED:"cellsAdded",MOVE_CELLS:"moveCells",CELLS_MOVED:"cellsMoved",RESIZE_CELLS:"resizeCells",CELLS_RESIZED:"cellsResized",TOGGLE_CELLS:"toggleCells",CELLS_TOGGLED:"cellsToggled",ORDER_CELLS:"orderCells",CELLS_ORDERED:"cellsOrdered",REMOVE_CELLS:"removeCells",CELLS_REMOVED:"cellsRemoved",GROUP_CELLS:"groupCells",
+UNGROUP_CELLS:"ungroupCells",REMOVE_CELLS_FROM_PARENT:"removeCellsFromParent",FOLD_CELLS:"foldCells",CELLS_FOLDED:"cellsFolded",ALIGN_CELLS:"alignCells",LABEL_CHANGED:"labelChanged",CONNECT_CELL:"connectCell",CELL_CONNECTED:"cellConnected",SPLIT_EDGE:"splitEdge",FLIP_EDGE:"flipEdge",START_EDITING:"startEditing",EDITING_STARTED:"editingStarted",EDITING_STOPPED:"editingStopped",ADD_OVERLAY:"addOverlay",REMOVE_OVERLAY:"removeOverlay",UPDATE_CELL_SIZE:"updateCellSize",ESCAPE:"escape",DOUBLE_CLICK:"doubleClick",
+START:"start",RESET:"reset"};function mxXmlRequest(a,b,c,d,e,f){this.url=a;this.params=b;this.method=c||"POST";this.async=null!=d?d:!0;this.username=e;this.password=f}mxXmlRequest.prototype.url=null;mxXmlRequest.prototype.params=null;mxXmlRequest.prototype.method=null;mxXmlRequest.prototype.async=null;mxXmlRequest.prototype.binary=!1;mxXmlRequest.prototype.withCredentials=!1;mxXmlRequest.prototype.username=null;mxXmlRequest.prototype.password=null;mxXmlRequest.prototype.request=null;
 mxXmlRequest.prototype.decodeSimulateValues=!1;mxXmlRequest.prototype.isBinary=function(){return this.binary};mxXmlRequest.prototype.setBinary=function(a){this.binary=a};mxXmlRequest.prototype.getText=function(){return this.request.responseText};mxXmlRequest.prototype.isReady=function(){return 4==this.request.readyState};mxXmlRequest.prototype.getDocumentElement=function(){var a=this.getXml();return null!=a?a.documentElement:null};
 mxXmlRequest.prototype.getXml=function(){var a=this.request.responseXML;if(9<=document.documentMode||null==a||null==a.documentElement)a=mxUtils.parseXml(this.request.responseText);return a};mxXmlRequest.prototype.getText=function(){return this.request.responseText};mxXmlRequest.prototype.getStatus=function(){return this.request.status};
 mxXmlRequest.prototype.create=function(){if(window.XMLHttpRequest)return function(){var a=new XMLHttpRequest;this.isBinary()&&a.overrideMimeType&&a.overrideMimeType("text/plain; charset=x-user-defined");return a};if("undefined"!=typeof ActiveXObject)return function(){return new ActiveXObject("Microsoft.XMLHTTP")}}();
@@ -2124,7 +2124,7 @@ f.width),e=Math.ceil(2*b.y+c.height*f.height),g=a.minimumGraphSize;if(null==g||g
 this.autoTranslate=!1)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=1;var q=null;a.lazyZoom=function(c){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);c?.15>this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=(this.view.scale+.01)/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-.01)/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(.01,Math.min(this.view.scale*this.cumulativeZoomFactor,160)/this.view.scale);this.updateZoomTimeout=window.setTimeout(mxUtils.bind(this,function(){var c=mxUtils.getOffset(a.container),f=0,d=0;null!=q&&(f=a.container.offsetWidth/2-q.x+c.x,d=a.container.offsetHeight/2-q.y+c.y);c=this.view.scale;
 this.zoom(this.cumulativeZoomFactor);this.view.scale!=c&&(null!=b&&e.chromelessResize(!1,null,f*(this.cumulativeZoomFactor-1),d*(this.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==f&&0==d||(a.container.scrollLeft-=f*(this.cumulativeZoomFactor-1),a.container.scrollTop-=d*(this.cumulativeZoomFactor-1)));this.cumulativeZoomFactor=1;this.updateZoomTimeout=null}),this.lazyZoomDelay)};mxEvent.addMouseWheelListener(mxUtils.bind(this,function(c,b){if((null==this.dialogs||0==this.dialogs.length)&&
-a.isZoomWheelEvent(c))for(var f=mxEvent.getSource(c);null!=f;){if(f==a.container){q=new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c));a.lazyZoom(b);mxEvent.consume(c);break}f=f.parentNode}}))};EditorUi.prototype.addChromelessToolbarItems=function(a){a(mxUtils.bind(this,function(a){this.actions.get("print").funct();mxEvent.consume(a)}),Editor.printLargeImage,mxResources.get("print"))};
+a.isZoomWheelEvent(c))for(var f=mxEvent.getSource(c);null!=f;){if(f==a.container)return q=new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c)),a.lazyZoom(b),mxEvent.consume(c),!1;f=f.parentNode}}),a.container)};EditorUi.prototype.addChromelessToolbarItems=function(a){a(mxUtils.bind(this,function(a){this.actions.get("print").funct();mxEvent.consume(a)}),Editor.printLargeImage,mxResources.get("print"))};
 EditorUi.prototype.createTemporaryGraph=function(a){a=new Graph(document.createElement("div"),null,null,a);a.resetViewOnRootChange=!1;a.setConnectable(!1);a.gridEnabled=!1;a.autoScroll=!1;a.setTooltips(!1);a.setEnabled(!1);a.container.style.visibility="hidden";a.container.style.position="absolute";a.container.style.overflow="hidden";a.container.style.height="1px";a.container.style.width="1px";return a};
 EditorUi.prototype.addChromelessClickHandler=function(){var a=urlParams.highlight;null!=a&&0<a.length&&(a="#"+a);this.editor.graph.addClickHandler(a)};EditorUi.prototype.toggleFormatPanel=function(a){null!=this.format&&(this.formatWidth=a||0<this.formatWidth?0:240,this.formatContainer.style.display=a||0<this.formatWidth?"":"none",this.refresh(),this.format.refresh(),this.fireEvent(new mxEventObject("formatWidthChanged")))};
 EditorUi.prototype.lightboxFit=function(a){if(this.isDiagramEmpty())this.editor.graph.view.setScale(1);else{var b=urlParams.border,e=60;null!=b&&(e=parseInt(b));this.editor.graph.maxFitScale=this.lightboxMaxFitScale;this.editor.graph.fit(e,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))};
@@ -2714,7 +2714,8 @@ DrawioFile.prototype.isConflict=function(){return!1};DrawioFile.prototype.getCha
 DrawioFile.prototype.setCurrentEtag=function(a){this.setDescriptorEtag(this.getDescriptor(),a)};DrawioFile.prototype.getCurrentEtag=function(){return this.getDescriptorEtag(this.getDescriptor())};DrawioFile.prototype.getDescriptor=function(){return null};DrawioFile.prototype.setDescriptor=function(){};DrawioFile.prototype.setDescriptorEtag=function(a,b){};DrawioFile.prototype.getDescriptorEtag=function(a){return null};DrawioFile.prototype.getDescriptorSecret=function(a){return null};
 DrawioFile.prototype.installListeners=function(){null==this.changeListener&&(this.changeListener=mxUtils.bind(this,function(a,b){var e=null!=b?b.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=e&&e.ignoreEdit||this.fileChanged()}),this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener),this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener),this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener),this.ui.addListener("pageFormatChanged",
 this.changeListener),this.ui.addListener("pageScaleChanged",this.changeListener),this.ui.addListener("backgroundColorChanged",this.changeListener),this.ui.addListener("backgroundImageChanged",this.changeListener),this.ui.addListener("foldingEnabledChanged",this.changeListener),this.ui.addListener("mathEnabledChanged",this.changeListener),this.ui.addListener("gridEnabledChanged",this.changeListener),this.ui.addListener("guidesEnabledChanged",this.changeListener),this.ui.addListener("pageViewChanged",
-this.changeListener))};DrawioFile.prototype.addAllSavedStatus=function(a){null!=this.ui.statusContainer&&this.ui.getCurrentFile()==this&&(a=null!=a?a:mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey)),this.ui.editor.setStatus('<div title="'+a+'">'+a+"</div>"),a=this.ui.statusContainer.getElementsByTagName("div"),0<a.length&&this.isRevisionHistorySupported()&&(a[0].style.cursor="pointer",a[0].style.textDecoration="underline",mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))};
+this.changeListener),this.ui.addListener("connectionPointsChanged",this.changeListener),this.ui.addListener("connectionArrowsChanged",this.changeListener))};
+DrawioFile.prototype.addAllSavedStatus=function(a){null!=this.ui.statusContainer&&this.ui.getCurrentFile()==this&&(a=null!=a?a:mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey)),this.ui.editor.setStatus('<div title="'+a+'">'+a+"</div>"),a=this.ui.statusContainer.getElementsByTagName("div"),0<a.length&&this.isRevisionHistorySupported()&&(a[0].style.cursor="pointer",a[0].style.textDecoration="underline",mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))};
 DrawioFile.prototype.addUnsavedStatus=function(a){if(!this.inConflictState&&null!=this.ui.statusContainer&&this.ui.getCurrentFile()==this)if(a instanceof Error&&null!=a.message&&""!=a.message){var b=mxUtils.htmlEntities(mxResources.get("unsavedChanges"));this.ui.editor.setStatus('<div title="'+b+'" class="geStatusAlert" style="overflow:hidden;">'+b+" ("+mxUtils.htmlEntities(a.message)+")</div>")}else{b=this.getErrorMessage(a);if(null==b&&null!=this.lastSaved){var e=this.ui.timeSince(new Date(this.lastSaved));
 null!=e&&(b=mxResources.get("lastSaved",[e]))}null!=b&&60<b.length&&(b=b.substring(0,60)+"...");b=mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+(null!=b&&""!=b?" ("+mxUtils.htmlEntities(b)+")":"");this.ui.editor.setStatus('<div title="'+b+'" class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+b+"</div>");b=this.ui.statusContainer.getElementsByTagName("div");null!=b&&0<b.length?mxEvent.addListener(b[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null!=
 this.ui.mode&&this.isEditable()?"save":"saveAs").funct()})):(b=mxUtils.htmlEntities(mxResources.get("unsavedChanges")),this.ui.editor.setStatus('<div title="'+b+'" class="geStatusAlert" style="overflow:hidden;">'+b+" ("+mxUtils.htmlEntities(a.message)+")</div>"))}};
@@ -2832,25 +2833,25 @@ stroke:"#B09500",font:"#ffffff"},{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"
 {fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",
 stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(a,c,b){if(null!=c){var f=function(a){if(null!=a)if(b)for(var f=0;f<a.length;f++)c[a[f].name]=a[f];else for(var d in c){for(var e=!1,f=0;f<a.length;f++)if(a[f].name==d&&a[f].type==c[d].type){e=!0;break}e||delete c[d]}},d=this.editorUi.editor.graph.view.getState(a);null!=d&&
 null!=d.shape&&(d.shape.commonCustomPropAdded||(d.shape.commonCustomPropAdded=!0,d.shape.customProperties=d.shape.customProperties||[],d.cell.vertex?Array.prototype.push.apply(d.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(d.shape.customProperties,Editor.commonEdgeProperties)),f(d.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{f(JSON.parse(a))}catch(C){}}};var c=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=
-this.format.createSelectionState();"image"!=a.style.shape&&this.container.appendChild(this.addStyles(this.createPanel()));c.apply(this,arguments);if(Editor.enableCustomProperties){for(var b={},f=a.vertices,d=a.edges,e=0;e<f.length;e++)this.findCommonProperties(f[e],b,0==e);for(e=0;e<d.length;e++)this.findCommonProperties(d[e],b,0==f.length&&0==e);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(b).length&&this.container.appendChild(this.addProperties(this.createPanel(),b,a))}};var f=
-StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";c.style.marginRight="2px";a.appendChild(c);c=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));
-c.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return f.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,c,b){function f(a,c,b,f){k.getModel().beginUpdate();try{var d=[],e=[];if(null!=b.index){for(var g=[],l=b.parentRow.nextSibling;l&&l.getAttribute("data-pName")==a;)g.push(l.getAttribute("data-pValue")),
-l=l.nextSibling;b.index<g.length?null!=f?g.splice(f,1):g[b.index]=c:g.push(c);null!=b.size&&g.length>b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(k.setCellStyles(b.countProperty,g.length,k.getSelectionCells()),d.push(b.countProperty),e.push(g.length))}k.setCellStyles(a,c,k.getSelectionCells());d.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var p=b.dependentPropsDefVal[a],n=b.dependentPropsVals[a];if(n.length>c)n=n.slice(0,c);else for(var u=
-n.length;u<c;u++)n.push(p);n=n.join(",");k.setCellStyles(b.dependentProps[a],n,k.getSelectionCells());d.push(b.dependentProps[a]);e.push(n)}if("function"==typeof b.onChange)b.onChange(k,c);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",d,"values",e,"cells",k.getSelectionCells()))}finally{k.getModel().endUpdate()}}function d(c,b,f){var d=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";b.style.left=e.x-d.x+"px";b.style.top=e.y-d.y+"px";b.style.width=c.offsetWidth+
-"px";b.style.height=c.offsetHeight-(f?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var d=document.createElement("div");d.style.width="32px";d.style.height="4px";d.style.margin="2px";d.style.border="1px solid black";d.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(e){this.editorUi.pickColor(c,function(c){d.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;f(a,c,b)});mxEvent.consume(e)}));btn.style.height=
-"12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(d);return btn}function g(a,c,b,d,e,g,l){null!=c&&(c=c.split(","),u.push({name:a,values:c,type:b,defVal:d,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:l}));btn=mxUtils.button("+",mxUtils.bind(q,function(c){for(var p=g,q=0;null!=p.nextSibling;)if(p.nextSibling.getAttribute("data-pName")==a)p=p.nextSibling,q++;else break;var k={type:b,parentRow:g,index:q,isDeletable:!0,defVal:d,countProperty:e},q=n(a,"",k,0==q%2,l);f(a,d,
-k);p.parentNode.insertBefore(q,p.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function l(a,c,b,f,d,e,g){if(0<d){var l=Array(d);c=null!=c?c.split(","):[];for(var p=0;p<d;p++)l[p]=null!=c[p]?c[p]:null!=f?f:"";u.push({name:a,values:l,type:b,defVal:f,parentRow:e,flipBkg:g,size:d})}return document.createElement("div")}function p(a,c,b){var d=document.createElement("input");d.type="checkbox";d.checked="1"==c;mxEvent.addListener(d,
-"change",function(){f(a,d.checked?"1":"0",b)});return d}function n(c,b,n,k,u){var v=n.dispName,A=n.type,y=document.createElement("tr");y.className="gePropRow"+(u?"Dark":"")+(k?"Alt":"")+" gePropNonHeaderRow";y.setAttribute("data-pName",c);y.setAttribute("data-pValue",b);k=!1;null!=n.index&&(y.setAttribute("data-index",n.index),v=(null!=v?v:"")+"["+n.index+"]",k=!0);var z=document.createElement("td");z.className="gePropRowCell";z.innerHTML=mxUtils.htmlEntities(mxResources.get(v,null,v));k&&(z.style.textAlign=
-"right");y.appendChild(z);z=document.createElement("td");z.className="gePropRowCell";if("color"==A)z.appendChild(e(c,b,n));else if("bool"==A||"boolean"==A)z.appendChild(p(c,b,n));else if("enum"==A){var m=n.enumList;for(u=0;u<m.length;u++)if(v=m[u],v.val==b){z.innerHTML=mxUtils.htmlEntities(mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(z,"click",mxUtils.bind(q,function(){var e=document.createElement("select");d(z,e);for(var g=0;g<m.length;g++){var l=m[g],p=document.createElement("option");
-p.value=mxUtils.htmlEntities(l.val);p.innerHTML=mxUtils.htmlEntities(mxResources.get(l.dispName,null,l.dispName));e.appendChild(p)}e.value=b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);f(c,a,n)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==A?z.appendChild(g(c,b,n.subType,n.subDefVal,n.countProperty,y,u)):"staticArr"==A?z.appendChild(l(c,b,n.subType,n.subDefVal,n.size,y,u)):(z.innerHTML=b,mxEvent.addListener(z,
-"click",mxUtils.bind(q,function(){function e(){var a=g.value,a=0==a.length&&"string"!=A?0:a;n.allowAuto&&("auto"==a.trim().toLowerCase()?(a="auto",A="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=n.min&&a<n.min?a=n.min:null!=n.max&&a>n.max&&(a=n.max);a=mxUtils.htmlEntities(("int"==A?parseInt(a):a)+"");f(c,a,n)}var g=document.createElement("input");d(z,g,!0);g.value=b;g.className="gePropEditor";"int"!=A&&"float"!=A||n.allowAuto||(g.type="number",g.step="int"==A?"1":"any",null!=n.min&&(g.min=parseFloat(n.min)),
-null!=n.max&&(g.max=parseFloat(n.max)));a.appendChild(g);mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){e()})})));n.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(q,function(a){f(c,"",n,n.index);mxEvent.consume(a)})),u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",z.appendChild(u));y.appendChild(z);return y}var q=this,k=this.editorUi.editor.graph,u=[];a.style.position="relative";a.style.padding=
-"0";var v=document.createElement("table");v.style.whiteSpace="nowrap";v.style.width="100%";var A=document.createElement("tr");A.className="gePropHeader";var y=document.createElement("th");y.className="gePropHeaderCell";var m=document.createElement("img");m.src=Sidebar.prototype.expandedImage;y.appendChild(m);mxUtils.write(y,mxResources.get("property"));A.style.cursor="pointer";var r=function(){var c=v.querySelectorAll(".gePropNonHeaderRow"),b;if(q.editorUi.propertiesCollapsed){m.src=Sidebar.prototype.collapsedImage;
-b="none";for(var f=a.childNodes.length-1;0<=f;f--)try{var d=a.childNodes[f],e=d.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(d)}catch(Y){}}else m.src=Sidebar.prototype.expandedImage,b="";for(f=0;f<c.length;f++)c[f].style.display=b};mxEvent.addListener(A,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;r()});A.appendChild(y);y=document.createElement("th");y.className="gePropHeaderCell";y.innerHTML=mxResources.get("value");A.appendChild(y);v.appendChild(A);
-var D=!1,E=!1,G;for(G in c)if(A=c[G],"function"!=typeof A.isVisible||A.isVisible(b)){var t=null!=b.style[G]?mxUtils.htmlEntities(b.style[G]+""):A.defVal;if("separator"==A.type)E=!E;else{if("staticArr"==A.type)A.size=parseInt(b.style[A.sizeProperty]||c[A.sizeProperty].defVal)||0;else if(null!=A.dependentProps){for(var x=A.dependentProps,O=[],B=[],y=0;y<x.length;y++){var H=b.style[x[y]];B.push(c[x[y]].subDefVal);O.push(null!=H?H.split(","):[])}A.dependentPropsDefVal=B;A.dependentPropsVals=O}v.appendChild(n(G,
-t,A,D,E));D=!D}}for(y=0;y<u.length;y++)for(A=u[y],c=A.parentRow,b=0;b<A.values.length;b++)G=n(A.name,A.values[b],{type:A.type,parentRow:A.parentRow,isDeletable:A.isDeletable,index:b,defVal:A.defVal,countProperty:A.countProperty,size:A.size},0==b%2,A.flipBkg),c.parentNode.insertBefore(G,c.nextSibling),c=G;a.appendChild(v);r();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){function c(a){var c=mxUtils.button("",function(c){f.getModel().beginUpdate();try{var b=f.getSelectionCells();
-for(c=0;c<b.length;c++){for(var d=f.getModel().getStyle(b[c]),g=0;g<e.length;g++)d=mxUtils.removeStylename(d,e[g]);var l=f.getModel().isVertex(b[c])?f.defaultVertexStyle:f.defaultEdgeStyle;null!=a?(d=mxUtils.setStyle(d,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(l,mxConstants.STYLE_GRADIENTCOLOR,null)),d=""==a.fill?mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(l,mxConstants.STYLE_FILLCOLOR,null)),d=""==
-a.stroke?mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(l,mxConstants.STYLE_STROKECOLOR,null)),f.getModel().isVertex(b[c])&&(d=mxUtils.setStyle(d,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(l,mxConstants.STYLE_FONTCOLOR,null)))):(d=mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(l,mxConstants.STYLE_FILLCOLOR,"#ffffff")),d=mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(l,
+this.format.createSelectionState();"image"==a.style.shape||a.containsLabel||this.container.appendChild(this.addStyles(this.createPanel()));c.apply(this,arguments);if(Editor.enableCustomProperties){for(var b={},f=a.vertices,d=a.edges,e=0;e<f.length;e++)this.findCommonProperties(f[e],b,0==e);for(e=0;e<d.length;e++)this.findCommonProperties(d[e],b,0==f.length&&0==e);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(b).length&&this.container.appendChild(this.addProperties(this.createPanel(),
+b,a))}};var f=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";c.style.marginRight="2px";a.appendChild(c);c=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,
+function(a){this.editorUi.actions.get("pasteStyle").funct()}));c.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return f.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,c,b){function f(a,c,b,f){k.getModel().beginUpdate();try{var d=[],e=[];if(null!=b.index){for(var g=[],l=b.parentRow.nextSibling;l&&
+l.getAttribute("data-pName")==a;)g.push(l.getAttribute("data-pValue")),l=l.nextSibling;b.index<g.length?null!=f?g.splice(f,1):g[b.index]=c:g.push(c);null!=b.size&&g.length>b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(k.setCellStyles(b.countProperty,g.length,k.getSelectionCells()),d.push(b.countProperty),e.push(g.length))}k.setCellStyles(a,c,k.getSelectionCells());d.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var p=b.dependentPropsDefVal[a],
+n=b.dependentPropsVals[a];if(n.length>c)n=n.slice(0,c);else for(var u=n.length;u<c;u++)n.push(p);n=n.join(",");k.setCellStyles(b.dependentProps[a],n,k.getSelectionCells());d.push(b.dependentProps[a]);e.push(n)}if("function"==typeof b.onChange)b.onChange(k,c);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",d,"values",e,"cells",k.getSelectionCells()))}finally{k.getModel().endUpdate()}}function d(c,b,f){var d=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";
+b.style.left=e.x-d.x+"px";b.style.top=e.y-d.y+"px";b.style.width=c.offsetWidth+"px";b.style.height=c.offsetHeight-(f?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var d=document.createElement("div");d.style.width="32px";d.style.height="4px";d.style.margin="2px";d.style.border="1px solid black";d.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(e){this.editorUi.pickColor(c,function(c){d.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+
+"')":c;f(a,c,b)});mxEvent.consume(e)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(d);return btn}function g(a,c,b,d,e,g,l){null!=c&&(c=c.split(","),u.push({name:a,values:c,type:b,defVal:d,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:l}));btn=mxUtils.button("+",mxUtils.bind(q,function(c){for(var p=g,q=0;null!=p.nextSibling;)if(p.nextSibling.getAttribute("data-pName")==a)p=p.nextSibling,q++;else break;var k={type:b,parentRow:g,index:q,isDeletable:!0,
+defVal:d,countProperty:e},q=n(a,"",k,0==q%2,l);f(a,d,k);p.parentNode.insertBefore(q,p.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function l(a,c,b,f,d,e,g){if(0<d){var l=Array(d);c=null!=c?c.split(","):[];for(var p=0;p<d;p++)l[p]=null!=c[p]?c[p]:null!=f?f:"";u.push({name:a,values:l,type:b,defVal:f,parentRow:e,flipBkg:g,size:d})}return document.createElement("div")}function p(a,c,b){var d=document.createElement("input");d.type=
+"checkbox";d.checked="1"==c;mxEvent.addListener(d,"change",function(){f(a,d.checked?"1":"0",b)});return d}function n(c,b,n,k,u){var v=n.dispName,A=n.type,y=document.createElement("tr");y.className="gePropRow"+(u?"Dark":"")+(k?"Alt":"")+" gePropNonHeaderRow";y.setAttribute("data-pName",c);y.setAttribute("data-pValue",b);k=!1;null!=n.index&&(y.setAttribute("data-index",n.index),v=(null!=v?v:"")+"["+n.index+"]",k=!0);var z=document.createElement("td");z.className="gePropRowCell";z.innerHTML=mxUtils.htmlEntities(mxResources.get(v,
+null,v));k&&(z.style.textAlign="right");y.appendChild(z);z=document.createElement("td");z.className="gePropRowCell";if("color"==A)z.appendChild(e(c,b,n));else if("bool"==A||"boolean"==A)z.appendChild(p(c,b,n));else if("enum"==A){var m=n.enumList;for(u=0;u<m.length;u++)if(v=m[u],v.val==b){z.innerHTML=mxUtils.htmlEntities(mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(z,"click",mxUtils.bind(q,function(){var e=document.createElement("select");d(z,e);for(var g=0;g<m.length;g++){var l=
+m[g],p=document.createElement("option");p.value=mxUtils.htmlEntities(l.val);p.innerHTML=mxUtils.htmlEntities(mxResources.get(l.dispName,null,l.dispName));e.appendChild(p)}e.value=b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);f(c,a,n)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==A?z.appendChild(g(c,b,n.subType,n.subDefVal,n.countProperty,y,u)):"staticArr"==A?z.appendChild(l(c,b,n.subType,n.subDefVal,n.size,
+y,u)):(z.innerHTML=b,mxEvent.addListener(z,"click",mxUtils.bind(q,function(){function e(){var a=g.value,a=0==a.length&&"string"!=A?0:a;n.allowAuto&&("auto"==a.trim().toLowerCase()?(a="auto",A="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=n.min&&a<n.min?a=n.min:null!=n.max&&a>n.max&&(a=n.max);a=mxUtils.htmlEntities(("int"==A?parseInt(a):a)+"");f(c,a,n)}var g=document.createElement("input");d(z,g,!0);g.value=b;g.className="gePropEditor";"int"!=A&&"float"!=A||n.allowAuto||(g.type="number",g.step=
+"int"==A?"1":"any",null!=n.min&&(g.min=parseFloat(n.min)),null!=n.max&&(g.max=parseFloat(n.max)));a.appendChild(g);mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){e()})})));n.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(q,function(a){f(c,"",n,n.index);mxEvent.consume(a)})),u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",z.appendChild(u));y.appendChild(z);return y}var q=this,k=this.editorUi.editor.graph,
+u=[];a.style.position="relative";a.style.padding="0";var v=document.createElement("table");v.style.whiteSpace="nowrap";v.style.width="100%";var A=document.createElement("tr");A.className="gePropHeader";var y=document.createElement("th");y.className="gePropHeaderCell";var m=document.createElement("img");m.src=Sidebar.prototype.expandedImage;y.appendChild(m);mxUtils.write(y,mxResources.get("property"));A.style.cursor="pointer";var r=function(){var c=v.querySelectorAll(".gePropNonHeaderRow"),b;if(q.editorUi.propertiesCollapsed){m.src=
+Sidebar.prototype.collapsedImage;b="none";for(var f=a.childNodes.length-1;0<=f;f--)try{var d=a.childNodes[f],e=d.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(d)}catch(Y){}}else m.src=Sidebar.prototype.expandedImage,b="";for(f=0;f<c.length;f++)c[f].style.display=b};mxEvent.addListener(A,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;r()});A.appendChild(y);y=document.createElement("th");y.className="gePropHeaderCell";y.innerHTML=mxResources.get("value");
+A.appendChild(y);v.appendChild(A);var D=!1,E=!1,G;for(G in c)if(A=c[G],"function"!=typeof A.isVisible||A.isVisible(b)){var t=null!=b.style[G]?mxUtils.htmlEntities(b.style[G]+""):A.defVal;if("separator"==A.type)E=!E;else{if("staticArr"==A.type)A.size=parseInt(b.style[A.sizeProperty]||c[A.sizeProperty].defVal)||0;else if(null!=A.dependentProps){for(var x=A.dependentProps,O=[],B=[],y=0;y<x.length;y++){var H=b.style[x[y]];B.push(c[x[y]].subDefVal);O.push(null!=H?H.split(","):[])}A.dependentPropsDefVal=
+B;A.dependentPropsVals=O}v.appendChild(n(G,t,A,D,E));D=!D}}for(y=0;y<u.length;y++)for(A=u[y],c=A.parentRow,b=0;b<A.values.length;b++)G=n(A.name,A.values[b],{type:A.type,parentRow:A.parentRow,isDeletable:A.isDeletable,index:b,defVal:A.defVal,countProperty:A.countProperty,size:A.size},0==b%2,A.flipBkg),c.parentNode.insertBefore(G,c.nextSibling),c=G;a.appendChild(v);r();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){function c(a){var c=mxUtils.button("",function(c){f.getModel().beginUpdate();
+try{var b=f.getSelectionCells();for(c=0;c<b.length;c++){for(var d=f.getModel().getStyle(b[c]),g=0;g<e.length;g++)d=mxUtils.removeStylename(d,e[g]);var l=f.getModel().isVertex(b[c])?f.defaultVertexStyle:f.defaultEdgeStyle;null!=a?(d=mxUtils.setStyle(d,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(l,mxConstants.STYLE_GRADIENTCOLOR,null)),d=""==a.fill?mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(l,mxConstants.STYLE_FILLCOLOR,
+null)),d=""==a.stroke?mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(l,mxConstants.STYLE_STROKECOLOR,null)),f.getModel().isVertex(b[c])&&(d=mxUtils.setStyle(d,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(l,mxConstants.STYLE_FONTCOLOR,null)))):(d=mxUtils.setStyle(d,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(l,mxConstants.STYLE_FILLCOLOR,"#ffffff")),d=mxUtils.setStyle(d,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(l,
 mxConstants.STYLE_STROKECOLOR,"#000000")),d=mxUtils.setStyle(d,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(l,mxConstants.STYLE_GRADIENTCOLOR,null)),f.getModel().isVertex(b[c])&&(d=mxUtils.setStyle(d,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(l,mxConstants.STYLE_FONTCOLOR,null))));f.getModel().setStyle(b[c],d)}}finally{f.getModel().endUpdate()}});c.className="geStyleButton";c.style.width="36px";c.style.height="30px";c.style.margin="0px 6px 6px 0px";if(null!=a)null!=a.gradient?mxClient.IS_IE&&
 (mxClient.IS_QUIRKS||10>document.documentMode)?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?c.style.background="url('"+Dialog.prototype.noColorImage+"')":c.style.backgroundColor=""==a.fill?mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"dark"==uiTheme?"#000000":"#ffffff"):a.fill||mxUtils.getValue(f.defaultVertexStyle,
 mxConstants.STYLE_FILLCOLOR,"dark"==uiTheme?"#000000":"#ffffff"),c.style.border=a.stroke==mxConstants.NONE?"1px solid transparent":""==a.stroke?"1px solid "+mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"dark"!=uiTheme?"#000000":"#ffffff"):"1px solid "+(a.stroke||mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"dark"!=uiTheme?"#000000":"#ffffff"));else{var b=mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(f.defaultVertexStyle,