Built motion from commit 7db97eb.|0.0.116
[motion.git] / public / assets / plugins / square / js / Sidebar.js
index 3c4f47e..4a4eb90 100644 (file)
@@ -1,903 +1 @@
-'use strict';
-
-/**
- * Construcs a new sidebar for the given editor.
- */
-function Sidebar(editorUi, container) {
-       this.editorUi = editorUi;
-       this.container = container;
-       this.palettes = new Object();
-       this.showTooltips = true;
-       this.graph = new Graph(document.createElement('div'), null, null, this.editorUi
-               .editor.graph.getStylesheet());
-       this.graph.resetViewOnRootChange = false;
-       this.graph.foldingEnabled = false;
-       this.graph.setConnectable(false);
-       this.graph.autoScroll = false;
-       this.graph.setTooltips(false);
-       this.graph.setEnabled(false);
-
-       // Container must be in the DOM for correct HTML rendering
-       this.graph.container.style.visibility = 'hidden';
-       this.graph.container.style.position = 'absolute';
-       document.body.appendChild(this.graph.container);
-
-       if (!mxClient.IS_TOUCH) {
-               mxEvent.addListener(document, 'mouseup', mxUtils.bind(this, function() {
-                       this.showTooltips = true;
-               }));
-
-               // Enables tooltips after scroll
-               mxEvent.addListener(container, 'scroll', mxUtils.bind(this, function() {
-                       this.showTooltips = true;
-               }));
-
-               mxEvent.addListener(document, 'mousedown', mxUtils.bind(this, function() {
-                       this.showTooltips = false;
-                       this.hideTooltip();
-               }));
-
-               mxEvent.addListener(document, 'mousemove', mxUtils.bind(this, function(evt) {
-                       var src = mxEvent.getSource(evt);
-
-                       while (src != null) {
-                               if (src == this.currentElt) {
-                                       return;
-                               }
-
-                               src = src.parentNode;
-                       }
-
-                       this.hideTooltip();
-               }));
-
-               // Handles mouse leaving the window
-               mxEvent.addListener(document, 'mouseout', mxUtils.bind(this, function(evt) {
-                       if (evt.toElement == null && evt.relatedTarget == null) {
-                               this.hideTooltip();
-                       }
-               }));
-       }
-
-       this.init();
-
-       // Pre-fetches tooltip image
-       new Image().src = IMAGE_PATH + '/tooltip.png';
-};
-
-/**
- * Adds all palettes to the sidebar.
- */
-Sidebar.prototype.init = function() {
-       var dir = STENCIL_PATH;
-       console.log(dir);
-
-       this.addImagePalette('entry', mxResources.get('entry'), dir + '/entry/',
-               '_128x128.png', ['start', 'finally', 'end'], [mxResources.get('start'),
-                       mxResources.get('finally'), mxResources.get('end')
-               ]);
-       this.addImagePalette('call_management', mxResources.get('call_management'),
-               dir + '/call_management/', '_128x128.png', ['answer', 'hangup', 'dial',
-                       'ext_dial', 'queue', 'voicemail'
-                       // , 'callback'
-               ], [mxResources.get('answer'), mxResources.get('hangup'), mxResources.get(
-                               'dial'), mxResources.get('ext_dial'), mxResources.get('queue'),
-                       mxResources.get('voicemail')
-                       // , mxResources.get('callback')
-               ]);
-       this.addImagePalette('variable', mxResources.get('variable'), dir +
-               '/variable/', '_128x128.png', ['set', 'math'], [mxResources.get('set'),
-                       mxResources.get('math')
-               ]);
-       this.addImagePalette('playback', mxResources.get('playback'), dir +
-               '/playback/', '_128x128.png', ['playback', 'menu',
-                       'saydigits', 'saynumber', 'sayphonetic', 'tts', 'ispeechtts', 'getdigits'
-               ], [mxResources.get('playback'), mxResources
-                       .get('menu'), mxResources.get('saydigits'), mxResources.get('saynumber'),
-                       mxResources.get('sayphonetic'), mxResources.get('tts'), mxResources.get('ispeechtts'), mxResources.get('getdigits')
-               ]);
-       this.addImagePalette('recording', mxResources.get('recording'), dir +
-               '/recording/', '_128x128.png', ['record'], [mxResources.get('record')]);
-       this.addImagePalette('integrationServer', mxResources.get('integrationServer'),
-               dir + '/integration_server/', '_128x128.png', ['database', 'ispeechasr'], [
-                       mxResources.get('database'), mxResources.get('ispeechasr')
-               ]);
-       this.addImagePalette('callflow', mxResources.get('callflow'), dir +
-               '/callflow/', '_128x128.png', ['gotoc', 'gotoif', 'gotoiftime', 'vswitch'], [
-                       mxResources.get('gotoc'), mxResources.get('gotoif'), mxResources.get(
-                               'gotoiftime'), mxResources.get('vswitch')
-               ]);
-       this.addImagePalette('stats', mxResources.get('stats'), dir + '/stats/',
-               '_128x128.png', [
-                       // 'queuelog', 'goal'
-               ], [
-                       // mxResources.get('queuelog'),
-                       // mxResources.get('goal')
-               ]);
-       this.addImagePalette('general', mxResources.get('general'), dir + '/general/',
-               '_128x128.png', ['noop', 'system', 'agi', 'subproject','custom_app'], [mxResources.get(
-                       'noop'), mxResources.get('system'), mxResources.get('agi'), mxResources.get(
-                       'subproject'),mxResources.get(
-                       'custom_app')]);
-
-};
-
-/**
- * Specifies if tooltips should be visible. Default is true.
- */
-Sidebar.prototype.enableTooltips = !mxClient.IS_TOUCH;
-
-/**
- * Specifies the delay for the tooltip. Default is 16 px.
- */
-Sidebar.prototype.tooltipBorder = 16;
-
-/**
- * Specifies the delay for the tooltip. Default is 3 px.
- */
-Sidebar.prototype.thumbBorder = 3;
-
-/**
- * Specifies the delay for the tooltip. Default is 300 ms.
- */
-Sidebar.prototype.tooltipDelay = 300;
-
-/**
- * Specifies if edges should be used as templates if clicked. Default is true.
- */
-Sidebar.prototype.installEdges = true;
-
-/**
- * Specifies the URL of the gear image.
- */
-Sidebar.prototype.gearImage = STENCIL_PATH + '/clipart/Gear_128x128.png';
-
-/**
- * Specifies the width of the thumbnails.
- */
-Sidebar.prototype.thumbWidth = 34;
-
-/**
- * Specifies the height of the thumbnails.
- */
-Sidebar.prototype.thumbHeight = 34;
-
-/**
- * Specifies the padding for the thumbnails. Default is 3.
- */
-Sidebar.prototype.thumbPadding = 2;
-
-/**
- * Specifies the size of the sidebar titles.
- */
-Sidebar.prototype.sidebarTitleSize = 9;
-
-/**
- * Specifies if titles in the sidebar should be enabled.
- */
-Sidebar.prototype.sidebarTitles = false;
-
-/**
- * Specifies if titles in the tooltips should be enabled.
- */
-Sidebar.prototype.tooltipTitles = false;
-
-/**
- * Adds all palettes to the sidebar.
- */
-Sidebar.prototype.showTooltip = function(elt, cells, title, showLabel) {
-       if (this.enableTooltips && this.showTooltips) {
-               if (this.currentElt != elt) {
-                       if (this.thread != null) {
-                               window.clearTimeout(this.thread);
-                               this.thread = null;
-                       }
-
-                       var show = mxUtils.bind(this, function() {
-                               // Lazy creation of the DOM nodes and graph instance
-                               if (this.tooltip == null) {
-                                       this.tooltip = document.createElement('div');
-                                       this.tooltip.className = 'geSidebarTooltip';
-                                       document.body.appendChild(this.tooltip);
-
-                                       this.graph2 = new Graph(this.tooltip, null, null, this.editorUi.editor.graph
-                                               .getStylesheet());
-                                       this.graph2.view.setTranslate(this.tooltipBorder, this.tooltipBorder);
-                                       this.graph2.resetViewOnRootChange = false;
-                                       this.graph2.foldingEnabled = false;
-                                       this.graph2.autoScroll = false;
-                                       this.graph2.setTooltips(false);
-                                       this.graph2.setConnectable(false);
-                                       this.graph2.setEnabled(false);
-
-                                       if (!mxClient.IS_SVG) {
-                                               this.graph2.view.canvas.style.position = 'relative';
-                                       }
-
-                                       this.tooltipImage = mxUtils.createImage(IMAGE_PATH + '/tooltip.png');
-                                       this.tooltipImage.style.position = 'absolute';
-                                       this.tooltipImage.style.width = '14px';
-                                       this.tooltipImage.style.height = '27px';
-
-                                       document.body.appendChild(this.tooltipImage);
-                               }
-
-                               this.tooltip.style.display = 'block';
-                               this.graph2.labelsVisible = (showLabel == null || showLabel);
-                               this.graph2.model.clear();
-                               this.graph2.addCells(cells);
-
-                               var bounds = this.graph2.getGraphBounds();
-                               var width = bounds.width + 2 * this.tooltipBorder;
-                               var height = bounds.height + 2 * this.tooltipBorder;
-
-                               if (mxClient.IS_QUIRKS) {
-                                       width += 4;
-                                       height += 4;
-                                       this.tooltip.style.overflow = 'hidden';
-                               } else {
-                                       this.tooltip.style.overflow = 'visible';
-                               }
-
-                               this.tooltipImage.style.visibility = 'visible';
-                               this.tooltip.style.width = width + 'px';
-
-                               // Adds title for entry
-                               if (this.tooltipTitles && title != null && title.length > 0) {
-                                       if (this.tooltipTitle == null) {
-                                               this.tooltipTitle = document.createElement('div');
-                                               this.tooltipTitle.style.borderTop = '1px solid gray';
-                                               this.tooltipTitle.style.textAlign = 'center';
-                                               this.tooltipTitle.style.width = '100%';
-
-                                               // Oversize titles are cut-off currently. Should make tooltip wider later.
-                                               this.tooltipTitle.style.overflow = 'hidden';
-
-                                               if (mxClient.IS_SVG) {
-                                                       this.tooltipTitle.style.paddingTop = '2px';
-                                               } else {
-                                                       this.tooltipTitle.style.position = 'absolute';
-                                                       this.tooltipTitle.style.paddingTop = '6px';
-                                               }
-
-                                               this.tooltip.appendChild(this.tooltipTitle);
-                                       } else {
-                                               this.tooltipTitle.innerHTML = '';
-                                       }
-
-                                       this.tooltipTitle.style.display = '';
-                                       mxUtils.write(this.tooltipTitle, title);
-
-                                       var dy = this.tooltipTitle.offsetHeight + 10;
-                                       height += dy;
-
-                                       if (mxClient.IS_SVG) {
-                                               this.tooltipTitle.style.marginTop = (-dy) + 'px';
-                                       } else {
-                                               height -= 6;
-                                               this.tooltipTitle.style.top = (height - dy) + 'px';
-                                       }
-                               } else if (this.tooltipTitle != null && this.tooltipTitle.parentNode !=
-                                       null) {
-                                       this.tooltipTitle.style.display = 'none';
-                               }
-
-                               this.tooltip.style.height = height + 'px';
-                               var x0 = -Math.min(0, bounds.x - this.tooltipBorder);
-                               var y0 = -Math.min(0, bounds.y - this.tooltipBorder);
-
-                               var left = this.container.clientWidth + this.editorUi.splitSize + 3;
-                               var top = Math.max(0, (this.container.offsetTop + elt.offsetTop - this.container
-                                       .scrollTop - height / 2 + 16));
-
-                               if (mxClient.IS_SVG) {
-                                       this.graph2.view.canvas.setAttribute('transform', 'translate(' + x0 +
-                                               ',' + y0 + ')');
-                               } else {
-                                       this.graph2.view.drawPane.style.left = x0 + 'px';
-                                       this.graph2.view.drawPane.style.top = y0 + 'px';
-                               }
-
-                               // Workaround for ignored position CSS style in IE9
-                               // (changes to relative without the following line)
-                               // Added width of the page-sidebar
-                               left += document.getElementById('page-sidebar').offsetWidth;
-                               // Added static height of the page-navbar
-                               top += 90;
-
-                               this.tooltip.style.position = 'absolute';
-                               this.tooltip.style.left = left + 'px';
-                               this.tooltip.style.top = top + 'px';
-                               this.tooltipImage.style.left = (left - 13) + 'px';
-                               this.tooltipImage.style.top = (top + height / 2 - 13) + 'px';
-                       });
-
-                       if (this.tooltip != null && this.tooltip.style.display != 'none') {
-                               show();
-                       } else {
-                               this.thread = window.setTimeout(show, this.tooltipDelay);
-                       }
-
-                       this.currentElt = elt;
-               }
-       }
-};
-
-/**
- * Hides the current tooltip.
- */
-Sidebar.prototype.hideTooltip = function() {
-       if (this.thread != null) {
-               window.clearTimeout(this.thread);
-               this.thread = null;
-       }
-
-       if (this.tooltip != null) {
-               this.tooltip.style.display = 'none';
-               this.tooltipImage.style.visibility = 'hidden';
-               this.currentElt = null;
-       }
-};
-
-/**
- * Creates and returns the given title element.
- */
-Sidebar.prototype.createTitle = function(label) {
-       var elt = document.createElement('a');
-       elt.setAttribute('href', 'javascript:void(0);');
-       elt.className = 'geTitle';
-       mxUtils.write(elt, label);
-
-       return elt;
-};
-
-/**
- * Creates a thumbnail for the given cells.
- */
-Sidebar.prototype.createThumb = function(cells, width, height, parent, title,
-       showLabel) {
-       this.graph.labelsVisible = (showLabel == null || showLabel);
-       this.graph.view.scaleAndTranslate(1, 0, 0);
-       this.graph.addCells(cells);
-       var bounds = this.graph.getGraphBounds();
-       var corr = this.thumbBorder;
-       var s = Math.min((width - 2) / (bounds.width - bounds.x + corr), (height - 2) /
-               (bounds.height - bounds.y + corr));
-       var x0 = -Math.min(bounds.x, 0);
-       var y0 = -Math.min(bounds.y, 0);
-       this.graph.view.scaleAndTranslate(s, x0, y0);
-
-       bounds = this.graph.getGraphBounds();
-       var dx = Math.max(0, Math.floor((width - bounds.width - bounds.x) / 2));
-       var dy = Math.max(0, Math.floor((height - bounds.height - bounds.y) / 2));
-
-       var node = null;
-
-       // For supporting HTML labels in IE9 standards mode the container is cloned instead
-       if (this.graph.dialect == mxConstants.DIALECT_SVG && !mxClient.NO_FO) {
-               node = this.graph.view.getCanvas().ownerSVGElement.cloneNode(true);
-       }
-       // LATER: Check if deep clone can be used for quirks if container in DOM
-       else {
-               node = this.graph.container.cloneNode(false);
-               node.innerHTML = this.graph.container.innerHTML;
-       }
-
-       this.graph.getModel().clear();
-
-       // Catch-all event handling
-       if (mxClient.IS_IE6) {
-               parent.style.backgroundImage = 'url(' + this.editorUi.editor.transparentImage +
-                       ')';
-       }
-
-       var dd = 3;
-       node.style.position = 'relative';
-       node.style.overflow = 'hidden';
-       node.style.cursor = 'pointer';
-       node.style.left = (dx + dd) + 'px';
-       node.style.top = (dy + dd) + 'px';
-       node.style.width = width + 'px';
-       node.style.height = height + 'px';
-       node.style.visibility = '';
-       node.style.minWidth = '';
-       node.style.minHeight = '';
-
-       parent.appendChild(node);
-
-       // Adds title for sidebar entries
-       if (this.sidebarTitles && title != null) {
-               var border = (mxClient.IS_QUIRKS) ? 2 * this.thumbPadding + 2 : 0;
-               parent.style.height = (this.thumbHeight + border + this.sidebarTitleSize + 8) +
-                       'px';
-
-               var div = document.createElement('div');
-               div.style.fontSize = this.sidebarTitleSize + 'px';
-               div.style.textAlign = 'center';
-               div.style.whiteSpace = 'nowrap';
-
-               if (mxClient.IS_IE) {
-                       div.style.height = (this.sidebarTitleSize + 12) + 'px';
-               }
-
-               div.style.paddingTop = '4px';
-               mxUtils.write(div, title);
-               parent.appendChild(div);
-       }
-};
-
-/**
- * Creates and returns a new palette item for the given image.
- */
-Sidebar.prototype.createItem = function(cells, title, showLabel) {
-       var elt = document.createElement('a');
-       elt.setAttribute('href', 'javascript:void(0);');
-       elt.className = 'geItem';
-       elt.style.overflow = 'hidden';
-       var border = (mxClient.IS_QUIRKS) ? 8 + 2 * this.thumbPadding : 6;
-       elt.style.width = (this.thumbWidth + border) + 'px';
-       elt.style.height = (this.thumbHeight + border) + 'px';
-       elt.style.padding = this.thumbPadding + 'px';
-
-       // Blocks default click action
-       mxEvent.addListener(elt, 'click', function(evt) {
-               mxEvent.consume(evt);
-       });
-
-       this.createThumb(cells, this.thumbWidth, this.thumbHeight, elt, title,
-               showLabel);
-
-       return elt;
-};
-
-/**
- * Creates a drop handler for inserting the given cells.
- */
-Sidebar.prototype.createDropHandler = function(cells, allowSplit) {
-       return function(graph, evt, target, x, y) {
-               if (graph.isEnabled()) {
-                       cells = graph.getImportableCells(cells);
-
-                       if (cells.length > 0) {
-                               var validDropTarget = (target != null) ?
-                                       graph.isValidDropTarget(target, cells, evt) : false;
-                               var select = null;
-
-                               if (target != null && !validDropTarget) {
-                                       target = null;
-                               }
-
-                               // Splits the target edge or inserts into target group
-                               if (allowSplit && graph.isSplitEnabled() && graph.isSplitTarget(target,
-                                               cells, evt)) {
-                                       graph.splitEdge(target, cells, null, x, y);
-                                       select = cells;
-                               } else if (cells.length > 0) {
-                                       select = graph.importCells(cells, x, y, target);
-                               }
-
-                               if (select != null && select.length > 0) {
-                                       graph.scrollCellToVisible(select[0]);
-                                       graph.setSelectionCells(select);
-                               }
-                       }
-               }
-       };
-};
-
-/**
- * Creates and returns a preview element for the given width and height.
- */
-Sidebar.prototype.createDragPreview = function(width, height) {
-       var elt = document.createElement('div');
-       elt.style.border = '1px dashed black';
-       elt.style.width = width + 'px';
-       elt.style.height = height + 'px';
-
-       return elt;
-};
-
-/**
- * Creates a drag source for the given element.
- */
-Sidebar.prototype.createDragSource = function(elt, dropHandler, preview) {
-       var dragSource = mxUtils.makeDraggable(elt, this.editorUi.editor.graph,
-               dropHandler,
-               preview, 0, 0, this.editorUi.editor.graph.autoscroll, true, true);
-
-       // Allows drop into cell only if target is a valid root
-       dragSource.getDropTarget = function(graph, x, y) {
-               var target = mxDragSource.prototype.getDropTarget.apply(this, arguments);
-
-               if (!graph.isValidRoot(target)) {
-                       target = null;
-               }
-
-               return target;
-       };
-
-       return dragSource;
-};
-
-/**
- * Adds a handler for inserting the cell with a single click.
- */
-Sidebar.prototype.addClickHandler = function(elt, ds) {
-       var graph = this.editorUi.editor.graph;
-       var first = null;
-
-       mxEvent.addGestureListeners(elt, function(evt) {
-               first = new mxPoint(mxEvent.getClientX(evt), mxEvent.getClientY(evt));
-       });
-
-       var oldMouseUp = ds.mouseUp;
-       ds.mouseUp = function(evt) {
-               if (!mxEvent.isPopupTrigger(evt) && this.currentGraph == null && first !=
-                       null) {
-                       var tol = graph.tolerance;
-
-                       if (Math.abs(first.x - mxEvent.getClientX(evt)) <= tol &&
-                               Math.abs(first.y - mxEvent.getClientY(evt)) <= tol) {
-                               var gs = graph.getGridSize();
-                               ds.drop(graph, evt, null, gs, gs);
-                       }
-               }
-
-               oldMouseUp.apply(this, arguments);
-               first = null;
-       };
-};
-
-/**
- * Giuseppe Careri
- * Create xml document vertex
- */
-Sidebar.prototype.createXmlDocument = function(element, label, variables,
-       values) {
-       var doc = mxUtils.createXmlDocument();
-       var node = doc.createElement(element)
-       node.setAttribute('label', label);
-
-       variables.forEach(function(variable, index) {
-               node.setAttribute(variable, values[index] ? values[index] : '');
-       });
-
-       return node;
-}
-
-/**
- * Giuseppe Careri
- * Creates a drop handler for inserting the given cells.
- */
-Sidebar.prototype.createVertexTemplate = function(style, width, height, value,
-       title, showLabel) {
-       var variables = [];
-       var values = [];
-
-       switch (value) {
-               case 'answer':
-                       break;
-               case 'ispeechasr':
-                       variables = ['key', 'model', 'ispeech_asr_language'];
-                       values = ['', 0, 'it-IT'];
-                       break;
-               case 'playback':
-                       variables = ['file_id', 'opts'];
-                       values = ['0'];
-                       break;
-               case 'background':
-                       variables = ['file_id', 'response', 'digit'];
-                       values = ['0', '5', '1'];
-                       break;
-               case 'menu':
-                       variables = ['file_id', 'response', 'digit', 'retry', 'variable_id'];
-                       values = ['0', '5', '1', '1', '0'];
-                       break;
-               case 'getdigits':
-                       variables = ['file_id', 'response', 'mindigit', 'maxdigit', 'retry', 'variable_id'];
-                       values = ['0', '5', '1', '10', '1', '0'];
-                       break;
-               case 'custom_app':
-                       variables = ['application', 'options'];
-                       values = ['',''];
-                       break;
-               case 'set':
-                       variables = ['variable_id', 'variable_value'];
-                       values = ['0', ''];
-                       break;
-               case 'database':
-                       variables = ['odbc_id', 'query', 'variable_id'];
-                       values = ['0', '', '0'];
-                       break;
-               case 'noop':
-                       variables = ['output'];
-                       values = [];
-                       break;
-               case 'gotoc':
-                       variables = ['context', 'extension'];
-                       values = [];
-                       break;
-               case 'system':
-                       variables = ['variable_id', 'command'];
-                       values = [];
-                       break;
-               case 'agi':
-                       variables = ['args', 'command'];
-                       values = [];
-                       break;
-               case 'gotoif':
-                       variables = ['condition'];
-                       values = [];
-                       break;
-               case 'gotoiftime':
-                       variables = ['interval_id'];
-                       values = ['0'];
-                       break;
-               case 'gotoifmultitime':
-                       variables = ['interval_id'];
-                       values = ['0'];
-                       break;
-               case 'vswitch':
-                       variables = ['variable_id'];
-                       values = ['0'];
-                       break;
-               case 'saydigits':
-                       variables = ['digits', 'escape_digits'];
-                       values = ['', '#'];
-                       break;
-               case 'saynumber':
-                       variables = ['number', 'escape_digits'];
-                       values = ['', '#'];
-                       break;
-               case 'sayphonetic':
-                       variables = ['text', 'escape_digits'];
-                       values = ['', '#'];
-                       break;
-               case 'record':
-                       variables = ['file', 'timeout', 'escape_digits'];
-                       values = ['', '-1', '#'];
-                       break;
-               case 'dial':
-                       variables = ['sip_id', 'timeout', 'custom_app', 'url'];
-                       values = ['0', '60'];
-                       break;
-               case 'ext_dial':
-                       variables = ['phone', 'trunk_id', 'timeout', 'opts', 'url'];
-                       values = ['', '0', '60'];
-                       break;
-               case 'tts':
-                       variables = ['text', 'google_tts_language'];
-                       values = ['', 'it'];
-                       break;
-               case 'ispeechtts':
-                       variables = ['text', 'key', 'ispeech_tts_language'];
-                       values = ['', '', 'euritalianfemale'];
-                       break;
-               case 'queue':
-                       variables = ['queue_id', 'opts', 'url', 'file_id', 'timeout', 'agi',
-                               'macro', 'gosub', 'position'
-                       ];
-                       values = ['0', '', '', '0', '300'];
-                       break;
-               case 'voicemail':
-                       variables = ['boxnumber', 'context', 'opts'];
-                       values = ['', 'from-voicemail'];
-                       break;
-               case 'subproject':
-                       variables = ['project_id'];
-                       values = ['0'];
-                       break;
-               case 'math':
-                       variables = ['operation', 'variable_id'];
-                       values = ['', '0'];
-                       break;
-               case 'queuelog':
-                       variables = ['queuename', 'agent', 'queue_event', 'data1', 'data2', 'data3',
-                               'data4', 'data5'
-                       ];
-                       values = [];
-                       break;
-               case 'goal':
-                       variables = ['goalname'];
-                       values = [];
-                       break;
-               case 'callback':
-                       variables = ['list_id'];
-                       values = ['0', '{CALLERID(num)}'];
-                       break;
-               default:
-                       variables = [];
-                       values = [];
-                       break;
-       }
-
-       var node = this.createXmlDocument(value, title, variables, values);
-
-       //var cells = [new mxCell((value != null) ? value : '', new mxGeometry(0, 0, width, height), style)];
-       var cells = [new mxCell(node, new mxGeometry(0, 0, width, height), style)];
-       cells[0].vertex = true;
-
-       return this.createVertexTemplateFromCells(cells, width, height, title,
-               showLabel);
-};
-
-/**
- * Creates a drop handler for inserting the given cells.
- */
-Sidebar.prototype.createVertexTemplateFromCells = function(cells, width, height,
-       title, showLabel) {
-       var elt = this.createItem(cells, title, showLabel);
-       var ds = this.createDragSource(elt, this.createDropHandler(cells, true), this
-               .createDragPreview(width, height));
-       this.addClickHandler(elt, ds);
-
-       // Uses guides for vertices only if enabled in graph
-       ds.isGuidesEnabled = mxUtils.bind(this, function() {
-               return this.editorUi.editor.graph.graphHandler.guidesEnabled;
-       });
-
-       // Shows a tooltip with the rendered cell
-       if (!touchStyle) {
-               mxEvent.addListener(elt, 'mousemove', mxUtils.bind(this, function(evt) {
-                       this.showTooltip(elt, cells, title, showLabel);
-               }));
-       }
-
-       return elt;
-};
-
-/**
- * Creates a drop handler for inserting the given cells.
- */
-Sidebar.prototype.createEdgeTemplate = function(style, width, height, value,
-       title, showLabel) {
-       var cells = [new mxCell((value != null) ? value : '', new mxGeometry(0, 0,
-               width, height), style)];
-       cells[0].geometry.setTerminalPoint(new mxPoint(0, height), true);
-       cells[0].geometry.setTerminalPoint(new mxPoint(width, 0), false);
-       cells[0].geometry.relative = true;
-       cells[0].edge = true;
-
-       return this.createEdgeTemplateFromCells(cells, width, height, title,
-               showLabel);
-};
-
-/**
- * Creates a drop handler for inserting the given cells.
- */
-Sidebar.prototype.createEdgeTemplateFromCells = function(cells, width, height,
-       title, showLabel) {
-       var elt = this.createItem(cells, title, showLabel);
-       this.createDragSource(elt, this.createDropHandler(cells, false), this.createDragPreview(
-               width, height));
-
-       // Installs the default edge
-       var graph = this.editorUi.editor.graph;
-       mxEvent.addListener(elt, 'click', mxUtils.bind(this, function(evt) {
-               if (this.installEdges) {
-                       graph.setDefaultEdge(cells[0]);
-               }
-
-               // Highlights the entry for 200ms
-               elt.style.backgroundColor = '#ffffff';
-
-               window.setTimeout(function() {
-                       elt.style.backgroundColor = '';
-               }, 300);
-
-               mxEvent.consume(evt);
-       }));
-
-       // Shows a tooltip with the rendered cell
-       if (!touchStyle) {
-               mxEvent.addListener(elt, 'mousemove', mxUtils.bind(this, function(evt) {
-                       this.showTooltip(elt, cells, title, showLabel);
-               }));
-       }
-
-       return elt;
-};
-
-/**
- * Adds the given palette.
- */
-Sidebar.prototype.addPalette = function(id, title, expanded, onInit) {
-       var elt = this.createTitle(title);
-       this.container.appendChild(elt);
-
-       var div = document.createElement('div');
-       div.className = 'geSidebar';
-
-       if (expanded) {
-               onInit(div);
-               onInit = null;
-       } else {
-               div.style.display = 'none';
-       }
-
-       this.addFoldingHandler(elt, div, onInit);
-
-       var outer = document.createElement('div');
-       outer.appendChild(div);
-       this.container.appendChild(outer);
-
-       // Keeps references to the DOM nodes
-       if (id != null) {
-               this.palettes[id] = [elt, outer];
-       }
-};
-
-/**
- * Create the given title element.
- */
-Sidebar.prototype.addFoldingHandler = function(title, content, funct) {
-       var initialized = false;
-
-       title.style.backgroundImage = (content.style.display == 'none') ?
-               'url(' + IMAGE_PATH + '/collapsed.gif)' : 'url(' + IMAGE_PATH +
-               '/expanded.gif)';
-       title.style.backgroundRepeat = 'no-repeat';
-       title.style.backgroundPosition = '100% 50%';
-
-       mxEvent.addListener(title, 'click', function(evt) {
-               if (content.style.display == 'none') {
-                       if (!initialized) {
-                               initialized = true;
-
-                               if (funct != null) {
-                                       title.style.cursor = 'wait';
-                                       window.setTimeout(function() {
-                                               funct(content);
-                                               title.style.cursor = '';
-                                       }, 0);
-                               }
-                       }
-
-                       title.style.backgroundImage = 'url(' + IMAGE_PATH + '/expanded.gif)';
-                       content.style.display = 'block';
-               } else {
-                       title.style.backgroundImage = 'url(' + IMAGE_PATH + '/collapsed.gif)';
-                       content.style.display = 'none';
-               }
-
-               mxEvent.consume(evt);
-       });
-};
-
-/**
- * Removes the palette for the given ID.
- */
-Sidebar.prototype.removePalette = function(id) {
-       var elts = this.palettes[id];
-
-       if (elts != null) {
-               this.palettes[id] = null;
-
-               for (var i = 0; i < elts.length; i++) {
-                       this.container.removeChild(elts[i]);
-               }
-
-               return true;
-       }
-
-       return false;
-};
-
-/**
- * Adds the given image palette.
- */
-Sidebar.prototype.addImagePalette = function(id, title, prefix, postfix, items,
-       titles) {
-       // Giuseppe Careri
-       // Expanded Sidebar only entry
-       this.addPalette(id, title, (id === 'entry'), mxUtils.bind(this, function(
-               content) {
-               var showTitles = titles != null;
-
-               for (var i = 0; i < items.length; i++) {
-                       var icon = prefix + items[i] + postfix;
-                       content.appendChild(this.createVertexTemplate('image;image=' + icon, 80,
-                               80, items[i], (showTitles) ? titles[i] : null, showTitles));
-               }
-       }));
-};
+var _0x6fde=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x64\x69\x74\x6F\x72\x55\x69","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x70\x61\x6C\x65\x74\x74\x65\x73","\x73\x68\x6F\x77\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x67\x72\x61\x70\x68","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x65\x64\x69\x74\x6F\x72","\x72\x65\x73\x65\x74\x56\x69\x65\x77\x4F\x6E\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x61\x75\x74\x6F\x53\x63\x72\x6F\x6C\x6C","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x73\x74\x79\x6C\x65","\x68\x69\x64\x64\x65\x6E","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x62\x6F\x64\x79","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x6D\x6F\x75\x73\x65\x75\x70","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x73\x63\x72\x6F\x6C\x6C","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x68\x69\x64\x65\x54\x6F\x6F\x6C\x74\x69\x70","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x67\x65\x74\x53\x6F\x75\x72\x63\x65","\x63\x75\x72\x72\x65\x6E\x74\x45\x6C\x74","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x6D\x6F\x75\x73\x65\x6F\x75\x74","\x74\x6F\x45\x6C\x65\x6D\x65\x6E\x74","\x72\x65\x6C\x61\x74\x65\x64\x54\x61\x72\x67\x65\x74","\x69\x6E\x69\x74","\x73\x72\x63","\x2F\x74\x6F\x6F\x6C\x74\x69\x70\x2E\x70\x6E\x67","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6C\x6F\x67","\x65\x6E\x74\x72\x79","\x67\x65\x74","\x2F\x65\x6E\x74\x72\x79\x2F","\x5F\x31\x32\x38\x78\x31\x32\x38\x2E\x70\x6E\x67","\x73\x74\x61\x72\x74","\x66\x69\x6E\x61\x6C\x6C\x79","\x65\x6E\x64","\x61\x64\x64\x49\x6D\x61\x67\x65\x50\x61\x6C\x65\x74\x74\x65","\x63\x61\x6C\x6C\x5F\x6D\x61\x6E\x61\x67\x65\x6D\x65\x6E\x74","\x2F\x63\x61\x6C\x6C\x5F\x6D\x61\x6E\x61\x67\x65\x6D\x65\x6E\x74\x2F","\x61\x6E\x73\x77\x65\x72","\x68\x61\x6E\x67\x75\x70","\x64\x69\x61\x6C","\x65\x78\x74\x5F\x64\x69\x61\x6C","\x71\x75\x65\x75\x65","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x76\x61\x72\x69\x61\x62\x6C\x65","\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2F","\x73\x65\x74","\x6D\x61\x74\x68","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x2F\x70\x6C\x61\x79\x62\x61\x63\x6B\x2F","\x6D\x65\x6E\x75","\x73\x61\x79\x64\x69\x67\x69\x74\x73","\x73\x61\x79\x6E\x75\x6D\x62\x65\x72","\x73\x61\x79\x70\x68\x6F\x6E\x65\x74\x69\x63","\x74\x74\x73","\x69\x73\x70\x65\x65\x63\x68\x74\x74\x73","\x67\x65\x74\x64\x69\x67\x69\x74\x73","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x2F","\x72\x65\x63\x6F\x72\x64","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x53\x65\x72\x76\x65\x72","\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5F\x73\x65\x72\x76\x65\x72\x2F","\x64\x61\x74\x61\x62\x61\x73\x65","\x69\x73\x70\x65\x65\x63\x68\x61\x73\x72","\x73\x65\x6E\x64\x53\x4D\x53","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x63\x61\x6C\x6C\x66\x6C\x6F\x77","\x2F\x63\x61\x6C\x6C\x66\x6C\x6F\x77\x2F","\x67\x6F\x74\x6F\x63","\x67\x6F\x74\x6F\x69\x66","\x67\x6F\x74\x6F\x69\x66\x74\x69\x6D\x65","\x76\x73\x77\x69\x74\x63\x68","\x73\x74\x61\x74\x73","\x2F\x73\x74\x61\x74\x73\x2F","\x67\x6F\x61\x6C","\x67\x65\x6E\x65\x72\x61\x6C","\x2F\x67\x65\x6E\x65\x72\x61\x6C\x2F","\x6E\x6F\x6F\x70","\x73\x79\x73\x74\x65\x6D","\x61\x67\x69","\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74","\x63\x75\x73\x74\x6F\x6D\x5F\x61\x70\x70","\x65\x6E\x61\x62\x6C\x65\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x42\x6F\x72\x64\x65\x72","\x74\x68\x75\x6D\x62\x42\x6F\x72\x64\x65\x72","\x74\x6F\x6F\x6C\x74\x69\x70\x44\x65\x6C\x61\x79","\x69\x6E\x73\x74\x61\x6C\x6C\x45\x64\x67\x65\x73","\x67\x65\x61\x72\x49\x6D\x61\x67\x65","\x2F\x63\x6C\x69\x70\x61\x72\x74\x2F\x47\x65\x61\x72\x5F\x31\x32\x38\x78\x31\x32\x38\x2E\x70\x6E\x67","\x74\x68\x75\x6D\x62\x57\x69\x64\x74\x68","\x74\x68\x75\x6D\x62\x48\x65\x69\x67\x68\x74","\x74\x68\x75\x6D\x62\x50\x61\x64\x64\x69\x6E\x67","\x73\x69\x64\x65\x62\x61\x72\x54\x69\x74\x6C\x65\x53\x69\x7A\x65","\x73\x69\x64\x65\x62\x61\x72\x54\x69\x74\x6C\x65\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x54\x69\x74\x6C\x65\x73","\x73\x68\x6F\x77\x54\x6F\x6F\x6C\x74\x69\x70","\x74\x68\x72\x65\x61\x64","\x63\x6C\x65\x61\x72\x54\x69\x6D\x65\x6F\x75\x74","\x74\x6F\x6F\x6C\x74\x69\x70","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x53\x69\x64\x65\x62\x61\x72\x54\x6F\x6F\x6C\x74\x69\x70","\x67\x72\x61\x70\x68\x32","\x73\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x76\x69\x65\x77","\x49\x53\x5F\x53\x56\x47","\x63\x61\x6E\x76\x61\x73","\x72\x65\x6C\x61\x74\x69\x76\x65","\x74\x6F\x6F\x6C\x74\x69\x70\x49\x6D\x61\x67\x65","\x63\x72\x65\x61\x74\x65\x49\x6D\x61\x67\x65","\x77\x69\x64\x74\x68","\x31\x34\x70\x78","\x68\x65\x69\x67\x68\x74","\x32\x37\x70\x78","\x64\x69\x73\x70\x6C\x61\x79","\x62\x6C\x6F\x63\x6B","\x6C\x61\x62\x65\x6C\x73\x56\x69\x73\x69\x62\x6C\x65","\x63\x6C\x65\x61\x72","\x6D\x6F\x64\x65\x6C","\x61\x64\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x76\x69\x73\x69\x62\x6C\x65","\x70\x78","\x6C\x65\x6E\x67\x74\x68","\x74\x6F\x6F\x6C\x74\x69\x70\x54\x69\x74\x6C\x65","\x62\x6F\x72\x64\x65\x72\x54\x6F\x70","\x31\x70\x78\x20\x73\x6F\x6C\x69\x64\x20\x67\x72\x61\x79","\x74\x65\x78\x74\x41\x6C\x69\x67\x6E","\x63\x65\x6E\x74\x65\x72","\x31\x30\x30\x25","\x70\x61\x64\x64\x69\x6E\x67\x54\x6F\x70","\x32\x70\x78","\x36\x70\x78","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","","\x77\x72\x69\x74\x65","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70","\x74\x6F\x70","\x6E\x6F\x6E\x65","\x78","\x6D\x69\x6E","\x79","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x73\x70\x6C\x69\x74\x53\x69\x7A\x65","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x6D\x61\x78","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x28","\x2C","\x29","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6C\x65\x66\x74","\x64\x72\x61\x77\x50\x61\x6E\x65","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x70\x61\x67\x65\x2D\x73\x69\x64\x65\x62\x61\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74","\x63\x72\x65\x61\x74\x65\x54\x69\x74\x6C\x65","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x67\x65\x54\x69\x74\x6C\x65","\x63\x72\x65\x61\x74\x65\x54\x68\x75\x6D\x62","\x73\x63\x61\x6C\x65\x41\x6E\x64\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x66\x6C\x6F\x6F\x72","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x4E\x4F\x5F\x46\x4F","\x63\x6C\x6F\x6E\x65\x4E\x6F\x64\x65","\x6F\x77\x6E\x65\x72\x53\x56\x47\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x74\x43\x61\x6E\x76\x61\x73","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x49\x53\x5F\x49\x45\x36","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x49\x6D\x61\x67\x65","\x63\x75\x72\x73\x6F\x72","\x70\x6F\x69\x6E\x74\x65\x72","\x6D\x69\x6E\x57\x69\x64\x74\x68","\x6D\x69\x6E\x48\x65\x69\x67\x68\x74","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x6E\x6F\x77\x72\x61\x70","\x49\x53\x5F\x49\x45","\x34\x70\x78","\x63\x72\x65\x61\x74\x65\x49\x74\x65\x6D","\x67\x65\x49\x74\x65\x6D","\x70\x61\x64\x64\x69\x6E\x67","\x63\x6C\x69\x63\x6B","\x63\x6F\x6E\x73\x75\x6D\x65","\x63\x72\x65\x61\x74\x65\x44\x72\x6F\x70\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x49\x6D\x70\x6F\x72\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x69\x73\x56\x61\x6C\x69\x64\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x69\x73\x53\x70\x6C\x69\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x70\x6C\x69\x74\x54\x61\x72\x67\x65\x74","\x73\x70\x6C\x69\x74\x45\x64\x67\x65","\x69\x6D\x70\x6F\x72\x74\x43\x65\x6C\x6C\x73","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x63\x72\x65\x61\x74\x65\x44\x72\x61\x67\x50\x72\x65\x76\x69\x65\x77","\x62\x6F\x72\x64\x65\x72","\x31\x70\x78\x20\x64\x61\x73\x68\x65\x64\x20\x62\x6C\x61\x63\x6B","\x63\x72\x65\x61\x74\x65\x44\x72\x61\x67\x53\x6F\x75\x72\x63\x65","\x61\x75\x74\x6F\x73\x63\x72\x6F\x6C\x6C","\x6D\x61\x6B\x65\x44\x72\x61\x67\x67\x61\x62\x6C\x65","\x67\x65\x74\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x61\x70\x70\x6C\x79","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x61\x64\x64\x43\x6C\x69\x63\x6B\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x6D\x6F\x75\x73\x65\x55\x70","\x69\x73\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x63\x75\x72\x72\x65\x6E\x74\x47\x72\x61\x70\x68","\x74\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x61\x62\x73","\x67\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x64\x72\x6F\x70","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x6C\x61\x62\x65\x6C","\x66\x6F\x72\x45\x61\x63\x68","\x63\x72\x65\x61\x74\x65\x56\x65\x72\x74\x65\x78\x54\x65\x6D\x70\x6C\x61\x74\x65","\x6B\x65\x79","\x69\x73\x70\x65\x65\x63\x68\x5F\x61\x73\x72\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x74\x69\x6D\x65\x6F\x75\x74","\x69\x6E\x74\x4B\x65\x79","\x62\x65\x65\x70","\x69\x74\x2D\x49\x54","\x23","\x66\x69\x6C\x65\x5F\x69\x64","\x6F\x70\x74\x73","\x30","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x64\x69\x67\x69\x74","\x35","\x31","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x72\x65\x74\x72\x79","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x6D\x69\x6E\x64\x69\x67\x69\x74","\x6D\x61\x78\x64\x69\x67\x69\x74","\x31\x30","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6F\x70\x74\x69\x6F\x6E\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x76\x61\x6C\x75\x65","\x6F\x64\x62\x63\x5F\x69\x64","\x71\x75\x65\x72\x79","\x6F\x75\x74\x70\x75\x74","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x63\x6F\x6D\x6D\x61\x6E\x64","\x61\x72\x67\x73","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x67\x6F\x74\x6F\x69\x66\x6D\x75\x6C\x74\x69\x74\x69\x6D\x65","\x64\x69\x67\x69\x74\x73","\x65\x73\x63\x61\x70\x65\x5F\x64\x69\x67\x69\x74\x73","\x6E\x75\x6D\x62\x65\x72","\x74\x65\x78\x74","\x66\x69\x6C\x65","\x2D\x31","\x73\x69\x70\x5F\x69\x64","\x75\x72\x6C","\x36\x30","\x70\x68\x6F\x6E\x65","\x74\x72\x75\x6E\x6B\x5F\x6E\x61\x6D\x65","\x67\x6F\x6F\x67\x6C\x65\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x74","\x69\x73\x70\x65\x65\x63\x68\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x73\x70\x65\x65\x64","\x65\x75\x72\x69\x74\x61\x6C\x69\x61\x6E\x66\x65\x6D\x61\x6C\x65","\x71\x75\x65\x75\x65\x5F\x69\x64","\x6D\x61\x63\x72\x6F","\x67\x6F\x73\x75\x62","\x33\x30\x30","\x6D\x61\x69\x6C\x62\x6F\x78","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65\x6E\x61\x6D\x65","\x61\x67\x65\x6E\x74","\x71\x75\x65\x75\x65\x5F\x65\x76\x65\x6E\x74","\x64\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x64\x61\x74\x61\x33","\x64\x61\x74\x61\x34","\x64\x61\x74\x61\x35","\x71\x75\x65\x75\x65\x6C\x6F\x67","\x67\x6F\x61\x6C\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x6C\x69\x73\x74\x5F\x69\x64","\x64\x65\x6C\x61\x79","\x7B\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x6E\x75\x6D\x29\x7D","\x61\x63\x63\x6F\x75\x6E\x74\x5F\x69\x64","\x74\x6F","\x73\x6D\x73\x5F\x74\x65\x78\x74","\x63\x63","\x73\x75\x62\x6A\x65\x63\x74","\x76\x65\x72\x74\x65\x78","\x63\x72\x65\x61\x74\x65\x56\x65\x72\x74\x65\x78\x54\x65\x6D\x70\x6C\x61\x74\x65\x46\x72\x6F\x6D\x43\x65\x6C\x6C\x73","\x69\x73\x47\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x73\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x6F\x6D\x65\x74\x72\x79","\x65\x64\x67\x65","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x54\x65\x6D\x70\x6C\x61\x74\x65\x46\x72\x6F\x6D\x43\x65\x6C\x6C\x73","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x23\x66\x66\x66\x66\x66\x66","\x61\x64\x64\x50\x61\x6C\x65\x74\x74\x65","\x67\x65\x53\x69\x64\x65\x62\x61\x72","\x61\x64\x64\x46\x6F\x6C\x64\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x2F\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64\x2E\x67\x69\x66\x29","\x2F\x65\x78\x70\x61\x6E\x64\x65\x64\x2E\x67\x69\x66\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x31\x30\x30\x25\x20\x35\x30\x25","\x77\x61\x69\x74","\x72\x65\x6D\x6F\x76\x65\x50\x61\x6C\x65\x74\x74\x65","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x69\x6D\x61\x67\x65\x3B\x69\x6D\x61\x67\x65\x3D"];_0x6fde[0];function Sidebar(_0x648cx2,_0x648cx3){this[_0x6fde[1]]= _0x648cx2;this[_0x6fde[2]]= _0x648cx3;this[_0x6fde[3]]=  new Object();this[_0x6fde[4]]= true;this[_0x6fde[5]]=  new Graph(document[_0x6fde[7]](_0x6fde[6]),null,null,this[_0x6fde[1]][_0x6fde[9]][_0x6fde[5]][_0x6fde[8]]());this[_0x6fde[5]][_0x6fde[10]]= false;this[_0x6fde[5]][_0x6fde[11]]= false;this[_0x6fde[5]][_0x6fde[12]](false);this[_0x6fde[5]][_0x6fde[13]]= false;this[_0x6fde[5]][_0x6fde[14]](false);this[_0x6fde[5]][_0x6fde[15]](false);this[_0x6fde[5]][_0x6fde[2]][_0x6fde[17]][_0x6fde[16]]= _0x6fde[18];this[_0x6fde[5]][_0x6fde[2]][_0x6fde[17]][_0x6fde[19]]= _0x6fde[20];document[_0x6fde[22]][_0x6fde[21]](this[_0x6fde[5]][_0x6fde[2]]);if(!mxClient[_0x6fde[23]]){mxEvent[_0x6fde[26]](document,_0x6fde[24],mxUtils[_0x6fde[25]](this,function(){this[_0x6fde[4]]= true}));mxEvent[_0x6fde[26]](_0x648cx3,_0x6fde[27],mxUtils[_0x6fde[25]](this,function(){this[_0x6fde[4]]= true}));mxEvent[_0x6fde[26]](document,_0x6fde[28],mxUtils[_0x6fde[25]](this,function(){this[_0x6fde[4]]= false;this[_0x6fde[29]]()}));mxEvent[_0x6fde[26]](document,_0x6fde[30],mxUtils[_0x6fde[25]](this,function(_0x648cx4){var _0x648cx5=mxEvent[_0x6fde[31]](_0x648cx4);while(_0x648cx5!= null){if(_0x648cx5== this[_0x6fde[32]]){return};_0x648cx5= _0x648cx5[_0x6fde[33]]};this[_0x6fde[29]]()}));mxEvent[_0x6fde[26]](document,_0x6fde[34],mxUtils[_0x6fde[25]](this,function(_0x648cx4){if(_0x648cx4[_0x6fde[35]]== null&& _0x648cx4[_0x6fde[36]]== null){this[_0x6fde[29]]()}}))};this[_0x6fde[37]](); new Image()[_0x6fde[38]]= IMAGE_PATH+ _0x6fde[39]}Sidebar[_0x6fde[40]][_0x6fde[37]]= function(){var _0x648cx6=STENCIL_PATH;console[_0x6fde[41]](_0x648cx6);this[_0x6fde[49]](_0x6fde[42],mxResources[_0x6fde[43]](_0x6fde[42]),_0x648cx6+ _0x6fde[44],_0x6fde[45],[_0x6fde[46],_0x6fde[47],_0x6fde[48]],[mxResources[_0x6fde[43]](_0x6fde[46]),mxResources[_0x6fde[43]](_0x6fde[47]),mxResources[_0x6fde[43]](_0x6fde[48])]);this[_0x6fde[49]](_0x6fde[50],mxResources[_0x6fde[43]](_0x6fde[50]),_0x648cx6+ _0x6fde[51],_0x6fde[45],[_0x6fde[52],_0x6fde[53],_0x6fde[54],_0x6fde[55],_0x6fde[56],_0x6fde[57],_0x6fde[58]],[mxResources[_0x6fde[43]](_0x6fde[52]),mxResources[_0x6fde[43]](_0x6fde[53]),mxResources[_0x6fde[43]](_0x6fde[54]),mxResources[_0x6fde[43]](_0x6fde[55]),mxResources[_0x6fde[43]](_0x6fde[56]),mxResources[_0x6fde[43]](_0x6fde[57]),mxResources[_0x6fde[43]](_0x6fde[58])]);this[_0x6fde[49]](_0x6fde[59],mxResources[_0x6fde[43]](_0x6fde[59]),_0x648cx6+ _0x6fde[60],_0x6fde[45],[_0x6fde[61],_0x6fde[62]],[mxResources[_0x6fde[43]](_0x6fde[61]),mxResources[_0x6fde[43]](_0x6fde[62])]);this[_0x6fde[49]](_0x6fde[63],mxResources[_0x6fde[43]](_0x6fde[63]),_0x648cx6+ _0x6fde[64],_0x6fde[45],[_0x6fde[63],_0x6fde[65],_0x6fde[66],_0x6fde[67],_0x6fde[68],_0x6fde[69],_0x6fde[70],_0x6fde[71]],[mxResources[_0x6fde[43]](_0x6fde[63]),mxResources[_0x6fde[43]](_0x6fde[65]),mxResources[_0x6fde[43]](_0x6fde[66]),mxResources[_0x6fde[43]](_0x6fde[67]),mxResources[_0x6fde[43]](_0x6fde[68]),mxResources[_0x6fde[43]](_0x6fde[69]),mxResources[_0x6fde[43]](_0x6fde[70]),mxResources[_0x6fde[43]](_0x6fde[71])]);this[_0x6fde[49]](_0x6fde[72],mxResources[_0x6fde[43]](_0x6fde[72]),_0x648cx6+ _0x6fde[73],_0x6fde[45],[_0x6fde[74]],[mxResources[_0x6fde[43]](_0x6fde[74])]);this[_0x6fde[49]](_0x6fde[75],mxResources[_0x6fde[43]](_0x6fde[75]),_0x648cx6+ _0x6fde[76],_0x6fde[45],[_0x6fde[77],_0x6fde[78],_0x6fde[79],_0x6fde[80]],[mxResources[_0x6fde[43]](_0x6fde[77]),mxResources[_0x6fde[43]](_0x6fde[78]),mxResources[_0x6fde[43]](_0x6fde[79]),mxResources[_0x6fde[43]](_0x6fde[80])]);this[_0x6fde[49]](_0x6fde[81],mxResources[_0x6fde[43]](_0x6fde[81]),_0x648cx6+ _0x6fde[82],_0x6fde[45],[_0x6fde[83],_0x6fde[84],_0x6fde[85],_0x6fde[86]],[mxResources[_0x6fde[43]](_0x6fde[83]),mxResources[_0x6fde[43]](_0x6fde[84]),mxResources[_0x6fde[43]](_0x6fde[85]),mxResources[_0x6fde[43]](_0x6fde[86])]);this[_0x6fde[49]](_0x6fde[87],mxResources[_0x6fde[43]](_0x6fde[87]),_0x648cx6+ _0x6fde[88],_0x6fde[45],[_0x6fde[89]],[mxResources[_0x6fde[43]](_0x6fde[89])]);this[_0x6fde[49]](_0x6fde[90],mxResources[_0x6fde[43]](_0x6fde[90]),_0x648cx6+ _0x6fde[91],_0x6fde[45],[_0x6fde[92],_0x6fde[93],_0x6fde[94],_0x6fde[95],_0x6fde[96]],[mxResources[_0x6fde[43]](_0x6fde[92]),mxResources[_0x6fde[43]](_0x6fde[93]),mxResources[_0x6fde[43]](_0x6fde[94]),mxResources[_0x6fde[43]](_0x6fde[95]),mxResources[_0x6fde[43]](_0x6fde[96])])};Sidebar[_0x6fde[40]][_0x6fde[97]]= !mxClient[_0x6fde[23]];Sidebar[_0x6fde[40]][_0x6fde[98]]= 16;Sidebar[_0x6fde[40]][_0x6fde[99]]= 3;Sidebar[_0x6fde[40]][_0x6fde[100]]= 300;Sidebar[_0x6fde[40]][_0x6fde[101]]= true;Sidebar[_0x6fde[40]][_0x6fde[102]]= STENCIL_PATH+ _0x6fde[103];Sidebar[_0x6fde[40]][_0x6fde[104]]= 34;Sidebar[_0x6fde[40]][_0x6fde[105]]= 34;Sidebar[_0x6fde[40]][_0x6fde[106]]= 2;Sidebar[_0x6fde[40]][_0x6fde[107]]= 9;Sidebar[_0x6fde[40]][_0x6fde[108]]= false;Sidebar[_0x6fde[40]][_0x6fde[109]]= false;Sidebar[_0x6fde[40]][_0x6fde[110]]= function(_0x648cx7,_0x648cx8,_0x648cx9,_0x648cxa){if(this[_0x6fde[97]]&& this[_0x6fde[4]]){if(this[_0x6fde[32]]!= _0x648cx7){if(this[_0x6fde[111]]!= null){window[_0x6fde[112]](this[_0x6fde[111]]);this[_0x6fde[111]]= null};var _0x648cxb=mxUtils[_0x6fde[25]](this,function(){if(this[_0x6fde[113]]== null){this[_0x6fde[113]]= document[_0x6fde[7]](_0x6fde[6]);this[_0x6fde[113]][_0x6fde[114]]= _0x6fde[115];document[_0x6fde[22]][_0x6fde[21]](this[_0x6fde[113]]);this[_0x6fde[116]]=  new Graph(this[_0x6fde[113]],null,null,this[_0x6fde[1]][_0x6fde[9]][_0x6fde[5]][_0x6fde[8]]());this[_0x6fde[116]][_0x6fde[118]][_0x6fde[117]](this[_0x6fde[98]],this[_0x6fde[98]]);this[_0x6fde[116]][_0x6fde[10]]= false;this[_0x6fde[116]][_0x6fde[11]]= false;this[_0x6fde[116]][_0x6fde[13]]= false;this[_0x6fde[116]][_0x6fde[14]](false);this[_0x6fde[116]][_0x6fde[12]](false);this[_0x6fde[116]][_0x6fde[15]](false);if(!mxClient[_0x6fde[119]]){this[_0x6fde[116]][_0x6fde[118]][_0x6fde[120]][_0x6fde[17]][_0x6fde[19]]= _0x6fde[121]};this[_0x6fde[122]]= mxUtils[_0x6fde[123]](IMAGE_PATH+ _0x6fde[39]);this[_0x6fde[122]][_0x6fde[17]][_0x6fde[19]]= _0x6fde[20];this[_0x6fde[122]][_0x6fde[17]][_0x6fde[124]]= _0x6fde[125];this[_0x6fde[122]][_0x6fde[17]][_0x6fde[126]]= _0x6fde[127];document[_0x6fde[22]][_0x6fde[21]](this[_0x6fde[122]])};this[_0x6fde[113]][_0x6fde[17]][_0x6fde[128]]= _0x6fde[129];this[_0x6fde[116]][_0x6fde[130]]= (_0x648cxa== null|| _0x648cxa);this[_0x6fde[116]][_0x6fde[132]][_0x6fde[131]]();this[_0x6fde[116]][_0x6fde[133]](_0x648cx8);var _0x648cxc=this[_0x6fde[116]][_0x6fde[134]]();var _0x648cxd=_0x648cxc[_0x6fde[124]]+ 2* this[_0x6fde[98]];var _0x648cxe=_0x648cxc[_0x6fde[126]]+ 2* this[_0x6fde[98]];if(mxClient[_0x6fde[135]]){_0x648cxd+= 4;_0x648cxe+= 4;this[_0x6fde[113]][_0x6fde[17]][_0x6fde[136]]= _0x6fde[18]}else {this[_0x6fde[113]][_0x6fde[17]][_0x6fde[136]]= _0x6fde[137]};this[_0x6fde[122]][_0x6fde[17]][_0x6fde[16]]= _0x6fde[137];this[_0x6fde[113]][_0x6fde[17]][_0x6fde[124]]= _0x648cxd+ _0x6fde[138];if(this[_0x6fde[109]]&& _0x648cx9!= null&& _0x648cx9[_0x6fde[139]]> 0){if(this[_0x6fde[140]]== null){this[_0x6fde[140]]= document[_0x6fde[7]](_0x6fde[6]);this[_0x6fde[140]][_0x6fde[17]][_0x6fde[141]]= _0x6fde[142];this[_0x6fde[140]][_0x6fde[17]][_0x6fde[143]]= _0x6fde[144];this[_0x6fde[140]][_0x6fde[17]][_0x6fde[124]]= _0x6fde[145];this[_0x6fde[140]][_0x6fde[17]][_0x6fde[136]]= _0x6fde[18];if(mxClient[_0x6fde[119]]){this[_0x6fde[140]][_0x6fde[17]][_0x6fde[146]]= _0x6fde[147]}else {this[_0x6fde[140]][_0x6fde[17]][_0x6fde[19]]= _0x6fde[20];this[_0x6fde[140]][_0x6fde[17]][_0x6fde[146]]= _0x6fde[148]};this[_0x6fde[113]][_0x6fde[21]](this[_0x6fde[140]])}else {this[_0x6fde[140]][_0x6fde[149]]= _0x6fde[150]};this[_0x6fde[140]][_0x6fde[17]][_0x6fde[128]]= _0x6fde[150];mxUtils[_0x6fde[151]](this[_0x6fde[140]],_0x648cx9);var _0x648cxf=this[_0x6fde[140]][_0x6fde[152]]+ 10;_0x648cxe+= _0x648cxf;if(mxClient[_0x6fde[119]]){this[_0x6fde[140]][_0x6fde[17]][_0x6fde[153]]= (-_0x648cxf) + _0x6fde[138]}else {_0x648cxe-= 6;this[_0x6fde[140]][_0x6fde[17]][_0x6fde[154]]= (_0x648cxe- _0x648cxf)+ _0x6fde[138]}}else {if(this[_0x6fde[140]]!= null&& this[_0x6fde[140]][_0x6fde[33]]!= null){this[_0x6fde[140]][_0x6fde[17]][_0x6fde[128]]= _0x6fde[155]}};this[_0x6fde[113]][_0x6fde[17]][_0x6fde[126]]= _0x648cxe+ _0x6fde[138];var _0x648cx10=-Math[_0x6fde[157]](0,_0x648cxc[_0x6fde[156]]- this[_0x6fde[98]]);var _0x648cx11=-Math[_0x6fde[157]](0,_0x648cxc[_0x6fde[158]]- this[_0x6fde[98]]);var _0x648cx12=this[_0x6fde[2]][_0x6fde[159]]+ this[_0x6fde[1]][_0x6fde[160]]+ 3;var _0x648cx13=Math[_0x6fde[163]](0,(this[_0x6fde[2]][_0x6fde[161]]+ _0x648cx7[_0x6fde[161]]- this[_0x6fde[2]][_0x6fde[162]]- _0x648cxe/ 2+ 16));if(mxClient[_0x6fde[119]]){this[_0x6fde[116]][_0x6fde[118]][_0x6fde[120]][_0x6fde[168]](_0x6fde[164],_0x6fde[165]+ _0x648cx10+ _0x6fde[166]+ _0x648cx11+ _0x6fde[167])}else {this[_0x6fde[116]][_0x6fde[118]][_0x6fde[170]][_0x6fde[17]][_0x6fde[169]]= _0x648cx10+ _0x6fde[138];this[_0x6fde[116]][_0x6fde[118]][_0x6fde[170]][_0x6fde[17]][_0x6fde[154]]= _0x648cx11+ _0x6fde[138]};_0x648cx12+= document[_0x6fde[173]](_0x6fde[172])[_0x6fde[171]];_0x648cx13+= 90;this[_0x6fde[113]][_0x6fde[17]][_0x6fde[19]]= _0x6fde[20];this[_0x6fde[113]][_0x6fde[17]][_0x6fde[169]]= _0x648cx12+ _0x6fde[138];this[_0x6fde[113]][_0x6fde[17]][_0x6fde[154]]= _0x648cx13+ _0x6fde[138];this[_0x6fde[122]][_0x6fde[17]][_0x6fde[169]]= (_0x648cx12- 13)+ _0x6fde[138];this[_0x6fde[122]][_0x6fde[17]][_0x6fde[154]]= (_0x648cx13+ _0x648cxe/ 2- 13)+ _0x6fde[138]});if(this[_0x6fde[113]]!= null&& this[_0x6fde[113]][_0x6fde[17]][_0x6fde[128]]!= _0x6fde[155]){_0x648cxb()}else {this[_0x6fde[111]]= window[_0x6fde[174]](_0x648cxb,this[_0x6fde[100]])};this[_0x6fde[32]]= _0x648cx7}}};Sidebar[_0x6fde[40]][_0x6fde[29]]= function(){if(this[_0x6fde[111]]!= null){window[_0x6fde[112]](this[_0x6fde[111]]);this[_0x6fde[111]]= null};if(this[_0x6fde[113]]!= null){this[_0x6fde[113]][_0x6fde[17]][_0x6fde[128]]= _0x6fde[155];this[_0x6fde[122]][_0x6fde[17]][_0x6fde[16]]= _0x6fde[18];this[_0x6fde[32]]= null}};Sidebar[_0x6fde[40]][_0x6fde[175]]= function(_0x648cx14){var _0x648cx7=document[_0x6fde[7]](_0x6fde[176]);_0x648cx7[_0x6fde[168]](_0x6fde[177],_0x6fde[178]);_0x648cx7[_0x6fde[114]]= _0x6fde[179];mxUtils[_0x6fde[151]](_0x648cx7,_0x648cx14);return _0x648cx7};Sidebar[_0x6fde[40]][_0x6fde[180]]= function(_0x648cx8,_0x648cxd,_0x648cxe,_0x648cx15,_0x648cx9,_0x648cxa){this[_0x6fde[5]][_0x6fde[130]]= (_0x648cxa== null|| _0x648cxa);this[_0x6fde[5]][_0x6fde[118]][_0x6fde[181]](1,0,0);this[_0x6fde[5]][_0x6fde[133]](_0x648cx8);var _0x648cxc=this[_0x6fde[5]][_0x6fde[134]]();var _0x648cx16=this[_0x6fde[99]];var _0x648cx17=Math[_0x6fde[157]]((_0x648cxd- 2)/ (_0x648cxc[_0x6fde[124]]- _0x648cxc[_0x6fde[156]]+ _0x648cx16),(_0x648cxe- 2)/ (_0x648cxc[_0x6fde[126]]- _0x648cxc[_0x6fde[158]]+ _0x648cx16));var _0x648cx10=-Math[_0x6fde[157]](_0x648cxc[_0x6fde[156]],0);var _0x648cx11=-Math[_0x6fde[157]](_0x648cxc[_0x6fde[158]],0);this[_0x6fde[5]][_0x6fde[118]][_0x6fde[181]](_0x648cx17,_0x648cx10,_0x648cx11);_0x648cxc= this[_0x6fde[5]][_0x6fde[134]]();var _0x648cx18=Math[_0x6fde[163]](0,Math[_0x6fde[182]]((_0x648cxd- _0x648cxc[_0x6fde[124]]- _0x648cxc[_0x6fde[156]])/ 2));var _0x648cxf=Math[_0x6fde[163]](0,Math[_0x6fde[182]]((_0x648cxe- _0x648cxc[_0x6fde[126]]- _0x648cxc[_0x6fde[158]])/ 2));var _0x648cx19=null;if(this[_0x6fde[5]][_0x6fde[183]]== mxConstants[_0x6fde[184]]&& !mxClient[_0x6fde[185]]){_0x648cx19= this[_0x6fde[5]][_0x6fde[118]][_0x6fde[188]]()[_0x6fde[187]][_0x6fde[186]](true)}else {_0x648cx19= this[_0x6fde[5]][_0x6fde[2]][_0x6fde[186]](false);_0x648cx19[_0x6fde[149]]= this[_0x6fde[5]][_0x6fde[2]][_0x6fde[149]]};this[_0x6fde[5]][_0x6fde[189]]()[_0x6fde[131]]();if(mxClient[_0x6fde[190]]){_0x648cx15[_0x6fde[17]][_0x6fde[191]]= _0x6fde[192]+ this[_0x6fde[1]][_0x6fde[9]][_0x6fde[193]]+ _0x6fde[167]};var _0x648cx1a=3;_0x648cx19[_0x6fde[17]][_0x6fde[19]]= _0x6fde[121];_0x648cx19[_0x6fde[17]][_0x6fde[136]]= _0x6fde[18];_0x648cx19[_0x6fde[17]][_0x6fde[194]]= _0x6fde[195];_0x648cx19[_0x6fde[17]][_0x6fde[169]]= (_0x648cx18+ _0x648cx1a)+ _0x6fde[138];_0x648cx19[_0x6fde[17]][_0x6fde[154]]= (_0x648cxf+ _0x648cx1a)+ _0x6fde[138];_0x648cx19[_0x6fde[17]][_0x6fde[124]]= _0x648cxd+ _0x6fde[138];_0x648cx19[_0x6fde[17]][_0x6fde[126]]= _0x648cxe+ _0x6fde[138];_0x648cx19[_0x6fde[17]][_0x6fde[16]]= _0x6fde[150];_0x648cx19[_0x6fde[17]][_0x6fde[196]]= _0x6fde[150];_0x648cx19[_0x6fde[17]][_0x6fde[197]]= _0x6fde[150];_0x648cx15[_0x6fde[21]](_0x648cx19);if(this[_0x6fde[108]]&& _0x648cx9!= null){var _0x648cx1b=(mxClient[_0x6fde[135]])?2* this[_0x6fde[106]]+ 2:0;_0x648cx15[_0x6fde[17]][_0x6fde[126]]= (this[_0x6fde[105]]+ _0x648cx1b+ this[_0x6fde[107]]+ 8)+ _0x6fde[138];var _0x648cx1c=document[_0x6fde[7]](_0x6fde[6]);_0x648cx1c[_0x6fde[17]][_0x6fde[198]]= this[_0x6fde[107]]+ _0x6fde[138];_0x648cx1c[_0x6fde[17]][_0x6fde[143]]= _0x6fde[144];_0x648cx1c[_0x6fde[17]][_0x6fde[199]]= _0x6fde[200];if(mxClient[_0x6fde[201]]){_0x648cx1c[_0x6fde[17]][_0x6fde[126]]= (this[_0x6fde[107]]+ 12)+ _0x6fde[138]};_0x648cx1c[_0x6fde[17]][_0x6fde[146]]= _0x6fde[202];mxUtils[_0x6fde[151]](_0x648cx1c,_0x648cx9);_0x648cx15[_0x6fde[21]](_0x648cx1c)}};Sidebar[_0x6fde[40]][_0x6fde[203]]= function(_0x648cx8,_0x648cx9,_0x648cxa){var _0x648cx7=document[_0x6fde[7]](_0x6fde[176]);_0x648cx7[_0x6fde[168]](_0x6fde[177],_0x6fde[178]);_0x648cx7[_0x6fde[114]]= _0x6fde[204];_0x648cx7[_0x6fde[17]][_0x6fde[136]]= _0x6fde[18];var _0x648cx1b=(mxClient[_0x6fde[135]])?8+ 2* this[_0x6fde[106]]:6;_0x648cx7[_0x6fde[17]][_0x6fde[124]]= (this[_0x6fde[104]]+ _0x648cx1b)+ _0x6fde[138];_0x648cx7[_0x6fde[17]][_0x6fde[126]]= (this[_0x6fde[105]]+ _0x648cx1b)+ _0x6fde[138];_0x648cx7[_0x6fde[17]][_0x6fde[205]]= this[_0x6fde[106]]+ _0x6fde[138];mxEvent[_0x6fde[26]](_0x648cx7,_0x6fde[206],function(_0x648cx4){mxEvent[_0x6fde[207]](_0x648cx4)});this[_0x6fde[180]](_0x648cx8,this[_0x6fde[104]],this[_0x6fde[105]],_0x648cx7,_0x648cx9,_0x648cxa);return _0x648cx7};Sidebar[_0x6fde[40]][_0x6fde[208]]= function(_0x648cx8,_0x648cx1d){return function(_0x648cx1e,_0x648cx4,_0x648cx1f,_0x648cx20,_0x648cx21){if(_0x648cx1e[_0x6fde[209]]()){_0x648cx8= _0x648cx1e[_0x6fde[210]](_0x648cx8);if(_0x648cx8[_0x6fde[139]]> 0){var _0x648cx22=(_0x648cx1f!= null)?_0x648cx1e[_0x6fde[211]](_0x648cx1f,_0x648cx8,_0x648cx4):false;var _0x648cx23=null;if(_0x648cx1f!= null&&  !_0x648cx22){_0x648cx1f= null};if(_0x648cx1d&& _0x648cx1e[_0x6fde[212]]()&& _0x648cx1e[_0x6fde[213]](_0x648cx1f,_0x648cx8,_0x648cx4)){_0x648cx1e[_0x6fde[214]](_0x648cx1f,_0x648cx8,null,_0x648cx20,_0x648cx21);_0x648cx23= _0x648cx8}else {if(_0x648cx8[_0x6fde[139]]> 0){_0x648cx23= _0x648cx1e[_0x6fde[215]](_0x648cx8,_0x648cx20,_0x648cx21,_0x648cx1f)}};if(_0x648cx23!= null&& _0x648cx23[_0x6fde[139]]> 0){_0x648cx1e[_0x6fde[216]](_0x648cx23[0]);_0x648cx1e[_0x6fde[217]](_0x648cx23)}}}}};Sidebar[_0x6fde[40]][_0x6fde[218]]= function(_0x648cxd,_0x648cxe){var _0x648cx7=document[_0x6fde[7]](_0x6fde[6]);_0x648cx7[_0x6fde[17]][_0x6fde[219]]= _0x6fde[220];_0x648cx7[_0x6fde[17]][_0x6fde[124]]= _0x648cxd+ _0x6fde[138];_0x648cx7[_0x6fde[17]][_0x6fde[126]]= _0x648cxe+ _0x6fde[138];return _0x648cx7};Sidebar[_0x6fde[40]][_0x6fde[221]]= function(_0x648cx7,_0x648cx24,_0x648cx25){var _0x648cx26=mxUtils[_0x6fde[223]](_0x648cx7,this[_0x6fde[1]][_0x6fde[9]][_0x6fde[5]],_0x648cx24,_0x648cx25,0,0,this[_0x6fde[1]][_0x6fde[9]][_0x6fde[5]][_0x6fde[222]],true,true);_0x648cx26[_0x6fde[224]]= function(_0x648cx1e,_0x648cx20,_0x648cx21){var _0x648cx1f=mxDragSource[_0x6fde[40]][_0x6fde[224]][_0x6fde[225]](this,arguments);if(!_0x648cx1e[_0x6fde[226]](_0x648cx1f)){_0x648cx1f= null};return _0x648cx1f};return _0x648cx26};Sidebar[_0x6fde[40]][_0x6fde[227]]= function(_0x648cx7,_0x648cx27){var _0x648cx1e=this[_0x6fde[1]][_0x6fde[9]][_0x6fde[5]];var _0x648cx28=null;mxEvent[_0x6fde[230]](_0x648cx7,function(_0x648cx4){_0x648cx28=  new mxPoint(mxEvent[_0x6fde[228]](_0x648cx4),mxEvent[_0x6fde[229]](_0x648cx4))});var _0x648cx29=_0x648cx27[_0x6fde[231]];_0x648cx27[_0x6fde[231]]= function(_0x648cx4){if(!mxEvent[_0x6fde[232]](_0x648cx4)&& this[_0x6fde[233]]== null&& _0x648cx28!= null){var _0x648cx2a=_0x648cx1e[_0x6fde[234]];if(Math[_0x6fde[235]](_0x648cx28[_0x6fde[156]]- mxEvent[_0x6fde[228]](_0x648cx4))<= _0x648cx2a&& Math[_0x6fde[235]](_0x648cx28[_0x6fde[158]]- mxEvent[_0x6fde[229]](_0x648cx4))<= _0x648cx2a){var _0x648cx2b=_0x648cx1e[_0x6fde[236]]();_0x648cx27[_0x6fde[237]](_0x648cx1e,_0x648cx4,null,_0x648cx2b,_0x648cx2b)}};_0x648cx29[_0x6fde[225]](this,arguments);_0x648cx28= null}};Sidebar[_0x6fde[40]][_0x6fde[238]]= function(_0x648cx2c,_0x648cx14,_0x648cx2d,_0x648cx2e){var _0x648cx2f=mxUtils[_0x6fde[238]]();var _0x648cx19=_0x648cx2f[_0x6fde[7]](_0x648cx2c);_0x648cx19[_0x6fde[168]](_0x6fde[239],_0x648cx14);_0x648cx2d[_0x6fde[240]](function(_0x648cx30,_0x648cx31){_0x648cx19[_0x6fde[168]](_0x648cx30,_0x648cx2e[_0x648cx31]?_0x648cx2e[_0x648cx31]:_0x6fde[150])});return _0x648cx19};Sidebar[_0x6fde[40]][_0x6fde[241]]= function(_0x648cx32,_0x648cxd,_0x648cxe,_0x648cx33,_0x648cx9,_0x648cxa){var _0x648cx2d=[];var _0x648cx2e=[];switch(_0x648cx33){case _0x6fde[52]:break;case _0x6fde[78]:_0x648cx2d= [_0x6fde[242],_0x6fde[132],_0x6fde[243],_0x6fde[244],_0x6fde[245],_0x6fde[246]];_0x648cx2e= [_0x6fde[150],0,_0x6fde[247],1,_0x6fde[248],true];break;case _0x6fde[63]:_0x648cx2d= [_0x6fde[249],_0x6fde[250]];_0x648cx2e= [_0x6fde[251]];break;case _0x6fde[256]:_0x648cx2d= [_0x6fde[249],_0x6fde[252],_0x6fde[253]];_0x648cx2e= [_0x6fde[251],_0x6fde[254],_0x6fde[255]];break;case _0x6fde[65]:_0x648cx2d= [_0x6fde[249],_0x6fde[252],_0x6fde[253],_0x6fde[257],_0x6fde[258]];_0x648cx2e= [_0x6fde[251],_0x6fde[254],_0x6fde[255],_0x6fde[255],_0x6fde[251]];break;case _0x6fde[71]:_0x648cx2d= [_0x6fde[249],_0x6fde[252],_0x6fde[259],_0x6fde[260],_0x6fde[257],_0x6fde[258]];_0x648cx2e= [_0x6fde[251],_0x6fde[254],_0x6fde[255],_0x6fde[261],_0x6fde[255],_0x6fde[251]];break;case _0x6fde[96]:_0x648cx2d= [_0x6fde[262],_0x6fde[263]];_0x648cx2e= [_0x6fde[150],_0x6fde[150]];break;case _0x6fde[61]:_0x648cx2d= [_0x6fde[258],_0x6fde[264]];_0x648cx2e= [_0x6fde[251],_0x6fde[150]];break;case _0x6fde[77]:_0x648cx2d= [_0x6fde[265],_0x6fde[266],_0x6fde[258]];_0x648cx2e= [_0x6fde[251],_0x6fde[150],_0x6fde[251]];break;case _0x6fde[92]:_0x648cx2d= [_0x6fde[267]];_0x648cx2e= [];break;case _0x6fde[83]:_0x648cx2d= [_0x6fde[268],_0x6fde[269]];_0x648cx2e= [];break;case _0x6fde[93]:_0x648cx2d= [_0x6fde[258],_0x6fde[270]];_0x648cx2e= [];break;case _0x6fde[94]:_0x648cx2d= [_0x6fde[271],_0x6fde[270]];_0x648cx2e= [];break;case _0x6fde[84]:_0x648cx2d= [_0x6fde[272]];_0x648cx2e= [];break;case _0x6fde[85]:_0x648cx2d= [_0x6fde[273]];_0x648cx2e= [_0x6fde[251]];break;case _0x6fde[274]:_0x648cx2d= [_0x6fde[273]];_0x648cx2e= [_0x6fde[251]];break;case _0x6fde[86]:_0x648cx2d= [_0x6fde[258]];_0x648cx2e= [_0x6fde[251]];break;case _0x6fde[66]:_0x648cx2d= [_0x6fde[275],_0x6fde[276]];_0x648cx2e= [_0x6fde[150],_0x6fde[248]];break;case _0x6fde[67]:_0x648cx2d= [_0x6fde[277],_0x6fde[276]];_0x648cx2e= [_0x6fde[150],_0x6fde[248]];break;case _0x6fde[68]:_0x648cx2d= [_0x6fde[278],_0x6fde[276]];_0x648cx2e= [_0x6fde[150],_0x6fde[248]];break;case _0x6fde[74]:_0x648cx2d= [_0x6fde[279],_0x6fde[244],_0x6fde[276]];_0x648cx2e= [_0x6fde[150],_0x6fde[280],_0x6fde[248]];break;case _0x6fde[54]:_0x648cx2d= [_0x6fde[281],_0x6fde[244],_0x6fde[96],_0x6fde[282]];_0x648cx2e= [_0x6fde[251],_0x6fde[283]];break;case _0x6fde[55]:_0x648cx2d= [_0x6fde[284],_0x6fde[285],_0x6fde[244],_0x6fde[250],_0x6fde[282]];_0x648cx2e= [_0x6fde[150],_0x6fde[280],_0x6fde[283]];break;case _0x6fde[69]:_0x648cx2d= [_0x6fde[278],_0x6fde[286]];_0x648cx2e= [_0x6fde[150],_0x6fde[287]];break;case _0x6fde[70]:_0x648cx2d= [_0x6fde[278],_0x6fde[242],_0x6fde[288],_0x6fde[289],_0x6fde[245]];_0x648cx2e= [_0x6fde[150],_0x6fde[150],_0x6fde[290],_0x6fde[251],_0x6fde[248]];break;case _0x6fde[56]:_0x648cx2d= [_0x6fde[291],_0x6fde[250],_0x6fde[282],_0x6fde[249],_0x6fde[244],_0x6fde[94],_0x6fde[292],_0x6fde[293],_0x6fde[19]];_0x648cx2e= [_0x6fde[280],_0x6fde[150],_0x6fde[150],_0x6fde[251],_0x6fde[294]];break;case _0x6fde[57]:_0x648cx2d= [_0x6fde[295],_0x6fde[263]];_0x648cx2e= [_0x6fde[150],_0x6fde[150]];break;case _0x6fde[95]:_0x648cx2d= [_0x6fde[296]];_0x648cx2e= [_0x6fde[251]];break;case _0x6fde[62]:_0x648cx2d= [_0x6fde[297],_0x6fde[258]];_0x648cx2e= [_0x6fde[150],_0x6fde[251]];break;case _0x6fde[306]:_0x648cx2d= [_0x6fde[298],_0x6fde[299],_0x6fde[300],_0x6fde[301],_0x6fde[302],_0x6fde[303],_0x6fde[304],_0x6fde[305]];_0x648cx2e= [];break;case _0x6fde[89]:_0x648cx2d= [_0x6fde[307]];_0x648cx2e= [];break;case _0x6fde[58]:_0x648cx2d= [_0x6fde[308],_0x6fde[284],_0x6fde[309],_0x6fde[310]];_0x648cx2e= [_0x6fde[150],_0x6fde[311],_0x6fde[251],_0x6fde[254]];break;case _0x6fde[79]:_0x648cx2d= [_0x6fde[312],_0x6fde[313],_0x6fde[314]];_0x648cx2e= [_0x6fde[251]];break;case _0x6fde[80]:_0x648cx2d= [_0x6fde[312],_0x6fde[313],_0x6fde[315],_0x6fde[316],_0x6fde[278]];_0x648cx2e= [_0x6fde[251]];break;default:_0x648cx2d= [];_0x648cx2e= [];break};var _0x648cx19=this[_0x6fde[238]](_0x648cx33,_0x648cx9,_0x648cx2d,_0x648cx2e);var _0x648cx8=[ new mxCell(_0x648cx19, new mxGeometry(0,0,_0x648cxd,_0x648cxe),_0x648cx32)];_0x648cx8[0][_0x6fde[317]]= true;return this[_0x6fde[318]](_0x648cx8,_0x648cxd,_0x648cxe,_0x648cx9,_0x648cxa)};Sidebar[_0x6fde[40]][_0x6fde[318]]= function(_0x648cx8,_0x648cxd,_0x648cxe,_0x648cx9,_0x648cxa){var _0x648cx7=this[_0x6fde[203]](_0x648cx8,_0x648cx9,_0x648cxa);var _0x648cx27=this[_0x6fde[221]](_0x648cx7,this[_0x6fde[208]](_0x648cx8,true),this[_0x6fde[218]](_0x648cxd,_0x648cxe));this[_0x6fde[227]](_0x648cx7,_0x648cx27);_0x648cx27[_0x6fde[319]]= mxUtils[_0x6fde[25]](this,function(){return this[_0x6fde[1]][_0x6fde[9]][_0x6fde[5]][_0x6fde[321]][_0x6fde[320]]});if(!touchStyle){mxEvent[_0x6fde[26]](_0x648cx7,_0x6fde[30],mxUtils[_0x6fde[25]](this,function(_0x648cx4){this[_0x6fde[110]](_0x648cx7,_0x648cx8,_0x648cx9,_0x648cxa)}))};return _0x648cx7};Sidebar[_0x6fde[40]][_0x6fde[322]]= function(_0x648cx32,_0x648cxd,_0x648cxe,_0x648cx33,_0x648cx9,_0x648cxa){var _0x648cx8=[ new mxCell((_0x648cx33!= null)?_0x648cx33:_0x6fde[150], new mxGeometry(0,0,_0x648cxd,_0x648cxe),_0x648cx32)];_0x648cx8[0][_0x6fde[324]][_0x6fde[323]]( new mxPoint(0,_0x648cxe),true);_0x648cx8[0][_0x6fde[324]][_0x6fde[323]]( new mxPoint(_0x648cxd,0),false);_0x648cx8[0][_0x6fde[324]][_0x6fde[121]]= true;_0x648cx8[0][_0x6fde[325]]= true;return this[_0x6fde[326]](_0x648cx8,_0x648cxd,_0x648cxe,_0x648cx9,_0x648cxa)};Sidebar[_0x6fde[40]][_0x6fde[326]]= function(_0x648cx8,_0x648cxd,_0x648cxe,_0x648cx9,_0x648cxa){var _0x648cx7=this[_0x6fde[203]](_0x648cx8,_0x648cx9,_0x648cxa);this[_0x6fde[221]](_0x648cx7,this[_0x6fde[208]](_0x648cx8,false),this[_0x6fde[218]](_0x648cxd,_0x648cxe));var _0x648cx1e=this[_0x6fde[1]][_0x6fde[9]][_0x6fde[5]];mxEvent[_0x6fde[26]](_0x648cx7,_0x6fde[206],mxUtils[_0x6fde[25]](this,function(_0x648cx4){if(this[_0x6fde[101]]){_0x648cx1e[_0x6fde[327]](_0x648cx8[0])};_0x648cx7[_0x6fde[17]][_0x6fde[328]]= _0x6fde[329];window[_0x6fde[174]](function(){_0x648cx7[_0x6fde[17]][_0x6fde[328]]= _0x6fde[150]},300);mxEvent[_0x6fde[207]](_0x648cx4)}));if(!touchStyle){mxEvent[_0x6fde[26]](_0x648cx7,_0x6fde[30],mxUtils[_0x6fde[25]](this,function(_0x648cx4){this[_0x6fde[110]](_0x648cx7,_0x648cx8,_0x648cx9,_0x648cxa)}))};return _0x648cx7};Sidebar[_0x6fde[40]][_0x6fde[330]]= function(_0x648cx34,_0x648cx9,_0x648cx35,_0x648cx36){var _0x648cx7=this[_0x6fde[175]](_0x648cx9);this[_0x6fde[2]][_0x6fde[21]](_0x648cx7);var _0x648cx1c=document[_0x6fde[7]](_0x6fde[6]);_0x648cx1c[_0x6fde[114]]= _0x6fde[331];if(_0x648cx35){_0x648cx36(_0x648cx1c);_0x648cx36= null}else {_0x648cx1c[_0x6fde[17]][_0x6fde[128]]= _0x6fde[155]};this[_0x6fde[332]](_0x648cx7,_0x648cx1c,_0x648cx36);var _0x648cx37=document[_0x6fde[7]](_0x6fde[6]);_0x648cx37[_0x6fde[21]](_0x648cx1c);this[_0x6fde[2]][_0x6fde[21]](_0x648cx37);if(_0x648cx34!= null){this[_0x6fde[3]][_0x648cx34]= [_0x648cx7,_0x648cx37]}};Sidebar[_0x6fde[40]][_0x6fde[332]]= function(_0x648cx9,_0x648cx38,_0x648cx39){var _0x648cx3a=false;_0x648cx9[_0x6fde[17]][_0x6fde[191]]= (_0x648cx38[_0x6fde[17]][_0x6fde[128]]== _0x6fde[155])?_0x6fde[192]+ IMAGE_PATH+ _0x6fde[333]:_0x6fde[192]+ IMAGE_PATH+ _0x6fde[334];_0x648cx9[_0x6fde[17]][_0x6fde[335]]= _0x6fde[336];_0x648cx9[_0x6fde[17]][_0x6fde[337]]= _0x6fde[338];mxEvent[_0x6fde[26]](_0x648cx9,_0x6fde[206],function(_0x648cx4){if(_0x648cx38[_0x6fde[17]][_0x6fde[128]]== _0x6fde[155]){if(!_0x648cx3a){_0x648cx3a= true;if(_0x648cx39!= null){_0x648cx9[_0x6fde[17]][_0x6fde[194]]= _0x6fde[339];window[_0x6fde[174]](function(){_0x648cx39(_0x648cx38);_0x648cx9[_0x6fde[17]][_0x6fde[194]]= _0x6fde[150]},0)}};_0x648cx9[_0x6fde[17]][_0x6fde[191]]= _0x6fde[192]+ IMAGE_PATH+ _0x6fde[334];_0x648cx38[_0x6fde[17]][_0x6fde[128]]= _0x6fde[129]}else {_0x648cx9[_0x6fde[17]][_0x6fde[191]]= _0x6fde[192]+ IMAGE_PATH+ _0x6fde[333];_0x648cx38[_0x6fde[17]][_0x6fde[128]]= _0x6fde[155]};mxEvent[_0x6fde[207]](_0x648cx4)})};Sidebar[_0x6fde[40]][_0x6fde[340]]= function(_0x648cx34){var _0x648cx3b=this[_0x6fde[3]][_0x648cx34];if(_0x648cx3b!= null){this[_0x6fde[3]][_0x648cx34]= null;for(var _0x648cx3c=0;_0x648cx3c< _0x648cx3b[_0x6fde[139]];_0x648cx3c++){this[_0x6fde[2]][_0x6fde[341]](_0x648cx3b[_0x648cx3c])};return true};return false};Sidebar[_0x6fde[40]][_0x6fde[49]]= function(_0x648cx34,_0x648cx9,_0x648cx3d,_0x648cx3e,_0x648cx3f,_0x648cx40){this[_0x6fde[330]](_0x648cx34,_0x648cx9,(_0x648cx34=== _0x6fde[42]),mxUtils[_0x6fde[25]](this,function(_0x648cx38){var _0x648cx41=_0x648cx40!= null;for(var _0x648cx3c=0;_0x648cx3c< _0x648cx3f[_0x6fde[139]];_0x648cx3c++){var _0x648cx42=_0x648cx3d+ _0x648cx3f[_0x648cx3c]+ _0x648cx3e;_0x648cx38[_0x6fde[21]](this[_0x6fde[241]](_0x6fde[342]+ _0x648cx42,80,80,_0x648cx3f[_0x648cx3c],(_0x648cx41)?_0x648cx40[_0x648cx3c]:null,_0x648cx41))}}))}
\ No newline at end of file