aboutsummaryrefslogtreecommitdiffstats
path: root/site/static/js/lib/flowchart.js.map
diff options
context:
space:
mode:
Diffstat (limited to 'site/static/js/lib/flowchart.js.map')
-rw-r--r--site/static/js/lib/flowchart.js.map790
1 files changed, 790 insertions, 0 deletions
diff --git a/site/static/js/lib/flowchart.js.map b/site/static/js/lib/flowchart.js.map
new file mode 100644
index 0000000..d9d3531
--- /dev/null
+++ b/site/static/js/lib/flowchart.js.map
@@ -0,0 +1,790 @@
+
+
+
+
+<!DOCTYPE html>
+<html lang="en" class="">
+ <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# object: http://ogp.me/ns/object# article: http://ogp.me/ns/article# profile: http://ogp.me/ns/profile#">
+ <meta charset='utf-8'>
+
+ <link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/frameworks-fef7fdfe41dd435c6d82f93b486dc62bc095ebd12cd24fa2a817c8bb45dc073e.css" media="all" rel="stylesheet" />
+ <link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/github-b9f2fea9644a48287c1c40753ef12babec3dd484dad3683ec9f041d18c0ac5d3.css" media="all" rel="stylesheet" />
+
+
+ <link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/site-a307fa9df0197d4d4836f5c30ea37f8d03c5e612e82cd7567a2a9835df3bac08.css" media="all" rel="stylesheet" />
+
+
+
+ <link as="script" href="https://assets-cdn.github.com/assets/frameworks-6fe6a7604ec4c2601272849e1b99a3a9aa12c79b3e25be0360f8d114768e7578.js" rel="preload" />
+
+ <link as="script" href="https://assets-cdn.github.com/assets/github-a5fe95235cb3e84cafbe5a4f72c464477577f2c585b32eb2b065ab50480e58be.js" rel="preload" />
+
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta http-equiv="Content-Language" content="en">
+ <meta name="viewport" content="width=device-width">
+
+
+ <title>flowchart.js/flowchart.js.map at master · adrai/flowchart.js · GitHub</title>
+ <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
+ <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
+ <link rel="apple-touch-icon" href="/apple-touch-icon.png">
+ <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-57x57.png">
+ <link rel="apple-touch-icon" sizes="60x60" href="/apple-touch-icon-60x60.png">
+ <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-72x72.png">
+ <link rel="apple-touch-icon" sizes="76x76" href="/apple-touch-icon-76x76.png">
+ <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114x114.png">
+ <link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon-120x120.png">
+ <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144x144.png">
+ <link rel="apple-touch-icon" sizes="152x152" href="/apple-touch-icon-152x152.png">
+ <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon-180x180.png">
+ <meta property="fb:app_id" content="1401488693436528">
+
+ <meta content="https://avatars3.githubusercontent.com/u/1086194?v=3&amp;s=400" name="twitter:image:src" /><meta content="@github" name="twitter:site" /><meta content="summary" name="twitter:card" /><meta content="adrai/flowchart.js" name="twitter:title" /><meta content="flowchart.js - Draws simple SVG flow chart diagrams from textual representation of the diagram" name="twitter:description" />
+ <meta content="https://avatars3.githubusercontent.com/u/1086194?v=3&amp;s=400" property="og:image" /><meta content="GitHub" property="og:site_name" /><meta content="object" property="og:type" /><meta content="adrai/flowchart.js" property="og:title" /><meta content="https://github.com/adrai/flowchart.js" property="og:url" /><meta content="flowchart.js - Draws simple SVG flow chart diagrams from textual representation of the diagram" property="og:description" />
+ <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">
+ <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
+ <link rel="assets" href="https://assets-cdn.github.com/">
+
+ <meta name="pjax-timeout" content="1000">
+
+
+ <meta name="msapplication-TileImage" content="/windows-tile.png">
+ <meta name="msapplication-TileColor" content="#ffffff">
+ <meta name="selected-link" value="repo_source" data-pjax-transient>
+
+ <meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
+<meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
+ <meta name="google-analytics" content="UA-3769691-2">
+
+<meta content="collector.githubapp.com" name="octolytics-host" /><meta content="github" name="octolytics-app-id" /><meta content="58B480DA:27DE:43F079A:5776CB0C" name="octolytics-dimension-request_id" />
+<meta content="/&lt;user-name&gt;/&lt;repo-name&gt;/blob/show" data-pjax-transient="true" name="analytics-location" />
+
+
+
+ <meta class="js-ga-set" name="dimension1" content="Logged Out">
+
+
+
+ <meta name="hostname" content="github.com">
+ <meta name="user-login" content="">
+
+ <meta name="expected-hostname" content="github.com">
+ <meta name="js-proxy-site-detection-payload" content="MDE5YzU3ODc5ZWVmMTQ5ZmZiMTI1YWQxNDRhMzI0ODdhMjA0MTcyOTMxMTk5ZjI4NjE4MzNjMzU4MzE0MmI5YXx7InJlbW90ZV9hZGRyZXNzIjoiODguMTgwLjEyOC4yMTgiLCJyZXF1ZXN0X2lkIjoiNThCNDgwREE6MjdERTo0M0YwNzlBOjU3NzZDQjBDIiwidGltZXN0YW1wIjoxNDY3NDAzMDIxfQ==">
+
+
+ <link rel="mask-icon" href="https://assets-cdn.github.com/pinned-octocat.svg" color="#4078c0">
+ <link rel="icon" type="image/x-icon" href="https://assets-cdn.github.com/favicon.ico">
+
+ <meta name="html-safe-nonce" content="2a797829b3510cdc9b2d4666b9a8c35fd0d0dd5d">
+ <meta content="10e20b26657c6751c48d14021c55131ef2d61acf" name="form-nonce" />
+
+ <meta http-equiv="x-pjax-version" content="76a45b5f9dea22773e0b8f1510a8bbde">
+
+
+
+ <meta name="description" content="flowchart.js - Draws simple SVG flow chart diagrams from textual representation of the diagram">
+ <meta name="go-import" content="github.com/adrai/flowchart.js git https://github.com/adrai/flowchart.js.git">
+
+ <meta content="1086194" name="octolytics-dimension-user_id" /><meta content="adrai" name="octolytics-dimension-user_login" /><meta content="11474382" name="octolytics-dimension-repository_id" /><meta content="adrai/flowchart.js" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="11474382" name="octolytics-dimension-repository_network_root_id" /><meta content="adrai/flowchart.js" name="octolytics-dimension-repository_network_root_nwo" />
+ <link href="https://github.com/adrai/flowchart.js/commits/master.atom" rel="alternate" title="Recent Commits to flowchart.js:master" type="application/atom+xml">
+
+
+ <link rel="canonical" href="https://github.com/adrai/flowchart.js/blob/master/release/flowchart.js.map" data-pjax-transient>
+ </head>
+
+
+ <body class="logged-out env-production vis-public page-blob">
+ <div id="js-pjax-loader-bar" class="pjax-loader-bar"></div>
+ <a href="#start-of-content" tabindex="1" class="accessibility-aid js-skip-to-content">Skip to content</a>
+
+
+
+
+
+
+
+ <header class="site-header js-details-container" role="banner">
+ <div class="container-responsive">
+ <a class="header-logo-invertocat" href="https://github.com/" aria-label="Homepage" data-ga-click="(Logged out) Header, go to homepage, icon:logo-wordmark">
+ <svg aria-hidden="true" class="octicon octicon-mark-github" height="32" version="1.1" viewBox="0 0 16 16" width="32"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg>
+ </a>
+
+ <button class="btn-link right site-header-toggle js-details-target" type="button" aria-label="Toggle navigation">
+ <svg aria-hidden="true" class="octicon octicon-three-bars" height="24" version="1.1" viewBox="0 0 12 16" width="18"><path d="M11.41 9H.59C0 9 0 8.59 0 8c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zm0-4H.59C0 5 0 4.59 0 4c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM.59 11H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1H.59C0 13 0 12.59 0 12c0-.59 0-1 .59-1z"></path></svg>
+ </button>
+
+ <div class="site-header-menu">
+ <nav class="site-header-nav site-header-nav-main">
+ <a href="/personal" class="js-selected-navigation-item nav-item nav-item-personal" data-ga-click="Header, click, Nav menu - item:personal" data-selected-links="/personal /personal">
+ Personal
+</a> <a href="/open-source" class="js-selected-navigation-item nav-item nav-item-opensource" data-ga-click="Header, click, Nav menu - item:opensource" data-selected-links="/open-source /open-source">
+ Open source
+</a> <a href="/business" class="js-selected-navigation-item nav-item nav-item-business" data-ga-click="Header, click, Nav menu - item:business" data-selected-links="/business /business/features /business/customers /business">
+ Business
+</a> <a href="/explore" class="js-selected-navigation-item nav-item nav-item-explore" data-ga-click="Header, click, Nav menu - item:explore" data-selected-links="/explore /trending /trending/developers /integrations /integrations/feature/code /integrations/feature/collaborate /integrations/feature/ship /explore">
+ Explore
+</a> </nav>
+
+ <div class="site-header-actions">
+ <a class="btn btn-primary site-header-actions-btn" href="/join?source=header-repo" data-ga-click="(Logged out) Header, clicked Sign up, text:sign-up">Sign up</a>
+ <a class="btn site-header-actions-btn mr-2" href="/login?return_to=%2Fadrai%2Fflowchart.js%2Fblob%2Fmaster%2Frelease%2Fflowchart.js.map" data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in">Sign in</a>
+ </div>
+
+ <nav class="site-header-nav site-header-nav-secondary">
+ <a class="nav-item" href="/pricing">Pricing</a>
+ <a class="nav-item" href="/blog">Blog</a>
+ <a class="nav-item" href="https://help.github.com">Support</a>
+ <a class="nav-item header-search-link" href="https://github.com/search">Search GitHub</a>
+ <div class="header-search scoped-search site-scoped-search js-site-search" role="search">
+ <!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="/adrai/flowchart.js/search" class="js-site-search-form" data-scoped-search-url="/adrai/flowchart.js/search" data-unscoped-search-url="/search" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /></div>
+ <label class="form-control header-search-wrapper js-chromeless-input-container">
+ <div class="header-search-scope">This repository</div>
+ <input type="text"
+ class="form-control header-search-input js-site-search-focus js-site-search-field is-clearable"
+ data-hotkey="s"
+ name="q"
+ placeholder="Search"
+ aria-label="Search this repository"
+ data-unscoped-placeholder="Search GitHub"
+ data-scoped-placeholder="Search"
+ tabindex="1"
+ autocapitalize="off">
+ </label>
+</form></div>
+
+ </nav>
+ </div>
+ </div>
+</header>
+
+
+
+ <div id="start-of-content" class="accessibility-aid"></div>
+
+ <div id="js-flash-container">
+</div>
+
+
+ <div role="main" class="main-content">
+ <div itemscope itemtype="http://schema.org/SoftwareSourceCode">
+ <div id="js-repo-pjax-container" data-pjax-container>
+
+<div class="pagehead repohead instapaper_ignore readability-menu experiment-repo-nav">
+ <div class="container repohead-details-container">
+
+
+
+<ul class="pagehead-actions">
+
+ <li>
+ <a href="/login?return_to=%2Fadrai%2Fflowchart.js"
+ class="btn btn-sm btn-with-count tooltipped tooltipped-n"
+ aria-label="You must be signed in to watch a repository" rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-eye" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"></path></svg>
+ Watch
+ </a>
+ <a class="social-count" href="/adrai/flowchart.js/watchers">
+ 147
+ </a>
+
+ </li>
+
+ <li>
+ <a href="/login?return_to=%2Fadrai%2Fflowchart.js"
+ class="btn btn-sm btn-with-count tooltipped tooltipped-n"
+ aria-label="You must be signed in to star a repository" rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-star" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74z"></path></svg>
+ Star
+ </a>
+
+ <a class="social-count js-social-count" href="/adrai/flowchart.js/stargazers">
+ 3,083
+ </a>
+
+ </li>
+
+ <li>
+ <a href="/login?return_to=%2Fadrai%2Fflowchart.js"
+ class="btn btn-sm btn-with-count tooltipped tooltipped-n"
+ aria-label="You must be signed in to fork a repository" rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-repo-forked" height="16" version="1.1" viewBox="0 0 10 16" width="10"><path d="M8 1a1.993 1.993 0 0 0-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V6.5l3 3v1.78A1.993 1.993 0 0 0 5 15a1.993 1.993 0 0 0 1-3.72V9.5l3-3V4.72A1.993 1.993 0 0 0 8 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"></path></svg>
+ Fork
+ </a>
+
+ <a href="/adrai/flowchart.js/network" class="social-count">
+ 381
+ </a>
+ </li>
+</ul>
+
+ <h1 class="public ">
+ <svg aria-hidden="true" class="octicon octicon-repo" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"></path></svg>
+ <span class="author" itemprop="author"><a href="/adrai" class="url fn" rel="author">adrai</a></span><!--
+--><span class="path-divider">/</span><!--
+--><strong itemprop="name"><a href="/adrai/flowchart.js" data-pjax="#js-repo-pjax-container">flowchart.js</a></strong>
+
+</h1>
+
+ </div>
+ <div class="container">
+
+<nav class="reponav js-repo-nav js-sidenav-container-pjax"
+ itemscope
+ itemtype="http://schema.org/BreadcrumbList"
+ role="navigation"
+ data-pjax="#js-repo-pjax-container">
+
+ <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
+ <a href="/adrai/flowchart.js" aria-selected="true" class="js-selected-navigation-item selected reponav-item" data-hotkey="g c" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches /adrai/flowchart.js" itemprop="url">
+ <svg aria-hidden="true" class="octicon octicon-code" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"></path></svg>
+ <span itemprop="name">Code</span>
+ <meta itemprop="position" content="1">
+</a> </span>
+
+ <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
+ <a href="/adrai/flowchart.js/issues" class="js-selected-navigation-item reponav-item" data-hotkey="g i" data-selected-links="repo_issues repo_labels repo_milestones /adrai/flowchart.js/issues" itemprop="url">
+ <svg aria-hidden="true" class="octicon octicon-issue-opened" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg>
+ <span itemprop="name">Issues</span>
+ <span class="counter">37</span>
+ <meta itemprop="position" content="2">
+</a> </span>
+
+ <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
+ <a href="/adrai/flowchart.js/pulls" class="js-selected-navigation-item reponav-item" data-hotkey="g p" data-selected-links="repo_pulls /adrai/flowchart.js/pulls" itemprop="url">
+ <svg aria-hidden="true" class="octicon octicon-git-pull-request" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"></path></svg>
+ <span itemprop="name">Pull requests</span>
+ <span class="counter">3</span>
+ <meta itemprop="position" content="3">
+</a> </span>
+
+
+
+ <a href="/adrai/flowchart.js/pulse" class="js-selected-navigation-item reponav-item" data-selected-links="pulse /adrai/flowchart.js/pulse">
+ <svg aria-hidden="true" class="octicon octicon-pulse" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path d="M11.5 8L8.8 5.4 6.6 8.5 5.5 1.6 2.38 8H0v2h3.6l.9-1.8.9 5.4L9 8.5l1.6 1.5H14V8z"></path></svg>
+ Pulse
+</a>
+ <a href="/adrai/flowchart.js/graphs" class="js-selected-navigation-item reponav-item" data-selected-links="repo_graphs repo_contributors /adrai/flowchart.js/graphs">
+ <svg aria-hidden="true" class="octicon octicon-graph" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path d="M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z"></path></svg>
+ Graphs
+</a>
+
+</nav>
+
+ </div>
+</div>
+
+<div class="container new-discussion-timeline experiment-repo-nav">
+ <div class="repository-content">
+
+
+
+<a href="/adrai/flowchart.js/blob/1e9eef3071e9a564298dd916cc76c95c5ffcae9f/release/flowchart.js.map" class="hidden js-permalink-shortcut" data-hotkey="y">Permalink</a>
+
+<!-- blob contrib key: blob_contributors:v21:73c46e65f2cd5d1265fd8a805fa6d725 -->
+
+<div class="file-navigation js-zeroclipboard-container">
+
+<div class="select-menu branch-select-menu js-menu-container js-select-menu left">
+ <button class="btn btn-sm select-menu-button js-menu-target css-truncate" data-hotkey="w"
+ title="master"
+ type="button" aria-label="Switch branches or tags" tabindex="0" aria-haspopup="true">
+ <i>Branch:</i>
+ <span class="js-select-button css-truncate-target">master</span>
+ </button>
+
+ <div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax aria-hidden="true">
+
+ <div class="select-menu-modal">
+ <div class="select-menu-header">
+ <svg aria-label="Close" class="octicon octicon-x js-menu-close" height="16" role="img" version="1.1" viewBox="0 0 12 16" width="12"><path d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"></path></svg>
+ <span class="select-menu-title">Switch branches/tags</span>
+ </div>
+
+ <div class="select-menu-filters">
+ <div class="select-menu-text-filter">
+ <input type="text" aria-label="Filter branches/tags" id="context-commitish-filter-field" class="form-control js-filterable-field js-navigation-enable" placeholder="Filter branches/tags">
+ </div>
+ <div class="select-menu-tabs">
+ <ul>
+ <li class="select-menu-tab">
+ <a href="#" data-tab-filter="branches" data-filter-placeholder="Filter branches/tags" class="js-select-menu-tab" role="tab">Branches</a>
+ </li>
+ <li class="select-menu-tab">
+ <a href="#" data-tab-filter="tags" data-filter-placeholder="Find a tag…" class="js-select-menu-tab" role="tab">Tags</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+
+ <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches" role="menu">
+
+ <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
+
+
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/blob/gh-pages/release/flowchart.js.map"
+ data-name="gh-pages"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target js-select-menu-filter-text" title="gh-pages">
+ gh-pages
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/blob/localized-gh-pages/release/flowchart.js.map"
+ data-name="localized-gh-pages"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target js-select-menu-filter-text" title="localized-gh-pages">
+ localized-gh-pages
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open selected"
+ href="/adrai/flowchart.js/blob/master/release/flowchart.js.map"
+ data-name="master"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target js-select-menu-filter-text" title="master">
+ master
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/blob/raphaela/release/flowchart.js.map"
+ data-name="raphaela"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target js-select-menu-filter-text" title="raphaela">
+ raphaela
+ </span>
+ </a>
+ </div>
+
+ <div class="select-menu-no-results">Nothing to show</div>
+ </div>
+
+ <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags">
+ <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
+
+
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.6.3/release/flowchart.js.map"
+ data-name="v1.6.3"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.6.3">
+ v1.6.3
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.6.2/release/flowchart.js.map"
+ data-name="v1.6.2"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.6.2">
+ v1.6.2
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.6.1/release/flowchart.js.map"
+ data-name="v1.6.1"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.6.1">
+ v1.6.1
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.6.0/release/flowchart.js.map"
+ data-name="v1.6.0"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.6.0">
+ v1.6.0
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.5.0/release/flowchart.js.map"
+ data-name="v1.5.0"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.5.0">
+ v1.5.0
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.4.2/release/flowchart.js.map"
+ data-name="v1.4.2"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.4.2">
+ v1.4.2
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.4.1/release/flowchart.js.map"
+ data-name="v1.4.1"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.4.1">
+ v1.4.1
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.4.0/release/flowchart.js.map"
+ data-name="v1.4.0"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.4.0">
+ v1.4.0
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.3.3/release/flowchart.js.map"
+ data-name="v1.3.3"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.3.3">
+ v1.3.3
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.3.2/release/flowchart.js.map"
+ data-name="v1.3.2"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.3.2">
+ v1.3.2
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.3.1/release/flowchart.js.map"
+ data-name="v1.3.1"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.3.1">
+ v1.3.1
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.3.0/release/flowchart.js.map"
+ data-name="v1.3.0"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.3.0">
+ v1.3.0
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.2.12/release/flowchart.js.map"
+ data-name="v1.2.12"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.2.12">
+ v1.2.12
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.2.10/release/flowchart.js.map"
+ data-name="v1.2.10"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.2.10">
+ v1.2.10
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.2.9/release/flowchart.js.map"
+ data-name="v1.2.9"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.2.9">
+ v1.2.9
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.2.7/release/flowchart.js.map"
+ data-name="v1.2.7"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.2.7">
+ v1.2.7
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.2.6/release/flowchart.js.map"
+ data-name="v1.2.6"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.2.6">
+ v1.2.6
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.2.4/release/flowchart.js.map"
+ data-name="v1.2.4"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.2.4">
+ v1.2.4
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.2.3/release/flowchart.js.map"
+ data-name="v1.2.3"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.2.3">
+ v1.2.3
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.2.2/release/flowchart.js.map"
+ data-name="v1.2.2"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.2.2">
+ v1.2.2
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.2.1/release/flowchart.js.map"
+ data-name="v1.2.1"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.2.1">
+ v1.2.1
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.2.0/release/flowchart.js.map"
+ data-name="v1.2.0"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.2.0">
+ v1.2.0
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.1.2/release/flowchart.js.map"
+ data-name="v1.1.2"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.1.2">
+ v1.1.2
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.1.1/release/flowchart.js.map"
+ data-name="v1.1.1"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.1.1">
+ v1.1.1
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.1.0/release/flowchart.js.map"
+ data-name="v1.1.0"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.1.0">
+ v1.1.0
+ </span>
+ </a>
+ <a class="select-menu-item js-navigation-item js-navigation-open "
+ href="/adrai/flowchart.js/tree/v1.0.0/release/flowchart.js.map"
+ data-name="v1.0.0"
+ data-skip-pjax="true"
+ rel="nofollow">
+ <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
+ <span class="select-menu-item-text css-truncate-target" title="v1.0.0">
+ v1.0.0
+ </span>
+ </a>
+ </div>
+
+ <div class="select-menu-no-results">Nothing to show</div>
+ </div>
+
+ </div>
+ </div>
+</div>
+
+ <div class="btn-group right">
+ <a href="/adrai/flowchart.js/find/master"
+ class="js-pjax-capture-input btn btn-sm"
+ data-pjax
+ data-hotkey="t">
+ Find file
+ </a>
+ <button aria-label="Copy file path to clipboard" class="js-zeroclipboard btn btn-sm zeroclipboard-button tooltipped tooltipped-s" data-copied-hint="Copied!" type="button">Copy path</button>
+ </div>
+ <div class="breadcrumb js-zeroclipboard-target">
+ <span class="repo-root js-repo-root"><span class="js-path-segment"><a href="/adrai/flowchart.js"><span>flowchart.js</span></a></span></span><span class="separator">/</span><span class="js-path-segment"><a href="/adrai/flowchart.js/tree/master/release"><span>release</span></a></span><span class="separator">/</span><strong class="final-path">flowchart.js.map</strong>
+ </div>
+</div>
+
+<include-fragment class="commit-tease" src="/adrai/flowchart.js/contributors/master/release/flowchart.js.map">
+ <div>
+ Fetching contributors&hellip;
+ </div>
+
+ <div class="commit-tease-contributors">
+ <img alt="" class="loader-loading left" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32-EAF2F5.gif" width="16" />
+ <span class="loader-error">Cannot retrieve contributors at this time</span>
+ </div>
+</include-fragment>
+<div class="file">
+ <div class="file-header">
+ <div class="file-actions">
+
+ <div class="btn-group">
+ <a href="/adrai/flowchart.js/raw/master/release/flowchart.js.map" class="btn btn-sm " id="raw-url">Raw</a>
+ <a href="/adrai/flowchart.js/blame/master/release/flowchart.js.map" class="btn btn-sm js-update-url-with-hash">Blame</a>
+ <a href="/adrai/flowchart.js/commits/master/release/flowchart.js.map" class="btn btn-sm " rel="nofollow">History</a>
+ </div>
+
+
+ <button type="button" class="btn-octicon disabled tooltipped tooltipped-nw"
+ aria-label="You must be signed in to make or propose changes">
+ <svg aria-hidden="true" class="octicon octicon-pencil" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path d="M0 12v3h3l8-8-3-3-8 8zm3 2H1v-2h1v1h1v1zm10.3-9.3L12 6 9 3l1.3-1.3a.996.996 0 0 1 1.41 0l1.59 1.59c.39.39.39 1.02 0 1.41z"></path></svg>
+ </button>
+ <button type="button" class="btn-octicon btn-octicon-danger disabled tooltipped tooltipped-nw"
+ aria-label="You must be signed in to make or propose changes">
+ <svg aria-hidden="true" class="octicon octicon-trashcan" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M11 2H9c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1H2c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1v9c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-1 12H3V5h1v8h1V5h1v8h1V5h1v8h1V5h1v9zm1-10H2V3h9v1z"></path></svg>
+ </button>
+ </div>
+
+ <div class="file-info">
+ 1 lines (1 sloc)
+ <span class="file-info-divider"></span>
+ 135 KB
+ </div>
+</div>
+
+
+
+ <div itemprop="text" class="blob-wrapper data type-text">
+ <table class="highlight tab-size js-file-line-container" data-tab-size="8">
+ <tr>
+ <td id="L1" class="blob-num js-line-number" data-line-number="1"></td>
+ <td id="LC1" class="blob-code blob-code-inner js-file-line">{&quot;version&quot;:3,&quot;sources&quot;:[&quot;webpack:///webpack/universalModuleDefinition&quot;,&quot;webpack:///flowchart.js&quot;,&quot;webpack:///webpack/bootstrap 41178340126627f4fc47&quot;,&quot;webpack:///./index.js&quot;,&quot;webpack:///./src/flowchart.helpers.js&quot;,&quot;webpack:///./src/flowchart.symbol.js&quot;,&quot;webpack:///./src/flowchart.functions.js&quot;,&quot;webpack:///./src/flowchart.parse.js&quot;,&quot;webpack:///./src/flowchart.symbol.condition.js&quot;,&quot;webpack:///./src/flowchart.chart.js&quot;,&quot;webpack:///./src/flowchart.defaults.js&quot;,&quot;webpack:///./src/flowchart.shim.js&quot;,&quot;webpack:///./src/flowchart.symbol.end.js&quot;,&quot;webpack:///./src/flowchart.symbol.inputoutput.js&quot;,&quot;webpack:///./src/flowchart.symbol.operation.js&quot;,&quot;webpack:///./src/flowchart.symbol.start.js&quot;,&quot;webpack:///./src/flowchart.symbol.subroutine.js&quot;,&quot;webpack:///./src/jquery-plugin.js&quot;,&quot;webpack:///external \&quot;Raphael\&quot;&quot;],&quot;names&quot;:[&quot;root&quot;,&quot;factory&quot;,&quot;exports&quot;,&quot;module&quot;,&quot;require&quot;,&quot;define&quot;,&quot;amd&quot;,&quot;a&quot;,&quot;i&quot;,&quot;this&quot;,&quot;__WEBPACK_EXTERNAL_MODULE_15__&quot;,&quot;modules&quot;,&quot;__webpack_require__&quot;,&quot;moduleId&quot;,&quot;installedModules&quot;,&quot;id&quot;,&quot;loaded&quot;,&quot;call&quot;,&quot;m&quot;,&quot;c&quot;,&quot;p&quot;,&quot;parse&quot;,&quot;FlowChart&quot;,&quot;window&quot;,&quot;flowchart&quot;,&quot;_defaults&quot;,&quot;options&quot;,&quot;defaultOptions&quot;,&quot;merged&quot;,&quot;attrname&quot;,&quot;_inherits&quot;,&quot;ctor&quot;,&quot;superCtor&quot;,&quot;Object&quot;,&quot;super_&quot;,&quot;prototype&quot;,&quot;create&quot;,&quot;constructor&quot;,&quot;value&quot;,&quot;enumerable&quot;,&quot;writable&quot;,&quot;configurable&quot;,&quot;TempCtor&quot;,&quot;defaults&quot;,&quot;inherits&quot;,&quot;Symbol&quot;,&quot;chart&quot;,&quot;symbol&quot;,&quot;group&quot;,&quot;paper&quot;,&quot;set&quot;,&quot;connectedTo&quot;,&quot;symbolType&quot;,&quot;flowstate&quot;,&quot;next_direction&quot;,&quot;next&quot;,&quot;undefined&quot;,&quot;text&quot;,&quot;key&quot;,&quot;node&quot;,&quot;setAttribute&quot;,&quot;getAttr&quot;,&quot;attr&quot;,&quot;text-anchor&quot;,&quot;x&quot;,&quot;fill&quot;,&quot;font-size&quot;,&quot;font&quot;,&quot;fontF&quot;,&quot;fontW&quot;,&quot;font-family&quot;,&quot;font-weight&quot;,&quot;link&quot;,&quot;target&quot;,&quot;maxWidth&quot;,&quot;words&quot;,&quot;split&quot;,&quot;tempText&quot;,&quot;ii&quot;,&quot;length&quot;,&quot;word&quot;,&quot;getBBox&quot;,&quot;width&quot;,&quot;substring&quot;,&quot;push&quot;,&quot;tmpMargin&quot;,&quot;stroke&quot;,&quot;stroke-width&quot;,&quot;height&quot;,&quot;insertBefore&quot;,&quot;y&quot;,&quot;initialize&quot;,&quot;drawAPI&quot;,&quot;drawLine&quot;,&quot;checkLineIntersection&quot;,&quot;attName&quot;,&quot;opt1&quot;,&quot;opt3&quot;,&quot;opt2&quot;,&quot;symbols&quot;,&quot;transform&quot;,&quot;getCenter&quot;,&quot;getX&quot;,&quot;getY&quot;,&quot;shiftX&quot;,&quot;setX&quot;,&quot;shiftY&quot;,&quot;setY&quot;,&quot;getTop&quot;,&quot;getBottom&quot;,&quot;getLeft&quot;,&quot;getRight&quot;,&quot;render&quot;,&quot;lineLength&quot;,&quot;rightPoint&quot;,&quot;isPositioned&quot;,&quot;self&quot;,&quot;shift&quot;,&quot;symb&quot;,&quot;hasSymbolUnder&quot;,&quot;len&quot;,&quot;diff&quot;,&quot;Math&quot;,&quot;abs&quot;,&quot;bottomPoint&quot;,&quot;renderLines&quot;,&quot;drawLineTo&quot;,&quot;origin&quot;,&quot;indexOf&quot;,&quot;line&quot;,&quot;right&quot;,&quot;bottom&quot;,&quot;left&quot;,&quot;symbolX&quot;,&quot;symbolY&quot;,&quot;symbolTop&quot;,&quot;symbolRight&quot;,&quot;symbolLeft&quot;,&quot;isOnSameColumn&quot;,&quot;isOnSameLine&quot;,&quot;isUnder&quot;,&quot;isUpper&quot;,&quot;isLeft&quot;,&quot;isRight&quot;,&quot;maxX&quot;,&quot;lineWith&quot;,&quot;rightStart&quot;,&quot;topEnd&quot;,&quot;bottomStart&quot;,&quot;diffX&quot;,&quot;leftStart&quot;,&quot;leftEnd&quot;,&quot;rightEnd&quot;,&quot;l&quot;,&quot;llen&quot;,&quot;lines&quot;,&quot;otherLine&quot;,&quot;ePath&quot;,&quot;lPath&quot;,&quot;iP&quot;,&quot;lenP&quot;,&quot;newPath&quot;,&quot;line1_from_x&quot;,&quot;line1_from_y&quot;,&quot;line1_to_x&quot;,&quot;line1_to_y&quot;,&quot;lP&quot;,&quot;lenlP&quot;,&quot;newLinePath&quot;,&quot;line2_from_x&quot;,&quot;line2_from_y&quot;,&quot;line2_to_x&quot;,&quot;line2_to_y&quot;,&quot;res&quot;,&quot;onLine1&quot;,&quot;onLine2&quot;,&quot;newSegment&quot;,&quot;splice&quot;,&quot;maxXFromLine&quot;,&quot;drawPath&quot;,&quot;location&quot;,&quot;points&quot;,&quot;path&quot;,&quot;pathValues&quot;,&quot;from&quot;,&quot;to&quot;,&quot;toString&quot;,&quot;arrow-end&quot;,&quot;centerText&quot;,&quot;textPath&quot;,&quot;isHorizontal&quot;,&quot;firstTo&quot;,&quot;line1StartX&quot;,&quot;line1StartY&quot;,&quot;line1EndX&quot;,&quot;line1EndY&quot;,&quot;line2StartX&quot;,&quot;line2StartY&quot;,&quot;line2EndX&quot;,&quot;line2EndY&quot;,&quot;denominator&quot;,&quot;b&quot;,&quot;numerator1&quot;,&quot;numerator2&quot;,&quot;result&quot;,&quot;input&quot;,&quot;getSymbol&quot;,&quot;s&quot;,&quot;startIndex&quot;,&quot;endIndex&quot;,&quot;getNextPath&quot;,&quot;flowSymb&quot;,&quot;trim&quot;,&quot;start&quot;,&quot;drawSVG&quot;,&quot;container&quot;,&quot;getDisplaySymbol&quot;,&quot;dispSymbols&quot;,&quot;Start&quot;,&quot;diagram&quot;,&quot;End&quot;,&quot;Operation&quot;,&quot;InputOutput&quot;,&quot;Subroutine&quot;,&quot;Condition&quot;,&quot;Error&quot;,&quot;clean&quot;,&quot;constructChart&quot;,&quot;prevDisp&quot;,&quot;prev&quot;,&quot;dispSymb&quot;,&quot;startWith&quot;,&quot;pathOk&quot;,&quot;yes&quot;,&quot;no&quot;,&quot;then&quot;,&quot;prevBreak&quot;,&quot;i0&quot;,&quot;i0len&quot;,&quot;line0&quot;,&quot;replace&quot;,&quot;substr&quot;,&quot;currentLine&quot;,&quot;sub&quot;,&quot;parts&quot;,&quot;join&quot;,&quot;txtAndState&quot;,&quot;pop&quot;,&quot;flowSymbols&quot;,&quot;lenS&quot;,&quot;realSymb&quot;,&quot;direction&quot;,&quot;condOpt&quot;,&quot;nextSymb&quot;,&quot;textMargin&quot;,&quot;yes_direction&quot;,&quot;no_direction&quot;,&quot;direction_yes&quot;,&quot;direction_no&quot;,&quot;max&quot;,&quot;startX&quot;,&quot;startY&quot;,&quot;yes_symbol&quot;,&quot;no_symbol&quot;,&quot;bottom_symbol&quot;,&quot;right_symbol&quot;,&quot;Raphael&quot;,&quot;handle&quot;,&quot;flowChart&quot;,&quot;nextSymbol&quot;,&quot;maxHeight&quot;,&quot;maxY&quot;,&quot;minX&quot;,&quot;minY&quot;,&quot;x2&quot;,&quot;y2&quot;,&quot;scale&quot;,&quot;lineWidth&quot;,&quot;setSize&quot;,&quot;setViewBox&quot;,&quot;paperDom&quot;,&quot;canvas&quot;,&quot;parentNode&quot;,&quot;removeChild&quot;,&quot;line-width&quot;,&quot;line-length&quot;,&quot;text-margin&quot;,&quot;font-color&quot;,&quot;line-color&quot;,&quot;element-color&quot;,&quot;yes-text&quot;,&quot;no-text&quot;,&quot;class&quot;,&quot;end&quot;,&quot;condition&quot;,&quot;inputoutput&quot;,&quot;operation&quot;,&quot;subroutine&quot;,&quot;Array&quot;,&quot;searchElement&quot;,&quot;TypeError&quot;,&quot;t&quot;,&quot;n&quot;,&quot;arguments&quot;,&quot;Number&quot;,&quot;Infinity&quot;,&quot;floor&quot;,&quot;k&quot;,&quot;lastIndexOf&quot;,&quot;min&quot;,&quot;String&quot;,&quot;rect&quot;,&quot;innerWrap&quot;,&quot;jQuery&quot;,&quot;$&quot;,&quot;fn&quot;,&quot;each&quot;,&quot;$this&quot;,&quot;html&quot;],&quot;mappings&quot;:&quot;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&quot;,&quot;file&quot;:&quot;flowchart.js&quot;,&quot;sourcesContent&quot;:[&quot;(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === &#39;object&#39; &amp;&amp; typeof module === &#39;object&#39;)\n\t\tmodule.exports = factory(require(\&quot;Raphael\&quot;));\n\telse if(typeof define === &#39;function&#39; &amp;&amp; define.amd)\n\t\tdefine([\&quot;Raphael\&quot;], factory);\n\telse {\n\t\tvar a = typeof exports === &#39;object&#39; ? factory(require(\&quot;Raphael\&quot;)) : factory(root[\&quot;Raphael\&quot;]);\n\t\tfor(var i in a) (typeof exports === &#39;object&#39; ? exports : root)[i] = a[i];\n\t}\n})(this, function(__WEBPACK_EXTERNAL_MODULE_15__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/&quot;,&quot;(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === &#39;object&#39; &amp;&amp; typeof module === &#39;object&#39;)\n\t\tmodule.exports = factory(require(\&quot;Raphael\&quot;));\n\telse if(typeof define === &#39;function&#39; &amp;&amp; define.amd)\n\t\tdefine([\&quot;Raphael\&quot;], factory);\n\telse {\n\t\tvar a = typeof exports === &#39;object&#39; ? factory(require(\&quot;Raphael\&quot;)) : factory(root[\&quot;Raphael\&quot;]);\n\t\tfor(var i in a) (typeof exports === &#39;object&#39; ? exports : root)[i] = a[i];\n\t}\n})(this, function(__WEBPACK_EXTERNAL_MODULE_15__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \&quot;\&quot;;\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!******************!*\\\n !*** ./index.js ***!\n \\******************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(/*! ./src/flowchart.shim */ 8);\n\tvar parse = __webpack_require__(/*! ./src/flowchart.parse */ 4);\n\t__webpack_require__(/*! ./src/jquery-plugin */ 14);\n\t\n\tvar FlowChart = {\n\t\tparse: parse\n\t};\n\t\n\tif (typeof window !== &#39;undefined&#39;) {\n\t\twindow.flowchart = FlowChart;\n\t}\n\t\n\tmodule.exports = FlowChart;\n\n\n/***/ },\n/* 1 */\n/*!**********************************!*\\\n !*** ./src/flowchart.helpers.js ***!\n \\**********************************/\n/***/ function(module, exports) {\n\n\tfunction _defaults(options, defaultOptions) {\n\t if (!options || typeof options === &#39;function&#39;) {\n\t return defaultOptions;\n\t }\n\t\n\t var merged = {};\n\t for (var attrname in defaultOptions) {\n\t merged[attrname] = defaultOptions[attrname];\n\t }\n\t\n\t for (attrname in options) {\n\t if (options[attrname]) {\n\t if (typeof merged[attrname] === &#39;object&#39;) {\n\t merged[attrname] = _defaults(merged[attrname], options[attrname]);\n\t } else {\n\t merged[attrname] = options[attrname];\n\t }\n\t }\n\t }\n\t return merged;\n\t}\n\t\n\tfunction _inherits(ctor, superCtor) {\n\t if (typeof(Object.create) === &#39;function&#39;) {\n\t // implementation from standard node.js &#39;util&#39; module\n\t ctor.super_ = superCtor;\n\t ctor.prototype = Object.create(superCtor.prototype, {\n\t constructor: {\n\t value: ctor,\n\t enumerable: false,\n\t writable: true,\n\t configurable: true\n\t }\n\t });\n\t } else {\n\t // old school shim for old browsers\n\t ctor.super_ = superCtor;\n\t var TempCtor = function () {};\n\t TempCtor.prototype = superCtor.prototype;\n\t ctor.prototype = new TempCtor();\n\t ctor.prototype.constructor = ctor;\n\t }\n\t}\n\t\n\t// move dependent functions to a container so that\n\t// they can be overriden easier in no jquery environment (node.js)\n\tmodule.exports = {\n\t defaults: _defaults,\n\t inherits: _inherits\n\t};\n\n\n/***/ },\n/* 2 */\n/*!*********************************!*\\\n !*** ./src/flowchart.symbol.js ***!\n \\*********************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar drawAPI = __webpack_require__(/*! ./flowchart.functions */ 3);\n\tvar drawLine = drawAPI.drawLine;\n\tvar checkLineIntersection = drawAPI.checkLineIntersection;\n\t\n\tfunction Symbol(chart, options, symbol) {\n\t this.chart = chart;\n\t this.group = this.chart.paper.set();\n\t this.symbol = symbol;\n\t this.connectedTo = [];\n\t this.symbolType = options.symbolType;\n\t this.flowstate = (options.flowstate || &#39;future&#39;);\n\t\n\t this.next_direction = options.next &amp;&amp; options[&#39;direction_next&#39;] ? options[&#39;direction_next&#39;] : undefined;\n\t\n\t this.text = this.chart.paper.text(0, 0, options.text);\n\t //Raphael does not support the svg group tag so setting the text node id to the symbol node id plus t\n\t if (options.key) { this.text.node.id = options.key + &#39;t&#39;; }\n\t this.text.node.setAttribute(&#39;class&#39;, this.getAttr(&#39;class&#39;) + &#39;t&#39;);\n\t\n\t this.text.attr({\n\t &#39;text-anchor&#39;: &#39;start&#39;,\n\t &#39;x&#39; : this.getAttr(&#39;text-margin&#39;),\n\t &#39;fill&#39; : this.getAttr(&#39;font-color&#39;),\n\t &#39;font-size&#39; : this.getAttr(&#39;font-size&#39;)\n\t });\n\t\n\t var font = this.getAttr(&#39;font&#39;);\n\t var fontF = this.getAttr(&#39;font-family&#39;);\n\t var fontW = this.getAttr(&#39;font-weight&#39;);\n\t\n\t if (font) this.text.attr({ &#39;font&#39;: font });\n\t if (fontF) this.text.attr({ &#39;font-family&#39;: fontF });\n\t if (fontW) this.text.attr({ &#39;font-weight&#39;: fontW });\n\t\n\t if (options.link) { this.text.attr(&#39;href&#39;, options.link); }\n\t if (options.target) { this.text.attr(&#39;target&#39;, options.target); }\n\t\n\t var maxWidth = this.getAttr(&#39;maxWidth&#39;);\n\t if (maxWidth) {\n\t // using this approach: http://stackoverflow.com/a/3153457/22466\n\t var words = options.text.split(&#39; &#39;);\n\t var tempText = \&quot;\&quot;;\n\t for (var i=0, ii=words.length; i&lt;ii; i++) {\n\t var word = words[i];\n\t this.text.attr(\&quot;text\&quot;, tempText + \&quot; \&quot; + word);\n\t if (this.text.getBBox().width &gt; maxWidth) {\n\t tempText += \&quot;\\n\&quot; + word;\n\t } else {\n\t tempText += \&quot; \&quot; + word;\n\t }\n\t }\n\t this.text.attr(\&quot;text\&quot;, tempText.substring(1));\n\t }\n\t\n\t this.group.push(this.text);\n\t\n\t if (symbol) {\n\t var tmpMargin = this.getAttr(&#39;text-margin&#39;);\n\t\n\t symbol.attr({\n\t &#39;fill&#39; : this.getAttr(&#39;fill&#39;),\n\t &#39;stroke&#39; : this.getAttr(&#39;element-color&#39;),\n\t &#39;stroke-width&#39; : this.getAttr(&#39;line-width&#39;),\n\t &#39;width&#39; : this.text.getBBox().width + 2 * tmpMargin,\n\t &#39;height&#39; : this.text.getBBox().height + 2 * tmpMargin\n\t });\n\t\n\t symbol.node.setAttribute(&#39;class&#39;, this.getAttr(&#39;class&#39;));\n\t\n\t if (options.link) { symbol.attr(&#39;href&#39;, options.link); }\n\t if (options.target) { symbol.attr(&#39;target&#39;, options.target); }\n\t if (options.key) { symbol.node.id = options.key; }\n\t\n\t this.group.push(symbol);\n\t symbol.insertBefore(this.text);\n\t\n\t this.text.attr({\n\t &#39;y&#39;: symbol.getBBox().height/2\n\t });\n\t\n\t this.initialize();\n\t }\n\t\n\t}\n\t\n\t/* Gets the attribute based on Flowstate, Symbol-Name and default, first found wins */\n\tSymbol.prototype.getAttr = function(attName) {\n\t if (!this.chart) {\n\t return undefined;\n\t }\n\t var opt3 = (this.chart.options) ? this.chart.options[attName] : undefined;\n\t var opt2 = (this.chart.options.symbols) ? this.chart.options.symbols[this.symbolType][attName] : undefined;\n\t var opt1;\n\t if (this.chart.options.flowstate &amp;&amp; this.chart.options.flowstate[this.flowstate]) {\n\t opt1 = this.chart.options.flowstate[this.flowstate][attName];\n\t }\n\t return (opt1 || opt2 || opt3);\n\t};\n\t\n\tSymbol.prototype.initialize = function() {\n\t this.group.transform(&#39;t&#39; + this.getAttr(&#39;line-width&#39;) + &#39;,&#39; + this.getAttr(&#39;line-width&#39;));\n\t\n\t this.width = this.group.getBBox().width;\n\t this.height = this.group.getBBox().height;\n\t};\n\t\n\tSymbol.prototype.getCenter = function() {\n\t return {x: this.getX() + this.width/2,\n\t y: this.getY() + this.height/2};\n\t};\n\t\n\tSymbol.prototype.getX = function() {\n\t return this.group.getBBox().x;\n\t};\n\t\n\tSymbol.prototype.getY = function() {\n\t return this.group.getBBox().y;\n\t};\n\t\n\tSymbol.prototype.shiftX = function(x) {\n\t this.group.transform(&#39;t&#39; + (this.getX() + x) + &#39;,&#39; + this.getY());\n\t};\n\t\n\tSymbol.prototype.setX = function(x) {\n\t this.group.transform(&#39;t&#39; + x + &#39;,&#39; + this.getY());\n\t};\n\t\n\tSymbol.prototype.shiftY = function(y) {\n\t this.group.transform(&#39;t&#39; + this.getX() + &#39;,&#39; + (this.getY() + y));\n\t};\n\t\n\tSymbol.prototype.setY = function(y) {\n\t this.group.transform(&#39;t&#39; + this.getX() + &#39;,&#39; + y);\n\t};\n\t\n\tSymbol.prototype.getTop = function() {\n\t var y = this.getY();\n\t var x = this.getX() + this.width/2;\n\t return {x: x, y: y};\n\t};\n\t\n\tSymbol.prototype.getBottom = function() {\n\t var y = this.getY() + this.height;\n\t var x = this.getX() + this.width/2;\n\t return {x: x, y: y};\n\t};\n\t\n\tSymbol.prototype.getLeft = function() {\n\t var y = this.getY() + this.group.getBBox().height/2;\n\t var x = this.getX();\n\t return {x: x, y: y};\n\t};\n\t\n\tSymbol.prototype.getRight = function() {\n\t var y = this.getY() + this.group.getBBox().height/2;\n\t var x = this.getX() + this.group.getBBox().width;\n\t return {x: x, y: y};\n\t};\n\t\n\tSymbol.prototype.render = function() {\n\t if (this.next) {\n\t\n\t var lineLength = this.getAttr(&#39;line-length&#39;);\n\t\n\t if (this.next_direction === &#39;right&#39;) {\n\t\n\t var rightPoint = this.getRight();\n\t\n\t if (!this.next.isPositioned) {\n\t\n\t this.next.setY(rightPoint.y - this.next.height/2);\n\t this.next.shiftX(this.group.getBBox().x + this.width + lineLength);\n\t\n\t var self = this;\n\t (function shift() {\n\t var hasSymbolUnder = false;\n\t var symb;\n\t for (var i = 0, len = self.chart.symbols.length; i &lt; len; i++) {\n\t symb = self.chart.symbols[i];\n\t\n\t var diff = Math.abs(symb.getCenter().x - self.next.getCenter().x);\n\t if (symb.getCenter().y &gt; self.next.getCenter().y &amp;&amp; diff &lt;= self.next.width/2) {\n\t hasSymbolUnder = true;\n\t break;\n\t }\n\t }\n\t\n\t if (hasSymbolUnder) {\n\t self.next.setX(symb.getX() + symb.width + lineLength);\n\t shift();\n\t }\n\t })();\n\t\n\t this.next.isPositioned = true;\n\t\n\t this.next.render();\n\t }\n\t } else {\n\t var bottomPoint = this.getBottom();\n\t\n\t if (!this.next.isPositioned) {\n\t this.next.shiftY(this.getY() + this.height + lineLength);\n\t this.next.setX(bottomPoint.x - this.next.width/2);\n\t this.next.isPositioned = true;\n\t\n\t this.next.render();\n\t }\n\t }\n\t }\n\t};\n\t\n\tSymbol.prototype.renderLines = function() {\n\t if (this.next) {\n\t if (this.next_direction) {\n\t this.drawLineTo(this.next, &#39;&#39;, this.next_direction);\n\t } else {\n\t this.drawLineTo(this.next);\n\t }\n\t }\n\t};\n\t\n\tSymbol.prototype.drawLineTo = function(symbol, text, origin) {\n\t if (this.connectedTo.indexOf(symbol) &lt; 0) {\n\t this.connectedTo.push(symbol);\n\t }\n\t\n\t var x = this.getCenter().x,\n\t y = this.getCenter().y,\n\t right = this.getRight(),\n\t bottom = this.getBottom(),\n\t left = this.getLeft();\n\t\n\t var symbolX = symbol.getCenter().x,\n\t symbolY = symbol.getCenter().y,\n\t symbolTop = symbol.getTop(),\n\t symbolRight = symbol.getRight(),\n\t symbolLeft = symbol.getLeft();\n\t\n\t var isOnSameColumn = x === symbolX,\n\t isOnSameLine = y === symbolY,\n\t isUnder = y &lt; symbolY,\n\t isUpper = y &gt; symbolY || this === symbol,\n\t isLeft = x &gt; symbolX,\n\t isRight = x &lt; symbolX;\n\t\n\t var maxX = 0,\n\t line,\n\t lineLength = this.getAttr(&#39;line-length&#39;),\n\t lineWith = this.getAttr(&#39;line-width&#39;);\n\t\n\t if ((!origin || origin === &#39;bottom&#39;) &amp;&amp; isOnSameColumn &amp;&amp; isUnder) {\n\t line = drawLine(this.chart, bottom, symbolTop, text);\n\t this.bottomStart = true;\n\t symbol.topEnd = true;\n\t maxX = bottom.x;\n\t } else if ((!origin || origin === &#39;right&#39;) &amp;&amp; isOnSameLine &amp;&amp; isRight) {\n\t line = drawLine(this.chart, right, symbolLeft, text);\n\t this.rightStart = true;\n\t symbol.leftEnd = true;\n\t maxX = symbolLeft.x;\n\t } else if ((!origin || origin === &#39;left&#39;) &amp;&amp; isOnSameLine &amp;&amp; isLeft) {\n\t line = drawLine(this.chart, left, symbolRight, text);\n\t this.leftStart = true;\n\t symbol.rightEnd = true;\n\t maxX = symbolRight.x;\n\t } else if ((!origin || origin === &#39;right&#39;) &amp;&amp; isOnSameColumn &amp;&amp; isUpper) {\n\t line = drawLine(this.chart, right, [\n\t {x: right.x + lineLength/2, y: right.y},\n\t {x: right.x + lineLength/2, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y}\n\t ], text);\n\t this.rightStart = true;\n\t symbol.topEnd = true;\n\t maxX = right.x + lineLength/2;\n\t } else if ((!origin || origin === &#39;right&#39;) &amp;&amp; isOnSameColumn &amp;&amp; isUnder) {\n\t line = drawLine(this.chart, right, [\n\t {x: right.x + lineLength/2, y: right.y},\n\t {x: right.x + lineLength/2, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y}\n\t ], text);\n\t this.rightStart = true;\n\t symbol.topEnd = true;\n\t maxX = right.x + lineLength/2;\n\t } else if ((!origin || origin === &#39;bottom&#39;) &amp;&amp; isLeft) {\n\t if (this.leftEnd &amp;&amp; isUpper) {\n\t line = drawLine(this.chart, bottom, [\n\t {x: bottom.x, y: bottom.y + lineLength/2},\n\t {x: bottom.x + (bottom.x - symbolTop.x)/2, y: bottom.y + lineLength/2},\n\t {x: bottom.x + (bottom.x - symbolTop.x)/2, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y}\n\t ], text);\n\t } else {\n\t line = drawLine(this.chart, bottom, [\n\t {x: bottom.x, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y}\n\t ], text);\n\t }\n\t this.bottomStart = true;\n\t symbol.topEnd = true;\n\t maxX = bottom.x + (bottom.x - symbolTop.x)/2;\n\t } else if ((!origin || origin === &#39;bottom&#39;) &amp;&amp; isRight) {\n\t line = drawLine(this.chart, bottom, [\n\t {x: bottom.x, y: bottom.y + lineLength/2},\n\t {x: bottom.x + (bottom.x - symbolTop.x)/2, y: bottom.y + lineLength/2},\n\t {x: bottom.x + (bottom.x - symbolTop.x)/2, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y}\n\t ], text);\n\t this.bottomStart = true;\n\t symbol.topEnd = true;\n\t maxX = bottom.x + (bottom.x - symbolTop.x)/2;\n\t } else if ((origin &amp;&amp; origin === &#39;right&#39;) &amp;&amp; isLeft) {\n\t line = drawLine(this.chart, right, [\n\t {x: right.x + lineLength/2, y: right.y},\n\t {x: right.x + lineLength/2, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y}\n\t ], text);\n\t this.rightStart = true;\n\t symbol.topEnd = true;\n\t maxX = right.x + lineLength/2;\n\t } else if ((origin &amp;&amp; origin === &#39;right&#39;) &amp;&amp; isRight) {\n\t line = drawLine(this.chart, right, [\n\t {x: symbolTop.x, y: right.y},\n\t {x: symbolTop.x, y: symbolTop.y}\n\t ], text);\n\t this.rightStart = true;\n\t symbol.topEnd = true;\n\t maxX = right.x + lineLength/2;\n\t } else if ((origin &amp;&amp; origin === &#39;bottom&#39;) &amp;&amp; isOnSameColumn &amp;&amp; isUpper) {\n\t line = drawLine(this.chart, bottom, [\n\t {x: bottom.x, y: bottom.y + lineLength/2},\n\t {x: right.x + lineLength/2, y: bottom.y + lineLength/2},\n\t {x: right.x + lineLength/2, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y}\n\t ], text);\n\t this.bottomStart = true;\n\t symbol.topEnd = true;\n\t maxX = bottom.x + lineLength/2;\n\t } else if ((origin === &#39;left&#39;) &amp;&amp; isOnSameColumn &amp;&amp; isUpper) {\n\t var diffX = left.x - lineLength/2;\n\t if (symbolLeft.x &lt; left.x) {\n\t diffX = symbolLeft.x - lineLength/2;\n\t }\n\t line = drawLine(this.chart, left, [\n\t {x: diffX, y: left.y},\n\t {x: diffX, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y}\n\t ], text);\n\t this.leftStart = true;\n\t symbol.topEnd = true;\n\t maxX = left.x;\n\t } else if ((origin === &#39;left&#39;)) {\n\t line = drawLine(this.chart, left, [\n\t {x: symbolTop.x + (left.x - symbolTop.x)/ 2, y: left.y},\n\t {x: symbolTop.x + (left.x - symbolTop.x)/ 2, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n\t {x: symbolTop.x, y: symbolTop.y}\n\t ], text);\n\t this.leftStart = true;\n\t symbol.topEnd = true;\n\t maxX = left.x;\n\t }\n\t\n\t if (line) {\n\t for (var l = 0, llen = this.chart.lines.length; l &lt; llen; l++) {\n\t var otherLine = this.chart.lines[l];\n\t var len;\n\t\n\t var ePath = otherLine.attr(&#39;path&#39;),\n\t lPath = line.attr(&#39;path&#39;);\n\t\n\t for (var iP = 0, lenP = ePath.length - 1; iP &lt; lenP; iP++) {\n\t var newPath = [];\n\t newPath.push([&#39;M&#39;, ePath[iP][1], ePath[iP][2]]);\n\t newPath.push([&#39;L&#39;, ePath[iP + 1][1], ePath[iP + 1][2]]);\n\t\n\t var line1_from_x = newPath[0][1];\n\t var line1_from_y = newPath[0][2];\n\t var line1_to_x = newPath[1][1];\n\t var line1_to_y = newPath[1][2];\n\t\n\t for (var lP = 0, lenlP = lPath.length - 1; lP &lt; lenlP; lP++) {\n\t var newLinePath = [];\n\t newLinePath.push([&#39;M&#39;, lPath[lP][1], lPath[lP][2]]);\n\t newLinePath.push([&#39;L&#39;, lPath[lP + 1][1], lPath[lP + 1][2]]);\n\t\n\t var line2_from_x = newLinePath[0][1];\n\t var line2_from_y = newLinePath[0][2];\n\t var line2_to_x = newLinePath[1][1];\n\t var line2_to_y = newLinePath[1][2];\n\t\n\t var res = checkLineIntersection(line1_from_x, line1_from_y, line1_to_x, line1_to_y, line2_from_x, line2_from_y, line2_to_x, line2_to_y);\n\t if (res.onLine1 &amp;&amp; res.onLine2) {\n\t\n\t var newSegment;\n\t if (line2_from_y === line2_to_y) {\n\t if (line2_from_x &gt; line2_to_x) {\n\t newSegment = [&#39;L&#39;, res.x + lineWith * 2, line2_from_y];\n\t lPath.splice(lP + 1, 0, newSegment);\n\t newSegment = [&#39;C&#39;, res.x + lineWith * 2, line2_from_y, res.x, line2_from_y - lineWith * 4, res.x - lineWith * 2, line2_from_y];\n\t lPath.splice(lP + 2, 0, newSegment);\n\t line.attr(&#39;path&#39;, lPath);\n\t } else {\n\t newSegment = [&#39;L&#39;, res.x - lineWith * 2, line2_from_y];\n\t lPath.splice(lP + 1, 0, newSegment);\n\t newSegment = [&#39;C&#39;, res.x - lineWith * 2, line2_from_y, res.x, line2_from_y - lineWith * 4, res.x + lineWith * 2, line2_from_y];\n\t lPath.splice(lP + 2, 0, newSegment);\n\t line.attr(&#39;path&#39;, lPath);\n\t }\n\t } else {\n\t if (line2_from_y &gt; line2_to_y) {\n\t newSegment = [&#39;L&#39;, line2_from_x, res.y + lineWith * 2];\n\t lPath.splice(lP + 1, 0, newSegment);\n\t newSegment = [&#39;C&#39;, line2_from_x, res.y + lineWith * 2, line2_from_x + lineWith * 4, res.y, line2_from_x, res.y - lineWith * 2];\n\t lPath.splice(lP + 2, 0, newSegment);\n\t line.attr(&#39;path&#39;, lPath);\n\t } else {\n\t newSegment = [&#39;L&#39;, line2_from_x, res.y - lineWith * 2];\n\t lPath.splice(lP + 1, 0, newSegment);\n\t newSegment = [&#39;C&#39;, line2_from_x, res.y - lineWith * 2, line2_from_x + lineWith * 4, res.y, line2_from_x, res.y + lineWith * 2];\n\t lPath.splice(lP + 2, 0, newSegment);\n\t line.attr(&#39;path&#39;, lPath);\n\t }\n\t }\n\t\n\t lP += 2;\n\t len += 2;\n\t }\n\t }\n\t }\n\t }\n\t\n\t this.chart.lines.push(line);\n\t }\n\t\n\t if (!this.chart.maxXFromLine || (this.chart.maxXFromLine &amp;&amp; maxX &gt; this.chart.maxXFromLine)) {\n\t this.chart.maxXFromLine = maxX;\n\t }\n\t};\n\t\n\tmodule.exports = Symbol;\n\n\n/***/ },\n/* 3 */\n/*!************************************!*\\\n !*** ./src/flowchart.functions.js ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\tfunction drawPath(chart, location, points) {\n\t var i, len;\n\t var path = &#39;M{0},{1}&#39;;\n\t for (i = 2, len = 2 * points.length + 2; i &lt; len; i+=2) {\n\t path += &#39; L{&#39; + i + &#39;},{&#39; + (i + 1) + &#39;}&#39;;\n\t }\n\t var pathValues = [location.x, location.y];\n\t for (i = 0, len = points.length; i &lt; len; i++) {\n\t pathValues.push(points[i].x);\n\t pathValues.push(points[i].y);\n\t }\n\t var symbol = chart.paper.path(path, pathValues);\n\t symbol.attr(&#39;stroke&#39;, chart.options[&#39;element-color&#39;]);\n\t symbol.attr(&#39;stroke-width&#39;, chart.options[&#39;line-width&#39;]);\n\t\n\t var font = chart.options.font;\n\t var fontF = chart.options[&#39;font-family&#39;];\n\t var fontW = chart.options[&#39;font-weight&#39;];\n\t\n\t if (font) symbol.attr({ &#39;font&#39;: font });\n\t if (fontF) symbol.attr({ &#39;font-family&#39;: fontF });\n\t if (fontW) symbol.attr({ &#39;font-weight&#39;: fontW });\n\t\n\t return symbol;\n\t}\n\t\n\tfunction drawLine(chart, from, to, text) {\n\t var i, len;\n\t\n\t if (Object.prototype.toString.call(to) !== &#39;[object Array]&#39;) {\n\t to = [to];\n\t }\n\t\n\t var path = &#39;M{0},{1}&#39;;\n\t for (i = 2, len = 2 * to.length + 2; i &lt; len; i+=2) {\n\t path += &#39; L{&#39; + i + &#39;},{&#39; + (i + 1) + &#39;}&#39;;\n\t }\n\t var pathValues = [from.x, from.y];\n\t for (i = 0, len = to.length; i &lt; len; i++) {\n\t pathValues.push(to[i].x);\n\t pathValues.push(to[i].y);\n\t }\n\t\n\t var line = chart.paper.path(path, pathValues);\n\t line.attr({\n\t stroke: chart.options[&#39;line-color&#39;],\n\t &#39;stroke-width&#39;: chart.options[&#39;line-width&#39;],\n\t &#39;arrow-end&#39;: chart.options[&#39;arrow-end&#39;]\n\t });\n\t\n\t var font = chart.options.font;\n\t var fontF = chart.options[&#39;font-family&#39;];\n\t var fontW = chart.options[&#39;font-weight&#39;];\n\t\n\t if (font) line.attr({ &#39;font&#39;: font });\n\t if (fontF) line.attr({ &#39;font-family&#39;: fontF });\n\t if (fontW) line.attr({ &#39;font-weight&#39;: fontW });\n\t\n\t if (text) {\n\t\n\t var centerText = false;\n\t\n\t var textPath = chart.paper.text(0, 0, text);\n\t\n\t var isHorizontal = false;\n\t var firstTo = to[0];\n\t\n\t if (from.y === firstTo.y) {\n\t isHorizontal = true;\n\t }\n\t\n\t var x = 0,\n\t y = 0;\n\t\n\t if (centerText) {\n\t if (from.x &gt; firstTo.x) {\n\t x = from.x - (from.x - firstTo.x)/2;\n\t } else {\n\t x = firstTo.x - (firstTo.x - from.x)/2;\n\t }\n\t\n\t if (from.y &gt; firstTo.y) {\n\t y = from.y - (from.y - firstTo.y)/2;\n\t } else {\n\t y = firstTo.y - (firstTo.y - from.y)/2;\n\t }\n\t\n\t if (isHorizontal) {\n\t x -= textPath.getBBox().width/2;\n\t y -= chart.options[&#39;text-margin&#39;];\n\t } else {\n\t x += chart.options[&#39;text-margin&#39;];\n\t y -= textPath.getBBox().height/2;\n\t }\n\t } else {\n\t x = from.x;\n\t y = from.y;\n\t\n\t if (isHorizontal) {\n\t x += chart.options[&#39;text-margin&#39;]/2;\n\t y -= chart.options[&#39;text-margin&#39;];\n\t } else {\n\t x += chart.options[&#39;text-margin&#39;]/2;\n\t y += chart.options[&#39;text-margin&#39;];\n\t }\n\t }\n\t\n\t textPath.attr({\n\t &#39;text-anchor&#39;: &#39;start&#39;,\n\t &#39;font-size&#39;: chart.options[&#39;font-size&#39;],\n\t &#39;fill&#39;: chart.options[&#39;font-color&#39;],\n\t x: x,\n\t y: y\n\t });\n\t\n\t if (font) textPath.attr({ &#39;font&#39;: font });\n\t if (fontF) textPath.attr({ &#39;font-family&#39;: fontF });\n\t if (fontW) textPath.attr({ &#39;font-weight&#39;: fontW });\n\t }\n\t\n\t return line;\n\t}\n\t\n\tfunction checkLineIntersection(line1StartX, line1StartY, line1EndX, line1EndY, line2StartX, line2StartY, line2EndX, line2EndY) {\n\t // if the lines intersect, the result contains the x and y of the intersection (treating the lines as infinite) and booleans for whether line segment 1 or line segment 2 contain the point\n\t var denominator, a, b, numerator1, numerator2, result = {\n\t x: null,\n\t y: null,\n\t onLine1: false,\n\t onLine2: false\n\t };\n\t denominator = ((line2EndY - line2StartY) * (line1EndX - line1StartX)) - ((line2EndX - line2StartX) * (line1EndY - line1StartY));\n\t if (denominator === 0) {\n\t return result;\n\t }\n\t a = line1StartY - line2StartY;\n\t b = line1StartX - line2StartX;\n\t numerator1 = ((line2EndX - line2StartX) * a) - ((line2EndY - line2StartY) * b);\n\t numerator2 = ((line1EndX - line1StartX) * a) - ((line1EndY - line1StartY) * b);\n\t a = numerator1 / denominator;\n\t b = numerator2 / denominator;\n\t\n\t // if we cast these lines infinitely in both directions, they intersect here:\n\t result.x = line1StartX + (a * (line1EndX - line1StartX));\n\t result.y = line1StartY + (a * (line1EndY - line1StartY));\n\t /*\n\t // it is worth noting that this should be the same as:\n\t x = line2StartX + (b * (line2EndX - line2StartX));\n\t y = line2StartX + (b * (line2EndY - line2StartY));\n\t */\n\t // if line1 is a segment and line2 is infinite, they intersect if:\n\t if (a &gt; 0 &amp;&amp; a &lt; 1) {\n\t result.onLine1 = true;\n\t }\n\t // if line2 is a segment and line1 is infinite, they intersect if:\n\t if (b &gt; 0 &amp;&amp; b &lt; 1) {\n\t result.onLine2 = true;\n\t }\n\t // if line1 and line2 are segments, they intersect if both of the above are true\n\t return result;\n\t}\n\t\n\tmodule.exports = {\n\t\tdrawPath: drawPath,\n\t\tdrawLine: drawLine,\n\t\tcheckLineIntersection: checkLineIntersection\n\t};\n\n\n/***/ },\n/* 4 */\n/*!********************************!*\\\n !*** ./src/flowchart.parse.js ***!\n \\********************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar FlowChart = __webpack_require__(/*! ./flowchart.chart */ 6);\n\tvar Start = __webpack_require__(/*! ./flowchart.symbol.start */ 12);\n\tvar End = __webpack_require__(/*! ./flowchart.symbol.end */ 9);\n\tvar Operation = __webpack_require__(/*! ./flowchart.symbol.operation */ 11);\n\tvar InputOutput = __webpack_require__(/*! ./flowchart.symbol.inputoutput */ 10);\n\tvar Subroutine = __webpack_require__(/*! ./flowchart.symbol.subroutine */ 13);\n\tvar Condition = __webpack_require__(/*! ./flowchart.symbol.condition */ 5);\n\t\n\tfunction parse(input) {\n\t input = input || &#39;&#39;;\n\t input = input.trim();\n\t\n\t var chart = {\n\t symbols: {},\n\t start: null,\n\t drawSVG: function(container, options) {\n\t var self = this;\n\t\n\t if (this.diagram) {\n\t this.diagram.clean();\n\t }\n\t\n\t var diagram = new FlowChart(container, options);\n\t this.diagram = diagram;\n\t var dispSymbols = {};\n\t\n\t function getDisplaySymbol(s) {\n\t if (dispSymbols[s.key]) {\n\t return dispSymbols[s.key];\n\t }\n\t\n\t switch (s.symbolType) {\n\t case &#39;start&#39;:\n\t dispSymbols[s.key] = new Start(diagram, s);\n\t break;\n\t case &#39;end&#39;:\n\t dispSymbols[s.key] = new End(diagram, s);\n\t break;\n\t case &#39;operation&#39;:\n\t dispSymbols[s.key] = new Operation(diagram, s);\n\t break;\n\t case &#39;inputoutput&#39;:\n\t dispSymbols[s.key] = new InputOutput(diagram, s);\n\t break;\n\t case &#39;subroutine&#39;:\n\t dispSymbols[s.key] = new Subroutine(diagram, s);\n\t break;\n\t case &#39;condition&#39;:\n\t dispSymbols[s.key] = new Condition(diagram, s);\n\t break;\n\t default:\n\t return new Error(&#39;Wrong symbol type!&#39;);\n\t }\n\t\n\t return dispSymbols[s.key];\n\t }\n\t\n\t (function constructChart(s, prevDisp, prev) {\n\t var dispSymb = getDisplaySymbol(s);\n\t\n\t if (self.start === s) {\n\t diagram.startWith(dispSymb);\n\t } else if (prevDisp &amp;&amp; prev &amp;&amp; !prevDisp.pathOk) {\n\t if (prevDisp instanceof(Condition)) {\n\t if (prev.yes === s) {\n\t prevDisp.yes(dispSymb);\n\t }\n\t if (prev.no === s) {\n\t prevDisp.no(dispSymb);\n\t }\n\t } else {\n\t prevDisp.then(dispSymb);\n\t }\n\t }\n\t\n\t if (dispSymb.pathOk) {\n\t return dispSymb;\n\t }\n\t\n\t if (dispSymb instanceof(Condition)) {\n\t if (s.yes) {\n\t constructChart(s.yes, dispSymb, s);\n\t }\n\t if (s.no) {\n\t constructChart(s.no, dispSymb, s);\n\t }\n\t } else if (s.next) {\n\t constructChart(s.next, dispSymb, s);\n\t }\n\t\n\t return dispSymb;\n\t })(this.start);\n\t\n\t diagram.render();\n\t },\n\t clean: function() {\n\t this.diagram.clean();\n\t }\n\t };\n\t\n\t var lines = [];\n\t var prevBreak = 0;\n\t for (var i0 = 1, i0len = input.length; i0 &lt; i0len; i0++) {\n\t if(input[i0] === &#39;\\n&#39; &amp;&amp; input[i0 - 1] !== &#39;\\\\&#39;) {\n\t var line0 = input.substring(prevBreak, i0);\n\t prevBreak = i0 + 1;\n\t lines.push(line0.replace(/\\\\\\n/g, &#39;\\n&#39;));\n\t }\n\t }\n\t\n\t if(prevBreak &lt; input.length) {\n\t lines.push(input.substr(prevBreak));\n\t }\n\t\n\t for (var l = 1, len = lines.length; l &lt; len;) {\n\t var currentLine = lines[l];\n\t\n\t if (currentLine.indexOf(&#39;-&gt;&#39;) &lt; 0 &amp;&amp; currentLine.indexOf(&#39;=&gt;&#39;) &lt; 0) {\n\t lines[l - 1] += &#39;\\n&#39; + currentLine;\n\t lines.splice(l, 1);\n\t len--;\n\t } else {\n\t l++;\n\t }\n\t }\n\t\n\t function getSymbol(s) {\n\t var startIndex = s.indexOf(&#39;(&#39;) + 1;\n\t var endIndex = s.indexOf(&#39;)&#39;);\n\t if (startIndex &gt;= 0 &amp;&amp; endIndex &gt;= 0) {\n\t return chart.symbols[s.substring(0, startIndex - 1)];\n\t }\n\t return chart.symbols[s];\n\t }\n\t\n\t function getNextPath(s) {\n\t var next = &#39;next&#39;;\n\t var startIndex = s.indexOf(&#39;(&#39;) + 1;\n\t var endIndex = s.indexOf(&#39;)&#39;);\n\t if (startIndex &gt;= 0 &amp;&amp; endIndex &gt;= 0) {\n\t next = flowSymb.substring(startIndex, endIndex);\n\t if (next.indexOf(&#39;,&#39;) &lt; 0) {\n\t if (next !== &#39;yes&#39; &amp;&amp; next !== &#39;no&#39;) {\n\t next = &#39;next, &#39; + next;\n\t }\n\t }\n\t }\n\t return next;\n\t }\n\t\n\t while (lines.length &gt; 0) {\n\t var line = lines.splice(0, 1)[0];\n\t\n\t if (line.indexOf(&#39;=&gt;&#39;) &gt;= 0) {\n\t // definition\n\t var parts = line.split(&#39;=&gt;&#39;);\n\t var symbol = {\n\t key: parts[0],\n\t symbolType: parts[1],\n\t text: null,\n\t link: null,\n\t target: null,\n\t flowstate: null\n\t };\n\t\n\t var sub;\n\t\n\t if (symbol.symbolType.indexOf(&#39;: &#39;) &gt;= 0) {\n\t sub = symbol.symbolType.split(&#39;: &#39;);\n\t symbol.symbolType = sub.shift();\n\t symbol.text = sub.join(&#39;: &#39;);\n\t }\n\t\n\t if (symbol.text &amp;&amp; symbol.text.indexOf(&#39;:&gt;&#39;) &gt;= 0) {\n\t sub = symbol.text.split(&#39;:&gt;&#39;);\n\t symbol.text = sub.shift();\n\t symbol.link = sub.join(&#39;:&gt;&#39;);\n\t } else if (symbol.symbolType.indexOf(&#39;:&gt;&#39;) &gt;= 0) {\n\t sub = symbol.symbolType.split(&#39;:&gt;&#39;);\n\t symbol.symbolType = sub.shift();\n\t symbol.link = sub.join(&#39;:&gt;&#39;);\n\t }\n\t\n\t if (symbol.symbolType.indexOf(&#39;\\n&#39;) &gt;= 0) {\n\t symbol.symbolType = symbol.symbolType.split(&#39;\\n&#39;)[0];\n\t }\n\t\n\t /* adding support for links */\n\t if (symbol.link) {\n\t var startIndex = symbol.link.indexOf(&#39;[&#39;) + 1;\n\t var endIndex = symbol.link.indexOf(&#39;]&#39;);\n\t if (startIndex &gt;= 0 &amp;&amp; endIndex &gt;= 0) {\n\t symbol.target = symbol.link.substring(startIndex, endIndex);\n\t symbol.link = symbol.link.substring(0, startIndex - 1);\n\t }\n\t }\n\t /* end of link support */\n\t\n\t /* adding support for flowstates */\n\t if (symbol.text) {\n\t if (symbol.text.indexOf(&#39;|&#39;) &gt;= 0) {\n\t var txtAndState = symbol.text.split(&#39;|&#39;);\n\t symbol.flowstate = txtAndState.pop().trim();\n\t symbol.text = txtAndState.join(&#39;|&#39;);\n\t }\n\t }\n\t /* end of flowstate support */\n\t\n\t chart.symbols[symbol.key] = symbol;\n\t\n\t } else if (line.indexOf(&#39;-&gt;&#39;) &gt;= 0) {\n\t // flow\n\t var flowSymbols = line.split(&#39;-&gt;&#39;);\n\t for (var i = 0, lenS = flowSymbols.length; i &lt; lenS; i++) {\n\t var flowSymb = flowSymbols[i];\n\t\n\t var realSymb = getSymbol(flowSymb);\n\t var next = getNextPath(flowSymb);\n\t\n\t var direction = null;\n\t if (next.indexOf(&#39;,&#39;) &gt;= 0) {\n\t var condOpt = next.split(&#39;,&#39;);\n\t next = condOpt[0];\n\t direction = condOpt[1].trim();\n\t }\n\t\n\t if (!chart.start) {\n\t chart.start = realSymb;\n\t }\n\t\n\t if (i + 1 &lt; lenS) {\n\t var nextSymb = flowSymbols[i + 1];\n\t realSymb[next] = getSymbol(nextSymb);\n\t realSymb[&#39;direction_&#39; + next] = direction;\n\t direction = null;\n\t }\n\t }\n\t }\n\t\n\t }\n\t return chart;\n\t}\n\t\n\tmodule.exports = parse;\n\n\n/***/ },\n/* 5 */\n/*!*******************************************!*\\\n !*** ./src/flowchart.symbol.condition.js ***!\n \\*******************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Symbol = __webpack_require__(/*! ./flowchart.symbol */ 2);\n\tvar inherits = __webpack_require__(/*! ./flowchart.helpers */ 1).inherits;\n\tvar drawAPI = __webpack_require__(/*! ./flowchart.functions */ 3);\n\tvar drawPath = drawAPI.drawPath;\n\t\n\tfunction Condition(chart, options) {\n\t options = options || {};\n\t Symbol.call(this, chart, options);\n\t this.textMargin = this.getAttr(&#39;text-margin&#39;);\n\t this.yes_direction = &#39;bottom&#39;;\n\t this.no_direction = &#39;right&#39;;\n\t if (options.yes &amp;&amp; options.direction_yes &amp;&amp; options.no &amp;&amp; !options.direction_no) {\n\t if (options.direction_yes === &#39;right&#39;) {\n\t this.no_direction = &#39;bottom&#39;;\n\t this.yes_direction = &#39;right&#39;;\n\t } else {\n\t this.no_direction = &#39;right&#39;;\n\t this.yes_direction = &#39;bottom&#39;;\n\t }\n\t } else if (options.yes &amp;&amp; !options.direction_yes &amp;&amp; options.no &amp;&amp; options.direction_no) {\n\t if (options.direction_no === &#39;right&#39;) {\n\t this.yes_direction = &#39;bottom&#39;;\n\t this.no_direction = &#39;right&#39;;\n\t } else {\n\t this.yes_direction = &#39;right&#39;;\n\t this.no_direction = &#39;bottom&#39;;\n\t }\n\t } else {\n\t this.yes_direction = &#39;bottom&#39;;\n\t this.no_direction = &#39;right&#39;;\n\t }\n\t\n\t this.yes_direction = this.yes_direction || &#39;bottom&#39;;\n\t this.no_direction = this.no_direction || &#39;right&#39;;\n\t\n\t this.text.attr({\n\t x: this.textMargin * 2\n\t });\n\t\n\t var width = this.text.getBBox().width + 3 * this.textMargin;\n\t width += width/2;\n\t var height = this.text.getBBox().height + 2 * this.textMargin;\n\t height += height/2;\n\t height = Math.max(width * 0.5, height);\n\t var startX = width/4;\n\t var startY = height/4;\n\t\n\t this.text.attr({\n\t x: startX + this.textMargin/2\n\t });\n\t\n\t var start = {x: startX, y: startY};\n\t var points = [\n\t {x: startX - width/4, y: startY + height/4},\n\t {x: startX - width/4 + width/2, y: startY + height/4 + height/2},\n\t {x: startX - width/4 + width, y: startY + height/4},\n\t {x: startX - width/4 + width/2, y: startY + height/4 - height/2},\n\t {x: startX - width/4, y: startY + height/4}\n\t ];\n\t\n\t var symbol = drawPath(chart, start, points);\n\t\n\t symbol.attr({\n\t stroke: this.getAttr(&#39;element-color&#39;),\n\t &#39;stroke-width&#39;: this.getAttr(&#39;line-width&#39;),\n\t fill: this.getAttr(&#39;fill&#39;)\n\t });\n\t if (options.link) { symbol.attr(&#39;href&#39;, options.link); }\n\t if (options.target) { symbol.attr(&#39;target&#39;, options.target); }\n\t if (options.key) { symbol.node.id = options.key; }\n\t symbol.node.setAttribute(&#39;class&#39;, this.getAttr(&#39;class&#39;));\n\t\n\t this.text.attr({\n\t y: symbol.getBBox().height/2\n\t });\n\t\n\t this.group.push(symbol);\n\t symbol.insertBefore(this.text);\n\t\n\t this.initialize();\n\t}\n\tinherits(Condition, Symbol);\n\t\n\tCondition.prototype.render = function() {\n\t\n\t if (this.yes_direction) {\n\t this[this.yes_direction + &#39;_symbol&#39;] = this.yes_symbol;\n\t }\n\t\n\t if (this.no_direction) {\n\t this[this.no_direction + &#39;_symbol&#39;] = this.no_symbol;\n\t }\n\t\n\t var lineLength = this.getAttr(&#39;line-length&#39;);\n\t\n\t if (this.bottom_symbol) {\n\t var bottomPoint = this.getBottom();\n\t\n\t if (!this.bottom_symbol.isPositioned) {\n\t this.bottom_symbol.shiftY(this.getY() + this.height + lineLength);\n\t this.bottom_symbol.setX(bottomPoint.x - this.bottom_symbol.width/2);\n\t this.bottom_symbol.isPositioned = true;\n\t\n\t this.bottom_symbol.render();\n\t }\n\t }\n\t\n\t if (this.right_symbol) {\n\t var rightPoint = this.getRight();\n\t\n\t if (!this.right_symbol.isPositioned) {\n\t\n\t this.right_symbol.setY(rightPoint.y - this.right_symbol.height/2);\n\t this.right_symbol.shiftX(this.group.getBBox().x + this.width + lineLength);\n\t\n\t var self = this;\n\t (function shift() {\n\t var hasSymbolUnder = false;\n\t var symb;\n\t for (var i = 0, len = self.chart.symbols.length; i &lt; len; i++) {\n\t symb = self.chart.symbols[i];\n\t\n\t var diff = Math.abs(symb.getCenter().x - self.right_symbol.getCenter().x);\n\t if (symb.getCenter().y &gt; self.right_symbol.getCenter().y &amp;&amp; diff &lt;= self.right_symbol.width/2) {\n\t hasSymbolUnder = true;\n\t break;\n\t }\n\t }\n\t\n\t if (hasSymbolUnder) {\n\t self.right_symbol.setX(symb.getX() + symb.width + lineLength);\n\t shift();\n\t }\n\t })();\n\t\n\t this.right_symbol.isPositioned = true;\n\t\n\t this.right_symbol.render();\n\t }\n\t }\n\t};\n\t\n\tCondition.prototype.renderLines = function() {\n\t if (this.yes_symbol) {\n\t this.drawLineTo(this.yes_symbol, this.getAttr(&#39;yes-text&#39;), this.yes_direction);\n\t }\n\t\n\t if (this.no_symbol) {\n\t this.drawLineTo(this.no_symbol, this.getAttr(&#39;no-text&#39;), this.no_direction);\n\t }\n\t};\n\t\n\tmodule.exports = Condition;\n\n\n/***/ },\n/* 6 */\n/*!********************************!*\\\n !*** ./src/flowchart.chart.js ***!\n \\********************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Raphael = __webpack_require__(/*! raphael */ 15);\n\tvar defaults = __webpack_require__(/*! ./flowchart.helpers */ 1).defaults;\n\tvar defaultOptions = __webpack_require__(/*! ./flowchart.defaults */ 7);\n\tvar Condition = __webpack_require__(/*! ./flowchart.symbol.condition */ 5);\n\t\n\tfunction FlowChart(container, options) {\n\t options = options || {};\n\t\n\t this.paper = new Raphael(container);\n\t\n\t this.options = defaults(options, defaultOptions);\n\t\n\t this.symbols = [];\n\t this.lines = [];\n\t this.start = null;\n\t}\n\t\n\tFlowChart.prototype.handle = function(symbol) {\n\t if (this.symbols.indexOf(symbol) &lt;= -1) {\n\t this.symbols.push(symbol);\n\t }\n\t\n\t var flowChart = this;\n\t\n\t if (symbol instanceof(Condition)) {\n\t symbol.yes = function(nextSymbol) {\n\t symbol.yes_symbol = nextSymbol;\n\t if(symbol.no_symbol) {\n\t symbol.pathOk = true;\n\t }\n\t return flowChart.handle(nextSymbol);\n\t };\n\t symbol.no = function(nextSymbol) {\n\t symbol.no_symbol = nextSymbol;\n\t if(symbol.yes_symbol) {\n\t symbol.pathOk = true;\n\t }\n\t return flowChart.handle(nextSymbol);\n\t };\n\t } else {\n\t symbol.then = function(nextSymbol) {\n\t symbol.next = nextSymbol;\n\t symbol.pathOk = true;\n\t return flowChart.handle(nextSymbol);\n\t };\n\t }\n\t\n\t return symbol;\n\t};\n\t\n\tFlowChart.prototype.startWith = function(symbol) {\n\t this.start = symbol;\n\t return this.handle(symbol);\n\t};\n\t\n\tFlowChart.prototype.render = function() {\n\t var maxWidth = 0,\n\t maxHeight = 0,\n\t i = 0,\n\t len = 0,\n\t maxX = 0,\n\t maxY = 0,\n\t minX = 0,\n\t minY = 0,\n\t symbol,\n\t line;\n\t\n\t for (i = 0, len = this.symbols.length; i &lt; len; i++) {\n\t symbol = this.symbols[i];\n\t if (symbol.width &gt; maxWidth) {\n\t maxWidth = symbol.width;\n\t }\n\t if (symbol.height &gt; maxHeight) {\n\t maxHeight = symbol.height;\n\t }\n\t }\n\t\n\t for (i = 0, len = this.symbols.length; i &lt; len; i++) {\n\t symbol = this.symbols[i];\n\t symbol.shiftX(this.options.x + (maxWidth - symbol.width)/2 + this.options[&#39;line-width&#39;]);\n\t symbol.shiftY(this.options.y + (maxHeight - symbol.height)/2 + this.options[&#39;line-width&#39;]);\n\t }\n\t\n\t this.start.render();\n\t // for (i = 0, len = this.symbols.length; i &lt; len; i++) {\n\t // symbol = this.symbols[i];\n\t // symbol.render();\n\t // }\n\t\n\t for (i = 0, len = this.symbols.length; i &lt; len; i++) {\n\t symbol = this.symbols[i];\n\t symbol.renderLines();\n\t }\n\t\n\t maxX = this.maxXFromLine;\n\t\n\t for (i = 0, len = this.symbols.length; i &lt; len; i++) {\n\t symbol = this.symbols[i];\n\t var x = symbol.getX() + symbol.width;\n\t var y = symbol.getY() + symbol.height;\n\t if (x &gt; maxX) {\n\t maxX = x;\n\t }\n\t if (y &gt; maxY) {\n\t maxY = y;\n\t }\n\t }\n\t\n\t for (i = 0, len = this.lines.length; i &lt; len; i++) {\n\t line = this.lines[i].getBBox();\n\t var x = line.x;\n\t var y = line.y;\n\t var x2 = line.x2;\n\t var y2 = line.y2;\n\t if (x &lt; minX) {\n\t minX = x;\n\t }\n\t if (y &lt; minY) {\n\t minY = y;\n\t }\n\t if (x2 &gt; maxX) {\n\t maxX = x2;\n\t }\n\t if (y2 &gt; maxY) {\n\t maxY = y2;\n\t }\n\t }\n\t\n\t var scale = this.options[&#39;scale&#39;];\n\t var lineWidth = this.options[&#39;line-width&#39;];\n\t\n\t if (minX &lt; 0) minX -= lineWidth;\n\t if (minY &lt; 0) minY -= lineWidth;\n\t\n\t var width = maxX + lineWidth - minX;\n\t var height = maxY + lineWidth - minY;\n\t\n\t this.paper.setSize(width * scale, height * scale);\n\t this.paper.setViewBox(minX, minY, width, height, true);\n\t};\n\t\n\tFlowChart.prototype.clean = function() {\n\t if (this.paper) {\n\t var paperDom = this.paper.canvas;\n\t paperDom.parentNode.removeChild(paperDom);\n\t }\n\t};\n\t\n\tmodule.exports = FlowChart;\n\n\n/***/ },\n/* 7 */\n/*!***********************************!*\\\n !*** ./src/flowchart.defaults.js ***!\n \\***********************************/\n/***/ function(module, exports) {\n\n\t// defaults\n\tmodule.exports = {\n\t &#39;x&#39;: 0,\n\t &#39;y&#39;: 0,\n\t &#39;line-width&#39;: 3,\n\t &#39;line-length&#39;: 50,\n\t &#39;text-margin&#39;: 10,\n\t &#39;font-size&#39;: 14,\n\t &#39;font-color&#39;: &#39;black&#39;,\n\t // &#39;font&#39;: &#39;normal&#39;,\n\t // &#39;font-family&#39;: &#39;calibri&#39;,\n\t // &#39;font-weight&#39;: &#39;normal&#39;,\n\t &#39;line-color&#39;: &#39;black&#39;,\n\t &#39;element-color&#39;: &#39;black&#39;,\n\t &#39;fill&#39;: &#39;white&#39;,\n\t &#39;yes-text&#39;: &#39;yes&#39;,\n\t &#39;no-text&#39;: &#39;no&#39;,\n\t &#39;arrow-end&#39;: &#39;block&#39;,\n\t &#39;class&#39;: &#39;flowchart&#39;,\n\t &#39;scale&#39;: 1,\n\t &#39;symbols&#39;: {\n\t &#39;start&#39;: {},\n\t &#39;end&#39;: {},\n\t &#39;condition&#39;: {},\n\t &#39;inputoutput&#39;: {},\n\t &#39;operation&#39;: {},\n\t &#39;subroutine&#39;: {}\n\t }//,\n\t // &#39;flowstate&#39; : {\n\t // &#39;past&#39; : { &#39;fill&#39;: &#39;#CCCCCC&#39;, &#39;font-size&#39;: 12},\n\t // &#39;current&#39; : {&#39;fill&#39;: &#39;yellow&#39;, &#39;font-color&#39;: &#39;red&#39;, &#39;font-weight&#39;: &#39;bold&#39;},\n\t // &#39;future&#39; : { &#39;fill&#39;: &#39;#FFFF99&#39;},\n\t // &#39;invalid&#39;: {&#39;fill&#39;: &#39;#444444&#39;}\n\t // }\n\t};\n\n\n/***/ },\n/* 8 */\n/*!*******************************!*\\\n !*** ./src/flowchart.shim.js ***!\n \\*******************************/\n/***/ function(module, exports) {\n\n\t// add indexOf to non ECMA-262 standard compliant browsers\n\tif (!Array.prototype.indexOf) {\n\t Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {\n\t \&quot;use strict\&quot;;\n\t if (this === null) {\n\t throw new TypeError();\n\t }\n\t var t = Object(this);\n\t var len = t.length &gt;&gt;&gt; 0;\n\t if (len === 0) {\n\t return -1;\n\t }\n\t var n = 0;\n\t if (arguments.length &gt; 0) {\n\t n = Number(arguments[1]);\n\t if (n != n) { // shortcut for verifying if it&#39;s NaN\n\t n = 0;\n\t } else if (n !== 0 &amp;&amp; n != Infinity &amp;&amp; n != -Infinity) {\n\t n = (n &gt; 0 || -1) * Math.floor(Math.abs(n));\n\t }\n\t }\n\t if (n &gt;= len) {\n\t return -1;\n\t }\n\t var k = n &gt;= 0 ? n : Math.max(len - Math.abs(n), 0);\n\t for (; k &lt; len; k++) {\n\t if (k in t &amp;&amp; t[k] === searchElement) {\n\t return k;\n\t }\n\t }\n\t return -1;\n\t };\n\t}\n\t\n\t// add lastIndexOf to non ECMA-262 standard compliant browsers\n\tif (!Array.prototype.lastIndexOf) {\n\t Array.prototype.lastIndexOf = function(searchElement /*, fromIndex*/) {\n\t \&quot;use strict\&quot;;\n\t if (this === null) {\n\t throw new TypeError();\n\t }\n\t var t = Object(this);\n\t var len = t.length &gt;&gt;&gt; 0;\n\t if (len === 0) {\n\t return -1;\n\t }\n\t var n = len;\n\t if (arguments.length &gt; 1) {\n\t n = Number(arguments[1]);\n\t if (n != n) {\n\t n = 0;\n\t } else if (n !== 0 &amp;&amp; n != (1 / 0) &amp;&amp; n != -(1 / 0)) {\n\t n = (n &gt; 0 || -1) * Math.floor(Math.abs(n));\n\t }\n\t }\n\t var k = n &gt;= 0 ? Math.min(n, len - 1) : len - Math.abs(n);\n\t for (; k &gt;= 0; k--) {\n\t if (k in t &amp;&amp; t[k] === searchElement) {\n\t return k;\n\t }\n\t }\n\t return -1;\n\t };\n\t}\n\t\n\tif (!String.prototype.trim) {\n\t String.prototype.trim = function() {\n\t return this.replace(/^\\s+|\\s+$/g, &#39;&#39;);\n\t };\n\t}\n\n/***/ },\n/* 9 */\n/*!*************************************!*\\\n !*** ./src/flowchart.symbol.end.js ***!\n \\*************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Symbol = __webpack_require__(/*! ./flowchart.symbol */ 2);\n\tvar inherits = __webpack_require__(/*! ./flowchart.helpers */ 1).inherits;\n\t\n\tfunction End(chart, options) {\n\t var symbol = chart.paper.rect(0, 0, 0, 0, 20);\n\t options = options || {};\n\t options.text = options.text || &#39;End&#39;;\n\t Symbol.call(this, chart, options, symbol);\n\t}\n\tinherits(End, Symbol);\n\t\n\tmodule.exports = End;\n\n\n/***/ },\n/* 10 */\n/*!*********************************************!*\\\n !*** ./src/flowchart.symbol.inputoutput.js ***!\n \\*********************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Symbol = __webpack_require__(/*! ./flowchart.symbol */ 2);\n\tvar inherits = __webpack_require__(/*! ./flowchart.helpers */ 1).inherits;\n\tvar drawAPI = __webpack_require__(/*! ./flowchart.functions */ 3);\n\tvar drawPath = drawAPI.drawPath;\n\t\n\tfunction InputOutput(chart, options) {\n\t options = options || {};\n\t Symbol.call(this, chart, options);\n\t this.textMargin = this.getAttr(&#39;text-margin&#39;);\n\t\n\t this.text.attr({\n\t x: this.textMargin * 3\n\t });\n\t\n\t var width = this.text.getBBox().width + 4 * this.textMargin;\n\t var height = this.text.getBBox().height + 2 * this.textMargin;\n\t var startX = this.textMargin;\n\t var startY = height/2;\n\t\n\t var start = {x: startX, y: startY};\n\t var points = [\n\t {x: startX - this.textMargin, y: height},\n\t {x: startX - this.textMargin + width, y: height},\n\t {x: startX - this.textMargin + width + 2 * this.textMargin, y: 0},\n\t {x: startX - this.textMargin + 2 * this.textMargin, y: 0},\n\t {x: startX, y: startY}\n\t ];\n\t\n\t var symbol = drawPath(chart, start, points);\n\t\n\t symbol.attr({\n\t stroke: this.getAttr(&#39;element-color&#39;),\n\t &#39;stroke-width&#39;: this.getAttr(&#39;line-width&#39;),\n\t fill: this.getAttr(&#39;fill&#39;)\n\t });\n\t if (options.link) { symbol.attr(&#39;href&#39;, options.link); }\n\t if (options.target) { symbol.attr(&#39;target&#39;, options.target); }\n\t if (options.key) { symbol.node.id = options.key; }\n\t symbol.node.setAttribute(&#39;class&#39;, this.getAttr(&#39;class&#39;));\n\t\n\t this.text.attr({\n\t y: symbol.getBBox().height/2\n\t });\n\t\n\t this.group.push(symbol);\n\t symbol.insertBefore(this.text);\n\t\n\t this.initialize();\n\t}\n\tinherits(InputOutput, Symbol);\n\t\n\tInputOutput.prototype.getLeft = function() {\n\t var y = this.getY() + this.group.getBBox().height/2;\n\t var x = this.getX() + this.textMargin;\n\t return {x: x, y: y};\n\t};\n\t\n\tInputOutput.prototype.getRight = function() {\n\t var y = this.getY() + this.group.getBBox().height/2;\n\t var x = this.getX() + this.group.getBBox().width - this.textMargin;\n\t return {x: x, y: y};\n\t};\n\t\n\tmodule.exports = InputOutput;\n\n\n/***/ },\n/* 11 */\n/*!*******************************************!*\\\n !*** ./src/flowchart.symbol.operation.js ***!\n \\*******************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Symbol = __webpack_require__(/*! ./flowchart.symbol */ 2);\n\tvar inherits = __webpack_require__(/*! ./flowchart.helpers */ 1).inherits;\n\t\n\tfunction Operation(chart, options) {\n\t var symbol = chart.paper.rect(0, 0, 0, 0);\n\t options = options || {};\n\t Symbol.call(this, chart, options, symbol);\n\t}\n\tinherits(Operation, Symbol);\n\t\n\tmodule.exports = Operation;\n\n\n/***/ },\n/* 12 */\n/*!***************************************!*\\\n !*** ./src/flowchart.symbol.start.js ***!\n \\***************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Symbol = __webpack_require__(/*! ./flowchart.symbol */ 2);\n\tvar inherits = __webpack_require__(/*! ./flowchart.helpers */ 1).inherits;\n\t\n\tfunction Start(chart, options) {\n\t var symbol = chart.paper.rect(0, 0, 0, 0, 20);\n\t options = options || {};\n\t options.text = options.text || &#39;Start&#39;;\n\t Symbol.call(this, chart, options, symbol);\n\t}\n\tinherits(Start, Symbol);\n\t\n\tmodule.exports = Start;\n\t\n\t// Start.prototype.render = function() {\n\t// if (this.next) {\n\t// var lineLength = this.chart.options.symbols[this.symbolType][&#39;line-length&#39;] || this.chart.options[&#39;line-length&#39;];\n\t\n\t// var bottomPoint = this.getBottom();\n\t// var topPoint = this.next.getTop();\n\t\n\t// if (!this.next.isPositioned) {\n\t// this.next.shiftY(this.getY() + this.height + lineLength);\n\t// this.next.setX(bottomPoint.x - this.next.width/2);\n\t// this.next.isPositioned = true;\n\t\n\t// this.next.render();\n\t// }\n\t// }\n\t// };\n\t\n\t// Start.prototype.renderLines = function() {\n\t// if (this.next) {\n\t// this.drawLineTo(this.next);\n\t// }\n\t// };\n\n\n/***/ },\n/* 13 */\n/*!********************************************!*\\\n !*** ./src/flowchart.symbol.subroutine.js ***!\n \\********************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Symbol = __webpack_require__(/*! ./flowchart.symbol */ 2);\n\tvar inherits = __webpack_require__(/*! ./flowchart.helpers */ 1).inherits;\n\t\n\tfunction Subroutine(chart, options) {\n\t var symbol = chart.paper.rect(0, 0, 0, 0);\n\t options = options || {};\n\t Symbol.call(this, chart, options, symbol);\n\t\n\t symbol.attr({\n\t width: this.text.getBBox().width + 4 * this.getAttr(&#39;text-margin&#39;)\n\t });\n\t\n\t this.text.attr({\n\t &#39;x&#39;: 2 * this.getAttr(&#39;text-margin&#39;)\n\t });\n\t\n\t var innerWrap = chart.paper.rect(0, 0, 0, 0);\n\t innerWrap.attr({\n\t x: this.getAttr(&#39;text-margin&#39;),\n\t stroke: this.getAttr(&#39;element-color&#39;),\n\t &#39;stroke-width&#39;: this.getAttr(&#39;line-width&#39;),\n\t width: this.text.getBBox().width + 2 * this.getAttr(&#39;text-margin&#39;),\n\t height: this.text.getBBox().height + 2 * this.getAttr(&#39;text-margin&#39;),\n\t fill: this.getAttr(&#39;fill&#39;)\n\t });\n\t if (options.key) { innerWrap.node.id = options.key + &#39;i&#39;; }\n\t\n\t var font = this.getAttr(&#39;font&#39;);\n\t var fontF = this.getAttr(&#39;font-family&#39;);\n\t var fontW = this.getAttr(&#39;font-weight&#39;);\n\t\n\t if (font) innerWrap.attr({ &#39;font&#39;: font });\n\t if (fontF) innerWrap.attr({ &#39;font-family&#39;: fontF });\n\t if (fontW) innerWrap.attr({ &#39;font-weight&#39;: fontW });\n\t\n\t if (options.link) { innerWrap.attr(&#39;href&#39;, options.link); }\n\t if (options.target) { innerWrap.attr(&#39;target&#39;, options.target); }\n\t this.group.push(innerWrap);\n\t innerWrap.insertBefore(this.text);\n\t\n\t this.initialize();\n\t}\n\tinherits(Subroutine, Symbol);\n\t\n\tmodule.exports = Subroutine;\n\n\n/***/ },\n/* 14 */\n/*!******************************!*\\\n !*** ./src/jquery-plugin.js ***!\n \\******************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\tif (typeof jQuery != &#39;undefined&#39;) {\n\t\tvar parse = __webpack_require__(/*! ./flowchart.parse */ 4);\n\t\t(function( $ ) {\n\t\t\t$.fn.flowChart = function( options ) {\n\t\t\t\treturn this.each(function() {\n\t\t\t\t\tvar $this = $(this);\n\t\t\t\t\tvar chart = parse($this.text());\n\t\t\t\t\t$this.html(&#39;&#39;);\n\t\t\t\t\tchart.drawSVG(this, options);\n\t\t\t\t});\n\t\t\t};\n\t\t})(jQuery); // eslint-disable-line\n\t}\n\n\n/***/ },\n/* 15 */\n/*!**************************!*\\\n !*** external \&quot;Raphael\&quot; ***!\n \\**************************/\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_15__;\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** flowchart.js\n **/&quot;,&quot; \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \&quot;\&quot;;\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 41178340126627f4fc47\n **/&quot;,&quot;require(&#39;./src/flowchart.shim&#39;);\nvar parse = require(&#39;./src/flowchart.parse&#39;);\nrequire(&#39;./src/jquery-plugin&#39;);\n\nvar FlowChart = {\n\tparse: parse\n};\n\nif (typeof window !== &#39;undefined&#39;) {\n\twindow.flowchart = FlowChart;\n}\n\nmodule.exports = FlowChart;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./index.js\n ** module id = 0\n ** module chunks = 0\n **/&quot;,&quot;function _defaults(options, defaultOptions) {\n if (!options || typeof options === &#39;function&#39;) {\n return defaultOptions;\n }\n\n var merged = {};\n for (var attrname in defaultOptions) {\n merged[attrname] = defaultOptions[attrname];\n }\n\n for (attrname in options) {\n if (options[attrname]) {\n if (typeof merged[attrname] === &#39;object&#39;) {\n merged[attrname] = _defaults(merged[attrname], options[attrname]);\n } else {\n merged[attrname] = options[attrname];\n }\n }\n }\n return merged;\n}\n\nfunction _inherits(ctor, superCtor) {\n if (typeof(Object.create) === &#39;function&#39;) {\n // implementation from standard node.js &#39;util&#39; module\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n } else {\n // old school shim for old browsers\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n}\n\n// move dependent functions to a container so that\n// they can be overriden easier in no jquery environment (node.js)\nmodule.exports = {\n defaults: _defaults,\n inherits: _inherits\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/flowchart.helpers.js\n ** module id = 1\n ** module chunks = 0\n **/&quot;,&quot;var drawAPI = require(&#39;./flowchart.functions&#39;);\nvar drawLine = drawAPI.drawLine;\nvar checkLineIntersection = drawAPI.checkLineIntersection;\n\nfunction Symbol(chart, options, symbol) {\n this.chart = chart;\n this.group = this.chart.paper.set();\n this.symbol = symbol;\n this.connectedTo = [];\n this.symbolType = options.symbolType;\n this.flowstate = (options.flowstate || &#39;future&#39;);\n\n this.next_direction = options.next &amp;&amp; options[&#39;direction_next&#39;] ? options[&#39;direction_next&#39;] : undefined;\n\n this.text = this.chart.paper.text(0, 0, options.text);\n //Raphael does not support the svg group tag so setting the text node id to the symbol node id plus t\n if (options.key) { this.text.node.id = options.key + &#39;t&#39;; }\n this.text.node.setAttribute(&#39;class&#39;, this.getAttr(&#39;class&#39;) + &#39;t&#39;);\n\n this.text.attr({\n &#39;text-anchor&#39;: &#39;start&#39;,\n &#39;x&#39; : this.getAttr(&#39;text-margin&#39;),\n &#39;fill&#39; : this.getAttr(&#39;font-color&#39;),\n &#39;font-size&#39; : this.getAttr(&#39;font-size&#39;)\n });\n\n var font = this.getAttr(&#39;font&#39;);\n var fontF = this.getAttr(&#39;font-family&#39;);\n var fontW = this.getAttr(&#39;font-weight&#39;);\n\n if (font) this.text.attr({ &#39;font&#39;: font });\n if (fontF) this.text.attr({ &#39;font-family&#39;: fontF });\n if (fontW) this.text.attr({ &#39;font-weight&#39;: fontW });\n\n if (options.link) { this.text.attr(&#39;href&#39;, options.link); }\n if (options.target) { this.text.attr(&#39;target&#39;, options.target); }\n\n var maxWidth = this.getAttr(&#39;maxWidth&#39;);\n if (maxWidth) {\n // using this approach: http://stackoverflow.com/a/3153457/22466\n var words = options.text.split(&#39; &#39;);\n var tempText = \&quot;\&quot;;\n for (var i=0, ii=words.length; i&lt;ii; i++) {\n var word = words[i];\n this.text.attr(\&quot;text\&quot;, tempText + \&quot; \&quot; + word);\n if (this.text.getBBox().width &gt; maxWidth) {\n tempText += \&quot;\\n\&quot; + word;\n } else {\n tempText += \&quot; \&quot; + word;\n }\n }\n this.text.attr(\&quot;text\&quot;, tempText.substring(1));\n }\n\n this.group.push(this.text);\n\n if (symbol) {\n var tmpMargin = this.getAttr(&#39;text-margin&#39;);\n\n symbol.attr({\n &#39;fill&#39; : this.getAttr(&#39;fill&#39;),\n &#39;stroke&#39; : this.getAttr(&#39;element-color&#39;),\n &#39;stroke-width&#39; : this.getAttr(&#39;line-width&#39;),\n &#39;width&#39; : this.text.getBBox().width + 2 * tmpMargin,\n &#39;height&#39; : this.text.getBBox().height + 2 * tmpMargin\n });\n\n symbol.node.setAttribute(&#39;class&#39;, this.getAttr(&#39;class&#39;));\n\n if (options.link) { symbol.attr(&#39;href&#39;, options.link); }\n if (options.target) { symbol.attr(&#39;target&#39;, options.target); }\n if (options.key) { symbol.node.id = options.key; }\n\n this.group.push(symbol);\n symbol.insertBefore(this.text);\n\n this.text.attr({\n &#39;y&#39;: symbol.getBBox().height/2\n });\n\n this.initialize();\n }\n\n}\n\n/* Gets the attribute based on Flowstate, Symbol-Name and default, first found wins */\nSymbol.prototype.getAttr = function(attName) {\n if (!this.chart) {\n return undefined;\n }\n var opt3 = (this.chart.options) ? this.chart.options[attName] : undefined;\n var opt2 = (this.chart.options.symbols) ? this.chart.options.symbols[this.symbolType][attName] : undefined;\n var opt1;\n if (this.chart.options.flowstate &amp;&amp; this.chart.options.flowstate[this.flowstate]) {\n opt1 = this.chart.options.flowstate[this.flowstate][attName];\n }\n return (opt1 || opt2 || opt3);\n};\n\nSymbol.prototype.initialize = function() {\n this.group.transform(&#39;t&#39; + this.getAttr(&#39;line-width&#39;) + &#39;,&#39; + this.getAttr(&#39;line-width&#39;));\n\n this.width = this.group.getBBox().width;\n this.height = this.group.getBBox().height;\n};\n\nSymbol.prototype.getCenter = function() {\n return {x: this.getX() + this.width/2,\n y: this.getY() + this.height/2};\n};\n\nSymbol.prototype.getX = function() {\n return this.group.getBBox().x;\n};\n\nSymbol.prototype.getY = function() {\n return this.group.getBBox().y;\n};\n\nSymbol.prototype.shiftX = function(x) {\n this.group.transform(&#39;t&#39; + (this.getX() + x) + &#39;,&#39; + this.getY());\n};\n\nSymbol.prototype.setX = function(x) {\n this.group.transform(&#39;t&#39; + x + &#39;,&#39; + this.getY());\n};\n\nSymbol.prototype.shiftY = function(y) {\n this.group.transform(&#39;t&#39; + this.getX() + &#39;,&#39; + (this.getY() + y));\n};\n\nSymbol.prototype.setY = function(y) {\n this.group.transform(&#39;t&#39; + this.getX() + &#39;,&#39; + y);\n};\n\nSymbol.prototype.getTop = function() {\n var y = this.getY();\n var x = this.getX() + this.width/2;\n return {x: x, y: y};\n};\n\nSymbol.prototype.getBottom = function() {\n var y = this.getY() + this.height;\n var x = this.getX() + this.width/2;\n return {x: x, y: y};\n};\n\nSymbol.prototype.getLeft = function() {\n var y = this.getY() + this.group.getBBox().height/2;\n var x = this.getX();\n return {x: x, y: y};\n};\n\nSymbol.prototype.getRight = function() {\n var y = this.getY() + this.group.getBBox().height/2;\n var x = this.getX() + this.group.getBBox().width;\n return {x: x, y: y};\n};\n\nSymbol.prototype.render = function() {\n if (this.next) {\n\n var lineLength = this.getAttr(&#39;line-length&#39;);\n\n if (this.next_direction === &#39;right&#39;) {\n\n var rightPoint = this.getRight();\n\n if (!this.next.isPositioned) {\n\n this.next.setY(rightPoint.y - this.next.height/2);\n this.next.shiftX(this.group.getBBox().x + this.width + lineLength);\n\n var self = this;\n (function shift() {\n var hasSymbolUnder = false;\n var symb;\n for (var i = 0, len = self.chart.symbols.length; i &lt; len; i++) {\n symb = self.chart.symbols[i];\n\n var diff = Math.abs(symb.getCenter().x - self.next.getCenter().x);\n if (symb.getCenter().y &gt; self.next.getCenter().y &amp;&amp; diff &lt;= self.next.width/2) {\n hasSymbolUnder = true;\n break;\n }\n }\n\n if (hasSymbolUnder) {\n self.next.setX(symb.getX() + symb.width + lineLength);\n shift();\n }\n })();\n\n this.next.isPositioned = true;\n\n this.next.render();\n }\n } else {\n var bottomPoint = this.getBottom();\n\n if (!this.next.isPositioned) {\n this.next.shiftY(this.getY() + this.height + lineLength);\n this.next.setX(bottomPoint.x - this.next.width/2);\n this.next.isPositioned = true;\n\n this.next.render();\n }\n }\n }\n};\n\nSymbol.prototype.renderLines = function() {\n if (this.next) {\n if (this.next_direction) {\n this.drawLineTo(this.next, &#39;&#39;, this.next_direction);\n } else {\n this.drawLineTo(this.next);\n }\n }\n};\n\nSymbol.prototype.drawLineTo = function(symbol, text, origin) {\n if (this.connectedTo.indexOf(symbol) &lt; 0) {\n this.connectedTo.push(symbol);\n }\n\n var x = this.getCenter().x,\n y = this.getCenter().y,\n right = this.getRight(),\n bottom = this.getBottom(),\n left = this.getLeft();\n\n var symbolX = symbol.getCenter().x,\n symbolY = symbol.getCenter().y,\n symbolTop = symbol.getTop(),\n symbolRight = symbol.getRight(),\n symbolLeft = symbol.getLeft();\n\n var isOnSameColumn = x === symbolX,\n isOnSameLine = y === symbolY,\n isUnder = y &lt; symbolY,\n isUpper = y &gt; symbolY || this === symbol,\n isLeft = x &gt; symbolX,\n isRight = x &lt; symbolX;\n\n var maxX = 0,\n line,\n lineLength = this.getAttr(&#39;line-length&#39;),\n lineWith = this.getAttr(&#39;line-width&#39;);\n\n if ((!origin || origin === &#39;bottom&#39;) &amp;&amp; isOnSameColumn &amp;&amp; isUnder) {\n line = drawLine(this.chart, bottom, symbolTop, text);\n this.bottomStart = true;\n symbol.topEnd = true;\n maxX = bottom.x;\n } else if ((!origin || origin === &#39;right&#39;) &amp;&amp; isOnSameLine &amp;&amp; isRight) {\n line = drawLine(this.chart, right, symbolLeft, text);\n this.rightStart = true;\n symbol.leftEnd = true;\n maxX = symbolLeft.x;\n } else if ((!origin || origin === &#39;left&#39;) &amp;&amp; isOnSameLine &amp;&amp; isLeft) {\n line = drawLine(this.chart, left, symbolRight, text);\n this.leftStart = true;\n symbol.rightEnd = true;\n maxX = symbolRight.x;\n } else if ((!origin || origin === &#39;right&#39;) &amp;&amp; isOnSameColumn &amp;&amp; isUpper) {\n line = drawLine(this.chart, right, [\n {x: right.x + lineLength/2, y: right.y},\n {x: right.x + lineLength/2, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y}\n ], text);\n this.rightStart = true;\n symbol.topEnd = true;\n maxX = right.x + lineLength/2;\n } else if ((!origin || origin === &#39;right&#39;) &amp;&amp; isOnSameColumn &amp;&amp; isUnder) {\n line = drawLine(this.chart, right, [\n {x: right.x + lineLength/2, y: right.y},\n {x: right.x + lineLength/2, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y}\n ], text);\n this.rightStart = true;\n symbol.topEnd = true;\n maxX = right.x + lineLength/2;\n } else if ((!origin || origin === &#39;bottom&#39;) &amp;&amp; isLeft) {\n if (this.leftEnd &amp;&amp; isUpper) {\n line = drawLine(this.chart, bottom, [\n {x: bottom.x, y: bottom.y + lineLength/2},\n {x: bottom.x + (bottom.x - symbolTop.x)/2, y: bottom.y + lineLength/2},\n {x: bottom.x + (bottom.x - symbolTop.x)/2, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y}\n ], text);\n } else {\n line = drawLine(this.chart, bottom, [\n {x: bottom.x, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y}\n ], text);\n }\n this.bottomStart = true;\n symbol.topEnd = true;\n maxX = bottom.x + (bottom.x - symbolTop.x)/2;\n } else if ((!origin || origin === &#39;bottom&#39;) &amp;&amp; isRight) {\n line = drawLine(this.chart, bottom, [\n {x: bottom.x, y: bottom.y + lineLength/2},\n {x: bottom.x + (bottom.x - symbolTop.x)/2, y: bottom.y + lineLength/2},\n {x: bottom.x + (bottom.x - symbolTop.x)/2, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y}\n ], text);\n this.bottomStart = true;\n symbol.topEnd = true;\n maxX = bottom.x + (bottom.x - symbolTop.x)/2;\n } else if ((origin &amp;&amp; origin === &#39;right&#39;) &amp;&amp; isLeft) {\n line = drawLine(this.chart, right, [\n {x: right.x + lineLength/2, y: right.y},\n {x: right.x + lineLength/2, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y}\n ], text);\n this.rightStart = true;\n symbol.topEnd = true;\n maxX = right.x + lineLength/2;\n } else if ((origin &amp;&amp; origin === &#39;right&#39;) &amp;&amp; isRight) {\n line = drawLine(this.chart, right, [\n {x: symbolTop.x, y: right.y},\n {x: symbolTop.x, y: symbolTop.y}\n ], text);\n this.rightStart = true;\n symbol.topEnd = true;\n maxX = right.x + lineLength/2;\n } else if ((origin &amp;&amp; origin === &#39;bottom&#39;) &amp;&amp; isOnSameColumn &amp;&amp; isUpper) {\n line = drawLine(this.chart, bottom, [\n {x: bottom.x, y: bottom.y + lineLength/2},\n {x: right.x + lineLength/2, y: bottom.y + lineLength/2},\n {x: right.x + lineLength/2, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y}\n ], text);\n this.bottomStart = true;\n symbol.topEnd = true;\n maxX = bottom.x + lineLength/2;\n } else if ((origin === &#39;left&#39;) &amp;&amp; isOnSameColumn &amp;&amp; isUpper) {\n var diffX = left.x - lineLength/2;\n if (symbolLeft.x &lt; left.x) {\n diffX = symbolLeft.x - lineLength/2;\n }\n line = drawLine(this.chart, left, [\n {x: diffX, y: left.y},\n {x: diffX, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y}\n ], text);\n this.leftStart = true;\n symbol.topEnd = true;\n maxX = left.x;\n } else if ((origin === &#39;left&#39;)) {\n line = drawLine(this.chart, left, [\n {x: symbolTop.x + (left.x - symbolTop.x)/ 2, y: left.y},\n {x: symbolTop.x + (left.x - symbolTop.x)/ 2, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y - lineLength/2},\n {x: symbolTop.x, y: symbolTop.y}\n ], text);\n this.leftStart = true;\n symbol.topEnd = true;\n maxX = left.x;\n }\n\n if (line) {\n for (var l = 0, llen = this.chart.lines.length; l &lt; llen; l++) {\n var otherLine = this.chart.lines[l];\n var len;\n\n var ePath = otherLine.attr(&#39;path&#39;),\n lPath = line.attr(&#39;path&#39;);\n\n for (var iP = 0, lenP = ePath.length - 1; iP &lt; lenP; iP++) {\n var newPath = [];\n newPath.push([&#39;M&#39;, ePath[iP][1], ePath[iP][2]]);\n newPath.push([&#39;L&#39;, ePath[iP + 1][1], ePath[iP + 1][2]]);\n\n var line1_from_x = newPath[0][1];\n var line1_from_y = newPath[0][2];\n var line1_to_x = newPath[1][1];\n var line1_to_y = newPath[1][2];\n\n for (var lP = 0, lenlP = lPath.length - 1; lP &lt; lenlP; lP++) {\n var newLinePath = [];\n newLinePath.push([&#39;M&#39;, lPath[lP][1], lPath[lP][2]]);\n newLinePath.push([&#39;L&#39;, lPath[lP + 1][1], lPath[lP + 1][2]]);\n\n var line2_from_x = newLinePath[0][1];\n var line2_from_y = newLinePath[0][2];\n var line2_to_x = newLinePath[1][1];\n var line2_to_y = newLinePath[1][2];\n\n var res = checkLineIntersection(line1_from_x, line1_from_y, line1_to_x, line1_to_y, line2_from_x, line2_from_y, line2_to_x, line2_to_y);\n if (res.onLine1 &amp;&amp; res.onLine2) {\n\n var newSegment;\n if (line2_from_y === line2_to_y) {\n if (line2_from_x &gt; line2_to_x) {\n newSegment = [&#39;L&#39;, res.x + lineWith * 2, line2_from_y];\n lPath.splice(lP + 1, 0, newSegment);\n newSegment = [&#39;C&#39;, res.x + lineWith * 2, line2_from_y, res.x, line2_from_y - lineWith * 4, res.x - lineWith * 2, line2_from_y];\n lPath.splice(lP + 2, 0, newSegment);\n line.attr(&#39;path&#39;, lPath);\n } else {\n newSegment = [&#39;L&#39;, res.x - lineWith * 2, line2_from_y];\n lPath.splice(lP + 1, 0, newSegment);\n newSegment = [&#39;C&#39;, res.x - lineWith * 2, line2_from_y, res.x, line2_from_y - lineWith * 4, res.x + lineWith * 2, line2_from_y];\n lPath.splice(lP + 2, 0, newSegment);\n line.attr(&#39;path&#39;, lPath);\n }\n } else {\n if (line2_from_y &gt; line2_to_y) {\n newSegment = [&#39;L&#39;, line2_from_x, res.y + lineWith * 2];\n lPath.splice(lP + 1, 0, newSegment);\n newSegment = [&#39;C&#39;, line2_from_x, res.y + lineWith * 2, line2_from_x + lineWith * 4, res.y, line2_from_x, res.y - lineWith * 2];\n lPath.splice(lP + 2, 0, newSegment);\n line.attr(&#39;path&#39;, lPath);\n } else {\n newSegment = [&#39;L&#39;, line2_from_x, res.y - lineWith * 2];\n lPath.splice(lP + 1, 0, newSegment);\n newSegment = [&#39;C&#39;, line2_from_x, res.y - lineWith * 2, line2_from_x + lineWith * 4, res.y, line2_from_x, res.y + lineWith * 2];\n lPath.splice(lP + 2, 0, newSegment);\n line.attr(&#39;path&#39;, lPath);\n }\n }\n\n lP += 2;\n len += 2;\n }\n }\n }\n }\n\n this.chart.lines.push(line);\n }\n\n if (!this.chart.maxXFromLine || (this.chart.maxXFromLine &amp;&amp; maxX &gt; this.chart.maxXFromLine)) {\n this.chart.maxXFromLine = maxX;\n }\n};\n\nmodule.exports = Symbol;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/flowchart.symbol.js\n ** module id = 2\n ** module chunks = 0\n **/&quot;,&quot;function drawPath(chart, location, points) {\n var i, len;\n var path = &#39;M{0},{1}&#39;;\n for (i = 2, len = 2 * points.length + 2; i &lt; len; i+=2) {\n path += &#39; L{&#39; + i + &#39;},{&#39; + (i + 1) + &#39;}&#39;;\n }\n var pathValues = [location.x, location.y];\n for (i = 0, len = points.length; i &lt; len; i++) {\n pathValues.push(points[i].x);\n pathValues.push(points[i].y);\n }\n var symbol = chart.paper.path(path, pathValues);\n symbol.attr(&#39;stroke&#39;, chart.options[&#39;element-color&#39;]);\n symbol.attr(&#39;stroke-width&#39;, chart.options[&#39;line-width&#39;]);\n\n var font = chart.options.font;\n var fontF = chart.options[&#39;font-family&#39;];\n var fontW = chart.options[&#39;font-weight&#39;];\n\n if (font) symbol.attr({ &#39;font&#39;: font });\n if (fontF) symbol.attr({ &#39;font-family&#39;: fontF });\n if (fontW) symbol.attr({ &#39;font-weight&#39;: fontW });\n\n return symbol;\n}\n\nfunction drawLine(chart, from, to, text) {\n var i, len;\n\n if (Object.prototype.toString.call(to) !== &#39;[object Array]&#39;) {\n to = [to];\n }\n\n var path = &#39;M{0},{1}&#39;;\n for (i = 2, len = 2 * to.length + 2; i &lt; len; i+=2) {\n path += &#39; L{&#39; + i + &#39;},{&#39; + (i + 1) + &#39;}&#39;;\n }\n var pathValues = [from.x, from.y];\n for (i = 0, len = to.length; i &lt; len; i++) {\n pathValues.push(to[i].x);\n pathValues.push(to[i].y);\n }\n\n var line = chart.paper.path(path, pathValues);\n line.attr({\n stroke: chart.options[&#39;line-color&#39;],\n &#39;stroke-width&#39;: chart.options[&#39;line-width&#39;],\n &#39;arrow-end&#39;: chart.options[&#39;arrow-end&#39;]\n });\n\n var font = chart.options.font;\n var fontF = chart.options[&#39;font-family&#39;];\n var fontW = chart.options[&#39;font-weight&#39;];\n\n if (font) line.attr({ &#39;font&#39;: font });\n if (fontF) line.attr({ &#39;font-family&#39;: fontF });\n if (fontW) line.attr({ &#39;font-weight&#39;: fontW });\n\n if (text) {\n\n var centerText = false;\n\n var textPath = chart.paper.text(0, 0, text);\n\n var isHorizontal = false;\n var firstTo = to[0];\n\n if (from.y === firstTo.y) {\n isHorizontal = true;\n }\n\n var x = 0,\n y = 0;\n\n if (centerText) {\n if (from.x &gt; firstTo.x) {\n x = from.x - (from.x - firstTo.x)/2;\n } else {\n x = firstTo.x - (firstTo.x - from.x)/2;\n }\n\n if (from.y &gt; firstTo.y) {\n y = from.y - (from.y - firstTo.y)/2;\n } else {\n y = firstTo.y - (firstTo.y - from.y)/2;\n }\n\n if (isHorizontal) {\n x -= textPath.getBBox().width/2;\n y -= chart.options[&#39;text-margin&#39;];\n } else {\n x += chart.options[&#39;text-margin&#39;];\n y -= textPath.getBBox().height/2;\n }\n } else {\n x = from.x;\n y = from.y;\n\n if (isHorizontal) {\n x += chart.options[&#39;text-margin&#39;]/2;\n y -= chart.options[&#39;text-margin&#39;];\n } else {\n x += chart.options[&#39;text-margin&#39;]/2;\n y += chart.options[&#39;text-margin&#39;];\n }\n }\n\n textPath.attr({\n &#39;text-anchor&#39;: &#39;start&#39;,\n &#39;font-size&#39;: chart.options[&#39;font-size&#39;],\n &#39;fill&#39;: chart.options[&#39;font-color&#39;],\n x: x,\n y: y\n });\n\n if (font) textPath.attr({ &#39;font&#39;: font });\n if (fontF) textPath.attr({ &#39;font-family&#39;: fontF });\n if (fontW) textPath.attr({ &#39;font-weight&#39;: fontW });\n }\n\n return line;\n}\n\nfunction checkLineIntersection(line1StartX, line1StartY, line1EndX, line1EndY, line2StartX, line2StartY, line2EndX, line2EndY) {\n // if the lines intersect, the result contains the x and y of the intersection (treating the lines as infinite) and booleans for whether line segment 1 or line segment 2 contain the point\n var denominator, a, b, numerator1, numerator2, result = {\n x: null,\n y: null,\n onLine1: false,\n onLine2: false\n };\n denominator = ((line2EndY - line2StartY) * (line1EndX - line1StartX)) - ((line2EndX - line2StartX) * (line1EndY - line1StartY));\n if (denominator === 0) {\n return result;\n }\n a = line1StartY - line2StartY;\n b = line1StartX - line2StartX;\n numerator1 = ((line2EndX - line2StartX) * a) - ((line2EndY - line2StartY) * b);\n numerator2 = ((line1EndX - line1StartX) * a) - ((line1EndY - line1StartY) * b);\n a = numerator1 / denominator;\n b = numerator2 / denominator;\n\n // if we cast these lines infinitely in both directions, they intersect here:\n result.x = line1StartX + (a * (line1EndX - line1StartX));\n result.y = line1StartY + (a * (line1EndY - line1StartY));\n /*\n // it is worth noting that this should be the same as:\n x = line2StartX + (b * (line2EndX - line2StartX));\n y = line2StartX + (b * (line2EndY - line2StartY));\n */\n // if line1 is a segment and line2 is infinite, they intersect if:\n if (a &gt; 0 &amp;&amp; a &lt; 1) {\n result.onLine1 = true;\n }\n // if line2 is a segment and line1 is infinite, they intersect if:\n if (b &gt; 0 &amp;&amp; b &lt; 1) {\n result.onLine2 = true;\n }\n // if line1 and line2 are segments, they intersect if both of the above are true\n return result;\n}\n\nmodule.exports = {\n\tdrawPath: drawPath,\n\tdrawLine: drawLine,\n\tcheckLineIntersection: checkLineIntersection\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/flowchart.functions.js\n ** module id = 3\n ** module chunks = 0\n **/&quot;,&quot;var FlowChart = require(&#39;./flowchart.chart&#39;);\nvar Start = require(&#39;./flowchart.symbol.start&#39;);\nvar End = require(&#39;./flowchart.symbol.end&#39;);\nvar Operation = require(&#39;./flowchart.symbol.operation&#39;);\nvar InputOutput = require(&#39;./flowchart.symbol.inputoutput&#39;);\nvar Subroutine = require(&#39;./flowchart.symbol.subroutine&#39;);\nvar Condition = require(&#39;./flowchart.symbol.condition&#39;);\n\nfunction parse(input) {\n input = input || &#39;&#39;;\n input = input.trim();\n\n var chart = {\n symbols: {},\n start: null,\n drawSVG: function(container, options) {\n var self = this;\n\n if (this.diagram) {\n this.diagram.clean();\n }\n\n var diagram = new FlowChart(container, options);\n this.diagram = diagram;\n var dispSymbols = {};\n\n function getDisplaySymbol(s) {\n if (dispSymbols[s.key]) {\n return dispSymbols[s.key];\n }\n\n switch (s.symbolType) {\n case &#39;start&#39;:\n dispSymbols[s.key] = new Start(diagram, s);\n break;\n case &#39;end&#39;:\n dispSymbols[s.key] = new End(diagram, s);\n break;\n case &#39;operation&#39;:\n dispSymbols[s.key] = new Operation(diagram, s);\n break;\n case &#39;inputoutput&#39;:\n dispSymbols[s.key] = new InputOutput(diagram, s);\n break;\n case &#39;subroutine&#39;:\n dispSymbols[s.key] = new Subroutine(diagram, s);\n break;\n case &#39;condition&#39;:\n dispSymbols[s.key] = new Condition(diagram, s);\n break;\n default:\n return new Error(&#39;Wrong symbol type!&#39;);\n }\n\n return dispSymbols[s.key];\n }\n\n (function constructChart(s, prevDisp, prev) {\n var dispSymb = getDisplaySymbol(s);\n\n if (self.start === s) {\n diagram.startWith(dispSymb);\n } else if (prevDisp &amp;&amp; prev &amp;&amp; !prevDisp.pathOk) {\n if (prevDisp instanceof(Condition)) {\n if (prev.yes === s) {\n prevDisp.yes(dispSymb);\n }\n if (prev.no === s) {\n prevDisp.no(dispSymb);\n }\n } else {\n prevDisp.then(dispSymb);\n }\n }\n\n if (dispSymb.pathOk) {\n return dispSymb;\n }\n\n if (dispSymb instanceof(Condition)) {\n if (s.yes) {\n constructChart(s.yes, dispSymb, s);\n }\n if (s.no) {\n constructChart(s.no, dispSymb, s);\n }\n } else if (s.next) {\n constructChart(s.next, dispSymb, s);\n }\n\n return dispSymb;\n })(this.start);\n\n diagram.render();\n },\n clean: function() {\n this.diagram.clean();\n }\n };\n\n var lines = [];\n var prevBreak = 0;\n for (var i0 = 1, i0len = input.length; i0 &lt; i0len; i0++) {\n if(input[i0] === &#39;\\n&#39; &amp;&amp; input[i0 - 1] !== &#39;\\\\&#39;) {\n var line0 = input.substring(prevBreak, i0);\n prevBreak = i0 + 1;\n lines.push(line0.replace(/\\\\\\n/g, &#39;\\n&#39;));\n }\n }\n\n if(prevBreak &lt; input.length) {\n lines.push(input.substr(prevBreak));\n }\n\n for (var l = 1, len = lines.length; l &lt; len;) {\n var currentLine = lines[l];\n\n if (currentLine.indexOf(&#39;-&gt;&#39;) &lt; 0 &amp;&amp; currentLine.indexOf(&#39;=&gt;&#39;) &lt; 0) {\n lines[l - 1] += &#39;\\n&#39; + currentLine;\n lines.splice(l, 1);\n len--;\n } else {\n l++;\n }\n }\n\n function getSymbol(s) {\n var startIndex = s.indexOf(&#39;(&#39;) + 1;\n var endIndex = s.indexOf(&#39;)&#39;);\n if (startIndex &gt;= 0 &amp;&amp; endIndex &gt;= 0) {\n return chart.symbols[s.substring(0, startIndex - 1)];\n }\n return chart.symbols[s];\n }\n\n function getNextPath(s) {\n var next = &#39;next&#39;;\n var startIndex = s.indexOf(&#39;(&#39;) + 1;\n var endIndex = s.indexOf(&#39;)&#39;);\n if (startIndex &gt;= 0 &amp;&amp; endIndex &gt;= 0) {\n next = flowSymb.substring(startIndex, endIndex);\n if (next.indexOf(&#39;,&#39;) &lt; 0) {\n if (next !== &#39;yes&#39; &amp;&amp; next !== &#39;no&#39;) {\n next = &#39;next, &#39; + next;\n }\n }\n }\n return next;\n }\n\n while (lines.length &gt; 0) {\n var line = lines.splice(0, 1)[0];\n\n if (line.indexOf(&#39;=&gt;&#39;) &gt;= 0) {\n // definition\n var parts = line.split(&#39;=&gt;&#39;);\n var symbol = {\n key: parts[0],\n symbolType: parts[1],\n text: null,\n link: null,\n target: null,\n flowstate: null\n };\n\n var sub;\n\n if (symbol.symbolType.indexOf(&#39;: &#39;) &gt;= 0) {\n sub = symbol.symbolType.split(&#39;: &#39;);\n symbol.symbolType = sub.shift();\n symbol.text = sub.join(&#39;: &#39;);\n }\n\n if (symbol.text &amp;&amp; symbol.text.indexOf(&#39;:&gt;&#39;) &gt;= 0) {\n sub = symbol.text.split(&#39;:&gt;&#39;);\n symbol.text = sub.shift();\n symbol.link = sub.join(&#39;:&gt;&#39;);\n } else if (symbol.symbolType.indexOf(&#39;:&gt;&#39;) &gt;= 0) {\n sub = symbol.symbolType.split(&#39;:&gt;&#39;);\n symbol.symbolType = sub.shift();\n symbol.link = sub.join(&#39;:&gt;&#39;);\n }\n\n if (symbol.symbolType.indexOf(&#39;\\n&#39;) &gt;= 0) {\n symbol.symbolType = symbol.symbolType.split(&#39;\\n&#39;)[0];\n }\n\n /* adding support for links */\n if (symbol.link) {\n var startIndex = symbol.link.indexOf(&#39;[&#39;) + 1;\n var endIndex = symbol.link.indexOf(&#39;]&#39;);\n if (startIndex &gt;= 0 &amp;&amp; endIndex &gt;= 0) {\n symbol.target = symbol.link.substring(startIndex, endIndex);\n symbol.link = symbol.link.substring(0, startIndex - 1);\n }\n }\n /* end of link support */\n\n /* adding support for flowstates */\n if (symbol.text) {\n if (symbol.text.indexOf(&#39;|&#39;) &gt;= 0) {\n var txtAndState = symbol.text.split(&#39;|&#39;);\n symbol.flowstate = txtAndState.pop().trim();\n symbol.text = txtAndState.join(&#39;|&#39;);\n }\n }\n /* end of flowstate support */\n\n chart.symbols[symbol.key] = symbol;\n\n } else if (line.indexOf(&#39;-&gt;&#39;) &gt;= 0) {\n // flow\n var flowSymbols = line.split(&#39;-&gt;&#39;);\n for (var i = 0, lenS = flowSymbols.length; i &lt; lenS; i++) {\n var flowSymb = flowSymbols[i];\n\n var realSymb = getSymbol(flowSymb);\n var next = getNextPath(flowSymb);\n\n var direction = null;\n if (next.indexOf(&#39;,&#39;) &gt;= 0) {\n var condOpt = next.split(&#39;,&#39;);\n next = condOpt[0];\n direction = condOpt[1].trim();\n }\n\n if (!chart.start) {\n chart.start = realSymb;\n }\n\n if (i + 1 &lt; lenS) {\n var nextSymb = flowSymbols[i + 1];\n realSymb[next] = getSymbol(nextSymb);\n realSymb[&#39;direction_&#39; + next] = direction;\n direction = null;\n }\n }\n }\n\n }\n return chart;\n}\n\nmodule.exports = parse;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/flowchart.parse.js\n ** module id = 4\n ** module chunks = 0\n **/&quot;,&quot;var Symbol = require(&#39;./flowchart.symbol&#39;);\nvar inherits = require(&#39;./flowchart.helpers&#39;).inherits;\nvar drawAPI = require(&#39;./flowchart.functions&#39;);\nvar drawPath = drawAPI.drawPath;\n\nfunction Condition(chart, options) {\n options = options || {};\n Symbol.call(this, chart, options);\n this.textMargin = this.getAttr(&#39;text-margin&#39;);\n this.yes_direction = &#39;bottom&#39;;\n this.no_direction = &#39;right&#39;;\n if (options.yes &amp;&amp; options.direction_yes &amp;&amp; options.no &amp;&amp; !options.direction_no) {\n if (options.direction_yes === &#39;right&#39;) {\n this.no_direction = &#39;bottom&#39;;\n this.yes_direction = &#39;right&#39;;\n } else {\n this.no_direction = &#39;right&#39;;\n this.yes_direction = &#39;bottom&#39;;\n }\n } else if (options.yes &amp;&amp; !options.direction_yes &amp;&amp; options.no &amp;&amp; options.direction_no) {\n if (options.direction_no === &#39;right&#39;) {\n this.yes_direction = &#39;bottom&#39;;\n this.no_direction = &#39;right&#39;;\n } else {\n this.yes_direction = &#39;right&#39;;\n this.no_direction = &#39;bottom&#39;;\n }\n } else {\n this.yes_direction = &#39;bottom&#39;;\n this.no_direction = &#39;right&#39;;\n }\n\n this.yes_direction = this.yes_direction || &#39;bottom&#39;;\n this.no_direction = this.no_direction || &#39;right&#39;;\n\n this.text.attr({\n x: this.textMargin * 2\n });\n\n var width = this.text.getBBox().width + 3 * this.textMargin;\n width += width/2;\n var height = this.text.getBBox().height + 2 * this.textMargin;\n height += height/2;\n height = Math.max(width * 0.5, height);\n var startX = width/4;\n var startY = height/4;\n\n this.text.attr({\n x: startX + this.textMargin/2\n });\n\n var start = {x: startX, y: startY};\n var points = [\n {x: startX - width/4, y: startY + height/4},\n {x: startX - width/4 + width/2, y: startY + height/4 + height/2},\n {x: startX - width/4 + width, y: startY + height/4},\n {x: startX - width/4 + width/2, y: startY + height/4 - height/2},\n {x: startX - width/4, y: startY + height/4}\n ];\n\n var symbol = drawPath(chart, start, points);\n\n symbol.attr({\n stroke: this.getAttr(&#39;element-color&#39;),\n &#39;stroke-width&#39;: this.getAttr(&#39;line-width&#39;),\n fill: this.getAttr(&#39;fill&#39;)\n });\n if (options.link) { symbol.attr(&#39;href&#39;, options.link); }\n if (options.target) { symbol.attr(&#39;target&#39;, options.target); }\n if (options.key) { symbol.node.id = options.key; }\n symbol.node.setAttribute(&#39;class&#39;, this.getAttr(&#39;class&#39;));\n\n this.text.attr({\n y: symbol.getBBox().height/2\n });\n\n this.group.push(symbol);\n symbol.insertBefore(this.text);\n\n this.initialize();\n}\ninherits(Condition, Symbol);\n\nCondition.prototype.render = function() {\n\n if (this.yes_direction) {\n this[this.yes_direction + &#39;_symbol&#39;] = this.yes_symbol;\n }\n\n if (this.no_direction) {\n this[this.no_direction + &#39;_symbol&#39;] = this.no_symbol;\n }\n\n var lineLength = this.getAttr(&#39;line-length&#39;);\n\n if (this.bottom_symbol) {\n var bottomPoint = this.getBottom();\n\n if (!this.bottom_symbol.isPositioned) {\n this.bottom_symbol.shiftY(this.getY() + this.height + lineLength);\n this.bottom_symbol.setX(bottomPoint.x - this.bottom_symbol.width/2);\n this.bottom_symbol.isPositioned = true;\n\n this.bottom_symbol.render();\n }\n }\n\n if (this.right_symbol) {\n var rightPoint = this.getRight();\n\n if (!this.right_symbol.isPositioned) {\n\n this.right_symbol.setY(rightPoint.y - this.right_symbol.height/2);\n this.right_symbol.shiftX(this.group.getBBox().x + this.width + lineLength);\n\n var self = this;\n (function shift() {\n var hasSymbolUnder = false;\n var symb;\n for (var i = 0, len = self.chart.symbols.length; i &lt; len; i++) {\n symb = self.chart.symbols[i];\n\n var diff = Math.abs(symb.getCenter().x - self.right_symbol.getCenter().x);\n if (symb.getCenter().y &gt; self.right_symbol.getCenter().y &amp;&amp; diff &lt;= self.right_symbol.width/2) {\n hasSymbolUnder = true;\n break;\n }\n }\n\n if (hasSymbolUnder) {\n self.right_symbol.setX(symb.getX() + symb.width + lineLength);\n shift();\n }\n })();\n\n this.right_symbol.isPositioned = true;\n\n this.right_symbol.render();\n }\n }\n};\n\nCondition.prototype.renderLines = function() {\n if (this.yes_symbol) {\n this.drawLineTo(this.yes_symbol, this.getAttr(&#39;yes-text&#39;), this.yes_direction);\n }\n\n if (this.no_symbol) {\n this.drawLineTo(this.no_symbol, this.getAttr(&#39;no-text&#39;), this.no_direction);\n }\n};\n\nmodule.exports = Condition;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/flowchart.symbol.condition.js\n ** module id = 5\n ** module chunks = 0\n **/&quot;,&quot;var Raphael = require(&#39;raphael&#39;);\nvar defaults = require(&#39;./flowchart.helpers&#39;).defaults;\nvar defaultOptions = require(&#39;./flowchart.defaults&#39;);\nvar Condition = require(&#39;./flowchart.symbol.condition&#39;);\n\nfunction FlowChart(container, options) {\n options = options || {};\n\n this.paper = new Raphael(container);\n\n this.options = defaults(options, defaultOptions);\n\n this.symbols = [];\n this.lines = [];\n this.start = null;\n}\n\nFlowChart.prototype.handle = function(symbol) {\n if (this.symbols.indexOf(symbol) &lt;= -1) {\n this.symbols.push(symbol);\n }\n\n var flowChart = this;\n\n if (symbol instanceof(Condition)) {\n symbol.yes = function(nextSymbol) {\n symbol.yes_symbol = nextSymbol;\n if(symbol.no_symbol) {\n symbol.pathOk = true;\n }\n return flowChart.handle(nextSymbol);\n };\n symbol.no = function(nextSymbol) {\n symbol.no_symbol = nextSymbol;\n if(symbol.yes_symbol) {\n symbol.pathOk = true;\n }\n return flowChart.handle(nextSymbol);\n };\n } else {\n symbol.then = function(nextSymbol) {\n symbol.next = nextSymbol;\n symbol.pathOk = true;\n return flowChart.handle(nextSymbol);\n };\n }\n\n return symbol;\n};\n\nFlowChart.prototype.startWith = function(symbol) {\n this.start = symbol;\n return this.handle(symbol);\n};\n\nFlowChart.prototype.render = function() {\n var maxWidth = 0,\n maxHeight = 0,\n i = 0,\n len = 0,\n maxX = 0,\n maxY = 0,\n minX = 0,\n minY = 0,\n symbol,\n line;\n\n for (i = 0, len = this.symbols.length; i &lt; len; i++) {\n symbol = this.symbols[i];\n if (symbol.width &gt; maxWidth) {\n maxWidth = symbol.width;\n }\n if (symbol.height &gt; maxHeight) {\n maxHeight = symbol.height;\n }\n }\n\n for (i = 0, len = this.symbols.length; i &lt; len; i++) {\n symbol = this.symbols[i];\n symbol.shiftX(this.options.x + (maxWidth - symbol.width)/2 + this.options[&#39;line-width&#39;]);\n symbol.shiftY(this.options.y + (maxHeight - symbol.height)/2 + this.options[&#39;line-width&#39;]);\n }\n\n this.start.render();\n // for (i = 0, len = this.symbols.length; i &lt; len; i++) {\n // symbol = this.symbols[i];\n // symbol.render();\n // }\n\n for (i = 0, len = this.symbols.length; i &lt; len; i++) {\n symbol = this.symbols[i];\n symbol.renderLines();\n }\n\n maxX = this.maxXFromLine;\n\n for (i = 0, len = this.symbols.length; i &lt; len; i++) {\n symbol = this.symbols[i];\n var x = symbol.getX() + symbol.width;\n var y = symbol.getY() + symbol.height;\n if (x &gt; maxX) {\n maxX = x;\n }\n if (y &gt; maxY) {\n maxY = y;\n }\n }\n\n for (i = 0, len = this.lines.length; i &lt; len; i++) {\n line = this.lines[i].getBBox();\n var x = line.x;\n var y = line.y;\n var x2 = line.x2;\n var y2 = line.y2;\n if (x &lt; minX) {\n minX = x;\n }\n if (y &lt; minY) {\n minY = y;\n }\n if (x2 &gt; maxX) {\n maxX = x2;\n }\n if (y2 &gt; maxY) {\n maxY = y2;\n }\n }\n\n var scale = this.options[&#39;scale&#39;];\n var lineWidth = this.options[&#39;line-width&#39;];\n\n if (minX &lt; 0) minX -= lineWidth;\n if (minY &lt; 0) minY -= lineWidth;\n\n var width = maxX + lineWidth - minX;\n var height = maxY + lineWidth - minY;\n\n this.paper.setSize(width * scale, height * scale);\n this.paper.setViewBox(minX, minY, width, height, true);\n};\n\nFlowChart.prototype.clean = function() {\n if (this.paper) {\n var paperDom = this.paper.canvas;\n paperDom.parentNode.removeChild(paperDom);\n }\n};\n\nmodule.exports = FlowChart;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/flowchart.chart.js\n ** module id = 6\n ** module chunks = 0\n **/&quot;,&quot;// defaults\nmodule.exports = {\n &#39;x&#39;: 0,\n &#39;y&#39;: 0,\n &#39;line-width&#39;: 3,\n &#39;line-length&#39;: 50,\n &#39;text-margin&#39;: 10,\n &#39;font-size&#39;: 14,\n &#39;font-color&#39;: &#39;black&#39;,\n // &#39;font&#39;: &#39;normal&#39;,\n // &#39;font-family&#39;: &#39;calibri&#39;,\n // &#39;font-weight&#39;: &#39;normal&#39;,\n &#39;line-color&#39;: &#39;black&#39;,\n &#39;element-color&#39;: &#39;black&#39;,\n &#39;fill&#39;: &#39;white&#39;,\n &#39;yes-text&#39;: &#39;yes&#39;,\n &#39;no-text&#39;: &#39;no&#39;,\n &#39;arrow-end&#39;: &#39;block&#39;,\n &#39;class&#39;: &#39;flowchart&#39;,\n &#39;scale&#39;: 1,\n &#39;symbols&#39;: {\n &#39;start&#39;: {},\n &#39;end&#39;: {},\n &#39;condition&#39;: {},\n &#39;inputoutput&#39;: {},\n &#39;operation&#39;: {},\n &#39;subroutine&#39;: {}\n }//,\n // &#39;flowstate&#39; : {\n // &#39;past&#39; : { &#39;fill&#39;: &#39;#CCCCCC&#39;, &#39;font-size&#39;: 12},\n // &#39;current&#39; : {&#39;fill&#39;: &#39;yellow&#39;, &#39;font-color&#39;: &#39;red&#39;, &#39;font-weight&#39;: &#39;bold&#39;},\n // &#39;future&#39; : { &#39;fill&#39;: &#39;#FFFF99&#39;},\n // &#39;invalid&#39;: {&#39;fill&#39;: &#39;#444444&#39;}\n // }\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/flowchart.defaults.js\n ** module id = 7\n ** module chunks = 0\n **/&quot;,&quot;// add indexOf to non ECMA-262 standard compliant browsers\nif (!Array.prototype.indexOf) {\n Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {\n \&quot;use strict\&quot;;\n if (this === null) {\n throw new TypeError();\n }\n var t = Object(this);\n var len = t.length &gt;&gt;&gt; 0;\n if (len === 0) {\n return -1;\n }\n var n = 0;\n if (arguments.length &gt; 0) {\n n = Number(arguments[1]);\n if (n != n) { // shortcut for verifying if it&#39;s NaN\n n = 0;\n } else if (n !== 0 &amp;&amp; n != Infinity &amp;&amp; n != -Infinity) {\n n = (n &gt; 0 || -1) * Math.floor(Math.abs(n));\n }\n }\n if (n &gt;= len) {\n return -1;\n }\n var k = n &gt;= 0 ? n : Math.max(len - Math.abs(n), 0);\n for (; k &lt; len; k++) {\n if (k in t &amp;&amp; t[k] === searchElement) {\n return k;\n }\n }\n return -1;\n };\n}\n\n// add lastIndexOf to non ECMA-262 standard compliant browsers\nif (!Array.prototype.lastIndexOf) {\n Array.prototype.lastIndexOf = function(searchElement /*, fromIndex*/) {\n \&quot;use strict\&quot;;\n if (this === null) {\n throw new TypeError();\n }\n var t = Object(this);\n var len = t.length &gt;&gt;&gt; 0;\n if (len === 0) {\n return -1;\n }\n var n = len;\n if (arguments.length &gt; 1) {\n n = Number(arguments[1]);\n if (n != n) {\n n = 0;\n } else if (n !== 0 &amp;&amp; n != (1 / 0) &amp;&amp; n != -(1 / 0)) {\n n = (n &gt; 0 || -1) * Math.floor(Math.abs(n));\n }\n }\n var k = n &gt;= 0 ? Math.min(n, len - 1) : len - Math.abs(n);\n for (; k &gt;= 0; k--) {\n if (k in t &amp;&amp; t[k] === searchElement) {\n return k;\n }\n }\n return -1;\n };\n}\n\nif (!String.prototype.trim) {\n String.prototype.trim = function() {\n return this.replace(/^\\s+|\\s+$/g, &#39;&#39;);\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/flowchart.shim.js\n ** module id = 8\n ** module chunks = 0\n **/&quot;,&quot;var Symbol = require(&#39;./flowchart.symbol&#39;);\nvar inherits = require(&#39;./flowchart.helpers&#39;).inherits;\n\nfunction End(chart, options) {\n var symbol = chart.paper.rect(0, 0, 0, 0, 20);\n options = options || {};\n options.text = options.text || &#39;End&#39;;\n Symbol.call(this, chart, options, symbol);\n}\ninherits(End, Symbol);\n\nmodule.exports = End;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/flowchart.symbol.end.js\n ** module id = 9\n ** module chunks = 0\n **/&quot;,&quot;var Symbol = require(&#39;./flowchart.symbol&#39;);\nvar inherits = require(&#39;./flowchart.helpers&#39;).inherits;\nvar drawAPI = require(&#39;./flowchart.functions&#39;);\nvar drawPath = drawAPI.drawPath;\n\nfunction InputOutput(chart, options) {\n options = options || {};\n Symbol.call(this, chart, options);\n this.textMargin = this.getAttr(&#39;text-margin&#39;);\n\n this.text.attr({\n x: this.textMargin * 3\n });\n\n var width = this.text.getBBox().width + 4 * this.textMargin;\n var height = this.text.getBBox().height + 2 * this.textMargin;\n var startX = this.textMargin;\n var startY = height/2;\n\n var start = {x: startX, y: startY};\n var points = [\n {x: startX - this.textMargin, y: height},\n {x: startX - this.textMargin + width, y: height},\n {x: startX - this.textMargin + width + 2 * this.textMargin, y: 0},\n {x: startX - this.textMargin + 2 * this.textMargin, y: 0},\n {x: startX, y: startY}\n ];\n\n var symbol = drawPath(chart, start, points);\n\n symbol.attr({\n stroke: this.getAttr(&#39;element-color&#39;),\n &#39;stroke-width&#39;: this.getAttr(&#39;line-width&#39;),\n fill: this.getAttr(&#39;fill&#39;)\n });\n if (options.link) { symbol.attr(&#39;href&#39;, options.link); }\n if (options.target) { symbol.attr(&#39;target&#39;, options.target); }\n if (options.key) { symbol.node.id = options.key; }\n symbol.node.setAttribute(&#39;class&#39;, this.getAttr(&#39;class&#39;));\n\n this.text.attr({\n y: symbol.getBBox().height/2\n });\n\n this.group.push(symbol);\n symbol.insertBefore(this.text);\n\n this.initialize();\n}\ninherits(InputOutput, Symbol);\n\nInputOutput.prototype.getLeft = function() {\n var y = this.getY() + this.group.getBBox().height/2;\n var x = this.getX() + this.textMargin;\n return {x: x, y: y};\n};\n\nInputOutput.prototype.getRight = function() {\n var y = this.getY() + this.group.getBBox().height/2;\n var x = this.getX() + this.group.getBBox().width - this.textMargin;\n return {x: x, y: y};\n};\n\nmodule.exports = InputOutput;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/flowchart.symbol.inputoutput.js\n ** module id = 10\n ** module chunks = 0\n **/&quot;,&quot;var Symbol = require(&#39;./flowchart.symbol&#39;);\nvar inherits = require(&#39;./flowchart.helpers&#39;).inherits;\n\nfunction Operation(chart, options) {\n var symbol = chart.paper.rect(0, 0, 0, 0);\n options = options || {};\n Symbol.call(this, chart, options, symbol);\n}\ninherits(Operation, Symbol);\n\nmodule.exports = Operation;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/flowchart.symbol.operation.js\n ** module id = 11\n ** module chunks = 0\n **/&quot;,&quot;var Symbol = require(&#39;./flowchart.symbol&#39;);\nvar inherits = require(&#39;./flowchart.helpers&#39;).inherits;\n\nfunction Start(chart, options) {\n var symbol = chart.paper.rect(0, 0, 0, 0, 20);\n options = options || {};\n options.text = options.text || &#39;Start&#39;;\n Symbol.call(this, chart, options, symbol);\n}\ninherits(Start, Symbol);\n\nmodule.exports = Start;\n\n// Start.prototype.render = function() {\n// if (this.next) {\n// var lineLength = this.chart.options.symbols[this.symbolType][&#39;line-length&#39;] || this.chart.options[&#39;line-length&#39;];\n\n// var bottomPoint = this.getBottom();\n// var topPoint = this.next.getTop();\n\n// if (!this.next.isPositioned) {\n// this.next.shiftY(this.getY() + this.height + lineLength);\n// this.next.setX(bottomPoint.x - this.next.width/2);\n// this.next.isPositioned = true;\n\n// this.next.render();\n// }\n// }\n// };\n\n// Start.prototype.renderLines = function() {\n// if (this.next) {\n// this.drawLineTo(this.next);\n// }\n// };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/flowchart.symbol.start.js\n ** module id = 12\n ** module chunks = 0\n **/&quot;,&quot;var Symbol = require(&#39;./flowchart.symbol&#39;);\nvar inherits = require(&#39;./flowchart.helpers&#39;).inherits;\n\nfunction Subroutine(chart, options) {\n var symbol = chart.paper.rect(0, 0, 0, 0);\n options = options || {};\n Symbol.call(this, chart, options, symbol);\n\n symbol.attr({\n width: this.text.getBBox().width + 4 * this.getAttr(&#39;text-margin&#39;)\n });\n\n this.text.attr({\n &#39;x&#39;: 2 * this.getAttr(&#39;text-margin&#39;)\n });\n\n var innerWrap = chart.paper.rect(0, 0, 0, 0);\n innerWrap.attr({\n x: this.getAttr(&#39;text-margin&#39;),\n stroke: this.getAttr(&#39;element-color&#39;),\n &#39;stroke-width&#39;: this.getAttr(&#39;line-width&#39;),\n width: this.text.getBBox().width + 2 * this.getAttr(&#39;text-margin&#39;),\n height: this.text.getBBox().height + 2 * this.getAttr(&#39;text-margin&#39;),\n fill: this.getAttr(&#39;fill&#39;)\n });\n if (options.key) { innerWrap.node.id = options.key + &#39;i&#39;; }\n\n var font = this.getAttr(&#39;font&#39;);\n var fontF = this.getAttr(&#39;font-family&#39;);\n var fontW = this.getAttr(&#39;font-weight&#39;);\n\n if (font) innerWrap.attr({ &#39;font&#39;: font });\n if (fontF) innerWrap.attr({ &#39;font-family&#39;: fontF });\n if (fontW) innerWrap.attr({ &#39;font-weight&#39;: fontW });\n\n if (options.link) { innerWrap.attr(&#39;href&#39;, options.link); }\n if (options.target) { innerWrap.attr(&#39;target&#39;, options.target); }\n this.group.push(innerWrap);\n innerWrap.insertBefore(this.text);\n\n this.initialize();\n}\ninherits(Subroutine, Symbol);\n\nmodule.exports = Subroutine;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/flowchart.symbol.subroutine.js\n ** module id = 13\n ** module chunks = 0\n **/&quot;,&quot;if (typeof jQuery != &#39;undefined&#39;) {\n\tvar parse = require(&#39;./flowchart.parse&#39;);\n\t(function( $ ) {\n\t\t$.fn.flowChart = function( options ) {\n\t\t\treturn this.each(function() {\n\t\t\t\tvar $this = $(this);\n\t\t\t\tvar chart = parse($this.text());\n\t\t\t\t$this.html(&#39;&#39;);\n\t\t\t\tchart.drawSVG(this, options);\n\t\t\t});\n\t\t};\n\t})(jQuery); // eslint-disable-line\n}\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/jquery-plugin.js\n ** module id = 14\n ** module chunks = 0\n **/&quot;,&quot;module.exports = __WEBPACK_EXTERNAL_MODULE_15__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \&quot;Raphael\&quot;\n ** module id = 15\n ** module chunks = 0\n **/&quot;],&quot;sourceRoot&quot;:&quot;&quot;}</td>
+ </tr>
+</table>
+
+ </div>
+
+</div>
+
+<button type="button" data-facebox="#jump-to-line" data-facebox-class="linejump" data-hotkey="l" class="hidden">Jump to Line</button>
+<div id="jump-to-line" style="display:none">
+ <!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="" class="js-jump-to-line-form" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /></div>
+ <input class="form-control linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line&hellip;" aria-label="Jump to line" autofocus>
+ <button type="submit" class="btn">Go</button>
+</form></div>
+
+ </div>
+ <div class="modal-backdrop js-touch-events"></div>
+</div>
+
+
+ </div>
+ </div>
+
+ </div>
+
+ <div class="container site-footer-container">
+ <div class="site-footer" role="contentinfo">
+ <ul class="site-footer-links right">
+ <li><a href="https://status.github.com/" data-ga-click="Footer, go to status, text:status">Status</a></li>
+ <li><a href="https://developer.github.com" data-ga-click="Footer, go to api, text:api">API</a></li>
+ <li><a href="https://training.github.com" data-ga-click="Footer, go to training, text:training">Training</a></li>
+ <li><a href="https://shop.github.com" data-ga-click="Footer, go to shop, text:shop">Shop</a></li>
+ <li><a href="https://github.com/blog" data-ga-click="Footer, go to blog, text:blog">Blog</a></li>
+ <li><a href="https://github.com/about" data-ga-click="Footer, go to about, text:about">About</a></li>
+
+ </ul>
+
+ <a href="https://github.com" aria-label="Homepage" class="site-footer-mark" title="GitHub">
+ <svg aria-hidden="true" class="octicon octicon-mark-github" height="24" version="1.1" viewBox="0 0 16 16" width="24"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg>
+</a>
+ <ul class="site-footer-links">
+ <li>&copy; 2016 <span title="0.11635s from github-fe131-cp1-prd.iad.github.net">GitHub</span>, Inc.</li>
+ <li><a href="https://github.com/site/terms" data-ga-click="Footer, go to terms, text:terms">Terms</a></li>
+ <li><a href="https://github.com/site/privacy" data-ga-click="Footer, go to privacy, text:privacy">Privacy</a></li>
+ <li><a href="https://github.com/security" data-ga-click="Footer, go to security, text:security">Security</a></li>
+ <li><a href="https://github.com/contact" data-ga-click="Footer, go to contact, text:contact">Contact</a></li>
+ <li><a href="https://help.github.com" data-ga-click="Footer, go to help, text:help">Help</a></li>
+ </ul>
+ </div>
+</div>
+
+
+
+
+
+ <div id="ajax-error-message" class="ajax-error-message flash flash-error">
+ <svg aria-hidden="true" class="octicon octicon-alert" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path d="M8.865 1.52c-.18-.31-.51-.5-.87-.5s-.69.19-.87.5L.275 13.5c-.18.31-.18.69 0 1 .19.31.52.5.87.5h13.7c.36 0 .69-.19.86-.5.17-.31.18-.69.01-1L8.865 1.52zM8.995 13h-2v-2h2v2zm0-3h-2V6h2v4z"></path></svg>
+ <button type="button" class="flash-close js-flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
+ <svg aria-hidden="true" class="octicon octicon-x" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"></path></svg>
+ </button>
+ Something went wrong with that request. Please try again.
+ </div>
+
+
+ <script crossorigin="anonymous" src="https://assets-cdn.github.com/assets/compat-7db58f8b7b91111107fac755dd8b178fe7db0f209ced51fc339c446ad3f8da2b.js"></script>
+ <script crossorigin="anonymous" src="https://assets-cdn.github.com/assets/frameworks-6fe6a7604ec4c2601272849e1b99a3a9aa12c79b3e25be0360f8d114768e7578.js"></script>
+ <script async="async" crossorigin="anonymous" src="https://assets-cdn.github.com/assets/github-a5fe95235cb3e84cafbe5a4f72c464477577f2c585b32eb2b065ab50480e58be.js"></script>
+
+
+
+
+
+
+ <div class="js-stale-session-flash stale-session-flash flash flash-warn flash-banner hidden">
+ <svg aria-hidden="true" class="octicon octicon-alert" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path d="M8.865 1.52c-.18-.31-.51-.5-.87-.5s-.69.19-.87.5L.275 13.5c-.18.31-.18.69 0 1 .19.31.52.5.87.5h13.7c.36 0 .69-.19.86-.5.17-.31.18-.69.01-1L8.865 1.52zM8.995 13h-2v-2h2v2zm0-3h-2V6h2v4z"></path></svg>
+ <span class="signed-in-tab-flash">You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span>
+ <span class="signed-out-tab-flash">You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span>
+ </div>
+ <div class="facebox" id="facebox" style="display:none;">
+ <div class="facebox-popup">
+ <div class="facebox-content" role="dialog" aria-labelledby="facebox-header" aria-describedby="facebox-description">
+ </div>
+ <button type="button" class="facebox-close js-facebox-close" aria-label="Close modal">
+ <svg aria-hidden="true" class="octicon octicon-x" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"></path></svg>
+ </button>
+ </div>
+</div>
+
+ </body>
+</html>
+