6.2.0 release

This commit is contained in:
Gaudenz Alder 2017-02-22 14:12:09 +01:00
parent ce34b70605
commit c61cdfff95
44 changed files with 21531 additions and 21757 deletions

View file

@ -1,3 +1,14 @@
22-FEB-2017: 6.2.0
- Fixes encoding errors in GitHub client
- Checks size in GitHub and Dropbox
- Fixes initial SVG file contents
- Adds target=frame URL parameter
- Moves cookies to local storage
- Adds recent files in splash
- Uses mxGraph 3.7.0.2 beta 5
- Uses Dropbox API v2
17-FEB-2017: 6.1.2
- Uses semantic versioning

View file

@ -1 +1 @@
6.1.2
6.2.0

View file

@ -306,16 +306,13 @@
<file name="Graph-Stylesheet.js" />
</sources>
<sources dir="${war.dir}/js/dropbox">
<file name="dropbox.min.js" />
</sources>
<sources dir="${war.dir}/js/diagramly/util">
<file name="mxAsyncCanvas.js" />
<file name="mxJsCanvas.js" />
</sources>
<sources dir="${war.dir}/js/diagramly">
<file name="DrawioClient.js" />
<file name="DrawioUser.js" />
<file name="UrlLibrary.js" />
<file name="DriveRealtime.js" />

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -121,11 +121,6 @@ public class GitHubServlet extends HttpServlet
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Post parameters : " + urlParameters);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
@ -136,10 +131,9 @@ public class GitHubServlet extends HttpServlet
res.append(inputLine);
}
in.close();
//print result
System.out.println(res.toString());
response.setStatus(con.getResponseCode());
OutputStream out = response.getOutputStream();
// Creates XML for stencils
@ -148,7 +142,6 @@ public class GitHubServlet extends HttpServlet
// Writes JavaScript and adds function call with
// stylesheet and stencils as arguments
writer.println(res.toString());
response.setStatus(HttpServletResponse.SC_OK);
writer.flush();
writer.close();

View file

@ -1,7 +1,7 @@
CACHE MANIFEST
# THIS FILE WAS GENERATED. DO NOT MODIFY!
# 02/17/2017 07:08 AM
# 02/22/2017 02:03 PM
app.html
index.html?offline=1

View file

@ -4,9 +4,33 @@
<title></title>
</head>
<body>
<script src="js/dropbox/dropbox.min.js"></script>
<script type="text/javascript">
Dropbox.AuthDriver.Popup.oauthReceiver();
<script>
try
{
if (window.opener != null && window.opener.onDropboxCallback != null)
{
var hash = window.location.hash;
var i1 = hash.indexOf('access_token=');
var token = null;
if (i1 >= 0)
{
var i2 = hash.indexOf('&', i1 + 13);
if (i2 > i1)
{
token = hash.substring(i1 + 13, i2);
}
}
// Continues execution of main program flow
window.opener.onDropboxCallback(token, window);
}
}
catch (e)
{
// ignore
}
</script>
</body>
</html>

View file

@ -1,107 +1,61 @@
const fs = require('fs')
const path = require('path')
const electron = require('electron')
const ipcMain = electron.ipcMain
const dialog = electron.dialog
const app = electron.app
const BrowserWindow = electron.BrowserWindow
const electron = require('electron');
const remote = electron.remote;
const dialog = electron.dialog;
var fs = require('fs');
var path = require('path');
let windowsRegistry = []
// Module to control application life.
const app = electron.app;
// Module to create native browser window.
const BrowserWindow = electron.BrowserWindow;
function createWindow (opt = {}) {
let options = Object.assign({
width: 1600,
height: 1200,
'web-security': false,
}, opt)
// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
let mainWindow
let mainWindow = new BrowserWindow(options)
windowsRegistry.push(mainWindow)
console.log('createWindow', opt)
function createWindow()
{
// Create the browser window.
mainWindow = new BrowserWindow({width: 1600, height: 1200, "web-security" : false});
// and load the index.html of the app.
mainWindow.loadURL(
`file://${__dirname}/index.html?dev=1&test=1&db=0&gapi=0&od=0&analytics=0&picker=0&mode=device&browser=0&p=electron`)
mainWindow.loadURL(`file://${__dirname}/index.html?dev=1&test=1&db=0&gapi=0&od=0&analytics=0&picker=0&mode=device&browser=0&p=electron`);
// Open the DevTools.
mainWindow.webContents.openDevTools()
mainWindow.on('close', (event/*:WindowEvent*/) => {
const win = event.sender
const index = windowsRegistry.indexOf(win)
console.log('Window on close idx:%d', index)
const contents = win.webContents
if (contents != null) {
contents.executeJavaScript(`global.__emt_isModified()`, true,
isModified => {
console.log('__emt_isModified', isModified)
if (isModified) {
var choice = dialog.showMessageBox(
win,
{
type: 'question',
buttons: ['Yes', 'No'],
title: 'Confirm',
message: 'All Changes will be lost' //mxResources.get('allChangesLost')
})
if (choice === 0) {
win.destroy()
}
} else {
win.destroy()
}
})
event.preventDefault()
}
})
mainWindow.webContents.openDevTools();
// Emitted when the window is closed.
mainWindow.on('closed', (event/*:WindowEvent*/) => {
const index = windowsRegistry.indexOf(event.sender)
console.log('Window closed idx:%d', index)
windowsRegistry.splice(index, 1)
})
return mainWindow.id
mainWindow.on('closed', function()
{
// Dereference the window object, usually you would store windows
// in an array if your app supports multi windows, this is the time
// when you should delete the corresponding element.
mainWindow = null;
});
}
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.on('ready', e => {
//asynchronous
ipcMain.on('asynchronous-message', (event, arg) => {
console.log(arg) // prints "ping"
event.sender.send('asynchronous-reply', 'pong')
})
//synchronous
ipcMain.on('winman', (event, arg) => {
console.log('ipcMain.on winman', arg)
if (arg.action === 'newfile') {
event.returnValue = createWindow(arg.opt)
return
}
event.returnValue = 'pong'
})
createWindow()
})
app.on('ready', createWindow)
// Quit when all windows are closed.
app.on('window-all-closed', function () {
console.log('window-all-closed', windowsRegistry.length)
app.on('window-all-closed', function()
{
// On OS X it is common for applications and their menu bar
// to stay active until the user quits explicitly with Cmd + Q
if (process.platform !== 'darwin') {
if (process.platform !== 'darwin')
{
app.quit()
}
})
app.on('activate', function () {
console.log('app on activate', windowsRegistry.length)
app.on('activate', function()
{
// On OS X it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (windowsRegistry.length === 0) {
if (mainWindow === null)
{
createWindow()
}
})

View file

@ -31,6 +31,7 @@
data.border = parseInt(data.border) || 0;
data.w = parseFloat(data.w) || 0;
data.h = parseFloat(data.h) || 0;
data.scale = parseFloat(data.scale) || 1;
// Parses XML
var xmlDoc = mxUtils.parseXml(data.xml);
@ -201,7 +202,7 @@
}
else
{
graph.view.setTranslate(Math.floor(data.border - b.x),
graph.view.scaleAndTranslate(data.scale, Math.floor(data.border - b.x),
Math.floor(data.border - b.y));
}
}

View file

@ -7,10 +7,16 @@
<script>
try
{
if (window.opener != null)
if (window.opener != null && window.opener.onGitHubCallback != null)
{
var search = window.location.search;
var code = search.substring(search.indexOf('code=') + 5);
var idx1 = search.indexOf('code=');
var code = null;
if (idx1 >= 0)
{
code = search.substring(idx1 + 5);
}
// Continues execution of main program flow
window.opener.onGitHubCallback(code, window);

14929
war/js/app.min.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

12491
war/js/atlas.min.js vendored

File diff suppressed because one or more lines are too long

View file

@ -28,7 +28,16 @@ App = function(editor, container, lightbox)
// Global helper method to deal with popup blockers
window.openWindow = mxUtils.bind(this, function(url, pre, fallback)
{
var wnd = window.open(url);
var wnd = null;
try
{
wnd = window.open(url);
}
catch (e)
{
// ignore
}
if (wnd == null || wnd === undefined)
{
@ -168,7 +177,12 @@ App.getStoredMode = function()
{
var mode = null;
if (typeof(Storage) != 'undefined')
if (mode == null && isLocalStorage)
{
mode = localStorage.getItem('.mode');
}
if (mode == null && typeof(Storage) != 'undefined')
{
var cookies = document.cookie.split(";");
@ -183,6 +197,15 @@ App.getStoredMode = function()
break;
}
}
if (mode != null && isLocalStorage)
{
// Moves to local storage
var expiry = new Date();
expiry.setYear(expiry.getFullYear() - 1);
document.cookie = 'MODE=; expires=' + expiry.toUTCString();
localStorage.setItem('.mode', mode);
}
}
return mode;
@ -258,7 +281,11 @@ App.getStoredMode = function()
if (App.mode == App.MODE_DROPBOX || (window.location.hash != null &&
window.location.hash.substring(0, 2) == '#D'))
{
mxscript('https://www.dropbox.com/static/api/1/dropins.js', null, 'dropboxjs', App.DROPBOX_APPKEY);
mxscript('https://unpkg.com/dropbox/dist/Dropbox-sdk.min.js');
// Must load this after the dropbox SDK since they use the same namespace
mxscript('https://www.dropbox.com/static/api/2/dropins.js',
null, 'dropboxjs', App.DROPBOX_APPKEY);
}
else if (urlParams['chrome'] == '0')
{
@ -558,13 +585,19 @@ App.main = function(callback)
// Loads dropbox for all browsers but IE8 and below (no CORS) if not disabled or if enabled and in embed mode
// KNOWN: Picker does not work in IE11 (https://dropbox.zendesk.com/requests/1650781)
if (typeof window.DropboxClient === 'function' &&
(window.Dropbox != null && typeof Dropbox.choose === 'undefined' &&
window.DrawDropboxClientCallback != null &&
(window.Dropbox == null && window.DrawDropboxClientCallback != null &&
(((urlParams['embed'] != '1' && urlParams['db'] != '0') ||
(urlParams['embed'] == '1' && urlParams['db'] == '1')) &&
isSvgBrowser && (document.documentMode == null || document.documentMode > 9))))
{
mxscript('https://www.dropbox.com/static/api/1/dropins.js', window.DrawDropboxClientCallback, 'dropboxjs', App.DROPBOX_APPKEY);
mxscript('https://unpkg.com/dropbox/dist/Dropbox-sdk.min.js', function()
{
// Must load this after the dropbox SDK since they use the same namespace
mxscript('https://www.dropbox.com/static/api/2/dropins.js', function()
{
DrawDropboxClientCallback();
}, 'dropboxjs', App.DROPBOX_APPKEY);
});
}
// Disables client
else if (typeof window.Dropbox === 'undefined' || typeof window.Dropbox.choose === 'undefined')
@ -1251,7 +1284,7 @@ App.prototype.updateActionStates = function()
};
/**
* Sets the onbeforeunload for the application
* Updates draft in local storage
*/
App.prototype.updateDraft = function()
{
@ -1262,7 +1295,7 @@ App.prototype.updateDraft = function()
};
/**
* Sets the onbeforeunload for the application
* Returns the draft in local storage
*/
App.prototype.getDraft = function()
{
@ -1288,7 +1321,7 @@ App.prototype.getDraft = function()
};
/**
* Sets the onbeforeunload for the application
* Adds the specified entry to the recent file list in local storage
*/
App.prototype.addRecent = function(entry)
{
@ -1321,7 +1354,7 @@ App.prototype.addRecent = function(entry)
};
/**
* Sets the onbeforeunload for the application
* Returns the recent file list from local storage
*/
App.prototype.getRecent = function()
{
@ -1346,7 +1379,7 @@ App.prototype.getRecent = function()
};
/**
* Sets the onbeforeunload for the application
* Clears the recent file list in local storage
*/
App.prototype.resetRecent = function(entry)
{
@ -1364,7 +1397,7 @@ App.prototype.resetRecent = function(entry)
};
/**
* Sets the onbeforeunload for the application
* Clears the draft save in local storage
*/
App.prototype.removeDraft = function()
{
@ -1636,11 +1669,18 @@ App.prototype.createBackground = function()
Editor.useLocalStorage = this.mode == App.MODE_BROWSER;
}
if (typeof(Storage) != 'undefined' && remember)
if (remember)
{
var expiry = new Date();
expiry.setYear(expiry.getFullYear() + 1);
document.cookie = 'MODE=' + mode + '; expires=' + expiry.toUTCString();
if (isLocalStorage)
{
localStorage.setItem('.mode', mode);
}
else if (typeof(Storage) != 'undefined')
{
var expiry = new Date();
expiry.setYear(expiry.getFullYear() + 1);
document.cookie = 'MODE=' + mode + '; expires=' + expiry.toUTCString();
}
}
if (this.appIcon != null)
@ -1730,7 +1770,11 @@ App.prototype.appIconClicked = function(evt)
*/
App.prototype.clearMode = function()
{
if (typeof(Storage) != 'undefined')
if (isLocalStorage)
{
localStorage.removeItem('.mode');
}
else if (typeof(Storage) != 'undefined')
{
var expiry = new Date();
expiry.setYear(expiry.getFullYear() - 1);
@ -2169,6 +2213,9 @@ App.prototype.start = function()
title = this.defaultFilename;
}
var serviceCount = this.getServiceCount(true);
var rowLimit = (serviceCount <= 4) ? 4 : 3;
var dlg = new CreateDialog(this, title, mxUtils.bind(this, function(filename, mode)
{
if (mode == null)
@ -2183,8 +2230,8 @@ App.prototype.start = function()
{
this.createFile(filename, this.getFileData(true), null, mode);
}
}), null, null, null, null, urlParams['browser'] == '1', null, null, true);
this.showDialog(dlg.container, 380, (this.getServiceCount(true) < 4) ? 270 : 390,
}), null, null, null, null, urlParams['browser'] == '1', null, null, true, rowLimit);
this.showDialog(dlg.container, 380, (serviceCount > rowLimit) ? 390 : 270,
true, false, mxUtils.bind(this, function(cancel)
{
if (cancel && this.getCurrentFile() == null)
@ -2802,6 +2849,7 @@ App.prototype.saveFile = function(forceDialog)
var prev = this.mode;
var serviceCount = this.getServiceCount(true);
var rowLimit = (serviceCount <= 4) ? 4 : 3;
var dlg = new CreateDialog(this, filename, mxUtils.bind(this, function(name, mode)
{
@ -2836,7 +2884,7 @@ App.prototype.saveFile = function(forceDialog)
name.indexOf('.') < 0, /(\.svg)$/i.test(name),
/(\.html)$/i.test(name)), null, mode, done,
this.mode == null, folderId);
}));
}), mode !== App.MODE_GITHUB);
}
else if (mode != null)
{
@ -2847,8 +2895,10 @@ App.prototype.saveFile = function(forceDialog)
{
this.hideDialog();
}), mxResources.get('saveAs'), mxResources.get('download'), null, null, allowTab,
(this.isOffline()) ? null : 'https://support.draw.io/questions/9338901', true);
this.showDialog(dlg.container, 460, (serviceCount < 4) ? 270 : 390, true, true);
(this.isOffline()) ? null :
'https://desk.draw.io/support/solutions/articles/16000042485-what-file-extensions-are-supported-',
true, rowLimit);
this.showDialog(dlg.container, 460, (serviceCount > rowLimit) ? 390 : 270, true, true);
dlg.init();
}
}
@ -3060,17 +3110,89 @@ App.prototype.fileCreated = function(file, libs, replace, done)
// to save the file again since it needs the newly created file ID for redirecting in HTML
if (this.spinner.spin(document.body, mxResources.get('inserting')))
{
var redirect = window.location.protocol + '//' + window.location.hostname + url;
var prev = this.getFileData(true);
var data = file.getData();
var dataNode = (data.length > 0) ? this.editor.extractGraphModel(
mxUtils.parseXml(data).documentElement, true) : null;
var redirect = window.location.protocol + '//' + window.location.hostname + url;
var graph = null;
// Updates display to fetch graphical output for graphics file formats (eg. svg)
this.setFileData(data);
file.setData(this.createFileData(this.getXmlFileData(), null, file, redirect));
// Handles special case where SVG files need a rendered graph to be saved
if (!/\.svg$/i.test(name) && dataNode != null)
{
graph = this.createTemporaryGraph(this.editor.graph.getStylesheet());
// Restores display for current diagram
this.setFileData(prev);
document.body.appendChild(graph.container);
node = dataNode;
if (node != null)
{
var diagramNode = null;
if (node.nodeName == 'diagram')
{
diagramNode = node;
}
else if (node.nodeName == 'mxfile')
{
var diagrams = node.getElementsByTagName('diagram');
if (diagrams.length > 0)
{
diagramNode = diagrams[0];
var graphGetGlobalVariable = graph.getGlobalVariable;
graph.getGlobalVariable = function(name)
{
if (name == 'page')
{
return diagramNode.getAttribute('name') || mxResources.get('pageWithNumber', [1])
}
else if (name == 'pagenumber')
{
return 1;
}
return graphGetGlobalVariable.apply(this, arguments);
};
}
}
if (diagramNode != null)
{
var tmp = graph.decompress(mxUtils.getTextContent(diagramNode));
if (tmp != null && tmp.length > 0)
{
node = mxUtils.parseXml(tmp).documentElement;
}
}
}
// Hack to decode XML into temp graph via editor
var prev = this.editor.graph;
try
{
this.editor.graph = graph;
this.editor.setGraphXml(node);
}
catch (e)
{
// ignore
}
finally
{
this.editor.graph = prev;
}
}
file.setData(this.createFileData(dataNode, graph, file, redirect));
if (graph != null)
{
graph.container.parentNode.removeChild(graph.container);
}
var complete = mxUtils.bind(this, function()
{
this.spinner.stop();
@ -3161,8 +3283,8 @@ App.prototype.loadFile = function(id, sameWindow, file)
{
this.handleError({message: mxResources.get('serviceUnavailableOrBlocked')}, mxResources.get('errorLoadingFile'), mxUtils.bind(this, function()
{
var file = this.getCurrentFile();
window.location.hash = (file != null) ? file.getHash() : '';
var tempFile = this.getCurrentFile();
window.location.hash = (tempFile != null) ? tempFile.getHash() : '';
}));
}
else
@ -3185,8 +3307,8 @@ App.prototype.loadFile = function(id, sameWindow, file)
{
this.handleError(e, mxResources.get('errorLoadingFile'), mxUtils.bind(this, function()
{
var file = this.getCurrentFile();
window.location.hash = (file != null) ? file.getHash() : '';
var tempFile = this.getCurrentFile();
window.location.hash = (tempFile != null) ? tempFile.getHash() : '';
}));
}
}
@ -3208,13 +3330,13 @@ App.prototype.loadFile = function(id, sameWindow, file)
data = this.editor.graph.decompress(data);
}
var file = new LocalFile(this, data, (urlParams['title'] != null) ?
var tempFile = new LocalFile(this, data, (urlParams['title'] != null) ?
decodeURIComponent(urlParams['title']) : this.defaultFilename, true);
file.getHash = function()
tempFile.getHash = function()
{
return id;
};
this.fileLoaded(file);
this.fileLoaded(tempFile);
}
else if (id.charAt(0) == 'U')
{
@ -3252,14 +3374,14 @@ App.prototype.loadFile = function(id, sameWindow, file)
}
}
var file = new LocalFile(this, text, (urlParams['title'] != null) ?
var tempFile = new LocalFile(this, text, (urlParams['title'] != null) ?
decodeURIComponent(urlParams['title']) : filename, true);
file.getHash = function()
tempFile.getHash = function()
{
return id;
};
if (!this.fileLoaded(file))
if (!this.fileLoaded(tempFile))
{
// Fallback for non-public Google Drive diagrams
if (url.substring(0, 31) == 'https://drive.google.com/uc?id=' &&
@ -3395,6 +3517,10 @@ App.prototype.getLibraryStorageHint = function(file)
{
tip += ' (' + mxResources.get('googleDrive') + ')';
}
else if (file.constructor == GitHubLibrary)
{
tip += ' (' + mxResources.get('github') + ')';
}
else if (file.constructor == DropboxLibrary)
{
tip += ' (' + mxResources.get('dropbox') + ')';
@ -3949,10 +4075,11 @@ App.prototype.showAuthDialog = function(peer, showRememberOption, fn)
{
if (fn != null)
{
fn(remember, function()
fn(remember, mxUtils.bind(this, function()
{
this.hideDialog();
resume();
});
}));
}
}
catch (e)
@ -4053,7 +4180,7 @@ App.prototype.convertFile = function(url, filename, mimeType, extension, success
success(new LocalFile(this, data, filename, true));
}
}
else if (Graph.fileSupport && new XMLHttpRequest().upload)
else if (Graph.fileSupport && new XMLHttpRequest().upload && this.isRemoteFileFormat(data, url))
{
this.parseFile(new Blob([data], {type: 'application/octet-stream'}), mxUtils.bind(this, function(xhr)
{
@ -4070,9 +4197,9 @@ App.prototype.convertFile = function(url, filename, mimeType, extension, success
}
}), filename);
}
else if (error != null)
else
{
error({message: mxResources.get('errorLoadingFile')});
success(new LocalFile(this, data, name, true));
}
}
catch (e)

View file

@ -11,7 +11,6 @@ mxscript(drawDevUrl + 'js/spin/spin.min.js');
mxscript(drawDevUrl + 'js/deflate/pako.min.js');
mxscript(drawDevUrl + 'js/deflate/base64.js');
mxscript(drawDevUrl + 'js/sanitizer/sanitizer.min.js');
mxscript(drawDevUrl + 'js/dropbox/dropbox.min.js');
// Uses grapheditor from devhost
mxscript(geBasePath +'/Editor.js');
@ -73,6 +72,7 @@ mxscript(drawDevUrl + 'js/diagramly/EditorUi.js');
mxscript(drawDevUrl + 'js/diagramly/Settings.js');
// Excluded in base.min.js
mxscript(drawDevUrl + 'js/diagramly/DrawioClient.js');
mxscript(drawDevUrl + 'js/diagramly/DrawioUser.js');
mxscript(drawDevUrl + 'js/diagramly/UrlLibrary.js');
mxscript(drawDevUrl + 'js/diagramly/DriveRealtime.js');

View file

@ -9,6 +9,8 @@ var StorageDialog = function(editorUi, fn, rowLimit)
var div = document.createElement('div');
div.style.textAlign = 'center';
div.style.whiteSpace = 'nowrap';
div.style.paddingTop = '0px';
div.style.paddingBottom = '20px';
var elt = editorUi.addLanguageMenu(div);
var bottom = '28px';
@ -82,7 +84,7 @@ var StorageDialog = function(editorUi, fn, rowLimit)
buttons.style.border = '1px solid #d3d3d3';
buttons.style.borderWidth = '1px 0px 1px 0px';
buttons.style.padding = '26px 0px 12px 0px';
buttons.style.padding = '18px 0px 18px 0px';
var cb = document.createElement('input');
cb.setAttribute('type', 'checkbox');
@ -212,7 +214,7 @@ var StorageDialog = function(editorUi, fn, rowLimit)
hd.style.fontSize = '16pt';
hd.style.padding = '0px';
hd.style.paddingTop = '4px';
hd.style.paddingBottom = '20px';
hd.style.paddingBottom = '16px';
hd.style.margin = '0px';
hd.style.color = 'gray';
mxUtils.write(hd, mxResources.get('saveDiagramsTo') + ':');
@ -251,7 +253,8 @@ var StorageDialog = function(editorUi, fn, rowLimit)
div.appendChild(buttons);
var p2 = document.createElement('p');
p2.style.paddingTop = '10px';
p2.style.marginTop = '12px';
p2.style.marginBottom = '10px';
p2.appendChild(cb);
var span = document.createElement('span');
@ -259,6 +262,62 @@ var StorageDialog = function(editorUi, fn, rowLimit)
span.style.fontSize = '12px';
mxUtils.write(span, ' ' + mxResources.get('rememberThisSetting'));
p2.appendChild(span);
mxUtils.br(p2);
var recent = editorUi.getRecent();
if (recent != null && recent.length > 0)
{
var recentSelect = document.createElement('select');
recentSelect.style.marginTop = '14px';
recentSelect.style.width = '140px';
var titleOption = document.createElement('option');
titleOption.setAttribute('value', '');
titleOption.setAttribute('selected', 'selected');
titleOption.style.textAlign = 'center';
mxUtils.write(titleOption, mxResources.get('openRecent') + '...');
recentSelect.appendChild(titleOption);
for (var i = 0; i < recent.length; i++)
{
(function(entry)
{
var modeKey = entry.mode;
// Google and oneDrive use different keys
if (modeKey == App.MODE_GOOGLE)
{
modeKey = 'googleDrive';
}
else if (modeKey == App.MODE_ONEDRIVE)
{
modeKey = 'oneDrive';
}
var entryOption = document.createElement('option');
entryOption.setAttribute('value', entry.id);
mxUtils.write(entryOption, entry.title + ' (' + mxResources.get(modeKey) + ')');
recentSelect.appendChild(entryOption);
})(recent[i]);
}
p2.appendChild(recentSelect);
mxEvent.addListener(recentSelect, 'change', function(evt)
{
if (recentSelect.value != '')
{
editorUi.loadFile(recentSelect.value);
}
});
}
else
{
p2.style.marginTop = '20px';
buttons.style.padding = '30px 0px 26px 0px';
}
buttons.appendChild(p2);
mxEvent.addListener(span, 'click', function(evt)
@ -850,7 +909,8 @@ var EmbedDialog = function(editorUi, result, timeout, ignoreSize, previewFn)
{
window.setTimeout(mxUtils.bind(this, function()
{
if (win != null && win.location.href != value)
if (win != null && win.location.href != null &&
win.location.href.substring(0, 8) != value.substring(0, 8))
{
win.close();
editorUi.handleError({message: mxResources.get('drawingTooLarge')});
@ -1509,8 +1569,11 @@ var CreateGraphDialog = function(editorUi, title, type)
{
editorUi.confirm(mxResources.get('areYouSure'), function()
{
graph.destroy();
container.parentNode.removeChild(container);
if (container.parentNode != null)
{
graph.destroy();
container.parentNode.removeChild(container);
}
editorUi.hideDialog();
});
@ -1538,8 +1601,12 @@ var CreateGraphDialog = function(editorUi, title, type)
editorUi.editor.graph.scrollRectToVisible(temp);
editorUi.editor.graph.setSelectionCells(cells);
graph.destroy();
container.parentNode.removeChild(container);
if (container.parentNode != null)
{
graph.destroy();
container.parentNode.removeChild(container);
}
editorUi.hideDialog();
});
@ -6525,7 +6592,6 @@ var AuthDialog = function(editorUi, peer, showRememberOption, fn)
var button = mxUtils.button(mxResources.get('authorize'), function()
{
editorUi.hideDialog(false);
fn(cb.checked);
});
@ -8125,7 +8191,7 @@ var EditShapeDialog = function(editorUi, cell, title, w, h)
{
var helpBtn = mxUtils.button(mxResources.get('help'), function()
{
window.open('https://support.draw.io/display/DO/Editing+Shapes');
window.open('https://desk.draw.io/support/solutions/articles/16000052874-how-to-create-and-edit-shapes-');
});
helpBtn.className = 'geBtn';

View file

@ -0,0 +1,139 @@
/**
* Copyright (c) 2006-2017, JGraph Ltd
* Copyright (c) 2006-2017, Gaudenz Alder
*/
DrawioClient = function(editorUi, cookieName)
{
mxEventSource.call(this);
this.ui = editorUi;
this.cookieName = cookieName;
this.token = this.getPersistentToken();
};
// Extends mxEventSource
mxUtils.extend(DrawioClient, mxEventSource);
/**
* Token for the current user.
*/
DrawioClient.prototype.token = null;
/**
* Token for the current user.
*/
DrawioClient.prototype.user = null;
/**
* Authorizes the client, gets the userId and calls <open>.
*/
DrawioClient.prototype.setUser = function(user)
{
this.user = user;
this.fireEvent(new mxEventObject('userChanged'));
};
/**
* Authorizes the client, gets the userId and calls <open>.
*/
DrawioClient.prototype.getUser = function()
{
return this.user;
};
/**
*
*/
DrawioClient.prototype.clearPersistentToken = function()
{
if (isLocalStorage)
{
localStorage.removeItem('.' + this.cookieName);
}
else if (typeof(Storage) != 'undefined')
{
var expiration = new Date();
expiration.setYear(expiration.getFullYear() - 1);
document.cookie = this.cookieName + '=; expires=' + expiration.toUTCString();
}
};
/**
* Authorizes the client, gets the userId and calls <open>.
*/
DrawioClient.prototype.getPersistentToken = function()
{
var token = null;
if (isLocalStorage)
{
token = localStorage.getItem('.' + this.cookieName);
}
if (token == null && typeof(Storage) != 'undefined')
{
var cookies = document.cookie;
var name = this.cookieName + '=';
var start = cookies.indexOf(name);
if (start >= 0)
{
start += name.length;
var end = cookies.indexOf(';', start);
if (end < 0)
{
end = cookies.length;
}
else
{
postCookie = cookies.substring(end);
}
var value = cookies.substring(start, end);
token = (value.length > 0) ? value : null;
if (token != null && isLocalStorage)
{
// Moves to local storage
var expiry = new Date();
expiry.setYear(expiry.getFullYear() - 1);
document.cookie = name + '; expires=' + expiry.toUTCString();
localStorage.setItem('.' + this.cookieName, token);
}
}
}
return token;
};
/**
* Authorizes the client, gets the userId and calls <open>.
*/
DrawioClient.prototype.setPersistentToken = function(token)
{
if (token != null)
{
if (isLocalStorage)
{
localStorage.setItem('.' + this.cookieName, token);
}
else if (typeof(Storage) != 'undefined')
{
var expiration = new Date();
expiration.setYear(expiration.getFullYear() + 10);
var cookie = this.cookieName + '=' + token +'; path=/; expires=' + expiration.toUTCString();
if (document.location.protocol.toLowerCase() == 'https')
{
cookie = cookie + ';secure';
}
document.cookie = cookie;
}
}
else
{
this.clearPersistentToken();
}
};

View file

@ -159,22 +159,24 @@ DriveClient.prototype.getUser = function()
*/
DriveClient.prototype.setUserId = function(userId, remember)
{
if (typeof(Storage) != 'undefined')
if (remember)
{
try
if (isLocalStorage)
{
sessionStorage.setItem('GUID', userId);
if (remember)
localStorage.setItem('.guid', userId);
}
else if (typeof(Storage) != 'undefined')
{
try
{
var expiry = new Date();
expiry.setYear(expiry.getFullYear() + 1);
document.cookie = 'GUID=' + userId + '; expires=' + expiry.toUTCString();
}
}
catch (e)
{
// any errors for storing the user ID can be safely ignored
catch (e)
{
// any errors for storing the user ID can be safely ignored
}
}
}
};
@ -184,10 +186,12 @@ DriveClient.prototype.setUserId = function(userId, remember)
*/
DriveClient.prototype.clearUserId = function()
{
if (typeof(Storage) != 'undefined')
if (isLocalStorage)
{
localStorage.removeItem('.guid');
}
else if (typeof(Storage) != 'undefined')
{
sessionStorage.removeItem('GUID');
var expiry = new Date();
expiry.setYear(expiry.getFullYear() - 1);
document.cookie = 'GUID=; expires=' + expiry.toUTCString();
@ -205,29 +209,35 @@ DriveClient.prototype.getUserId = function()
{
uid = this.user.id;
}
if (typeof(Storage) != 'undefined')
if (uid == null && isLocalStorage)
{
if (uid == null)
uid = localStorage.getItem('.guid');
}
if (uid == null && typeof(Storage) != 'undefined')
{
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++)
{
uid = sessionStorage.getItem('GUID');
// Removes spaces around cookie
var cookie = mxUtils.trim(cookies[i]);
if (cookie.substring(0, 5) == 'GUID=')
{
uid = cookie.substring(5);
break;
}
}
if (uid == null)
if (uid != null && isLocalStorage)
{
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++)
{
// Removes spaces around cookie
var cookie = mxUtils.trim(cookies[i]);
if (cookie.substring(0, 5) == 'GUID=')
{
uid = cookie.substring(5);
break;
}
}
// Moves to local storage
var expiry = new Date();
expiry.setYear(expiry.getFullYear() - 1);
document.cookie = 'GUID=; expires=' + expiry.toUTCString();
localStorage.setItem('.guid', uid);
}
}

View file

@ -4,40 +4,14 @@
*/
DropboxClient = function(editorUi)
{
mxEventSource.call(this);
DrawioClient.call(this, editorUi, 'dbauth');
/**
* Holds the x-coordinate of the point.
* @type number
* @default 0
*/
this.ui = editorUi;
/**
* Holds the x-coordinate of the point.
* @type number
* @default 0
*/
this.client = new Dropbox.Client(
{
key: App.DROPBOX_APPKEY,
sandbox: true
});
/**
* Holds the x-coordinate of the point.
* @type number
* @default 0
*/
this.client.authDriver(new Dropbox.AuthDriver.Popup(
{
rememberUser: true,
receiverUrl: 'https://' + window.location.host + '/dropbox.html'
}));
this.client = new Dropbox({clientId: App.DROPBOX_APPKEY});
this.client.setAccessToken(this.token);
};
// Extends mxEventSource
mxUtils.extend(DropboxClient, mxEventSource);
// Extends DrawioClient
mxUtils.extend(DropboxClient, DrawioClient);
/**
* FIXME: How to find name of app folder for current user. The Apps part of the
@ -50,63 +24,75 @@ DropboxClient.prototype.appPath = '/drawio/';
*/
DropboxClient.prototype.extension = '.html';
/**
* Executes the first step for connecting to Google Drive.
*/
DriveClient.prototype.maxRetries = 4;
/**
* Executes the first step for connecting to Google Drive.
*/
DropboxClient.prototype.user = null;
/**
* Executes the first step for connecting to Google Drive.
*/
DropboxClient.prototype.writingFile = false;
/**
* Executes the first step for connecting to Google Drive.
*/
DropboxClient.prototype.maxRetries = 4;
/**
* Authorizes the client, gets the userId and calls <open>.
*/
DropboxClient.prototype.logout = function()
{
this.client.signOut(mxUtils.bind(this, function()
this.client.authTokenRevoke().then(mxUtils.bind(this, function()
{
this.client.setAccessToken(null);
this.clearPersistentToken();
this.setUser(null);
this.token = null;
}));
};
/**
* Authorizes the client, gets the userId and calls <open>.
*/
DropboxClient.prototype.setUser = function(user)
{
this.user = user;
this.fireEvent(new mxEventObject('userChanged'));
};
/**
* Authorizes the client, gets the userId and calls <open>.
*/
DropboxClient.prototype.getUser = function()
{
return this.user;
};
/**
* Checks if the client is authorized and calls the next step.
*/
DropboxClient.prototype.updateUser = function(success, error, remember)
DropboxClient.prototype.updateUser = function(success)
{
this.client.getUserInfo(null, mxUtils.bind(this, function(error, info)
var acceptResponse = true;
var timeoutThread = window.setTimeout(mxUtils.bind(this, function()
{
if (error == null)
acceptResponse = false;
this.ui.handleError({code: App.ERROR_TIMEOUT});
}), this.ui.timeout);
var promise = this.client.usersGetCurrentAccount();
promise.then(mxUtils.bind(this, function(response)
{
window.clearTimeout(timeoutThread);
if (acceptResponse)
{
this.setUser(new DrawioUser(response.account_id, response.email, response.name.display_name));
if (success != null)
{
success();
}
}
}));
// Workaround for IE8/9 support with catch function
promise['catch'](mxUtils.bind(this, function(err)
{
if (err != null && err.status === 401)
{
this.setUser(new DrawioUser(info.uid, info.email, info.name));
this.client.setAccessToken(null);
this.execute(success);
}
else
{
this.setUser(null);
window.clearTimeout(timeoutThread);
if (acceptResponse)
{
this.setUser(null);
this.ui.handleError(err);
}
}
}));
};
@ -116,50 +102,36 @@ DropboxClient.prototype.updateUser = function(success, error, remember)
*/
DropboxClient.prototype.execute = function(fn)
{
if (this.client.isAuthenticated())
if (this.client.getAccessToken() != null)
{
fn();
if (this.user == null)
{
this.updateUser(fn);
}
else
{
fn();
}
}
else
{
this.authorize(false, mxUtils.bind(this, function(error, client)
this.ui.showAuthDialog(this, false, mxUtils.bind(this, function(remember, success)
{
if (error != null)
this.authenticate(mxUtils.bind(this, function()
{
this.ui.handleError(error);
}
else
{
if (this.client.isAuthenticated())
if (success != null)
{
this.updateUser();
fn();
success();
}
else
{
this.ui.showAuthDialog(this, false, mxUtils.bind(this, function(remember, success)
{
this.authorize(true, mxUtils.bind(this, function(error2, client)
{
if (error2 != null)
{
this.ui.handleError(error2);
}
else if (this.client.isAuthenticated())
{
this.updateUser();
if (success != null)
{
success();
}
fn();
}
}));
if (this.client.getAccessToken() != null)
{
this.updateUser(fn, mxUtils.bind(this, function(err)
{
this.ui.handleError(e);
}));
}
}
}));
}));
}
};
@ -167,22 +139,39 @@ DropboxClient.prototype.execute = function(fn)
/**
* Authorizes the client, gets the userId and calls <open>.
*/
DropboxClient.prototype.authorize = function(interactive, fn)
DropboxClient.prototype.authenticate = function(fn)
{
this.client.authenticate({interactive: interactive}, mxUtils.bind(this, function(error, client)
window.open(this.client.getAuthenticationUrl('https://' +
window.location.host + '/dropbox.html'), 'oauth');
window.onDropboxCallback = mxUtils.bind(this, function(token, authWindow)
{
if (error != null)
try
{
if (window.console != null)
window.onDropboxCallback = null;
if (authWindow != null)
{
console.log(error);
authWindow.close();
}
if (token == null)
{
this.ui.hideDialog();
this.ui.handleError({message: mxResources.get('cannotLogin')});
}
else
{
this.client.setAccessToken(token);
this.setPersistentToken(token);
fn();
}
}
else
catch (e)
{
fn();
this.ui.handleError(e);
}
}));
});
};
/**
@ -213,51 +202,18 @@ DropboxClient.prototype.getFile = function(path, success, error, asLibrary)
}
else
{
var acceptResponse = true;
var timeoutThread = window.setTimeout(mxUtils.bind(this, function()
{
acceptResponse = false;
error({code: App.ERROR_TIMEOUT, retry: fn});
}), this.ui.timeout);
var options = null;
var arg = {path: '/' + path};
if (urlParams['rev'] != null)
{
options = {versionTag: urlParams['rev']};
arg.rev = urlParams['rev'];
}
this.client.readFile('/' + path, options, mxUtils.bind(this, function(err, data, stat)
this.readFile(arg, mxUtils.bind(this, function(data, response)
{
try
{
window.clearTimeout(timeoutThread);
if (acceptResponse)
{
if (err != null)
{
error(err)
}
else
{
if (asLibrary)
{
success(new DropboxLibrary(this.ui, data, stat));
}
else
{
success(new DropboxFile(this.ui, data, stat));
}
}
}
}
catch (e)
{
error(e);
}
}));
success((asLibrary) ? new DropboxLibrary(this.ui, data, response) :
new DropboxFile(this.ui, data, response));
}), error);
}
}));
});
@ -271,25 +227,107 @@ DropboxClient.prototype.getFile = function(path, success, error, asLibrary)
* @param {number} dx X-coordinate of the translation.
* @param {number} dy Y-coordinate of the translation.
*/
DropboxClient.prototype.checkExists = function(filename, fn)
DropboxClient.prototype.readFile = function(arg, success, error)
{
this.client.stat(filename, mxUtils.bind(this, function(err, stat)
var acceptResponse = true;
var timeoutThread = window.setTimeout(mxUtils.bind(this, function()
{
if ((err != null && err.status == 404) || (stat != null && stat.isRemoved))
acceptResponse = false;
error({code: App.ERROR_TIMEOUT});
}), this.ui.timeout);
// TODO: Find catch for file does not exist in filesDownload below
// This will have significant impact on performance!
// LATER: Catch "file not found" error without metadata check?
this.checkExists(arg.path.substring(1), mxUtils.bind(this, function(checked, exists)
{
window.clearTimeout(timeoutThread);
if (acceptResponse)
{
if (!exists)
{
error({message: mxResources.get('fileNotFound')});
}
else
{
timeoutThread = window.setTimeout(mxUtils.bind(this, function()
{
acceptResponse = false;
error({code: App.ERROR_TIMEOUT});
}), this.ui.timeout);
var promise = this.client.filesDownload(arg);
promise.then(mxUtils.bind(this, function(response)
{
window.clearTimeout(timeoutThread);
if (acceptResponse)
{
try
{
var reader = new FileReader();
reader.onload = mxUtils.bind(this, function(event)
{
success(reader.result, response);
});
reader.readAsText(response.fileBlob);
}
catch (e)
{
error(e);
}
}
}));
// Workaround for IE8/9 support with catch function
promise['catch'](function(err)
{
window.clearTimeout(timeoutThread);
if (acceptResponse)
{
error(e);
}
});
}
}
}), true);
};
/**
* Translates this point by the given vector.
*
* @param {number} dx X-coordinate of the translation.
* @param {number} dy Y-coordinate of the translation.
*/
DropboxClient.prototype.checkExists = function(filename, fn, noConfirm)
{
var promise = this.client.filesGetMetadata({path: '/' + filename.toLowerCase(), include_deleted: false});
promise.then(mxUtils.bind(this, function(response)
{
if (noConfirm)
{
fn(true);
fn(false, true, response);
}
else
{
this.ui.confirm(mxResources.get('replaceIt', [filename]), function()
{
fn(true);
fn(true, true, response);
}, function()
{
fn(false);
fn(false, true, response);
});
}
}));
// Workaround for IE8/9 support with catch function
promise['catch'](function(err)
{
fn(true, false);
});
};
/**
@ -300,37 +338,73 @@ DropboxClient.prototype.checkExists = function(filename, fn)
*/
DropboxClient.prototype.renameFile = function(file, filename, success, error)
{
if (file != null && filename != null)
if (/[\\\/:\?\*"\|]/.test(filename))
{
// Checks if file exists
this.execute(mxUtils.bind(this, function()
error({message: mxResources.get('dropboxCharsNotAllowed')});
}
else
{
// Appends working directory of source file
if (file != null && filename != null)
{
this.checkExists(filename, mxUtils.bind(this, function(checked)
var path = file.stat.path_display.substring(1);
var idx = path.lastIndexOf('/');
if (idx > 0)
{
if (checked)
filename = path.substring(0, idx + 1) + filename;
}
}
if (file != null && filename != null && file.stat.path_lower.substring(1) !== filename.toLowerCase())
{
// Checks if file exists
this.execute(mxUtils.bind(this, function()
{
this.checkExists(filename, mxUtils.bind(this, function(checked, exists, response)
{
// Uses write and remove because move does not allow overwriting an existing target
this.writeFile(filename, file.getData(), mxUtils.bind(this, function(stat)
if (checked)
{
this.client.remove(file.getTitle(), function(err2, stat2)
var thenHandler = mxUtils.bind(this, function(deleteResponse)
{
if (err2 != null)
// Uses write and remove because move does not allow overwriting an existing target
var move = this.client.filesMove({from_path: file.stat.path_display, to_path: '/' +
filename, autorename: false});
move.then(mxUtils.bind(this, function(response)
{
error(err2)
}
else
{
success(stat);
}
success(response);
}))
// Workaround for IE8/9 support with catch function
move['catch'](error);
});
}), error);
}
else
{
error();
}
// API fails on same name with different upper-/lowercase
if (!exists || response.path_lower.substring(1) === filename.toLowerCase())
{
thenHandler();
}
else
{
// Deletes file first to avoid conflict in filesMove (non-atomic)
var promise = this.client.filesDelete({path: '/' + filename.toLowerCase()});
promise.then(thenHandler);
// Workaround for IE8/9 support with catch function
promise['catch'](error);
}
}
else
{
error();
}
}));
}));
}));
}
else
{
// Same name with different upper-/lowercase
// is not supported by Dropbox API
error({message: mxResources.get('invalidName')});
}
}
};
@ -410,11 +484,27 @@ DropboxClient.prototype.writeFile = function(filename, data, success, error)
error({message: mxResources.get('dropboxCharsNotAllowed')});
}
}
else if (!this.writingFile)
else if (data.length >= 150000000 /*150MB*/)
{
if (error != null)
{
error({message: mxResources.get('drawingTooLarge') + ' (' +
this.ui.formatFileSize(data.length) + ' / 150 MB)'});
}
}
else if (this.writingFile)
{
if (error != null)
{
error({code: App.ERROR_BUSY});
}
}
else
{
this.writingFile = true;
var acceptResponse = true;
var timeoutThread = null;
this.writingFile = true;
var retryCount = 0;
// Cancels any pending requests
@ -441,45 +531,61 @@ DropboxClient.prototype.writeFile = function(filename, data, success, error)
}
}), this.ui.timeout);
this.client.writeFile(filename, data, mxUtils.bind(this, function(err, stat)
var promise = this.client.filesUpload({path: '/' + filename, mode: {'.tag': 'overwrite'},
contents: new Blob([data], {type: 'text/plain'})});
promise.then(mxUtils.bind(this, function(response)
{
window.clearTimeout(timeoutThread);
if (acceptResponse)
{
if (err != null)
this.writingFile = false;
try
{
if (retryCount < this.maxRetries)
if (success != null)
{
retryCount++;
var jitter = 1 + 0.1 * (Math.random() - 0.5);
this.requestThread = window.setTimeout(fn, Math.round(Math.pow(2, retryCount) * jitter * 1000));
success(response);
}
else if (error != null)
}
catch (e)
{
if (error != null)
{
this.writingFile = false;
error(err);
error(e);
}
}
}
}));
// Workaround for IE8/9 support with catch function
promise['catch'](mxUtils.bind(this, function(err)
{
window.clearTimeout(timeoutThread);
if (acceptResponse)
{
// LATER: Check error codes where a retry makes sense
if (retryCount < this.maxRetries)
{
retryCount++;
var jitter = 1 + 0.1 * (Math.random() - 0.5);
this.requestThread = window.setTimeout(fn, Math.round(Math.pow(2, retryCount) * jitter * 1000));
}
else
{
this.writingFile = false;
if (success != null)
if (error != null)
{
success(stat);
error(err);
}
}
}
}
}));
});
fn();
}
else if (error != null)
{
error({code: App.ERROR_BUSY});
}
};
/**
@ -520,9 +626,9 @@ DropboxClient.prototype.pickLibrary = function(fn)
{
var rel = decodeURIComponent(files[0].link.substring(tmp + this.appPath.length - 1));
this.client.readFile(rel, null, mxUtils.bind(this, function(err, data, stat)
this.readFile({path: rel}, mxUtils.bind(this, function(data, stat)
{
if (stat != null && parseInt(files[0].bytes) === parseInt(stat.size) && rel === stat.path)
if (stat != null && parseInt(files[0].bytes) === parseInt(stat.size) && rel === stat.path_display)
{
// No need to load file a second time
try
@ -539,7 +645,7 @@ DropboxClient.prototype.pickLibrary = function(fn)
{
this.createLibrary(files[0], fn, error);
}
}));
}), error);
}));
}
else
@ -651,9 +757,9 @@ DropboxClient.prototype.pickFile = function(fn, readOnly)
{
var rel = decodeURIComponent(files[0].link.substring(tmp + this.appPath.length - 1));
this.client.readFile(rel, null, mxUtils.bind(this, function(err, data, stat)
this.readFile({path: rel}, mxUtils.bind(this, function(data, stat)
{
if (stat != null && parseInt(files[0].bytes) === parseInt(stat.size) && rel === stat.path)
if (stat != null && parseInt(files[0].bytes) === parseInt(stat.size) && rel === stat.path_display)
{
this.ui.spinner.stop();

View file

@ -20,7 +20,7 @@ mxUtils.extend(DropboxFile, DrawioFile);
*/
DropboxFile.prototype.getHash = function()
{
return 'D' + encodeURIComponent(this.stat.path.substring(1));
return 'D' + encodeURIComponent(this.stat.path_display.substring(1));
};
/**

View file

@ -73,7 +73,12 @@
* Holds the current file.
*/
EditorUi.prototype.currentFile = null;
/**
* Switch to disable logging for mode and search terms.
*/
EditorUi.prototype.enableLogging = true;
/**
* Capability check for canvas export
*/
@ -396,7 +401,7 @@
try
{
var doc = mxUtils.parseXml(data);
var node = this.editor.extractGraphModel(doc.documentElement);
var node = this.editor.extractGraphModel(doc.documentElement, true);
return node != null && node.getElementsByTagName('parsererror').length == 0;
}
@ -436,7 +441,7 @@
{
// Gets compressed data from mxgraph element in HTML document
var doc = mxUtils.parseXml(data);
var node = this.editor.extractGraphModel(doc.documentElement);
var node = this.editor.extractGraphModel(doc.documentElement, this.pages != null);
result = (node != null) ? mxUtils.getXml(node) : '';
}
}
@ -1153,7 +1158,7 @@
}
}
}
return new mxXmlRequest(EXPORT_URL, 'format=' + format + range +
'&base64=' + base64 + '&embedXml=' + embed + '&xml=' +
encodeURIComponent(data) + ((filename != null) ?
@ -1195,12 +1200,7 @@
var noFile = mxUtils.bind(this, function()
{
this.diagramContainer.style.visibility = 'hidden';
this.formatContainer.style.visibility = 'hidden';
this.hsplit.style.display = 'none';
this.sidebarContainer.style.display = 'none';
this.sidebarFooterContainer.style.display = 'none';
this.editor.graph.setEnabled(false);
this.setGraphEnabled(false);
// Keeps initial title if no file existed before
if (oldFile != null)
@ -1241,11 +1241,7 @@
this.descriptorChanged();
file.open();
this.diagramContainer.style.visibility = '';
this.formatContainer.style.visibility = '';
this.hsplit.style.display = '';
this.sidebarContainer.style.display = '';
this.sidebarFooterContainer.style.display = '';
this.setGraphEnabled(true);
this.setMode(file.getMode());
this.editor.undoManager.clear();
this.updateUi();
@ -1288,23 +1284,20 @@
this.editor.fireEvent(new mxEventObject('fileLoaded'));
result = true;
// if (this.enableLogging)
// {
// try
// {
// if (!this.isOffline())
// {
// var img = new Image();
// var logDomain = window.DRAWIO_LOG_URL != null ? window.DRAWIO_LOG_URL : '';
// img.src = logDomain + '/log?msg=storageMode:' + encodeURIComponent(file.getMode()) +
// '&v=' + encodeURIComponent(EditorUi.VERSION);
// }
// }
// catch (e)
// {
// // ignore
// }
// }
if (this.enableLogging && !this.isOffline())
{
try
{
var img = new Image();
var logDomain = window.DRAWIO_LOG_URL != null ? window.DRAWIO_LOG_URL : '';
img.src = logDomain + '/log?msg=storageMode:' + encodeURIComponent(file.getMode()) +
'&v=' + encodeURIComponent(EditorUi.VERSION);
}
catch (e)
{
// ignore
}
}
if (this.mode == file.getMode() && file.getMode() != App.MODE_DEVICE && file.getMode() != null)
{
@ -2774,8 +2767,8 @@
}), mxUtils.bind(this, function()
{
this.hideDialog();
}), mxResources.get('saveAs'), mxResources.get('download'), false, false, allowTab);
this.showDialog(dlg.container, 380, (this.getServiceCount(false) - 1 < 4) ? 270 : 390, true, true);
}), mxResources.get('saveAs'), mxResources.get('download'), false, false, allowTab, null, null, 4);
this.showDialog(dlg.container, 380, (this.getServiceCount(false) - 1 < 5) ? 270 : 390, true, true);
dlg.init();
};
@ -2918,7 +2911,7 @@
/**
*
*/
EditorUi.prototype.addLinkSection = function(div)
EditorUi.prototype.addLinkSection = function(div, showFrameOption)
{
mxUtils.write(div, mxResources.get('links') + ':');
@ -2942,6 +2935,16 @@
selfOption.setAttribute('value', 'self');
mxUtils.write(selfOption, mxResources.get('openInThisWindow'));
linkSelect.appendChild(selfOption);
if (showFrameOption)
{
var frameOption = document.createElement('option');
frameOption.setAttribute('value', 'frame');
mxUtils.write(frameOption, mxResources.get('openInThisWindow') +
' (' + mxResources.get('iframe') + ')');
linkSelect.appendChild(frameOption);
}
div.appendChild(linkSelect);
mxUtils.write(div, mxResources.get('borderColor') + ':');
@ -3005,7 +3008,6 @@
if (lightbox)
{
params.push('chrome=0');
params.push('lightbox=1');
if (linkTarget != 'auto')
@ -3297,7 +3299,7 @@
/**
*
*/
EditorUi.prototype.showPublishLinkDialog = function(title, hideShare, width, height, fn)
EditorUi.prototype.showPublishLinkDialog = function(title, hideShare, width, height, fn, showFrameOption)
{
var div = document.createElement('div');
div.style.whiteSpace = 'nowrap';
@ -3390,7 +3392,7 @@
mxUtils.br(div);
}
var linkSection = this.addLinkSection(div);
var linkSection = this.addLinkSection(div, showFrameOption);
var hasPages = this.pages != null && this.pages.length > 1;
var allPages = null;
@ -3752,7 +3754,7 @@
{
// KNOWN: Message passing does not seem to work in IE11
onclick = " onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(" +
"img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1&chrome=0" +
"img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1" +
((edit) ? "&edit=_blank" : "") +
((layers) ? '&layers=1' : '') + "');}})(this);\"";
css += 'cursor:pointer;';
@ -3875,7 +3877,7 @@
{
// KNOWN: Message passing does not seem to work in IE11
onclick = "onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(" +
"img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1&chrome=0" +
"img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1" +
((edit) ? "&edit=_blank" : "") + ((layers) ? '&layers=1' : '') + "');}})(this);\"";
css += 'cursor:pointer;';
}
@ -3910,7 +3912,7 @@
"svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};" +
"window.addEventListener('message',r);" +
// Opens lightbox window
"svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1&chrome=0" +
"svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1" +
((edit) ? "&edit=_blank" : "") + ((layers) ? '&layers=1' : '') + "');}}})(this);";
svgRoot.setAttribute('onclick', js);
css += 'cursor:pointer;';
@ -4080,7 +4082,7 @@
if (xml != null)
{
svgRoot.setAttribute('content', encodeURIComponent(xml));
svgRoot.setAttribute('content', xml);
}
if (url != null)
@ -6120,7 +6122,7 @@
{
var uri = (mxUtils.indexOf(evt.dataTransfer.types, 'text/uri-list') >= 0) ?
evt.dataTransfer.getData('text/uri-list') : null;
var data = this.extractGraphModelFromEvent(evt);
var data = this.extractGraphModelFromEvent(evt, this.pages != null);
if (data != null)
{
@ -6817,14 +6819,25 @@
}
};
/**
* Shows the layers dialog if the graph has more than one layer.
*/
EditorUi.prototype.setGraphEnabled = function(enabled)
{
this.diagramContainer.style.visibility = (enabled) ? '' : 'hidden';
this.formatContainer.style.visibility = (enabled) ? '' : 'hidden';
this.sidebarFooterContainer.style.display = (enabled) ? '' : 'none';
this.sidebarContainer.style.display = (enabled) ? '' : 'none';
this.hsplit.style.display = (enabled) ? '' : 'none';
this.editor.graph.setEnabled(enabled);
};
/**
* Shows the layers dialog if the graph has more than one layer.
*/
EditorUi.prototype.initializeEmbedMode = function()
{
this.diagramContainer.style.visibility = 'hidden';
this.formatContainer.style.visibility = 'hidden';
this.editor.graph.setEnabled(false);
this.setGraphEnabled(false);
var parent = window.opener || window.parent;
if (parent != window)
@ -6835,9 +6848,7 @@
{
this.spinner.stop();
this.addEmbedButtons();
this.diagramContainer.style.visibility = '';
this.formatContainer.style.visibility = '';
this.editor.graph.setEnabled(true);
this.setGraphEnabled(true);
if (xml != null && xml.length > 0)
{
@ -8123,7 +8134,7 @@
serviceCount++
}
if (allowBrowser && isLocalStorage && urlParams['browser'] == '1')
if (allowBrowser && isLocalStorage && (urlParams['browser'] == '1' || mxClient.IS_IOS))
{
serviceCount++
}
@ -8146,18 +8157,31 @@
// Action states that only need update for new files
var file = this.getCurrentFile();
var active = file != null || urlParams['embed'] == '1';
var active = file != null || (urlParams['embed'] == '1' &&
this.editor.graph.isEnabled());
this.menus.get('viewPanels').setEnabled(active);
this.menus.get('viewZoom').setEnabled(active);
var restricted = urlParams['embed'] != '1' && (file == null || file.isRestricted());
var restricted = (urlParams['embed'] != '1' ||
!this.editor.graph.isEnabled()) &&
(file == null || file.isRestricted());
this.actions.get('makeCopy').setEnabled(!restricted);
this.actions.get('print').setEnabled(!restricted);
this.menus.get('exportAs').setEnabled(!restricted);
this.menus.get('embed').setEnabled(!restricted);
// Disables libraries and extras menu in embed mode
// while waiting for file data
var libsEnabled = urlParams['embed'] != '1' ||
this.editor.graph.isEnabled();
this.menus.get('openLibraryFrom').setEnabled(libsEnabled);
this.menus.get('newLibrary').setEnabled(libsEnabled);
this.menus.get('extras').setEnabled(libsEnabled);
// Disables actions in the toolbar
var editable = (urlParams['embed'] == '1') || (file != null && file.isEditable());
var editable = (urlParams['embed'] == '1' &&
this.editor.graph.isEnabled()) ||
(file != null && file.isEditable());
this.actions.get('image').setEnabled(active);
this.actions.get('zoomIn').setEnabled(active);
this.actions.get('zoomOut').setEnabled(active);
@ -8250,7 +8274,8 @@
var graph = this.editor.graph;
var file = this.getCurrentFile();
var active = (file != null && file.isEditable()) || urlParams['embed'] == '1';
var active = (file != null && file.isEditable()) ||
(urlParams['embed'] == '1' && this.editor.graph.isEnabled());
this.actions.get('pageSetup').setEnabled(active);
this.actions.get('autosave').setEnabled(file != null && file.isEditable() && file.isAutosaveOptional());
this.actions.get('guides').setEnabled(active);
@ -8264,8 +8289,8 @@
this.actions.get('createRevision').setEnabled(active);
this.actions.get('moveToFolder').setEnabled(file != null);
this.actions.get('makeCopy').setEnabled(file != null && !file.isRestricted());
this.actions.get('editDiagram').setEnabled(urlParams['embed'] == '1' ||
(file != null && !file.isRestricted()));
this.actions.get('editDiagram').setEnabled((urlParams['embed'] == '1' &&
this.editor.graph.isEnabled()) || (file != null && !file.isRestricted()));
this.actions.get('publishLink').setEnabled(file != null && !file.isRestricted());
this.menus.get('publish').setEnabled(file != null && !file.isRestricted());

View file

@ -62,15 +62,6 @@ FeedbackDialog.feedbackUrl = 'https://log.draw.io/email';
var editorUi = this;
var graph = this.editor.graph;
global.__emt_isModified = e => {
if (this.getCurrentFile())
return this.getCurrentFile().isModified()
return false
}
// global.__emt_getCurrentFile = e => {
// return this.getCurrentFile()
// }
// Adds support for libraries
this.actions.addAction('newLibrary...', mxUtils.bind(this, function()
{
@ -176,10 +167,24 @@ FeedbackDialog.feedbackUrl = 'https://log.draw.io/email';
{
oldNew();
}
else {
const ipc = require('electron').ipcRenderer
ipc.sendSync('winman', {action: 'newfile', opt: {width: 1600}})
else
{
const electron = require('electron');
const remote = electron.remote;
const BrowserWindow = remote.BrowserWindow;
mainWindow = new BrowserWindow({width: 1600, height: 1200, "web-security" : false});
// and load the index.html of the app.
mainWindow.loadURL(`file://${__dirname}/index.html?dev=1&test=1&db=0&gapi=0&od=0&analytics=0&picker=0&mode=device&browser=0&p=electron`);
// Emitted when the window is closed.
mainWindow.on('closed', function()
{
// Dereference the window object, usually you would store windows
// in an array if your app supports multi windows, this is the time
// when you should delete the corresponding element.
mainWindow = null;
});
}
}), null, null, 'Ctrl+N');
@ -605,4 +610,6 @@ FeedbackDialog.feedbackUrl = 'https://log.draw.io/email';
}));
}
};
EditorUi.prototype.addBeforeUnloadListener = function() {};
})();

View file

@ -4,17 +4,11 @@
*/
GitHubClient = function(editorUi)
{
mxEventSource.call(this);
/**
* Holds a reference to the UI. Needed for the sharing client.
*/
this.ui = editorUi;
this.token = this.getPersistentToken();
DrawioClient.call(this, editorUi, 'ghauth');
};
// Extends mxEventSource
mxUtils.extend(GitHubClient, mxEventSource);
// Extends DrawioClient
mxUtils.extend(GitHubClient, DrawioClient);
/**
* Specifies if thumbnails should be enabled. Default is true.
@ -39,91 +33,9 @@ GitHubClient.prototype.extension = '.xml';
GitHubClient.prototype.baseUrl = 'https://api.github.com';
/**
* Token for the current user.
* Maximum file size of the GitHub REST API.
*/
GitHubClient.prototype.token = null;
/**
* Authorizes the client, gets the userId and calls <open>.
*/
GitHubClient.prototype.setUser = function(user)
{
this.user = user;
this.fireEvent(new mxEventObject('userChanged'));
};
/**
* Authorizes the client, gets the userId and calls <open>.
*/
GitHubClient.prototype.getUser = function()
{
return this.user;
};
/**
*
*/
GitHubClient.prototype.clearPersistentToken = function()
{
var expiration = new Date();
expiration.setYear(expiration.getFullYear() - 1);
document.cookie = 'ghauth=; expires=' + expiration.toUTCString();
};
/**
* Authorizes the client, gets the userId and calls <open>.
*/
GitHubClient.prototype.getPersistentToken = function()
{
var cookies = document.cookie;
var name = 'ghauth=';
var start = cookies.indexOf(name);
if (start >= 0)
{
start += name.length;
var end = cookies.indexOf(';', start);
if (end < 0)
{
end = cookies.length;
}
else
{
postCookie = cookies.substring(end);
}
var value = cookies.substring(start, end);
return (value.length > 0) ? value : null;
}
return null;
};
/**
* Authorizes the client, gets the userId and calls <open>.
*/
GitHubClient.prototype.setPersistentToken = function(token)
{
if (token != null)
{
var expiration = new Date();
expiration.setYear(expiration.getFullYear() + 10);
var cookie = 'ghauth=' + token +'; path=/; expires=' + expiration.toUTCString();
if (document.location.protocol.toLowerCase() == 'https')
{
cookie = cookie + ';secure';
}
document.cookie = cookie;
}
else
{
this.clearPersistentToken();
}
};
GitHubClient.prototype.maxFileSize = 1000000 /*1MB*/;
/**
* Authorizes the client, gets the userId and calls <open>.
@ -150,6 +62,10 @@ GitHubClient.prototype.updateUser = function(success, error)
{
this.authorizeRequest(fn, error);
}
else if (userReq.getStatus() < 200 || userReq.getStatus() >= 300)
{
error({message: mxResources.get('accessDenied')});
}
else
{
var userInfo = JSON.parse(userReq.getText());
@ -170,23 +86,14 @@ GitHubClient.prototype.authorizeRequest = function(success, error)
{
this.ui.showAuthDialog(this, true, mxUtils.bind(this, function(remember, authSuccess)
{
if (authSuccess != null)
{
authSuccess();
}
// Initializes oauth flow
window.open('https://github.com/login/oauth/authorize?client_id=' + this.clientId + '&scope=' + this.scope);
window.open('https://github.com/login/oauth/authorize?client_id=' +
this.clientId + '&scope=' + this.scope, 'oauth');
window.onGitHubCallback = mxUtils.bind(this, function(code, authWindow)
{
window.onGitHubCallback = null;
if (authWindow != null)
{
authWindow.close();
}
// Gets token for code via servlet
var fn = mxUtils.bind(this, function()
{
@ -204,15 +111,39 @@ GitHubClient.prototype.authorizeRequest = function(success, error)
if (acceptResponse)
{
var res = authReq.getText();
this.token = res.substring(res.indexOf('=') + 1, res.indexOf('&'));
if (remember)
try
{
this.setPersistentToken(this.token);
if (authWindow != null)
{
authWindow.close();
}
if (authReq.getStatus() < 200 || authReq.getStatus() >= 300)
{
error({message: mxResources.get('cannotLogin')});
}
else
{
if (authSuccess != null)
{
authSuccess();
}
var res = authReq.getText();
this.token = res.substring(res.indexOf('=') + 1, res.indexOf('&'));
if (remember)
{
this.setPersistentToken(this.token);
}
success();
}
}
catch (e)
{
error(e);
}
success();
}
}));
});
@ -225,7 +156,7 @@ GitHubClient.prototype.authorizeRequest = function(success, error)
/**
* Authorizes the client, gets the userId and calls <open>.
*/
GitHubClient.prototype.executeRequest = function(req, success, error, refresh, overwrite)
GitHubClient.prototype.executeRequest = function(req, success, error)
{
var doExecute = mxUtils.bind(this, function()
{
@ -258,6 +189,26 @@ GitHubClient.prototype.executeRequest = function(req, success, error, refresh, o
{
this.authorizeRequest(fn, error);
}
else if (req.getStatus() === 403)
{
var tooLarge = false;
try
{
var temp = JSON.parse(req.getText());
if (temp != null && temp.errors != null && temp.errors.length > 0)
{
tooLarge = temp.errors[0].code == 'too_large';
}
}
catch (e)
{
// ignore
}
error({message: mxResources.get((tooLarge) ? 'drawingTooLarge' : 'forbidden')});
}
else if (req.getStatus() === 404)
{
error({message: mxResources.get('fileNotFound')});
@ -346,7 +297,7 @@ GitHubClient.prototype.getFile = function(path, success, error, asLibrary)
{
try
{
success(this.createGitHubFile(org, repo, ref, req, asLibrary));
success(this.createGitHubFile(org, repo, ref, JSON.parse(req.getText()), asLibrary));
}
catch (e)
{
@ -365,9 +316,8 @@ GitHubClient.prototype.getFile = function(path, success, error, asLibrary)
* @param {number} dx X-coordinate of the translation.
* @param {number} dy Y-coordinate of the translation.
*/
GitHubClient.prototype.createGitHubFile = function(org, repo, ref, req, asLibrary)
GitHubClient.prototype.createGitHubFile = function(org, repo, ref, data, asLibrary)
{
var data = JSON.parse(req.getText());
var meta = {'org': org, 'repo': repo, 'ref': ref, 'name': data.name,
'path': data.path, 'sha': data.sha, 'html_url': data.html_url,
'download_url': data.download_url};
@ -375,8 +325,7 @@ GitHubClient.prototype.createGitHubFile = function(org, repo, ref, req, asLibrar
if (data.encoding === 'base64')
{
// Workaround for character encoding issues in IE10/11
content = (window.atob && !mxClient.IS_IE && !mxClient.IS_IE11) ? atob(content) : Base64.decode(content);
content = Base64.decode(content);
}
return (asLibrary) ? new GitHubLibrary(this.ui, content, meta) : new GitHubFile(this.ui, content, meta);
@ -430,14 +379,25 @@ GitHubClient.prototype.insertFile = function(filename, data, success, error, asL
{
if (!base64Encoded)
{
data = (window.btoa) ? btoa(data) : Base64.encode(data);
data = Base64.encode(data);
}
this.showCommitDialog(filename, true, mxUtils.bind(this, function(message)
{
this.writeFile(org, repo, ref, path, message, data, sha, mxUtils.bind(this, function(req)
{
this.getFile(org + '/' + repo + '/' + ref + '/' + path, success, error, asLibrary);
try
{
var msg = JSON.parse(req.getText());
success(this.createGitHubFile(org, repo, ref, msg.content, asLibrary));
}
catch (e)
{
if (error != null)
{
error(e);
}
}
}), error);
}), mxUtils.bind(this, function()
{
@ -481,26 +441,37 @@ GitHubClient.prototype.showCommitDialog = function(filename, isNew, success, can
*/
GitHubClient.prototype.writeFile = function(org, repo, ref, path, message, data, sha, success, error)
{
var entity =
if (data.length >= this.maxFileSize)
{
path: path,
message: message,
content: data
};
if (sha != null)
{
entity.sha = sha;
if (error != null)
{
error({message: mxResources.get('drawingTooLarge') + ' (' +
this.ui.formatFileSize(data.length) + ' / 1 MB)'});
}
}
var req = new mxXmlRequest(this.baseUrl + '/repos/' + org + '/' + repo +
'/contents/' + path + '?ref=' + encodeURIComponent(ref),
JSON.stringify(entity), 'PUT');
this.executeRequest(req, mxUtils.bind(this, function(req)
else
{
success(req);
}), error);
var entity =
{
path: path,
message: message,
content: data
};
if (sha != null)
{
entity.sha = sha;
}
var req = new mxXmlRequest(this.baseUrl + '/repos/' + org + '/' + repo +
'/contents/' + path + '?ref=' + encodeURIComponent(ref),
JSON.stringify(entity), 'PUT');
this.executeRequest(req, mxUtils.bind(this, function(req)
{
success(req);
}), error);
}
};
/**
@ -513,7 +484,7 @@ GitHubClient.prototype.checkExists = function(path, askReplace, fn)
{
this.getFile(path, mxUtils.bind(this, function(file)
{
if (askReplace)
if (askReplace && file.meta != null)
{
var resume = this.ui.spinner.pause();
@ -557,7 +528,7 @@ GitHubClient.prototype.saveFile = function(file, success, error)
this.showCommitDialog(file.meta.name, file.meta.sha == null || file.meta.isNew, mxUtils.bind(this, function(message)
{
var data = (window.btoa) ? btoa(file.getData()) : Base64.encode(file.getData());
var data = Base64.encode(file.getData());
var fn = mxUtils.bind(this, function(sha)
{
@ -669,36 +640,35 @@ GitHubClient.prototype.showGitHubDialog = function(showFiles, fn)
dlg.okButton.parentNode.removeChild(dlg.okButton);
}
var createLink = mxUtils.bind(this, function(label, fn)
{
var link = document.createElement('a');
link.setAttribute('href', 'javascript:void(0);');
mxUtils.write(link, label);
mxEvent.addListener(link, 'click', fn);
return link;
});
var updatePathInfo = mxUtils.bind(this, function(hideRef)
{
var pathInfo = document.createElement('div');
pathInfo.style.marginBottom = '8px';
var link = document.createElement('a');
link.setAttribute('href', 'javascript:void(0);');
mxUtils.write(link, org + '/' + repo);
pathInfo.appendChild(link);
mxEvent.addListener(link, 'click', mxUtils.bind(this, function()
pathInfo.appendChild(createLink(org + '/' + repo, mxUtils.bind(this, function()
{
path = null;
selectRepo();
}));
})));
if (!hideRef)
{
mxUtils.write(pathInfo, ' / ');
var link = document.createElement('a');
link.setAttribute('href', 'javascript:void(0);');
mxUtils.write(link, ref);
pathInfo.appendChild(link);
mxEvent.addListener(link, 'click', mxUtils.bind(this, function()
pathInfo.appendChild(createLink(ref, mxUtils.bind(this, function()
{
path = null;
selectRef();
}));
})));
}
if (path != null && path.length > 0)
@ -710,17 +680,11 @@ GitHubClient.prototype.showGitHubDialog = function(showFiles, fn)
(function(index)
{
mxUtils.write(pathInfo, ' / ');
var link = document.createElement('a');
link.setAttribute('href', 'javascript:void(0);');
mxUtils.write(link, tokens[index]);
pathInfo.appendChild(link);
mxEvent.addListener(link, 'click', mxUtils.bind(this, function()
pathInfo.appendChild(createLink(tokens[index], mxUtils.bind(this, function()
{
path = tokens.slice(0, index + 1).join('/');
selectFile();
}));
})));
})(i);
}
}
@ -741,14 +705,7 @@ GitHubClient.prototype.showGitHubDialog = function(showFiles, fn)
updatePathInfo();
this.ui.spinner.stop();
var files = JSON.parse(req.getText());
var link = document.createElement('a');
link.setAttribute('href', 'javascript:void(0);');
mxUtils.write(link, '../ [Up]');
div.appendChild(link);
mxUtils.br(div);
mxEvent.addListener(link, 'click', mxUtils.bind(this, function()
div.appendChild(createLink('../ [Up]', mxUtils.bind(this, function()
{
if (path == '')
{
@ -761,7 +718,8 @@ GitHubClient.prototype.showGitHubDialog = function(showFiles, fn)
path = tokens.slice(0, tokens.length - 1).join('/');
selectFile();
}
}));
})));
mxUtils.br(div);
if (files == null || files.length == 0)
{
@ -777,13 +735,7 @@ GitHubClient.prototype.showGitHubDialog = function(showFiles, fn)
{
if (showFolders == (file.type == 'dir'))
{
var link = document.createElement('a');
link.setAttribute('href', 'javascript:void(0);');
mxUtils.write(link, file.name + ((file.type == 'dir') ? '/' : ''));
div.appendChild(link);
mxUtils.br(div);
mxEvent.addListener(link, 'click', mxUtils.bind(this, function()
div.appendChild(createLink(file.name + ((file.type == 'dir') ? '/' : ''), mxUtils.bind(this, function()
{
if (file.type == 'dir')
{
@ -795,7 +747,8 @@ GitHubClient.prototype.showGitHubDialog = function(showFiles, fn)
this.ui.hideDialog();
fn(org + '/' + repo + '/' + ref + '/' + file.path);
}
}));
})));
mxUtils.br(div);
}
}))(files[i]);
}
@ -829,17 +782,12 @@ GitHubClient.prototype.showGitHubDialog = function(showFiles, fn)
updatePathInfo(true);
var branches = JSON.parse(req.getText());
var link = document.createElement('a');
link.setAttribute('href', 'javascript:void(0);');
mxUtils.write(link, '../ [Up]');
div.appendChild(link);
mxUtils.br(div);
mxEvent.addListener(link, 'click', mxUtils.bind(this, function()
div.appendChild(createLink('../ [Up]', mxUtils.bind(this, function()
{
path = null;
selectRepo();
}));
})));
mxUtils.br(div);
if (branches == null || branches.length == 0)
{
@ -851,18 +799,13 @@ GitHubClient.prototype.showGitHubDialog = function(showFiles, fn)
{
(mxUtils.bind(this, function(branch)
{
var link = document.createElement('a');
link.setAttribute('href', 'javascript:void(0);');
mxUtils.write(link, branch.name);
div.appendChild(link);
mxUtils.br(div);
mxEvent.addListener(link, 'click', mxUtils.bind(this, function()
div.appendChild(createLink(branch.name, mxUtils.bind(this, function()
{
ref = branch.name;
path = '';
selectFile();
}));
})));
mxUtils.br(div);
}))(branches[i]);
}
}
@ -896,13 +839,7 @@ GitHubClient.prototype.showGitHubDialog = function(showFiles, fn)
{
(mxUtils.bind(this, function(repository)
{
var link = document.createElement('a');
link.setAttribute('href', 'javascript:void(0);');
mxUtils.write(link, repository.full_name);
div.appendChild(link);
mxUtils.br(div);
mxEvent.addListener(link, 'click', mxUtils.bind(this, function()
div.appendChild(createLink(repository.full_name, mxUtils.bind(this, function()
{
org = repository.owner.login;
repo = repository.name;
@ -910,7 +847,8 @@ GitHubClient.prototype.showGitHubDialog = function(showFiles, fn)
path = '';
selectFile();
}));
})));
mxUtils.br(div);
}))(repos[i]);
}
}

View file

@ -1144,13 +1144,13 @@ GraphViewer.prototype.showLightbox = function()
});
mxEvent.addListener(window, 'message', receive);
wnd = window.open('https://www.draw.io/?client=1&chrome=0&lightbox=1&close=1&edit=_blank' + p);
wnd = window.open('https://www.draw.io/?client=1&lightbox=1&close=1&edit=_blank' + p);
}
else
{
// Data is pulled from global variable after tab loads
window.drawdata = this.xml;
window.open('https://www.draw.io/?client=1&chrome=0&lightbox=1&edit=_blank' + p);
window.open('https://www.draw.io/?client=1&lightbox=1&edit=_blank' + p);
}
}
else

View file

@ -240,6 +240,12 @@ if (urlParams['offline'] == '1' || urlParams['local'] == '1')
urlParams['math'] = '0';
}
// Lightbox enabled chromeless mode
if (urlParams['lightbox'] == '1')
{
urlParams['chrome'] = '0';
}
// Adds hard-coded logging domain for draw.io domains
var host = window.location.host;
var searchString = 'draw.io';

View file

@ -139,46 +139,43 @@
if (file.constructor == DropboxFile)
{
// Limit is maximum number of entries to return
editorUi.dropbox.client.revisions(file.stat.path, {limit: 100}, function(err, stats)
var promise = editorUi.dropbox.client.filesListRevisions({path: file.stat.path_lower, limit: 100});
promise.then(mxUtils.bind(this, function(response)
{
editorUi.spinner.stop();
if (err == null)
try
{
var revs = [];
for (var i = stats.length - 1; i >= 0; i--)
for (var i = response.entries.length - 1; i >= 0; i--)
{
(function(stat)
{
revs.push({modifiedDate: stat.clientModifiedAt, fileSize: stat.size, getXml: function(success, error)
revs.push({modifiedDate: stat.client_modified, fileSize: stat.size, getXml: function(success, error)
{
editorUi.dropbox.client.readFile('/' + file.stat.path, {versionTag: stat.versionTag}, mxUtils.bind(this, function(err2, data)
{
if (err2 == null)
{
success(data);
}
else
{
error(err2);
}
}));
editorUi.dropbox.readFile({path: file.stat.path_lower, rev: stat.rev}, success, error);
}, getUrl: function()
{
return editorUi.getUrl(window.location.pathname + '?rev=' + stat.versionTag + '&chrome=0&edit=_blank') + window.location.hash;
return editorUi.getUrl(window.location.pathname + '?rev=' + stat.rev + '&chrome=0&edit=_blank') + window.location.hash;
}});
})(stats[i]);
})(response.entries[i]);
}
var dlg = new RevisionDialog(editorUi, revs);
editorUi.showDialog(dlg.container, 640, 480, true, true);
dlg.init();
}
else
catch (e)
{
editorUi.handleError(err);
editorUi.handleError(e);
}
}));
// Workaround for IE8/9 support with catch function
promise['catch'](function(err)
{
editorUi.spinner.stop();
editorUi.handleError(err);
});
}
// Google Drive File
@ -433,7 +430,7 @@
}
else
{
window.open('https://www.draw.io/?chrome=0&lightbox=1#Uhttps%3A%2F%2Fwww.draw.io%2Fshortcuts.svg');
window.open('https://www.draw.io/?lightbox=1#Uhttps%3A%2F%2Fwww.draw.io%2Fshortcuts.svg');
}
});
@ -614,9 +611,16 @@
// Logs search terms for improving search results
if (editorUi.enableLogging)
{
var img = new Image();
var logDomain = window.DRAWIO_LOG_URL != null ? window.DRAWIO_LOG_URL : '';
img.src = logDomain + '/log?severity=CONFIG&msg=helpsearch:' + encodeURIComponent(input.value) + '&v=' + encodeURIComponent(EditorUi.VERSION);
try
{
var img = new Image();
var logDomain = window.DRAWIO_LOG_URL != null ? window.DRAWIO_LOG_URL : '';
img.src = logDomain + '/log?severity=CONFIG&msg=helpsearch:' + encodeURIComponent(input.value) + '&v=' + encodeURIComponent(EditorUi.VERSION);
}
catch (e)
{
// ignore
}
}
// Workaround for blocked submit on iOS/IE11
@ -1019,7 +1023,7 @@
dlg.init();
});
}
});
}, true);
}));
editorUi.actions.put('publishLink', new Action(mxResources.get('link') + '...', function()
@ -1907,16 +1911,13 @@
this.put('openRecent', new Menu(function(menu, parent)
{
var recent = editorUi.getRecent();
var count = 0;
if (recent != null)
{
for (var i = 0; i < recent.length; i++)
{
(function(entry)
{
count++;
{
var modeKey = entry.mode;
// Google and oneDrive use different keys

View file

@ -115,7 +115,7 @@ OneDriveClient.prototype.execute = function(fn, userEvent)
}
else
{
var next = mxUtils.bind(this, function(newToken)
var next = mxUtils.bind(this, function(newToken, cb)
{
if (newToken != null && newToken.length > 0)
{
@ -129,6 +129,11 @@ OneDriveClient.prototype.execute = function(fn, userEvent)
{
if (req.getStatus() >= 200 && req.getStatus() <= 299)
{
if (cb != null)
{
cb();
}
var data = JSON.parse(req.getText());
this.setUser(new DrawioUser(data.owner.user.id, null, data.owner.user.displayName));
fn(newToken);
@ -154,11 +159,11 @@ OneDriveClient.prototype.execute = function(fn, userEvent)
if (token != null && token.length > 0)
{
next(token);
next(token, null);
}
else
{
var auth = mxUtils.bind(this, function()
var auth = mxUtils.bind(this, function(cb)
{
var url = 'https://login.live.com/oauth20_authorize.srf?client_id=' + this.clientId +
'&scope=' + encodeURIComponent(this.scopes) + '&response_type=token' +
@ -193,7 +198,7 @@ OneDriveClient.prototype.execute = function(fn, userEvent)
authWindow.close();
}
next(newToken);
next(newToken, cb);
});
popup.focus();
@ -209,12 +214,7 @@ OneDriveClient.prototype.execute = function(fn, userEvent)
// Requires a user event to about popups being blocked
this.ui.showAuthDialog(this, false, mxUtils.bind(this, function(remember, success)
{
if (success != null)
{
success();
}
auth();
auth(success);
}));
}
}

View file

@ -1006,9 +1006,16 @@
// Logs search terms for improving search results
if (this.editorUi.enableLogging && !this.editorUi.isOffline() && page == 0)
{
var img = new Image();
var logDomain = window.DRAWIO_LOG_URL != null ? window.DRAWIO_LOG_URL : '';
img.src = logDomain + '/log?severity=CONFIG&msg=shapesearch:' + encodeURIComponent(searchTerms) + '&v=' + encodeURIComponent(EditorUi.VERSION);
try
{
var img = new Image();
var logDomain = window.DRAWIO_LOG_URL != null ? window.DRAWIO_LOG_URL : '';
img.src = logDomain + '/log?severity=CONFIG&msg=shapesearch:' + encodeURIComponent(searchTerms) + '&v=' + encodeURIComponent(EditorUi.VERSION);
}
catch (e)
{
// ignore
}
}
success = mxUtils.bind(this, function(results, len, more, terms)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

40
war/js/embed.min.js vendored
View file

@ -1,20 +1,20 @@
(function(x,r){function L(){if(!s){s=!0;window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config({"HTML-CSS":{availableFonts:[],webFont:"STIX-Web",imageFont:null}});MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<q.length;a++)MathJax.Hub.Queue(["Typeset",MathJax.Hub,q[a]])})}};var a=document.createElement("script");a.type="text/javascript";a.src="https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config\x3dTeX-MML-AM_HTMLorMML";
document.getElementsByTagName("head")[0].appendChild(a)}}function M(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?MathJax.Hub.Queue(["Typeset",MathJax.Hub,a.container]):q.push(a.container);a.addListener(mxEvent.SIZE,function(d,m){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a.container])})}mxStencilRegistry.dynamicLoading=!1;try{var d=document.createElement("style");d.type="text/css";d.innerHTML="div.mxTooltip {\n-webkit-box-shadow: 3px 3px 12px #C0C0C0;\n-moz-box-shadow: 3px 3px 12px #C0C0C0;\nbox-shadow: 3px 3px 12px #C0C0C0;\nbackground: #FFFFCC;\nborder-style: solid;\nborder-width: 1px;\nborder-color: black;\nfont-family: Arial;\nfont-size: 8pt;\nposition: absolute;\ncursor: default;\npadding: 4px;\ncolor: black;}";
document.getElementsByTagName("head")[0].appendChild(d)}catch(S){}var F=mxClient.NO_FO,s="undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub,q=[];mxGraph.prototype.getImageFromBundles=function(a){return null!=a?("http://"!=a.substring(0,7)&&("https://"!=a.substring(0,8)&&"data:image"!=a.substring(0,10))&&("/"==a.charAt(0)&&(a=a.substring(1,a.length)),a="https://www.draw.io/"+a),a):null};if(null!=r)for(d=0;d<r.length;d++){var y=mxUtils.parseXml(r[d]);mxStencilRegistry.parseStencilSet(y.documentElement)}mxClient.IS_TOUCH&&
(mxPanningHandler.prototype.isPanningTrigger=function(a){return!0});(function(){function a(a){try{for(var e=a.firstChild;null!=e&&e.nodeType!=mxConstants.NODETYPE_ELEMENT;)e=e.nextSibling;var h=mxUtils.trim(e.innerHTML);a.innerHTML="";var b=new Graph(a),h="\x26lt;"==h.substring(0,4)?h.replace(/&lt;/g,"\x3c").replace(/&gt;/g,"\x3e").replace(/&amp;gt;/g,"\x26gt;").replace(/&amp;lt;/g,"\x26lt;").replace(/&amp;quot;/g,"\x26quot;").replace(/&#xa;/g,"\n"):"%3C"==h.substring(0,3)?decodeURIComponent(h):b.decompress(h),
g=mxUtils.parseXml(h),d=e=null;null!=g.documentElement&&"mxfile"==g.documentElement.nodeName&&(d=g.documentElement.getElementsByTagName("diagram"),e=g.documentElement,0<d.length&&(h=mxUtils.getTextContent(d[0]),h=b.decompress(h),g=mxUtils.parseXml(h)));if(null!=g.documentElement&&"mxGraphModel"==g.documentElement.nodeName){var l=new mxCodec(g),m=g.documentElement;null==e&&(e=m);b.resetViewOnRootChange=!1;b.setEnabled(!1);if(null!=d&&0<d.length){var r=b.getGlobalVariable;b.getGlobalVariable=function(b){return"page"==
b?d[0].getAttribute("name")||"Page-1":"pagenumber"==b?1:r.apply(this,arguments)}}b.foldingEnabled="1"==e.getAttribute("nav");b.cellRenderer.forceControlClickHandler=b.foldingEnabled;var q=e.getAttribute("tooltips");"0"!=q?b.setTooltips(!0):b.setTooltips(!1);if(mxClient.IS_VML){var z=b.view.getCanvas();null!=z&&"DIV"==z.nodeName&&(z.style.position="relative")}if(null!=x){var s=mxUtils.parseXml(x);(new mxCodec(s)).decode(s.documentElement,b.getStylesheet())}var A=e.getAttribute("math");"1"==A&&(mxClient.NO_FO=
!0,L());"0"!=e.getAttribute("pan")?(b.panningHandler.useLeftButtonForPanning=!0,b.panningHandler.ignoreCell=!0,a.style.cursor="move",b.setPanning(!0)):a.style.cursor="default";var B=e.getAttribute("resize"),u=Number(e.getAttribute("border")||0);b.border=u;var C=e.getAttribute("fit");"100%"!=a.style.width&&"1"!=C&&"0"!=B||""==a.style.width&&""==a.style.height?(b.resizeContainer=!0,b.centerZoom=!1):"0"!=B&&"100%"==a.style.width&&""==a.style.height?(b.resizeContainer=!0,b.centerZoom=!1,b.doResizeContainer=
function(b,a){if(mxClient.IS_IE)if(mxClient.IS_QUIRKS){var c=this.getBorderSizes();b+=Math.max(2,c.x+c.width+1);a+=Math.max(2,c.y+c.height+1)}else 9<=document.documentMode?(b+=3,a+=5):(b+=1,a+=1);else a+=1;null!=this.maximumContainerSize&&(Math.min(this.maximumContainerSize.width,b),a=Math.min(this.maximumContainerSize.height,a));this.container.style.height=Math.ceil(a+18)+"px"}):b.centerZoom=!0;var y=e.getAttribute("links"),v=e.getAttribute("highlight");if("0"!=y||"0"!=q){var N=a.style.cursor,H=
b.getTolerance();b.addMouseListener({currentState:null,currentLink:null,highlight:null!=v&&""!=v&&v!=mxConstants.NONE?new mxCellHighlight(b,v,2):null,startX:0,startY:0,mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY()},mouseMove:function(a,f){if(b.isMouseDown){if(null!=this.currentLink){var c=Math.abs(this.startX-f.getGraphX()),e=Math.abs(this.startY-f.getGraphY());(c>H||e>H)&&this.clear()}}else null!=this.currentState&&(f.getState()==this.currentState||null==f.getState())&&
b.intersects(this.currentState,f.getGraphX(),f.getGraphY())||(c=b.view.getState(f.getCell()),c!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=c,null!=this.currentState&&this.activate(this.currentState)))},mouseUp:function(b,a){var c=this.currentLink;this.clear();null!=c&&("#"==c.charAt(0)?window.location.hash=c:window.open(c))},activate:function(G){this.currentLink=b.getLinkForCell(G.cell);null!=this.currentLink&&(a.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(G))},
clear:function(){a.style.cursor=N;this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}})}var O=Number(e.getAttribute("x0")||0),P=Number(e.getAttribute("y0")||0);b.view.translate.x=-O+u;b.view.translate.y=-P+u;var I=function(a){a=a.getAttribute("backgroundImage");null!=a&&(a=JSON.parse(a),b.setBackgroundImage(new mxImage(a.src,a.width,a.height)),b.view.validateBackgroundImage());"0"!=C&&b.fit(u);"1"==A&&M(b);a=b.container.getElementsByTagName("a");if(null!=a)for(var f=
0;f<a.length;f++){var c=a[f].getAttribute("href");null!=c&&("#"==c.charAt(0)&&"_blank"==a[f].getAttribute("target"))&&a[f].removeAttribute("target")}},n=e.getAttribute("url");if(null!=n)try{var p=0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;p.open("GET",n);p.onload=mxUtils.bind(this,function(){try{"1"==A&&(mxClient.NO_FO=!0);var a=null!=p.getText?p.getText():p.responseText;if(null!=a){var f=mxUtils.parseXml(a);if(null!=f&&"html"==f.documentElement.nodeName){var c=
f.documentElement.getElementsByTagName("div");if(0<c.length&&"mxgraph"==c[0].getAttribute("class")){var e=c[0].getElementsByTagName("div");0<e.length&&(a=mxUtils.getTextContent(e[0]),a=b.decompress(a),0<a.length&&(f=mxUtils.parseXml(a)))}}if(null!=f&&"svg"==f.documentElement.nodeName){var d=f.documentElement.getAttribute("content");null!=d&&("\x3c"!=d.charAt(0)&&"%"!=d.charAt(0))&&(d=unescape(window.atob?atob(d):Base64.decode(cont,d)));null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d));null!=d&&
0<d.length&&(f=mxUtils.parseXml(d))}if("mxfile"==f.documentElement.nodeName){var g=f.documentElement.getElementsByTagName("diagram");0<g.length&&(a=b.decompress(mxUtils.getTextContent(g[0])),f=mxUtils.parseXml(a))}l=new mxCodec(f);l.decode(f.documentElement,b.getModel());I(f.documentElement)}else b.container.innerHTML="Cannot load "+n;mxClient.NO_FO=F}catch(k){b.container.innerHTML="Cannot load "+n+": "+k.message}});p.onerror=function(){b.container.innerHTML="Cannot load "+n};p.send()}catch(Q){b.container.innerHTML=
"Cannot load "+n+": "+Q.message}else l.decode(m,b.getModel()),I(m);"100%"!=a.style.width&&("0"!=C&&"1"==B)&&(b.resizeContainer=!0,b.centerZoom=!1);var k=document.createElement("div");k.style.position="absolute";k.style.overflow="visible";k.style.cursor="pointer";var J=b.getBorderSizes(),D=0,K=10,t=16,w=16;mxClient.IS_QUIRKS?(t-=1,w-=1):mxClient.IS_TOUCH&&(w=t=24,K=14);g=function(a,b){var c=document.createElement("div");c.style.position="absolute";c.style.border="1px solid gray";c.style.textAlign=
"center";c.style.cursor="hand";c.style.width=t+"px";c.style.height=w+"px";c.style.left=D+"px";c.style.top="0px";c.style.backgroundColor="white";mxUtils.setOpacity(c,50);var d=document.createElement("table");d.style.borderWidth="0px";d.style.width="100%";d.style.height="100%";var e=document.createElement("tbody"),g=document.createElement("tr"),h=document.createElement("td");h.style.verticalAlign="middle";h.style.textAlign="center";h.style.fontSize=K+"px";h.style.padding="0px";mxUtils.write(h,a);g.appendChild(h);
e.appendChild(g);d.appendChild(e);c.appendChild(d);mxEvent.addListener(c,mxClient.IS_POINTER?"pointerdown":"mousedown",function(a){mxEvent.consume(a)});mxEvent.addListener(c,mxClient.IS_POINTER?"pointerup":"mouseup",function(a){b();mxEvent.consume(a)});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&(mxEvent.addListener(c,"touchstart",function(a){mxEvent.consume(a)}),mxEvent.addListener(c,"touchend",function(a){b();mxEvent.consume(a)}));D+=t;k.appendChild(c);return c};"0"!=e.getAttribute("zoom")&&(g("+",
function(){b.zoomIn()}),g("-",function(){b.zoomOut()}));var E=e.getAttribute("edit");null!=E&&(g("",function(){if("_blank"==E)if(null!=n)window.open("https://www.draw.io/#U"+encodeURIComponent(n));else{var a=null,b=function(c){"ready"==c.data&&c.source==a&&(a.postMessage(h,"*"),window.removeEventListener("message",b))};window.addEventListener("message",b);a=window.open("https://www.draw.io/?client\x3d1")}else window.open(E)}).innerHTML="...");g=function(){k.style.top=a.offsetTop+J.y+"px";k.style.left=
a.offsetLeft+J.x+"px";k.style.visibility="visible"};!mxClient.IS_POINTER&&!mxClient.IS_TOUCH?(e=function(){k.style.visibility="hidden"},mxEvent.addListener(a,"mouseover",g),mxEvent.addListener(k,"mouseover",g),mxEvent.addListener(a,"mouseout",e),mxEvent.addListener(k,"mouseout",e),e()):g();null!=k.firstChild&&(null!=a.nextSibling?a.parentNode.insertBefore(k,a.nextSibling):a.parentNode.appendChild(k));"function"==typeof window.mxClientOnCreate&&window.mxClientOnCreate(b)}}catch(R){null!=window.console&&
console.log("Error:",R)}mxClient.NO_FO=F;return b}if("function"==typeof mxClientOnLoad)mxClientOnLoad(x,a);else if(mxClient.isBrowserSupported()){for(var d=document.getElementsByTagName("*"),m=[],l=0;l<d.length;l++)m.push(d[l]);for(l=0;l<m.length;l++)0<=m[l].className.toString().indexOf("mxgraph")&&a(m[l])}})()
(function(x,r){function N(){if(!t){t=!0;window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config({"HTML-CSS":{availableFonts:[],webFont:"STIX-Web",imageFont:null}});MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<p.length;a++)MathJax.Hub.Queue(["Typeset",MathJax.Hub,p[a]])})}};var a=document.createElement("script");a.type="text/javascript";a.src="https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config=TeX-MML-AM_HTMLorMML";
document.getElementsByTagName("head")[0].appendChild(a)}}function O(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?MathJax.Hub.Queue(["Typeset",MathJax.Hub,a.container]):p.push(a.container);a.addListener(mxEvent.SIZE,function(e,m){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a.container])})}mxStencilRegistry.dynamicLoading=!1;try{var e=document.createElement("style");e.type="text/css";e.innerHTML="div.mxTooltip {\n-webkit-box-shadow: 3px 3px 12px #C0C0C0;\n-moz-box-shadow: 3px 3px 12px #C0C0C0;\nbox-shadow: 3px 3px 12px #C0C0C0;\nbackground: #FFFFCC;\nborder-style: solid;\nborder-width: 1px;\nborder-color: black;\nfont-family: Arial;\nfont-size: 8pt;\nposition: absolute;\ncursor: default;\npadding: 4px;\ncolor: black;}";
document.getElementsByTagName("head")[0].appendChild(e)}catch(a){}var G=mxClient.NO_FO,t="undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub,p=[];mxGraph.prototype.getImageFromBundles=function(a){return null!=a?("http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&"data:image"!=a.substring(0,10)&&("/"==a.charAt(0)&&(a=a.substring(1,a.length)),a="https://www.draw.io/"+a),a):null};if(null!=r)for(e=0;e<r.length;e++){var y=mxUtils.parseXml(r[e]);mxStencilRegistry.parseStencilSet(y.documentElement)}mxClient.IS_TOUCH&&
(mxPanningHandler.prototype.isPanningTrigger=function(a){return!0});(function(){function a(a){try{for(var e=a.firstChild;null!=e&&e.nodeType!=mxConstants.NODETYPE_ELEMENT;)e=e.nextSibling;var l=mxUtils.trim(e.innerHTML);a.innerHTML="";var c=new Graph(a),l="&lt;"==l.substring(0,4)?l.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;gt;/g,"&gt;").replace(/&amp;lt;/g,"&lt;").replace(/&amp;quot;/g,"&quot;").replace(/&#xa;/g,"\n"):"%3C"==l.substring(0,3)?decodeURIComponent(l):c.decompress(l),h=mxUtils.parseXml(l),
d=null,f=null;null!=h.documentElement&&"mxfile"==h.documentElement.nodeName&&(f=h.documentElement.getElementsByTagName("diagram"),d=h.documentElement,0<f.length&&(l=mxUtils.getTextContent(f[0]),l=c.decompress(l),h=mxUtils.parseXml(l)));if(null!=h.documentElement&&"mxGraphModel"==h.documentElement.nodeName){var e=function(){k.style.top=a.offsetTop+H.y+"px";k.style.left=a.offsetLeft+H.x+"px";k.style.visibility="visible"},m=function(a,c){var b=document.createElement("div");b.style.position="absolute";
b.style.border="1px solid gray";b.style.textAlign="center";b.style.cursor="hand";b.style.width=u+"px";b.style.height=z+"px";b.style.left=I+"px";b.style.top="0px";b.style.backgroundColor="white";mxUtils.setOpacity(b,50);var g=document.createElement("table");g.style.borderWidth="0px";g.style.width="100%";g.style.height="100%";var e=document.createElement("tbody"),d=document.createElement("tr"),f=document.createElement("td");f.style.verticalAlign="middle";f.style.textAlign="center";f.style.fontSize=
J+"px";f.style.padding="0px";mxUtils.write(f,a);d.appendChild(f);e.appendChild(d);g.appendChild(e);b.appendChild(g);mxEvent.addListener(b,mxClient.IS_POINTER?"pointerdown":"mousedown",function(b){mxEvent.consume(b)});mxEvent.addListener(b,mxClient.IS_POINTER?"pointerup":"mouseup",function(b){c();mxEvent.consume(b)});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&(mxEvent.addListener(b,"touchstart",function(b){mxEvent.consume(b)}),mxEvent.addListener(b,"touchend",function(b){c();mxEvent.consume(b)}));I+=
u;k.appendChild(b);return b},r=function(a){a=a.getAttribute("backgroundImage");null!=a&&(a=JSON.parse(a),c.setBackgroundImage(new mxImage(a.src,a.width,a.height)),c.view.validateBackgroundImage());"0"!=A&&c.fit(v);"1"==B&&O(c);a=c.container.getElementsByTagName("a");if(null!=a)for(var b=0;b<a.length;b++){var g=a[b].getAttribute("href");null!=g&&"#"==g.charAt(0)&&"_blank"==a[b].getAttribute("target")&&a[b].removeAttribute("target")}},p=new mxCodec(h),C=h.documentElement;null==d&&(d=C);c.resetViewOnRootChange=
!1;c.setEnabled(!1);if(null!=f&&0<f.length){var t=c.getGlobalVariable;c.getGlobalVariable=function(a){return"page"==a?f[0].getAttribute("name")||"Page-1":"pagenumber"==a?1:t.apply(this,arguments)}}c.foldingEnabled="1"==d.getAttribute("nav");c.cellRenderer.forceControlClickHandler=c.foldingEnabled;var K=d.getAttribute("tooltips");"0"!=K?c.setTooltips(!0):c.setTooltips(!1);if(mxClient.IS_VML){var D=c.view.getCanvas();null!=D&&"DIV"==D.nodeName&&(D.style.position="relative")}if(null!=x){var L=mxUtils.parseXml(x);
(new mxCodec(L)).decode(L.documentElement,c.getStylesheet())}var B=d.getAttribute("math");"1"==B&&(mxClient.NO_FO=!0,N());"0"!=d.getAttribute("pan")?(c.panningHandler.useLeftButtonForPanning=!0,c.panningHandler.ignoreCell=!0,a.style.cursor="move",c.setPanning(!0)):a.style.cursor="default";var E=d.getAttribute("resize"),v=Number(d.getAttribute("border")||0);c.border=v;var A=d.getAttribute("fit");"100%"!=a.style.width&&"1"!=A&&"0"!=E||""==a.style.width&&""==a.style.height?(c.resizeContainer=!0,c.centerZoom=
!1):"0"!=E&&"100%"==a.style.width&&""==a.style.height?(c.resizeContainer=!0,c.centerZoom=!1,c.doResizeContainer=function(a,b){if(mxClient.IS_IE)if(mxClient.IS_QUIRKS){var c=this.getBorderSizes();b+=Math.max(2,c.y+c.height+1)}else b=9<=document.documentMode?b+5:b+1;else b+=1;null!=this.maximumContainerSize&&(b=Math.min(this.maximumContainerSize.height,b));this.container.style.height=Math.ceil(b+18)+"px"}):c.centerZoom=!0;var y=d.getAttribute("links"),w=d.getAttribute("highlight");if("0"!=y||"0"!=K){var Q=
a.style.cursor,M=c.getTolerance();c.addMouseListener({currentState:null,currentLink:null,highlight:null!=w&&""!=w&&w!=mxConstants.NONE?new mxCellHighlight(c,w,2):null,startX:0,startY:0,mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY()},mouseMove:function(a,b){if(c.isMouseDown){if(null!=this.currentLink){var g=Math.abs(this.startX-b.getGraphX()),e=Math.abs(this.startY-b.getGraphY());(g>M||e>M)&&this.clear()}}else if(null==this.currentState||b.getState()!=this.currentState&&
null!=b.getState()||!c.intersects(this.currentState,b.getGraphX(),b.getGraphY()))g=c.view.getState(b.getCell()),g!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=g,null!=this.currentState&&this.activate(this.currentState))},mouseUp:function(a,b){var c=this.currentLink;this.clear();null!=c&&("#"==c.charAt(0)?window.location.hash=c:window.open(c))},activate:function(g){this.currentLink=c.getLinkForCell(g.cell);null!=this.currentLink&&(a.style.cursor="pointer",null!=this.highlight&&
this.highlight.highlight(g))},clear:function(){a.style.cursor=Q;this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}})}var R=Number(d.getAttribute("x0")||0),S=Number(d.getAttribute("y0")||0);c.view.translate.x=-R+v;c.view.translate.y=-S+v;var n=d.getAttribute("url");if(null!=n)try{var q=0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;q.open("GET",n);q.onload=mxUtils.bind(this,function(){try{"1"==B&&(mxClient.NO_FO=!0);var a=null!=q.getText?
q.getText():q.responseText;if(null!=a){var b=mxUtils.parseXml(a);if(null!=b&&"html"==b.documentElement.nodeName){var e=b.documentElement.getElementsByTagName("div");if(0<e.length&&"mxgraph"==e[0].getAttribute("class")){var f=e[0].getElementsByTagName("div");0<f.length&&(a=mxUtils.getTextContent(f[0]),a=c.decompress(a),0<a.length&&(b=mxUtils.parseXml(a)))}}if(null!=b&&"svg"==b.documentElement.nodeName){var d=b.documentElement.getAttribute("content");null!=d&&"<"!=d.charAt(0)&&"%"!=d.charAt(0)&&(d=
unescape(window.atob?atob(d):Base64.decode(cont,d)));null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d));null!=d&&0<d.length&&(b=mxUtils.parseXml(d))}if("mxfile"==b.documentElement.nodeName){var h=b.documentElement.getElementsByTagName("diagram");0<h.length&&(a=c.decompress(mxUtils.getTextContent(h[0])),b=mxUtils.parseXml(a))}p=new mxCodec(b);p.decode(b.documentElement,c.getModel());r(b.documentElement)}else c.container.innerHTML="Cannot load "+n;mxClient.NO_FO=G}catch(P){c.container.innerHTML="Cannot load "+
n+": "+P.message}});q.onerror=function(){c.container.innerHTML="Cannot load "+n};q.send()}catch(g){c.container.innerHTML="Cannot load "+n+": "+g.message}else p.decode(C,c.getModel()),r(C);"100%"!=a.style.width&&"0"!=A&&"1"==E&&(c.resizeContainer=!0,c.centerZoom=!1);var k=document.createElement("div");k.style.position="absolute";k.style.overflow="visible";k.style.cursor="pointer";var H=c.getBorderSizes(),I=0,J=10,u=16,z=16;mxClient.IS_QUIRKS?(--u,--z):mxClient.IS_TOUCH&&(z=u=24,J=14);"0"!=d.getAttribute("zoom")&&
(m("+",function(){c.zoomIn()}),m("-",function(){c.zoomOut()}));var F=d.getAttribute("edit");null!=F&&(m("",function(){if("_blank"==F)if(null!=n)window.open("https://www.draw.io/#U"+encodeURIComponent(n));else{var a=null,b=function(c){"ready"==c.data&&c.source==a&&(a.postMessage(l,"*"),window.removeEventListener("message",b))};window.addEventListener("message",b);a=window.open("https://www.draw.io/?client=1")}else window.open(F)}).innerHTML="...");mxClient.IS_POINTER||mxClient.IS_TOUCH?e():(h=function(){k.style.visibility=
"hidden"},mxEvent.addListener(a,"mouseover",e),mxEvent.addListener(k,"mouseover",e),mxEvent.addListener(a,"mouseout",h),mxEvent.addListener(k,"mouseout",h),h());null!=k.firstChild&&(null!=a.nextSibling?a.parentNode.insertBefore(k,a.nextSibling):a.parentNode.appendChild(k));"function"==typeof window.mxClientOnCreate&&window.mxClientOnCreate(c)}}catch(g){null!=window.console&&console.log("Error:",g)}mxClient.NO_FO=G;return c}if("function"==typeof mxClientOnLoad)mxClientOnLoad(x,a);else if(mxClient.isBrowserSupported()){for(var e=
document.getElementsByTagName("*"),m=[],f=0;f<e.length;f++)m.push(e[f]);for(f=0;f<m.length;f++)0<=m[f].className.toString().indexOf("mxgraph")&&a(m[f])}})()

View file

@ -1,176 +1,164 @@
(function(){function v(a){a=null!=a.Text?a.Text:null!=a.Value?a.Value:a.Lane_0;return null!=a&&null!=a.t?a.t:""}function r(a){return null!=a.Action?a.Action:a}function w(a,c){var d=r(c);if(null!=d){var b=z[d.Class];null!=b&&(a.style+=b);b=null!=d.Properties?d.Properties:d;if(null!=b){a.value=v(b);"ImageSearchBlock2"==d.Class&&(a.style+="image\x3d"+b.URL+";");a.style+=h(mxConstants.STYLE_STROKEWIDTH,b.LineWidth,"1");a.style+=h(mxConstants.STYLE_STROKECOLOR,b.LineColor.substring(0,7),"#000000");a.style+=
h(mxConstants.STYLE_ALIGN,b.TextAlign,"center");a.style+=h(mxConstants.STYLE_VERTICAL_ALIGN,b.TextVAlign,"middle");a.style+=h(mxConstants.STYLE_OPACITY,b.Opacity,"100");if(null!=b.Rotation){var g=mxUtils.toDegree(parseFloat(b.Rotation));"AdvancedSwimLaneBlockRotated"==d.Class&&(g+=90,a.geometry.rotate90());a.style+="rotation\x3d"+g+";"}b.FlipX&&(a.style+="flipH\x3d1;");b.FlipY&&(a.style+="flipV\x3d1;");null!=b.Shadow&&(a.style+=mxConstants.STYLE_SHADOW+"\x3d1;");"dashed"==b.StrokeStyle?a.style+="dashed\x3d1;":
"dotted"==b.StrokeStyle&&(a.style+="dashed\x3d1;dashPattern\x3d1 4;");null!=b.FillColor&&("object"===typeof b.FillColor?null!=b.FillColor.cs&&1<b.FillColor.cs.length&&(a.style+=h(mxConstants.STYLE_FILLCOLOR,b.FillColor.cs[0].c.substring(0,7)),a.style+=h(mxConstants.STYLE_GRADIENTCOLOR,b.FillColor.cs[1].c.substring(0,7))):"string"===typeof b.FillColor&&(a.style+=h(mxConstants.STYLE_FILLCOLOR,b.FillColor.substring(0,7),"#FFFFFF")));if(a.edge){a.style+="rounded\x3d1;arcSize\x3d"+f+";";if("diagonal"!=
b.Shape)if(null!=b.ElbowPoints){a.geometry.points=[];for(d=0;d<b.ElbowPoints.length;d++)a.geometry.points.push(new mxPoint(Math.round(b.ElbowPoints[d].x*l+n),Math.round(b.ElbowPoints[d].y*l+k)))}else"elbow"==b.Shape?a.style=null!=b.Endpoint1.Block&&null!=b.Endpoint1.Block?a.style+"edgeStyle\x3dorthogonalEdgeStyle;":a.style+"edgeStyle\x3delbowEdgeStyle;":null!=b.Endpoint1.Block&&null!=b.Endpoint1.Block&&(a.style+="edgeStyle\x3dorthogonalEdgeStyle;","curve"==b.Shape&&(a.style+="curved\x3d1;"));x(a,
b.Endpoint1,!0);x(a,b.Endpoint2,!1)}}}}function y(a){var c=r(a).Properties.BoundingBox,c=new mxCell("",new mxGeometry(Math.round(c.x*l+n),Math.round(c.y*l+k),Math.round(c.w*l),Math.round(c.h*l)),A);c.vertex=!0;w(c,a);return c}function h(a,c,d,b){null!=c&&null!=b&&(c=b(c));return null!=c&&c!=d?a+"\x3d"+c+";":""}function x(a,c,d){null!=c&&(null!=c.LinkX&&null!=c.LinkY&&(a.style+=(d?"exitX":"entryX")+"\x3d"+c.LinkX+";"+(d?"exitY":"entryY")+"\x3d"+c.LinkY+";"+(d?"exitPerimeter":"entryPerimeter")+"\x3d0;"),
"Arrow"==c.Style?a.style+=(d?"startArrow":"endArrow")+"\x3dblock;":"Hollow Arrow"==c.Style?(a.style+=(d?"startArrow":"endArrow")+"\x3dblock;",a.style+=(d?"startFill":"endFill")+"\x3d0;"):"Open Arrow"==c.Style&&(a.style+=(d?"startArrow":"endArrow")+"\x3dopen;",a.style+=(d?"startSize":"endSize")+"\x3d12;"))}var l=0.6,n=0,k=0,f=5,A="html\x3d1;whiteSpace\x3dwrap;",z={DefaultTextBlockNew:"text;strokeColor\x3dnone;fillColor\x3dnone;align\x3dcenter;verticalAlign\x3dmiddle;",DefaultSquareBlock:"rounded\x3d1;arcSize\x3d"+
f+";",DefaultNoteBlock:"shape\x3dnote;size\x3d15;",HotspotBlock:"strokeColor\x3dnone;opacity\x3d50;",ImageSearchBlock2:"shape\x3dimage;",ProcessBlock:"rounded\x3d1;arcSize\x3d"+f+";",DecisionBlock:"rhombus;rounded\x3d1;arcSize\x3d"+f+";",TerminatorBlock:"rounded\x3d1;arcSize\x3d50;",PredefinedProcessBlock:"shape\x3dprocess;rounded\x3d1;arcSize\x3d"+f+";",DocumentBlock:"shape\x3ddocument;",MultiDocumentBlock:"shape\x3dmxgraph.flowchart.multi-document;",ManualInputBlock:"shape\x3dmanualInput;size\x3d15;rounded\x3d1;arcSize\x3d"+
f+";",PreparationBlock:"shape\x3dhexagon;rounded\x3d1;arcSize\x3d"+f+";",DataBlockNew:"shape\x3dparallelogram;rounded\x3d1;arcSize\x3d"+f+";",DatabaseBlock:"shape\x3dcylinder;",DirectAccessStorageBlock:"shape\x3dmxgraph.flowchart.direct_data;",InternalStorageBlock:"shape\x3dinternalStorage;rounded\x3d1;arcSize\x3d"+f+";dx\x3d10;dy\x3d10;",PaperTapeBlock:"shape\x3dtape;size\x3d0.2;",ManualOperationBlockNew:"shape\x3dtrapezoid;rounded\x3d1;arcSize\x3d"+f+";flipV\x3d1;",DelayBlock:"shape\x3ddelay;",
StoredDataBlock:"shape\x3ddataStorage;",MergeBlock:"triangle;direction\x3dsouth;rounded\x3d1;arcSize\x3d"+f+";",ConnectorBlock:"ellipse;",OrBlock:"shape\x3dmxgraph.flowchart.summing_function;",SummingJunctionBlock:"shape\x3dmxgraph.flowchart.or;",DisplayBlock:"shape\x3ddisplay;",OffPageLinkBlock:"shape\x3doffPageConnector;rounded\x3d1;arcSize\x3d"+f+";",BraceNoteBlock:"shape\x3dcurlyBracket;rounded\x3d1;",NoteBlock:"shape\x3dmxgraph.flowchart.annotation_1;",AdvancedSwimLaneBlock:"swimlane;rounded\x3d1;arcSize\x3d"+
f+";",AdvancedSwimLaneBlockRotated:"swimlane;horizontal\x3d0;rounded\x3d1;arcSize\x3d"+f+";",RectangleContainerBlock:"fillColor\x3dnone;container\x3d1;rounded\x3d1;arcSize\x3d"+f+";",DiamondContainerBlock:"shape\x3drhombus;fillColor\x3dnone;container\x3d1;",RoundedRectangleContainerBlock:"rounded\x3d1;fillColor\x3dnone;container\x3d1;",CircleContainerBlock:"shape\x3dellipse;fillColor\x3dnone;container\x3d1;",PillContainerBlock:"rounded\x3d1;arcSize\x3d50;fillColor\x3dnone;container\x3d1;",IsoscelesTriangleBlock:"triangle;direction\x3dnorth;",
RightTriangleBlock:"shape\x3dmxgraph.basic.orthogonal_triangle;",PentagonBlock:"shape\x3dmxgraph.basic.pentagon;",HexagonBlock:"shape\x3dhexagon;rounded\x3d1;arcSize\x3d"+f+";",OctagonBlock:"shape\x3dmxgraph.basic.octagon;",CrossBlock:"shape\x3dcross;size\x3d0.6;",CloudBlock:"ellipse;shape\x3dcloud;",HeartBlock:"shape\x3dmxgraph.basic.heart;",RightArrowBlock:"shape\x3dsingleArrow;arrowWidth\x3d0.5;arrowSize\x3d0.3;",DoubleArrowBlock:"shape\x3ddoubleArrow;arrowWidth\x3d0.5;arrowSize\x3d0.3;",CalloutBlock:"shape\x3dmxgraph.basic.rectangular_callout;",
ShapeCircleBlock:"ellipse;",ShapePolyStarBlock:"shape\x3dmxgraph.basic.star;",ShapeDiamondBlock:"rhombus;rounded\x3d1;arcSize\x3d"+f+";",AndroidIconCheck:"shape\x3dmxgraph.ios7.misc.check;",AndroidIconCollapse:"shape\x3dmxgraph.ios7.misc.up;",AndroidIconExpand:"shape\x3dmxgraph.ios7.misc.down;",AndroidIconNext:"shape\x3dmxgraph.ios7.misc.right;",AndroidIconPrevious:"shape\x3dmxgraph.ios7.misc.left;",AndroidIconInformation:"shape\x3dmxgraph.ios7.icons.info;",AndroidIconSearch:"shape\x3dmxgraph.ios7.icons.looking_glass;",
AndroidIconSettings:"shape\x3dmxgraph.ios7.icons.volume;direction\x3dsouth;",AndroidIconTrash:"shape\x3dmxgraph.ios7.icons.trashcan;",AndroidIconEmail:"shape\x3dmxgraph.mockup.misc.mail2;",AndroidIconNew:"shape\x3dmxgraph.ios7.misc.flagged;",UMLClassBlock:"rounded\x3d1;",UMLActiveClassBlock:"shape\x3dmxgraph.flowchart.predefined_process;",UMLPackageBlock:"shape\x3dfolder;tabPosition\x3dleft;",UMLNoteBlock:"shape\x3dnote;size\x3d15;",UMLTextBlock:"shape\x3dtext;strokeColor\x3dnone;fillColor\x3dnone;",
UMLActorBlock:"shape\x3dumlActor;",UMLUseCaseBlock:"shape\x3dellipse;",UMLCircleContainerBlock:"shape\x3dellipse;container\x3d1;",UMLRectangleContainerBlock:"rounded\x3d1;container\x3d1;",UMLOptionLoopBlock:"shape\x3dmxgraph.sysml.package;xSize\x3d90;align\x3dleft;spacingLeft\x3d10;overflow\x3dfill;",UMLStartBlock:"shape\x3dellipse;fillColor\x3d#000000;",UMLStateBlock:"shape\x3drect;rounded\x3d1;",UMLDecisionBlock:"shape\x3drhombus;rounded\x3d1;",UMLHForkJoinBlock:"shape\x3drect;rounded\x3d1;fillColor\x3d#000000;",
UMLVForkJoinBlock:"shape\x3drect;rounded\x3d1;fillColor\x3d#000000;",UMLFlowFinalBlock:"shape\x3dmxgraph.flowchart.or;",UMLHistoryStateBlock:"shape\x3dellipse;",UMLEndBlock:"shape\x3dmxgraph.bpmn.shape;outline\x3dend;symbol\x3dterminate;",UMLObjectBlock:"shape\x3drect;rounded\x3d1;",UMLSendSignalBlock:"shape\x3dmxgraph.sysml.sendSigAct;",UMLReceiveSignalBlock:"shape\x3dmxgraph.sysml.accEvent;",UMLAcceptTimeEventActionBlock:"shape\x3dmxgraph.sysml.timeEvent;",UMLOffPageLinkBlock:"shape\x3dmxgraph.sysml.sendSigAct;direction\x3dsouth;",
UMLActivationBlock:"shape\x3drect;rounded\x3d1;",UMLDeletionBlock:"shape\x3dmxgraph.sysml.x;strokeWidth\x3d4;",UMLSeqEntityBlock:"shape\x3dmxgraph.electrical.radio.microphone_1;direction\x3dnorth;",UMLComponentBlock:"shape\x3dcomponent;align\x3dleft;spacingLeft\x3d36;",UMLNodeBlock:"shape\x3dcube;size\x3d12;flipH\x3d1;",UMLComponentInterfaceBlock:"shape\x3dellipse;",UMLProvidedInterfaceBlock:"shape\x3dlollipop;direction\x3dsouth;",UMLRequiredInterfaceBlock:"shape\x3drequires;direction\x3dnorth;",
UMLEntityBlock:"shape\x3drect;rounded\x3d1;",UMLWeakEntityBlock:"shape\x3dext;double\x3d1;rounded\x3d1;",UMLAttributeBlock:"shape\x3dellipse;",UMLMultivaluedAttributeBlock:"shape\x3ddoubleEllipse;",UMLRelationshipBlock:"shape\x3drhombus;rounded\x3d1;",UMLWeakRelationshipBlock:"shape\x3drhombus;rounded\x3d1;double\x3d1;",DFDExternalEntityBlock2:"shape\x3drect;rounded\x3d1;",YDMDFDProcessBlock:"shape\x3dellipse;",YDMDFDDataStoreBlock:"shape\x3dmxgraph.bootstrap.horLines;",GSDFDProcessBlock:"shape\x3dswimlane;rounded\x3d1;",
GSDFDProcessBlock2:"shape\x3drect;rounded\x3d1;",OrgBlock:"shape\x3drect;rounded\x3d1;",VSMCustomerSupplierBlock:"shape\x3dmxgraph.lean_mapping.outside_sources;",VSMDedicatedProcessBlock:"shape\x3dmxgraph.lean_mapping.manufacturing_process;",VSMSharedProcessBlock:"shape\x3dmxgraph.lean_mapping.manufacturing_process_shared;",VSMWorkcellBlock:"shape\x3dmxgraph.lean_mapping.work_cell;",VSMInventoryBlock:"shape\x3dmxgraph.lean_mapping.inventory_box;",VSMPhysicalPullBlock:"shape\x3dmxgraph.lean_mapping.physical_pull;direction\x3dsouth;",
VSMFIFOLaneBlock:"shape\x3dmxgraph.lean_mapping.fifo_sequence_flow;fontStyle\x3d0;fontSize\x3d20",VSMExternalShipmentAirplaneBlock:"shape\x3dmxgraph.lean_mapping.airplane_7;",VSMExternalShipmentForkliftBlock:"shape\x3dmxgraph.lean_mapping.move_by_forklift;",VSMExternalShipmentTruckBlock:"shape\x3dmxgraph.lean_mapping.truck_shipment;",VSMExternalShipmentBoatBlock:"shape\x3dmxgraph.lean_mapping.boat_shipment;",VSMProductionControlBlock:"shape\x3dmxgraph.lean_mapping.manufacturing_process;",VSMOtherInformationBlock:"shape\x3drect;rounded\x3d1;",
VSMSequencedPullBallBlock:"shape\x3dmxgraph.lean_mapping.sequenced_pull_ball;",VSMMRPERPBlock:"shape\x3dmxgraph.lean_mapping.mrp_erp;whiteSpace\x3dwrap;",VSMLoadLevelingBlock:"shape\x3dmxgraph.lean_mapping.load_leveling;",VSMGoSeeBlock:"shape\x3dmxgraph.lean_mapping.go_see_production_scheduling;flipH\x3d1;",VSMGoSeeProductionBlock:"shape\x3dellipse;",VSMVerbalInfoBlock:"shape\x3dmxgraph.lean_mapping.verbal;",VSMKaizenBurstBlock:"shape\x3dmxgraph.lean_mapping.kaizen_lightening_burst;",VSMOperatorBlock:"shape\x3dmxgraph.lean_mapping.operator;flipV\x3d1;",
VSMQualityProblemBlock:"shape\x3dmxgraph.lean_mapping.quality_problem;",VSMProductionKanbanSingleBlock:"shape\x3dmxgraph.lean_mapping.production_kanban;",VSMWithdrawalKanbanBlock:"shape\x3dmxgraph.lean_mapping.withdrawal_kanban;",VSMSignalKanbanBlock:"shape\x3dmxgraph.lean_mapping.signal_kanban;",VSMKanbanPostBlock:"shape\x3dmxgraph.lean_mapping.kanban_post;",VSMShipmentArrow:"shape\x3dsingleArrow;arrowWidth\x3d0.5;arrowSize\x3d0.13;",VSMPushArrow:"shape\x3dmxgraph.lean_mapping.push_arrow;",AWSElasticComputeCloudBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.ec2;strokeColor\x3dnone;",
AWSInstanceBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.ec2_instance;strokeColor\x3dnone;",AWSInstancesBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.ec2_instances;strokeColor\x3dnone;",AWSAMIBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.ec2_ami;strokeColor\x3dnone;",AWSDBonInstanceBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.ec2_db_on_instance;strokeColor\x3dnone;",AWSInstanceCloudWatchBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.ec2_cloudwatch;strokeColor\x3dnone;",
AWSElasticIPBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.ec2_elastic_ip;strokeColor\x3dnone;",AWSElasticMapReduceBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.emr;strokeColor\x3dnone;",AWSClusterBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.emr_cluster;strokeColor\x3dnone;",AWSHDFSClusterBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.emr_hdfs_cluster;strokeColor\x3dnone;",AWSAutoScalingBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.auto_scaling;strokeColor\x3dnone;",
AWSElasticLoadBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.elastic_load_balancing;strokeColor\x3dnone;",AWSDirectConnectBlock3:"shape\x3dmxgraph.aws2.compute_and_networking.aws_direct_connect;strokeColor\x3dnone;",AWSElasticNetworkBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.elastic_network_instance;strokeColor\x3dnone;",AWSRoute53Block2:"shape\x3dmxgraph.aws2.compute_and_networking.route_53;strokeColor\x3dnone;",AWSHostedZoneBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.route_53_hosted_zone;strokeColor\x3dnone;",
AWSRouteTableBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.route_53_route_table;strokeColor\x3dnone;",AWSVPCBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.vpc;strokeColor\x3dnone;",AWSVPNConnectionBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.vpc_vpn_connection;strokeColor\x3dnone;",AWSVPNGatewayBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.vpc_vpn_gateway;strokeColor\x3dnone;",AWSCustomerGatewayBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.vpc_customer_gateway;strokeColor\x3dnone;",
AWSInternetGatewayBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.vpc_internet_gateway;strokeColor\x3dnone;",AWSRouterBlock2:"shape\x3dmxgraph.aws2.compute_and_networking.vpc_router;strokeColor\x3dnone;",AWSSimpleStorageBlock2:"shape\x3dmxgraph.aws2.storage_and_content_delivery.s3;strokeColor\x3dnone;",AWSBucketBlock2:"shape\x3dmxgraph.aws2.storage_and_content_delivery.s3_bucket;strokeColor\x3dnone;",AWSBuckethWithObjectsBlock2:"shape\x3dmxgraph.aws2.storage_and_content_delivery.s3_bucket_with_objects;strokeColor\x3dnone;",
AWSObjectBlock2:"shape\x3dmxgraph.aws2.storage_and_content_delivery.s3_objects;strokeColor\x3dnone;",AWSImportExportBlock2:"shape\x3dmxgraph.aws2.storage_and_content_delivery.aws_import_export;strokeColor\x3dnone;",AWSStorageGatewayBlock2:"shape\x3dmxgraph.aws2.storage_and_content_delivery.aws_storage_gateway;strokeColor\x3dnone;",AWSElasticBlockStorageBlock2:"shape\x3dmxgraph.aws2.storage_and_content_delivery.ebs;strokeColor\x3dnone;",AWSVolumeBlock3:"shape\x3dmxgraph.aws2.storage_and_content_delivery.ebs_volume;strokeColor\x3dnone;",
AWSSnapshotBlock2:"shape\x3dmxgraph.aws2.storage_and_content_delivery.ebs_snapshot;strokeColor\x3dnone;",AWSGlacierBlock2:"shape\x3dmxgraph.aws2.storage_and_content_delivery.glacier;strokeColor\x3dnone;",AWSGlacierArchiveBlock3:"shape\x3dmxgraph.aws2.storage_and_content_delivery.glacier_archive;strokeColor\x3dnone;",AWSGlacierVaultBlock3:"shape\x3dmxgraph.aws2.storage_and_content_delivery.glacier_vault;strokeColor\x3dnone;",AWSCloudFrontBlock2:"shape\x3dmxgraph.aws2.storage_and_content_delivery.cloudfront;strokeColor\x3dnone;",
AWSDownloadDistBlock2:"shape\x3dmxgraph.aws2.storage_and_content_delivery.cloudfront_download_distribution;strokeColor\x3dnone;",AWSStreamingBlock2:"shape\x3dmxgraph.aws2.storage_and_content_delivery.cloudfront_streaming_distribution;strokeColor\x3dnone;",AWSEdgeLocationBlock2:"shape\x3dmxgraph.aws2.storage_and_content_delivery.cloudfront_edge_location;strokeColor\x3dnone;",AWSItemBlock2:"shape\x3dmxgraph.aws2.database.dynamodb_item;strokeColor\x3dnone;",AWSItemsBlock2:"shape\x3dmxgraph.aws2.database.dynamodb_items;strokeColor\x3dnone;",
AWSAttributeBlock2:"shape\x3dmxgraph.aws2.database.dynamodb_attribute;strokeColor\x3dnone;",AWSAttributesBlock2:"shape\x3dmxgraph.aws2.database.dynamodb_attributes;strokeColor\x3dnone;",AWSRDBSBlock2:"shape\x3dmxgraph.aws2.database.rds;strokeColor\x3dnone;",AWSRDSInstanceBlock2:"shape\x3dmxgraph.aws2.database.rds_db_instance;strokeColor\x3dnone;",AWSRDSStandbyBlock2:"shape\x3dmxgraph.aws2.database.rds_instance_standby;strokeColor\x3dnone;",AWSRDSInstanceReadBlock2:"shape\x3dmxgraph.aws2.database.rds_instance_read_replica;strokeColor\x3dnone;",
AWSOracleDBBlock2:"shape\x3dmxgraph.aws2.database.rds_oracle_db_instance;strokeColor\x3dnone;",AWSMySQLDBBlock2:"shape\x3dmxgraph.aws2.database.rds_mysql_db_instance;strokeColor\x3dnone;",AWSMSSQLDBBlock3:"shape\x3dmxgraph.aws2.database.rds_ms_sql_instance;strokeColor\x3dnone;",AWSDynamoDBBlock2:"shape\x3dmxgraph.aws2.database.dynamodb;strokeColor\x3dnone;",AWSSimpleDatabaseBlock3:"shape\x3dmxgraph.aws2.database.simpledb;strokeColor\x3dnone;",AWSSimpleDatabaseDomainBlock3:"shape\x3dmxgraph.aws2.database.simpledb_domain;strokeColor\x3dnone;",
AWSTableBlock2:"shape\x3dmxgraph.aws2.database.dynamodb_table;strokeColor\x3dnone;",AWSAmazonRedShiftBlock3:"shape\x3dmxgraph.aws2.database.redshift;strokeColor\x3dnone;",AWSElastiCacheNodeBlock2:"shape\x3dmxgraph.aws2.database.elasticcache_node;strokeColor\x3dnone;",AWSElastiCacheBlock2:"shape\x3dmxgraph.aws2.database.elasticcache;strokeColor\x3dnone;",AWSSESBlock2:"shape\x3dmxgraph.aws2.app_services.ses;strokeColor\x3dnone;",AWSEmailBlock2:"shape\x3dmxgraph.aws2.app_services.email;strokeColor\x3dnone;",
AWSSNSBlock2:"shape\x3dmxgraph.aws2.app_services.sns;strokeColor\x3dnone;",AWSTopicBlock2:"shape\x3dmxgraph.aws2.app_services.sns_topic;strokeColor\x3dnone;",AWSEmailNotificationBlock2:"shape\x3dmxgraph.aws2.app_services.sns_email_notification;strokeColor\x3dnone;",AWSHTTPNotificationBlock2:"shape\x3dmxgraph.aws2.app_services.sns_http_notification;strokeColor\x3dnone;",AWSSQSBlock3:"shape\x3dmxgraph.aws2.app_services.sqs;strokeColor\x3dnone;",AWSQueueBlock2:"shape\x3dmxgraph.aws2.app_services.sqs_queue;strokeColor\x3dnone;",
AWSMessageBlock2:"shape\x3dmxgraph.aws2.app_services.sqs_message;strokeColor\x3dnone;",AWSDeciderBlock2:"shape\x3dmxgraph.aws2.app_services.swf_decider;strokeColor\x3dnone;",AWSSWFBlock2:"shape\x3dmxgraph.aws2.app_services.swf;strokeColor\x3dnone;",AWSWorkerBlock2:"shape\x3dmxgraph.aws2.app_services.swf_worker;strokeColor\x3dnone;",AWSCloudSearchBlock2:"shape\x3dmxgraph.aws2.app_services.cloudsearch;strokeColor\x3dnone;",AWSCloudSearchMetadataBlock3:"shape\x3dmxgraph.aws2.app_services.cloudsearch_sdf_metadata;strokeColor\x3dnone;",
AWSElasticTranscoder3:"shape\x3dmxgraph.aws2.app_services.elastic_transcoder;strokeColor\x3dnone;",AWSCloudFormationBlock2:"shape\x3dmxgraph.aws2.deployment_and_management.cloudformation;strokeColor\x3dnone;",AWSDataPipelineBlock3:"shape\x3dmxgraph.aws2.deployment_and_management.data_pipeline;strokeColor\x3dnone;",AWSTemplageBlock2:"shape\x3dmxgraph.aws2.deployment_and_management.cloudformation_template;strokeColor\x3dnone;",AWSStackBlock2:"shape\x3dmxgraph.aws2.deployment_and_management.cloudformation_stack;strokeColor\x3dnone;",
AWSBeanStockBlock2:"shape\x3dmxgraph.aws2.deployment_and_management.elastic_beanstalk;strokeColor\x3dnone;",AWSApplicationBlock2:"shape\x3dmxgraph.aws2.deployment_and_management.elastic_beanstalk_application;strokeColor\x3dnone;",AWSBeanstalkDeploymentBlock3:"shape\x3dmxgraph.aws2.deployment_and_management.elastic_beanstalk_deployment;strokeColor\x3dnone;",AWSIAMBlock3:"shape\x3dmxgraph.aws2.deployment_and_management.iam;strokeColor\x3dnone;",AWSIAMSTSBlock3:"shape\x3dmxgraph.aws2.deployment_and_management.iam_sts;strokeColor\x3dnone;",
AWSIAMAddonBlock2:"shape\x3dmxgraph.aws2.deployment_and_management.iam_add-on;strokeColor\x3dnone;",AWSCloudWatchBlock3:"shape\x3dmxgraph.aws2.deployment_and_management.cloudwatch;strokeColor\x3dnone;",AWSCloudWatchAlarmBlock2:"shape\x3dmxgraph.aws2.deployment_and_management.cloudwatch_alarm;strokeColor\x3dnone;",AWSOpsWorksBlock3:"shape\x3dmxgraph.aws2.deployment_and_management.opsworks;strokeColor\x3dnone;",AWSMechanicalTurkBlock3:"shape\x3dmxgraph.aws2.on-demand_workforce.mechanical_turk;strokeColor\x3dnone;",
AWSHumanITBlock2:"shape\x3dmxgraph.aws2.on-demand_workforce.mechanical_turk_human_intelligence_tasks;strokeColor\x3dnone;",AWSAssignmentTaskBlock2:"shape\x3dmxgraph.aws2.on-demand_workforce.mechanical_turk_requester;strokeColor\x3dnone;",AWSWorkersBlock2:"shape\x3dmxgraph.aws2.on-demand_workforce.mechanical_turk_workers;strokeColor\x3dnone;",AWSRequesterBlock2:"shape\x3dmxgraph.aws2.on-demand_workforce.mechanical_turk_assignment_task;strokeColor\x3dnone;",AWSAndroidBlock3:"shape\x3dmxgraph.aws2.sdks.android;",
AWSiOSBlock3:"shape\x3dmxgraph.aws2.sdks.ios;",AWSJavaBlock3:"shape\x3dmxgraph.aws2.sdks.java;",AWSNetBlock3:"shape\x3dmxgraph.aws2.sdks.net;",AWSNodeJSBlock3:"shape\x3dmxgraph.aws2.sdks.nodejs;",AWSPHPBlock3:"shape\x3dmxgraph.aws2.sdks.php;",AWSPythonBlock3:"shape\x3dmxgraph.aws2.sdks.python;",AWSRubyBlock3:"shape\x3dmxgraph.aws2.sdks.ruby;",AWSCLIBlock3:"shape\x3dmxgraph.aws2.sdks.cli;",AWSEclipseToolkitBlock3:"shape\x3dmxgraph.aws2.sdks.aws_toolkit_for_eclipse;",AWSVisualStudioToolkitBlock3:"shape\x3dmxgraph.aws2.sdks.aws_toolkit_for_visual_studio;",
AWSWindowsPowershellToolkitBlock3:"shape\x3dmxgraph.aws2.sdks.tools_for_windows_powershell;",AWSCloudBlock2:"shape\x3dmxgraph.aws2.non-service_specific.cloud;strokeColor\x3dnone;",AWSVPCloudBlock3:"shape\x3dmxgraph.aws2.non-service_specific.virtual_private_cloud;strokeColor\x3dnone;",AWSUserBlock2:"shape\x3dmxgraph.aws2.non-service_specific.user;strokeColor\x3dnone;",AWSUsersBlock2:"shape\x3dmxgraph.aws2.non-service_specific.users;strokeColor\x3dnone;",AWSClientBlock2:"shape\x3dmxgraph.aws2.non-service_specific.client;strokeColor\x3dnone;",
AWSMobileClientBlock2:"shape\x3dmxgraph.aws2.non-service_specific.mobile_client;strokeColor\x3dnone;",AWSGenericDatabaseBlock3:"shape\x3dmxgraph.aws2.non-service_specific.generic_database;strokeColor\x3dnone;",AWSDiskBlock3:"shape\x3dmxgraph.aws2.non-service_specific.disk;strokeColor\x3dnone;",AWSTapeStorageBlock3:"shape\x3dmxgraph.aws2.non-service_specific.tape_storage;strokeColor\x3dnone;",AWSMediaBlock2:"shape\x3dmxgraph.aws2.non-service_specific.multimedia;strokeColor\x3dnone;",AWSDataCenterBlock2:"shape\x3dmxgraph.aws2.non-service_specific.corporate_data_center;strokeColor\x3dnone;",
AWSServerBlock2:"shape\x3dmxgraph.aws2.non-service_specific.traditional_server;strokeColor\x3dnone;",AWSInternetBlock2:"shape\x3dmxgraph.aws2.non-service_specific.internet;strokeColor\x3dnone;",AWSForumsBlock3:"shape\x3dmxgraph.aws2.non-service_specific.forums;strokeColor\x3dnone;",AWSManagementBlock2:"shape\x3dmxgraph.aws2.non-service_specific.management_console;strokeColor\x3dnone;",Cisco_cisco_androgenous_person:"shape\x3dmxgraph.cisco.people.androgenous_person;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_atm_switch:"shape\x3dmxgraph.cisco.switches.atm_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_cloud:"shape\x3dmxgraph.cisco.storage.cloud;strokeColor\x3d#036897;fillColor\x3d#ffffff;",Cisco_cisco_fileserver:"shape\x3dmxgraph.cisco.servers.fileserver;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_firewall:"shape\x3dmxgraph.cisco.security.firewall;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_generic_building:"shape\x3dmxgraph.cisco.buildings.generic_building;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_laptop:"shape\x3dmxgraph.cisco.computers_and_peripherals.laptop;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_lock:"shape\x3dmxgraph.cisco.security.lock;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_microwebserver:"shape\x3dmxgraph.cisco.servers.microwebserver;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_pc:"shape\x3dmxgraph.cisco.computers_and_peripherals.pc;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_pda:"shape\x3dmxgraph.cisco.misc.pda;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_phone:"shape\x3dmxgraph.cisco.modems_and_phones.hootphone;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_printer:"shape\x3dmxgraph.cisco.computers_and_peripherals.printer;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_relational_database:"shape\x3dmxgraph.cisco.storage.relational_database;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_router:"shape\x3dmxgraph.cisco.routers.router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_standing_man:"shape\x3dmxgraph.cisco.people.standing_man;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_standing_woman:"shape\x3dmxgraph.cisco.people.standing_woman;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_ups:"shape\x3dmxgraph.cisco.misc.ups;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_wireless_router:"shape\x3dmxgraph.cisco.routers.wireless_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_100baset_hub:"shape\x3dmxgraph.cisco.hubs_and_gateways.100baset_hub;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_10700:"shape\x3dmxgraph.cisco.routers.10700;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_10GE_FCoE:"shape\x3dmxgraph.cisco.controllers_and_modules.10ge_fcoe;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_15200:"shape\x3dmxgraph.cisco.misc.15200;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_3174__desktop_:"shape\x3dmxgraph.cisco.controllers_and_modules.3174_(desktop)_cluster_controller;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_3200_mobile_access_router:"shape\x3dmxgraph.cisco.routers.mobile_access_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_3x74__floor_:"shape\x3dmxgraph.cisco.controllers_and_modules.3x74_(floor)_cluster_controller;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_6700_series:"shape\x3dmxgraph.cisco.misc.6700_series;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_7500ars__7513_:"shape\x3dmxgraph.cisco.misc.7500ars_(7513);fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_accesspoint:"shape\x3dmxgraph.cisco.misc.access_point;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_ace:"shape\x3dmxgraph.cisco.misc.ace;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_ACS:"shape\x3dmxgraph.cisco.misc.acs;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_adm:"shape\x3dmxgraph.cisco.misc.adm;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_antenna:"shape\x3dmxgraph.cisco.wireless.antenna;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_asic_processor:"shape\x3dmxgraph.cisco.misc.asic_processor;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_ASR_1000_Series:"shape\x3dmxgraph.cisco.misc.asr_1000_series;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_ata:"shape\x3dmxgraph.cisco.misc.ata;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_atm_3800:"shape\x3dmxgraph.cisco.misc.atm_3800;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_atm_fast_gigabit_etherswitch:"shape\x3dmxgraph.cisco.switches.atm_fast_gigabit_etherswitch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_atm_router:"shape\x3dmxgraph.cisco.routers.atm_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_atm_tag_switch_router:"shape\x3dmxgraph.cisco.routers.atm_tag_switch_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_avs:"shape\x3dmxgraph.cisco.misc.avs;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_AXP:"shape\x3dmxgraph.cisco.misc.axp;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_bbsm:"shape\x3dmxgraph.cisco.misc.bbsm;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_branch_office:"shape\x3dmxgraph.cisco.buildings.branch_office;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_breakout_box:"shape\x3dmxgraph.cisco.misc.breakout_box;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_bridge:"shape\x3dmxgraph.cisco.misc.bridge;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_broadband_router:"shape\x3dmxgraph.cisco.routers.broadcast_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_bts_10200:"shape\x3dmxgraph.cisco.misc.bts_10200;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_cable_modem:"shape\x3dmxgraph.cisco.modems_and_phones.cable_modem;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_callmanager:"shape\x3dmxgraph.cisco.misc.call_manager;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_car:"shape\x3dmxgraph.cisco.misc.car;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_carrier_routing_system:"shape\x3dmxgraph.cisco.misc.carrier_routing_system;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_cddi_fddi:"shape\x3dmxgraph.cisco.misc.cddi_fddi;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_cdm:"shape\x3dmxgraph.cisco.misc.cdm;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_cellular_phone:"shape\x3dmxgraph.cisco.modems_and_phones.cell_phone;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_centri_firewall:"shape\x3dmxgraph.cisco.security.centri_firewall;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_cisco_1000:"shape\x3dmxgraph.cisco.misc.cisco_1000;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_cisco_asa_5500:"shape\x3dmxgraph.cisco.misc.asa_5500;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_cisco_ca:"shape\x3dmxgraph.cisco.misc.cisco_ca;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_cisco_file_engine:"shape\x3dmxgraph.cisco.storage.cisco_file_engine;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_cisco_hub:"shape\x3dmxgraph.cisco.hubs_and_gateways.cisco_hub;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_ciscosecurity:"shape\x3dmxgraph.cisco.security.cisco_security;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_cisco_unified_presence_server:"shape\x3dmxgraph.cisco.servers.cisco_unified_presence_server;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_cisco_unityexpress:"shape\x3dmxgraph.cisco.misc.cisco_unity_express;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_ciscoworks:"shape\x3dmxgraph.cisco.misc.cisco_works;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_class_4_5_switch:"shape\x3dmxgraph.cisco.switches.class_4_5_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_communications_server:"shape\x3dmxgraph.cisco.servers.communications_server;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_contact_center:"shape\x3dmxgraph.cisco.misc.contact_center;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_content_engine__cache_director_:"shape\x3dmxgraph.cisco.directors.content_engine_(cache_director);fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_content_service_router:"shape\x3dmxgraph.cisco.routers.content_service_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_content_service_switch_1100:"shape\x3dmxgraph.cisco.switches.content_service_switch_1100;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_content_switch_module:"shape\x3dmxgraph.cisco.controllers_and_modules.content_switch_module;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_content_switch:"shape\x3dmxgraph.cisco.switches.content_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_content_transformation_engine__cte_:"shape\x3dmxgraph.cisco.misc.content_transformation_engine_(cte);fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_cs_mars:"shape\x3dmxgraph.cisco.misc.cs-mars;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_csm_s:"shape\x3dmxgraph.cisco.misc.csm-s;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_csu_dsu:"shape\x3dmxgraph.cisco.misc.csu_dsu;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_CUBE:"shape\x3dmxgraph.cisco.misc.cube;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_detector:"shape\x3dmxgraph.cisco.misc.detector;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_director_class_fibre_channel_director:"shape\x3dmxgraph.cisco.directors.director-class_fibre_channel_director;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_directory_server:"shape\x3dmxgraph.cisco.servers.directory_server;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_diskette:"shape\x3dmxgraph.cisco.storage.diskette;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_distributed_director:"shape\x3dmxgraph.cisco.directors.distributed_director;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_dot_dot:"shape\x3dmxgraph.cisco.misc.dot-dot;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_dpt:"shape\x3dmxgraph.cisco.misc.dpt;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_dslam:"shape\x3dmxgraph.cisco.misc.dslam;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_dual_mode_ap:"shape\x3dmxgraph.cisco.misc.dual_mode;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_dwdm_filter:"shape\x3dmxgraph.cisco.misc.dwdm_filter;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_end_office:"shape\x3dmxgraph.cisco.buildings.end_office;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_fax:"shape\x3dmxgraph.cisco.modems_and_phones.fax;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_fc_storage:"shape\x3dmxgraph.cisco.storage.fc_storage;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_fddi_ring:"shape\x3dmxgraph.cisco.misc.fddi_ring;strokeColor\x3d#036897;",
Cisco_cisco_fibre_channel_disk_subsystem:"shape\x3dmxgraph.cisco.storage.fibre_channel_disk_subsystem;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_fibre_channel_fabric_switch:"shape\x3dmxgraph.cisco.switches.fibre_channel_fabric_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_file_cabinet:"shape\x3dmxgraph.cisco.storage.file_cabinet;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_file_server:"shape\x3dmxgraph.cisco.servers.file_server;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_firewall_service_module__fwsm_:"shape\x3dmxgraph.cisco.controllers_and_modules.firewall_service_module_(fwsm);fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_front_end_processor:"shape\x3dmxgraph.cisco.misc.front_end_processor;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_gatekeeper:"shape\x3dmxgraph.cisco.security.gatekeeper;strokeColor\x3d#036897;",Cisco_cisco_general_applicance:"shape\x3dmxgraph.cisco.misc.general_appliance;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_generic_gateway:"shape\x3dmxgraph.cisco.hubs_and_gateways.generic_gateway;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_generic_processor:"shape\x3dmxgraph.cisco.misc.generic_processor;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_generic_softswitch:"shape\x3dmxgraph.cisco.switches.generic_softswitch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_gigabit_switch_atm_tag_router:"shape\x3dmxgraph.cisco.routers.gigabit_switch_atm_tag_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_government_building:"shape\x3dmxgraph.cisco.buildings.government_building;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_Ground_terminal:"shape\x3dmxgraph.cisco.wireless.ground_terminal;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_guard:"shape\x3dmxgraph.cisco.security.guard;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_handheld:"shape\x3dmxgraph.cisco.misc.handheld;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_hootphone:"shape\x3dmxgraph.cisco.modems_and_phones.hootphone;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_host:"shape\x3dmxgraph.cisco.servers.host;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_hp_mini:"shape\x3dmxgraph.cisco.misc.hp_mini;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_h:"shape\x3dmxgraph.cisco.misc.h_323;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_hub:"shape\x3dmxgraph.cisco.hubs_and_gateways.hub;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_iad_router:"shape\x3dmxgraph.cisco.routers.iad_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_ibm_mainframe:"shape\x3dmxgraph.cisco.computers_and_peripherals.ibm_mainframe;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_ibm_mini_as400:"shape\x3dmxgraph.cisco.computers_and_peripherals.ibm_mini_as400;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_ibm_tower:"shape\x3dmxgraph.cisco.computers_and_peripherals.ibm_tower;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_icm:"shape\x3dmxgraph.cisco.misc.icm;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_ics:"shape\x3dmxgraph.cisco.misc.ics;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_intelliswitch_stack:"shape\x3dmxgraph.cisco.switches.intelliswitch_stack;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_ios_firewall:"shape\x3dmxgraph.cisco.security.ios_firewall;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_ios_slb:"shape\x3dmxgraph.cisco.misc.ios_slb;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_ip_communicator:"shape\x3dmxgraph.cisco.misc.ip_communicator;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_ip_dsl:"shape\x3dmxgraph.cisco.misc.ip_dsl;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_ip_phone:"shape\x3dmxgraph.cisco.modems_and_phones.ip_phone;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_ip:"shape\x3dmxgraph.cisco.misc.ip;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_iptc:"shape\x3dmxgraph.cisco.misc.iptc;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_ip_telephony_router:"shape\x3dmxgraph.cisco.routers.ip_telephony_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_iptv_content_manager:"shape\x3dmxgraph.cisco.misc.iptv_content_manager;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_iptv_server:"shape\x3dmxgraph.cisco.servers.iptv_server;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_iscsi_router:"shape\x3dmxgraph.cisco.routers.isci_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_isdn_switch:"shape\x3dmxgraph.cisco.switches.isdn_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_itp:"shape\x3dmxgraph.cisco.misc.itp;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_jbod:"shape\x3dmxgraph.cisco.misc.jbod;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_key:"shape\x3dmxgraph.cisco.misc.key;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_keys:"shape\x3dmxgraph.cisco.misc.keys;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_lan_to_lan:"shape\x3dmxgraph.cisco.misc.lan_to_lan;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_layer_2_remote_switch:"shape\x3dmxgraph.cisco.switches.layer_2_remote_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_layer_3_switch:"shape\x3dmxgraph.cisco.switches.layer_3_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_lightweight_ap:"shape\x3dmxgraph.cisco.misc.lightweight_ap;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_localdirector:"shape\x3dmxgraph.cisco.directors.localdirector;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_longreach_cpe:"shape\x3dmxgraph.cisco.misc.longreach_cpe;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_macintosh:"shape\x3dmxgraph.cisco.computers_and_peripherals.macintosh;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_mac_woman:"shape\x3dmxgraph.cisco.people.mac_woman;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_man_woman:"shape\x3dmxgraph.cisco.people.man_woman;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_mas_gateway:"shape\x3dmxgraph.cisco.hubs_and_gateways.mas_gateway;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_mau:"shape\x3dmxgraph.cisco.misc.mau;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_mcu:"shape\x3dmxgraph.cisco.misc.mcu;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_mdu:"shape\x3dmxgraph.cisco.buildings.mdu;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_me_1100:"shape\x3dmxgraph.cisco.misc.me1100;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_Mediator:"shape\x3dmxgraph.cisco.misc.mediator;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_meetingplace:"shape\x3dmxgraph.cisco.misc.meetingplace;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_mesh_ap:"shape\x3dmxgraph.cisco.misc.mesh_ap;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_metro_1500:"shape\x3dmxgraph.cisco.misc.metro_1500;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_mgx_8000_multiservice_switch:"shape\x3dmxgraph.cisco.switches.mgx_8000_multiservice_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_microphone:"shape\x3dmxgraph.cisco.computers_and_peripherals.microphone;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_mini_vax:"shape\x3dmxgraph.cisco.misc.mini_vax;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_mobile_access_ip_phone:"shape\x3dmxgraph.cisco.modems_and_phones.mobile_access_ip_phone;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_mobile_access_router:"shape\x3dmxgraph.cisco.routers.mobile_access_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_modem:"shape\x3dmxgraph.cisco.modems_and_phones.modem;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_moh_server:"shape\x3dmxgraph.cisco.servers.moh_server;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_MSE:"shape\x3dmxgraph.cisco.misc.mse;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_mulitswitch_device:"shape\x3dmxgraph.cisco.switches.multiswitch_device;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_multi_fabric_server_switch:"shape\x3dmxgraph.cisco.switches.multi-fabric_server_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_multilayer_remote_switch:"shape\x3dmxgraph.cisco.switches.multilayer_remote_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_mux:"shape\x3dmxgraph.cisco.misc.mux;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_MXE:"shape\x3dmxgraph.cisco.misc.mxe;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_nac_appliance:"shape\x3dmxgraph.cisco.misc.nac_appliance;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_NCE:"shape\x3dmxgraph.cisco.misc.nce;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_NCE_router:"shape\x3dmxgraph.cisco.routers.nce_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_netflow_router:"shape\x3dmxgraph.cisco.routers.netflow_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_netranger:"shape\x3dmxgraph.cisco.misc.netranger;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_netsonar:"shape\x3dmxgraph.cisco.misc.netsonar;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_network_management:"shape\x3dmxgraph.cisco.misc.network_management;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_Nexus_1000:"shape\x3dmxgraph.cisco.misc.nexus_1000;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_Nexus_2000:"shape\x3dmxgraph.cisco.misc.nexus_2000_fabric_extender;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_Nexus_5000:"shape\x3dmxgraph.cisco.misc.nexus_5000;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_Nexus_7000:"shape\x3dmxgraph.cisco.misc.nexus_7000;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_octel:"shape\x3dmxgraph.cisco.misc.octel;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_ons15500:"shape\x3dmxgraph.cisco.misc.ons15500;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_optical_amplifier:"shape\x3dmxgraph.cisco.misc.optical_amplifier;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_optical_services_router:"shape\x3dmxgraph.cisco.routers.optical_services_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_optical_transport:"shape\x3dmxgraph.cisco.misc.optical_transport;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_pad:"shape\x3dmxgraph.cisco.misc.pad_2;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_pad_x:"shape\x3dmxgraph.cisco.misc.pad_1;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_page_icon:"shape\x3dmxgraph.cisco.misc.page_icon;strokeColor\x3d#036897;",Cisco_cisco_pbx:"shape\x3dmxgraph.cisco.misc.pbx;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_pbx_switch:"shape\x3dmxgraph.cisco.switches.pbx_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_pc_adapter_card:"shape\x3dmxgraph.cisco.computers_and_peripherals.pc_adapter_card;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_pc_man:"shape\x3dmxgraph.cisco.people.pc_man;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_pc_routercard:"shape\x3dmxgraph.cisco.computers_and_peripherals.pc_routercard;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_pc_software:"shape\x3dmxgraph.cisco.misc.pc_software;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_pc_video:"shape\x3dmxgraph.cisco.misc.pc_video;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_phone_fax:"shape\x3dmxgraph.cisco.modems_and_phones.phone-fax;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_pix_firewall:"shape\x3dmxgraph.cisco.security.pix_firewall;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_pmc:"shape\x3dmxgraph.cisco.misc.pmc;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_programmable_switch:"shape\x3dmxgraph.cisco.switches.programmable_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_protocol_translator:"shape\x3dmxgraph.cisco.misc.protocol_translator;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_pxf:"shape\x3dmxgraph.cisco.misc.pxf;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_radio_tower:"shape\x3dmxgraph.cisco.wireless.radio_tower;strokeColor\x3d#036897;",Cisco_cisco_ratemux:"shape\x3dmxgraph.cisco.misc.ratemux;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_repeater:"shape\x3dmxgraph.cisco.misc.repeater;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_RF_modem:"shape\x3dmxgraph.cisco.modems_and_phones.rf_modem;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_router_firewall:"shape\x3dmxgraph.cisco.security.router_firewall;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_routerin_building:"shape\x3dmxgraph.cisco.routers.router_in_building;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_router_with_silicon_switch:"shape\x3dmxgraph.cisco.routers.router_with_silicon_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_route_switch_processor:"shape\x3dmxgraph.cisco.misc.route_switch_processor;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_rpsrps:"shape\x3dmxgraph.cisco.misc.rpsrps;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_running_man:"shape\x3dmxgraph.cisco.people.running_man;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_sattelite_dish:"shape\x3dmxgraph.cisco.wireless.satellite_dish;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_sattelite:"shape\x3dmxgraph.cisco.wireless.satellite;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_scanner:"shape\x3dmxgraph.cisco.computers_and_peripherals.scanner;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_server_switch:"shape\x3dmxgraph.cisco.switches.server_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_server_with_router:"shape\x3dmxgraph.cisco.servers.server_with_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_service_control:"shape\x3dmxgraph.cisco.misc.service_control;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_Service_Module:"shape\x3dmxgraph.cisco.controllers_and_modules.service_module;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_Service_router:"shape\x3dmxgraph.cisco.routers.service_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_Services:"shape\x3dmxgraph.cisco.misc.services;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_Set_top_box:"shape\x3dmxgraph.cisco.misc.set_top_box;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_simulitlayer_switch:"shape\x3dmxgraph.cisco.switches.simultilayer_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_sip_proxy_werver:"shape\x3dmxgraph.cisco.servers.sip_proxy_server;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_sitting_woman:"shape\x3dmxgraph.cisco.people.sitting_woman;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_small_business:"shape\x3dmxgraph.cisco.buildings.small_business;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_small_hub:"shape\x3dmxgraph.cisco.hubs_and_gateways.small_hub;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_softphone:"shape\x3dmxgraph.cisco.modems_and_phones.softphone;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_softswitch_pgw_mgc:"shape\x3dmxgraph.cisco.switches.softswitch_pgw_mgc;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_software_based_server:"shape\x3dmxgraph.cisco.servers.software_based_server;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_speaker:"shape\x3dmxgraph.cisco.computers_and_peripherals.speaker;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_ssc:"shape\x3dmxgraph.cisco.misc.ssc;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_ssl_terminator:"shape\x3dmxgraph.cisco.misc.ssl_terminator;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_standard_host:"shape\x3dmxgraph.cisco.servers.standard_host;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_stb:"shape\x3dmxgraph.cisco.misc.stb;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_storage_router:"shape\x3dmxgraph.cisco.routers.storage_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_storage_server:"shape\x3dmxgraph.cisco.servers.storage_server;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_stp:"shape\x3dmxgraph.cisco.misc.stp;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_streamer:"shape\x3dmxgraph.cisco.misc.streamer;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_sun_workstation:"shape\x3dmxgraph.cisco.computers_and_peripherals.workstation;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_supercomputer:"shape\x3dmxgraph.cisco.computers_and_peripherals.supercomputer;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_svx:"shape\x3dmxgraph.cisco.misc.svx;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_system_controller:"shape\x3dmxgraph.cisco.controllers_and_modules.system_controller;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_tablet:"shape\x3dmxgraph.cisco.computers_and_peripherals.tablet;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_tape_array:"shape\x3dmxgraph.cisco.storage.tape_array;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_tdm_router:"shape\x3dmxgraph.cisco.routers.tdm_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_telecommuter_house_pc:"shape\x3dmxgraph.cisco.buildings.telecommuter_house_pc;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_telecommuter_house:"shape\x3dmxgraph.cisco.buildings.telecommuter_house;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_telecommuter_icon:"shape\x3dmxgraph.cisco.misc.telecommuter_icon;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_Telepresence_3200:"shape\x3dmxgraph.cisco.misc.telepresence;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_terminal:"shape\x3dmxgraph.cisco.computers_and_peripherals.terminal;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_token:"shape\x3dmxgraph.cisco.misc.token;strokeColor\x3d#036897;",Cisco_cisco_TP_MCU:"shape\x3dmxgraph.cisco.misc.tp_mcu;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_transpath:"shape\x3dmxgraph.cisco.misc.transpath;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_truck:"shape\x3dmxgraph.cisco.misc.truck;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_turret:"shape\x3dmxgraph.cisco.misc.turret;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_tv:"shape\x3dmxgraph.cisco.misc.tv;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_ubr910:"shape\x3dmxgraph.cisco.misc.ubr910;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_umg_series:"shape\x3dmxgraph.cisco.misc.umg_series;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_unity_server:"shape\x3dmxgraph.cisco.servers.unity_server;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_universal_gateway:"shape\x3dmxgraph.cisco.hubs_and_gateways.universal_gateway;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_university:"shape\x3dmxgraph.cisco.buildings.university;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_upc:"shape\x3dmxgraph.cisco.computers_and_peripherals.upc;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_vault:"shape\x3dmxgraph.cisco.misc.vault;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_video_camera:"shape\x3dmxgraph.cisco.computers_and_peripherals.video_camera;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_vip:"shape\x3dmxgraph.cisco.misc.vip;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_virtual_layer_switch:"shape\x3dmxgraph.cisco.switches.virtual_layer_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_virtual_switch_controller__vsc3000_:"shape\x3dmxgraph.cisco.controllers_and_modules.virtual_switch_controller_(vsc3000);fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_voice_atm_switch:"shape\x3dmxgraph.cisco.switches.voice_atm_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_voice_commserver:"shape\x3dmxgraph.cisco.servers.voice_commserver;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_voice_router:"shape\x3dmxgraph.cisco.routers.voice_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_voice_switch:"shape\x3dmxgraph.cisco.switches.voice_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_vpn_concentrator:"shape\x3dmxgraph.cisco.misc.vpn_concentrator;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_vpn_gateway:"shape\x3dmxgraph.cisco.hubs_and_gateways.vpn_gateway;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_VSS:"shape\x3dmxgraph.cisco.misc.vss;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_wae:"shape\x3dmxgraph.cisco.misc.wae;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_wavelength_router:"shape\x3dmxgraph.cisco.routers.wavelength_router;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_web_browser:"shape\x3dmxgraph.cisco.computers_and_peripherals.web_browser;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_web_cluster:"shape\x3dmxgraph.cisco.storage.web_cluster;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_wi_fi_tag:"shape\x3dmxgraph.cisco.wireless.wi-fi_tag;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_wireless_bridge:"shape\x3dmxgraph.cisco.wireless.wireless_bridge;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_wireless_location_appliance:"shape\x3dmxgraph.cisco.wireless.wireless_location_appliance;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_wireless:"shape\x3dmxgraph.cisco.wireless.wireless;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_wireless_transport:"shape\x3dmxgraph.cisco.wireless.wireless_transport;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_wism:"shape\x3dmxgraph.cisco.misc.wism;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_wlan_controller:"shape\x3dmxgraph.cisco.wireless.wlan_controller;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_workgroup_director:"shape\x3dmxgraph.cisco.directors.workgroup_director;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_workgroup_switch:"shape\x3dmxgraph.cisco.switches.workgroup_switch;fillColor\x3d#036897;strokeColor\x3d#ffffff;",
Cisco_cisco_workstation:"shape\x3dmxgraph.cisco.computers_and_peripherals.workstation;fillColor\x3d#036897;strokeColor\x3d#ffffff;",Cisco_cisco_www_server:"shape\x3dmxgraph.cisco.servers.www_server;fillColor\x3d#036897;strokeColor\x3d#ffffff;",RackServerRack:"shape\x3dmxgraph.rackGeneral.container;container\x3d1;collapsible\x3d0;childLayout\x3drack;marginLeft\x3d9;marginRight\x3d9;marginTop\x3d21;marginBottom\x3d22;textColor\x3d#000000;numDisp\x3doff;",RackBlank:"strokeColor\x3d#666666;labelPosition\x3dleft;align\x3dright;spacingRight\x3d15;shape\x3dmxgraph.rackGeneral.plate;fillColor\x3d#e8e8e8;",
RackRaidArray:"shape\x3dmxgraph.rack.cisco.cisco_carrier_packet_transport_50;labelPosition\x3dleft;align\x3dright;spacingRight\x3d15;",RackServer:"shape\x3dmxgraph.rack.oracle.sunfire_x4100;labelPosition\x3dleft;align\x3dright;spacingRight\x3d15;",RackEthernetSwitch:"shape\x3dmxgraph.rack.cisco.cisco_nexus_3016_switch;labelPosition\x3dleft;align\x3dright;spacingRight\x3d15;",RackPatchPanel:"strokeColor\x3d#666666;labelPosition\x3dleft;align\x3dright;spacingRight\x3d15;shape\x3dmxgraph.rack.general.cat5e_rack_mount_patch_panel_24_ports;",
RackRouter:"shape\x3dmxgraph.rack.cisco.cisco_asr_1001_router;labelPosition\x3dleft;align\x3dright;spacingRight\x3d15;",RackMonitor:"shape\x3dmxgraph.rack.ibm.ibm_1u_flat_panel_console_kit;labelPosition\x3dleft;align\x3dright;spacingRight\x3d15;",RackKeyboard:"shape\x3dmxgraph.rack.cisco.cisco_1905_serial_integrated_services_router;labelPosition\x3dleft;align\x3dright;spacingRight\x3d15;",RackPowerStrip:"shape\x3dmxgraph.rack.dell.power_strip;labelPosition\x3dleft;align\x3dright;spacingRight\x3d15;",
RackPowerSupply:"shape\x3dmxgraph.rack.cisco.cisco_web_security_appliance_s170;labelPosition\x3dleft;align\x3dright;spacingRight\x3d15;",RackBridge:"shape\x3dmxgraph.rack.cisco.cisco_nexus_5548p_switch;labelPosition\x3dleft;align\x3dright;spacingRight\x3d15;",RackTapeDrive:"shape\x3dmxgraph.rack.ibm.ibm_1754_local_console_manager;labelPosition\x3dleft;align\x3dright;spacingRight\x3d15;",Image_network_server:"image;image\x3dimg/lib/clip_art/computers/Server_Tower_128x128.png;flipH\x3d1;",Image_network_server_file:"image;image\x3dimg/lib/clip_art/computers/Server_128x128.png;",
Image_network_server_net:"image;image\x3dimg/lib/clip_art/networking/Print_Server_128x128.png;",Image_network_server_net_large:"image;image\x3dimg/lib/clip_art/computers/Server_128x128.png;",Image_network_raid:"image;image\x3dimg/lib/clip_art/computers/Server_Tower_128x128.png;flipH\x3d1;",Image_network_raid_large:"image;image\x3dimg/lib/clip_art/computers/Server_Tower_128x128.png;flipH\x3d1;",Image_network_rack_server:"image;image\x3dimg/lib/clip_art/computers/Server_Rack_128x128.png;",Image_network_rack_tape:"image;image\x3dimg/lib/clip_art/computers/Server_Rack_Partial_128x128.png;",
Image_network_printer_small:"image;image\x3dimg/lib/clip_art/computers/Printer_128x128.png;flipH\x3d1;",Image_network_printer_large:"image;image\x3dimg/lib/clip_art/computers/Printer_128x128.png;flipH\x3d1;",Image_network_printer_multipurpose:"image;image\x3dimg/lib/clip_art/computers/Printer_Commercial_128x128.png;flipH\x3d1;",Image_network_copier_small:"image;image\x3dimg/lib/clip_art/computers/Printer_Commercial_128x128.png;",Image_network_copier_large:"image;image\x3dimg/lib/clip_art/computers/Printer_Commercial_128x128.png;",
Image_network_router:"image;image\x3dimg/lib/clip_art/networking/Router_128x128.png;",Image_network_router_wireless:"image;image\x3dimg/lib/clip_art/networking/Wireless_Router_128x128.png;",Image_network_ups:"image;image\x3dimg/lib/clip_art/networking/UPS_128x128.png;",Image_electronics_lcd:"image;image\x3dimg/lib/clip_art/computers/Monitor_128x128.png;",Image_electronics_pda:"image;image\x3dimg/lib/clip_art/telecommunication/Palm_Treo_128x128.png;",Image_electronics_drive_cardreader:"image;image\x3dimg/lib/clip_art/finance/Credit_Card_128x128.png;",
Image_electronics_camcorder:"image;image\x3dimg/lib/clip_art/networking/Ip_Camera_128x128.png;",Image_electronics_printer_photo:"image;image\x3dimg/lib/clip_art/computers/Printer_128x128.png;flipH\x3d1;",Image_electronics_drive_firewire:"image;image\x3dimg/lib/clip_art/computers/Harddrive_128x128.png;flipH\x3d1;",Image_electronics_drive_usb:"image;image\x3dimg/lib/clip_art/computers/Harddrive_128x128.png;flipH\x3d1;",Image_electronics_modem_external:"image;image\x3dimg/lib/clip_art/networking/Modem_128x128.png;flipH\x3d1;",
Image_electronics_lcd_wide:"image;image\x3dimg/lib/clip_art/computers/Monitor_128x128.png;",EE_Amplifier:"shape\x3dmxgraph.electrical.abstract.amplifier;",EE_OpAmp:"shape\x3dmxgraph.electrical.abstract.operational_amp_1;",EE_ControlledAmp:"shape\x3dmxgraph.electrical.abstract.controlled_amplifier;",EE_Multiplexer:"shape\x3dmxgraph.electrical.abstract.mux;",EE_Demultiplexer:"shape\x3dmxgraph.electrical.abstract.demux;",EE_Capacitor1:"shape\x3dmxgraph.electrical.capacitors.capacitor_1;",EE_Capacitor2:"shape\x3dmxgraph.electrical.capacitors.capacitor_3;",
EE_Diode:"shape\x3dmxgraph.electrical.diodes.diode;",EE_Resistor:"shape\x3dmxgraph.electrical.resistors.resistor_2;",EE_VarResistor:"shape\x3dmxgraph.electrical.resistors.variable_resistor_2;",EE_Potentiometer:"shape\x3dmxgraph.electrical.resistors.potentiometer_2;",EE_ProtGround:"shape\x3dmxgraph.electrical.signal_sources.protective_earth;",EE_SignalGround:"shape\x3dmxgraph.electrical.signal_sources.signal_ground;",EE_Transformer:"shape\x3dmxgraph.electrical.inductors.transformer_1;",EE_Inductor:"shape\x3dmxgraph.electrical.inductors.inductor_3;",
"EE_Variable Inductor":"shape\x3dmxgraph.electrical.inductors.variable_inductor;",EE_TwoWaySwitch:"shape\x3dmxgraph.electrical.electro-mechanical.2-way_switch;",EE_OnOffSwitch:"shape\x3dmxgraph.electrical.electro-mechanical.simple_switch;",EE_Loudspeaker:"shape\x3dmxgraph.electrical.electro-mechanical.loudspeaker;",EE_Motor:"shape\x3dmxgraph.electrical.electro-mechanical.motor_1;",EE_LED1:"shape\x3dmxgraph.electrical.opto_electronics.led_2;",EE_Lightbulb:"shape\x3dmxgraph.electrical.miscellaneous.light_bulb;",
EE_AcSource:"strokeWidth\x3d1;shape\x3dmxgraph.electrical.signal_sources.ac_source;",EE_VoltageSource:"shape\x3dmxgraph.electrical.signal_sources.dc_source_3;",EE_CurrentSource:"shape\x3dmxgraph.electrical.signal_sources.dc_source_2;direction\x3dnorth;",EE_ControlledCurrentSource:"shape\x3dmxgraph.electrical.signal_sources.dependent_source_2;direction\x3dwest;",EE_ControlledVoltageSource:"shape\x3dmxgraph.electrical.signal_sources.dependent_source_3;",EE_Vss:"verticalLabelPosition\x3dtop;verticalAlign\x3dbottom;shape\x3dmxgraph.electrical.signal_sources.vss2;fontSize\x3d24;",
EE_Vdd:"verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;shape\x3dmxgraph.electrical.signal_sources.vdd;",EE_BJT_NPN1:"shape\x3dmxgraph.electrical.transistors.pnp_transistor_1;",EE_BJT_PNP1:"shape\x3dmxgraph.electrical.transistors.npn_transistor_1;",EE_JFET_P:"shape\x3dmxgraph.electrical.transistors.p-channel_jfet_1;flipV\x3d1;",EE_JFET_N:"shape\x3dmxgraph.electrical.transistors.n-channel_jfet_1;",EE_MOSFET_P1:"shape\x3dmxgraph.electrical.mosfets1.mosfet_ic_p;flipV\x3d1;",EE_MOSFET_P2:"shape\x3dmxgraph.electrical.mosfets1.mosfet_p_no_bulk;",
EE_MOSFET_P3:"shape\x3dmxgraph.electrical.mosfets1.p-channel_mosfet_1;flipV\x3d1;",EE_MOSFET_N1:"shape\x3dmxgraph.electrical.mosfets1.mosfet_ic_n;",EE_MOSFET_N2:"shape\x3dmxgraph.electrical.mosfets1.mosfet_n_no_bulk;",EE_MOSFET_N3:"shape\x3dmxgraph.electrical.mosfets1.n-channel_mosfet_1;",EE_AND:"shape\x3dmxgraph.electrical.logic_gates.and;",EE_OR:"shape\x3dmxgraph.electrical.logic_gates.or;",EE_Inverter:"shape\x3dmxgraph.electrical.logic_gates.inverter;",EE_NAND:"shape\x3dmxgraph.electrical.logic_gates.nand;",
EE_NOR:"shape\x3dmxgraph.electrical.logic_gates.nor;",EE_XOR:"shape\x3dmxgraph.electrical.logic_gates.xor;",EE_NXOR:"shape\x3dmxgraph.electrical.logic_gates.xnor;",EE_DTypeRSFlipFlop:"shape\x3dmxgraph.electrical.logic_gates.d_type_rs_flip-flop;",EE_DTypeFlipFlop:"shape\x3dmxgraph.electrical.logic_gates.d_type_flip-flop;",EE_DTypeFlipFlopWithClear:"shape\x3dmxgraph.electrical.logic_gates.d_type_flip-flop_with_clear;",EE_RSLatch:"shape\x3dmxgraph.electrical.logic_gates.rs_latch;",EE_SyncRSLatch:"shape\x3dmxgraph.electrical.logic_gates.synchronous_rs_latch;",
EE_TTypeFlipFlop:"shape\x3dmxgraph.electrical.logic_gates.t_type_flip-flop;",EE_Plus:"shape\x3dmxgraph.ios7.misc.flagged;",EE_Negative:"shape\x3dline;",EE_InverterContact:"shape\x3dellipse;",EE_Voltmeter:"shape\x3dmxgraph.electrical.instruments.voltmeter;",EE_Ammeter:"shape\x3dmxgraph.electrical.instruments.ampermeter;",EE_SineWave:"shape\x3dmxgraph.electrical.waveforms.sine_wave;",EE_Sawtooth:"shape\x3dmxgraph.electrical.waveforms.sawtooth;",EE_SquareWave:"shape\x3dmxgraph.electrical.waveforms.square_wave;",
EIChannelBlock:"shape\x3dmxgraph.eip.messageChannel;",EIMessageRouterBlock:"shape\x3dmxgraph.eip.content_based_router;",EIMessageTranslatorBlock:"shape\x3dmxgraph.eip.message_translator;",EIMessagingBridgeBlock:"shape\x3dmxgraph.eip.messaging_bridge;",EIContentBasedRouterBlock:"shape\x3dmxgraph.eip.content_based_router;",EIMessageFilterBlock:"shape\x3dmxgraph.eip.message_filter;",EIDynamicRouterBlock:"shape\x3dmxgraph.eip.dynamic_router;",EIRecipientListBlock:"shape\x3dmxgraph.eip.recipient_list;",
EISplitterBlock:"shape\x3dmxgraph.eip.splitter;",EIAggregatorBlock:"shape\x3dmxgraph.eip.aggregator;",EIResequencerBlock:"shape\x3dmxgraph.eip.resequencer;",EIComposedMessageBlock:"shape\x3dmxgraph.eip.composed_message_processor;",EIRoutingSlipBlock:"shape\x3dmxgraph.eip.routing_slip;",EIProcessManagerBlock:"shape\x3dmxgraph.eip.process_manager;",EIEnvelopeWrapperBlock:"shape\x3dmxgraph.eip.envelope_wrapper;",EIContentEnricherBlock:"shape\x3dmxgraph.eip.content_enricher;",EIContentFilterBlock:"shape\x3dmxgraph.eip.content_filter;",
EIClaimCheckBlock:"shape\x3dmxgraph.eip.claim_check;",EINormalizerBlock:"shape\x3dmxgraph.eip.normalizer;",EIMessagingGatewayBlock:"shape\x3dmxgraph.eip.messaging_gateway;",EITransactionalClientBlock:"shape\x3dmxgraph.eip.transactional_client;",EIPollingConsumerBlock:"shape\x3dmxgraph.eip.polling_consumer;",EIEventDrivenConsumerBlock:"shape\x3dmxgraph.eip.event_driven_consumer;",EICompetingConsumersBlock:"shape\x3dmxgraph.eip.competing_consumers;",EIMessageDispatcherBlock:"shape\x3dmxgraph.eip.message_dispatcher;",
EISelectiveConsumerBlock:"shape\x3dmxgraph.eip.selective_consumer;",EIServiceActivatorBlock:"shape\x3dmxgraph.eip.service_activator;",EIDetourBlock:"shape\x3dmxgraph.eip.detour;",EIWireTapBlock:"shape\x3dmxgraph.eip.wire_tap;",EIMessageStoreBlock:"shape\x3dmxgraph.eip.message_store;",EISmartProxyBlock:"shape\x3dmxgraph.eip.smart_proxy;",EITestMessageBlock:"shape\x3dmxgraph.eip.test_message;",EIChannelPurgerBlock:"shape\x3dmxgraph.eip.channel_purger;",fpWall:"shape\x3drect;",fpWindow:"shape\x3dmxgraph.floorplan.window;",
fpOpening:"shape\x3drect;",fpDoor:"shape\x3dmxgraph.floorplan.doorLeft;flipV\x3d1;",fpDoubleDoor:"shape\x3dmxgraph.floorplan.doorDouble;flipV\x3d1;",fpStairs:"shape\x3dmxgraph.floorplan.stairs;direction\x3dnorth;",fpStairsDirectional:"shape\x3dmxgraph.floorplan.stairs;direction\x3dnorth;",fpDeskLongSegment:"shape\x3drect;",fpDeskShortSegment:"shape\x3drect;rounded\x3d1;",fpDeskLargeCornerSegment:"shape\x3dmxgraph.floorplan.desk_corner;",fpCubiclePanel:"shape\x3dmxgraph.floorplan.wall;wallThickness\x3d3;",
fpCubicleWorkstation:"shape\x3dmxgraph.floorplan.wallU;wallThickness\x3d3;",fpCubicleCorner5x5:"shape\x3dmxgraph.floorplan.wallCorner;wallThickness\x3d3;",fpCubicleCorner6x6:"shape\x3dmxgraph.floorplan.wallCorner;wallThickness\x3d3;",fpCubicleCorner8x8:"shape\x3dmxgraph.floorplan.wallCorner;wallThickness\x3d3;",fpCubicleCorner8x6:"shape\x3dmxgraph.floorplan.wallCorner;wallThickness\x3d3;",fpCubicleCornerOpen6x4:"shape\x3dmxgraph.floorplan.wallCorner;wallThickness\x3d3;",fpCubicleDouble14x8:"shape\x3dmxgraph.floorplan.wallU;wallThickness\x3d3;",
fpCubicleEnclosed11x9:"shape\x3dmxgraph.floorplan.wallU;wallThickness\x3d3;",fpTableConferenceOval:"shape\x3dellipse;",fpTableConferenceBoat:"shape\x3drect;rounded\x3d1;",fpTableConferenceRectangle:"shape\x3drect;rounded\x3d1;",fpTableDiningRound:"shape\x3dellipse;",fpTableDiningSquare:"shape\x3drect;rounded\x3d1;",fpChairOffice:"shape\x3dmxgraph.floorplan.office_chair;",fpChairExecutive:"shape\x3dmxgraph.floorplan.office_chair;",fpChairLobby:"shape\x3dmxgraph.floorplan.office_chair;",fpChairDining:"shape\x3dmxgraph.floorplan.chair;",
fpChairBarstool:"shape\x3dellipse;",fpCabinetBasic:"shape\x3drect;rounded\x3d1;",fpCabinetDoubleWide:"shape\x3drect;rounded\x3d1;",fpCabinetDoubleWithShelves:"shape\x3drect;rounded\x3d1;",fpCabinetShelvesBasic:"shape\x3drect;rounded\x3d1;",fpCabinetShelvesDouble:"shape\x3drect;rounded\x3d1;",fpCabinetBasicWithShelves:"shape\x3drect;rounded\x3d1;",fpCabinetsAboveDeskShelves:"shape\x3drect;rounded\x3d1;",fpRestroomToiletPrivate:"shape\x3dmxgraph.floorplan.toilet;",fpRestroomToiletPublic:"shape\x3dmxgraph.floorplan.toilet;",
fpRestroomBathtub:"shape\x3dmxgraph.floorplan.bathtub;direction\x3dsouth;",fpRestroomShower:"shape\x3dmxgraph.floorplan.shower;flipH\x3d1;",fpRestroomPedastalSink:"shape\x3dmxgraph.floorplan.sink_1;",fpRestroomCountertop:"shape\x3drect;rounded\x3d1;",fpRestroomMirror:"shape\x3dline;strokeWidth\x3d3;",fpBedDouble:"shape\x3dmxgraph.floorplan.bed_double;",fpBedSingle:"shape\x3dmxgraph.floorplan.bed_single;",fpBedQueen:"shape\x3dmxgraph.floorplan.bed_double;",fpBedKing:"shape\x3dmxgraph.floorplan.bed_double;",
fpBedDoubleWithTrundle:"shape\x3dmxgraph.floorplan.bed_double;",fpBedBunk:"shape\x3dmxgraph.floorplan.bed_double;",fpBedBassinet:"shape\x3dmxgraph.pid.fittings.compensator;",fpApplianceWasher:"shape\x3drect;",fpApplianceDryer:"shape\x3drect;",fpApplianceWaterHeater:"shape\x3dellipse;",fpApplianceStoveOven:"shape\x3dmxgraph.floorplan.range_1;",fpStoveOvenSixBurner:"shape\x3dmxgraph.floorplan.range_2;",fpApplianceDishwasher:"shape\x3drect;",fpKitchenSink:"shape\x3dmxgraph.floorplan.sink_2;",fpKitchenDoubleSink:"shape\x3dmxgraph.floorplan.sink_double;",
fpKitchenCountertop:"shape\x3drect;rounded\x3d1;",fpKitchenCountertopCorner:"shape\x3dmxgraph.floorplan.desk_corner;",fpCouchLoveSeat:"shape\x3dmxgraph.floorplan.couch;",fpCouchSofa:"shape\x3dmxgraph.floorplan.couch;",fpCouchOttoman:"shape\x3drect;rounded\x3d1;",fpMiscDesktopComputer:"shape\x3dmxgraph.floorplan.workstation;",fpMiscLaptopComputer:"shape\x3dmxgraph.floorplan.laptop;",fpComputerMonitor:"shape\x3dmxgraph.floorplan.flat_tv;",fpCRTTelevision:"shape\x3dmxgraph.floorplan.flat_tv;",fpMiscIndoorPlant:"shape\x3dmxgraph.floorplan.plant;",
fpPiano:"shape\x3dmxgraph.floorplan.piano;",PEAxialCompressor:"shape\x3dmxgraph.pid.compressors.centrifugal_compressor_-_turbine_driven;",PECentrifugalCompressor:"shape\x3dmxgraph.pid.compressors.centrifugal_compressor",PECentrifugalCompressor2:"shape\x3dmxgraph.pid.compressors.centrifugal_compressor_-_turbine_driven;",PEReciprocationCompressor:"shape\x3dmxgraph.pid.compressors.reciprocating_compressor;",PERotaryCompressorBlock:"shape\x3dmxgraph.pid.compressors.rotary_compressor;",PERotaryCompressor2Block:"shape\x3dmxgraph.pid.compressors.compressor_and_silencers;",
PEConveyorBlock:"shape\x3dmxgraph.pid2misc.conveyor;",PEElevator1Block:"shape\x3dmxgraph.pid.misc.bucket_elevator;flipH\x3d1;",PEAgitatorMixerBlock:"shape\x3dmxgraph.pid.agitators.agitator_(propeller);",PEDrumBlock:"shape\x3dmxgraph.pid.vessels.drum_or_condenser;",PETankEquipmentBlock:"mxgraph.pid.vessels.tank;",PEMixingReactorBlock:"shape\x3dmxgraph.pid.vessels.mixing_reactor;",PEPlateTowerBlock:"shape\x3dmxgraph.pid2misc.column;columnType\x3dbaffle;",PEPackedTowerBlock:"shape\x3dmxgraph.pid2misc.column;columnType\x3dfixed;",
PEFurnaceBlock:"shape\x3dmxgraph.pid.vessels.furnace;",PEMidArrow:"shape\x3dtriangle;",PEButtWeld:"shape\x3dmxgraph.sysml.x;",PETopToTop:"shape\x3dmxgraph.pid.vessels.container,_tank,_cistern;",PENuclear:"shape\x3dmxgraph.electrical.waveforms.sine_wave;",PEMechanicalLink:"shape\x3dellipse;",PESolderedSolvent:"shape\x3dellipse;",PEDoubleContainment:"shape\x3dhexagon;",PEFlange:"shape\x3dmxgraph.pid.piping.double_flange;",PEFlange2:"shape\x3dmxgraph.pid.piping.flange_in;flipH\x3d1;",PEEndCap:"shape\x3dmxgraph.pid.piping.cap;",
PEEndCap2:"shape\x3dmxgraph.pid.vessels.container,_tank,_cistern;direction\x3dnorth;",PEBreather:"shape\x3dmxgraph.pid.piping.breather;",PEElectronicallyInsulated:"shape\x3dmxgraph.pid.piping.double_flange;",PEReducer:"shape\x3dmxgraph.pid.piping.concentric_reducer;",PEInlineMixer:"shape\x3dmxgraph.pid.piping.in-line_mixer;",PEFlameArrester:"shape\x3dmxgraph.pid.piping.flame_arrestor;",PEDetonationArrester:"shape\x3dmxgraph.pid.piping.detonation_arrestor;",PETriangleSeparator:"shape\x3dtriangle;direction\x3dwest;",
PETundish:"shape\x3dmxgraph.ios7.misc.left;",PEOpenVent:"shape\x3dmxgraph.pid.vessels.vent_(bent);",PERemovableSpool:"shape\x3dmxgraph.pid.piping.removable_spool;",PEYTypeStrainer:"shape\x3dmxgraph.pid.piping.y-type_strainer;",PEDiverterValve:"shape\x3dmxgraph.pid.piping.diverter_valve;",PEPulsationDampener:"shape\x3dmxgraph.pid.piping.pulsation_dampener;",PEDuplexStrainer:"shape\x3dmxgraph.pid.piping.duplex_strainer;",PEBasketStrainer:"shape\x3dmxgraph.pid.piping.basket_strainer;",PEVentSilencer:"shape\x3dmxgraph.pid.piping.vent_silencer;",
PEInlineSilencer:"shape\x3dmxgraph.pid.piping.in-line_silencer;",PESteamTrap:"shape\x3dmxgraph.pid.piping.steam_trap;",PEDesuperheater:"shape\x3dmxgraph.pid.piping.desuper_heater;",PEEjectorOrEductor:"shape\x3dmxgraph.pid.fittings.injector;",PEExhaustHead:"shape\x3dmxgraph.pid.piping.exhaust_head;",PERotaryValve:"shape\x3dmxgraph.pid.piping.rotary_valve;",PEExpansionJoint:"shape\x3dmxgraph.pid.piping.expansion_joint;",PEVesselBlock:"shape\x3drect;",PEOpenTankBlock:"shape\x3dmxgraph.pid.vessels.container,_tank,_cistern;",
PEClosedTankBlock:"shape\x3drect;",PEStorageSphereBlock:"shape\x3dmxgraph.pid.vessels.storage_sphere;",PEColumnBlock:"shape\x3dmxgraph.pid.vessels.pressurized_vessel;",PEBagBlock:"shape\x3dmxgraph.pid.vessels.bag;",PEGasCylinderBlock:"shape\x3dmxgraph.pid.vessels.gas_bottle;",PEGasHolderBlock:"shape\x3dmxgraph.pid.vessels.gas_holder;",PEClarifierBlock:"shape\x3dmxgraph.pid.vessels.bunker_(conical_bottom);",PETrayColumnBlock:"shape\x3dmxgraph.pid2misc.column;columnType\x3dtray;",PEReactionVesselBlock:"shape\x3dmxgraph.pid.vessels.reactor;",
PEBin:"shape\x3dmxgraph.pid.vessels.tank_(conical_bottom);",PEDomeRoofTank:"shape\x3dmxgraph.pid.vessels.tank_(dished_roof);",PEConeRoofTank:"shape\x3dmxgraph.pid.vessels.tank_(conical_roof);",PEBoilerBlock:"shape\x3dmxgraph.pid.misc.boiler_(dome);",PEEquipmentBoilerBlock:"shape\x3dmxgraph.pid.misc.boiler_(dome);",PEReboilerBlock:"shape\x3dmxgraph.pid.heat_exchangers.reboiler;",PECondenserBlock:"shape\x3dmxgraph.pid.heat_exchangers.heat_exchanger_(straight_tubes);",PEEquipmentCondenserBlock:"shape\x3dmxgraph.pid.heat_exchangers.condenser;",
PECoolingTowerBlock:"shape\x3dmxgraph.pid.misc.cooling_tower;",PEHeatExchangerBlock:"shape\x3dmxgraph.pid.heat_exchangers.shell_and_tube_heat_exchanger_1;",PEHairpinExchangerBlock:"shape\x3dmxgraph.pid.heat_exchangers.hairpin_exchanger;",PEPlateAndFrameHeatExchangerBlock:"shape\x3dmxgraph.pid.heat_exchangers.plate_and_frame_heat_exchanger;",PESpiralHeatExchanger:"shape\x3dmxgraph.pid.heat_exchangers.spiral_heat_exchanger;",PEUTubeHeatExchangerBlock:"shape\x3dmxgraph.pid.heat_exchangers.u-tube_heat_exchanger;",
PEDoublePipeHeatBlock:"shape\x3dmxgraph.pid.heat_exchangers.double_pipe_heat_exchanger;",PEShellAndTubeHeat1Block:"shape\x3dmxgraph.pid.heat_exchangers.shell_and_tube_heat_exchanger_1;",PEShellAndTubeHeat2Block:"shape\x3dmxgraph.pid.heat_exchangers.shell_and_tube_heat_exchanger_2;",PEShellAndTubeHeat3Block:"shape\x3dmxgraph.pid.heat_exchangers.shell_and_tube_heat_exchanger_1;direction\x3dnorth;",PESinglePassHeatBlock:"shape\x3dmxgraph.pid.heat_exchangers.single_pass_heat_exchanger;",PEHeaterBlock:"shape\x3dmxgraph.pid.heat_exchangers.heater;",
PEEjectorInjectorBlock:"shape\x3dmxgraph.pid.fittings.injector;",PECompressorTurbineBlock:"shape\x3dmxgraph.pid.engines.turbine;flipH\x3d1;",PETripleFanBlades2Block:"shape\x3dmxgraph.pid2misc.fan;fanType\x3dcommon;",PEFanBlades2Block:"shape\x3dmxgraph.pid2misc.fan;fanType\x3dcommon;",PECentrifugalPumpBlock:"shape\x3dmxgraph.pid.pumps.centrifugal_pump_1;",PECentrifugalPump:"shape\x3dmxgraph.pid.pumps.centrifugal_pump_1;",PECentrifugalPump2:"shape\x3dmxgraph.pid.pumps.centrifugal_pump_2;",PECentrifugalPump3:"shape\x3dmxgraph.pid.pumps.centrifugal_pump_1;flipH\x3d1;",
PEGearPumpBlock:"shape\x3dmxgraph.pid.pumps.gear_pump;",PEHorizontalPump:"shape\x3dmxgraph.pid.pumps.horizontal_pump;",PEProgressiveCavityPump:"shape\x3dmxgraph.pid.pumps.cavity_pump;flipH\x3d1;flipV\x3d1;",PEScrewPump:"shape\x3dmxgraph.pid.pumps.screw_pump;",PEScrewPump2:"shape\x3dmxgraph.pid.pumps.screw_pump_2;flipH\x3d1;",PESumpPump:"shape\x3dmxgraph.pid.pumps.sump_pump;",PEVacuumPump:"shape\x3dmxgraph.pid.pumps.vacuum_pump;",PEVerticalPump:"shape\x3dmxgraph.pid.pumps.vertical_pump;",PEVerticalPump2:"shape\x3dmxgraph.pid.pumps.vertical_pump;",
PEIndicatorBlock:"shape\x3dmxgraph.pid2inst.discInst;mounting\x3droom;",PEIndicator2Block:"shape\x3dmxgraph.pid2inst.indicator;mounting\x3droom;indType\x3dinst;",PEIndicator3Block:"shape\x3dmxgraph.pid2inst.discInst;mounting\x3dfield;",PEIndicator4Block:"shape\x3dmxgraph.pid2inst.indicator;mounting\x3dfield;indType\x3dinst;",PESharedIndicatorBlock:"shape\x3dmxgraph.pid2inst.sharedCont;mounting\x3droom;",PESharedIndicator2Block:"shape\x3dmxgraph.pid2inst.indicator;mounting\x3droom;indType\x3dctrl;",
PEProgrammableIndicatorBlock:"shape\x3dmxgraph.pid2inst.progLogCont;mounting\x3droom;",PEGateValveBlock:"shape\x3dmxgraph.pid2valves.valve;valveType\x3dgate;",PEGlobeValveBlock:"shape\x3dmxgraph.pid2valves.valve;valveType\x3dglobe;",PEControlValveBlock:"shape\x3dmxgraph.pid2valves.valve;valveType\x3dgate;actuator\x3ddiaph;",PENeedleValveBlock:"shape\x3dmxgraph.pid2valves.valve;valveType\x3dneedle;",PEButterflyValve2Block:"shape\x3dmxgraph.pid2valves.valve;valveType\x3dbutterfly;",PEDiaphragmBlock:"shape\x3dmxgraph.pid2valves.valve;valveType\x3dball;",
PECheckValveBlock:"shape\x3dmxgraph.pid2valves.valve;valveType\x3dcheck;",PECheckValve2Block:"shape\x3dmxgraph.pid2valves.valve;valveType\x3dcheck;",PEAngleValveBlock:"shape\x3dmxgraph.pid2valves.valve;valveType\x3dangle;actuator\x3dnone;",PEAngleGlobeValveBlock:"shape\x3dmxgraph.pid2valves.valve;valveType\x3dangleGlobe;actuator\x3dman;flipH\x3d1;",PEPoweredValveBlock:"shape\x3dmxgraph.pid2valves.valve;valveType\x3dgate;actuator\x3ddigital;",PEFloatOperatedValveBlock:"shape\x3dmxgraph.pid2valves.valve;valveType\x3dgate;actuator\x3dsingActing;",
PEThreeWayValveBlock:"shape\x3dmxgraph.pid2valves.valve;valveType\x3dthreeWay;actuator\x3dnone;",PEBleederValveBlock:"shape\x3dmxgraph.pid2valves.blockBleedValve;actuator\x3dnone;",PERotameterBlock:"shape\x3dmxgraph.pid.flow_sensors.rotameter;flipH\x3d1;",VennGradientColor1:"shape\x3dellipse;",VennGradientColor2:"shape\x3dellipse;",VennGradientColor3:"shape\x3dellipse;",VennGradientColor4:"shape\x3dellipse;",VennGradientColor5:"shape\x3dellipse;",VennGradientColor6:"shape\x3dellipse;",VennGradientColor7:"shape\x3dellipse;",
VennGradientColor8:"shape\x3dellipse;",VennPlainColor1:"shape\x3dellipse;",VennPlainColor2:"shape\x3dellipse;",VennPlainColor3:"shape\x3dellipse;",VennPlainColor4:"shape\x3dellipse;",VennPlainColor5:"shape\x3dellipse;",VennPlainColor6:"shape\x3dellipse;",VennPlainColor7:"shape\x3dellipse;",VennPlainColor8:"shape\x3dellipse;",iOS7DeviceiPhone5Portrait:"shape\x3dmxgraph.ios.iPhone;bgStyle\x3dbgGreen;",iOS7DeviceiPhone5Landscape:"shape\x3dmxgraph.ios.iPhone;bgStyle\x3dbgGreen;",iOS7DeviceiPadPortrait:"shape\x3dmxgraph.ios.iPad;bgStyle\x3dbgGreen;",
iOS7DeviceiPadLandscape:"shape\x3dmxgraph.ios.iPad;bgStyle\x3dbgGreen;",iOS7DeviceiPhone6Portrait:"shape\x3dmxgraph.ios.iPhone;bgStyle\x3dbgGreen;",iOS7DeviceiPhone6Landscape:"shape\x3dmxgraph.ios.iPhone;bgStyle\x3dbgGreen;",iOS7DeviceiPhone6PlusPortrait:"shape\x3dmxgraph.ios.iPhone;bgStyle\x3dbgGreen;",iOS7DeviceiPhone6PlusLandscape:"shape\x3dmxgraph.ios.iPhone;bgStyle\x3dbgGreen;",iOS7StatusBariPhone:"shape\x3dmxgraph.ios7ui.appBar;",iOS7iPhoneKeyboard:"shape\x3dmxgraph.ios7.misc.keyboard_(letters);",
iOS7StatusBariPad:"shape\x3dmxgraph.ios7ui.appBar;",iOS7iPadKeyboard:"shape\x3dmxgraph.ios7.misc.keyboard_(letters);",iOS7ProgressBar:"shape\x3dmxgraph.ios7ui.downloadBar;",iOS7Slider:"shape\x3dmxgraph.ios7ui.searchBox;",iOS7SearchBar:"shape\x3dmxgraph.ios7ui.searchBox;",iOS7Button:"shape\x3drect;",iOS7TextField:"shape\x3drect;",iOS7TextView:"shape\x3drect;",iOS7Toggle:"shape\x3dmxgraph.ios7ui.onOffButton;buttonState\x3don;strokeColor\x3d#38D145;strokeColor2\x3d#aaaaaa;fillColor\x3d#38D145;fillColor2\x3d#ffffff;",
iOS7Stepper:"shape\x3dmxgraph.ios7.misc.adjust;fillColor\x3d#ffffff;gradientColor\x3dnone;",iOS7PageControls:"shape\x3dmxgraph.ios7ui.pageControl;fillColor\x3d#666666;strokeColor\x3d#bbbbbb;",iOS7Block:"shape\x3drect;","iOS7IconArrow left":"shape\x3dmxgraph.ios7.misc.left;",iOS7IconArrow:"shape\x3dmxgraph.ios7.misc.right;","iOS7IconArrow up":"shape\x3dmxgraph.ios7.misc.up;","iOS7IconArrow down":"shape\x3dmxgraph.ios7.misc.down;",iOS7IconWifi:"shape\x3dmxgraph.ios7.icons.wifi;",iOS7IconBluetooth:"shape\x3dmxgraph.ios7.icons.bluetooth;",
iOS7IconBattery:"shape\x3dmxgraph.ios7.icons.battery;",iOS7IconSiri:"shape\x3dmxgraph.ios7.icons.microphone;",iOS7IconCheck:"shape\x3dmxgraph.ios7.icons.select;",iOS7IconCreate:"shape\x3dmxgraph.ios7.icons.add;",iOS7IconInfo:"shape\x3dmxgraph.ios7.icons.info;",iOS7IconLocation:"shape\x3dmxgraph.ios7.icons.location_2;",iOS7IconQuestion:"shape\x3dmxgraph.ios7.icons.help;",iOS7IconSearch:"shape\x3dmxgraph.ios7.icons.looking_glass;",iOS7IconToolbox:"shape\x3dmxgraph.ios7.icons.briefcase;",iOS7IconOptions:"shape\x3dmxgraph.ios7.icons.options;",
iOS7IconShare:"shape\x3dmxgraph.ios7.icons.share;",iOS7IconTyping:"shape\x3dmxgraph.ios7.icons.message;",iOS7IconCopy:"shape\x3dmxgraph.ios7.icons.folders_2;",iOS7IconChat:"shape\x3dmxgraph.ios7.icons.messages;",iOS7IconOrganize:"shape\x3dmxgraph.ios7.icons.folder;",iOS7IconTrash:"shape\x3dmxgraph.ios7.icons.trashcan;",iOS7IconReply:"shape\x3dmxgraph.ios7.icons.back;",iOS7IconArchive:"shape\x3dmxgraph.ios7.icons.box;",iOS7IconCompose:"shape\x3dmxgraph.ios7.icons.compose;",iOS7IconSend:"shape\x3dmxgraph.ios7.icons.pointer;",
iOS7IconDrawer:"shape\x3dmxgraph.ios7.icons.storage;",iOS7IconMail:"shape\x3dmxgraph.ios7.icons.mail;",iOS7IconDocument:"shape\x3dmxgraph.ios7.icons.document;",iOS7IconFlag:"shape\x3dmxgraph.ios7.icons.flag;",iOS7IconBookmarks:"shape\x3dmxgraph.ios7.icons.book;",iOS7IconGlasses:"shape\x3dmxgraph.ios7.icons.glasses;",iOS7IconFiles:"shape\x3dmxgraph.ios7.icons.folders;",iOS7IconDownloads:"shape\x3dmxgraph.ios7.icons.down;",iOS7IconLock:"shape\x3dmxgraph.ios7.icons.locked;",iOS7IconCloud:"shape\x3dmxgraph.ios7.icons.cloud;",
"iOS7IconOrientation Lock":"shape\x3dmxgraph.ios7.icons.orientation_lock;",iOS7IconContacts:"shape\x3dmxgraph.ios7.icons.user;",iOS7IconGlobal:"shape\x3dmxgraph.ios7.icons.globe;",iOS7IconSettings:"shape\x3dmxgraph.ios7.icons.settings;",iOS7IconAirplay:"shape\x3dmxgraph.ios7.icons.move_to_folder;",iOS7IconCamera:"shape\x3dmxgraph.ios7.icons.camera;",iOS7IconAirplane:"shape\x3dmxgraph.signs.transportation.airplane_6;direction\x3dsouth;",iOS7IconCalculator:"shape\x3dmxgraph.ios7.icons.calculator;",
iOS7IconPreferences:"shape\x3dmxgraph.ios7.icons.most_viewed;",iOS7IconPhone:"shape\x3dmxgraph.signs.tech.telephone_3;",iOS7IconKeypad:"shape\x3dmxgraph.ios7.icons.keypad;",iOS7IconVoicemail:"shape\x3dmxgraph.ios7.icons.tape;",iOS7IconStar:"shape\x3dmxgraph.ios7.icons.star;","iOS7IconMost Viewed":"shape\x3dmxgraph.ios7.icons.most_viewed;",iOS7IconVideo:"shape\x3dmxgraph.ios7.icons.video_conversation;","iOS7IconVolumne Controls":"shape\x3dmxgraph.ios7.icons.volume;","iOS7IconLocation pin":"shape\x3dmxgraph.ios7.icons.location;",
iOS7IconCalendar:"shape\x3dmxgraph.ios7.icons.calendar;",iOS7IconAlarm:"shape\x3dmxgraph.ios7.icons.alarm_clock;",iOS7IconClock:"shape\x3dmxgraph.ios7.icons.clock;",iOS7IconTimer:"shape\x3dmxgraph.ios7.icons.gauge;","iOS7IconVolume down":"shape\x3dmxgraph.ios7.icons.silent;",iOS7IconVolume:"shape\x3dmxgraph.ios7.icons.volume_2;","iOS7IconVolume up":"shape\x3dmxgraph.ios7.icons.loud;",iOS7IconRepeat:"shape\x3dmxgraph.ios7.icons.reload;",iOS7IconRewind:"shape\x3dmxgraph.ios7.icons.backward;",iOS7IconPlay:"shape\x3dmxgraph.ios7.icons.play;",
iOS7IconPause:"shape\x3dmxgraph.ios7.icons.pause;","iOS7IconFast forward":"shape\x3dmxgraph.ios7.icons.forward;",iOS7IconControls:"shape\x3dmxgraph.ios7.icons.controls;",iOS7IconPrivacy:"shape\x3dmxgraph.ios7.icons.privacy;",iOS7IconLink:"shape\x3dmxgraph.ios7.icons.link;",iOS7IconLight:"shape\x3dmxgraph.ios7.icons.flashlight;",iOS7IconBrightness:"shape\x3dmxgraph.ios7.icons.sun;",iOS7IconHeart:"shape\x3dmxgraph.ios7.icons.heart;",iOS7IconJava:"shape\x3dmxgraph.ios7.icons.cup;",iOS7IconBox:"shape\x3dmxgraph.ios7.icons.bag;",
iOS7IconEye:"shape\x3dmxgraph.ios7.icons.eye;","iOS7IconDo not disturb":"shape\x3dmxgraph.ios7.icons.moon;",UI2BrowserBlock:"shape\x3dmxgraph.mockup.containers.browserWindow;mainText\x3d,;",UI2WindowBlock:"shape\x3dmxgraph.mockup.containers.window;strokeColor2\x3d#008cff;strokeColor3\x3d#c4c4c4;fontColor\x3d#666666;mainText\x3d;",UI2AreaBlock:"shape\x3drect;",UI2ElementBlock:"shape\x3drect;",UI2VScrollBlock:"shape\x3dmxgraph.mockup.navigation.scrollBar;direction\x3dnorth;",UI2HScrollBlock:"shape\x3dmxgraph.mockup.navigation.scrollBar;",
UI2VerticalSplitterBlock:"shape\x3dmxgraph.mockup.forms.splitter;direction\x3dnorth;",UI2HorizontalSplitterBlock:"shape\x3dmxgraph.mockup.forms.splitter;",UI2ImageBlock:"shape\x3dmxgraph.mockup.graphics.simpleIcon;",UI2VideoBlock:"shape\x3dmxgraph.mockup.containers.videoPlayer;barHeight\x3d30;",UI2AudioBlock:"shape\x3dmxgraph.mockup.misc.playbackControls;",UI2MapBlock:"shape\x3dmxgraph.mockup.misc.map;",UI2BarChartBlock:"shape\x3dmxgraph.mockup.graphics.barChart;strokeColor\x3dnone;strokeColor2\x3dnone;",
UI2ColumnChartBlock:"shape\x3dmxgraph.mockup.graphics.columnChart;strokeColor\x3dnone;strokeColor2\x3dnone;",UI2LineChartBlock:"shape\x3dmxgraph.mockup.graphics.lineChart;strokeColor\x3dnone;",UI2PieChartBlock:"shape\x3dmxgraph.mockup.graphics.pieChart;parts\x3d10,20,35;",UI2WebcamBlock:"shape\x3dmxgraph.mockup.containers.userMale;",UI2CaptchaBlock:"shape\x3dmxgraph.mockup.text.captcha;mainText\x3d;",UI2ButtonBlock:"shape\x3drect;rounded\x3d1;",UI2ColorPickerBlock:"shape\x3dmxgraph.mockup.forms.colorPicker;chosenColor\x3d#aaddff;",
UI2TextInputBlock:"shape\x3drect;rounded\x3d1;",UI2SelectBlock:"shape\x3dmxgraph.mockup.forms.comboBox;strokeColor\x3d#999999;fillColor\x3d#ddeeff;align\x3dleft;fillColor2\x3d#aaddff;mainText\x3d;fontColor\x3d#666666;",UI2VSliderBlock:"shape\x3dmxgraph.mockup.forms.horSlider;sliderStyle\x3dbasic;sliderPos\x3d20;handleStyle\x3dcircle;direction\x3dnorth;",UI2HSliderBlock:"shape\x3dmxgraph.mockup.forms.horSlider;sliderStyle\x3dbasic;sliderPos\x3d20;handleStyle\x3dcircle;",UI2SearchBlock:"shape\x3dmxgraph.mockup.forms.searchBox;mainText\x3d;flipH\x3d1;",
UI2NumericStepperBlock:"shape\x3dmxgraph.mockup.forms.spinner;spinLayout\x3dright;spinStyle\x3dnormal;adjStyle\x3dtriangle;fillColor\x3d#000000;mainText\x3d;",UI2AtoZBlock:"shape\x3dmxgraph.mockup.text.alphanumeric;linkText\x3d;fontStyle\x3d4;",UI2PaginationBlock:"shape\x3dmxgraph.mockup.navigation.pagination;linkText\x3d;fontStyle\x3d4;",UI2PlaybackControlsBlock:"shape\x3dmxgraph.mockup.misc.playbackControls;fillColor\x3d#ffffff;strokeColor\x3d#999999;fillColor2\x3d#99ddff;strokeColor2\x3dnone;fillColor3\x3d#ffffff;strokeColor3\x3dnone;",
Image_ui_formatting_toolbar:"shape\x3dmxgraph.mockup.menus_and_buttons.font_style_selector_2;",UI2ProgressBarBlock:"shape\x3dmxgraph.mockup.misc.progressBar;fillColor2\x3d#888888;barPos\x3d25;",UI2HelpIconBlock:"shape\x3dmxgraph.mockup.misc.help_icon;",UI2BraceNoteBlock:"shape\x3dmxgraph.mockup.markup.curlyBrace;direction\x3dnorth;",UI2TooltipBlock:"shape\x3dmxgraph.basic.rectangular_callout;flipV\x3d1;",UI2CalloutBlock:"shape\x3dellipse;",Image_ipad_ipad:"shape\x3dmxgraph.ios.iPad;bgStyle\x3dbgGreen;",
iPadGrayBackgroundBlock:"shape\x3drect;",Image_ipad_top_bar:"shape\x3dmxgraph.ios.iTopBar2;opacity\x3d50;fillColor\x3d#999999;strokeColor\x3d#cccccc;",Image_ipad_search:"shape\x3dmxgraph.mockup.forms.searchBox;mainText\x3d;flipH\x3d1;",Image_ipad_popover:"shape\x3dmxgraph.ios.iOption;barPos\x3d50;pointerPos\x3dtop;buttonText\x3d;",Image_ipad_button_black:"shape\x3drect;roudned\x3d1;",Image_ipad_button_blue:"shape\x3drect;roudned\x3d1;",Image_ipad_button_grayblue:"shape\x3drect;roudned\x3d1;",Image_ipad_button_red:"shape\x3drect;roudned\x3d1;",
Image_ipad_back_button_gray:"shape\x3dmxgraph.ios.iButtonBack;buttonText\x3d;fillColor\x3d#eeeeee;fillColor2\x3d#aaaaaa;",Image_ipad_back_button_black:"shape\x3dmxgraph.ios.iButtonBack;buttonText\x3d;fillColor\x3d#888888;fillColor2\x3d#000000;",Image_ipad_sort_handle:"shape\x3dmxgraph.ios7.icons.options;",Image_ipad_dropdown:"shape\x3dmxgraph.ios.iComboBox;buttonText\x3d;fillColor\x3d#dddddd;fillColor2\x3d#3D5565;",Image_ipad_email_name:"shape\x3drect;rounded\x3d1;",Image_ipad_prev_next:"shape\x3dmxgraph.ios.iPrevNext;strokeColor\x3d#444444;fillColor\x3d#dddddd;fillColor2\x3d#3D5565;fillColor3\x3d#ffffff;",
Image_ipad_keyboard_portrait:"shape\x3dmxgraph.ios.iKeybLett;",Image_ipad_keyboard_landscape:"shape\x3dmxgraph.ios.iKeybLett;",Image_ipad_slider:"shape\x3dmxgraph.ios.iSlider;barPos\x3d20;",Image_ipad_add_icon_blue:"shape\x3dmxgraph.ios.iAddIcon;fillColor\x3d#8BbEff;fillColor2\x3d#135Ec8;strokeColor\x3d#ffffff;",Image_ipad_add_icon_green:"shape\x3dmxgraph.ios.iAddIcon;fillColor\x3d#7AdF78;fillColor2\x3d#1A9917;strokeColor\x3d#ffffff;",Image_ipad_remove_icon:"shape\x3dmxgraph.ios.iDeleteIcon;fillColor\x3d#e8878E;fillColor2\x3d#BD1421;strokeColor\x3d#ffffff;",
Image_ipad_arrow_icon:"shape\x3dmxgraph.ios.iArrowIcon;fillColor\x3d#8BbEff;fillColor2\x3d#135Ec8;strokeColor\x3d#ffffff;",Image_ipad_arrow:"shape\x3dmxgraph.ios7.misc.more;",Image_ipad_checkmark:"shape\x3dmxgraph.ios7.misc.check;",Image_ipad_check_off:"shape\x3dellipse;",Image_ipad_location_dot:"shape\x3dellipse;",Image_ipad_mark_as_read:"shape\x3dellipse;",Image_ipad_pin_green:"shape\x3dmxgraph.ios.iPin;fillColor2\x3d#00dd00;fillColor3\x3d#004400;strokeColor\x3d#006600;",Image_ipad_pin_red:"shape\x3dmxgraph.ios.iPin;fillColor2\x3d#dd0000;fillColor3\x3d#440000;strokeColor\x3d#660000;",
Image_ipad_radio_off:"shape\x3dellipse;",Image_ipad_checkbox_off:"shape\x3drect;rounded\x3d1;",Image_ipad_indicator:"shape\x3drect;rounded\x3d1;fillColor\x3d#e8878E;gradientColor\x3d#BD1421;strokeColor\x3d#ffffff;",Image_iphone_iphone_4:"shape\x3dmxgraph.ios.iPhone;bgStyle\x3dbgGreen;",Image_iphone_bg_black:"shape\x3drect;",Image_iphone_bg_gray:"shape\x3drect;",Image_iphone_bg_stripe_drk:"shape\x3dmxgraph.ios.iBgStriped;strokeColor\x3d#18211b;fillColor\x3d#5D7585;strokeColor2\x3d#657E8F;",Image_iphone_bg_stripe_lt:"shape\x3dmxgraph.ios.iBgStriped;strokeColor\x3d#18211b;fillColor\x3d#5D7585;strokeColor2\x3d#657E8F;",
Image_iphone_bg_white:"shape\x3drect;",Image_iphone_top_bar_app:"shape\x3dmxgraph.ios.iAppBar;",Image_iphone_top_bar_home:"shape\x3dmxgraph.ios.iTopBar2;opacity\x3d50;fillColor\x3d#999999;strokeColor\x3d#cccccc;strokeWidth\x3d1;",Image_iphone_bar_top:"shape\x3drect;",Image_iphone_bar_semi_trans_black:"shape\x3drect;",Image_iphone_bar_semi_trans_blue:"shape\x3drect;",Image_iphone_search:"shape\x3dmxgraph.mockup.forms.searchBox;mainText\x3d;flipH\x3d1;",Image_iphone_gray_grad_list:"shape\x3drect;rounded\x3d1;",
Image_iphone_alpha_list:"shape\x3dmxgraph.ios.iAlphaList;",Image_iphone_button_black:"shape\x3drect;rounded\x3d1;",Image_iphone_button_blue:"shape\x3drect;rounded\x3d1;",Image_iphone_button_grayblue:"shape\x3drect;rounded\x3d1;",Image_iphone_button_red:"shape\x3drect;rounded\x3d1;",Image_iphone_button_lg_light:"shape\x3drect;rounded\x3d1;",Image_iphone_button_lg_dark:"shape\x3drect;rounded\x3d1;",Image_iphone_button_lg_green:"shape\x3drect;rounded\x3d1;",Image_iphone_button_lg_red:"shape\x3drect;rounded\x3d1;",
Image_iphone_button_lg_yellow:"shape\x3drect;rounded\x3d1;",Image_iphone_button_xl_green:"shape\x3drect;rounded\x3d1;",Image_iphone_back_button:"shape\x3dmxgraph.ios.iButtonBack;strokeColor\x3d#444444;buttonText\x3d;fillColor\x3d#dddddd;fillColor2\x3d#3D5565;",Image_iphone_prev_next:"shape\x3dmxgraph.ios.iPrevNext;strokeColor\x3d#444444;fillColor\x3d#dddddd;fillColor2\x3d#3D5565;fillColor3\x3d#ffffff;",Image_iphone_sort_handle:"shape\x3dmxgraph.ios7.icons.options;",Image_iphone_slider:"shape\x3dmxgraph.ios.iSlider;barPos\x3d60;",
Image_iphone_dropdown:"shape\x3dmxgraph.ios.iComboBox;buttonText\x3d;fillColor\x3d#dddddd;fillColor2\x3d#3D5565;",Image_iphone_email_name:"shape\x3drect;rounded\x3d1;",Image_iphone_switch_off:"shape\x3dmxgraph.android.switch_off;fillColor\x3d#666666;",Image_iphone_keyboard_button_blue:"shape\x3drect;rounded\x3d1;",Image_iphone_keyboard_letters:"shape\x3dmxgraph.ios.iKeybLett;",Image_iphone_keyboard_landscape:"shape\x3dmxgraph.ios.iKeybLett;",Image_iphone_add_icon_blue:"shape\x3dmxgraph.ios.iAddIcon;fillColor\x3d#8BbEff;fillColor2\x3d#135Ec8;strokeColor\x3d#ffffff;",
Image_iphone_add_icon_green:"shape\x3dmxgraph.ios.iAddIcon;fillColor\x3d#7AdF78;fillColor2\x3d#1A9917;strokeColor\x3d#ffffff;",Image_iphone_remove_icon:"shape\x3dmxgraph.ios.iDeleteIcon;fillColor\x3d#e8878E;fillColor2\x3d#BD1421;strokeColor\x3d#ffffff;",Image_iphone_arrow_icon:"shape\x3dmxgraph.ios.iArrowIcon;fillColor\x3d#8BbEff;fillColor2\x3d#135Ec8;strokeColor\x3d#ffffff;",Image_iphone_arrow:"shape\x3dmxgraph.ios7.misc.more;",Image_iphone_checkmark:"shape\x3dmxgraph.ios7.misc.check;",Image_iphone_check_off:"shape\x3dellipse;",
Image_iphone_location_dot:"shape\x3dellipse;",Image_iphone_mark_as_read:"shape\x3dellipse;",Image_iphone_pin_green:"shape\x3dmxgraph.ios.iPin;fillColor2\x3d#00dd00;fillColor3\x3d#004400;strokeColor\x3d#006600;",Image_iphone_pin_red:"shape\x3dmxgraph.ios.iPin;fillColor2\x3d#dd0000;fillColor3\x3d#440000;strokeColor\x3d#660000;",Image_iphone_radio_off:"shape\x3dellipse;",Image_iphone_checkbox_off:"shape\x3drect;rounded\x3d1;",Image_iphone_indicator:"shape\x3drect;rounded\x3d1;fillColor\x3d#e8878E;gradientColor\x3d#BD1421;strokeColor\x3d#ffffff;",
Image_iphone_thread_count:"shape\x3drect;rounded\x3d1;"};EditorUi.prototype.pasteLucidChart=function(a,c,d,b){var g=this.editor.graph;g.getModel().beginUpdate();try{var f=[],h={},s=[];if(null!=a.Blocks)for(var t in a.Blocks){var e=a.Blocks[t];e.id=t;h[e.id]=y(e);s.push(e)}else for(var m=0;m<a.Objects.length;m++)e=a.Objects[m],e.IsBlock&&(null!=e.Action&&null!=e.Action.Properties)&&(h[e.id]=y(e)),s.push(e);s.sort(function(a,b){a=r(a);b=r(b);return null!=a.Properties&&null!=b.Properties?a.Properties.ZOrder-
b.Properties.ZOrder:0});for(var n=function(a,b){var e=null!=b.Endpoint1.Block?h[b.Endpoint1.Block]:null,m=null!=b.Endpoint2.Block?h[b.Endpoint2.Block]:null,q=new mxCell("",new mxGeometry(0,0,100,100),"html\x3d1;");q.geometry.relative=!0;q.edge=!0;w(q,a);var p=r(a).Properties,p=null!=p?p.TextAreas:a.TextAreas;if(null!=p)for(var n=0;null!=p["t"+n];){var p=p["t"+n],k=2*(parseFloat(p.Location)-0.5),k=new mxCell(v(p),new mxGeometry(k,0,0,0),"text;html\x3d1;resizable\x3d0;align\x3dcenter;verticalAlign\x3dmiddle;labelBackgroundColor\x3d#ffffff;");
k.geometry.relative=!0;k.vertex=!0;q.insert(k);n++}null==e&&null!=b.Endpoint1&&q.geometry.setTerminalPoint(new mxPoint(Math.round(b.Endpoint1.x*l+c),Math.round(b.Endpoint1.y*l+d)),!0);null==m&&null!=b.Endpoint2&&q.geometry.setTerminalPoint(new mxPoint(Math.round(b.Endpoint2.x*l+c),Math.round(b.Endpoint2.y*l+d)),!1);f.push(g.addCell(q,null,null,e,m))},m=0;m<s.length;m++){var e=s[m],k=h[e.id];null!=k?f.push(g.addCell(k)):e.IsLine&&(null!=e.Action&&null!=e.Action.Properties)&&n(e,e.Action.Properties)}if(null!=
a.Lines)for(t in a.Lines)e=a.Lines[t],n(e,e);if(b&&null!=c&&null!=d){g.isGridEnabled()&&(c=g.snap(c),d=g.snap(d));var u=g.getBoundingBoxFromGeometry(f,!0);null!=u&&g.moveCells(f,c-u.x,d-u.y)}g.setSelectionCells(f)}finally{g.getModel().endUpdate()}g.isSelectionEmpty()||(g.scrollCellToVisible(g.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(g.view.getState(g.getSelectionCell())))}})();
(function(){function u(a){a=null!=a.Text?a.Text:null!=a.Value?a.Value:a.Lane_0;return null!=a&&null!=a.t?a.t:""}function n(a){return null!=a.Action?a.Action:a}function v(a,c){var d=n(c);if(null!=d){var b=x[d.Class];null!=b&&(a.style+=b);b=null!=d.Properties?d.Properties:d;if(null!=b){a.value=u(b);"ImageSearchBlock2"==d.Class&&(a.style+="image="+b.URL+";");a.style+=h(mxConstants.STYLE_STROKEWIDTH,b.LineWidth,"1");a.style+=h(mxConstants.STYLE_STROKECOLOR,b.LineColor.substring(0,7),"#000000");a.style+=
h(mxConstants.STYLE_ALIGN,b.TextAlign,"center");a.style+=h(mxConstants.STYLE_VERTICAL_ALIGN,b.TextVAlign,"middle");a.style+=h(mxConstants.STYLE_OPACITY,b.Opacity,"100");if(null!=b.Rotation){var f=mxUtils.toDegree(parseFloat(b.Rotation));"AdvancedSwimLaneBlockRotated"==d.Class&&(f+=90,a.geometry.rotate90());a.style+="rotation="+f+";"}b.FlipX&&(a.style+="flipH=1;");b.FlipY&&(a.style+="flipV=1;");null!=b.Shadow&&(a.style+=mxConstants.STYLE_SHADOW+"=1;");"dashed"==b.StrokeStyle?a.style+="dashed=1;":"dotted"==
b.StrokeStyle&&(a.style+="dashed=1;dashPattern=1 4;");null!=b.FillColor&&("object"===typeof b.FillColor?null!=b.FillColor.cs&&1<b.FillColor.cs.length&&(a.style+=h(mxConstants.STYLE_FILLCOLOR,b.FillColor.cs[0].c.substring(0,7)),a.style+=h(mxConstants.STYLE_GRADIENTCOLOR,b.FillColor.cs[1].c.substring(0,7))):"string"===typeof b.FillColor&&(a.style+=h(mxConstants.STYLE_FILLCOLOR,b.FillColor.substring(0,7),"#FFFFFF")));if(a.edge){a.style+="rounded=1;arcSize=5;";if("diagonal"!=b.Shape)if(null!=b.ElbowPoints)for(a.geometry.points=
[],d=0;d<b.ElbowPoints.length;d++)a.geometry.points.push(new mxPoint(Math.round(.6*b.ElbowPoints[d].x+0),Math.round(.6*b.ElbowPoints[d].y+0)));else"elbow"==b.Shape?a.style=null!=b.Endpoint1.Block&&null!=b.Endpoint1.Block?a.style+"edgeStyle=orthogonalEdgeStyle;":a.style+"edgeStyle=elbowEdgeStyle;":null!=b.Endpoint1.Block&&null!=b.Endpoint1.Block&&(a.style+="edgeStyle=orthogonalEdgeStyle;","curve"==b.Shape&&(a.style+="curved=1;"));l(a,b.Endpoint1,!0);l(a,b.Endpoint2,!1)}}}}function w(a){var c=n(a).Properties.BoundingBox,
c=new mxCell("",new mxGeometry(Math.round(.6*c.x+0),Math.round(.6*c.y+0),Math.round(.6*c.w),Math.round(.6*c.h)),"html=1;whiteSpace=wrap;");c.vertex=!0;v(c,a);return c}function h(a,c,d,b){null!=c&&null!=b&&(c=b(c));return null!=c&&c!=d?a+"="+c+";":""}function l(a,c,d){null!=c&&(null!=c.LinkX&&null!=c.LinkY&&(a.style+=(d?"exitX":"entryX")+"="+c.LinkX+";"+(d?"exitY":"entryY")+"="+c.LinkY+";"+(d?"exitPerimeter":"entryPerimeter")+"=0;"),"Arrow"==c.Style?a.style+=(d?"startArrow":"endArrow")+"=block;":"Hollow Arrow"==
c.Style?(a.style+=(d?"startArrow":"endArrow")+"=block;",a.style+=(d?"startFill":"endFill")+"=0;"):"Open Arrow"==c.Style&&(a.style+=(d?"startArrow":"endArrow")+"=open;",a.style+=(d?"startSize":"endSize")+"=12;"))}var x={DefaultTextBlockNew:"text;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;",DefaultSquareBlock:"rounded=1;arcSize=5;",DefaultNoteBlock:"shape=note;size=15;",HotspotBlock:"strokeColor=none;opacity=50;",ImageSearchBlock2:"shape=image;",ProcessBlock:"rounded=1;arcSize=5;",
DecisionBlock:"rhombus;rounded=1;arcSize=5;",TerminatorBlock:"rounded=1;arcSize=50;",PredefinedProcessBlock:"shape=process;rounded=1;arcSize=5;",DocumentBlock:"shape=document;",MultiDocumentBlock:"shape=mxgraph.flowchart.multi-document;",ManualInputBlock:"shape=manualInput;size=15;rounded=1;arcSize=5;",PreparationBlock:"shape=hexagon;rounded=1;arcSize=5;",DataBlockNew:"shape=parallelogram;rounded=1;arcSize=5;",DatabaseBlock:"shape=cylinder;",DirectAccessStorageBlock:"shape=mxgraph.flowchart.direct_data;",
InternalStorageBlock:"shape=internalStorage;rounded=1;arcSize=5;dx=10;dy=10;",PaperTapeBlock:"shape=tape;size=0.2;",ManualOperationBlockNew:"shape=trapezoid;rounded=1;arcSize=5;flipV=1;",DelayBlock:"shape=delay;",StoredDataBlock:"shape=dataStorage;",MergeBlock:"triangle;direction=south;rounded=1;arcSize=5;",ConnectorBlock:"ellipse;",OrBlock:"shape=mxgraph.flowchart.summing_function;",SummingJunctionBlock:"shape=mxgraph.flowchart.or;",DisplayBlock:"shape=display;",OffPageLinkBlock:"shape=offPageConnector;rounded=1;arcSize=5;",
BraceNoteBlock:"shape=curlyBracket;rounded=1;",NoteBlock:"shape=mxgraph.flowchart.annotation_1;",AdvancedSwimLaneBlock:"swimlane;rounded=1;arcSize=5;",AdvancedSwimLaneBlockRotated:"swimlane;horizontal=0;rounded=1;arcSize=5;",RectangleContainerBlock:"fillColor=none;container=1;rounded=1;arcSize=5;",DiamondContainerBlock:"shape=rhombus;fillColor=none;container=1;",RoundedRectangleContainerBlock:"rounded=1;fillColor=none;container=1;",CircleContainerBlock:"shape=ellipse;fillColor=none;container=1;",
PillContainerBlock:"rounded=1;arcSize=50;fillColor=none;container=1;",IsoscelesTriangleBlock:"triangle;direction=north;",RightTriangleBlock:"shape=mxgraph.basic.orthogonal_triangle;",PentagonBlock:"shape=mxgraph.basic.pentagon;",HexagonBlock:"shape=hexagon;rounded=1;arcSize=5;",OctagonBlock:"shape=mxgraph.basic.octagon;",CrossBlock:"shape=cross;size=0.6;",CloudBlock:"ellipse;shape=cloud;",HeartBlock:"shape=mxgraph.basic.heart;",RightArrowBlock:"shape=singleArrow;arrowWidth=0.5;arrowSize=0.3;",DoubleArrowBlock:"shape=doubleArrow;arrowWidth=0.5;arrowSize=0.3;",
CalloutBlock:"shape=mxgraph.basic.rectangular_callout;",ShapeCircleBlock:"ellipse;",ShapePolyStarBlock:"shape=mxgraph.basic.star;",ShapeDiamondBlock:"rhombus;rounded=1;arcSize=5;",AndroidIconCheck:"shape=mxgraph.ios7.misc.check;",AndroidIconCollapse:"shape=mxgraph.ios7.misc.up;",AndroidIconExpand:"shape=mxgraph.ios7.misc.down;",AndroidIconNext:"shape=mxgraph.ios7.misc.right;",AndroidIconPrevious:"shape=mxgraph.ios7.misc.left;",AndroidIconInformation:"shape=mxgraph.ios7.icons.info;",AndroidIconSearch:"shape=mxgraph.ios7.icons.looking_glass;",
AndroidIconSettings:"shape=mxgraph.ios7.icons.volume;direction=south;",AndroidIconTrash:"shape=mxgraph.ios7.icons.trashcan;",AndroidIconEmail:"shape=mxgraph.mockup.misc.mail2;",AndroidIconNew:"shape=mxgraph.ios7.misc.flagged;",UMLClassBlock:"rounded=1;",UMLActiveClassBlock:"shape=mxgraph.flowchart.predefined_process;",UMLPackageBlock:"shape=folder;tabPosition=left;",UMLNoteBlock:"shape=note;size=15;",UMLTextBlock:"shape=text;strokeColor=none;fillColor=none;",UMLActorBlock:"shape=umlActor;",UMLUseCaseBlock:"shape=ellipse;",
UMLCircleContainerBlock:"shape=ellipse;container=1;",UMLRectangleContainerBlock:"rounded=1;container=1;",UMLOptionLoopBlock:"shape=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill;",UMLStartBlock:"shape=ellipse;fillColor=#000000;",UMLStateBlock:"shape=rect;rounded=1;",UMLDecisionBlock:"shape=rhombus;rounded=1;",UMLHForkJoinBlock:"shape=rect;rounded=1;fillColor=#000000;",UMLVForkJoinBlock:"shape=rect;rounded=1;fillColor=#000000;",UMLFlowFinalBlock:"shape=mxgraph.flowchart.or;",
UMLHistoryStateBlock:"shape=ellipse;",UMLEndBlock:"shape=mxgraph.bpmn.shape;outline=end;symbol=terminate;",UMLObjectBlock:"shape=rect;rounded=1;",UMLSendSignalBlock:"shape=mxgraph.sysml.sendSigAct;",UMLReceiveSignalBlock:"shape=mxgraph.sysml.accEvent;",UMLAcceptTimeEventActionBlock:"shape=mxgraph.sysml.timeEvent;",UMLOffPageLinkBlock:"shape=mxgraph.sysml.sendSigAct;direction=south;",UMLActivationBlock:"shape=rect;rounded=1;",UMLDeletionBlock:"shape=mxgraph.sysml.x;strokeWidth=4;",UMLSeqEntityBlock:"shape=mxgraph.electrical.radio.microphone_1;direction=north;",
UMLComponentBlock:"shape=component;align=left;spacingLeft=36;",UMLNodeBlock:"shape=cube;size=12;flipH=1;",UMLComponentInterfaceBlock:"shape=ellipse;",UMLProvidedInterfaceBlock:"shape=lollipop;direction=south;",UMLRequiredInterfaceBlock:"shape=requires;direction=north;",UMLEntityBlock:"shape=rect;rounded=1;",UMLWeakEntityBlock:"shape=ext;double=1;rounded=1;",UMLAttributeBlock:"shape=ellipse;",UMLMultivaluedAttributeBlock:"shape=doubleEllipse;",UMLRelationshipBlock:"shape=rhombus;rounded=1;",UMLWeakRelationshipBlock:"shape=rhombus;rounded=1;double=1;",
DFDExternalEntityBlock2:"shape=rect;rounded=1;",YDMDFDProcessBlock:"shape=ellipse;",YDMDFDDataStoreBlock:"shape=mxgraph.bootstrap.horLines;",GSDFDProcessBlock:"shape=swimlane;rounded=1;",GSDFDProcessBlock2:"shape=rect;rounded=1;",OrgBlock:"shape=rect;rounded=1;",VSMCustomerSupplierBlock:"shape=mxgraph.lean_mapping.outside_sources;",VSMDedicatedProcessBlock:"shape=mxgraph.lean_mapping.manufacturing_process;",VSMSharedProcessBlock:"shape=mxgraph.lean_mapping.manufacturing_process_shared;",VSMWorkcellBlock:"shape=mxgraph.lean_mapping.work_cell;",
VSMInventoryBlock:"shape=mxgraph.lean_mapping.inventory_box;",VSMPhysicalPullBlock:"shape=mxgraph.lean_mapping.physical_pull;direction=south;",VSMFIFOLaneBlock:"shape=mxgraph.lean_mapping.fifo_sequence_flow;fontStyle=0;fontSize=20",VSMExternalShipmentAirplaneBlock:"shape=mxgraph.lean_mapping.airplane_7;",VSMExternalShipmentForkliftBlock:"shape=mxgraph.lean_mapping.move_by_forklift;",VSMExternalShipmentTruckBlock:"shape=mxgraph.lean_mapping.truck_shipment;",VSMExternalShipmentBoatBlock:"shape=mxgraph.lean_mapping.boat_shipment;",
VSMProductionControlBlock:"shape=mxgraph.lean_mapping.manufacturing_process;",VSMOtherInformationBlock:"shape=rect;rounded=1;",VSMSequencedPullBallBlock:"shape=mxgraph.lean_mapping.sequenced_pull_ball;",VSMMRPERPBlock:"shape=mxgraph.lean_mapping.mrp_erp;whiteSpace=wrap;",VSMLoadLevelingBlock:"shape=mxgraph.lean_mapping.load_leveling;",VSMGoSeeBlock:"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;",VSMGoSeeProductionBlock:"shape=ellipse;",VSMVerbalInfoBlock:"shape=mxgraph.lean_mapping.verbal;",
VSMKaizenBurstBlock:"shape=mxgraph.lean_mapping.kaizen_lightening_burst;",VSMOperatorBlock:"shape=mxgraph.lean_mapping.operator;flipV=1;",VSMQualityProblemBlock:"shape=mxgraph.lean_mapping.quality_problem;",VSMProductionKanbanSingleBlock:"shape=mxgraph.lean_mapping.production_kanban;",VSMWithdrawalKanbanBlock:"shape=mxgraph.lean_mapping.withdrawal_kanban;",VSMSignalKanbanBlock:"shape=mxgraph.lean_mapping.signal_kanban;",VSMKanbanPostBlock:"shape=mxgraph.lean_mapping.kanban_post;",VSMShipmentArrow:"shape=singleArrow;arrowWidth=0.5;arrowSize=0.13;",
VSMPushArrow:"shape=mxgraph.lean_mapping.push_arrow;",AWSElasticComputeCloudBlock2:"shape=mxgraph.aws2.compute_and_networking.ec2;strokeColor=none;",AWSInstanceBlock2:"shape=mxgraph.aws2.compute_and_networking.ec2_instance;strokeColor=none;",AWSInstancesBlock2:"shape=mxgraph.aws2.compute_and_networking.ec2_instances;strokeColor=none;",AWSAMIBlock2:"shape=mxgraph.aws2.compute_and_networking.ec2_ami;strokeColor=none;",AWSDBonInstanceBlock2:"shape=mxgraph.aws2.compute_and_networking.ec2_db_on_instance;strokeColor=none;",
AWSInstanceCloudWatchBlock2:"shape=mxgraph.aws2.compute_and_networking.ec2_cloudwatch;strokeColor=none;",AWSElasticIPBlock2:"shape=mxgraph.aws2.compute_and_networking.ec2_elastic_ip;strokeColor=none;",AWSElasticMapReduceBlock2:"shape=mxgraph.aws2.compute_and_networking.emr;strokeColor=none;",AWSClusterBlock2:"shape=mxgraph.aws2.compute_and_networking.emr_cluster;strokeColor=none;",AWSHDFSClusterBlock2:"shape=mxgraph.aws2.compute_and_networking.emr_hdfs_cluster;strokeColor=none;",AWSAutoScalingBlock2:"shape=mxgraph.aws2.compute_and_networking.auto_scaling;strokeColor=none;",
AWSElasticLoadBlock2:"shape=mxgraph.aws2.compute_and_networking.elastic_load_balancing;strokeColor=none;",AWSDirectConnectBlock3:"shape=mxgraph.aws2.compute_and_networking.aws_direct_connect;strokeColor=none;",AWSElasticNetworkBlock2:"shape=mxgraph.aws2.compute_and_networking.elastic_network_instance;strokeColor=none;",AWSRoute53Block2:"shape=mxgraph.aws2.compute_and_networking.route_53;strokeColor=none;",AWSHostedZoneBlock2:"shape=mxgraph.aws2.compute_and_networking.route_53_hosted_zone;strokeColor=none;",
AWSRouteTableBlock2:"shape=mxgraph.aws2.compute_and_networking.route_53_route_table;strokeColor=none;",AWSVPCBlock2:"shape=mxgraph.aws2.compute_and_networking.vpc;strokeColor=none;",AWSVPNConnectionBlock2:"shape=mxgraph.aws2.compute_and_networking.vpc_vpn_connection;strokeColor=none;",AWSVPNGatewayBlock2:"shape=mxgraph.aws2.compute_and_networking.vpc_vpn_gateway;strokeColor=none;",AWSCustomerGatewayBlock2:"shape=mxgraph.aws2.compute_and_networking.vpc_customer_gateway;strokeColor=none;",AWSInternetGatewayBlock2:"shape=mxgraph.aws2.compute_and_networking.vpc_internet_gateway;strokeColor=none;",
AWSRouterBlock2:"shape=mxgraph.aws2.compute_and_networking.vpc_router;strokeColor=none;",AWSSimpleStorageBlock2:"shape=mxgraph.aws2.storage_and_content_delivery.s3;strokeColor=none;",AWSBucketBlock2:"shape=mxgraph.aws2.storage_and_content_delivery.s3_bucket;strokeColor=none;",AWSBuckethWithObjectsBlock2:"shape=mxgraph.aws2.storage_and_content_delivery.s3_bucket_with_objects;strokeColor=none;",AWSObjectBlock2:"shape=mxgraph.aws2.storage_and_content_delivery.s3_objects;strokeColor=none;",AWSImportExportBlock2:"shape=mxgraph.aws2.storage_and_content_delivery.aws_import_export;strokeColor=none;",
AWSStorageGatewayBlock2:"shape=mxgraph.aws2.storage_and_content_delivery.aws_storage_gateway;strokeColor=none;",AWSElasticBlockStorageBlock2:"shape=mxgraph.aws2.storage_and_content_delivery.ebs;strokeColor=none;",AWSVolumeBlock3:"shape=mxgraph.aws2.storage_and_content_delivery.ebs_volume;strokeColor=none;",AWSSnapshotBlock2:"shape=mxgraph.aws2.storage_and_content_delivery.ebs_snapshot;strokeColor=none;",AWSGlacierBlock2:"shape=mxgraph.aws2.storage_and_content_delivery.glacier;strokeColor=none;",AWSGlacierArchiveBlock3:"shape=mxgraph.aws2.storage_and_content_delivery.glacier_archive;strokeColor=none;",
AWSGlacierVaultBlock3:"shape=mxgraph.aws2.storage_and_content_delivery.glacier_vault;strokeColor=none;",AWSCloudFrontBlock2:"shape=mxgraph.aws2.storage_and_content_delivery.cloudfront;strokeColor=none;",AWSDownloadDistBlock2:"shape=mxgraph.aws2.storage_and_content_delivery.cloudfront_download_distribution;strokeColor=none;",AWSStreamingBlock2:"shape=mxgraph.aws2.storage_and_content_delivery.cloudfront_streaming_distribution;strokeColor=none;",AWSEdgeLocationBlock2:"shape=mxgraph.aws2.storage_and_content_delivery.cloudfront_edge_location;strokeColor=none;",
AWSItemBlock2:"shape=mxgraph.aws2.database.dynamodb_item;strokeColor=none;",AWSItemsBlock2:"shape=mxgraph.aws2.database.dynamodb_items;strokeColor=none;",AWSAttributeBlock2:"shape=mxgraph.aws2.database.dynamodb_attribute;strokeColor=none;",AWSAttributesBlock2:"shape=mxgraph.aws2.database.dynamodb_attributes;strokeColor=none;",AWSRDBSBlock2:"shape=mxgraph.aws2.database.rds;strokeColor=none;",AWSRDSInstanceBlock2:"shape=mxgraph.aws2.database.rds_db_instance;strokeColor=none;",AWSRDSStandbyBlock2:"shape=mxgraph.aws2.database.rds_instance_standby;strokeColor=none;",
AWSRDSInstanceReadBlock2:"shape=mxgraph.aws2.database.rds_instance_read_replica;strokeColor=none;",AWSOracleDBBlock2:"shape=mxgraph.aws2.database.rds_oracle_db_instance;strokeColor=none;",AWSMySQLDBBlock2:"shape=mxgraph.aws2.database.rds_mysql_db_instance;strokeColor=none;",AWSMSSQLDBBlock3:"shape=mxgraph.aws2.database.rds_ms_sql_instance;strokeColor=none;",AWSDynamoDBBlock2:"shape=mxgraph.aws2.database.dynamodb;strokeColor=none;",AWSSimpleDatabaseBlock3:"shape=mxgraph.aws2.database.simpledb;strokeColor=none;",
AWSSimpleDatabaseDomainBlock3:"shape=mxgraph.aws2.database.simpledb_domain;strokeColor=none;",AWSTableBlock2:"shape=mxgraph.aws2.database.dynamodb_table;strokeColor=none;",AWSAmazonRedShiftBlock3:"shape=mxgraph.aws2.database.redshift;strokeColor=none;",AWSElastiCacheNodeBlock2:"shape=mxgraph.aws2.database.elasticcache_node;strokeColor=none;",AWSElastiCacheBlock2:"shape=mxgraph.aws2.database.elasticcache;strokeColor=none;",AWSSESBlock2:"shape=mxgraph.aws2.app_services.ses;strokeColor=none;",AWSEmailBlock2:"shape=mxgraph.aws2.app_services.email;strokeColor=none;",
AWSSNSBlock2:"shape=mxgraph.aws2.app_services.sns;strokeColor=none;",AWSTopicBlock2:"shape=mxgraph.aws2.app_services.sns_topic;strokeColor=none;",AWSEmailNotificationBlock2:"shape=mxgraph.aws2.app_services.sns_email_notification;strokeColor=none;",AWSHTTPNotificationBlock2:"shape=mxgraph.aws2.app_services.sns_http_notification;strokeColor=none;",AWSSQSBlock3:"shape=mxgraph.aws2.app_services.sqs;strokeColor=none;",AWSQueueBlock2:"shape=mxgraph.aws2.app_services.sqs_queue;strokeColor=none;",AWSMessageBlock2:"shape=mxgraph.aws2.app_services.sqs_message;strokeColor=none;",
AWSDeciderBlock2:"shape=mxgraph.aws2.app_services.swf_decider;strokeColor=none;",AWSSWFBlock2:"shape=mxgraph.aws2.app_services.swf;strokeColor=none;",AWSWorkerBlock2:"shape=mxgraph.aws2.app_services.swf_worker;strokeColor=none;",AWSCloudSearchBlock2:"shape=mxgraph.aws2.app_services.cloudsearch;strokeColor=none;",AWSCloudSearchMetadataBlock3:"shape=mxgraph.aws2.app_services.cloudsearch_sdf_metadata;strokeColor=none;",AWSElasticTranscoder3:"shape=mxgraph.aws2.app_services.elastic_transcoder;strokeColor=none;",
AWSCloudFormationBlock2:"shape=mxgraph.aws2.deployment_and_management.cloudformation;strokeColor=none;",AWSDataPipelineBlock3:"shape=mxgraph.aws2.deployment_and_management.data_pipeline;strokeColor=none;",AWSTemplageBlock2:"shape=mxgraph.aws2.deployment_and_management.cloudformation_template;strokeColor=none;",AWSStackBlock2:"shape=mxgraph.aws2.deployment_and_management.cloudformation_stack;strokeColor=none;",AWSBeanStockBlock2:"shape=mxgraph.aws2.deployment_and_management.elastic_beanstalk;strokeColor=none;",
AWSApplicationBlock2:"shape=mxgraph.aws2.deployment_and_management.elastic_beanstalk_application;strokeColor=none;",AWSBeanstalkDeploymentBlock3:"shape=mxgraph.aws2.deployment_and_management.elastic_beanstalk_deployment;strokeColor=none;",AWSIAMBlock3:"shape=mxgraph.aws2.deployment_and_management.iam;strokeColor=none;",AWSIAMSTSBlock3:"shape=mxgraph.aws2.deployment_and_management.iam_sts;strokeColor=none;",AWSIAMAddonBlock2:"shape=mxgraph.aws2.deployment_and_management.iam_add-on;strokeColor=none;",
AWSCloudWatchBlock3:"shape=mxgraph.aws2.deployment_and_management.cloudwatch;strokeColor=none;",AWSCloudWatchAlarmBlock2:"shape=mxgraph.aws2.deployment_and_management.cloudwatch_alarm;strokeColor=none;",AWSOpsWorksBlock3:"shape=mxgraph.aws2.deployment_and_management.opsworks;strokeColor=none;",AWSMechanicalTurkBlock3:"shape=mxgraph.aws2.on-demand_workforce.mechanical_turk;strokeColor=none;",AWSHumanITBlock2:"shape=mxgraph.aws2.on-demand_workforce.mechanical_turk_human_intelligence_tasks;strokeColor=none;",
AWSAssignmentTaskBlock2:"shape=mxgraph.aws2.on-demand_workforce.mechanical_turk_requester;strokeColor=none;",AWSWorkersBlock2:"shape=mxgraph.aws2.on-demand_workforce.mechanical_turk_workers;strokeColor=none;",AWSRequesterBlock2:"shape=mxgraph.aws2.on-demand_workforce.mechanical_turk_assignment_task;strokeColor=none;",AWSAndroidBlock3:"shape=mxgraph.aws2.sdks.android;",AWSiOSBlock3:"shape=mxgraph.aws2.sdks.ios;",AWSJavaBlock3:"shape=mxgraph.aws2.sdks.java;",AWSNetBlock3:"shape=mxgraph.aws2.sdks.net;",
AWSNodeJSBlock3:"shape=mxgraph.aws2.sdks.nodejs;",AWSPHPBlock3:"shape=mxgraph.aws2.sdks.php;",AWSPythonBlock3:"shape=mxgraph.aws2.sdks.python;",AWSRubyBlock3:"shape=mxgraph.aws2.sdks.ruby;",AWSCLIBlock3:"shape=mxgraph.aws2.sdks.cli;",AWSEclipseToolkitBlock3:"shape=mxgraph.aws2.sdks.aws_toolkit_for_eclipse;",AWSVisualStudioToolkitBlock3:"shape=mxgraph.aws2.sdks.aws_toolkit_for_visual_studio;",AWSWindowsPowershellToolkitBlock3:"shape=mxgraph.aws2.sdks.tools_for_windows_powershell;",AWSCloudBlock2:"shape=mxgraph.aws2.non-service_specific.cloud;strokeColor=none;",
AWSVPCloudBlock3:"shape=mxgraph.aws2.non-service_specific.virtual_private_cloud;strokeColor=none;",AWSUserBlock2:"shape=mxgraph.aws2.non-service_specific.user;strokeColor=none;",AWSUsersBlock2:"shape=mxgraph.aws2.non-service_specific.users;strokeColor=none;",AWSClientBlock2:"shape=mxgraph.aws2.non-service_specific.client;strokeColor=none;",AWSMobileClientBlock2:"shape=mxgraph.aws2.non-service_specific.mobile_client;strokeColor=none;",AWSGenericDatabaseBlock3:"shape=mxgraph.aws2.non-service_specific.generic_database;strokeColor=none;",
AWSDiskBlock3:"shape=mxgraph.aws2.non-service_specific.disk;strokeColor=none;",AWSTapeStorageBlock3:"shape=mxgraph.aws2.non-service_specific.tape_storage;strokeColor=none;",AWSMediaBlock2:"shape=mxgraph.aws2.non-service_specific.multimedia;strokeColor=none;",AWSDataCenterBlock2:"shape=mxgraph.aws2.non-service_specific.corporate_data_center;strokeColor=none;",AWSServerBlock2:"shape=mxgraph.aws2.non-service_specific.traditional_server;strokeColor=none;",AWSInternetBlock2:"shape=mxgraph.aws2.non-service_specific.internet;strokeColor=none;",
AWSForumsBlock3:"shape=mxgraph.aws2.non-service_specific.forums;strokeColor=none;",AWSManagementBlock2:"shape=mxgraph.aws2.non-service_specific.management_console;strokeColor=none;",Cisco_cisco_androgenous_person:"shape=mxgraph.cisco.people.androgenous_person;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_atm_switch:"shape=mxgraph.cisco.switches.atm_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cloud:"shape=mxgraph.cisco.storage.cloud;strokeColor=#036897;fillColor=#ffffff;",Cisco_cisco_fileserver:"shape=mxgraph.cisco.servers.fileserver;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_firewall:"shape=mxgraph.cisco.security.firewall;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_generic_building:"shape=mxgraph.cisco.buildings.generic_building;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_laptop:"shape=mxgraph.cisco.computers_and_peripherals.laptop;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_lock:"shape=mxgraph.cisco.security.lock;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_microwebserver:"shape=mxgraph.cisco.servers.microwebserver;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_pc:"shape=mxgraph.cisco.computers_and_peripherals.pc;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_pda:"shape=mxgraph.cisco.misc.pda;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_phone:"shape=mxgraph.cisco.modems_and_phones.hootphone;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_printer:"shape=mxgraph.cisco.computers_and_peripherals.printer;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_relational_database:"shape=mxgraph.cisco.storage.relational_database;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_router:"shape=mxgraph.cisco.routers.router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_standing_man:"shape=mxgraph.cisco.people.standing_man;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_standing_woman:"shape=mxgraph.cisco.people.standing_woman;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ups:"shape=mxgraph.cisco.misc.ups;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_wireless_router:"shape=mxgraph.cisco.routers.wireless_router;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_100baset_hub:"shape=mxgraph.cisco.hubs_and_gateways.100baset_hub;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_10700:"shape=mxgraph.cisco.routers.10700;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_10GE_FCoE:"shape=mxgraph.cisco.controllers_and_modules.10ge_fcoe;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_15200:"shape=mxgraph.cisco.misc.15200;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_3174__desktop_:"shape=mxgraph.cisco.controllers_and_modules.3174_(desktop)_cluster_controller;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_3200_mobile_access_router:"shape=mxgraph.cisco.routers.mobile_access_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_3x74__floor_:"shape=mxgraph.cisco.controllers_and_modules.3x74_(floor)_cluster_controller;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_6700_series:"shape=mxgraph.cisco.misc.6700_series;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_7500ars__7513_:"shape=mxgraph.cisco.misc.7500ars_(7513);fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_accesspoint:"shape=mxgraph.cisco.misc.access_point;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_ace:"shape=mxgraph.cisco.misc.ace;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ACS:"shape=mxgraph.cisco.misc.acs;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_adm:"shape=mxgraph.cisco.misc.adm;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_antenna:"shape=mxgraph.cisco.wireless.antenna;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_asic_processor:"shape=mxgraph.cisco.misc.asic_processor;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ASR_1000_Series:"shape=mxgraph.cisco.misc.asr_1000_series;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_ata:"shape=mxgraph.cisco.misc.ata;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_atm_3800:"shape=mxgraph.cisco.misc.atm_3800;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_atm_fast_gigabit_etherswitch:"shape=mxgraph.cisco.switches.atm_fast_gigabit_etherswitch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_atm_router:"shape=mxgraph.cisco.routers.atm_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_atm_tag_switch_router:"shape=mxgraph.cisco.routers.atm_tag_switch_router;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_avs:"shape=mxgraph.cisco.misc.avs;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_AXP:"shape=mxgraph.cisco.misc.axp;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_bbsm:"shape=mxgraph.cisco.misc.bbsm;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_branch_office:"shape=mxgraph.cisco.buildings.branch_office;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_breakout_box:"shape=mxgraph.cisco.misc.breakout_box;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_bridge:"shape=mxgraph.cisco.misc.bridge;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_broadband_router:"shape=mxgraph.cisco.routers.broadcast_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_bts_10200:"shape=mxgraph.cisco.misc.bts_10200;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cable_modem:"shape=mxgraph.cisco.modems_and_phones.cable_modem;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_callmanager:"shape=mxgraph.cisco.misc.call_manager;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_car:"shape=mxgraph.cisco.misc.car;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_carrier_routing_system:"shape=mxgraph.cisco.misc.carrier_routing_system;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cddi_fddi:"shape=mxgraph.cisco.misc.cddi_fddi;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cdm:"shape=mxgraph.cisco.misc.cdm;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cellular_phone:"shape=mxgraph.cisco.modems_and_phones.cell_phone;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_centri_firewall:"shape=mxgraph.cisco.security.centri_firewall;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_cisco_1000:"shape=mxgraph.cisco.misc.cisco_1000;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cisco_asa_5500:"shape=mxgraph.cisco.misc.asa_5500;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cisco_ca:"shape=mxgraph.cisco.misc.cisco_ca;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cisco_file_engine:"shape=mxgraph.cisco.storage.cisco_file_engine;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cisco_hub:"shape=mxgraph.cisco.hubs_and_gateways.cisco_hub;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_ciscosecurity:"shape=mxgraph.cisco.security.cisco_security;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cisco_unified_presence_server:"shape=mxgraph.cisco.servers.cisco_unified_presence_server;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_cisco_unityexpress:"shape=mxgraph.cisco.misc.cisco_unity_express;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ciscoworks:"shape=mxgraph.cisco.misc.cisco_works;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_class_4_5_switch:"shape=mxgraph.cisco.switches.class_4_5_switch;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_communications_server:"shape=mxgraph.cisco.servers.communications_server;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_contact_center:"shape=mxgraph.cisco.misc.contact_center;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_content_engine__cache_director_:"shape=mxgraph.cisco.directors.content_engine_(cache_director);fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_content_service_router:"shape=mxgraph.cisco.routers.content_service_router;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_content_service_switch_1100:"shape=mxgraph.cisco.switches.content_service_switch_1100;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_content_switch_module:"shape=mxgraph.cisco.controllers_and_modules.content_switch_module;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_content_switch:"shape=mxgraph.cisco.switches.content_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_content_transformation_engine__cte_:"shape=mxgraph.cisco.misc.content_transformation_engine_(cte);fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_cs_mars:"shape=mxgraph.cisco.misc.cs-mars;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_csm_s:"shape=mxgraph.cisco.misc.csm-s;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_csu_dsu:"shape=mxgraph.cisco.misc.csu_dsu;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_CUBE:"shape=mxgraph.cisco.misc.cube;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_detector:"shape=mxgraph.cisco.misc.detector;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_director_class_fibre_channel_director:"shape=mxgraph.cisco.directors.director-class_fibre_channel_director;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_directory_server:"shape=mxgraph.cisco.servers.directory_server;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_diskette:"shape=mxgraph.cisco.storage.diskette;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_distributed_director:"shape=mxgraph.cisco.directors.distributed_director;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_dot_dot:"shape=mxgraph.cisco.misc.dot-dot;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_dpt:"shape=mxgraph.cisco.misc.dpt;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_dslam:"shape=mxgraph.cisco.misc.dslam;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_dual_mode_ap:"shape=mxgraph.cisco.misc.dual_mode;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_dwdm_filter:"shape=mxgraph.cisco.misc.dwdm_filter;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_end_office:"shape=mxgraph.cisco.buildings.end_office;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_fax:"shape=mxgraph.cisco.modems_and_phones.fax;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_fc_storage:"shape=mxgraph.cisco.storage.fc_storage;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_fddi_ring:"shape=mxgraph.cisco.misc.fddi_ring;strokeColor=#036897;",Cisco_cisco_fibre_channel_disk_subsystem:"shape=mxgraph.cisco.storage.fibre_channel_disk_subsystem;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_fibre_channel_fabric_switch:"shape=mxgraph.cisco.switches.fibre_channel_fabric_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_file_cabinet:"shape=mxgraph.cisco.storage.file_cabinet;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_file_server:"shape=mxgraph.cisco.servers.file_server;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_firewall_service_module__fwsm_:"shape=mxgraph.cisco.controllers_and_modules.firewall_service_module_(fwsm);fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_front_end_processor:"shape=mxgraph.cisco.misc.front_end_processor;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_gatekeeper:"shape=mxgraph.cisco.security.gatekeeper;strokeColor=#036897;",Cisco_cisco_general_applicance:"shape=mxgraph.cisco.misc.general_appliance;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_generic_gateway:"shape=mxgraph.cisco.hubs_and_gateways.generic_gateway;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_generic_processor:"shape=mxgraph.cisco.misc.generic_processor;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_generic_softswitch:"shape=mxgraph.cisco.switches.generic_softswitch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_gigabit_switch_atm_tag_router:"shape=mxgraph.cisco.routers.gigabit_switch_atm_tag_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_government_building:"shape=mxgraph.cisco.buildings.government_building;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_Ground_terminal:"shape=mxgraph.cisco.wireless.ground_terminal;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_guard:"shape=mxgraph.cisco.security.guard;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_handheld:"shape=mxgraph.cisco.misc.handheld;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_hootphone:"shape=mxgraph.cisco.modems_and_phones.hootphone;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_host:"shape=mxgraph.cisco.servers.host;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_hp_mini:"shape=mxgraph.cisco.misc.hp_mini;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_h:"shape=mxgraph.cisco.misc.h_323;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_hub:"shape=mxgraph.cisco.hubs_and_gateways.hub;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_iad_router:"shape=mxgraph.cisco.routers.iad_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ibm_mainframe:"shape=mxgraph.cisco.computers_and_peripherals.ibm_mainframe;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ibm_mini_as400:"shape=mxgraph.cisco.computers_and_peripherals.ibm_mini_as400;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ibm_tower:"shape=mxgraph.cisco.computers_and_peripherals.ibm_tower;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_icm:"shape=mxgraph.cisco.misc.icm;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ics:"shape=mxgraph.cisco.misc.ics;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_intelliswitch_stack:"shape=mxgraph.cisco.switches.intelliswitch_stack;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ios_firewall:"shape=mxgraph.cisco.security.ios_firewall;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ios_slb:"shape=mxgraph.cisco.misc.ios_slb;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ip_communicator:"shape=mxgraph.cisco.misc.ip_communicator;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_ip_dsl:"shape=mxgraph.cisco.misc.ip_dsl;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ip_phone:"shape=mxgraph.cisco.modems_and_phones.ip_phone;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ip:"shape=mxgraph.cisco.misc.ip;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_iptc:"shape=mxgraph.cisco.misc.iptc;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ip_telephony_router:"shape=mxgraph.cisco.routers.ip_telephony_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_iptv_content_manager:"shape=mxgraph.cisco.misc.iptv_content_manager;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_iptv_server:"shape=mxgraph.cisco.servers.iptv_server;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_iscsi_router:"shape=mxgraph.cisco.routers.isci_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_isdn_switch:"shape=mxgraph.cisco.switches.isdn_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_itp:"shape=mxgraph.cisco.misc.itp;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_jbod:"shape=mxgraph.cisco.misc.jbod;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_key:"shape=mxgraph.cisco.misc.key;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_keys:"shape=mxgraph.cisco.misc.keys;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_lan_to_lan:"shape=mxgraph.cisco.misc.lan_to_lan;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_layer_2_remote_switch:"shape=mxgraph.cisco.switches.layer_2_remote_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_layer_3_switch:"shape=mxgraph.cisco.switches.layer_3_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_lightweight_ap:"shape=mxgraph.cisco.misc.lightweight_ap;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_localdirector:"shape=mxgraph.cisco.directors.localdirector;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_longreach_cpe:"shape=mxgraph.cisco.misc.longreach_cpe;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_macintosh:"shape=mxgraph.cisco.computers_and_peripherals.macintosh;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_mac_woman:"shape=mxgraph.cisco.people.mac_woman;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_man_woman:"shape=mxgraph.cisco.people.man_woman;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_mas_gateway:"shape=mxgraph.cisco.hubs_and_gateways.mas_gateway;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_mau:"shape=mxgraph.cisco.misc.mau;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_mcu:"shape=mxgraph.cisco.misc.mcu;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_mdu:"shape=mxgraph.cisco.buildings.mdu;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_me_1100:"shape=mxgraph.cisco.misc.me1100;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_Mediator:"shape=mxgraph.cisco.misc.mediator;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_meetingplace:"shape=mxgraph.cisco.misc.meetingplace;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_mesh_ap:"shape=mxgraph.cisco.misc.mesh_ap;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_metro_1500:"shape=mxgraph.cisco.misc.metro_1500;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_mgx_8000_multiservice_switch:"shape=mxgraph.cisco.switches.mgx_8000_multiservice_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_microphone:"shape=mxgraph.cisco.computers_and_peripherals.microphone;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_mini_vax:"shape=mxgraph.cisco.misc.mini_vax;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_mobile_access_ip_phone:"shape=mxgraph.cisco.modems_and_phones.mobile_access_ip_phone;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_mobile_access_router:"shape=mxgraph.cisco.routers.mobile_access_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_modem:"shape=mxgraph.cisco.modems_and_phones.modem;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_moh_server:"shape=mxgraph.cisco.servers.moh_server;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_MSE:"shape=mxgraph.cisco.misc.mse;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_mulitswitch_device:"shape=mxgraph.cisco.switches.multiswitch_device;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_multi_fabric_server_switch:"shape=mxgraph.cisco.switches.multi-fabric_server_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_multilayer_remote_switch:"shape=mxgraph.cisco.switches.multilayer_remote_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_mux:"shape=mxgraph.cisco.misc.mux;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_MXE:"shape=mxgraph.cisco.misc.mxe;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_nac_appliance:"shape=mxgraph.cisco.misc.nac_appliance;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_NCE:"shape=mxgraph.cisco.misc.nce;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_NCE_router:"shape=mxgraph.cisco.routers.nce_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_netflow_router:"shape=mxgraph.cisco.routers.netflow_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_netranger:"shape=mxgraph.cisco.misc.netranger;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_netsonar:"shape=mxgraph.cisco.misc.netsonar;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_network_management:"shape=mxgraph.cisco.misc.network_management;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_Nexus_1000:"shape=mxgraph.cisco.misc.nexus_1000;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_Nexus_2000:"shape=mxgraph.cisco.misc.nexus_2000_fabric_extender;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_Nexus_5000:"shape=mxgraph.cisco.misc.nexus_5000;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_Nexus_7000:"shape=mxgraph.cisco.misc.nexus_7000;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_octel:"shape=mxgraph.cisco.misc.octel;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ons15500:"shape=mxgraph.cisco.misc.ons15500;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_optical_amplifier:"shape=mxgraph.cisco.misc.optical_amplifier;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_optical_services_router:"shape=mxgraph.cisco.routers.optical_services_router;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_optical_transport:"shape=mxgraph.cisco.misc.optical_transport;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_pad:"shape=mxgraph.cisco.misc.pad_2;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_pad_x:"shape=mxgraph.cisco.misc.pad_1;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_page_icon:"shape=mxgraph.cisco.misc.page_icon;strokeColor=#036897;",Cisco_cisco_pbx:"shape=mxgraph.cisco.misc.pbx;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_pbx_switch:"shape=mxgraph.cisco.switches.pbx_switch;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_pc_adapter_card:"shape=mxgraph.cisco.computers_and_peripherals.pc_adapter_card;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_pc_man:"shape=mxgraph.cisco.people.pc_man;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_pc_routercard:"shape=mxgraph.cisco.computers_and_peripherals.pc_routercard;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_pc_software:"shape=mxgraph.cisco.misc.pc_software;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_pc_video:"shape=mxgraph.cisco.misc.pc_video;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_phone_fax:"shape=mxgraph.cisco.modems_and_phones.phone-fax;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_pix_firewall:"shape=mxgraph.cisco.security.pix_firewall;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_pmc:"shape=mxgraph.cisco.misc.pmc;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_programmable_switch:"shape=mxgraph.cisco.switches.programmable_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_protocol_translator:"shape=mxgraph.cisco.misc.protocol_translator;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_pxf:"shape=mxgraph.cisco.misc.pxf;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_radio_tower:"shape=mxgraph.cisco.wireless.radio_tower;strokeColor=#036897;",Cisco_cisco_ratemux:"shape=mxgraph.cisco.misc.ratemux;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_repeater:"shape=mxgraph.cisco.misc.repeater;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_RF_modem:"shape=mxgraph.cisco.modems_and_phones.rf_modem;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_router_firewall:"shape=mxgraph.cisco.security.router_firewall;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_routerin_building:"shape=mxgraph.cisco.routers.router_in_building;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_router_with_silicon_switch:"shape=mxgraph.cisco.routers.router_with_silicon_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_route_switch_processor:"shape=mxgraph.cisco.misc.route_switch_processor;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_rpsrps:"shape=mxgraph.cisco.misc.rpsrps;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_running_man:"shape=mxgraph.cisco.people.running_man;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_sattelite_dish:"shape=mxgraph.cisco.wireless.satellite_dish;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_sattelite:"shape=mxgraph.cisco.wireless.satellite;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_scanner:"shape=mxgraph.cisco.computers_and_peripherals.scanner;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_server_switch:"shape=mxgraph.cisco.switches.server_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_server_with_router:"shape=mxgraph.cisco.servers.server_with_router;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_service_control:"shape=mxgraph.cisco.misc.service_control;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_Service_Module:"shape=mxgraph.cisco.controllers_and_modules.service_module;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_Service_router:"shape=mxgraph.cisco.routers.service_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_Services:"shape=mxgraph.cisco.misc.services;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_Set_top_box:"shape=mxgraph.cisco.misc.set_top_box;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_simulitlayer_switch:"shape=mxgraph.cisco.switches.simultilayer_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_sip_proxy_werver:"shape=mxgraph.cisco.servers.sip_proxy_server;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_sitting_woman:"shape=mxgraph.cisco.people.sitting_woman;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_small_business:"shape=mxgraph.cisco.buildings.small_business;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_small_hub:"shape=mxgraph.cisco.hubs_and_gateways.small_hub;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_softphone:"shape=mxgraph.cisco.modems_and_phones.softphone;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_softswitch_pgw_mgc:"shape=mxgraph.cisco.switches.softswitch_pgw_mgc;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_software_based_server:"shape=mxgraph.cisco.servers.software_based_server;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_speaker:"shape=mxgraph.cisco.computers_and_peripherals.speaker;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ssc:"shape=mxgraph.cisco.misc.ssc;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_ssl_terminator:"shape=mxgraph.cisco.misc.ssl_terminator;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_standard_host:"shape=mxgraph.cisco.servers.standard_host;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_stb:"shape=mxgraph.cisco.misc.stb;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_storage_router:"shape=mxgraph.cisco.routers.storage_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_storage_server:"shape=mxgraph.cisco.servers.storage_server;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_stp:"shape=mxgraph.cisco.misc.stp;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_streamer:"shape=mxgraph.cisco.misc.streamer;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_sun_workstation:"shape=mxgraph.cisco.computers_and_peripherals.workstation;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_supercomputer:"shape=mxgraph.cisco.computers_and_peripherals.supercomputer;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_svx:"shape=mxgraph.cisco.misc.svx;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_system_controller:"shape=mxgraph.cisco.controllers_and_modules.system_controller;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_tablet:"shape=mxgraph.cisco.computers_and_peripherals.tablet;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_tape_array:"shape=mxgraph.cisco.storage.tape_array;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_tdm_router:"shape=mxgraph.cisco.routers.tdm_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_telecommuter_house_pc:"shape=mxgraph.cisco.buildings.telecommuter_house_pc;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_telecommuter_house:"shape=mxgraph.cisco.buildings.telecommuter_house;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_telecommuter_icon:"shape=mxgraph.cisco.misc.telecommuter_icon;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_Telepresence_3200:"shape=mxgraph.cisco.misc.telepresence;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_terminal:"shape=mxgraph.cisco.computers_and_peripherals.terminal;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_token:"shape=mxgraph.cisco.misc.token;strokeColor=#036897;",
Cisco_cisco_TP_MCU:"shape=mxgraph.cisco.misc.tp_mcu;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_transpath:"shape=mxgraph.cisco.misc.transpath;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_truck:"shape=mxgraph.cisco.misc.truck;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_turret:"shape=mxgraph.cisco.misc.turret;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_tv:"shape=mxgraph.cisco.misc.tv;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_ubr910:"shape=mxgraph.cisco.misc.ubr910;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_umg_series:"shape=mxgraph.cisco.misc.umg_series;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_unity_server:"shape=mxgraph.cisco.servers.unity_server;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_universal_gateway:"shape=mxgraph.cisco.hubs_and_gateways.universal_gateway;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_university:"shape=mxgraph.cisco.buildings.university;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_upc:"shape=mxgraph.cisco.computers_and_peripherals.upc;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_vault:"shape=mxgraph.cisco.misc.vault;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_video_camera:"shape=mxgraph.cisco.computers_and_peripherals.video_camera;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_vip:"shape=mxgraph.cisco.misc.vip;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_virtual_layer_switch:"shape=mxgraph.cisco.switches.virtual_layer_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_virtual_switch_controller__vsc3000_:"shape=mxgraph.cisco.controllers_and_modules.virtual_switch_controller_(vsc3000);fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_voice_atm_switch:"shape=mxgraph.cisco.switches.voice_atm_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_voice_commserver:"shape=mxgraph.cisco.servers.voice_commserver;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_voice_router:"shape=mxgraph.cisco.routers.voice_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_voice_switch:"shape=mxgraph.cisco.switches.voice_switch;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_vpn_concentrator:"shape=mxgraph.cisco.misc.vpn_concentrator;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_vpn_gateway:"shape=mxgraph.cisco.hubs_and_gateways.vpn_gateway;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_VSS:"shape=mxgraph.cisco.misc.vss;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_wae:"shape=mxgraph.cisco.misc.wae;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_wavelength_router:"shape=mxgraph.cisco.routers.wavelength_router;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_web_browser:"shape=mxgraph.cisco.computers_and_peripherals.web_browser;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_web_cluster:"shape=mxgraph.cisco.storage.web_cluster;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_wi_fi_tag:"shape=mxgraph.cisco.wireless.wi-fi_tag;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_wireless_bridge:"shape=mxgraph.cisco.wireless.wireless_bridge;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_wireless_location_appliance:"shape=mxgraph.cisco.wireless.wireless_location_appliance;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_wireless:"shape=mxgraph.cisco.wireless.wireless;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_wireless_transport:"shape=mxgraph.cisco.wireless.wireless_transport;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_wism:"shape=mxgraph.cisco.misc.wism;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_wlan_controller:"shape=mxgraph.cisco.wireless.wlan_controller;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_workgroup_director:"shape=mxgraph.cisco.directors.workgroup_director;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_workgroup_switch:"shape=mxgraph.cisco.switches.workgroup_switch;fillColor=#036897;strokeColor=#ffffff;",
Cisco_cisco_workstation:"shape=mxgraph.cisco.computers_and_peripherals.workstation;fillColor=#036897;strokeColor=#ffffff;",Cisco_cisco_www_server:"shape=mxgraph.cisco.servers.www_server;fillColor=#036897;strokeColor=#ffffff;",RackServerRack:"shape=mxgraph.rackGeneral.container;container=1;collapsible=0;childLayout=rack;marginLeft=9;marginRight=9;marginTop=21;marginBottom=22;textColor=#000000;numDisp=off;",RackBlank:"strokeColor=#666666;labelPosition=left;align=right;spacingRight=15;shape=mxgraph.rackGeneral.plate;fillColor=#e8e8e8;",
RackRaidArray:"shape=mxgraph.rack.cisco.cisco_carrier_packet_transport_50;labelPosition=left;align=right;spacingRight=15;",RackServer:"shape=mxgraph.rack.oracle.sunfire_x4100;labelPosition=left;align=right;spacingRight=15;",RackEthernetSwitch:"shape=mxgraph.rack.cisco.cisco_nexus_3016_switch;labelPosition=left;align=right;spacingRight=15;",RackPatchPanel:"strokeColor=#666666;labelPosition=left;align=right;spacingRight=15;shape=mxgraph.rack.general.cat5e_rack_mount_patch_panel_24_ports;",RackRouter:"shape=mxgraph.rack.cisco.cisco_asr_1001_router;labelPosition=left;align=right;spacingRight=15;",
RackMonitor:"shape=mxgraph.rack.ibm.ibm_1u_flat_panel_console_kit;labelPosition=left;align=right;spacingRight=15;",RackKeyboard:"shape=mxgraph.rack.cisco.cisco_1905_serial_integrated_services_router;labelPosition=left;align=right;spacingRight=15;",RackPowerStrip:"shape=mxgraph.rack.dell.power_strip;labelPosition=left;align=right;spacingRight=15;",RackPowerSupply:"shape=mxgraph.rack.cisco.cisco_web_security_appliance_s170;labelPosition=left;align=right;spacingRight=15;",RackBridge:"shape=mxgraph.rack.cisco.cisco_nexus_5548p_switch;labelPosition=left;align=right;spacingRight=15;",
RackTapeDrive:"shape=mxgraph.rack.ibm.ibm_1754_local_console_manager;labelPosition=left;align=right;spacingRight=15;",Image_network_server:"image;image=img/lib/clip_art/computers/Server_Tower_128x128.png;flipH=1;",Image_network_server_file:"image;image=img/lib/clip_art/computers/Server_128x128.png;",Image_network_server_net:"image;image=img/lib/clip_art/networking/Print_Server_128x128.png;",Image_network_server_net_large:"image;image=img/lib/clip_art/computers/Server_128x128.png;",Image_network_raid:"image;image=img/lib/clip_art/computers/Server_Tower_128x128.png;flipH=1;",
Image_network_raid_large:"image;image=img/lib/clip_art/computers/Server_Tower_128x128.png;flipH=1;",Image_network_rack_server:"image;image=img/lib/clip_art/computers/Server_Rack_128x128.png;",Image_network_rack_tape:"image;image=img/lib/clip_art/computers/Server_Rack_Partial_128x128.png;",Image_network_printer_small:"image;image=img/lib/clip_art/computers/Printer_128x128.png;flipH=1;",Image_network_printer_large:"image;image=img/lib/clip_art/computers/Printer_128x128.png;flipH=1;",Image_network_printer_multipurpose:"image;image=img/lib/clip_art/computers/Printer_Commercial_128x128.png;flipH=1;",
Image_network_copier_small:"image;image=img/lib/clip_art/computers/Printer_Commercial_128x128.png;",Image_network_copier_large:"image;image=img/lib/clip_art/computers/Printer_Commercial_128x128.png;",Image_network_router:"image;image=img/lib/clip_art/networking/Router_128x128.png;",Image_network_router_wireless:"image;image=img/lib/clip_art/networking/Wireless_Router_128x128.png;",Image_network_ups:"image;image=img/lib/clip_art/networking/UPS_128x128.png;",Image_electronics_lcd:"image;image=img/lib/clip_art/computers/Monitor_128x128.png;",
Image_electronics_pda:"image;image=img/lib/clip_art/telecommunication/Palm_Treo_128x128.png;",Image_electronics_drive_cardreader:"image;image=img/lib/clip_art/finance/Credit_Card_128x128.png;",Image_electronics_camcorder:"image;image=img/lib/clip_art/networking/Ip_Camera_128x128.png;",Image_electronics_printer_photo:"image;image=img/lib/clip_art/computers/Printer_128x128.png;flipH=1;",Image_electronics_drive_firewire:"image;image=img/lib/clip_art/computers/Harddrive_128x128.png;flipH=1;",Image_electronics_drive_usb:"image;image=img/lib/clip_art/computers/Harddrive_128x128.png;flipH=1;",
Image_electronics_modem_external:"image;image=img/lib/clip_art/networking/Modem_128x128.png;flipH=1;",Image_electronics_lcd_wide:"image;image=img/lib/clip_art/computers/Monitor_128x128.png;",EE_Amplifier:"shape=mxgraph.electrical.abstract.amplifier;",EE_OpAmp:"shape=mxgraph.electrical.abstract.operational_amp_1;",EE_ControlledAmp:"shape=mxgraph.electrical.abstract.controlled_amplifier;",EE_Multiplexer:"shape=mxgraph.electrical.abstract.mux;",EE_Demultiplexer:"shape=mxgraph.electrical.abstract.demux;",
EE_Capacitor1:"shape=mxgraph.electrical.capacitors.capacitor_1;",EE_Capacitor2:"shape=mxgraph.electrical.capacitors.capacitor_3;",EE_Diode:"shape=mxgraph.electrical.diodes.diode;",EE_Resistor:"shape=mxgraph.electrical.resistors.resistor_2;",EE_VarResistor:"shape=mxgraph.electrical.resistors.variable_resistor_2;",EE_Potentiometer:"shape=mxgraph.electrical.resistors.potentiometer_2;",EE_ProtGround:"shape=mxgraph.electrical.signal_sources.protective_earth;",EE_SignalGround:"shape=mxgraph.electrical.signal_sources.signal_ground;",
EE_Transformer:"shape=mxgraph.electrical.inductors.transformer_1;",EE_Inductor:"shape=mxgraph.electrical.inductors.inductor_3;","EE_Variable Inductor":"shape=mxgraph.electrical.inductors.variable_inductor;",EE_TwoWaySwitch:"shape=mxgraph.electrical.electro-mechanical.2-way_switch;",EE_OnOffSwitch:"shape=mxgraph.electrical.electro-mechanical.simple_switch;",EE_Loudspeaker:"shape=mxgraph.electrical.electro-mechanical.loudspeaker;",EE_Motor:"shape=mxgraph.electrical.electro-mechanical.motor_1;",EE_LED1:"shape=mxgraph.electrical.opto_electronics.led_2;",
EE_Lightbulb:"shape=mxgraph.electrical.miscellaneous.light_bulb;",EE_AcSource:"strokeWidth=1;shape=mxgraph.electrical.signal_sources.ac_source;",EE_VoltageSource:"shape=mxgraph.electrical.signal_sources.dc_source_3;",EE_CurrentSource:"shape=mxgraph.electrical.signal_sources.dc_source_2;direction=north;",EE_ControlledCurrentSource:"shape=mxgraph.electrical.signal_sources.dependent_source_2;direction=west;",EE_ControlledVoltageSource:"shape=mxgraph.electrical.signal_sources.dependent_source_3;",EE_Vss:"verticalLabelPosition=top;verticalAlign=bottom;shape=mxgraph.electrical.signal_sources.vss2;fontSize=24;",
EE_Vdd:"verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.electrical.signal_sources.vdd;",EE_BJT_NPN1:"shape=mxgraph.electrical.transistors.pnp_transistor_1;",EE_BJT_PNP1:"shape=mxgraph.electrical.transistors.npn_transistor_1;",EE_JFET_P:"shape=mxgraph.electrical.transistors.p-channel_jfet_1;flipV=1;",EE_JFET_N:"shape=mxgraph.electrical.transistors.n-channel_jfet_1;",EE_MOSFET_P1:"shape=mxgraph.electrical.mosfets1.mosfet_ic_p;flipV=1;",EE_MOSFET_P2:"shape=mxgraph.electrical.mosfets1.mosfet_p_no_bulk;",
EE_MOSFET_P3:"shape=mxgraph.electrical.mosfets1.p-channel_mosfet_1;flipV=1;",EE_MOSFET_N1:"shape=mxgraph.electrical.mosfets1.mosfet_ic_n;",EE_MOSFET_N2:"shape=mxgraph.electrical.mosfets1.mosfet_n_no_bulk;",EE_MOSFET_N3:"shape=mxgraph.electrical.mosfets1.n-channel_mosfet_1;",EE_AND:"shape=mxgraph.electrical.logic_gates.and;",EE_OR:"shape=mxgraph.electrical.logic_gates.or;",EE_Inverter:"shape=mxgraph.electrical.logic_gates.inverter;",EE_NAND:"shape=mxgraph.electrical.logic_gates.nand;",EE_NOR:"shape=mxgraph.electrical.logic_gates.nor;",
EE_XOR:"shape=mxgraph.electrical.logic_gates.xor;",EE_NXOR:"shape=mxgraph.electrical.logic_gates.xnor;",EE_DTypeRSFlipFlop:"shape=mxgraph.electrical.logic_gates.d_type_rs_flip-flop;",EE_DTypeFlipFlop:"shape=mxgraph.electrical.logic_gates.d_type_flip-flop;",EE_DTypeFlipFlopWithClear:"shape=mxgraph.electrical.logic_gates.d_type_flip-flop_with_clear;",EE_RSLatch:"shape=mxgraph.electrical.logic_gates.rs_latch;",EE_SyncRSLatch:"shape=mxgraph.electrical.logic_gates.synchronous_rs_latch;",EE_TTypeFlipFlop:"shape=mxgraph.electrical.logic_gates.t_type_flip-flop;",
EE_Plus:"shape=mxgraph.ios7.misc.flagged;",EE_Negative:"shape=line;",EE_InverterContact:"shape=ellipse;",EE_Voltmeter:"shape=mxgraph.electrical.instruments.voltmeter;",EE_Ammeter:"shape=mxgraph.electrical.instruments.ampermeter;",EE_SineWave:"shape=mxgraph.electrical.waveforms.sine_wave;",EE_Sawtooth:"shape=mxgraph.electrical.waveforms.sawtooth;",EE_SquareWave:"shape=mxgraph.electrical.waveforms.square_wave;",EIChannelBlock:"shape=mxgraph.eip.messageChannel;",EIMessageRouterBlock:"shape=mxgraph.eip.content_based_router;",
EIMessageTranslatorBlock:"shape=mxgraph.eip.message_translator;",EIMessagingBridgeBlock:"shape=mxgraph.eip.messaging_bridge;",EIContentBasedRouterBlock:"shape=mxgraph.eip.content_based_router;",EIMessageFilterBlock:"shape=mxgraph.eip.message_filter;",EIDynamicRouterBlock:"shape=mxgraph.eip.dynamic_router;",EIRecipientListBlock:"shape=mxgraph.eip.recipient_list;",EISplitterBlock:"shape=mxgraph.eip.splitter;",EIAggregatorBlock:"shape=mxgraph.eip.aggregator;",EIResequencerBlock:"shape=mxgraph.eip.resequencer;",
EIComposedMessageBlock:"shape=mxgraph.eip.composed_message_processor;",EIRoutingSlipBlock:"shape=mxgraph.eip.routing_slip;",EIProcessManagerBlock:"shape=mxgraph.eip.process_manager;",EIEnvelopeWrapperBlock:"shape=mxgraph.eip.envelope_wrapper;",EIContentEnricherBlock:"shape=mxgraph.eip.content_enricher;",EIContentFilterBlock:"shape=mxgraph.eip.content_filter;",EIClaimCheckBlock:"shape=mxgraph.eip.claim_check;",EINormalizerBlock:"shape=mxgraph.eip.normalizer;",EIMessagingGatewayBlock:"shape=mxgraph.eip.messaging_gateway;",
EITransactionalClientBlock:"shape=mxgraph.eip.transactional_client;",EIPollingConsumerBlock:"shape=mxgraph.eip.polling_consumer;",EIEventDrivenConsumerBlock:"shape=mxgraph.eip.event_driven_consumer;",EICompetingConsumersBlock:"shape=mxgraph.eip.competing_consumers;",EIMessageDispatcherBlock:"shape=mxgraph.eip.message_dispatcher;",EISelectiveConsumerBlock:"shape=mxgraph.eip.selective_consumer;",EIServiceActivatorBlock:"shape=mxgraph.eip.service_activator;",EIDetourBlock:"shape=mxgraph.eip.detour;",
EIWireTapBlock:"shape=mxgraph.eip.wire_tap;",EIMessageStoreBlock:"shape=mxgraph.eip.message_store;",EISmartProxyBlock:"shape=mxgraph.eip.smart_proxy;",EITestMessageBlock:"shape=mxgraph.eip.test_message;",EIChannelPurgerBlock:"shape=mxgraph.eip.channel_purger;",fpWall:"shape=rect;",fpWindow:"shape=mxgraph.floorplan.window;",fpOpening:"shape=rect;",fpDoor:"shape=mxgraph.floorplan.doorLeft;flipV=1;",fpDoubleDoor:"shape=mxgraph.floorplan.doorDouble;flipV=1;",fpStairs:"shape=mxgraph.floorplan.stairs;direction=north;",
fpStairsDirectional:"shape=mxgraph.floorplan.stairs;direction=north;",fpDeskLongSegment:"shape=rect;",fpDeskShortSegment:"shape=rect;rounded=1;",fpDeskLargeCornerSegment:"shape=mxgraph.floorplan.desk_corner;",fpCubiclePanel:"shape=mxgraph.floorplan.wall;wallThickness=3;",fpCubicleWorkstation:"shape=mxgraph.floorplan.wallU;wallThickness=3;",fpCubicleCorner5x5:"shape=mxgraph.floorplan.wallCorner;wallThickness=3;",fpCubicleCorner6x6:"shape=mxgraph.floorplan.wallCorner;wallThickness=3;",fpCubicleCorner8x8:"shape=mxgraph.floorplan.wallCorner;wallThickness=3;",
fpCubicleCorner8x6:"shape=mxgraph.floorplan.wallCorner;wallThickness=3;",fpCubicleCornerOpen6x4:"shape=mxgraph.floorplan.wallCorner;wallThickness=3;",fpCubicleDouble14x8:"shape=mxgraph.floorplan.wallU;wallThickness=3;",fpCubicleEnclosed11x9:"shape=mxgraph.floorplan.wallU;wallThickness=3;",fpTableConferenceOval:"shape=ellipse;",fpTableConferenceBoat:"shape=rect;rounded=1;",fpTableConferenceRectangle:"shape=rect;rounded=1;",fpTableDiningRound:"shape=ellipse;",fpTableDiningSquare:"shape=rect;rounded=1;",
fpChairOffice:"shape=mxgraph.floorplan.office_chair;",fpChairExecutive:"shape=mxgraph.floorplan.office_chair;",fpChairLobby:"shape=mxgraph.floorplan.office_chair;",fpChairDining:"shape=mxgraph.floorplan.chair;",fpChairBarstool:"shape=ellipse;",fpCabinetBasic:"shape=rect;rounded=1;",fpCabinetDoubleWide:"shape=rect;rounded=1;",fpCabinetDoubleWithShelves:"shape=rect;rounded=1;",fpCabinetShelvesBasic:"shape=rect;rounded=1;",fpCabinetShelvesDouble:"shape=rect;rounded=1;",fpCabinetBasicWithShelves:"shape=rect;rounded=1;",
fpCabinetsAboveDeskShelves:"shape=rect;rounded=1;",fpRestroomToiletPrivate:"shape=mxgraph.floorplan.toilet;",fpRestroomToiletPublic:"shape=mxgraph.floorplan.toilet;",fpRestroomBathtub:"shape=mxgraph.floorplan.bathtub;direction=south;",fpRestroomShower:"shape=mxgraph.floorplan.shower;flipH=1;",fpRestroomPedastalSink:"shape=mxgraph.floorplan.sink_1;",fpRestroomCountertop:"shape=rect;rounded=1;",fpRestroomMirror:"shape=line;strokeWidth=3;",fpBedDouble:"shape=mxgraph.floorplan.bed_double;",fpBedSingle:"shape=mxgraph.floorplan.bed_single;",
fpBedQueen:"shape=mxgraph.floorplan.bed_double;",fpBedKing:"shape=mxgraph.floorplan.bed_double;",fpBedDoubleWithTrundle:"shape=mxgraph.floorplan.bed_double;",fpBedBunk:"shape=mxgraph.floorplan.bed_double;",fpBedBassinet:"shape=mxgraph.pid.fittings.compensator;",fpApplianceWasher:"shape=rect;",fpApplianceDryer:"shape=rect;",fpApplianceWaterHeater:"shape=ellipse;",fpApplianceStoveOven:"shape=mxgraph.floorplan.range_1;",fpStoveOvenSixBurner:"shape=mxgraph.floorplan.range_2;",fpApplianceDishwasher:"shape=rect;",
fpKitchenSink:"shape=mxgraph.floorplan.sink_2;",fpKitchenDoubleSink:"shape=mxgraph.floorplan.sink_double;",fpKitchenCountertop:"shape=rect;rounded=1;",fpKitchenCountertopCorner:"shape=mxgraph.floorplan.desk_corner;",fpCouchLoveSeat:"shape=mxgraph.floorplan.couch;",fpCouchSofa:"shape=mxgraph.floorplan.couch;",fpCouchOttoman:"shape=rect;rounded=1;",fpMiscDesktopComputer:"shape=mxgraph.floorplan.workstation;",fpMiscLaptopComputer:"shape=mxgraph.floorplan.laptop;",fpComputerMonitor:"shape=mxgraph.floorplan.flat_tv;",
fpCRTTelevision:"shape=mxgraph.floorplan.flat_tv;",fpMiscIndoorPlant:"shape=mxgraph.floorplan.plant;",fpPiano:"shape=mxgraph.floorplan.piano;",PEAxialCompressor:"shape=mxgraph.pid.compressors.centrifugal_compressor_-_turbine_driven;",PECentrifugalCompressor:"shape=mxgraph.pid.compressors.centrifugal_compressor",PECentrifugalCompressor2:"shape=mxgraph.pid.compressors.centrifugal_compressor_-_turbine_driven;",PEReciprocationCompressor:"shape=mxgraph.pid.compressors.reciprocating_compressor;",PERotaryCompressorBlock:"shape=mxgraph.pid.compressors.rotary_compressor;",
PERotaryCompressor2Block:"shape=mxgraph.pid.compressors.compressor_and_silencers;",PEConveyorBlock:"shape=mxgraph.pid2misc.conveyor;",PEElevator1Block:"shape=mxgraph.pid.misc.bucket_elevator;flipH=1;",PEAgitatorMixerBlock:"shape=mxgraph.pid.agitators.agitator_(propeller);",PEDrumBlock:"shape=mxgraph.pid.vessels.drum_or_condenser;",PETankEquipmentBlock:"mxgraph.pid.vessels.tank;",PEMixingReactorBlock:"shape=mxgraph.pid.vessels.mixing_reactor;",PEPlateTowerBlock:"shape=mxgraph.pid2misc.column;columnType=baffle;",
PEPackedTowerBlock:"shape=mxgraph.pid2misc.column;columnType=fixed;",PEFurnaceBlock:"shape=mxgraph.pid.vessels.furnace;",PEMidArrow:"shape=triangle;",PEButtWeld:"shape=mxgraph.sysml.x;",PETopToTop:"shape=mxgraph.pid.vessels.container,_tank,_cistern;",PENuclear:"shape=mxgraph.electrical.waveforms.sine_wave;",PEMechanicalLink:"shape=ellipse;",PESolderedSolvent:"shape=ellipse;",PEDoubleContainment:"shape=hexagon;",PEFlange:"shape=mxgraph.pid.piping.double_flange;",PEFlange2:"shape=mxgraph.pid.piping.flange_in;flipH=1;",
PEEndCap:"shape=mxgraph.pid.piping.cap;",PEEndCap2:"shape=mxgraph.pid.vessels.container,_tank,_cistern;direction=north;",PEBreather:"shape=mxgraph.pid.piping.breather;",PEElectronicallyInsulated:"shape=mxgraph.pid.piping.double_flange;",PEReducer:"shape=mxgraph.pid.piping.concentric_reducer;",PEInlineMixer:"shape=mxgraph.pid.piping.in-line_mixer;",PEFlameArrester:"shape=mxgraph.pid.piping.flame_arrestor;",PEDetonationArrester:"shape=mxgraph.pid.piping.detonation_arrestor;",PETriangleSeparator:"shape=triangle;direction=west;",
PETundish:"shape=mxgraph.ios7.misc.left;",PEOpenVent:"shape=mxgraph.pid.vessels.vent_(bent);",PERemovableSpool:"shape=mxgraph.pid.piping.removable_spool;",PEYTypeStrainer:"shape=mxgraph.pid.piping.y-type_strainer;",PEDiverterValve:"shape=mxgraph.pid.piping.diverter_valve;",PEPulsationDampener:"shape=mxgraph.pid.piping.pulsation_dampener;",PEDuplexStrainer:"shape=mxgraph.pid.piping.duplex_strainer;",PEBasketStrainer:"shape=mxgraph.pid.piping.basket_strainer;",PEVentSilencer:"shape=mxgraph.pid.piping.vent_silencer;",
PEInlineSilencer:"shape=mxgraph.pid.piping.in-line_silencer;",PESteamTrap:"shape=mxgraph.pid.piping.steam_trap;",PEDesuperheater:"shape=mxgraph.pid.piping.desuper_heater;",PEEjectorOrEductor:"shape=mxgraph.pid.fittings.injector;",PEExhaustHead:"shape=mxgraph.pid.piping.exhaust_head;",PERotaryValve:"shape=mxgraph.pid.piping.rotary_valve;",PEExpansionJoint:"shape=mxgraph.pid.piping.expansion_joint;",PEVesselBlock:"shape=rect;",PEOpenTankBlock:"shape=mxgraph.pid.vessels.container,_tank,_cistern;",PEClosedTankBlock:"shape=rect;",
PEStorageSphereBlock:"shape=mxgraph.pid.vessels.storage_sphere;",PEColumnBlock:"shape=mxgraph.pid.vessels.pressurized_vessel;",PEBagBlock:"shape=mxgraph.pid.vessels.bag;",PEGasCylinderBlock:"shape=mxgraph.pid.vessels.gas_bottle;",PEGasHolderBlock:"shape=mxgraph.pid.vessels.gas_holder;",PEClarifierBlock:"shape=mxgraph.pid.vessels.bunker_(conical_bottom);",PETrayColumnBlock:"shape=mxgraph.pid2misc.column;columnType=tray;",PEReactionVesselBlock:"shape=mxgraph.pid.vessels.reactor;",PEBin:"shape=mxgraph.pid.vessels.tank_(conical_bottom);",
PEDomeRoofTank:"shape=mxgraph.pid.vessels.tank_(dished_roof);",PEConeRoofTank:"shape=mxgraph.pid.vessels.tank_(conical_roof);",PEBoilerBlock:"shape=mxgraph.pid.misc.boiler_(dome);",PEEquipmentBoilerBlock:"shape=mxgraph.pid.misc.boiler_(dome);",PEReboilerBlock:"shape=mxgraph.pid.heat_exchangers.reboiler;",PECondenserBlock:"shape=mxgraph.pid.heat_exchangers.heat_exchanger_(straight_tubes);",PEEquipmentCondenserBlock:"shape=mxgraph.pid.heat_exchangers.condenser;",PECoolingTowerBlock:"shape=mxgraph.pid.misc.cooling_tower;",
PEHeatExchangerBlock:"shape=mxgraph.pid.heat_exchangers.shell_and_tube_heat_exchanger_1;",PEHairpinExchangerBlock:"shape=mxgraph.pid.heat_exchangers.hairpin_exchanger;",PEPlateAndFrameHeatExchangerBlock:"shape=mxgraph.pid.heat_exchangers.plate_and_frame_heat_exchanger;",PESpiralHeatExchanger:"shape=mxgraph.pid.heat_exchangers.spiral_heat_exchanger;",PEUTubeHeatExchangerBlock:"shape=mxgraph.pid.heat_exchangers.u-tube_heat_exchanger;",PEDoublePipeHeatBlock:"shape=mxgraph.pid.heat_exchangers.double_pipe_heat_exchanger;",
PEShellAndTubeHeat1Block:"shape=mxgraph.pid.heat_exchangers.shell_and_tube_heat_exchanger_1;",PEShellAndTubeHeat2Block:"shape=mxgraph.pid.heat_exchangers.shell_and_tube_heat_exchanger_2;",PEShellAndTubeHeat3Block:"shape=mxgraph.pid.heat_exchangers.shell_and_tube_heat_exchanger_1;direction=north;",PESinglePassHeatBlock:"shape=mxgraph.pid.heat_exchangers.single_pass_heat_exchanger;",PEHeaterBlock:"shape=mxgraph.pid.heat_exchangers.heater;",PEEjectorInjectorBlock:"shape=mxgraph.pid.fittings.injector;",
PECompressorTurbineBlock:"shape=mxgraph.pid.engines.turbine;flipH=1;",PETripleFanBlades2Block:"shape=mxgraph.pid2misc.fan;fanType=common;",PEFanBlades2Block:"shape=mxgraph.pid2misc.fan;fanType=common;",PECentrifugalPumpBlock:"shape=mxgraph.pid.pumps.centrifugal_pump_1;",PECentrifugalPump:"shape=mxgraph.pid.pumps.centrifugal_pump_1;",PECentrifugalPump2:"shape=mxgraph.pid.pumps.centrifugal_pump_2;",PECentrifugalPump3:"shape=mxgraph.pid.pumps.centrifugal_pump_1;flipH=1;",PEGearPumpBlock:"shape=mxgraph.pid.pumps.gear_pump;",
PEHorizontalPump:"shape=mxgraph.pid.pumps.horizontal_pump;",PEProgressiveCavityPump:"shape=mxgraph.pid.pumps.cavity_pump;flipH=1;flipV=1;",PEScrewPump:"shape=mxgraph.pid.pumps.screw_pump;",PEScrewPump2:"shape=mxgraph.pid.pumps.screw_pump_2;flipH=1;",PESumpPump:"shape=mxgraph.pid.pumps.sump_pump;",PEVacuumPump:"shape=mxgraph.pid.pumps.vacuum_pump;",PEVerticalPump:"shape=mxgraph.pid.pumps.vertical_pump;",PEVerticalPump2:"shape=mxgraph.pid.pumps.vertical_pump;",PEIndicatorBlock:"shape=mxgraph.pid2inst.discInst;mounting=room;",
PEIndicator2Block:"shape=mxgraph.pid2inst.indicator;mounting=room;indType=inst;",PEIndicator3Block:"shape=mxgraph.pid2inst.discInst;mounting=field;",PEIndicator4Block:"shape=mxgraph.pid2inst.indicator;mounting=field;indType=inst;",PESharedIndicatorBlock:"shape=mxgraph.pid2inst.sharedCont;mounting=room;",PESharedIndicator2Block:"shape=mxgraph.pid2inst.indicator;mounting=room;indType=ctrl;",PEProgrammableIndicatorBlock:"shape=mxgraph.pid2inst.progLogCont;mounting=room;",PEGateValveBlock:"shape=mxgraph.pid2valves.valve;valveType=gate;",
PEGlobeValveBlock:"shape=mxgraph.pid2valves.valve;valveType=globe;",PEControlValveBlock:"shape=mxgraph.pid2valves.valve;valveType=gate;actuator=diaph;",PENeedleValveBlock:"shape=mxgraph.pid2valves.valve;valveType=needle;",PEButterflyValve2Block:"shape=mxgraph.pid2valves.valve;valveType=butterfly;",PEDiaphragmBlock:"shape=mxgraph.pid2valves.valve;valveType=ball;",PECheckValveBlock:"shape=mxgraph.pid2valves.valve;valveType=check;",PECheckValve2Block:"shape=mxgraph.pid2valves.valve;valveType=check;",
PEAngleValveBlock:"shape=mxgraph.pid2valves.valve;valveType=angle;actuator=none;",PEAngleGlobeValveBlock:"shape=mxgraph.pid2valves.valve;valveType=angleGlobe;actuator=man;flipH=1;",PEPoweredValveBlock:"shape=mxgraph.pid2valves.valve;valveType=gate;actuator=digital;",PEFloatOperatedValveBlock:"shape=mxgraph.pid2valves.valve;valveType=gate;actuator=singActing;",PEThreeWayValveBlock:"shape=mxgraph.pid2valves.valve;valveType=threeWay;actuator=none;",PEBleederValveBlock:"shape=mxgraph.pid2valves.blockBleedValve;actuator=none;",
PERotameterBlock:"shape=mxgraph.pid.flow_sensors.rotameter;flipH=1;",VennGradientColor1:"shape=ellipse;",VennGradientColor2:"shape=ellipse;",VennGradientColor3:"shape=ellipse;",VennGradientColor4:"shape=ellipse;",VennGradientColor5:"shape=ellipse;",VennGradientColor6:"shape=ellipse;",VennGradientColor7:"shape=ellipse;",VennGradientColor8:"shape=ellipse;",VennPlainColor1:"shape=ellipse;",VennPlainColor2:"shape=ellipse;",VennPlainColor3:"shape=ellipse;",VennPlainColor4:"shape=ellipse;",VennPlainColor5:"shape=ellipse;",
VennPlainColor6:"shape=ellipse;",VennPlainColor7:"shape=ellipse;",VennPlainColor8:"shape=ellipse;",iOS7DeviceiPhone5Portrait:"shape=mxgraph.ios.iPhone;bgStyle=bgGreen;",iOS7DeviceiPhone5Landscape:"shape=mxgraph.ios.iPhone;bgStyle=bgGreen;",iOS7DeviceiPadPortrait:"shape=mxgraph.ios.iPad;bgStyle=bgGreen;",iOS7DeviceiPadLandscape:"shape=mxgraph.ios.iPad;bgStyle=bgGreen;",iOS7DeviceiPhone6Portrait:"shape=mxgraph.ios.iPhone;bgStyle=bgGreen;",iOS7DeviceiPhone6Landscape:"shape=mxgraph.ios.iPhone;bgStyle=bgGreen;",
iOS7DeviceiPhone6PlusPortrait:"shape=mxgraph.ios.iPhone;bgStyle=bgGreen;",iOS7DeviceiPhone6PlusLandscape:"shape=mxgraph.ios.iPhone;bgStyle=bgGreen;",iOS7StatusBariPhone:"shape=mxgraph.ios7ui.appBar;",iOS7iPhoneKeyboard:"shape=mxgraph.ios7.misc.keyboard_(letters);",iOS7StatusBariPad:"shape=mxgraph.ios7ui.appBar;",iOS7iPadKeyboard:"shape=mxgraph.ios7.misc.keyboard_(letters);",iOS7ProgressBar:"shape=mxgraph.ios7ui.downloadBar;",iOS7Slider:"shape=mxgraph.ios7ui.searchBox;",iOS7SearchBar:"shape=mxgraph.ios7ui.searchBox;",
iOS7Button:"shape=rect;",iOS7TextField:"shape=rect;",iOS7TextView:"shape=rect;",iOS7Toggle:"shape=mxgraph.ios7ui.onOffButton;buttonState=on;strokeColor=#38D145;strokeColor2=#aaaaaa;fillColor=#38D145;fillColor2=#ffffff;",iOS7Stepper:"shape=mxgraph.ios7.misc.adjust;fillColor=#ffffff;gradientColor=none;",iOS7PageControls:"shape=mxgraph.ios7ui.pageControl;fillColor=#666666;strokeColor=#bbbbbb;",iOS7Block:"shape=rect;","iOS7IconArrow left":"shape=mxgraph.ios7.misc.left;",iOS7IconArrow:"shape=mxgraph.ios7.misc.right;",
"iOS7IconArrow up":"shape=mxgraph.ios7.misc.up;","iOS7IconArrow down":"shape=mxgraph.ios7.misc.down;",iOS7IconWifi:"shape=mxgraph.ios7.icons.wifi;",iOS7IconBluetooth:"shape=mxgraph.ios7.icons.bluetooth;",iOS7IconBattery:"shape=mxgraph.ios7.icons.battery;",iOS7IconSiri:"shape=mxgraph.ios7.icons.microphone;",iOS7IconCheck:"shape=mxgraph.ios7.icons.select;",iOS7IconCreate:"shape=mxgraph.ios7.icons.add;",iOS7IconInfo:"shape=mxgraph.ios7.icons.info;",iOS7IconLocation:"shape=mxgraph.ios7.icons.location_2;",
iOS7IconQuestion:"shape=mxgraph.ios7.icons.help;",iOS7IconSearch:"shape=mxgraph.ios7.icons.looking_glass;",iOS7IconToolbox:"shape=mxgraph.ios7.icons.briefcase;",iOS7IconOptions:"shape=mxgraph.ios7.icons.options;",iOS7IconShare:"shape=mxgraph.ios7.icons.share;",iOS7IconTyping:"shape=mxgraph.ios7.icons.message;",iOS7IconCopy:"shape=mxgraph.ios7.icons.folders_2;",iOS7IconChat:"shape=mxgraph.ios7.icons.messages;",iOS7IconOrganize:"shape=mxgraph.ios7.icons.folder;",iOS7IconTrash:"shape=mxgraph.ios7.icons.trashcan;",
iOS7IconReply:"shape=mxgraph.ios7.icons.back;",iOS7IconArchive:"shape=mxgraph.ios7.icons.box;",iOS7IconCompose:"shape=mxgraph.ios7.icons.compose;",iOS7IconSend:"shape=mxgraph.ios7.icons.pointer;",iOS7IconDrawer:"shape=mxgraph.ios7.icons.storage;",iOS7IconMail:"shape=mxgraph.ios7.icons.mail;",iOS7IconDocument:"shape=mxgraph.ios7.icons.document;",iOS7IconFlag:"shape=mxgraph.ios7.icons.flag;",iOS7IconBookmarks:"shape=mxgraph.ios7.icons.book;",iOS7IconGlasses:"shape=mxgraph.ios7.icons.glasses;",iOS7IconFiles:"shape=mxgraph.ios7.icons.folders;",
iOS7IconDownloads:"shape=mxgraph.ios7.icons.down;",iOS7IconLock:"shape=mxgraph.ios7.icons.locked;",iOS7IconCloud:"shape=mxgraph.ios7.icons.cloud;","iOS7IconOrientation Lock":"shape=mxgraph.ios7.icons.orientation_lock;",iOS7IconContacts:"shape=mxgraph.ios7.icons.user;",iOS7IconGlobal:"shape=mxgraph.ios7.icons.globe;",iOS7IconSettings:"shape=mxgraph.ios7.icons.settings;",iOS7IconAirplay:"shape=mxgraph.ios7.icons.move_to_folder;",iOS7IconCamera:"shape=mxgraph.ios7.icons.camera;",iOS7IconAirplane:"shape=mxgraph.signs.transportation.airplane_6;direction=south;",
iOS7IconCalculator:"shape=mxgraph.ios7.icons.calculator;",iOS7IconPreferences:"shape=mxgraph.ios7.icons.most_viewed;",iOS7IconPhone:"shape=mxgraph.signs.tech.telephone_3;",iOS7IconKeypad:"shape=mxgraph.ios7.icons.keypad;",iOS7IconVoicemail:"shape=mxgraph.ios7.icons.tape;",iOS7IconStar:"shape=mxgraph.ios7.icons.star;","iOS7IconMost Viewed":"shape=mxgraph.ios7.icons.most_viewed;",iOS7IconVideo:"shape=mxgraph.ios7.icons.video_conversation;","iOS7IconVolumne Controls":"shape=mxgraph.ios7.icons.volume;",
"iOS7IconLocation pin":"shape=mxgraph.ios7.icons.location;",iOS7IconCalendar:"shape=mxgraph.ios7.icons.calendar;",iOS7IconAlarm:"shape=mxgraph.ios7.icons.alarm_clock;",iOS7IconClock:"shape=mxgraph.ios7.icons.clock;",iOS7IconTimer:"shape=mxgraph.ios7.icons.gauge;","iOS7IconVolume down":"shape=mxgraph.ios7.icons.silent;",iOS7IconVolume:"shape=mxgraph.ios7.icons.volume_2;","iOS7IconVolume up":"shape=mxgraph.ios7.icons.loud;",iOS7IconRepeat:"shape=mxgraph.ios7.icons.reload;",iOS7IconRewind:"shape=mxgraph.ios7.icons.backward;",
iOS7IconPlay:"shape=mxgraph.ios7.icons.play;",iOS7IconPause:"shape=mxgraph.ios7.icons.pause;","iOS7IconFast forward":"shape=mxgraph.ios7.icons.forward;",iOS7IconControls:"shape=mxgraph.ios7.icons.controls;",iOS7IconPrivacy:"shape=mxgraph.ios7.icons.privacy;",iOS7IconLink:"shape=mxgraph.ios7.icons.link;",iOS7IconLight:"shape=mxgraph.ios7.icons.flashlight;",iOS7IconBrightness:"shape=mxgraph.ios7.icons.sun;",iOS7IconHeart:"shape=mxgraph.ios7.icons.heart;",iOS7IconJava:"shape=mxgraph.ios7.icons.cup;",
iOS7IconBox:"shape=mxgraph.ios7.icons.bag;",iOS7IconEye:"shape=mxgraph.ios7.icons.eye;","iOS7IconDo not disturb":"shape=mxgraph.ios7.icons.moon;",UI2BrowserBlock:"shape=mxgraph.mockup.containers.browserWindow;mainText=,;",UI2WindowBlock:"shape=mxgraph.mockup.containers.window;strokeColor2=#008cff;strokeColor3=#c4c4c4;fontColor=#666666;mainText=;",UI2AreaBlock:"shape=rect;",UI2ElementBlock:"shape=rect;",UI2VScrollBlock:"shape=mxgraph.mockup.navigation.scrollBar;direction=north;",UI2HScrollBlock:"shape=mxgraph.mockup.navigation.scrollBar;",
UI2VerticalSplitterBlock:"shape=mxgraph.mockup.forms.splitter;direction=north;",UI2HorizontalSplitterBlock:"shape=mxgraph.mockup.forms.splitter;",UI2ImageBlock:"shape=mxgraph.mockup.graphics.simpleIcon;",UI2VideoBlock:"shape=mxgraph.mockup.containers.videoPlayer;barHeight=30;",UI2AudioBlock:"shape=mxgraph.mockup.misc.playbackControls;",UI2MapBlock:"shape=mxgraph.mockup.misc.map;",UI2BarChartBlock:"shape=mxgraph.mockup.graphics.barChart;strokeColor=none;strokeColor2=none;",UI2ColumnChartBlock:"shape=mxgraph.mockup.graphics.columnChart;strokeColor=none;strokeColor2=none;",
UI2LineChartBlock:"shape=mxgraph.mockup.graphics.lineChart;strokeColor=none;",UI2PieChartBlock:"shape=mxgraph.mockup.graphics.pieChart;parts=10,20,35;",UI2WebcamBlock:"shape=mxgraph.mockup.containers.userMale;",UI2CaptchaBlock:"shape=mxgraph.mockup.text.captcha;mainText=;",UI2ButtonBlock:"shape=rect;rounded=1;",UI2ColorPickerBlock:"shape=mxgraph.mockup.forms.colorPicker;chosenColor=#aaddff;",UI2TextInputBlock:"shape=rect;rounded=1;",UI2SelectBlock:"shape=mxgraph.mockup.forms.comboBox;strokeColor=#999999;fillColor=#ddeeff;align=left;fillColor2=#aaddff;mainText=;fontColor=#666666;",
UI2VSliderBlock:"shape=mxgraph.mockup.forms.horSlider;sliderStyle=basic;sliderPos=20;handleStyle=circle;direction=north;",UI2HSliderBlock:"shape=mxgraph.mockup.forms.horSlider;sliderStyle=basic;sliderPos=20;handleStyle=circle;",UI2SearchBlock:"shape=mxgraph.mockup.forms.searchBox;mainText=;flipH=1;",UI2NumericStepperBlock:"shape=mxgraph.mockup.forms.spinner;spinLayout=right;spinStyle=normal;adjStyle=triangle;fillColor=#000000;mainText=;",UI2AtoZBlock:"shape=mxgraph.mockup.text.alphanumeric;linkText=;fontStyle=4;",
UI2PaginationBlock:"shape=mxgraph.mockup.navigation.pagination;linkText=;fontStyle=4;",UI2PlaybackControlsBlock:"shape=mxgraph.mockup.misc.playbackControls;fillColor=#ffffff;strokeColor=#999999;fillColor2=#99ddff;strokeColor2=none;fillColor3=#ffffff;strokeColor3=none;",Image_ui_formatting_toolbar:"shape=mxgraph.mockup.menus_and_buttons.font_style_selector_2;",UI2ProgressBarBlock:"shape=mxgraph.mockup.misc.progressBar;fillColor2=#888888;barPos=25;",UI2HelpIconBlock:"shape=mxgraph.mockup.misc.help_icon;",
UI2BraceNoteBlock:"shape=mxgraph.mockup.markup.curlyBrace;direction=north;",UI2TooltipBlock:"shape=mxgraph.basic.rectangular_callout;flipV=1;",UI2CalloutBlock:"shape=ellipse;",Image_ipad_ipad:"shape=mxgraph.ios.iPad;bgStyle=bgGreen;",iPadGrayBackgroundBlock:"shape=rect;",Image_ipad_top_bar:"shape=mxgraph.ios.iTopBar2;opacity=50;fillColor=#999999;strokeColor=#cccccc;",Image_ipad_search:"shape=mxgraph.mockup.forms.searchBox;mainText=;flipH=1;",Image_ipad_popover:"shape=mxgraph.ios.iOption;barPos=50;pointerPos=top;buttonText=;",
Image_ipad_button_black:"shape=rect;roudned=1;",Image_ipad_button_blue:"shape=rect;roudned=1;",Image_ipad_button_grayblue:"shape=rect;roudned=1;",Image_ipad_button_red:"shape=rect;roudned=1;",Image_ipad_back_button_gray:"shape=mxgraph.ios.iButtonBack;buttonText=;fillColor=#eeeeee;fillColor2=#aaaaaa;",Image_ipad_back_button_black:"shape=mxgraph.ios.iButtonBack;buttonText=;fillColor=#888888;fillColor2=#000000;",Image_ipad_sort_handle:"shape=mxgraph.ios7.icons.options;",Image_ipad_dropdown:"shape=mxgraph.ios.iComboBox;buttonText=;fillColor=#dddddd;fillColor2=#3D5565;",
Image_ipad_email_name:"shape=rect;rounded=1;",Image_ipad_prev_next:"shape=mxgraph.ios.iPrevNext;strokeColor=#444444;fillColor=#dddddd;fillColor2=#3D5565;fillColor3=#ffffff;",Image_ipad_keyboard_portrait:"shape=mxgraph.ios.iKeybLett;",Image_ipad_keyboard_landscape:"shape=mxgraph.ios.iKeybLett;",Image_ipad_slider:"shape=mxgraph.ios.iSlider;barPos=20;",Image_ipad_add_icon_blue:"shape=mxgraph.ios.iAddIcon;fillColor=#8BbEff;fillColor2=#135Ec8;strokeColor=#ffffff;",Image_ipad_add_icon_green:"shape=mxgraph.ios.iAddIcon;fillColor=#7AdF78;fillColor2=#1A9917;strokeColor=#ffffff;",
Image_ipad_remove_icon:"shape=mxgraph.ios.iDeleteIcon;fillColor=#e8878E;fillColor2=#BD1421;strokeColor=#ffffff;",Image_ipad_arrow_icon:"shape=mxgraph.ios.iArrowIcon;fillColor=#8BbEff;fillColor2=#135Ec8;strokeColor=#ffffff;",Image_ipad_arrow:"shape=mxgraph.ios7.misc.more;",Image_ipad_checkmark:"shape=mxgraph.ios7.misc.check;",Image_ipad_check_off:"shape=ellipse;",Image_ipad_location_dot:"shape=ellipse;",Image_ipad_mark_as_read:"shape=ellipse;",Image_ipad_pin_green:"shape=mxgraph.ios.iPin;fillColor2=#00dd00;fillColor3=#004400;strokeColor=#006600;",
Image_ipad_pin_red:"shape=mxgraph.ios.iPin;fillColor2=#dd0000;fillColor3=#440000;strokeColor=#660000;",Image_ipad_radio_off:"shape=ellipse;",Image_ipad_checkbox_off:"shape=rect;rounded=1;",Image_ipad_indicator:"shape=rect;rounded=1;fillColor=#e8878E;gradientColor=#BD1421;strokeColor=#ffffff;",Image_iphone_iphone_4:"shape=mxgraph.ios.iPhone;bgStyle=bgGreen;",Image_iphone_bg_black:"shape=rect;",Image_iphone_bg_gray:"shape=rect;",Image_iphone_bg_stripe_drk:"shape=mxgraph.ios.iBgStriped;strokeColor=#18211b;fillColor=#5D7585;strokeColor2=#657E8F;",
Image_iphone_bg_stripe_lt:"shape=mxgraph.ios.iBgStriped;strokeColor=#18211b;fillColor=#5D7585;strokeColor2=#657E8F;",Image_iphone_bg_white:"shape=rect;",Image_iphone_top_bar_app:"shape=mxgraph.ios.iAppBar;",Image_iphone_top_bar_home:"shape=mxgraph.ios.iTopBar2;opacity=50;fillColor=#999999;strokeColor=#cccccc;strokeWidth=1;",Image_iphone_bar_top:"shape=rect;",Image_iphone_bar_semi_trans_black:"shape=rect;",Image_iphone_bar_semi_trans_blue:"shape=rect;",Image_iphone_search:"shape=mxgraph.mockup.forms.searchBox;mainText=;flipH=1;",
Image_iphone_gray_grad_list:"shape=rect;rounded=1;",Image_iphone_alpha_list:"shape=mxgraph.ios.iAlphaList;",Image_iphone_button_black:"shape=rect;rounded=1;",Image_iphone_button_blue:"shape=rect;rounded=1;",Image_iphone_button_grayblue:"shape=rect;rounded=1;",Image_iphone_button_red:"shape=rect;rounded=1;",Image_iphone_button_lg_light:"shape=rect;rounded=1;",Image_iphone_button_lg_dark:"shape=rect;rounded=1;",Image_iphone_button_lg_green:"shape=rect;rounded=1;",Image_iphone_button_lg_red:"shape=rect;rounded=1;",
Image_iphone_button_lg_yellow:"shape=rect;rounded=1;",Image_iphone_button_xl_green:"shape=rect;rounded=1;",Image_iphone_back_button:"shape=mxgraph.ios.iButtonBack;strokeColor=#444444;buttonText=;fillColor=#dddddd;fillColor2=#3D5565;",Image_iphone_prev_next:"shape=mxgraph.ios.iPrevNext;strokeColor=#444444;fillColor=#dddddd;fillColor2=#3D5565;fillColor3=#ffffff;",Image_iphone_sort_handle:"shape=mxgraph.ios7.icons.options;",Image_iphone_slider:"shape=mxgraph.ios.iSlider;barPos=60;",Image_iphone_dropdown:"shape=mxgraph.ios.iComboBox;buttonText=;fillColor=#dddddd;fillColor2=#3D5565;",
Image_iphone_email_name:"shape=rect;rounded=1;",Image_iphone_switch_off:"shape=mxgraph.android.switch_off;fillColor=#666666;",Image_iphone_keyboard_button_blue:"shape=rect;rounded=1;",Image_iphone_keyboard_letters:"shape=mxgraph.ios.iKeybLett;",Image_iphone_keyboard_landscape:"shape=mxgraph.ios.iKeybLett;",Image_iphone_add_icon_blue:"shape=mxgraph.ios.iAddIcon;fillColor=#8BbEff;fillColor2=#135Ec8;strokeColor=#ffffff;",Image_iphone_add_icon_green:"shape=mxgraph.ios.iAddIcon;fillColor=#7AdF78;fillColor2=#1A9917;strokeColor=#ffffff;",
Image_iphone_remove_icon:"shape=mxgraph.ios.iDeleteIcon;fillColor=#e8878E;fillColor2=#BD1421;strokeColor=#ffffff;",Image_iphone_arrow_icon:"shape=mxgraph.ios.iArrowIcon;fillColor=#8BbEff;fillColor2=#135Ec8;strokeColor=#ffffff;",Image_iphone_arrow:"shape=mxgraph.ios7.misc.more;",Image_iphone_checkmark:"shape=mxgraph.ios7.misc.check;",Image_iphone_check_off:"shape=ellipse;",Image_iphone_location_dot:"shape=ellipse;",Image_iphone_mark_as_read:"shape=ellipse;",Image_iphone_pin_green:"shape=mxgraph.ios.iPin;fillColor2=#00dd00;fillColor3=#004400;strokeColor=#006600;",
Image_iphone_pin_red:"shape=mxgraph.ios.iPin;fillColor2=#dd0000;fillColor3=#440000;strokeColor=#660000;",Image_iphone_radio_off:"shape=ellipse;",Image_iphone_checkbox_off:"shape=rect;rounded=1;",Image_iphone_indicator:"shape=rect;rounded=1;fillColor=#e8878E;gradientColor=#BD1421;strokeColor=#ffffff;",Image_iphone_thread_count:"shape=rect;rounded=1;"};EditorUi.prototype.pasteLucidChart=function(a,c,d,b){var f=this.editor.graph;f.getModel().beginUpdate();try{var h=function(a,b){var e=null!=b.Endpoint1.Block?
p[b.Endpoint1.Block]:null,h=null!=b.Endpoint2.Block?p[b.Endpoint2.Block]:null,g=new mxCell("",new mxGeometry(0,0,100,100),"html=1;");g.geometry.relative=!0;g.edge=!0;v(g,a);var m=n(a).Properties,m=null!=m?m.TextAreas:a.TextAreas;if(null!=m)for(var l=0;null!=m["t"+l];){var m=m["t"+l],k=2*(parseFloat(m.Location)-.5),k=new mxCell(u(m),new mxGeometry(k,0,0,0),"text;html=1;resizable=0;align=center;verticalAlign=middle;labelBackgroundColor=#ffffff;");k.geometry.relative=!0;k.vertex=!0;g.insert(k);l++}null==
e&&null!=b.Endpoint1&&g.geometry.setTerminalPoint(new mxPoint(Math.round(.6*b.Endpoint1.x+c),Math.round(.6*b.Endpoint1.y+d)),!0);null==h&&null!=b.Endpoint2&&g.geometry.setTerminalPoint(new mxPoint(Math.round(.6*b.Endpoint2.x+c),Math.round(.6*b.Endpoint2.y+d)),!1);q.push(f.addCell(g,null,null,e,h))},q=[],p={},k=[];if(null!=a.Blocks)for(var r in a.Blocks){var e=a.Blocks[r];e.id=r;p[e.id]=w(e);k.push(e)}else for(var g=0;g<a.Objects.length;g++)e=a.Objects[g],e.IsBlock&&null!=e.Action&&null!=e.Action.Properties&&
(p[e.id]=w(e)),k.push(e);k.sort(function(a,b){a=n(a);b=n(b);return null!=a.Properties&&null!=b.Properties?a.Properties.ZOrder-b.Properties.ZOrder:0});for(g=0;g<k.length;g++){var e=k[g],l=p[e.id];null!=l?q.push(f.addCell(l)):e.IsLine&&null!=e.Action&&null!=e.Action.Properties&&h(e,e.Action.Properties)}if(null!=a.Lines)for(r in a.Lines)e=a.Lines[r],h(e,e);if(b&&null!=c&&null!=d){f.isGridEnabled()&&(c=f.snap(c),d=f.snap(d));var t=f.getBoundingBoxFromGeometry(q,!0);null!=t&&f.moveCells(q,c-t.x,d-t.y)}f.setSelectionCells(q)}finally{f.getModel().endUpdate()}f.isSelectionEmpty()||
(f.scrollCellToVisible(f.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(f.view.getState(f.getSelectionCell())))}})();

View file

@ -3293,6 +3293,11 @@ EditorUi.prototype.executeLayout = function(exec, animate, post)
else
{
graph.getModel().endUpdate();
if (post != null)
{
post();
}
}
}
}

View file

@ -870,15 +870,15 @@ Graph.prototype.minFitScale = null;
Graph.prototype.maxFitScale = null;
/**
* Sets the policy for links. Possible values are self to keep all links within
* the same window, blank to open all links in a new window and auto (default).
* Sets the policy for links. Possible values are "self" to replace any framesets,
* "blank" to load the URL in <linkTarget> and "auto" (default).
*/
Graph.prototype.linkPolicy = urlParams['target'] || 'auto';
Graph.prototype.linkPolicy = (urlParams['target'] == 'frame') ? 'blank' : (urlParams['target'] || 'auto');
/**
* Target for links that open in a new window. Default is _blank.
*/
Graph.prototype.linkTarget = '_blank';
Graph.prototype.linkTarget = (urlParams['target'] == 'frame') ? '_self' : '_blank';
/**
* Scrollbars are enabled on non-touch devices (not including Firefox because touch events
@ -980,9 +980,20 @@ Graph.prototype.init = function(container)
if (href != null)
{
window.open(state.view.graph.getAbsoluteUrl(href),
(state.view.graph.isBlankLink(href)) ?
state.view.graph.linkTarget : '_top');
var target = state.view.graph.isBlankLink(href) ?
state.view.graph.linkTarget : '_top';
href = state.view.graph.getAbsoluteUrl(href);
// Workaround for blocking in same iframe
if (target == '_self' && window != window.top)
{
window.location.href = href;
}
else
{
window.open(href, target);
}
mxEvent.consume(evt);
}
@ -4551,7 +4562,18 @@ if (typeof mxVertexHandler != 'undefined')
beforeClick(me.getEvent());
}
window.open(this.currentLink, (blank) ? graph.linkTarget : '_top');
var target = (blank) ? graph.linkTarget : '_top';
// Workaround for blocking in same iframe
if (target == '_self' && window != window.top)
{
window.location.href = this.currentLink;
}
else
{
window.open(this.currentLink, target);
}
me.consume();
}
else if (onClick != null && !me.isConsumed() &&

View file

@ -2677,7 +2677,6 @@
'rectangle': createArcHandleFunction(),
'triangle': createArcHandleFunction(),
'rhombus': createArcHandleFunction(),
'hexagon': createArcHandleFunction(),
'umlLifeline': function(state)
{
return [createHandle(state, ['size'], function(bounds)

1794
war/js/reader.min.js vendored

File diff suppressed because one or more lines are too long

2856
war/js/shapes.min.js vendored

File diff suppressed because it is too large Load diff

2910
war/js/viewer.min.js vendored

File diff suppressed because one or more lines are too long

View file

@ -76,7 +76,7 @@
// Continues execution of main program flow
try
{
if (window.opener != null)
if (window.opener != null && window.opener.onAuthenticated != null)
{
window.opener.onAuthenticated(token, window);
}

View file

@ -378,7 +378,6 @@ mxArchiMateApplication.prototype.cst = {
APPLICATION : 'mxgraph.archimate.application',
TYPE : 'appType',
COMPONENT : 'comp',
COLLABORATION : 'collab',
INTERFACE : 'interface',
INTERFACE2 : 'interface2',
FUNCTION : 'function',

View file

@ -38,8 +38,6 @@ mxArchiMate3Application.prototype.cst = {
NODE : 'node',
NETWORK : 'netw',
COMM_PATH : 'commPath',
SYS_SW : 'sysSw',
ARTIFACT : 'artifact',
ACTOR : 'actor',
ASSESSMENT : 'assess',
GOAL : 'goal',

View file

@ -46,13 +46,11 @@ mxShapePidValve.prototype.cst = {
DIGITAL : 'digital',
WEIGHT : 'weight',
KEY : 'key',
ANGLE_BLOWDOWN : 'angleBlowdown',
ELECTRO_HYDRAULIC : 'elHyd',
//types
VALVE_TYPE : 'valveType',
BUTTERFLY : 'butterfly',
CHECK : 'check',
PLUG : 'plug',
GATE : 'gate',
GLOBE : 'globe',
NEEDLE : 'needle',