/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@webevt/jsplumb@1.7.10/dist/js/jsPlumb-1.7.10.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
(function(){void 0===Math.sgn&&(Math.sgn=function(t){return 0==t?0:t>0?1:-1});var t=function(t,e){return{x:t.x-e.x,y:t.y-e.y}},e=function(t,e){return t.x*e.x+t.y*e.y},n=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},i=function(t,e){return{x:t.x*e,y:t.y*e}},s=Math.pow(2,-65),o=function(e,i){for(var s=[],o=r(e,i),l=i.length-1,u=a(o,2*l-1,s,0),c=t(e,i[0]),d=n(c),p=0,f=0;f<u;f++){c=t(e,h(i,l,s[f],null,null));var m=n(c);m<d&&(d=m,p=s[f])}return c=t(e,i[l]),(m=n(c))<d&&(d=m,p=1),{location:p,distance:d}},r=function(n,s){for(var o=s.length-1,r=2*o-1,a=[],l=[],u=[],c=[],h=[[1,.6,.3,.1],[.4,.6,.6,.4],[.1,.3,.6,1]],d=0;d<=o;d++)a[d]=t(s[d],n);for(d=0;d<=o-1;d++)l[d]=t(s[d+1],s[d]),l[d]=i(l[d],3);for(var p=0;p<=o-1;p++)for(var f=0;f<=o;f++)u[p]||(u[p]=[]),u[p][f]=e(l[p],a[f]);for(d=0;d<=r;d++)c[d]||(c[d]=[]),c[d].y=0,c[d].x=parseFloat(d)/r;for(var m=o,g=o-1,v=0;v<=m+g;v++){var b=Math.max(0,v-g),y=Math.min(v,m);for(d=b;d<=y;d++)j=v-d,c[d+j].y+=u[j][d]*h[j][d]}return c},a=function(t,e,n,i){var s,o,r=[],d=[],p=[],f=[];switch(l(t,e)){case 0:return 0;case 1:if(i>=64)return n[0]=(t[0].x+t[e].x)/2,1;if(u(t,e))return n[0]=c(t,e),1}h(t,e,.5,r,d),s=a(r,e,p,i+1),o=a(d,e,f,i+1);for(var m=0;m<s;m++)n[m]=p[m];for(m=0;m<o;m++)n[m+s]=f[m];return s+o},l=function(t,e){var n,i,s=0;n=i=Math.sgn(t[0].y);for(var o=1;o<=e;o++)(n=Math.sgn(t[o].y))!=i&&s++,i=n;return s},u=function(t,e){var n,i,o,r,a,l,u,c;r=t[0].y-t[e].y,a=t[e].x-t[0].x,l=t[0].x*t[e].y-t[e].x*t[0].y;for(var h=max_distance_below=0,d=1;d<e;d++){var p=r*t[d].x+a*t[d].y+l;p>h?h=p:p<max_distance_below&&(max_distance_below=p)}return n=(1*(l-h)-0*(c=a))*(1/(0*c-1*(u=r))),u=r,c=a,i=(1*(l-max_distance_below)-0*c)*(1/(0*c-1*u)),o=Math.min(n,i),Math.max(n,i)-o<s?1:0},c=function(t,e){var n=t[e].x-t[0].x,i=t[e].y-t[0].y,s=t[0].x-0;return 0+1*((n*(t[0].y-0)-i*s)*(1/(0*n-1*i)))},h=function(t,e,n,i,s){for(var o=[[]],r=0;r<=e;r++)o[0][r]=t[r];for(var a=1;a<=e;a++)for(r=0;r<=e-a;r++)o[a]||(o[a]=[]),o[a][r]||(o[a][r]={}),o[a][r].x=(1-n)*o[a-1][r].x+n*o[a-1][r+1].x,o[a][r].y=(1-n)*o[a-1][r].y+n*o[a-1][r+1].y;if(null!=i)for(r=0;r<=e;r++)i[r]=o[r][0];if(null!=s)for(r=0;r<=e;r++)s[r]=o[e-r][r];return o[e][0]},d={},p=function(t,e){for(var n=function(t){var e=d[t];if(!e){var n=function(t){return function(e){return t}},i=function(){return function(t){return t}},s=function(){return function(t){return 1-t}},o=function(t){return function(e){for(var n=1,i=0;i<t.length;i++)n*=t[i](e);return n}};(e=[]).push(new function(){return function(e){return Math.pow(e,t)}});for(var r=1;r<t;r++){for(var a=[new n(t)],l=0;l<t-r;l++)a.push(new i);for(l=0;l<r;l++)a.push(new s);e.push(new o(a))}e.push(new function(){return function(e){return Math.pow(1-e,t)}}),d[t]=e}return e}(t.length-1),i=0,s=0,o=0;o<t.length;o++)i+=t[o].x*n[o](e),s+=t[o].y*n[o](e);return{x:i,y:s}},f=function(t,e){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},m=function(t){return t[0].x==t[1].x&&t[0].y==t[1].y},g=function(t,e,n){if(m(t))return{point:t[0],location:e};for(var i=p(t,e),s=0,o=e,r=n>0?1:-1,a=null;s<Math.abs(n);)a=p(t,o+=.005*r),s+=f(a,i),i=a;return{point:a,location:o}},v=function(t,e){var n=p(t,e),i=p(t.slice(0,t.length-1),e),s=i.y-n.y,o=i.x-n.x;return 0==s?1/0:Math.atan(s/o)};this.jsBezier={distanceFromCurve:o,gradientAtPoint:v,gradientAtPointAlongCurveFrom:function(t,e,n){var i=g(t,e,n);return i.location>1&&(i.location=1),i.location<0&&(i.location=0),v(t,i.location)},nearestPointOnCurve:function(t,e){var n=o(t,e);return{point:h(e,e.length-1,n.location,null,null),location:n.location}},pointOnCurve:p,pointAlongCurveFrom:function(t,e,n){return g(t,e,n).point},perpendicularToCurveAt:function(t,e,n,i){var s=g(t,e,i=null==i?0:i),o=v(t,s.location),r=Math.atan(-1/o),a=n/2*Math.sin(r),l=n/2*Math.cos(r);return[{x:s.point.x+l,y:s.point.y+a},{x:s.point.x-l,y:s.point.y-a}]},locationAlongCurveFrom:function(t,e,n){return g(t,e,n).location},getLength:function(t){if(m(t))return 0;for(var e=p(t,0),n=0,i=0,s=null;i<1;)s=p(t,i+=.005),n+=f(s,e),e=s;return n}}}).call(this),function(){"use strict";var t=this.Biltong={},e=function(t){return"[object Array]"===Object.prototype.toString.call(t)},n=function(t,n,i){return i(t=e(t)?t:[t.x,t.y],n=e(n)?n:[n.x,n.y])},i=t.gradient=function(t,e){return n(t,e,(function(t,e){return e[0]==t[0]?e[1]>t[1]?1/0:-1/0:e[1]==t[1]?e[0]>t[0]?0:-0:(e[1]-t[1])/(e[0]-t[0])}))},s=(t.normal=function(t,e){return-1/i(t,e)},t.lineLength=function(t,e){return n(t,e,(function(t,e){return Math.sqrt(Math.pow(e[1]-t[1],2)+Math.pow(e[0]-t[0],2))}))},t.quadrant=function(t,e){return n(t,e,(function(t,e){return e[0]>t[0]||e[0]==t[0]?e[1]>t[1]?2:1:e[1]>t[1]?3:4}))}),o=(t.theta=function(t,e){return n(t,e,(function(t,e){var n=i(t,e),o=Math.atan(n),r=s(t,e);return 4!=r&&3!=r||(o+=Math.PI),o<0&&(o+=2*Math.PI),o}))},t.intersects=function(t,e){var n=t.x,i=t.x+t.w,s=t.y,o=t.y+t.h,r=e.x,a=e.x+e.w,l=e.y,u=e.y+e.h;return n<=r&&r<=i&&s<=l&&l<=o||n<=a&&a<=i&&s<=l&&l<=o||n<=r&&r<=i&&s<=u&&u<=o||n<=a&&r<=i&&s<=u&&u<=o||r<=n&&n<=a&&l<=s&&s<=u||r<=i&&i<=a&&l<=s&&s<=u||r<=n&&n<=a&&l<=o&&o<=u||r<=i&&n<=a&&l<=o&&o<=u},t.encloses=function(t,e,n){var i=t.x,s=t.x+t.w,o=t.y,r=t.y+t.h,a=e.x,l=e.x+e.w,u=e.y,c=e.y+e.h,h=function(t,e,i,s){return n?t<=e&&i>=s:t<e&&i>s};return h(i,a,s,l)&&h(o,u,r,c)},[null,[1,-1],[1,1],[-1,1],[-1,-1]]),r=[null,[-1,-1],[-1,1],[1,1],[1,-1]];t.pointOnLine=function(t,e,n){var a=i(t,e),l=s(t,e),u=n>0?o[l]:r[l],c=Math.atan(a),h=Math.abs(n*Math.sin(c))*u[1],d=Math.abs(n*Math.cos(c))*u[0];return{x:t.x+d,y:t.y+h}},t.perpendicularLineTo=function(t,e,n){var s=i(t,e),o=Math.atan(-1/s),r=n/2*Math.sin(o),a=n/2*Math.cos(o);return[{x:e.x+a,y:e.y+r},{x:e.x-a,y:e.y-r}]}}.call(this),function(){"use strict";var t=navigator.userAgent.toLowerCase().indexOf("android")>-1,e=function(t,e,n){for(var i=(n=n||t.parentNode).querySelectorAll(e),s=0;s<i.length;s++)if(i[s]===t)return!0;return!1},n=function(t){return"string"==typeof t?document.getElementById(t):t},i=function(t){return t.srcElement||t.target},s=function(t,e){for(var n=0,i=t.length;n<i&&t[n]!=e;n++);n<t.length&&t.splice(n,1)},o=1,r=function(t,e,n){var i=o++;return t.__ta=t.__ta||{},t.__ta[e]=t.__ta[e]||{},t.__ta[e][i]=n,n.__tauid=i,i},a=function(t,n,s,o){if(null==t)return s;var r=t.split(","),a=function(t){a.__tauid=s.__tauid;for(var o=i(t),l=0;l<r.length;l++)e(o,r[l],n)&&s.apply(o,arguments)};return l(s,o,a),a},l=function(t,e,n){t.__taExtra=t.__taExtra||[],t.__taExtra.push([e,n])},u=function(t,e,n,i){if(f&&g[e]){var s=a(i,t,n,g[e]);j(t,g[e],s,n)}"focus"===e&&null==t.getAttribute("tabindex")&&t.setAttribute("tabindex","1"),j(t,e,a(i,t,n,e),n)},c={tap:{touches:1,taps:1},dbltap:{touches:1,taps:2},contextmenu:{touches:2,taps:1}},h=function(t,n){return function(o,r,a,l){if("contextmenu"==r&&m)u(o,r,a,l);else{if(null==o.__taTapHandler){var h=o.__taTapHandler={tap:[],dbltap:[],contextmenu:[],down:!1,taps:0,downSelectors:[]},d=function(){h.down=!1},p=function(){h.taps=0};u(o,"mousedown",(function(i){for(var s=i.srcElement||i.target,r=0;r<h.downSelectors.length;r++)if(null==h.downSelectors[r]||e(s,h.downSelectors[r],o)){h.down=!0,setTimeout(d,t),setTimeout(p,n);break}})),u(o,"mouseup",(function(t){if(h.down){var n=t.srcElement||t.target;h.taps++;var s=C(t);for(var r in c){var a=c[r];if(a.touches===s&&(1===a.taps||a.taps===h.taps))for(var l=0;l<h[r].length;l++)(null==h[r][l][1]||e(n,h[r][l][1],o))&&h[r][l][0].apply(i(t),[t])}}}))}o.__taTapHandler.downSelectors.push(l),o.__taTapHandler[r].push([a,l]),a.__taUnstore=function(){s(o.__taTapHandler[r],a)}}}},d=function(t,e,n,i){for(var s in n.__tamee[t])n.__tamee[t][s].apply(i,[e])},p=function(){var t=[];return function(n,s,o,l){if(!n.__tamee){n.__tamee={over:!1,mouseenter:[],mouseexit:[]};var u=function(s){var o=i(s);(null==l&&o==n&&!n.__tamee.over||e(o,l,n)&&(null==o.__tamee||!o.__tamee.over))&&(d("mouseenter",s,n,o),o.__tamee=o.__tamee||{},o.__tamee.over=!0,t.push(o))},c=function(s){for(var o=i(s),r=0;r<t.length;r++)o!=t[r]||e(s.relatedTarget||s.toElement,"*",o)||(o.__tamee.over=!1,t.splice(r,1),d("mouseexit",s,n,o))};j(n,"mouseover",a(l,n,u,"mouseover"),u),j(n,"mouseout",a(l,n,c,"mouseout"),c)}o.__taUnstore=function(){delete n.__tamee[s][o.__tauid]},r(n,s,o),n.__tamee[s][o.__tauid]=o}},f="ontouchstart"in document.documentElement,m="onmousedown"in document.documentElement,g={mousedown:"touchstart",mouseup:"touchend",mousemove:"touchmove"},v=function(){var t=-1;if("Microsoft Internet Explorer"==navigator.appName){var e=navigator.userAgent;null!=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})").exec(e)&&(t=parseFloat(RegExp.$1))}return t}(),b=v>-1&&v<9,y=function(t,e){if(null==t)return[0,0];var n=x(t),i=_(n,0);return[i[e+"X"],i[e+"Y"]]},P=function(t){return null==t?[0,0]:b?[t.clientX+document.documentElement.scrollLeft,t.clientY+document.documentElement.scrollTop]:y(t,"page")},_=function(t,e){return t.item?t.item(e):t[e]},x=function(t){return t.touches&&t.touches.length>0?t.touches:t.changedTouches&&t.changedTouches.length>0?t.changedTouches:t.targetTouches&&t.targetTouches.length>0?t.targetTouches:[t]},C=function(t){return x(t).length},j=function(t,e,n,i){if(r(t,e,n),i.__tauid=n.__tauid,t.addEventListener)t.addEventListener(e,n,!1);else if(t.attachEvent){var s=e+n.__tauid;t["e"+s]=n,t[s]=function(){t["e"+s]&&t["e"+s](window.event)},t.attachEvent("on"+e,t[s])}},E=function(t,e,i){null!=i&&S(t,(function(){var s=n(this);if(function(t,e,n){if(t.__ta&&t.__ta[e]&&delete t.__ta[e][n.__tauid],n.__taExtra){for(var i=0;i<n.__taExtra.length;i++)E(t,n.__taExtra[i][0],n.__taExtra[i][1]);n.__taExtra.length=0}n.__taUnstore&&n.__taUnstore()}(s,e,i),null!=i.__tauid)if(s.removeEventListener)s.removeEventListener(e,i,!1),f&&g[e]&&s.removeEventListener(g[e],i,!1);else if(this.detachEvent){var o=e+i.__tauid;s[o]&&s.detachEvent("on"+e,s[o]),s[o]=null,s["e"+o]=null}i.__taTouchProxy&&E(t,i.__taTouchProxy[1],i.__taTouchProxy[0])}))},S=function(t,e){if(null!=t){t="undefined"!=typeof Window&&"unknown"!=typeof t.top&&t==t.top?[t]:"string"!=typeof t&&null==t.tagName&&null!=t.length?t:"string"==typeof t?document.querySelectorAll(t):[t];for(var n=0;n<t.length;n++)e.apply(t[n])}};this.Mottle=function(e){var o=(e=e||{}).clickThreshold||150,r=e.dblClickThreshold||350,a=new p,l=new h(o,r),c=e.smartClicks,d=function(t,e,o,r){null!=o&&S(t,(function(){var t=n(this);c&&"click"===e?function(t,e,n,o){null==t.__taSmartClicks&&(u(t,"mousedown",(function(e){t.__tad=P(e)}),o),u(t,"mouseup",(function(e){t.__tau=P(e)}),o),u(t,"click",(function(e){if(t.__tad&&t.__tau&&t.__tad[0]===t.__tau[0]&&t.__tad[1]===t.__tau[1])for(var n=0;n<t.__taSmartClicks.length;n++)t.__taSmartClicks[n].apply(i(e),[e])}),o),t.__taSmartClicks=[]);t.__taSmartClicks.push(n),n.__taUnstore=function(){s(t.__taSmartClicks,n)}}(t,0,o,r):"tap"===e||"dbltap"===e||"contextmenu"===e?l(t,e,o,r):"mouseenter"===e||"mouseexit"==e?a(t,e,o,r):u(t,e,o,r)}))};this.remove=function(t){return S(t,(function(){var t=n(this);if(t.__ta)for(var e in t.__ta)for(var i in t.__ta[e])E(t,e,t.__ta[e][i]);t.parentNode&&t.parentNode.removeChild(t)})),this},this.on=function(t,e,n,i){return d(arguments[0],arguments[1],arguments[arguments.length-1],4==arguments.length?arguments[2]:null),this},this.off=function(t,e,n){return E(t,e,n),this},this.trigger=function(e,i,s,o){var r=m&&("undefined"==typeof MouseEvent||null==s||s.constructor===MouseEvent),a=f&&!m&&g[i]?g[i]:i,l=!(f&&!m&&g[i]),u=P(s),c=y(s,"screen"),h=function(t){return y(t,"client")}(s);return S(e,(function(){var e,d=n(this);s=s||{screenX:c[0],screenY:c[1],clientX:h[0],clientY:h[1]};var p=function(t){o&&(t.payload=o)},m={TouchEvent:function(t){var e=document.createTouch(window,d,0,u[0],u[1],c[0],c[1],h[0],h[1],0,0,0,0),n=document.createTouchList(e),i=document.createTouchList(e),s=document.createTouchList(e);t.initTouchEvent(a,!0,!0,window,null,c[0],c[1],h[0],h[1],!1,!1,!1,!1,n,i,s,1,0)},MouseEvents:function(e){if(e.initMouseEvent(a,!0,!0,window,0,c[0],c[1],h[0],h[1],!1,!1,!1,!1,1,d),t){var n=document.createTouch(window,d,0,u[0],u[1],c[0],c[1],h[0],h[1],0,0,0,0);e.touches=e.targetTouches=e.changedTouches=document.createTouchList(n)}}};if(document.createEvent){var v=!l&&!r&&f&&g[i]&&!t?"TouchEvent":"MouseEvents";e=document.createEvent(v),m[v](e),p(e),d.dispatchEvent(e)}else document.createEventObject&&((e=document.createEventObject()).eventType=e.eventName=a,e.screenX=c[0],e.screenY=c[1],e.clientX=h[0],e.clientY=h[1],p(e),d.fireEvent("on"+a,e))})),this}},Mottle.consume=function(t,e){t.stopPropagation?t.stopPropagation():t.returnValue=!1,!e&&t.preventDefault&&t.preventDefault()},Mottle.pageLocation=P,Mottle.setForceTouchEvents=function(t){f=t},Mottle.setForceMouseEvents=function(t){m=t}}.call(this),function(){"use strict";var t=function(t,e,n){for(var i=(n=n||t.parentNode).querySelectorAll(e),s=0;s<i.length;s++)if(i[s]===t)return!0;return!1},e=function(){var t=-1;if("Microsoft Internet Explorer"==navigator.appName){var e=navigator.userAgent;null!=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})").exec(e)&&(t=parseFloat(RegExp.$1))}return t}(),n=e>-1&&e<9,i=function(t){if(n)return[t.clientX+document.documentElement.scrollLeft,t.clientY+document.documentElement.scrollTop];var e=o(t),i=s(e,0);return[i.pageX,i.pageY]},s=function(t,e){return t.item?t.item(e):t[e]},o=function(t){return t.touches&&t.touches.length>0?t.touches:t.changedTouches&&t.changedTouches.length>0?t.changedTouches:t.targetTouches&&t.targetTouches.length>0?t.targetTouches:[t]},r={draggable:"katavorio-draggable",droppable:"katavorio-droppable",drag:"katavorio-drag",selected:"katavorio-drag-selected",active:"katavorio-drag-active",hover:"katavorio-drag-hover",noSelect:"katavorio-drag-no-select"},a=["stop","start","drag","drop","over","out"],l=function(){},u=function(){return!0},c=function(t,e,n){for(var i=0;i<t.length;i++)t[i]!=n&&e(t[i])},h=function(t,e,n,i){c(t,(function(t){t.setActive(e),e&&t.updatePosition(),n&&t.setHover(i,e)}))},d=function(t,e){if(null!=t){t="string"!=typeof t&&null==t.tagName&&null!=t.length?t:[t];for(var n=0;n<t.length;n++)e.apply(t[n],[t[n]])}},p=function(t){t.stopPropagation?(t.stopPropagation(),t.preventDefault()):t.returnValue=!1},f=function(t,e,n,i){this.params=e||{},this.el=t,this.params.addClass(this.el,this._class),this.uuid=v();var s=!0;return this.setEnabled=function(t){s=t},this.isEnabled=function(){return s},this.toggleEnabled=function(){s=!s},this.setScope=function(t){this.scopes=t?t.split(/\s+/):[i]},this.addScope=function(t){var e={};for(var n in d(this.scopes,(function(t){e[t]=!0})),d(t?t.split(/\s+/):[],(function(t){e[t]=!0})),this.scopes=[],e)this.scopes.push(n)},this.removeScope=function(t){var e={};for(var n in d(this.scopes,(function(t){e[t]=!0})),d(t?t.split(/\s+/):[],(function(t){delete e[t]})),this.scopes=[],e)this.scopes.push(n)},this.toggleScope=function(t){var e={};for(var n in d(this.scopes,(function(t){e[t]=!0})),d(t?t.split(/\s+/):[],(function(t){e[t]?delete e[t]:e[t]=!0})),this.scopes=[],e)this.scopes.push(n)},this.setScope(e.scope),this.k=e.katavorio,e.katavorio},m=function(e,n,s,o){this._class=s.draggable;var r=f.apply(this,arguments);this.rightButtonCanDrag=this.params.rightButtonCanDrag;var a=[0,0],l=null,c=!1,d=!1!==this.params.consumeStartEvent,m=this.el,g=this.params.clone,b=(this.params.scroll,n.multipleDrop,n.snapThreshold||5),y=function(t,e,n,i,s){i=i||b,s=s||b;var o=e*Math.floor(t[0]/e),r=o+e,a=Math.abs(t[0]-o)<=i?o:Math.abs(r-t[0])<=i?r:t[0],l=n*Math.floor(t[1]/n),u=l+n;return[a,Math.abs(t[1]-l)<=s?l:Math.abs(u-t[1])<=s?u:t[1]]};this.toGrid=function(t){return null==this.params.grid?t:y(t,this.params.grid[0],this.params.grid[1])},this.snap=function(t,e){if(null!=m){t=t||(this.params.grid?this.params.grid[0]:50),e=e||(this.params.grid?this.params.grid[1]:50);var n=this.params.getPosition(m);this.params.setPosition(m,y(n,t,e,t,e))}},this.constrain="function"==typeof this.params.constrain?this.params.constrain:this.params.constrain||this.params.containment?function(t){return[Math.max(0,Math.min(x.w-this.size[0],t[0])),Math.max(0,Math.min(x.h-this.size[1],t[1]))]}:function(t){return t};var P={},_=this.setFilter=function(n,i){if(n){var s="function"==typeof(o=n)?(o._katavorioId=v(),o._katavorioId):o;P[s]=[function(i){var s,o=i.srcElement||i.target;return"string"==typeof n?s=t(o,n,e):"function"==typeof n&&(s=n(i,e)),s},!1!==i]}var o};this.addFilter=_,this.removeFilter=function(t){var e="function"==typeof t?t._katavorioId:t;delete P[e]};this.clearAllFilters=function(){P={}},this.canDrag=this.params.canDrag||u;var x,C=[],j=[];this.downListener=function(e){var n,o,l,u,c,h,f,v,b,y;if((this.rightButtonCanDrag||3!==e.which&&2!==e.button)&&this.isEnabled()&&this.canDrag()){var _=function(t){for(var e in P){var n=P[e],i=n[0](t);if(n[1]&&(i=!i),!i)return!1}return!0}(e)&&function(e,n,i){var s=e.srcElement||e.target;return!t(s,i.getInputFilterSelector(),n)}(e,this.el,this.k);if(_){if(g){(m=this.el.cloneNode(!0)).setAttribute("id",null),m.style.position="absolute";var x=(n=this.el,o=n.getBoundingClientRect(),l=document.body,u=document.documentElement,c=window.pageYOffset||u.scrollTop||l.scrollTop,h=window.pageXOffset||u.scrollLeft||l.scrollLeft,f=u.clientTop||l.clientTop||0,v=u.clientLeft||l.clientLeft||0,b=o.top+c-f,y=o.left+h-v,{top:Math.round(b),left:Math.round(y)});m.style.left=x.left+"px",m.style.top=x.top+"px",document.body.appendChild(m)}else m=this.el;d&&p(e),a=i(e),this.params.bind(document,"mousemove",this.moveListener),this.params.bind(document,"mouseup",this.upListener),r.markSelection(this),this.params.addClass(document.body,s.noSelect)}else this.params.consumeFilteredEvents&&p(e)}}.bind(this),this.moveListener=function(t){if(a){if(!c)if(!1!==S("start",{el:this.el,pos:l,e:t,drag:this})){if(!a)return;this.mark(!0),c=!0}if(a){j.length=0;var e=i(t),n=e[0]-a[0],s=e[1]-a[1],o=this.params.ignoreZoom?1:r.getZoom();n/=o,s/=o,this.moveBy(n,s,t),r.updateSelection(n,s,this)}}}.bind(this),this.upListener=function(t){a&&(a=null,this.params.unbind(document,"mousemove",this.moveListener),this.params.unbind(document,"mouseup",this.upListener),this.params.removeClass(document.body,s.noSelect),this.unmark(t),r.unmarkSelection(this,t),this.stop(t),r.notifySelectionDragStop(this,t),c=!1,g&&(m&&m.parentNode&&m.parentNode.removeChild(m),m=null))}.bind(this),this.getFilters=function(){return P},this.abort=function(){null!=a&&this.upListener()},this.getDragElement=function(){return m||this.el};var E={start:[],drag:[],stop:[],over:[],out:[]};n.events.start&&E.start.push(n.events.start),n.events.stop&&E.stop.push(n.events.stop),n.events.drag&&E.drag.push(n.events.drag),this.on=function(t,e){E[t]&&E[t].push(e)};var S=function(t,e){if(E[t])for(var n=0;n<E[t].length;n++)try{E[t][n](e)}catch(t){}};this.notifyStart=function(t){S("start",{el:this.el,pos:this.params.getPosition(m),e:t,drag:this})},this.stop=function(t,e){if(e||c){var n=[],i=r.getSelection(),s=this.params.getPosition(m);if(i.length>1)for(var o=0;o<i.length;o++){var a=this.params.getPosition(i[o].el);n.push([i[o].el,{left:a[0],top:a[1]},i[o]])}else n.push([m,{left:s[0],top:s[1]},this]);S("stop",{el:m,pos:s,e:t,drag:this,selection:n})}},this.mark=function(t){if(l=this.params.getPosition(m),this.size=this.params.getSize(m),C=r.getMatchingDroppables(this),h(C,!0,!1,this),this.params.addClass(m,this.params.dragClass||s.drag),this.params.constrain||this.params.containment){var e=this.params.getSize(m.parentNode);x={w:e[0],h:e[1]}}t&&r.notifySelectionDragStart(this)},this.unmark=function(t){h(C,!1,!0,this),this.params.removeClass(m,this.params.dragClass||s.drag),C.length=0;for(var e=0;e<j.length;e++){if(!0===j[e].drop(this,t))break}},this.moveBy=function(t,e,n){j.length=0;var i=this.constrain(this.toGrid([l[0]+t,l[1]+e]),m),s={x:i[0],y:i[1],w:this.size[0],h:this.size[1]};this.params.setPosition(m,i);for(var o=0;o<C.length;o++){var r={x:C[o].position[0],y:C[o].position[1],w:C[o].size[0],h:C[o].size[1]};this.params.intersects(s,r)&&C[o].canDrop(this)?(j.push(C[o]),C[o].setHover(this,!0,n)):C[o].isHover()&&C[o].setHover(this,!1,n)}S("drag",{el:this.el,pos:i,e:n,drag:this})},this.destroy=function(){this.params.unbind(this.el,"mousedown",this.downListener),this.params.unbind(document,"mousemove",this.moveListener),this.params.unbind(document,"mouseup",this.upListener),this.downListener=null,this.upListener=null,this.moveListener=null},this.params.bind(this.el,"mousedown",this.downListener),this.params.handle?_(this.params.handle,!1):_(this.params.filter,this.params.filterExclude)},g=function(t,e,n,i){this._class=n.droppable,this.params=e||{},this._activeClass=e.activeClass||n.active,this._hoverClass=e.hoverClass||n.hover,f.apply(this,arguments);var s=!1;this.setActive=function(t){this.params[t?"addClass":"removeClass"](this.el,this._activeClass)},this.updatePosition=function(){this.position=this.params.getPosition(this.el),this.size=this.params.getSize(this.el)},this.canDrop=this.params.canDrop||function(t){return!0},this.isHover=function(){return s},this.setHover=function(t,e,n){(e||null==this.el._katavorioDragHover||this.el._katavorioDragHover==t.el._katavorio)&&(this.params[e?"addClass":"removeClass"](this.el,this._hoverClass),this.el._katavorioDragHover=e?t.el._katavorio:null,s!==e&&this.params.events[e?"over":"out"]({el:this.el,e:n,drag:t,drop:this}),s=e)},this.drop=function(t,e){return this.params.events.drop({drag:t,e:e,drop:this})},this.destroy=function(){this._class=null,this._activeClass=null,this._hoverClass=null,s=null}},v=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){var e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)}))},b=function(t){return null==t||null==(t="string"==typeof t?document.getElementById(t):t)?null:(t._katavorio=t._katavorio||v(),t)};this.Katavorio=function(t){var e=[],n={};this._dragsByScope={},this._dropsByScope={};var i=1,s=function(t,e){for(var n=0;n<t.scopes.length;n++)e[t.scopes[n]]=e[t.scopes[n]]||[],e[t.scopes[n]].push(t)},o=function(e,n){for(var i=0,s=0;s<e.scopes.length;s++)if(n[e.scopes[s]]){var o=t.indexOf(n[e.scopes[s]],e);-1!=o&&(n[e.scopes[s]].splice(o,1),i++)}return i>0},u=(this.getMatchingDroppables=function(t){for(var e=[],n={},i=0;i<t.scopes.length;i++){var s=this._dropsByScope[t.scopes[i]];if(s)for(var o=0;o<s.length;o++)s[o].canDrop(t)&&!n[s[o].uuid]&&s[o].el!==t.el&&(n[s[o].uuid]=!0,e.push(s[o]))}return e},function(e){e=e||{};var n={events:{}};for(var i in t)n[i]=t[i];for(var i in e)n[i]=e[i];for(i=0;i<a.length;i++)n.events[a[i]]=e[a[i]]||l;return n.katavorio=this,n}.bind(this)),h=function(t,e){for(var n=0;n<a.length;n++)e[a[n]]&&t.on(a[n],e[a[n]])}.bind(this),p={},f=t.css||{},v=t.scope||"katavorio-drag-scope";for(var y in r)p[y]=r[y];for(var y in f)p[y]=f[y];var P=t.inputFilterSelector||"input,textarea,select,button,option";this.getInputFilterSelector=function(){return P},this.setInputFilterSelector=function(t){return P=t,this},this.draggable=function(e,n){var i=[];return d(e,function(e){if(null!=(e=b(e)))if(null==e._katavorioDrag){var o=u(n);e._katavorioDrag=new m(e,o,p,v),s(e._katavorioDrag,this._dragsByScope),i.push(e._katavorioDrag),t.addClass(e,p.draggable)}else h(e._katavorioDrag,n)}.bind(this)),i},this.droppable=function(e,n){var i=[];return d(e,function(e){null!=(e=b(e))&&(e._katavorioDrop=new g(e,u(n),p,v),s(e._katavorioDrop,this._dropsByScope),i.push(e._katavorioDrop),t.addClass(e,p.droppable))}.bind(this)),i},this.select=function(i){return d(i,(function(){var i=b(this);i&&i._katavorioDrag&&(n[i._katavorio]||(e.push(i._katavorioDrag),n[i._katavorio]=[i,e.length-1],t.addClass(i,p.selected)))})),this},this.deselect=function(i){return d(i,(function(){var i=b(this);if(i&&i._katavorio&&n[i._katavorio]){for(var s=[],o=0;o<e.length;o++)e[o].el!==i&&s.push(e[o]);e=s,delete n[i._katavorio],t.removeClass(i,p.selected)}})),this},this.deselectAll=function(){for(var i in n){var s=n[i];t.removeClass(s[0],p.selected)}e.length=0,n={}},this.markSelection=function(t){c(e,(function(t){t.mark()}),t)},this.unmarkSelection=function(t,n){c(e,(function(t){t.unmark(n)}),t)},this.getSelection=function(){return e.slice(0)},this.updateSelection=function(t,n,i){c(e,(function(e){e.moveBy(t,n)}),i)},this.notifySelectionDragStop=function(t,n){c(e,(function(t){t.stop(n,!0)}),t)},this.notifySelectionDragStart=function(t,n){c(e,(function(t){t.notifyStart(n)}),t)},this.setZoom=function(t){i=t},this.getZoom=function(){return i};var _=function(t,e,n,i){null!=t&&(o(t,n),t[i](e),s(t,n))};d(["set","add","remove","toggle"],function(t){this[t+"Scope"]=function(e,n){_(e._katavorioDrag,n,this._dragsByScope,t+"Scope"),_(e._katavorioDrop,n,this._dropsByScope,t+"Scope")}.bind(this),this[t+"DragScope"]=function(e,n){_(e._katavorioDrag,n,this._dragsByScope,t+"Scope")}.bind(this),this[t+"DropScope"]=function(e,n){_(e._katavorioDrop,n,this._dropsByScope,t+"Scope")}.bind(this)}.bind(this)),this.snapToGrid=function(t,e){for(var n in this._dragsByScope)c(this._dragsByScope[n],(function(n){n.snap(t,e)}))},this.getDragsForScope=function(t){return this._dragsByScope[t]},this.getDropsForScope=function(t){return this._dropsByScope[t]};var x=function(t,e,n){(t=b(t))[e]&&(o(t[e],n)&&t[e].destroy(),t[e]=null)};this.elementRemoved=function(t){this.destroyDraggable(t),this.destroyDroppable(t)},this.destroyDraggable=function(t){x(t,"_katavorioDrag",this._dragsByScope)},this.destroyDroppable=function(t){x(t,"_katavorioDrop",this._dropsByScope)},this.reset=function(){this._dragsByScope={},this._dropsByScope={},e=[],n={}}}}.call(this),function(){var t=function(t){return"[object Array]"===Object.prototype.toString.call(t)},e=function(t){return"string"==typeof t},n=function(t){return"boolean"==typeof t},i=function(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)},s=function(t){return"[object Date]"===Object.prototype.toString.call(t)},o=function(t){return"[object Function]"===Object.prototype.toString.call(t)},r=this.jsPlumbUtil={isArray:t,isString:e,isBoolean:n,isNull:function(t){return null==t},isObject:i,isDate:s,isFunction:o,isEmpty:function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0},isNumber:function(t){return"[object Number]"===Object.prototype.toString.call(t)},clone:function(r){if(e(r))return""+r;if(n(r))return!!r;if(s(r))return new Date(r.getTime());if(o(r))return r;if(t(r)){for(var a=[],l=0;l<r.length;l++)a.push(this.clone(r[l]));return a}if(i(r)){var u={};for(var c in r)u[c]=this.clone(r[c]);return u}return r},merge:function(s,o,r){var a,l,u={};for(r=r||[],l=0;l<r.length;l++)u[r[l]]=!0;var c=this.clone(s);for(l in o)if(null==c[l])c[l]=o[l];else if(e(o[l])||n(o[l]))u[l]?((a=[]).push.apply(a,t(c[l])?c[l]:[c[l]]),a.push.apply(a,t(o[l])?o[l]:[o[l]]),c[l]=a):c[l]=o[l];else if(t(o[l]))a=[],t(c[l])&&a.push.apply(a,c[l]),a.push.apply(a,o[l]),c[l]=a;else if(i(o[l]))for(var h in i(c[l])||(c[l]={}),o[l])c[l][h]=o[l][h];return c},replace:function(t,e,n){if(null!=t){var i=t;return e.replace(/([^\.])+/g,(function(t,e,s,o){var r=t.match(/([^\[0-9]+){1}(\[)([0-9+])/),a=function(){return i[r[1]]||(i[r[1]]=[],i[r[1]])};if(s+t.length>=o.length)r?a()[r[3]]=n:i[t]=n;else if(r){var l=a();i=l[r[3]]||(l[r[3]]={},l[r[3]])}else i=i[t]||(i[t]={},i[t])})),t}},functionChain:function(t,e,n){for(var i=0;i<n.length;i++){var s=n[i][0][n[i][1]].apply(n[i][0],n[i][2]);if(s===e)return s}return t},populate:function(n,s){var o=function(n){if(null!=n){if(e(n))return function(t){var e=t.match(/(\${.*?})/g);if(null!=e)for(var n=0;n<e.length;n++){var i=s[e[n].substring(2,e[n].length-1)]||"";null!=i&&(t=t.replace(e[n],i))}return t}(n);if(t(n)){for(var r=[],a=0;a<n.length;a++)r.push(o(n[a]));return r}if(i(n)){var l={};for(var u in n)l[u]=o(n[u]);return l}return n}};return o(n)},findWithFunction:function(t,e){if(t)for(var n=0;n<t.length;n++)if(e(t[n]))return n;return-1},indexOf:function(t,e){return t.indexOf?t.indexOf(e):r.findWithFunction(t,(function(t){return t==e}))},removeWithFunction:function(t,e){var n=r.findWithFunction(t,e);return n>-1&&t.splice(n,1),-1!=n},remove:function(t,e){var n=r.indexOf(t,e);return n>-1&&t.splice(n,1),-1!=n},addWithFunction:function(t,e,n){-1==r.findWithFunction(t,n)&&t.push(e)},addToList:function(t,e,n,i){var s=t[e];return null==s&&(s=[],t[e]=s),s[i?"unshift":"push"](n),s},extend:function(e,n,i){var s;for(n=t(n)?n:[n],s=0;s<n.length;s++)for(var o in n[s].prototype)n[s].prototype.hasOwnProperty(o)&&(e.prototype[o]=n[s].prototype[o]);var r=function(t,e){return function(){for(s=0;s<n.length;s++)n[s].prototype[t]&&n[s].prototype[t].apply(this,arguments);return e.apply(this,arguments)}},a=function(t){for(var n in t)e.prototype[n]=r(n,t[n])};if(arguments.length>2)for(s=2;s<arguments.length;s++)a(arguments[s]);return e},uuid:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){var e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)}))},logEnabled:!0,log:function(){if(r.logEnabled&&"undefined"!=typeof console)try{var t=arguments[arguments.length-1];console.log(t)}catch(t){}},wrap:function(t,e,n){return t=t||function(){},e=e||function(){},function(){var i=null;try{i=e.apply(this,arguments)}catch(t){r.log("jsPlumb function failed : "+t)}if(null==n||i!==n)try{i=t.apply(this,arguments)}catch(t){r.log("wrapped function failed : "+t)}return i}}};r.EventGenerator=function(){var t={},e=!1,n={ready:!0};this.bind=function(e,n,i){var s=function(e){r.addToList(t,e,n,i),n.__jsPlumb=n.__jsPlumb||{},n.__jsPlumb[jsPlumbUtil.uuid()]=e};if("string"==typeof e)s(e);else if(null!=e.length)for(var o=0;o<e.length;o++)s(e[o]);return this},this.fire=function(i,s,o){if(!e&&t[i]){var a=t[i].length,l=0,u=!1,c=null;if(!this.shouldFireEvent||this.shouldFireEvent(i,s,o))for(;!u&&l<a&&!1!==c;){if(n[i])t[i][l].apply(this,[s,o]);else try{c=t[i][l].apply(this,[s,o])}catch(t){r.log("jsPlumb: fire failed for event "+i+" : "+t)}l++,null!=t&&null!=t[i]||(u=!0)}}return this},this.unbind=function(e,n){if(0===arguments.length)t={};else if(1===arguments.length){if("string"==typeof e)delete t[e];else if(e.__jsPlumb){var i;for(var s in e.__jsPlumb)i=e.__jsPlumb[s],r.remove(t[i]||[],e)}}else 2===arguments.length&&r.remove(t[e]||[],n);return this},this.getListener=function(e){return t[e]},this.setSuspendEvents=function(t){e=t},this.isSuspendEvents=function(){return e},this.silently=function(t){this.setSuspendEvents(!0);try{t()}catch(t){jsPlumbUtil.log("Cannot execute silent function "+t)}this.setSuspendEvents(!1)},this.cleanupListeners=function(){for(var e in t)t[e]=null}},r.EventGenerator.prototype={cleanup:function(){this.cleanupListeners()}},Function.prototype.bind||(Function.prototype.bind=function(t){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var e=Array.prototype.slice.call(arguments,1),n=this,i=function(){},s=function(){return n.apply(this instanceof i&&t?this:t,e.concat(Array.prototype.slice.call(arguments)))};return i.prototype=this.prototype,s.prototype=new i,s})}.call(this),function(){"use strict";var t=this.jsPlumbUtil;t.ieVersion=/MSIE\s([\d.]+)/.test(navigator.userAgent)?new Number(RegExp.$1):-1,t.oldIE=t.ieVersion>-1&&t.ieVersion<9,t.matchesSelector=function(t,e,n){for(var i=(n=n||t.parentNode).querySelectorAll(e),s=0;s<i.length;s++)if(i[s]===t)return!0;return!1},t.consume=function(t,e){t.stopPropagation?t.stopPropagation():t.returnValue=!1,!e&&t.preventDefault&&t.preventDefault()},t.sizeElement=function(t,e,n,i,s){t&&(t.style.height=s+"px",t.height=s,t.style.width=i+"px",t.width=i,t.style.left=e+"px",t.style.top=n+"px")}}.call(this),function(){"use strict";var t,e=[],n=this.jsPlumbUtil,i=function(){return""+(new Date).getTime()},s=function(t){if(t._jsPlumb.paintStyle&&t._jsPlumb.hoverPaintStyle){var e={};p.extend(e,t._jsPlumb.paintStyle),p.extend(e,t._jsPlumb.hoverPaintStyle),delete t._jsPlumb.hoverPaintStyle,e.gradient&&t._jsPlumb.paintStyle.fillStyle&&delete e.gradient,t._jsPlumb.hoverPaintStyle=e}},o=["tap","dbltap","click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","contextmenu"],r=function(t){return null==t?null:t.split(" ")},a=function(t,e,n){for(var i in e)t[i]=n},l=function(t,e,i){if(t.getDefaultType){var s=t.getTypeDescriptor(),o={},r=t.getDefaultType(),l=n.merge({},r);a(o,r,"__default");for(var u=0,c=t._jsPlumb.types.length;u<c;u++){var h=t._jsPlumb.types[u];if("__default"!==h){var d=t._jsPlumb.instance.getType(h,s);null!=d&&(l=n.merge(l,d,["cssClass"]),a(o,d,h))}}e&&(l=n.populate(l,e)),t.applyType(l,i,o),i||t.repaint()}},u=window.jsPlumbUIComponent=function(t){jsPlumbUtil.EventGenerator.apply(this,arguments);var e=arguments,i=this.idPrefix+(new Date).getTime();this._jsPlumb={instance:t._jsPlumb,parameters:t.parameters||{},paintStyle:null,hoverPaintStyle:null,paintStyleInUse:null,hover:!1,beforeDetach:t.beforeDetach,beforeDrop:t.beforeDrop,overlayPlacements:[],hoverClass:t.hoverClass||t._jsPlumb.Defaults.HoverClass,types:[],typeCache:{}},this.cacheTypeItem=function(t,e,n){this._jsPlumb.typeCache[n]=this._jsPlumb.typeCache[n]||{},this._jsPlumb.typeCache[n][t]=e},this.getCachedTypeItem=function(t,e){return this._jsPlumb.typeCache[e]?this._jsPlumb.typeCache[e][t]:null},this.getId=function(){return i};var s=t.overlays||[],o={};if(this.defaultOverlayKeys){for(var r=0;r<this.defaultOverlayKeys.length;r++)Array.prototype.push.apply(s,this._jsPlumb.instance.Defaults[this.defaultOverlayKeys[r]]||[]);for(r=0;r<s.length;r++){var a=p.convertToFullOverlaySpec(s[r]);o[a[1].id]=a}}var l={overlays:o,parameters:t.parameters||{},scope:t.scope||this._jsPlumb.instance.getDefaultScope()};if(this.getDefaultType=function(){return l},this.appendToDefaultType=function(t){for(var e in t)l[e]=t[e]},t.events)for(r in t.events)this.bind(r,t.events[r]);this.clone=function(){var t={};return this.constructor.apply(t,e),t}.bind(this),this.isDetachAllowed=function(t){var e=!0;if(this._jsPlumb.beforeDetach)try{e=this._jsPlumb.beforeDetach(t)}catch(t){n.log("jsPlumb: beforeDetach callback failed",t)}return e},this.isDropAllowed=function(t,e,i,s,o,r,a){var l=this._jsPlumb.instance.checkCondition("beforeDrop",{sourceId:t,targetId:e,scope:i,connection:s,dropEndpoint:o,source:r,target:a});if(this._jsPlumb.beforeDrop)try{l=this._jsPlumb.beforeDrop({sourceId:t,targetId:e,scope:i,connection:s,dropEndpoint:o,source:r,target:a})}catch(t){n.log("jsPlumb: beforeDrop callback failed",t)}return l};var u=[];this.setListenerComponent=function(t){for(var e=0;e<u.length;e++)u[e][3]=t}},c=function(t,e){var n=t._jsPlumb.types[e],i=t._jsPlumb.instance.getType(n,t.getTypeDescriptor());null!=i&&i.cssClass&&t.canvas&&t._jsPlumb.instance.removeClass(t.canvas,i.cssClass)};jsPlumbUtil.extend(u,jsPlumbUtil.EventGenerator,{getParameter:function(t){return this._jsPlumb.parameters[t]},setParameter:function(t,e){this._jsPlumb.parameters[t]=e},getParameters:function(){return this._jsPlumb.parameters},setParameters:function(t){this._jsPlumb.parameters=t},getClass:function(){return p.getClass(this.canvas)},hasClass:function(t){return p.hasClass(this.canvas,t)},addClass:function(t){p.addClass(this.canvas,t)},removeClass:function(t){p.removeClass(this.canvas,t)},updateClasses:function(t,e){p.updateClasses(this.canvas,t,e)},setType:function(t,e,n){this.clearTypes(),this._jsPlumb.types=r(t)||[],l(this,e,n)},getType:function(){return this._jsPlumb.types},reapplyTypes:function(t,e){l(this,t,e)},hasType:function(t){return-1!=jsPlumbUtil.indexOf(this._jsPlumb.types,t)},addType:function(t,e,n){var i=r(t),s=!1;if(null!=i){for(var o=0,a=i.length;o<a;o++)this.hasType(i[o])||(this._jsPlumb.types.push(i[o]),s=!0);s&&l(this,e,n)}},removeType:function(t,e){var i=r(t),s=!1,o=function(t){var e=n.indexOf(this._jsPlumb.types,t);return-1!=e&&(c(this,e),this._jsPlumb.types.splice(e,1),!0)}.bind(this);if(null!=i){for(var a=0,u=i.length;a<u;a++)s=o(i[a])||s;s&&l(this,null,e)}},clearTypes:function(t){for(var e=this._jsPlumb.types.length,n=0;n<e;n++)c(this,0),this._jsPlumb.types.splice(0,1);l(this,{},t)},toggleType:function(t,e,n){var i=r(t);if(null!=i){for(var s=0,o=i.length;s<o;s++){var a=jsPlumbUtil.indexOf(this._jsPlumb.types,i[s]);-1!=a?(c(this,a),this._jsPlumb.types.splice(a,1)):this._jsPlumb.types.push(i[s])}l(this,e,n)}},applyType:function(t,e){if(this.setPaintStyle(t.paintStyle,e),this.setHoverPaintStyle(t.hoverPaintStyle,e),t.parameters)for(var n in t.parameters)this.setParameter(n,t.parameters[n]);this._jsPlumb.paintStyleInUse=this.getPaintStyle()},setPaintStyle:function(t,e){this._jsPlumb.paintStyle=t,this._jsPlumb.paintStyleInUse=this._jsPlumb.paintStyle,s(this),e||this.repaint()},getPaintStyle:function(){return this._jsPlumb.paintStyle},setHoverPaintStyle:function(t,e){this._jsPlumb.hoverPaintStyle=t,s(this),e||this.repaint()},getHoverPaintStyle:function(){return this._jsPlumb.hoverPaintStyle},destroy:function(t){(t||null==this.typeId)&&(this.cleanupListeners(),this.clone=null,this._jsPlumb=null)},isHover:function(){return this._jsPlumb.hover},setHover:function(t,e,n){if(this._jsPlumb&&!this._jsPlumb.instance.currentlyDragging&&!this._jsPlumb.instance.isHoverSuspended()){if(this._jsPlumb.hover=t,null!=this.canvas){if(null!=this._jsPlumb.instance.hoverClass){var s=t?"addClass":"removeClass";this._jsPlumb.instance[s](this.canvas,this._jsPlumb.instance.hoverClass)}null!=this._jsPlumb.hoverClass&&this._jsPlumb.instance[s](this.canvas,this._jsPlumb.hoverClass)}null!=this._jsPlumb.hoverPaintStyle&&(this._jsPlumb.paintStyleInUse=t?this._jsPlumb.hoverPaintStyle:this._jsPlumb.paintStyle,this._jsPlumb.instance.isSuspendDrawing()||(n=n||i(),this.repaint({timestamp:n,recalc:!1}))),this.getAttachedElements&&!e&&function(t,e,n,i){var s=t.getAttachedElements();if(s)for(var o=0,r=s.length;o<r;o++)i&&i==s[o]||s[o].setHover(e,!0,n)}(this,t,i(),this)}}});var h=0,d=window.jsPlumbInstance=function(s){this.Defaults={Anchor:"Bottom",Anchors:[null,null],ConnectionsDetachable:!0,ConnectionOverlays:[],Connector:"Bezier",Container:null,DoNotThrowErrors:!1,DragOptions:{},DropOptions:{},Endpoint:"Dot",EndpointOverlays:[],Endpoints:[null,null],EndpointStyle:{fillStyle:"#456"},EndpointStyles:[null,null],EndpointHoverStyle:null,EndpointHoverStyles:[null,null],HoverPaintStyle:null,LabelStyle:{color:"black"},LogEnabled:!1,Overlays:[],MaxConnections:1,PaintStyle:{lineWidth:4,strokeStyle:"#456"},ReattachConnections:!1,RenderMode:"svg",Scope:"jsPlumb_DefaultScope"},s&&p.extend(this.Defaults,s),this.logEnabled=this.Defaults.LogEnabled,this._connectionTypes={},this._endpointTypes={},jsPlumbUtil.EventGenerator.apply(this);var r=this,a=function(){var t=h+1;return h++,t}(),l=r.bind,c={},d=1,f=function(t){if(null==t)return null;if(3==t.nodeType||8==t.nodeType)return{el:t,text:!0};var e=r.getElement(t);return{el:e,id:jsPlumbUtil.isString(t)&&null==e?t:V(e)}};for(var m in this.getInstanceIndex=function(){return a},this.setZoom=function(t,e){return jsPlumbUtil.oldIE||(d=t,r.fire("zoom",d),e&&r.repaintEverything()),!jsPlumbUtil.oldIE},this.getZoom=function(){return d},this.Defaults)c[m]=this.Defaults[m];var g,v=[];this.unbindContainer=function(){if(null!=g&&v.length>0)for(var t=0;t<v.length;t++)r.off(g,v[t][0],v[t][1])},this.setContainer=function(t){this.unbindContainer(),t=this.getElement(t),this.select().each((function(e){e.moveParent(t)})),this.selectEndpoints().each((function(e){e.moveParent(t)}));var e=g;g=t,v.length=0;for(var n=function(t,e){var n=e.srcElement||e.target,i=(n&&n.parentNode?n.parentNode._jsPlumb:null)||(n?n._jsPlumb:null)||(n&&n.parentNode&&n.parentNode.parentNode?n.parentNode.parentNode._jsPlumb:null);i&&(i.fire(t,i,e),r.fire(t,i.component||i,e))},i=function(t,e,n){v.push([t,n]),r.on(g,t,e,n)},s=function(t){i(t,"._jsPlumb_connector > *",(function(e){n(t,e)})),i(t,"._jsPlumb_endpoint, ._jsPlumb_endpoint > *, ._jsPlumb_endpoint svg *",(function(e){n(t,e)})),i(t,"._jsPlumb_overlay, ._jsPlumb_overlay *",(function(e){n(t,e)}))},a=0;a<o.length;a++)s(o[a]);for(var l in C){var u=C[l].el;u.parentNode===e&&(e.removeChild(u),g.appendChild(u))}},this.getContainer=function(){return g},this.bind=function(t,e){"ready"===t&&y?e():l.apply(r,[t,e])},r.importDefaults=function(t){for(var e in t)r.Defaults[e]=t[e];return t.Container&&r.setContainer(t.Container),r},r.restoreDefaults=function(){return r.Defaults=p.extend({},c),r};var b=null,y=!1,P=[],_={},x={},C={},j={},E={},S={},D=!1,w=[],A=!1,I=null,O=this.Defaults.Scope,T=null,M=1,k=function(){return""+M++},L=function(t,e){g?g.appendChild(t):e?this.getElement(e).appendChild(t):this.appendToRoot(t)}.bind(this),F=function(t,e,n,s){if(!p.headless&&!A){var o=V(t),a=r.getDragManager().getElementsForDraggable(o);null==n&&(n=i());var l=lt({elId:o,offset:e,recalc:!1,timestamp:n});if(a)for(var u in a)lt({elId:a[u].id,offset:{left:l.o.left+a[u].offset.left,top:l.o.top+a[u].offset.top},recalc:!1,timestamp:n});if(r.anchorManager.redraw(o,e,n,null,s),a)for(var c in a)r.anchorManager.redraw(a[c].id,e,n,a[c].offset,s,!0)}},U=function(t){return x[t]},N=function(t,e,i,s){if(!p.headless&&(null!=e&&e&&p.isDragSupported(t,r))){var o=i||r.Defaults.DragOptions;if(o=p.extend({},o),p.isAlreadyDraggable(t,r))i.force&&r.initDraggable(t,o);else{var a=p.dragEvents.drag,l=p.dragEvents.stop,u=p.dragEvents.start,c=r.getElement(t),h=r.getDragManager().getDragAncestor(c),d={left:0,top:0},f=d,m=!1;at(s,t),o[u]=n.wrap(o[u],(function(){if(f=null!=h?r.getOffset(h):d,r.setHoverSuspended(!0),r.select({source:t}).addClass(r.elementDraggingClass+" "+r.sourceElementDraggingClass,!0),r.select({target:t}).addClass(r.elementDraggingClass+" "+r.targetElementDraggingClass,!0),r.setConnectionBeingDragged(!0),o.canDrag)return i.canDrag()}),!1),o[a]=n.wrap(o[a],(function(){var e=r.getUIPosition(arguments,r.getZoom());e.left+=f.left,e.top+=f.top,F(t,e,null,!0),m&&r.addClass(t,"jsPlumb_dragged"),m=!0})),o[l]=n.wrap(o[l],(function(){var e=[];e=1==arguments.length&&arguments[0].selection&&arguments[0].selection.length>0?arguments[0].selection:[[t,r.getUIPosition(arguments,r.getZoom(),!0)]];for(var n,i=0;i<e.length;i++)n=e[i],F(n[0],n[1]),r.removeClass(n[0],"jsPlumb_dragged"),r.select({source:n[0]}).removeClass(r.elementDraggingClass+" "+r.sourceElementDraggingClass,!0),r.select({target:n[0]}).removeClass(r.elementDraggingClass+" "+r.targetElementDraggingClass,!0),r.getDragManager().dragEnded(n[0]);m=!1,r.setHoverSuspended(!1),r.setConnectionBeingDragged(!1)}));var g=V(t);S[g]=!0;var v=S[g];o.disabled=null!=v&&!v,r.initDraggable(t,o),r.getDragManager().register(t)}}},R=function(t,e){var i=p.extend({},t);if(e&&p.extend(i,e),i.source&&(i.source.endpoint?i.sourceEndpoint=i.source:i.source=r.getElement(i.source)),i.target&&(i.target.endpoint?i.targetEndpoint=i.target:i.target=r.getElement(i.target)),t.uuids&&(i.sourceEndpoint=U(t.uuids[0]),i.targetEndpoint=U(t.uuids[1])),i.sourceEndpoint&&i.sourceEndpoint.isFull())n.log(r,"could not add connection; source endpoint is full");else if(i.targetEndpoint&&i.targetEndpoint.isFull())n.log(r,"could not add connection; target endpoint is full");else{if(!i.type&&i.sourceEndpoint&&(i.type=i.sourceEndpoint.connectionType),i.sourceEndpoint&&i.sourceEndpoint.connectorOverlays){i.overlays=i.overlays||[];for(var s=0,o=i.sourceEndpoint.connectorOverlays.length;s<o;s++)i.overlays.push(i.sourceEndpoint.connectorOverlays[s])}!i["pointer-events"]&&i.sourceEndpoint&&i.sourceEndpoint.connectorPointerEvents&&(i["pointer-events"]=i.sourceEndpoint.connectorPointerEvents);var a=function(t,e,n){return r.addEndpoint(t,function(t,e){var n=p.extend({},t);for(var i in e)e[i]&&(n[i]=e[i]);return n}(e,{anchor:i.anchors?i.anchors[n]:i.anchor,endpoint:i.endpoints?i.endpoints[n]:i.endpoint,paintStyle:i.endpointStyles?i.endpointStyles[n]:i.endpointStyle,hoverPaintStyle:i.endpointHoverStyles?i.endpointHoverStyles[n]:i.endpointHoverStyle}))},l=function(t,e,n){if(i[t]&&!i[t].endpoint&&!i[t+"Endpoint"]&&!i.newConnection){var s=n[V(i[t])];if(s){if(!s.enabled)return!1;var o=null!=s.endpoint&&s.endpoint._jsPlumb?s.endpoint:a(i[t],s.def,e);if(o.isFull())return!1;i[t+"Endpoint"]=o,o._doNotDeleteOnDetach=!1,o._deleteOnDetach=!0,s.uniqueEndpoint&&(s.endpoint?o.finalEndpoint=s.endpoint:(s.endpoint=o,o._deleteOnDetach=!1,o._doNotDeleteOnDetach=!0))}}};if(!1!==l("source",0,this.sourceEndpointDefinitions)&&!1!==l("target",1,this.targetEndpointDefinitions))return i.sourceEndpoint&&i.targetEndpoint&&(function(t,e){for(var n=t.scope.split(/\s/),i=e.scope.split(/\s/),s=0;s<n.length;s++)for(var o=0;o<i.length;o++)if(i[o]==n[s])return!0;return!1}(i.sourceEndpoint,i.targetEndpoint)||(i=null)),i}}.bind(r),B=function(t){var e=r.Defaults.ConnectionType||r.getDefaultConnectionType();t._jsPlumb=r,t.newConnection=B,t.newEndpoint=X,t.endpointsByUUID=x,t.endpointsByElement=_,t.finaliseConnection=H,t.id="con_"+k();var n=new e(t);return n.isDetachable()&&(n.endpoints[0].initDraggable("_jsPlumbSource"),n.endpoints[1].initDraggable("_jsPlumbTarget")),n},H=r.finaliseConnection=function(t,e,n,i){if(e=e||{},t.suspendedEndpoint||P.push(t),t.endpoints[0].isTemporarySource=!1,(null==t.suspendedEndpoint||i)&&r.anchorManager.newConnection(t),F(t.source),!e.doNotFireConnectionEvent&&!1!==e.fireEvent){var s={connection:t,source:t.source,target:t.target,sourceId:t.sourceId,targetId:t.targetId,sourceEndpoint:t.endpoints[0],targetEndpoint:t.endpoints[1]};r.fire("connection",s,n)}},X=function(t,e){var n=r.Defaults.EndpointType||p.Endpoint,i=p.extend({},t);i._jsPlumb=r,i.newConnection=B,i.newEndpoint=X,i.endpointsByUUID=x,i.endpointsByElement=_,i.fireDetachEvent=q,i.elementId=e||V(i.source);var s=new n(i);return s.id="ep_"+k(),at(i.elementId,i.source),p.headless||r.getDragManager().endpointAdded(i.source,e),s},Y=function(t,e,n){var i=_[t];if(i&&i.length)for(var s=0,o=i.length;s<o;s++){for(var r=0,a=i[s].connections.length;r<a;r++){if(e(i[s].connections[r]))return}n&&n(i[s])}},W=function(t,e,n){e="block"===e;var i=null;n&&(i=e?function(t){t.setVisible(!0,!0,!0)}:function(t){t.setVisible(!1,!0,!0)});var s=f(t);Y(s.id,(function(t){if(e&&n){var i=t.sourceId===s.id?1:0;t.endpoints[i].isVisible()&&t.setVisible(!0)}else t.setVisible(e)}),i)},V=function(t,e,n){if(jsPlumbUtil.isString(t))return t;if(null==t)return null;var i=r.getAttribute(t,"id");return i&&"undefined"!==i||(2==arguments.length&&void 0!==arguments[1]?i=e:(1==arguments.length||3==arguments.length&&!arguments[2])&&(i="jsPlumb_"+a+"_"+k()),n||r.setAttribute(t,"id",i)),i};this.setConnectionBeingDragged=function(t){D=t},this.isConnectionBeingDragged=function(){return D},this.getManagedElements=function(){return C},this.connectorClass="_jsPlumb_connector",this.connectorOutlineClass="_jsPlumb_connector_outline",this.connectedClass="_jsPlumb_connected",this.hoverClass="_jsPlumb_hover",this.endpointClass="_jsPlumb_endpoint",this.endpointConnectedClass="_jsPlumb_endpoint_connected",this.endpointFullClass="_jsPlumb_endpoint_full",this.endpointDropAllowedClass="_jsPlumb_endpoint_drop_allowed",this.endpointDropForbiddenClass="_jsPlumb_endpoint_drop_forbidden",this.overlayClass="_jsPlumb_overlay",this.draggingClass="_jsPlumb_dragging",this.elementDraggingClass="_jsPlumb_element_dragging",this.sourceElementDraggingClass="_jsPlumb_source_element_dragging",this.targetElementDraggingClass="_jsPlumb_target_element_dragging",this.endpointAnchorClassPrefix="_jsPlumb_endpoint_anchor",this.hoverSourceClass="_jsPlumb_source_hover",this.hoverTargetClass="_jsPlumb_target_hover",this.dragSelectClass="_jsPlumb_drag_select",this.Anchors={},this.Connectors={svg:{},vml:{}},this.Endpoints={svg:{},vml:{}},this.Overlays={svg:{},vml:{}},this.ConnectorRenderers={},this.SVG="svg",this.VML="vml",this.addEndpoint=function(t,e,i){i=i||{};var s=p.extend({},i);p.extend(s,e),s.endpoint=s.endpoint||r.Defaults.Endpoint,s.paintStyle=s.paintStyle||r.Defaults.EndpointStyle;for(var o=[],a=n.isArray(t)||null!=t.length&&!n.isString(t)?t:[t],l=0,u=a.length;l<u;l++){s.source=r.getElement(a[l]),rt(s.source);var c=V(s.source),h=X(s,c),d=at(c,s.source).info.o;n.addToList(_,c,h),A||h.paint({anchorLoc:h.anchor.compute({xy:[d.left,d.top],wh:w[c],element:h,timestamp:I}),timestamp:I}),o.push(h),h._doNotDeleteOnDetach=!0}return 1==o.length?o[0]:o},this.addEndpoints=function(t,e,i){for(var s=[],o=0,a=e.length;o<a;o++){var l=r.addEndpoint(t,e[o],i);n.isArray(l)?Array.prototype.push.apply(s,l):s.push(l)}return s},this.animate=function(t,e,i){if(!this.animationSupported)return!1;i=i||{};var s=r.getElement(t),o=V(s),a=p.animEvents.step,l=p.animEvents.complete;i[a]=n.wrap(i[a],(function(){r.revalidate(o)})),i[l]=n.wrap(i[l],(function(){r.revalidate(o)})),r.doAnimate(s,e,i)},this.checkCondition=function(t,e){var i=r.getListener(t),s=!0;if(i&&i.length>0){var o=Array.prototype.slice.call(arguments,1);try{for(var a=0,l=i.length;a<l;a++)s=s&&i[a].apply(i[a],o)}catch(e){n.log(r,"cannot check condition ["+t+"]"+e)}}return s},this.connect=function(t,e){var n,i=R(t,e);if(i){if(null==i.source&&null==i.sourceEndpoint)return void jsPlumbUtil.log("Cannot establish connection - source does not exist");if(null==i.target&&null==i.targetEndpoint)return void jsPlumbUtil.log("Cannot establish connection - target does not exist");rt(i.source),n=B(i),H(n,i)}return n};var z=[{el:"source",elId:"sourceId",epDefs:"sourceEndpointDefinitions"},{el:"target",elId:"targetId",epDefs:"targetEndpointDefinitions"}],G=function(t,e,n,i){var s,o,r,a=z[n],l=t[a.elId],u=(t[a.el],t.endpoints[n]),c={index:n,originalSourceId:0===n?l:t.sourceId,newSourceId:t.sourceId,originalTargetId:1==n?l:t.targetId,newTargetId:t.targetId,connection:t};if(e.constructor==p.Endpoint)(s=e).addConnection(t);else if(o=V(e),r=this[a.epDefs][o],o===t[a.elId])s=null;else if(r){if(!r.enabled)return;s=null!=r.endpoint&&r.endpoint._jsPlumb?r.endpoint:this.addEndpoint(e,r.def),r.uniqueEndpoint&&(r.endpoint=s),s._doNotDeleteOnDetach=!1,s._deleteOnDetach=!0,s.addConnection(t)}else(s=t.makeEndpoint(0===n,e,o))._doNotDeleteOnDetach=!1,s._deleteOnDetach=!0;return null!=s&&(u.detachFromConnection(t),t.endpoints[n]=s,t[a.el]=s.element,t[a.elId]=s.elementId,c[0===n?"newSourceId":"newTargetId"]=s.elementId,Z(c),i||t.repaint()),c}.bind(this);this.setSource=function(t,e,n){var i=G(t,e,0,n);this.anchorManager.sourceChanged(i.originalSourceId,i.newSourceId,t)},this.setTarget=function(t,e,n){var i=G(t,e,1,n);this.anchorManager.updateOtherEndpoint(i.originalSourceId,i.originalTargetId,i.newTargetId,t)},this.deleteEndpoint=function(t,e){var n="string"==typeof t?x[t]:t;return n&&r.deleteObject({endpoint:n,dontUpdateHover:e}),r},this.deleteEveryEndpoint=function(){var t=r.setSuspendDrawing(!0);for(var e in _){var n=_[e];if(n&&n.length)for(var i=0,s=n.length;i<s;i++)r.deleteEndpoint(n[i],!0)}return _={},C={},x={},j={},E={},r.anchorManager.reset(),r.getDragManager().reset(),t||r.setSuspendDrawing(!1),r};var q=function(t,e,n){var i=r.Defaults.ConnectionType||r.getDefaultConnectionType(),s=t.constructor==i?{connection:t,source:t.source,target:t.target,sourceId:t.sourceId,targetId:t.targetId,sourceEndpoint:t.endpoints[0],targetEndpoint:t.endpoints[1]}:t;e&&r.fire("connectionDetached",s,n),r.anchorManager.connectionDetached(s)},Z=r.fireMoveEvent=function(t,e){r.fire("connectionMoved",t,e)};this.unregisterEndpoint=function(t){for(var e in t._jsPlumb.uuid&&(x[t._jsPlumb.uuid]=null),r.anchorManager.deleteEndpoint(t),_){var n=_[e];if(n){for(var i=[],s=0,o=n.length;s<o;s++)n[s]!=t&&i.push(n[s]);_[e]=i}_[e].length<1&&delete _[e]}},this.detach=function(){if(0!==arguments.length){var t=r.Defaults.ConnectionType||r.getDefaultConnectionType(),e=arguments[0].constructor==t,n=2==arguments.length&&e?arguments[1]||{}:arguments[0],i=!1!==n.fireEvent,s=n.forceDetach,o=e?arguments[0]:n.connection;if(o)(s||jsPlumbUtil.functionChain(!0,!1,[[o.endpoints[0],"isDetachAllowed",[o]],[o.endpoints[1],"isDetachAllowed",[o]],[o,"isDetachAllowed",[o]],[r,"checkCondition",["beforeDetach",o]]]))&&o.endpoints[0].detach(o,!1,!0,i);else{var a=p.extend({},n);if(a.uuids)U(a.uuids[0]).detachFrom(U(a.uuids[1]),i);else if(a.sourceEndpoint&&a.targetEndpoint)a.sourceEndpoint.detachFrom(a.targetEndpoint);else{var l=V(r.getElement(a.source)),u=V(r.getElement(a.target));Y(l,(function(t){(t.sourceId==l&&t.targetId==u||t.targetId==l&&t.sourceId==u)&&r.checkCondition("beforeDetach",t)&&t.endpoints[0].detach(t,!1,!0,i)}))}}}},this.detachAllConnections=function(t,e){e=e||{},t=r.getElement(t);var n=V(t),i=_[n];if(i&&i.length)for(var s=0,o=i.length;s<o;s++)i[s].detachAll(!1!==e.fireEvent,e.forceDetach);return r},this.detachEveryConnection=function(t){return t=t||{},r.batch((function(){for(var e in _){var n=_[e];if(n&&n.length)for(var i=0,s=n.length;i<s;i++)n[i].detachAll(!1!==t.fireEvent,t.forceDetach)}P.length=0})),r},this.deleteObject=function(t){var e={endpoints:{},connections:{},endpointCount:0,connectionCount:0},n=!1!==t.fireEvent,i=!1!==t.deleteAttachedObjects,s=function(n){if(null!=n&&null==e.connections[n.id]&&(t.dontUpdateHover||null==n._jsPlumb||n.setHover(!1),e.connections[n.id]=n,e.connectionCount++,i))for(var s=0;s<n.endpoints.length;s++)n.endpoints[s]._deleteOnDetach&&o(n.endpoints[s])},o=function(n){if(null!=n&&null==e.endpoints[n.id]&&(t.dontUpdateHover||null==n._jsPlumb||n.setHover(!1),e.endpoints[n.id]=n,e.endpointCount++,i))for(var o=0;o<n.connections.length;o++){var r=n.connections[o];s(r)}};for(var a in t.connection?s(t.connection):o(t.endpoint),e.connections){var l=e.connections[a];l._jsPlumb&&(jsPlumbUtil.removeWithFunction(P,(function(t){return l.id==t.id})),q(l,n,t.originalEvent),l.endpoints[0].detachFromConnection(l),l.endpoints[1].detachFromConnection(l),l.cleanup(!0),l.destroy(!0))}for(var u in e.endpoints){var c=e.endpoints[u];c._jsPlumb&&(r.unregisterEndpoint(c),c.cleanup(!0),c.destroy(!0))}return e},this.draggable=function(t,e){var n,i,s;if("object"==typeof t&&t.length)for(n=0,i=t.length;n<i;n++)(s=f(t[n])).el&&N(s.el,!0,e,s.id);else(s=f(t)).el&&N(s.el,!0,e,s.id);return r};var J=function(t,e,n){return function(){return function(t,e,n,i){for(var s=0,o=t.length;s<o;s++)t[s][e].apply(t[s],n);return i(t)}(t,e,arguments,n)}},K=function(t,e){return function(){return function(t,e,n){for(var i=[],s=0,o=t.length;s<o;s++)i.push([t[s][e].apply(t[s],n),t[s]]);return i}(t,e,arguments)}},$=function(t,e){var n=[];if(t)if("string"==typeof t){if("*"===t)return t;n.push(t)}else if(e)n=t;else if(t.length)for(var i=0,s=t.length;i<s;i++)n.push(f(t[i]).id);else n.push(f(t).id);return n},Q=function(t,e,n){return"*"===t||(t.length>0?-1!=jsPlumbUtil.indexOf(t,e):!n)};this.getConnections=function(t,e){t?t.constructor==String&&(t={scope:t}):t={};for(var n=t.scope||r.getDefaultScope(),i=$(n,!0),s=$(t.source),o=$(t.target),a=!e&&i.length>1?{}:[],l=function(t,n){if(!e&&i.length>1){var s=a[t];null==s&&(s=a[t]=[]),s.push(n)}else a.push(n)},u=0,c=P.length;u<c;u++){var h=P[u];Q(i,h.scope)&&Q(s,h.sourceId)&&Q(o,h.targetId)&&l(h.scope,h)}return a};var tt=function(t,e){return function(n){for(var i=0,s=t.length;i<s;i++)n(t[i]);return e(t)}},et=function(t){return function(e){return t[e]}},nt=function(t,e){var n,i,s={length:t.length,each:tt(t,e),get:et(t)},o=["setHover","removeAllOverlays","setLabel","addClass","addOverlay","removeOverlay","removeOverlays","showOverlay","hideOverlay","showOverlays","hideOverlays","setPaintStyle","setHoverPaintStyle","setSuspendEvents","setParameter","setParameters","setVisible","repaint","addType","toggleType","removeType","removeClass","setType","bind","unbind"],r=["getLabel","getOverlay","isHover","getParameter","getParameters","getPaintStyle","getHoverPaintStyle","isVisible","hasType","getType","isSuspendEvents"];for(n=0,i=o.length;n<i;n++)s[o[n]]=J(t,o[n],e);for(n=0,i=r.length;n<i;n++)s[r[n]]=K(t,r[n]);return s},it=function(t){var e=nt(t,it);return p.extend(e,{setDetachable:J(t,"setDetachable",it),setReattach:J(t,"setReattach",it),setConnector:J(t,"setConnector",it),detach:function(){for(var e=0,n=t.length;e<n;e++)r.detach(t[e])},isDetachable:K(t,"isDetachable"),isReattach:K(t,"isReattach")})},st=function(t){var e=nt(t,st);return p.extend(e,{setEnabled:J(t,"setEnabled",st),setAnchor:J(t,"setAnchor",st),isEnabled:K(t,"isEnabled"),detachAll:function(){for(var e=0,n=t.length;e<n;e++)t[e].detachAll()},remove:function(){for(var e=0,n=t.length;e<n;e++)r.deleteObject({endpoint:t[e]})}})};this.select=function(t){return(t=t||{}).scope=t.scope||"*",it(t.connections||r.getConnections(t,!0))},this.selectEndpoints=function(t){(t=t||{}).scope=t.scope||"*";var e=!t.element&&!t.source&&!t.target,n=e?"*":$(t.element),i=e?"*":$(t.source),s=e?"*":$(t.target),o=$(t.scope,!0),r=[];for(var a in _){var l=Q(n,a,!0),u=Q(i,a,!0),c="*"!=i,h=Q(s,a,!0),d="*"!=s;if(l||u||h)t:for(var p=0,f=_[a].length;p<f;p++){var m=_[a][p];if(Q(o,m.scope,!0)){var g=c&&i.length>0&&!m.isSource,v=d&&s.length>0&&!m.isTarget;if(g||v)continue t;r.push(m)}}}return st(r)},this.getAllConnections=function(){return P},this.getDefaultScope=function(){return O},this.getEndpoint=U,this.getEndpoints=function(t){return _[f(t).id]},this.getDefaultEndpointType=function(){return p.Endpoint},this.getDefaultConnectionType=function(){return p.Connection},this.getId=V,this.appendElement=L;var ot=!1;this.isHoverSuspended=function(){return ot},this.setHoverSuspended=function(t){ot=t},this.hide=function(t,e){return W(t,"none",e),r},this.idstamp=k,this.connectorsInitialized=!1,this.registerConnectorType=function(t,n){e.push([t,n])};var rt=function(t){if(!g&&t){var e=r.getElement(t);e.offsetParent&&r.setContainer(e.offsetParent)}},at=r.manage=function(t,e,n){return C[t]||(C[t]={el:e,endpoints:[],connections:[]},C[t].info=lt({elId:t,timestamp:I}),n||r.fire("manageElement",{id:t,info:C[t].info,el:e})),C[t]},lt=this.updateOffset=function(t){var e,n=t.timestamp,i=t.recalc,s=t.offset,o=t.elId;return A&&!n&&(n=I),!i&&n&&n===E[o]?{o:t.offset||j[o],s:w[o]}:(i||!s&&null==j[o]?null!=(e=C[o]?C[o].el:null)&&(w[o]=r.getSize(e),j[o]=r.getOffset(e),E[o]=n):(j[o]=s||j[o],null==w[o]&&null!=(e=C[o].el)&&(w[o]=r.getSize(e)),E[o]=n),j[o]&&!j[o].right&&(j[o].right=j[o].left+w[o][0],j[o].bottom=j[o].top+w[o][1],j[o].width=w[o][0],j[o].height=w[o][1],j[o].centerx=j[o].left+j[o].width/2,j[o].centery=j[o].top+j[o].height/2),{o:j[o],s:w[o]})};this.init=function(){t=p.getRenderModes();var n=function(t,e,n){p.Connectors[t][e]=function(){n.apply(this,arguments),p.ConnectorRenderers[t].apply(this,arguments)},jsPlumbUtil.extend(p.Connectors[t][e],[n,p.ConnectorRenderers[t]])};if(!p.connectorsInitialized){for(var i=0;i<e.length;i++)for(var s=0;s<t.length;s++)n(t[s],e[i][1],e[i][0]);p.connectorsInitialized=!0}y||(r.Defaults.Container&&r.setContainer(r.Defaults.Container),r.anchorManager=new p.AnchorManager({jsPlumbInstance:r}),r.setRenderMode(r.Defaults.RenderMode),y=!0,r.fire("ready",r))}.bind(this),this.log=b,this.jsPlumbUIComponent=u,this.makeAnchor=function(){var t,e=function(t,e){if(p.Anchors[t])return new p.Anchors[t](e);if(!r.Defaults.DoNotThrowErrors)throw{msg:"jsPlumb: unknown anchor type '"+t+"'"}};if(0===arguments.length)return null;var i=arguments[0],s=arguments[1],o=null;if(i.compute&&i.getOrientation)return i;if("string"==typeof i)o=e(arguments[0],{elementId:s,jsPlumbInstance:r});else if(n.isArray(i))if(n.isArray(i[0])||n.isString(i[0]))2==i.length&&n.isObject(i[1])?n.isString(i[0])?(t=p.extend({elementId:s,jsPlumbInstance:r},i[1]),o=e(i[0],t)):(t=p.extend({elementId:s,jsPlumbInstance:r,anchors:i[0]},i[1]),o=new p.DynamicAnchor(t)):o=new p.DynamicAnchor({anchors:i,selector:null,elementId:s,jsPlumbInstance:r});else{var a={x:i[0],y:i[1],orientation:i.length>=4?[i[2],i[3]]:[0,0],offsets:i.length>=6?[i[4],i[5]]:[0,0],elementId:s,jsPlumbInstance:r,cssClass:7==i.length?i[6]:null};(o=new p.Anchor(a)).clone=function(){return new p.Anchor(a)}}return o.id||(o.id="anchor_"+k()),o},this.makeAnchors=function(t,e,i){for(var s=[],o=0,a=t.length;o<a;o++)"string"==typeof t[o]?s.push(p.Anchors[t[o]]({elementId:e,jsPlumbInstance:i})):n.isArray(t[o])&&s.push(r.makeAnchor(t[o],e,i));return s},this.makeDynamicAnchor=function(t,e){return new p.DynamicAnchor({anchors:t,selector:e,elementId:null,jsPlumbInstance:r})},this.targetEndpointDefinitions={};var ut=function(t,e,n){t.paintStyle=t.paintStyle||n.Defaults.EndpointStyles[e]||n.Defaults.EndpointStyle,t.hoverPaintStyle=t.hoverPaintStyle||n.Defaults.EndpointHoverStyles[e]||n.Defaults.EndpointHoverStyle,t.anchor=t.anchor||n.Defaults.Anchors[e]||n.Defaults.Anchor,t.endpoint=t.endpoint||n.Defaults.Endpoints[e]||n.Defaults.Endpoint};this.sourceEndpointDefinitions={};var ct=function(t,e,i,s,o){var a=new u(e),l=e._jsPlumb.EndpointDropHandler({jsPlumb:r,enabled:function(){return t.def.enabled},isFull:function(){var e=r.select({target:t.id}).length;return t.def.maxConnections>0&&e>=t.def.maxConnections},element:t.el,elementId:t.id,isSource:s,isTarget:o,addClass:function(e){r.addClass(t.el,e)},removeClass:function(e){r.removeClass(t.el,e)},onDrop:function(t){t.endpoints[0].anchor.locked=!1},isDropAllowed:function(){return a.isDropAllowed.apply(a,arguments)},isRedrop:function(e){return null!=e.suspendedElement&&null!=e.suspendedEndpoint&&e.suspendedEndpoint.element===t.el},getEndpoint:function(n){var i=t.def.endpoint;if(null!=i&&null!=i._jsPlumb||((i=r.addEndpoint(t.el,e))._mtNew=!0),e.uniqueEndpoint&&(t.def.endpoint=i),i._doNotDeleteOnDetach=!1,i._deleteOnDetach=!0,n.isDetachable()&&i.initDraggable(),null!=i.anchor.positionFinder){var s=r.getUIPosition(arguments,r.getZoom()),o=r.getOffset(t.el),a=r.getSize(t.el),l=i.anchor.positionFinder(s,o,a,i.anchor.constructorParams);i.anchor.x=l[0],i.anchor.y=l[1]}return i},maybeCleanup:function(t){t._mtNew&&0===t.connections.length?r.deleteObject({endpoint:t}):delete t._mtNew}}),c=p.dragEvents.drop;return i.scope=i.scope||e.scope||r.Defaults.Scope,i[c]=n.wrap(i[c],l,!0),o&&(i[p.dragEvents.over]=function(){return!0}),!1===e.allowLoopback&&(i.canDrop=function(e){return e.getDragElement()._jsPlumbRelatedElement!=t.el}),r.initDroppable(t.el,i,"internal"),l};this.makeTarget=function(t,e,n){var i=p.extend({_jsPlumb:this},n);p.extend(i,e),ut(i,1,this);i.deleteEndpointsOnDetach;for(var s=i.maxConnections||-1,o=function(t){var e=f(t),n=e.id,o=p.extend({},i.dropOptions||{});rt(n);var r={def:i,uniqueEndpoint:i.uniqueEndpoint,maxConnections:s,enabled:!0};e.def=r,this.targetEndpointDefinitions[n]=r,ct(e,i,o,!0===i.isSource,!0)}.bind(this),r=t.length&&t.constructor!=String?t:[t],a=0,l=r.length;a<l;a++)o(r[a]);return this},this.unmakeTarget=function(t,e){var n=f(t);return p.destroyDroppable(n.el),e||delete this.targetEndpointDefinitions[n.id],this},this.makeSource=function(t,e,i){var s=p.extend({_jsPlumb:this},i);p.extend(s,e),ut(s,0,this);for(var o=s.maxConnections||1,a=s.onMaxConnections,l=function(t){var e=t.id,i=this.getElement(t.el);rt(e);var l={def:s,uniqueEndpoint:s.uniqueEndpoint,maxConnections:o,enabled:!0};this.sourceEndpointDefinitions[e]=l,t.def=l;var u=p.dragEvents.stop,c=p.dragEvents.drag,h=p.extend({},s.dragOptions||{}),f=h.drag,m=h.stop,g=null,v=!1;h.scope=h.scope||s.scope,h[c]=n.wrap(h[c],(function(){f&&f.apply(this,arguments),v=!1})),h[u]=n.wrap(h[u],function(){if(m&&m.apply(this,arguments),this.currentlyDragging=!1,null!=g._jsPlumb){var t=s.anchor||this.Defaults.Anchor,n=g.anchor,i=g.connections[0],o=this.makeAnchor(t,e,this),a=g.element;if(null!=o.positionFinder){var l=r.getOffset(a),u=this.getSize(a),c={left:l.left+n.x*u[0],top:l.top+n.y*u[1]},h=o.positionFinder(c,l,u,o.constructorParams);o.x=h[0],o.y=h[1]}g.setAnchor(o,!0),g.repaint(),this.repaint(g.elementId),null!=i&&this.repaint(i.targetId)}}.bind(this));var b=function(n){var l=this.getOriginalEvent(n);if(3!==n.which&&2!==n.button){var u=this.sourceEndpointDefinitions[e];if(u.enabled){if(e=this.getId(this.getElement(t.el)),s.filter)if(!1===(jsPlumbUtil.isString(s.filter)?function(t,e,n,i,s){for(var o=t.target||t.srcElement,r=!1,a=i.getSelector(e,n),l=0;l<a.length;l++)if(a[l]==o){r=!0;break}return s?!r:r}(l,t.el,s.filter,this,s.filterExclude):s.filter(l,t.el)))return;var c=this.select({source:e}).length;if(u.maxConnections>=0&&u.uniqueEndpoint&&c>=u.maxConnections)return a&&a({element:t.el,maxConnections:o},n),!1;var f=p.getPositionOnElement(l,i,d),m={};p.extend(m,s),m.isTemporarySource=!0,m.anchor=[f[0],f[1],0,0],m.dragOptions=h,g=this.addEndpoint(e,m),v=!0,g._doNotDeleteOnDetach=!1,g._deleteOnDetach=!0,u.uniqueEndpoint&&(u.endpoint?g.finalEndpoint=u.endpoint:(u.endpoint=g,g._deleteOnDetach=!1,g._doNotDeleteOnDetach=!0));var b=function(){r.off(g.canvas,"mouseup",b),r.off(t.el,"mouseup",b),v&&(v=!1,r.deleteEndpoint(g))};r.on(g.canvas,"mouseup",b),r.on(t.el,"mouseup",b),r.trigger(g.canvas,"mousedown",n),jsPlumbUtil.consume(n)}}}.bind(this);this.on(t.el,"mousedown",b),l.trigger=b,s.filter&&(jsPlumbUtil.isString(s.filter)||jsPlumbUtil.isFunction(s.filter))&&r.setDragFilter(t.el,s.filter);var y=p.extend({},s.dropOptions||{});ct(t,s,y,!0,!0===s.isTarget)}.bind(this),u=t.length&&t.constructor!=String?t:[t],c=0,h=u.length;c<h;c++)l(f(u[c]));return this},this.unmakeSource=function(t,e){var n=f(t),i=this.sourceEndpointDefinitions[n.id].trigger;return i&&r.off(n.el,"mousedown",i),e||delete this.sourceEndpointDefinitions[n.id],this},this.unmakeEverySource=function(){for(var t in this.sourceEndpointDefinitions)r.unmakeSource(t,!0);return this.sourceEndpointDefinitions={},this};var ht=function(t,e){e=jsPlumbUtil.isArray(e)?e:[e];for(var n=V(t),i=0;i<e.length;i++){var s=this[e[i]][n];if(s)return s.def.scope||this.Defaults.Scope}}.bind(this),dt=function(t,e,n){n=jsPlumbUtil.isArray(n)?n:[n];for(var i=V(t),s=0;s<n.length;s++){var o=this[n[s]][i];o&&(o.def.scope=e,null!=this.scopeChange&&this.scopeChange(t,i,_[i],e,n[s]))}}.bind(this);this.getScope=function(t,e){return ht(t,["sourceEndpointDefinitions","targetEndpointDefinitions"])},this.getSourceScope=function(t){return ht(t,"sourceEndpointDefinitions")},this.getTargetScope=function(t){return ht(t,"targetEndpointDefinitions")},this.setScope=function(t,e){dt(t,e,["sourceEndpointDefinitions","targetEndpointDefinitions"])},this.setSourceScope=function(t,e){dt(t,e,"sourceEndpointDefinitions")},this.setTargetScope=function(t,e){dt(t,e,"targetEndpointDefinitions")},this.unmakeEveryTarget=function(){for(var t in this.targetEndpointDefinitions)r.unmakeTarget(t,!0);return this.targetEndpointDefinitions={},this};var pt=function(t,e,i,s){var o="source"==t?this.sourceEndpointDefinitions:this.targetEndpointDefinitions;if(n.isString(e))o[e].enabled=s?!o[e].enabled:i;else if(e.length)for(var r=0,a=e.length;r<a;r++){var l=f(e[r]);o[l.id]&&(o[l.id].enabled=s?!o[l.id].enabled:i)}else{var u=f(e).id;o[u].enabled=s?!o[u].enabled:i}return this}.bind(this),ft=function(t,e){return n.isString(t)||!t.length?e.apply(this,[t]):t.length?e.apply(this,[t[0]]):void 0}.bind(this);this.toggleSourceEnabled=function(t){return pt("source",t,null,!0),this.isSourceEnabled(t)},this.setSourceEnabled=function(t,e){return pt("source",t,e)},this.isSource=function(t){return ft(t,function(t){return null!=this.sourceEndpointDefinitions[f(t).id]}.bind(this))},this.isSourceEnabled=function(t){return ft(t,function(t){var e=this.sourceEndpointDefinitions[f(t).id];return e&&!0===e.enabled}.bind(this))},this.toggleTargetEnabled=function(t){return pt("target",t,null,!0),this.isTargetEnabled(t)},this.isTarget=function(t){return ft(t,function(t){return null!=this.targetEndpointDefinitions[f(t).id]}.bind(this))},this.isTargetEnabled=function(t){return ft(t,function(t){var e=this.targetEndpointDefinitions[f(t).id];return e&&!0===e.enabled}.bind(this))},this.setTargetEnabled=function(t,e){return pt("target",t,e)},this.ready=function(t){r.bind("ready",t)};var mt=function(t,e){if("object"==typeof t&&t.length)for(var n=0,i=t.length;n<i;n++)e(t[n]);else e(t);return r};this.repaint=function(t,e,n){return mt(t,(function(t){F(t,e,n)}))},this.revalidate=function(t,e,n){return mt(t,(function(t){var i=n?t:r.getId(t);r.updateOffset({elId:i,recalc:!0,timestamp:e}),r.repaint(t)}))},this.repaintEverything=function(){var t,e=i();for(t in _)r.updateOffset({elId:t,recalc:!0,timestamp:e});for(t in _)F(t,null,e);return this},this.removeAllEndpoints=function(t,e,n){n=n||[];var i=function(t){var s,o,a=f(t),l=_[a.id];if(l)for(n.push(a),s=0,o=l.length;s<o;s++)r.deleteEndpoint(l[s]);if(delete _[a.id],e&&a.el&&3!=a.el.nodeType&&8!=a.el.nodeType)for(s=0,o=a.el.childNodes.length;s<o;s++)i(a.el.childNodes[s])};return i(t),this};var gt=function(t,e){r.removeAllEndpoints(t.id,!0,e);for(var n=function(t){r.getDragManager().elementRemoved(t.id),r.anchorManager.clearFor(t.id),r.anchorManager.removeFloatingConnection(t.id),delete r.floatingConnections[t.id],delete C[t.id],delete j[t.id],t.el&&(r.removeElement(t.el),t.el._jsPlumb=null)},i=1;i<e.length;i++)n(e[i]);n(t)};this.remove=function(t,e){var n=f(t),i=[];return n.text?n.el.parentNode.removeChild(n.el):n.id&&r.batch((function(){gt(n,i)}),!1===e),r},this.empty=function(t,e){var n=[],i=function(t,e){var s=f(t);if(s.text)s.el.parentNode.removeChild(s.el);else if(s.el){for(;s.el.childNodes.length>0;)i(s.el.childNodes[0]);e||gt(s,n)}};return r.batch((function(){i(t,!0)}),!1===e),r},this.reset=function(){r.silently(function(){r.deleteEveryEndpoint(),r.unbind(),this.targetEndpointDefinitions={},this.sourceEndpointDefinitions={},P.length=0,this.doReset&&this.doReset()}.bind(this))};var vt=function(t){t.canvas&&t.canvas.parentNode&&t.canvas.parentNode.removeChild(t.canvas),t.cleanup(),t.destroy()};this.clear=function(){r.select().each(vt),r.selectEndpoints().each(vt),_={},x={}},this.setDefaultScope=function(t){return O=t,r},this.setDraggable=function(t,e){return p.each(t,(function(t){r.isDragSupported(t)&&(S[r.getAttribute(t,"id")]=e,r.setElementDraggable(t,e))}))},this.setId=function(t,e,n){var i;jsPlumbUtil.isString(t)?i=t:(t=this.getElement(t),i=this.getId(t));var s=this.getConnections({source:i,scope:"*"},!0),o=this.getConnections({target:i,scope:"*"},!0);e=""+e,n?t=this.getElement(e):(t=this.getElement(i),this.setAttribute(t,"id",e)),_[e]=_[i]||[];for(var r=0,a=_[e].length;r<a;r++)_[e][r].setElementId(e),_[e][r].setReferenceElement(t);delete _[i],this.sourceEndpointDefinitions[e]=this.sourceEndpointDefinitions[i],delete this.sourceEndpointDefinitions[i],this.targetEndpointDefinitions[e]=this.targetEndpointDefinitions[i],delete this.targetEndpointDefinitions[i],this.anchorManager.changeId(i,e),this.getDragManager().changeId(i,e),C[e]=C[i],delete C[i];var l=function(n,i,s){for(var o=0,r=n.length;o<r;o++)n[o].endpoints[i].setElementId(e),n[o].endpoints[i].setReferenceElement(t),n[o][s+"Id"]=e,n[o][s]=t};l(s,0,"source"),l(o,1,"target"),this.repaint(e)},this.setDebugLog=function(t){b=t},this.setSuspendDrawing=function(t,e){var n=A;return A=t,I=t?(new Date).getTime():null,e&&this.repaintEverything(),n},this.isSuspendDrawing=function(){return A},this.getSuspendedAt=function(){return I},this.batch=function(t,e){var i=this.isSuspendDrawing();i||this.setSuspendDrawing(!0);try{t()}catch(t){n.log("Function run while suspended failed",t)}i||this.setSuspendDrawing(!1,!e)},this.doWhileSuspended=this.batch,this.getCachedData=function(t){var e=j[t];return e?{o:e,s:w[t]}:lt({elId:t})},this.timestamp=i,this.setRenderMode=function(t){if(t!==p.SVG&&t!==p.VML)throw new TypeError("Render mode ["+t+"] not supported");return T=this.trySetRenderMode(t)},this.getRenderMode=function(){return T},this.show=function(t,e){return W(t,"block",e),r},this.toggleVisible=function(t,e){var n=null;e&&(n=function(t){var e=t.isVisible();t.setVisible(!e)}),Y(t,(function(t){var e=t.isVisible();t.setVisible(!e)}),n)},this.toggleDraggable=function(t){return p.each(t,function(t){var e=r.getAttribute(t,"id"),n=null!=S[e]&&S[e];return n=!n,S[e]=n,r.setDraggable(t,n),n}.bind(this))},this.addListener=this.bind};jsPlumbUtil.extend(d,jsPlumbUtil.EventGenerator,{setAttribute:function(t,e,n){this.setAttribute(t,e,n)},getAttribute:function(t,e){return this.getAttribute(p.getElement(t),e)},convertToFullOverlaySpec:function(t){return jsPlumbUtil.isString(t)&&(t=[t,{}]),t[1].id=t[1].id||jsPlumbUtil.uuid(),t},registerConnectionType:function(t,e){if(this._connectionTypes[t]=p.extend({},e),e.overlays){for(var n={},i=0;i<e.overlays.length;i++){var s=this.convertToFullOverlaySpec(e.overlays[i]);n[s[1].id]=s}this._connectionTypes[t].overlays=n}},registerConnectionTypes:function(t){for(var e in t)this.registerConnectionType(e,t[e])},registerEndpointType:function(t,e){this._endpointTypes[t]=p.extend({},e)},registerEndpointTypes:function(t){for(var e in t)this._endpointTypes[e]=p.extend({},t[e])},getType:function(t,e){return"connection"===e?this._connectionTypes[t]:this._endpointTypes[t]},setIdChanged:function(t,e){this.setId(t,e,!0)},setParent:function(t,e){var n=this.getElement(t),i=this.getId(n),s=this.getElement(e),o=this.getId(s);n.parentNode.removeChild(n),s.appendChild(n),this.getDragManager().setParent(n,i,s,o)},extend:function(t,e,n){var i;if(n)for(i=0;i<n.length;i++)t[n[i]]=e[n[i]];else for(i in e)t[i]=e[i];return t},floatingConnections:{},getFloatingAnchorIndex:function(t){return t.endpoints[0].isFloating()?0:1}});var p=new d;"undefined"!=typeof window&&(window.jsPlumb=p),p.getInstance=function(t){var e=new d(t);return e.init(),e},p.each=function(t,e){if(null!=t)if("string"==typeof t)e(p.getElement(t));else if(null!=t.length)for(var n=0;n<t.length;n++)e(p.getElement(t[n]));else e(t)},"function"==typeof define&&(define("jsplumb",[],(function(){return p})),define("jsplumbinstance",[],(function(){return p.getInstance()}))),"undefined"!=typeof exports&&(exports.jsPlumb=p)}.call(this),function(){this.jsPlumbUtil;var t=!!window.SVGAngle||document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),e=function(){if(void 0===e.vml){var t=document.body.appendChild(document.createElement("div"));t.innerHTML='<v:shape id="vml_flag1" adj="1" />';var n=t.firstChild;null!=n&&null!=n.style?(n.style.behavior="url(#default#VML)",e.vml=!n||"object"==typeof n.adj):e.vml=!1,t.parentNode.removeChild(t)}return e.vml},n=function(){var t=-1;if("Microsoft Internet Explorer"==navigator.appName){var e=navigator.userAgent;null!=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})").exec(e)&&(t=parseFloat(RegExp.$1))}return t}(),i=n>-1&&n<9,s=function(t,e){if(null==t)return[0,0];var n=r(t),i=o(n,0);return[i[e+"X"],i[e+"Y"]]},o=function(t,e){return t.item?t.item(e):t[e]},r=function(t){return t.touches&&t.touches.length>0?t.touches:t.changedTouches&&t.changedTouches.length>0?t.changedTouches:t.targetTouches&&t.targetTouches.length>0?t.targetTouches:[t]},a=function(t){var e={},n=[],i={},s={},o={};this.register=function(r){var a=t.getId(r),l=t.getOffset(r);e[a]||(e[a]=r,n.push(r),i[a]={});var u=function(e){if(e)for(var n=0;n<e.childNodes.length;n++)if(3!=e.childNodes[n].nodeType&&8!=e.childNodes[n].nodeType){var r=jsPlumb.getElement(e.childNodes[n]),c=t.getId(e.childNodes[n],null,!0);if(c&&s[c]&&s[c]>0){var h=t.getOffset(r);i[a][c]={id:c,offset:{left:h.left-l.left,top:h.top-l.top}},o[c]=a}u(e.childNodes[n])}};u(r)},this.updateOffsets=function(e){if(null!=e){var n=jsPlumb.getElement(e),s=t.getId(n),r=i[s],a=t.getOffset(n);if(r)for(var l in r)if(r.hasOwnProperty(l)){var u=jsPlumb.getElement(l),c=t.getOffset(u);i[s][l]={id:l,offset:{left:c.left-a.left,top:c.top-a.top}},o[l]=s}}},this.endpointAdded=function(n,r){r=r||t.getId(n);var a=document.body,l=n.parentNode;for(s[r]=s[r]?s[r]+1:1;null!=l&&l!=a;){var u=t.getId(l,null,!0);if(u&&e[u]){var c=t.getOffset(l);if(null==i[u][r]){var h=t.getOffset(n);i[u][r]={id:r,offset:{left:h.left-c.left,top:h.top-c.top}},o[r]=u}break}l=l.parentNode}},this.endpointDeleted=function(t){if(s[t.elementId]&&(s[t.elementId]--,s[t.elementId]<=0))for(var e in i)i.hasOwnProperty(e)&&i[e]&&(delete i[e][t.elementId],delete o[t.elementId])},this.changeId=function(t,e){i[e]=i[t],i[t]={},o[e]=o[t],o[t]=null},this.getElementsForDraggable=function(t){return i[t]},this.elementRemoved=function(t){var e=o[t];e&&(delete i[e][t],delete o[t])},this.reset=function(){e={},n=[],i={},s={}},this.dragEnded=function(e){var n=t.getId(e),i=o[n];i&&this.updateOffsets(i)},this.setParent=function(e,n,s,r){var a=o[n];if(a){i[r]||(i[r]={}),i[r][n]=i[a][n],delete i[a][n];var l=t.getOffset(s),u=t.getOffset(e);i[r][n].offset={left:u.left-l.left,top:u.top-l.top},o[n]=r}},this.getDragAncestor=function(e){var n=jsPlumb.getElement(e),i=t.getId(n),s=o[i];return s?jsPlumb.getElement(s):null}},l=function(t,e){var n;e=null==(n=e)?null:n.replace(/^\s\s*/,"").replace(/\s\s*$/,""),void 0!==t.className.baseVal?t.className.baseVal=e:t.className=e},u=function(t){return void 0===t.className.baseVal?t.className:t.className.baseVal},c=function(t,e,n){e=null==e?[]:jsPlumbUtil.isArray(e)?e:e.split(/\s+/),n=null==n?[]:jsPlumbUtil.isArray(n)?n:n.split(/\s+/);var i=u(t).split(/\s+/),s=function(t,e){for(var n=0;n<e.length;n++)if(t)-1==jsPlumbUtil.indexOf(i,e[n])&&i.push(e[n]);else{var s=jsPlumbUtil.indexOf(i,e[n]);-1!=s&&i.splice(s,1)}};s(!0,e),s(!1,n),l(t,i.join(" "))};jsPlumb.extend(jsPlumbInstance.prototype,{headless:!1,pageLocation:function(t){return null==t?[0,0]:i?[t.clientX+document.documentElement.scrollLeft,t.clientY+document.documentElement.scrollTop]:s(t,"page")},screenLocation:function(t){return s(t,"screen")},clientLocation:function(t){return s(t,"client")},getDragManager:function(){return null==this.dragManager&&(this.dragManager=new a(this)),this.dragManager},recalculateOffsets:function(t){this.getDragManager().updateOffsets(t)},createElement:function(t,e,n,i){return this.createElementNS(null,t,e,n,i)},createElementNS:function(t,e,n,i,s){var o,r=null==t?document.createElement(e):document.createElementNS(t,e);for(o in n=n||{})r.style[o]=n[o];for(o in i&&(r.className=i),s=s||{})r.setAttribute(o,""+s[o]);return r},getAttribute:function(t,e){return null!=t.getAttribute?t.getAttribute(e):null},setAttribute:function(t,e,n){null!=t.setAttribute&&t.setAttribute(e,n)},setAttributes:function(t,e){for(var n in e)e.hasOwnProperty(n)&&t.setAttribute(n,e[n])},appendToRoot:function(t){document.body.appendChild(t)},getRenderModes:function(){return["svg","vml"]},isRenderModeAvailable:function(n){return{svg:t,vml:e()}[n]},trySetRenderMode:function(t){var e;if(t){t=t.toLowerCase();var n=this.isRenderModeAvailable("svg"),i=this.isRenderModeAvailable("vml");"svg"===t&&n?e="svg":i&&(e="vml")}return e},getClass:u,addClass:function(t,e){jsPlumb.each(t,(function(t){c(t,e)}))},hasClass:function(t,e){return(t=jsPlumb.getElement(t)).classList?t.classList.contains(e):-1!=u(t).indexOf(e)},removeClass:function(t,e){jsPlumb.each(t,(function(t){c(t,null,e)}))},updateClasses:function(t,e,n){jsPlumb.each(t,(function(t){c(t,e,n)}))},setClass:function(t,e){jsPlumb.each(t,(function(t){l(t,e)}))},setPosition:function(t,e){t.style.left=e.left+"px",t.style.top=e.top+"px"},getPosition:function(t){var e=function(e){var n=t.style[e];return n?n.substring(0,n.length-2):0};return{left:e("left"),top:e("top")}},getStyle:function(t,e){return void 0!==window.getComputedStyle?getComputedStyle(t,null).getPropertyValue(e):t.currentStyle[e]},getSelector:function(t,e){return 1==arguments.length?null!=t.nodeType?t:document.querySelectorAll(t):t.querySelectorAll(e)},getOffset:function(t,e){t=jsPlumb.getElement(t);for(var n=this.getContainer(),i={left:t.offsetLeft,top:t.offsetTop},s=e||null!=n&&t!=n&&t.offsetParent!=n?t.offsetParent:null,o=function(t){null!=t&&t!==document.body&&(t.scrollTop>0||t.scrollLeft>0)&&(i.left-=t.scrollLeft,i.top-=t.scrollTop)}.bind(this);null!=s;)i.left+=s.offsetLeft,i.top+=s.offsetTop,o(s),s=e?s.offsetParent:s.offsetParent==n?null:s.offsetParent;if(null!=n&&!e&&(n.scrollTop>0||n.scrollLeft>0)){var r=null!=t.offsetParent?this.getStyle(t.offsetParent,"position"):"static",a=this.getStyle(t,"position");"absolute"!==a&&"fixed"!==a&&"absolute"!==r&&"fixed"!=r&&(i.left-=n.scrollLeft,i.top-=n.scrollTop)}return i},getPositionOnElement:function(t,e,n){var i=void 0!==e.getBoundingClientRect?e.getBoundingClientRect():{left:0,top:0,width:0,height:0},s=document.body,o=document.documentElement,r=window.pageYOffset||o.scrollTop||s.scrollTop,a=window.pageXOffset||o.scrollLeft||s.scrollLeft,l=o.clientTop||s.clientTop||0,u=o.clientLeft||s.clientLeft||0,c=i.top+r-l+0*n,h=i.left+a-u+0*n,d=jsPlumb.pageLocation(t),p=i.width||e.offsetWidth*n,f=i.height||e.offsetHeight*n;return[(d[0]-h)/p,(d[1]-c)/f]},getAbsolutePosition:function(t){var e=function(e){var n=t.style[e];if(n)return parseFloat(n.substring(0,n.length-2))};return[e("left"),e("top")]},setAbsolutePosition:function(t,e,n,i){n?this.animate(t,{left:"+="+(e[0]-n[0]),top:"+="+(e[1]-n[1])},i):(t.style.left=e[0]+"px",t.style.top=e[1]+"px")},getSize:function(t){return[t.offsetWidth,t.offsetHeight]},getWidth:function(t){return t.offsetWidth},getHeight:function(t){return t.offsetHeight}})}.call(this),function(){"use strict";var t=this.jsPlumb,e=this.jsPlumbUtil,n="__label";t.OverlayCapableJsPlumbUIComponent=function(t){jsPlumbUIComponent.apply(this,arguments),this._jsPlumb.overlays={},this._jsPlumb.overlayPositions={},t.label&&(this.getDefaultType().overlays[n]=["Label",{label:t.label,location:t.labelLocation||this.defaultLabelLocation||.5,labelStyle:t.labelStyle||this._jsPlumb.instance.Defaults.LabelStyle,id:n}]),this.setListenerComponent=function(t){if(this._jsPlumb)for(var e in this._jsPlumb.overlays)this._jsPlumb.overlays[e].setListenerComponent(t)}},t.OverlayCapableJsPlumbUIComponent.applyType=function(t,e){if(e.overlays){var n,i={};for(n in e.overlays){var s=t._jsPlumb.overlays[e.overlays[n][1].id];if(s)s.updateFrom(e.overlays[n][1]),i[e.overlays[n][1].id]=!0;else{var o=t.getCachedTypeItem("overlay",e.overlays[n][1].id);null!=o?(o.reattach(t._jsPlumb.instance),o.updateFrom(e.overlays[n][1]),t._jsPlumb.overlays[o.id]=o):o=t.addOverlay(e.overlays[n],!0),i[o.id]=!0}}for(n in t._jsPlumb.overlays)null==i[t._jsPlumb.overlays[n].id]&&t.removeOverlay(t._jsPlumb.overlays[n].id)}},e.extend(t.OverlayCapableJsPlumbUIComponent,jsPlumbUIComponent,{setHover:function(t,e){if(this._jsPlumb&&!this._jsPlumb.instance.isConnectionBeingDragged())for(var n in this._jsPlumb.overlays)this._jsPlumb.overlays[n][t?"addClass":"removeClass"](this._jsPlumb.instance.hoverClass)},addOverlay:function(n,i){var s=function(n,i){var s=null;if(e.isArray(i)){var o=i[0],r=t.extend({component:n,_jsPlumb:n._jsPlumb.instance},i[1]);3==i.length&&t.extend(r,i[2]),s=new(t.Overlays[n._jsPlumb.instance.getRenderMode()][o])(r)}else s=i.constructor==String?new(t.Overlays[n._jsPlumb.instance.getRenderMode()][i])({component:n,_jsPlumb:n._jsPlumb.instance}):i;return s.id=s.id||e.uuid(),n.cacheTypeItem("overlay",s,s.id),n._jsPlumb.overlays[s.id]=s,s}(this,n);return i||this.repaint(),s},getOverlay:function(t){return this._jsPlumb.overlays[t]},getOverlays:function(){return this._jsPlumb.overlays},hideOverlay:function(t){var e=this.getOverlay(t);e&&e.hide()},hideOverlays:function(){for(var t in this._jsPlumb.overlays)this._jsPlumb.overlays[t].hide()},showOverlay:function(t){var e=this.getOverlay(t);e&&e.show()},showOverlays:function(){for(var t in this._jsPlumb.overlays)this._jsPlumb.overlays[t].show()},removeAllOverlays:function(t){for(var e in this._jsPlumb.overlays)this._jsPlumb.overlays[e].cleanup&&this._jsPlumb.overlays[e].cleanup();this._jsPlumb.overlays={},this._jsPlumb.overlayPositions=null,t||this.repaint()},removeOverlay:function(t){var e=this._jsPlumb.overlays[t];e&&(e.cleanup&&e.cleanup(),delete this._jsPlumb.overlays[t],this._jsPlumb.overlayPositions&&delete this._jsPlumb.overlayPositions[t])},removeOverlays:function(){for(var t=0,e=arguments.length;t<e;t++)this.removeOverlay(arguments[t])},moveParent:function(t){if(this.bgCanvas&&(this.bgCanvas.parentNode.removeChild(this.bgCanvas),t.appendChild(this.bgCanvas)),this.canvas&&this.canvas.parentNode)for(var e in this.canvas.parentNode.removeChild(this.canvas),t.appendChild(this.canvas),this._jsPlumb.overlays)if(this._jsPlumb.overlays[e].isAppendedAtTopLevel){var n=this._jsPlumb.overlays[e].getElement();n.parentNode.removeChild(n),t.appendChild(n)}},getLabel:function(){var t=this.getOverlay(n);return null!=t?t.getLabel():null},getLabelOverlay:function(){return this.getOverlay(n)},setLabel:function(e){var i=this.getOverlay(n);i?e.constructor==String||e.constructor==Function?i.setLabel(e):(e.label&&i.setLabel(e.label),e.location&&i.setLocation(e.location)):(i=function(e,i){var s={cssClass:i.cssClass,labelStyle:e.labelStyle,id:n,component:e,_jsPlumb:e._jsPlumb.instance},o=jsPlumb.extend(s,i);return new(t.Overlays[e._jsPlumb.instance.getRenderMode()].Label)(o)}(this,e.constructor==String||e.constructor==Function?{label:e}:e),this._jsPlumb.overlays[n]=i);this._jsPlumb.instance.isSuspendDrawing()||this.repaint()},cleanup:function(t){for(var e in this._jsPlumb.overlays)this._jsPlumb.overlays[e].cleanup(t),this._jsPlumb.overlays[e].destroy(t);t&&(this._jsPlumb.overlays={},this._jsPlumb.overlayPositions=null)},setVisible:function(t){this[t?"showOverlays":"hideOverlays"]()},setAbsoluteOverlayPosition:function(t,e){this._jsPlumb.overlayPositions[t.id]=e},getAbsoluteOverlayPosition:function(t){return this._jsPlumb.overlayPositions?this._jsPlumb.overlayPositions[t.id]:null}})}.call(this),function(){"use strict";var t=this,e=t.jsPlumb,n=t.jsPlumbUtil,i=["connectorStyle","connectorHoverStyle","connectorOverlays","connector","connectionType","connectorClass","connectorHoverClass"],s=function(t,e){return n.findWithFunction(e.connections,(function(e){return e.id==t.id}))};e.Endpoint=function(t){var o=t._jsPlumb,r=t.newConnection,a=t.newEndpoint;this.idPrefix="_jsplumb_e_",this.defaultLabelLocation=[.5,.5],this.defaultOverlayKeys=["Overlays","EndpointOverlays"],e.OverlayCapableJsPlumbUIComponent.apply(this,arguments),this.appendToDefaultType({connectionType:t.connectionType,maxConnections:null==t.maxConnections?this._jsPlumb.instance.Defaults.MaxConnections:t.maxConnections,paintStyle:t.endpointStyle||t.paintStyle||t.style||this._jsPlumb.instance.Defaults.EndpointStyle||e.Defaults.EndpointStyle,hoverPaintStyle:t.endpointHoverStyle||t.hoverPaintStyle||this._jsPlumb.instance.Defaults.EndpointHoverStyle||e.Defaults.EndpointHoverStyle,connectorStyle:t.connectorStyle,connectorHoverStyle:t.connectorHoverStyle,connectorClass:t.connectorClass,connectorHoverClass:t.connectorHoverClass,connectorOverlays:t.connectorOverlays,connector:t.connector,connectorTooltip:t.connectorTooltip}),this._jsPlumb.enabled=!(!1===t.enabled),this._jsPlumb.visible=!0,this.element=e.getElement(t.source),this._jsPlumb.uuid=t.uuid,this._jsPlumb.floatingEndpoint=null;var l=null;this._jsPlumb.uuid&&(t.endpointsByUUID[this._jsPlumb.uuid]=this),this.elementId=t.elementId,this._jsPlumb.connectionCost=t.connectionCost,this._jsPlumb.connectionsDirected=t.connectionsDirected,this._jsPlumb.currentAnchorClass="",this._jsPlumb.events={};var u=function(){var t=o.endpointAnchorClassPrefix+"_"+this._jsPlumb.currentAnchorClass;this._jsPlumb.currentAnchorClass=this.anchor.getCssClass();var e=o.endpointAnchorClassPrefix+(this._jsPlumb.currentAnchorClass?"_"+this._jsPlumb.currentAnchorClass:"");this.removeClass(t),this.addClass(e),jsPlumb.updateClasses(this.element,e,t)}.bind(this);this.prepareAnchor=function(t){var e=this._jsPlumb.instance.makeAnchor(t,this.elementId,o);return e.bind("anchorChanged",function(t){this.fire("anchorChanged",{endpoint:this,anchor:t}),u()}.bind(this)),e},this.setPreparedAnchor=function(t,e){return this._jsPlumb.instance.continuousAnchorFactory.clear(this.elementId),this.anchor=t,u(),e||this._jsPlumb.instance.repaint(this.elementId),this},this.setAnchor=function(t,e){var n=this.prepareAnchor(t);return this.setPreparedAnchor(n,e),this};var c=function(t){if(this.connections.length>0)for(var e=0;e<this.connections.length;e++)this.connections[e].setHover(t,!1);else this.setHover(t)}.bind(this);this.bind("mouseover",(function(){c(!0)})),this.bind("mouseout",(function(){c(!1)})),t._transient||this._jsPlumb.instance.anchorManager.add(this,this.elementId),this.prepareEndpoint=function(i,s){var r,a=function(t,n){var i=o.getRenderMode();if(e.Endpoints[i][t])return new e.Endpoints[i][t](n);if(!o.Defaults.DoNotThrowErrors)throw{msg:"jsPlumb: unknown endpoint type '"+t+"'"}},l={_jsPlumb:this._jsPlumb.instance,cssClass:t.cssClass,container:t.container,tooltip:t.tooltip,connectorTooltip:t.connectorTooltip,endpoint:this};return n.isString(i)?r=a(i,l):n.isArray(i)?(l=n.merge(i[1],l),r=a(i[0],l)):r=i.clone(),r.clone=function(){return n.isString(i)?a(i,l):n.isArray(i)?(l=n.merge(i[1],l),a(i[0],l)):void 0}.bind(this),r.typeId=s,r},this.setEndpoint=function(t,e){var n=this.prepareEndpoint(t);this.setPreparedEndpoint(n,!0)},this.setPreparedEndpoint=function(t,e){null!=this.endpoint&&(this.endpoint.cleanup(),this.endpoint.destroy()),this.endpoint=t,this.type=this.endpoint.type,this.canvas=this.endpoint.canvas},e.extend(this,t,i),this.isSource=t.isSource||!1,this.isTemporarySource=t.isTemporarySource||!1,this.isTarget=t.isTarget||!1,this.connections=t.connections||[],this.connectorPointerEvents=t["connector-pointer-events"],this.scope=t.scope||o.getDefaultScope(),this.timestamp=null,this.reattachConnections=t.reattach||o.Defaults.ReattachConnections,this.connectionsDetachable=o.Defaults.ConnectionsDetachable,!1!==t.connectionsDetachable&&!1!==t.detachable||(this.connectionsDetachable=!1),this.dragAllowedWhenFull=!1!==t.dragAllowedWhenFull,t.onMaxConnections&&this.bind("maxConnections",t.onMaxConnections),this.addConnection=function(t){this.connections.push(t),this[(this.connections.length>0?"add":"remove")+"Class"](o.endpointConnectedClass),this[(this.isFull()?"add":"remove")+"Class"](o.endpointFullClass)},this.detachFromConnection=function(t,e,n){(e=null==e?s(t,this):e)>=0&&(this.connections.splice(e,1),this[(this.connections.length>0?"add":"remove")+"Class"](o.endpointConnectedClass),this[(this.isFull()?"add":"remove")+"Class"](o.endpointFullClass)),!n&&this._deleteOnDetach&&0===this.connections.length&&o.deleteObject({endpoint:this,fireEvent:!1,deleteAttachedObjects:!1})},this.detach=function(t,e,n,i,r,a,l){var u=!1;return i=!1!==i,(null==l?s(t,this):l)>=0&&(n||t._forceDetach||t.isDetachable()&&t.isDetachAllowed(t)&&this.isDetachAllowed(t)&&o.checkCondition("beforeDetach",t,a))&&(o.deleteObject({connection:t,fireEvent:!e&&i,originalEvent:r,deleteAttachedObjects:!1}),u=!0),u},this.detachAll=function(t,e){for(var n=[];this.connections.length>0;){this.detach(this.connections[0],!1,!0===e,!1!==t,null,this,0)||(n.push(this.connections[0]),this.connections.splice(0,1))}return this.connections=n,this},this.detachFrom=function(t,e,n){for(var i=[],s=0;s<this.connections.length;s++)this.connections[s].endpoints[1]!=t&&this.connections[s].endpoints[0]!=t||i.push(this.connections[s]);for(var o=0;o<i.length;o++)this.detach(i[o],!1,!0,e,n);return this},this.getElement=function(){return this.element},this.setElement=function(e){var i=this._jsPlumb.instance.getId(e),s=this.elementId;return n.removeWithFunction(t.endpointsByElement[this.elementId],function(t){return t.id==this.id}.bind(this)),this.element=jsPlumb.getElement(e),this.elementId=o.getId(this.element),o.anchorManager.rehomeEndpoint(this,s,this.element),o.dragManager.endpointAdded(this.element),n.addToList(t.endpointsByElement,i,this),this},this.makeInPlaceCopy=function(){var e=this.anchor.getCurrentLocation({element:this}),n=this.anchor.getOrientation(this),i=this.anchor.getCssClass(),s={bind:function(){},compute:function(){return[e[0],e[1]]},getCurrentLocation:function(){return[e[0],e[1]]},getOrientation:function(){return n},getCssClass:function(){return i}};return a({dropOptions:t.dropOptions,anchor:s,source:this.element,paintStyle:this.getPaintStyle(),endpoint:t.hideOnDrag?"Blank":this.endpoint,_transient:!0,scope:this.scope,reference:this})},this.connectorSelector=function(){var t=this.connections[0];return t||(this.connections.length<this._jsPlumb.maxConnections||-1==this._jsPlumb.maxConnections?null:t)},this.setStyle=this.setPaintStyle,this.paint=function(t){var e=(t=t||{}).timestamp,n=!(!1===t.recalc);if(!e||this.timestamp!==e){var i=o.updateOffset({elId:this.elementId,timestamp:e}),s=t.offset?t.offset.o:i.o;if(null!=s){var r=t.anchorPoint,a=t.connectorPaintStyle;if(null==r){var l=t.dimensions||i.s,u={xy:[s.left,s.top],wh:l,element:this,timestamp:e};if(n&&this.anchor.isDynamic&&this.connections.length>0){var c=function(t,e){var n=0;if(null!=e)for(var i=0;i<t.connections.length;i++)if(t.connections[i].sourceId==e||t.connections[i].targetId==e){n=i;break}return t.connections[n]}(this,t.elementWithPrecedence),h=c.endpoints[0]==this?1:0,d=0===h?c.sourceId:c.targetId,p=o.getCachedData(d),f=p.o,m=p.s;u.txy=[f.left,f.top],u.twh=m,u.tElement=c.endpoints[h]}r=this.anchor.compute(u)}for(var g in this.endpoint.compute(r,this.anchor.getOrientation(this),this._jsPlumb.paintStyleInUse,a||this.paintStyleInUse),this.endpoint.paint(this._jsPlumb.paintStyleInUse,this.anchor),this.timestamp=e,this._jsPlumb.overlays)if(this._jsPlumb.overlays.hasOwnProperty(g)){var v=this._jsPlumb.overlays[g];v.isVisible()&&(this._jsPlumb.overlayPlacements[g]=v.draw(this.endpoint,this._jsPlumb.paintStyleInUse),v.paint(this._jsPlumb.overlayPlacements[g]))}}}},this.getTypeDescriptor=function(){return"endpoint"},this.isVisible=function(){return this._jsPlumb.visible},this.repaint=this.paint;var h=!1;this.initDraggable=function(){if(!h&&e.isDragSupported(this.element)){var i={id:null,element:null},s=null,u=!1,c=null,d=function(t,n){var i=!1;return{drag:function(){if(i)return i=!1,!0;var s=e.getUIPosition(arguments,n.getZoom());t.element&&(jsPlumb.setPosition(t.element,s),n.repaint(t.element,s))},stopDrag:function(){i=!0}}}(i,o),p=t.dragOptions||{},f=e.dragEvents.start,m=e.dragEvents.stop,g=e.dragEvents.drag,v=function(){s=this.connectorSelector();var h=!0;this.isEnabled()||(h=!1),null!=s||this.isSource||this.isTemporarySource||(h=!1),!this.isSource||!this.isFull()||null!=s&&this.dragAllowedWhenFull||(h=!1),null==s||s.isDetachable(this)||(h=!1);var p=o.checkCondition(null==s?"beforeDrag":"beforeStartDetach",{endpoint:this,source:this.element,sourceId:this.elementId,connection:s});if(!1===p&&(h=!1),!1===h)return o.stopDrag&&o.stopDrag(this.canvas),d.stopDrag(),!1;for(var f=0;f<this.connections.length;f++)this.connections[f].setHover(!1);this.addClass("endpointDrag"),o.setConnectionBeingDragged(!0),s&&!this.isFull()&&this.isSource&&(s=null),o.updateOffset({elId:this.elementId}),(l=this.makeInPlaceCopy()).addClass(o.draggingClass),l.referenceEndpoint=this,l.paint(),function(t,e){var n=jsPlumb.createElement("div",{position:"absolute"});e.appendElement(n);var i=e.getId(n);e.manage(i,n,!0),t.id=i,t.element=n}(i,o);var m=this._jsPlumb.instance.getOffset(l.canvas),g=this.canvas;if(jsPlumb.setPosition(i.element,m),this.parentAnchor&&(this.anchor=o.makeAnchor(this.parentAnchor,this.elementId,o)),o.setAttributes(this.canvas,{dragId:i.id,elId:this.elementId}),this._jsPlumb.floatingEndpoint=function(t,n,i,s,o,r,a,l){return a({paintStyle:t,endpoint:i,anchor:new e.FloatingAnchor({reference:n,referenceCanvas:s,jsPlumbInstance:r}),source:o,scope:l})}(this.getPaintStyle(),this.anchor,this.endpoint,this.canvas,i.element,o,a,this.scope),this.canvas.style.visibility="hidden",null==s)this.anchor.locked=!0,this.setHover(!1,!1),(s=r({sourceEndpoint:this,targetEndpoint:this._jsPlumb.floatingEndpoint,source:this.endpointWillMoveTo||this.element,target:i.element,anchors:[this.anchor,this._jsPlumb.floatingEndpoint.anchor],paintStyle:t.connectorStyle,hoverPaintStyle:t.connectorHoverStyle,connector:t.connector,overlays:t.connectorOverlays,type:this.connectionType,cssClass:this.connectorClass,hoverClass:this.connectorHoverClass,data:p})).addClass(o.draggingClass),this._jsPlumb.floatingEndpoint.addClass(o.draggingClass),o.fire("connectionDrag",s);else{u=!0,s.setHover(!1);var v=s.endpoints[0].id==this.id?0:1;this.detachFromConnection(s,null,!0);var b=o.getDragScope(g);o.setAttribute(this.canvas,"originalScope",b);var y=o.getDropScope(g);o.setDragScope(g,y),o.fire("connectionDrag",s),0===v?(c=[s.source,s.sourceId,g,b],s.source=i.element,s.sourceId=i.id):(c=[s.target,s.targetId,g,b],s.target=i.element,s.targetId=i.id),s.endpoints[0===v?1:0].anchor.locked=!0,s.suspendedEndpoint=s.endpoints[v],s.suspendedElement=s.endpoints[v].getElement(),s.suspendedElementId=s.endpoints[v].elementId,s.suspendedElementType=0===v?"source":"target",s.suspendedEndpoint.setHover(!1),this._jsPlumb.floatingEndpoint.referenceEndpoint=s.suspendedEndpoint,s.endpoints[v]=this._jsPlumb.floatingEndpoint,s.addClass(o.draggingClass),this._jsPlumb.floatingEndpoint.addClass(o.draggingClass)}o.floatingConnections[i.id]=s,o.anchorManager.addFloatingConnection(i.id,s),n.addToList(t.endpointsByElement,i.id,this._jsPlumb.floatingEndpoint),o.currentlyDragging=!0}.bind(this),b=function(){if(o.setConnectionBeingDragged(!1),s&&null!=s.endpoints){var t=o.getDropEvent(arguments),e=o.getFloatingAnchorIndex(s);if(s.endpoints[0===e?1:0].anchor.locked=!1,s.removeClass(o.draggingClass),this._jsPlumb&&(s.deleteConnectionNow||s.endpoints[e]==this._jsPlumb.floatingEndpoint)&&u&&s.suspendedEndpoint){0===e?(s.source=c[0],s.sourceId=c[1]):(s.target=c[0],s.targetId=c[1]);var n=this._jsPlumb.floatingEndpoint;o.setDragScope(c[2],c[3]),s.endpoints[e]=s.suspendedEndpoint,s.isReattach()||s._forceReattach||s._forceDetach||!s.endpoints[0===e?1:0].detach(s,!1,!1,!0,t,!0)?(s.setHover(!1),s._forceDetach=null,s._forceReattach=null,this._jsPlumb.floatingEndpoint.detachFromConnection(s),s.suspendedEndpoint.addConnection(s),o.repaint(c[1])):o.deleteObject({endpoint:n})}this.deleteAfterDragStop?o.deleteObject({endpoint:this}):this._jsPlumb&&this.paint({recalc:!1}),o.fire("connectionDragStop",s,t),o.currentlyDragging=!1,s=null}i&&i.element&&o.remove(i.element,!1),l&&o.deleteObject({endpoint:l}),this._jsPlumb&&(this.canvas.style.visibility="visible",this.anchor.locked=!1,this._jsPlumb.floatingEndpoint=null)}.bind(this);(p=e.extend({},p)).scope=this.scope||p.scope,p[f]=n.wrap(p[f],v,!1),p[g]=n.wrap(p[g],d.drag),p[m]=n.wrap(p[m],b),p.multipleDrop=!1,p.canDrag=function(){return this.isSource||this.isTemporarySource||this.connections.length>0}.bind(this),o.initDraggable(this.canvas,p,"internal"),this.canvas._jsPlumbRelatedElement=this.element,h=!0}};var d=t.endpoint||this._jsPlumb.instance.Defaults.Endpoint||e.Defaults.Endpoint;this.setEndpoint(d,!0);var p=t.anchor?t.anchor:t.anchors?t.anchors:o.Defaults.Anchor||"Top";this.setAnchor(p,!0);var f=["default",t.type||""].join(" ");this.addType(f,t.data,!0),this.canvas=this.endpoint.canvas,this.canvas._jsPlumb=this,this.initDraggable();var m=function(i,s,r,a){if(e.isDropSupported(this.element)){var l=t.dropOptions||o.Defaults.DropOptions||e.Defaults.DropOptions;(l=e.extend({},l)).scope=l.scope||this.scope;var u=e.dragEvents.drop,c=e.dragEvents.over,h=e.dragEvents.out,d=this,p=o.EndpointDropHandler({getEndpoint:function(){return d},jsPlumb:o,enabled:function(){return null==r||r.isEnabled()},isFull:function(){return r.isFull()},element:this.element,elementId:this.elementId,isSource:this.isSource,isTarget:this.isTarget,addClass:function(t){d.addClass(t)},removeClass:function(t){d.removeClass(t)},isDropAllowed:function(){return d.isDropAllowed.apply(d,arguments)},reference:a,isRedrop:function(t,e){return t.suspendedEndpoint&&e.reference&&t.suspendedEndpoint.id===e.reference.id}});l[u]=n.wrap(l[u],p,!0),l[c]=n.wrap(l[c],function(){var t=e.getDragObject(arguments),n=o.getAttribute(e.getElement(t),"dragId"),i=o.floatingConnections[n];if(null!=i){var s=o.getFloatingAnchorIndex(i);if(this.isTarget&&0!==s||i.suspendedEndpoint&&this.referenceEndpoint&&this.referenceEndpoint.id==i.suspendedEndpoint.id){var r=o.checkCondition("checkDropAllowed",{sourceEndpoint:i.endpoints[s],targetEndpoint:this,connection:i});this[(r?"add":"remove")+"Class"](o.endpointDropAllowedClass),this[(r?"remove":"add")+"Class"](o.endpointDropForbiddenClass),i.endpoints[s].anchor.over(this.anchor,this)}}}.bind(this)),l[h]=n.wrap(l[h],function(){var t=e.getDragObject(arguments),n=null==t?null:o.getAttribute(e.getElement(t),"dragId"),i=n?o.floatingConnections[n]:null;if(null!=i){var s=o.getFloatingAnchorIndex(i);(this.isTarget&&0!==s||i.suspendedEndpoint&&this.referenceEndpoint&&this.referenceEndpoint.id==i.suspendedEndpoint.id)&&(this.removeClass(o.endpointDropAllowedClass),this.removeClass(o.endpointDropForbiddenClass),i.endpoints[s].anchor.out())}}.bind(this)),o.initDroppable(i,l,"internal",s)}}.bind(this);return this.anchor.isFloating||m(this.canvas,!(t._transient||this.anchor.isFloating),this,t.reference),this},n.extend(e.Endpoint,e.OverlayCapableJsPlumbUIComponent,{setVisible:function(t,e,n){if(this._jsPlumb.visible=t,this.canvas&&(this.canvas.style.display=t?"block":"none"),this[t?"showOverlays":"hideOverlays"](),!e)for(var i=0;i<this.connections.length;i++)if(this.connections[i].setVisible(t),!n){var s=this===this.connections[i].endpoints[0]?1:0;1==this.connections[i].endpoints[s].connections.length&&this.connections[i].endpoints[s].setVisible(t,!0,!0)}},getAttachedElements:function(){return this.connections},applyType:function(t,n){this.setPaintStyle(t.endpointStyle||t.paintStyle,n),this.setHoverPaintStyle(t.endpointHoverStyle||t.hoverPaintStyle,n),null!=t.maxConnections&&(this._jsPlumb.maxConnections=t.maxConnections),t.scope&&(this.scope=t.scope),e.extend(this,t,i),null!=t.cssClass&&this.canvas&&this._jsPlumb.instance.addClass(this.canvas,t.cssClass),e.OverlayCapableJsPlumbUIComponent.applyType(this,t)},isEnabled:function(){return this._jsPlumb.enabled},setEnabled:function(t){this._jsPlumb.enabled=t},cleanup:function(){var t=this._jsPlumb.instance.endpointAnchorClassPrefix+(this._jsPlumb.currentAnchorClass?"_"+this._jsPlumb.currentAnchorClass:"");jsPlumb.removeClass(this.element,t),this.anchor=null,this.endpoint.cleanup(!0),this.endpoint.destroy(),this.endpoint=null,this._jsPlumb.instance.destroyDraggable(this.canvas,"internal"),this._jsPlumb.instance.destroyDroppable(this.canvas,"internal")},setHover:function(t){this.endpoint&&this._jsPlumb&&!this._jsPlumb.instance.isConnectionBeingDragged()&&this.endpoint.setHover(t)},isFull:function(){return 0===this._jsPlumb.maxConnections||!(this.isFloating()||this._jsPlumb.maxConnections<0||this.connections.length<this._jsPlumb.maxConnections)},isFloating:function(){return null!=this.anchor&&this.anchor.isFloating},isConnectedTo:function(t){var e=!1;if(t)for(var n=0;n<this.connections.length;n++)if(this.connections[n].endpoints[1]==t||this.connections[n].endpoints[0]==t){e=!0;break}return e},getConnectionCost:function(){return this._jsPlumb.connectionCost},setConnectionCost:function(t){this._jsPlumb.connectionCost=t},areConnectionsDirected:function(){return this._jsPlumb.connectionsDirected},setConnectionsDirected:function(t){this._jsPlumb.connectionsDirected=t},setElementId:function(t){this.elementId=t,this.anchor.elementId=t},setReferenceElement:function(t){this.element=e.getElement(t)},setDragAllowedWhenFull:function(t){this.dragAllowedWhenFull=t},equals:function(t){return this.anchor.equals(t.anchor)},getUuid:function(){return this._jsPlumb.uuid},computeAnchor:function(t){return this.anchor.compute(t)}}),t.jsPlumbInstance.prototype.EndpointDropHandler=function(t){return function(e){var n=t.jsPlumb;t.removeClass(n.endpointDropAllowedClass),t.removeClass(n.endpointDropForbiddenClass);var i=n.getDropEvent(arguments),s=n.getDragObject(arguments),o=n.getAttribute(s,"dragId"),r=(n.getAttribute(s,"elId"),n.getAttribute(s,"originalScope")),a=n.floatingConnections[o];if(null!=a&&(!a.suspendedEndpoint||null!=a.suspendedEndpoint._jsPlumb)){var l=t.getEndpoint(a);if(null!=l){if(t.isRedrop(a,t))return a._forceReattach=!0,a.setHover(!1),void(t.maybeCleanup&&t.maybeCleanup(l));var u=n.getFloatingAnchorIndex(a);if(0===u&&!t.isSource||1===u&&!t.isTarget)t.maybeCleanup&&t.maybeCleanup(l);else{t.onDrop&&t.onDrop(a),r&&n.setDragScope(s,r);var c=t.isFull(e);if(c&&l.fire("maxConnections",{endpoint:this,connection:a,maxConnections:l._jsPlumb.maxConnections},i),!c&&(0!==u||t.isSource)&&(1!=u||t.isTarget)&&t.enabled()){var h=!0;0===u?(a.source=t.element,a.sourceId=t.elementId):(a.target=t.element,a.targetId=t.elementId),a.suspendedEndpoint&&a.suspendedEndpoint._jsPlumb&&a.suspendedEndpoint.id!=l.id&&(a.isDetachAllowed(a)&&a.endpoints[u].isDetachAllowed(a)&&a.suspendedEndpoint.isDetachAllowed(a)&&n.checkCondition("beforeDetach",a)||(h=!1));var d=function(t){a.endpoints[u].detachFromConnection(a),a.suspendedEndpoint&&a.suspendedEndpoint.detachFromConnection(a),a.endpoints[u]=l,l.addConnection(a);var e=l.getParameters();for(var s in e)a.setParameter(s,e[s]);if(a.suspendedEndpoint){var o=a.suspendedEndpoint.elementId;n.fireMoveEvent({index:u,originalSourceId:0===u?o:a.sourceId,newSourceId:0===u?l.elementId:a.sourceId,originalTargetId:1==u?o:a.targetId,newTargetId:1==u?l.elementId:a.targetId,originalSourceEndpoint:0===u?a.suspendedEndpoint:a.endpoints[0],newSourceEndpoint:0===u?l:a.endpoints[0],originalTargetEndpoint:1==u?a.suspendedEndpoint:a.endpoints[1],newTargetEndpoint:1==u?l:a.endpoints[1],connection:a},i)}else e.draggable&&n.initDraggable(this.element,dragOptions,"internal",n);(1==u?n.anchorManager.updateOtherEndpoint(a.sourceId,a.suspendedElementId,a.targetId,a):n.anchorManager.sourceChanged(a.suspendedEndpoint.elementId,a.sourceId,a),a.endpoints[0].finalEndpoint)&&(a.endpoints[0].detachFromConnection(a),a.endpoints[0]=a.endpoints[0].finalEndpoint,a.endpoints[0].addConnection(a));jsPlumbUtil.isObject(t)&&a.mergeData(t),n.finaliseConnection(a,null,i),a.setHover(!1)}.bind(this);if(h=h&&t.isDropAllowed(a.sourceId,a.targetId,a.scope,a,l))return d(h),!0;a.suspendedEndpoint&&(a.endpoints[u]=a.suspendedEndpoint,a.setHover(!1),a._forceDetach=!0,0===u?(a.source=a.suspendedEndpoint.element,a.sourceId=a.suspendedEndpoint.elementId):(a.target=a.suspendedEndpoint.element,a.targetId=a.suspendedEndpoint.elementId),a.suspendedEndpoint.addConnection(a),n.repaint(a.sourceId),a._forceDetach=!1)}t.maybeCleanup&&t.maybeCleanup(l),n.currentlyDragging=!1}}}}}}.call(this),function(){"use strict";var t=this,e=t.jsPlumb,n=t.jsPlumbUtil,i=function(t,n,i,s,o){if(!t.Defaults.DoNotThrowErrors&&null==jsPlumb.Connectors[n][i])throw{msg:"jsPlumb: unknown connector type '"+i+"'"};return new e.Connectors[n][i](s,o)},s=function(t,e,n){return t?n.makeAnchor(t,e,n):null},o=function(t,e,i,s){null!=e&&(e._jsPlumbConnections=e._jsPlumbConnections||{},s?delete e._jsPlumbConnections[t.id]:e._jsPlumbConnections[t.id]=!0,n.isEmpty(e._jsPlumbConnections)?i.removeClass(e,i.connectedClass):i.addClass(e,i.connectedClass))};e.Connection=function(t){var i=t.newEndpoint;this.id=t.id,this.connector=null,this.idPrefix="_jsplumb_c_",this.defaultLabelLocation=.5,this.defaultOverlayKeys=["Overlays","ConnectionOverlays"],this.previousConnection=t.previousConnection,this.source=e.getElement(t.source),this.target=e.getElement(t.target),t.sourceEndpoint&&(this.source=t.sourceEndpoint.getElement()),t.targetEndpoint&&(this.target=t.targetEndpoint.getElement()),e.OverlayCapableJsPlumbUIComponent.apply(this,arguments),this.sourceId=this._jsPlumb.instance.getId(this.source),this.targetId=this._jsPlumb.instance.getId(this.target),this.scope=t.scope,this.endpoints=[],this.endpointStyles=[];var s=this._jsPlumb.instance;s.manage(this.sourceId,this.source),s.manage(this.targetId,this.target),this._jsPlumb.visible=!0,this._jsPlumb.editable=!0===t.editable,this._jsPlumb.params={cssClass:t.cssClass,container:t.container,"pointer-events":t["pointer-events"],editorParams:t.editorParams,overlays:t.overlays},this._jsPlumb.lastPaintedAt=null,this.bind("mouseover",function(){this.setHover(!0)}.bind(this)),this.bind("mouseout",function(){this.setHover(!1)}.bind(this)),this.makeEndpoint=function(e,n,o,r){return o=o||this._jsPlumb.instance.getId(n),this.prepareEndpoint(s,i,this,r,e?0:1,t,n,o)};var o=this.makeEndpoint(!0,this.source,this.sourceId,t.sourceEndpoint),r=this.makeEndpoint(!1,this.target,this.targetId,t.targetEndpoint);o&&n.addToList(t.endpointsByElement,this.sourceId,o),r&&n.addToList(t.endpointsByElement,this.targetId,r),this.scope||(this.scope=this.endpoints[0].scope),null!=t.deleteEndpointsOnDetach?(this.endpoints[0]._deleteOnDetach=t.deleteEndpointsOnDetach,this.endpoints[1]._deleteOnDetach=t.deleteEndpointsOnDetach):(this.endpoints[0]._doNotDeleteOnDetach||(this.endpoints[0]._deleteOnDetach=!0),this.endpoints[1]._doNotDeleteOnDetach||(this.endpoints[1]._deleteOnDetach=!0));var a=s.Defaults.ConnectionsDetachable;!1===t.detachable&&(a=!1),!1===this.endpoints[0].connectionsDetachable&&(a=!1),!1===this.endpoints[1].connectionsDetachable&&(a=!1);var l=t.reattach||this.endpoints[0].reattachConnections||this.endpoints[1].reattachConnections||s.Defaults.ReattachConnections;this.appendToDefaultType({detachable:a,rettach:l,paintStyle:this.endpoints[0].connectorStyle||this.endpoints[1].connectorStyle||t.paintStyle||s.Defaults.PaintStyle||jsPlumb.Defaults.PaintStyle,hoverPaintStyle:this.endpoints[0].connectorHoverStyle||this.endpoints[1].connectorHoverStyle||t.hoverPaintStyle||s.Defaults.HoverPaintStyle||jsPlumb.Defaults.HoverPaintStyle});var u=s.getSuspendedAt();if(!s.isSuspendDrawing()){var c=s.getCachedData(this.sourceId),h=c.o,d=c.s,p=s.getCachedData(this.targetId),f=p.o,m=p.s,g=u||s.timestamp(),v=this.endpoints[0].anchor.compute({xy:[h.left,h.top],wh:d,element:this.endpoints[0],elementId:this.endpoints[0].elementId,txy:[f.left,f.top],twh:m,tElement:this.endpoints[1],timestamp:g});this.endpoints[0].paint({anchorLoc:v,timestamp:g}),v=this.endpoints[1].anchor.compute({xy:[f.left,f.top],wh:m,element:this.endpoints[1],elementId:this.endpoints[1].elementId,txy:[h.left,h.top],twh:d,tElement:this.endpoints[0],timestamp:g}),this.endpoints[1].paint({anchorLoc:v,timestamp:g})}this.getTypeDescriptor=function(){return"connection"},this.getAttachedElements=function(){return this.endpoints},this.isDetachable=function(){return!0===this._jsPlumb.detachable},this.setDetachable=function(t){this._jsPlumb.detachable=!0===t},this.isReattach=function(){return!0===this._jsPlumb.reattach||!0===this.endpoints[0].reattachConnections||!0===this.endpoints[1].reattachConnections},this.setReattach=function(t){this._jsPlumb.reattach=!0===t},this._jsPlumb.cost=t.cost||this.endpoints[0].getConnectionCost(),this._jsPlumb.directed=t.directed,null==t.directed&&(this._jsPlumb.directed=this.endpoints[0].areConnectionsDirected());var b=jsPlumb.extend({},this.endpoints[1].getParameters());e.extend(b,this.endpoints[0].getParameters()),e.extend(b,this.getParameters()),this.setParameters(b),this.setConnector(this.endpoints[0].connector||this.endpoints[1].connector||t.connector||s.Defaults.Connector||e.Defaults.Connector,!0);var y=null!=t.data&&jsPlumbUtil.isObject(t.data)?t.data:{};this.getData=function(){return y},this.setData=function(t){y=t||{}},this.mergeData=function(t){y=jsPlumb.extend(y,t)};var P=["default",t.type,this.endpoints[0].connectionType,this.endpoints[1].connectionType].join(" ");/[^\s]/.test(P)&&this.addType(P,t.data,!0),this.updateConnectedClass()},n.extend(e.Connection,e.OverlayCapableJsPlumbUIComponent,{applyType:function(t,n,i){null!=t.detachable&&this.setDetachable(t.detachable),null!=t.reattach&&this.setReattach(t.reattach),t.scope&&(this.scope=t.scope),null!=t.cssClass&&this.canvas&&this._jsPlumb.instance.addClass(this.canvas,t.cssClass);var s=null;t.anchor?null==(s=this.getCachedTypeItem("anchors",i.anchor))&&(s=[this._jsPlumb.instance.makeAnchor(t.anchor),this._jsPlumb.instance.makeAnchor(t.anchor)],this.cacheTypeItem("anchors",s,i.anchor)):t.anchors&&null==(s=this.getCachedTypeItem("anchors",i.anchors))&&(s=[this._jsPlumb.instance.makeAnchor(t.anchors[0]),this._jsPlumb.instance.makeAnchor(t.anchors[1])],this.cacheTypeItem("anchors",s,i.anchors)),null!=s&&(this.endpoints[0].anchor=s[0],this.endpoints[1].anchor=s[1]),e.OverlayCapableJsPlumbUIComponent.applyType(this,t)},addClass:function(t,e){e&&(this.endpoints[0].addClass(t),this.endpoints[1].addClass(t),this.suspendedEndpoint&&this.suspendedEndpoint.addClass(t)),this.connector&&this.connector.addClass(t)},removeClass:function(t,e){e&&(this.endpoints[0].removeClass(t),this.endpoints[1].removeClass(t),this.suspendedEndpoint&&this.suspendedEndpoint.removeClass(t)),this.connector&&this.connector.removeClass(t)},isVisible:function(){return this._jsPlumb.visible},setVisible:function(t){this._jsPlumb.visible=t,this.connector&&this.connector.setVisible(t),this.repaint()},cleanup:function(){this.updateConnectedClass(!0),this.endpoints=null,this.source=null,this.target=null,null!=this.connector&&(this.connector.cleanup(!0),this.connector.destroy(!0)),this.connector=null},updateConnectedClass:function(t){o(this,this.source,this._jsPlumb.instance,t),o(this,this.target,this._jsPlumb.instance,t)},setHover:function(e){this.connector&&this._jsPlumb&&!this._jsPlumb.instance.isConnectionBeingDragged()&&(this.connector.setHover(e),t.jsPlumb[e?"addClass":"removeClass"](this.source,this._jsPlumb.instance.hoverSourceClass),t.jsPlumb[e?"addClass":"removeClass"](this.target,this._jsPlumb.instance.hoverTargetClass))},getUuids:function(){return[this.endpoints[0].getUuid(),this.endpoints[1].getUuid()]},getCost:function(){return this._jsPlumb.cost},setCost:function(t){this._jsPlumb.cost=t},isDirected:function(){return!0===this._jsPlumb.directed},getConnector:function(){return this.connector},prepareConnector:function(t,e){var s,o={_jsPlumb:this._jsPlumb.instance,cssClass:this._jsPlumb.params.cssClass,container:this._jsPlumb.params.container,"pointer-events":this._jsPlumb.params["pointer-events"]},r=this._jsPlumb.instance.getRenderMode();return n.isString(t)?s=i(this._jsPlumb.instance,r,t,o,this):n.isArray(t)&&(s=1==t.length?i(this._jsPlumb.instance,r,t[0],o,this):i(this._jsPlumb.instance,r,t[0],n.merge(t[1],o),this)),null!=e&&(s.typeId=e),s},setPreparedConnector:function(t,e,n,i){var s,o="";if(null!=this.connector&&(o=(s=this.connector).getClass(),this.connector.cleanup(),this.connector.destroy()),this.connector=t,i&&this.cacheTypeItem("connector",t,i),this.canvas=this.connector.canvas,this.bgCanvas=this.connector.bgCanvas,this.addClass(o),this.canvas&&(this.canvas._jsPlumb=this),this.bgCanvas&&(this.bgCanvas._jsPlumb=this),null!=s)for(var r=this.getOverlays(),a=0;a<r.length;a++)r[a].transfer&&r[a].transfer(this.connector);n||this.setListenerComponent(this.connector),e||this.repaint()},setConnector:function(t,e,n,i){var s=this.prepareConnector(t,i);this.setPreparedConnector(s,e,n,i)},paint:function(t){if(!this._jsPlumb.instance.isSuspendDrawing()&&this._jsPlumb.visible){var e=(t=t||{}).timestamp,n=this.targetId,i=this.sourceId;if(null==e||e!=this._jsPlumb.lastPaintedAt){var s=this._jsPlumb.instance.updateOffset({elId:i}).o,o=this._jsPlumb.instance.updateOffset({elId:n}).o,r=this.endpoints[0],a=this.endpoints[1],l=r.anchor.getCurrentLocation({xy:[s.left,s.top],wh:[s.width,s.height],element:r,timestamp:e}),u=a.anchor.getCurrentLocation({xy:[o.left,o.top],wh:[o.width,o.height],element:a,timestamp:e});this.connector.resetBounds(),this.connector.compute({sourcePos:l,targetPos:u,sourceEndpoint:this.endpoints[0],targetEndpoint:this.endpoints[1],lineWidth:this._jsPlumb.paintStyleInUse.lineWidth,sourceInfo:s,targetInfo:o});var c={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};for(var h in this._jsPlumb.overlays)if(this._jsPlumb.overlays.hasOwnProperty(h)){var d=this._jsPlumb.overlays[h];d.isVisible()&&(this._jsPlumb.overlayPlacements[h]=d.draw(this.connector,this._jsPlumb.paintStyleInUse,this.getAbsoluteOverlayPosition(d)),c.minX=Math.min(c.minX,this._jsPlumb.overlayPlacements[h].minX),c.maxX=Math.max(c.maxX,this._jsPlumb.overlayPlacements[h].maxX),c.minY=Math.min(c.minY,this._jsPlumb.overlayPlacements[h].minY),c.maxY=Math.max(c.maxY,this._jsPlumb.overlayPlacements[h].maxY))}var p=parseFloat(this._jsPlumb.paintStyleInUse.lineWidth||1)/2,f=parseFloat(this._jsPlumb.paintStyleInUse.lineWidth||0),m={xmin:Math.min(this.connector.bounds.minX-(p+f),c.minX),ymin:Math.min(this.connector.bounds.minY-(p+f),c.minY),xmax:Math.max(this.connector.bounds.maxX+(p+f),c.maxX),ymax:Math.max(this.connector.bounds.maxY+(p+f),c.maxY)};for(var g in this.connector.paint(this._jsPlumb.paintStyleInUse,null,m),this._jsPlumb.overlays)if(this._jsPlumb.overlays.hasOwnProperty(g)){var v=this._jsPlumb.overlays[g];v.isVisible()&&v.paint(this._jsPlumb.overlayPlacements[g],m)}}this._jsPlumb.lastPaintedAt=e}},repaint:function(t){t=t||{},this.paint({elId:this.sourceId,recalc:!(!1===t.recalc),timestamp:t.timestamp})},prepareEndpoint:function(t,n,i,o,r,a,l,u){var c;if(o)i.endpoints[r]=o,o.addConnection(i);else{a.endpoints||(a.endpoints=[null,null]);var h=a.endpoints[r]||a.endpoint||t.Defaults.Endpoints[r]||jsPlumb.Defaults.Endpoints[r]||t.Defaults.Endpoint||jsPlumb.Defaults.Endpoint;a.endpointStyles||(a.endpointStyles=[null,null]),a.endpointHoverStyles||(a.endpointHoverStyles=[null,null]);var d=a.endpointStyles[r]||a.endpointStyle||t.Defaults.EndpointStyles[r]||jsPlumb.Defaults.EndpointStyles[r]||t.Defaults.EndpointStyle||jsPlumb.Defaults.EndpointStyle;null==d.fillStyle&&null!=a.paintStyle&&(d.fillStyle=a.paintStyle.strokeStyle),null==d.outlineColor&&null!=a.paintStyle&&(d.outlineColor=a.paintStyle.outlineColor),null==d.outlineWidth&&null!=a.paintStyle&&(d.outlineWidth=a.paintStyle.outlineWidth);var p=a.endpointHoverStyles[r]||a.endpointHoverStyle||t.Defaults.EndpointHoverStyles[r]||jsPlumb.Defaults.EndpointHoverStyles[r]||t.Defaults.EndpointHoverStyle||jsPlumb.Defaults.EndpointHoverStyle;null!=a.hoverPaintStyle&&(null==p&&(p={}),null==p.fillStyle&&(p.fillStyle=a.hoverPaintStyle.strokeStyle));var f=a.anchors?a.anchors[r]:a.anchor?a.anchor:s(t.Defaults.Anchors[r],u,t)||s(e.Defaults.Anchors[r],u,t)||s(t.Defaults.Anchor,u,t)||s(e.Defaults.Anchor,u,t);c=n({paintStyle:d,hoverPaintStyle:p,endpoint:h,connections:[i],uuid:a.uuids?a.uuids[r]:null,anchor:f,source:l,scope:a.scope,reattach:a.reattach||t.Defaults.ReattachConnections,detachable:a.detachable||t.Defaults.ConnectionsDetachable}),i.endpoints[r]=c,!1===a.drawEndpoints&&c.setVisible(!1,!0,!0)}return c}})}.call(this),function(){"use strict";var t=this.jsPlumbUtil,e=this.jsPlumb;e.AnchorManager=function(n){var i={},s={},o={},r={},a="identity",l=["left","top","right","bottom"],u={},c=this,h={},d=n.jsPlumbInstance,p={},f=function(t,e,n,i,s,o){if(t===e)return{orientation:a,a:["top","top"]};var r=Math.atan2(i.centery-n.centery,i.centerx-n.centerx),u=Math.atan2(n.centery-i.centery,n.centerx-i.centerx),c=[],h={};!function(t,e){for(var n=0;n<t.length;n++)h[t[n]]={left:[e[n].left,e[n].centery],right:[e[n].right,e[n].centery],top:[e[n].centerx,e[n].top],bottom:[e[n].centerx,e[n].bottom]}}(["source","target"],[n,i]);for(var d=0;d<l.length;d++)for(var p=0;p<l.length;p++)d!=p&&c.push({source:l[d],target:l[p],dist:Biltong.lineLength(h.source[l[d]],h.target[l[p]])});c.sort((function(t,e){return t.dist<e.dist?-1:t.dist>e.dist?1:0}));for(var f=c[0].source,m=c[0].target,g=0;g<c.length&&(f=!s.isContinuous||s.isEdgeSupported(c[g].source)?c[g].source:null,m=!o.isContinuous||o.isEdgeSupported(c[g].target)?c[g].target:null,null==f||null==m);g++);return{a:[f,m],theta:r,theta2:u}},m=function(t){return function(e,n){return!1===(t?e[0][0]<n[0][0]:e[0][0]>n[0][0])?-1:1}},g={top:function(t,e){return t[0]>e[0]?1:-1},right:m(!0),bottom:m(!0),left:function(t,e){return(t[0][0]<0?-Math.PI-t[0][0]:Math.PI-t[0][0])>(e[0][0]<0?-Math.PI-e[0][0]:Math.PI-e[0][0])||t[0][1]>e[0][1]?1:-1}},v=function(t,e){var n=d.getCachedData(t),i=n.s,o=n.o,a=function(e,n,i,o,a,l,u){if(o.length>0)for(var c=function(t,e,n,i,s,o,r){for(var a=[],l=e[s?0:1]/(i.length+1),u=0;u<i.length;u++){var c=(u+1)*l,h=o*e[s?1:0];r&&(c=e[s?0:1]-c);var d=s?c:h,p=n[0]+d,f=d/e[0],m=s?h:c,g=n[1]+m,v=m/e[1];a.push([p,g,f,v,i[u][1],i[u][2]])}return a}(0,n,i,(v=g[e],o.sort(v)),a,l,"right"===e||"top"===e),h=function(t,e){s[t.id]=[e[0],e[1],e[2],e[3]],r[t.id]=u},d=0;d<c.length;d++){var p=c[d][4],f=p.endpoints[0].elementId===t,m=p.endpoints[1].elementId===t;f?h(p.endpoints[0],c[d]):m&&h(p.endpoints[1],c[d])}var v};a("bottom",i,[o.left,o.top],e.bottom,!0,1,[0,1]),a("top",i,[o.left,o.top],e.top,!0,0,[0,-1]),a("left",i,[o.left,o.top],e.left,!1,0,[-1,0]),a("right",i,[o.left,o.top],e.right,!1,1,[1,0])};this.reset=function(){i={},u={},h={}},this.addFloatingConnection=function(t,e){p[t]=e},this.removeFloatingConnection=function(t){delete p[t]},this.newConnection=function(n){var i=n.sourceId,s=n.targetId,o=n.endpoints,r=!0,a=function(a,l,c,h,d){i==s&&c.isContinuous&&(n._jsPlumb.instance.removeElement(o[1].canvas),r=!1),t.addToList(u,h,[d,l,c.constructor==e.DynamicAnchor])};a(0,o[0],o[0].anchor,s,n),r&&a(0,o[1],o[1].anchor,i,n)};var b=function(e){!function(e,n){if(e){var i=function(t){return t[4]==n};t.removeWithFunction(e.top,i),t.removeWithFunction(e.left,i),t.removeWithFunction(e.bottom,i),t.removeWithFunction(e.right,i)}}(h[e.elementId],e.id)};this.connectionDetached=function(n){var i=n.connection||n,s=n.sourceId,o=n.targetId,r=i.endpoints,a=function(n,i,s,o,r){null!=s&&s.constructor==e.FloatingAnchor||t.removeWithFunction(u[o],(function(t){return t[0].id==r.id}))};a(0,r[1],r[1].anchor,s,i),a(0,r[0],r[0].anchor,o,i),b(i.endpoints[0]),b(i.endpoints[1]),c.redraw(i.sourceId),c.redraw(i.targetId)},this.add=function(e,n){t.addToList(i,n,e)},this.changeId=function(t,e){u[e]=u[t],i[e]=i[t],delete u[t],delete i[t]},this.getConnectionsFor=function(t){return u[t]||[]},this.getEndpointsFor=function(t){return i[t]||[]},this.deleteEndpoint=function(e){t.removeWithFunction(i[e.elementId],(function(t){return t.id==e.id})),b(e)},this.clearFor=function(t){delete i[t],i[t]=[]};var y=function(e,i,s,o,r,a,l,u,c,h,d,p){var f,m,g=-1,v=o.endpoints[l],b=v.id,y=[1,0][l],P=[[i,s],o,r,a,b],_=e[c],x=v._continuousAnchorEdge?e[v._continuousAnchorEdge]:null;if(x){var C=t.findWithFunction(x,(function(t){return t[4]==b}));if(-1!=C)for(x.splice(C,1),f=0;f<x.length;f++)m=x[f][1],t.addWithFunction(d,m,(function(t){return t.id==m.id})),t.addWithFunction(p,x[f][1].endpoints[l],(function(t){return t.id==m.endpoints[l].id})),t.addWithFunction(p,x[f][1].endpoints[y],(function(t){return t.id==m.endpoints[y].id}))}for(f=0;f<_.length;f++)m=_[f][1],1==n.idx&&_[f][3]===a&&-1==g&&(g=f),t.addWithFunction(d,m,(function(t){return t.id==m.id})),t.addWithFunction(p,_[f][1].endpoints[l],(function(t){return t.id==m.endpoints[l].id})),t.addWithFunction(p,_[f][1].endpoints[y],(function(t){return t.id==m.endpoints[y].id}));var j=u?-1!=g?g:0:_.length;_.splice(j,0,P),v._continuousAnchorEdge=c};this.updateOtherEndpoint=function(n,i,s,o){var r=t.findWithFunction(u[n],(function(t){return t[0].id===o.id})),a=t.findWithFunction(u[i],(function(t){return t[0].id===o.id}));-1!=r&&(u[n][r][0]=o,u[n][r][1]=o.endpoints[1],u[n][r][2]=o.endpoints[1].anchor.constructor==e.DynamicAnchor),a>-1&&(u[i].splice(a,1),t.addToList(u,s,[o,o.endpoints[0],o.endpoints[0].anchor.constructor==e.DynamicAnchor])),o.updateConnectedClass()},this.sourceChanged=function(n,i,s){if(n!==i){t.removeWithFunction(u[n],(function(t){return t[0].id===s.id}));var o=t.findWithFunction(u[s.targetId],(function(t){return t[0].id===s.id}));o>-1&&(u[s.targetId][o][0]=s,u[s.targetId][o][1]=s.endpoints[0],u[s.targetId][o][2]=s.endpoints[0].anchor.constructor==e.DynamicAnchor),t.addToList(u,i,[s,s.endpoints[1],s.endpoints[1].anchor.constructor==e.DynamicAnchor]),s.endpoints[1].anchor.isContinuous&&(s.source===s.target?s._jsPlumb.instance.removeElement(s.endpoints[1].canvas):null==s.endpoints[1].canvas.parentNode&&s._jsPlumb.instance.appendElement(s.endpoints[1].canvas)),s.updateConnectedClass()}},this.rehomeEndpoint=function(e,n,s){var o=i[n]||[],r=d.getId(s);if(r!==n){var a=t.indexOf(o,e);if(a>-1){var l=o.splice(a,1)[0];c.add(l,r)}}for(var u=0;u<e.connections.length;u++)e.connections[u].sourceId==n?(e.connections[u].sourceId=e.elementId,e.connections[u].source=e.element,c.sourceChanged(n,e.elementId,e.connections[u])):e.connections[u].targetId==n&&(e.connections[u].targetId=e.elementId,e.connections[u].target=e.element,c.updateOtherEndpoint(e.connections[u].sourceId,n,e.elementId,e.connections[u]))},this.redraw=function(n,s,o,r,a,l){if(!d.isSuspendDrawing()){var c=i[n]||[],m=u[n]||[],g=[],b=[],P=[];o=o||d.timestamp(),r=r||{left:0,top:0},s&&(s={left:s.left+r.left,top:s.top+r.top});for(var _=d.updateOffset({elId:n,offset:s,recalc:!1,timestamp:o}),x={},C=0;C<m.length;C++){var j=m[C][0],E=j.sourceId,S=j.targetId,D=j.endpoints[0].anchor.isContinuous,w=j.endpoints[1].anchor.isContinuous;if(D||w){var A=E+"_"+S,I=x[A],O=j.sourceId==n?1:0;D&&!h[E]&&(h[E]={top:[],right:[],bottom:[],left:[]}),w&&!h[S]&&(h[S]={top:[],right:[],bottom:[],left:[]}),n!=S&&d.updateOffset({elId:S,timestamp:o}),n!=E&&d.updateOffset({elId:E,timestamp:o});var T=d.getCachedData(S),M=d.getCachedData(E);S==E&&(D||w)?y(h[E],-Math.PI/2,0,j,!1,S,0,!1,"top",0,g,b):(I||(I=f(E,S,M.o,T.o,j.endpoints[0].anchor,j.endpoints[1].anchor),x[A]=I),D&&y(h[E],I.theta,0,j,!1,S,0,!1,I.a[0],0,g,b),w&&y(h[S],I.theta2,-1,j,!0,E,1,!0,I.a[1],0,g,b)),D&&t.addWithFunction(P,E,(function(t){return t===E})),w&&t.addWithFunction(P,S,(function(t){return t===S})),t.addWithFunction(g,j,(function(t){return t.id==j.id})),(D&&0===O||w&&1===O)&&t.addWithFunction(b,j.endpoints[O],(function(t){return t.id==j.endpoints[O].id}))}}for(C=0;C<c.length;C++)0===c[C].connections.length&&c[C].anchor.isContinuous&&(h[n]||(h[n]={top:[],right:[],bottom:[],left:[]}),y(h[n],-Math.PI/2,0,{endpoints:[c[C],c[C]],paint:function(){}},!1,n,0,!1,c[C].anchor.getDefaultFace(),0,g,b),t.addWithFunction(P,n,(function(t){return t===n})));for(C=0;C<P.length;C++)v(P[C],h[P[C]]);for(C=0;C<c.length;C++)c[C].paint({timestamp:o,offset:_,dimensions:_.s,recalc:!0!==l});for(C=0;C<b.length;C++){var k=d.getCachedData(b[C].elementId);b[C].paint({timestamp:o,offset:k,dimensions:k.s})}for(C=0;C<m.length;C++){var L=m[C][1];if(L.anchor.constructor==e.DynamicAnchor){L.paint({elementWithPrecedence:n,timestamp:o}),t.addWithFunction(g,m[C][0],(function(t){return t.id==m[C][0].id}));for(var F=0;F<L.connections.length;F++)L.connections[F]!==m[C][0]&&t.addWithFunction(g,L.connections[F],(function(t){return t.id==L.connections[F].id}))}else L.anchor.constructor==e.Anchor&&t.addWithFunction(g,m[C][0],(function(t){return t.id==m[C][0].id}))}var U=p[n];for(U&&U.paint({timestamp:o,recalc:!1,elId:n}),C=0;C<g.length;C++)g[C].paint({elId:n,timestamp:o,recalc:!1,clearEdits:a})}};var P=function(e){t.EventGenerator.apply(this),this.type="Continuous",this.isDynamic=!0,this.isContinuous=!0;for(var n=e.faces||["top","right","bottom","left"],i=!(!1===e.clockwise),a={},l={top:"bottom",right:"left",left:"right",bottom:"top"},u={top:"right",right:"bottom",left:"top",bottom:"left"},c={top:"left",right:"top",left:"bottom",bottom:"right"},h=i?u:c,d=i?c:u,p=e.cssClass||"",f=0;f<n.length;f++)a[n[f]]=!0;this.getDefaultFace=function(){return 0===n.length?"top":n[0]},this.verifyEdge=function(t){return a[t]?t:a[l[t]]?l[t]:a[h[t]]?h[t]:a[d[t]]?d[t]:t},this.isEdgeSupported=function(t){return!0===a[t]},this.compute=function(t){return o[t.element.id]||s[t.element.id]||[0,0]},this.getCurrentLocation=function(t){return o[t.element.id]||s[t.element.id]||[0,0]},this.getOrientation=function(t){return r[t.id]||[0,0]},this.clearUserDefinedLocation=function(){delete o[e.elementId]},this.setUserDefinedLocation=function(t){o[e.elementId]=t},this.getCssClass=function(){return p}};d.continuousAnchorFactory={get:function(t){return new P(t)},clear:function(t){delete o[t],delete s[t]}}},e.Anchor=function(e){this.x=e.x||0,this.y=e.y||0,this.elementId=e.elementId,this.cssClass=e.cssClass||"",this.userDefinedLocation=null,this.orientation=e.orientation||[0,0],this.lastReturnValue=null,this.offsets=e.offsets||[0,0],this.timestamp=null,t.EventGenerator.apply(this),this.compute=function(t){var e=t.xy,n=t.wh,i=t.timestamp;return t.clearUserDefinedLocation&&(this.userDefinedLocation=null),i&&i===self.timestamp||(null!=this.userDefinedLocation?this.lastReturnValue=this.userDefinedLocation:this.lastReturnValue=[e[0]+this.x*n[0]+this.offsets[0],e[1]+this.y*n[1]+this.offsets[1]],this.timestamp=i),this.lastReturnValue},this.getCurrentLocation=function(t){return null==this.lastReturnValue||null!=t.timestamp&&this.timestamp!=t.timestamp?this.compute(t):this.lastReturnValue}},t.extend(e.Anchor,t.EventGenerator,{equals:function(t){if(!t)return!1;var e=t.getOrientation(),n=this.getOrientation();return this.x==t.x&&this.y==t.y&&this.offsets[0]==t.offsets[0]&&this.offsets[1]==t.offsets[1]&&n[0]==e[0]&&n[1]==e[1]},getUserDefinedLocation:function(){return this.userDefinedLocation},setUserDefinedLocation:function(t){this.userDefinedLocation=t},clearUserDefinedLocation:function(){this.userDefinedLocation=null},getOrientation:function(){return this.orientation},getCssClass:function(){return this.cssClass}}),e.FloatingAnchor=function(t){e.Anchor.apply(this,arguments);var n=t.reference,i=t.referenceCanvas,s=e.getSize(i),o=null,r=null;this.orientation=null,this.x=0,this.y=0,this.isFloating=!0,this.compute=function(t){var e=t.xy,n=[e[0]+s[0]/2,e[1]+s[1]/2];return r=n,n},this.getOrientation=function(t){if(o)return o;var e=n.getOrientation(t);return[0*Math.abs(e[0])*-1,0*Math.abs(e[1])*-1]},this.over=function(t,e){o=t.getOrientation(e)},this.out=function(){o=null},this.getCurrentLocation=function(t){return null==r?this.compute(t):r}},t.extend(e.FloatingAnchor,e.Anchor);var n=function(t,n,i){return t.constructor==e.Anchor?t:n.makeAnchor(t,i,n)};e.DynamicAnchor=function(t){e.Anchor.apply(this,arguments),this.isDynamic=!0,this.anchors=[],this.elementId=t.elementId,this.jsPlumbInstance=t.jsPlumbInstance;for(var i=0;i<t.anchors.length;i++)this.anchors[i]=n(t.anchors[i],this.jsPlumbInstance,this.elementId);this.getAnchors=function(){return this.anchors},this.locked=!1;var s=this.anchors.length>0?this.anchors[0]:null,o=s,r=this,a=function(t,e,n,i,s){var o=i[0]+t.x*s[0],r=i[1]+t.y*s[1],a=i[0]+s[0]/2,l=i[1]+s[1]/2;return Math.sqrt(Math.pow(e-o,2)+Math.pow(n-r,2))+Math.sqrt(Math.pow(a-o,2)+Math.pow(l-r,2))},l=t.selector||function(t,e,n,i,s){for(var o=n[0]+i[0]/2,r=n[1]+i[1]/2,l=-1,u=1/0,c=0;c<s.length;c++){var h=a(s[c],o,r,t,e);h<u&&(l=c+0,u=h)}return s[l]};this.compute=function(t){var e=t.xy,n=t.wh,i=t.txy,a=t.twh;this.timestamp=t.timestamp;var u=r.getUserDefinedLocation();return null!=u?u:(this.locked||null==i||null==a||(t.timestamp=null,s=l(e,n,i,a,this.anchors),this.x=s.x,this.y=s.y,s!=o&&this.fire("anchorChanged",s),o=s),s.compute(t))},this.getCurrentLocation=function(t){return this.getUserDefinedLocation()||(null!=s?s.getCurrentLocation(t):null)},this.getOrientation=function(t){return null!=s?s.getOrientation(t):[0,0]},this.over=function(t,e){null!=s&&s.over(t,e)},this.out=function(){null!=s&&s.out()},this.getCssClass=function(){return s&&s.getCssClass()||""}},t.extend(e.DynamicAnchor,e.Anchor);var i=function(t,n,i,s,o,r){e.Anchors[o]=function(e){var a=e.jsPlumbInstance.makeAnchor([t,n,i,s,0,0],e.elementId,e.jsPlumbInstance);return a.type=o,r&&r(a,e),a}};i(.5,0,0,-1,"TopCenter"),i(.5,1,0,1,"BottomCenter"),i(0,.5,-1,0,"LeftMiddle"),i(1,.5,1,0,"RightMiddle"),i(.5,0,0,-1,"Top"),i(.5,1,0,1,"Bottom"),i(0,.5,-1,0,"Left"),i(1,.5,1,0,"Right"),i(.5,.5,0,0,"Center"),i(1,0,0,-1,"TopRight"),i(1,1,0,1,"BottomRight"),i(0,0,0,-1,"TopLeft"),i(0,1,0,1,"BottomLeft"),e.Defaults.DynamicAnchors=function(t){return t.jsPlumbInstance.makeAnchors(["TopCenter","RightMiddle","BottomCenter","LeftMiddle"],t.elementId,t.jsPlumbInstance)},e.Anchors.AutoDefault=function(t){var n=t.jsPlumbInstance.makeDynamicAnchor(e.Defaults.DynamicAnchors(t));return n.type="AutoDefault",n};var s=function(t,n){e.Anchors[t]=function(e){var i=e.jsPlumbInstance.makeAnchor(["Continuous",{faces:n}],e.elementId,e.jsPlumbInstance);return i.type=t,i}};e.Anchors.Continuous=function(t){return t.jsPlumbInstance.continuousAnchorFactory.get(t)},s("ContinuousLeft",["left"]),s("ContinuousTop",["top"]),s("ContinuousBottom",["bottom"]),s("ContinuousRight",["right"]),i(0,0,0,0,"Assign",(function(t,e){var n=e.position||"Fixed";t.positionFinder=n.constructor==String?e.jsPlumbInstance.AnchorPositionFinders[n]:n,t.constructorParams=e})),jsPlumbInstance.prototype.AnchorPositionFinders={Fixed:function(t,e,n){return[(t.left-e.left)/n[0],(t.top-e.top)/n[1]]},Grid:function(t,e,n,i){var s=t.left-e.left,o=t.top-e.top,r=n[0]/i.grid[0],a=n[1]/i.grid[1],l=Math.floor(s/r),u=Math.floor(o/a);return[(l*r+r/2)/n[0],(u*a+a/2)/n[1]]}},e.Anchors.Perimeter=function(t){var e=(t=t||{}).anchorCount||60,n=t.shape;if(!n)throw new Error("no shape supplied to Perimeter Anchor type");var i=function(){for(var t=.5,n=2*Math.PI/e,i=0,s=[],o=0;o<e;o++){var r=t+t*Math.sin(i),a=t+t*Math.cos(i);s.push([r,a,0,0]),i+=n}return s},s=function(t){for(var n=e/t.length,i=[],s=function(t,s,o,r,a){for(var l=(o-t)/(n=e*a),u=(r-s)/n,c=0;c<n;c++)i.push([t+l*c,s+u*c,0,0])},o=0;o<t.length;o++)s.apply(null,t[o]);return i},o=function(t){for(var e=[],n=0;n<t.length;n++)e.push([t[n][0],t[n][1],t[n][2],t[n][3],1/t.length]);return s(e)},r=function(){return o([[0,0,1,0],[1,0,1,1],[1,1,0,1],[0,1,0,0]])},a={Circle:i,Ellipse:i,Diamond:function(){return o([[.5,0,1,.5],[1,.5,.5,1],[.5,1,0,.5],[0,.5,.5,0]])},Rectangle:r,Square:r,Triangle:function(){return o([[.5,0,1,1],[1,1,0,1],[0,1,.5,0]])},Path:function(t){for(var e=t.points,n=[],i=0,o=0;o<e.length-1;o++){var r=Math.sqrt(Math.pow(e[o][2]-e[o][0])+Math.pow(e[o][3]-e[o][1]));i+=r,n.push([e[o][0],e[o][1],e[o+1][0],e[o+1][1],r])}for(var a=0;a<n.length;a++)n[a][4]=n[a][4]/i;return s(n)}};if(!a[n])throw new Error("Shape ["+n+"] is unknown by Perimeter Anchor type");var l=a[n](t);t.rotation&&(l=function(t,e){for(var n=[],i=e/180*Math.PI,s=0;s<t.length;s++){var o=t[s][0]-.5,r=t[s][1]-.5;n.push([o*Math.cos(i)-r*Math.sin(i)+.5,o*Math.sin(i)+r*Math.cos(i)+.5,t[s][2],t[s][3]])}return n}(l,t.rotation));var u=t.jsPlumbInstance.makeDynamicAnchor(l);return u.type="Perimeter",u}}.call(this),function(){"use strict";var t=this,e=t.jsPlumb,n=t.jsPlumbUtil,i=t.Biltong;e.Segments={AbstractSegment:function(t){this.params=t,this.findClosestPointOnPath=function(t,e){return{d:1/0,x:null,y:null,l:null}},this.getBounds=function(){return{minX:Math.min(t.x1,t.x2),minY:Math.min(t.y1,t.y2),maxX:Math.max(t.x1,t.x2),maxY:Math.max(t.y1,t.y2)}}},Straight:function(t){var n,s,o,r,a,l,u;e.Segments.AbstractSegment.apply(this,arguments);this.type="Straight",this.getLength=function(){return n},this.getGradient=function(){return s},this.getCoordinates=function(){return{x1:r,y1:l,x2:a,y2:u}},this.setCoordinates=function(t){r=t.x1,l=t.y1,a=t.x2,u=t.y2,n=Math.sqrt(Math.pow(a-r,2)+Math.pow(u-l,2)),s=i.gradient({x:r,y:l},{x:a,y:u}),o=-1/s},this.setCoordinates({x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2}),this.getBounds=function(){return{minX:Math.min(r,a),minY:Math.min(l,u),maxX:Math.max(r,a),maxY:Math.max(l,u)}},this.pointOnPath=function(t,e){if(0!==t||e){if(1!=t||e){var s=e?t>0?t:n+t:t*n;return i.pointOnLine({x:r,y:l},{x:a,y:u},s)}return{x:a,y:u}}return{x:r,y:l}},this.gradientAtPoint=function(t){return s},this.pointAlongPathFrom=function(t,e,n){var s=this.pointOnPath(t,n),o=e<=0?{x:r,y:l}:{x:a,y:u};return e<=0&&Math.abs(e)>1&&(e*=-1),i.pointOnLine(s,o,e)};var c=function(t,e,n){return n>=Math.min(t,e)&&n<=Math.max(t,e)},h=function(t,e,n){return Math.abs(n-t)<Math.abs(n-e)?t:e};this.findClosestPointOnPath=function(t,e){var d={d:1/0,x:null,y:null,l:null,x1:r,x2:a,y1:l,y2:u};if(0===s)d.y=l,d.x=c(r,a,t)?t:h(r,a,t);else if(s==1/0||s==-1/0)d.x=r,d.y=c(l,u,e)?e:h(l,u,e);else{var p=l-s*r,f=(e-o*t-p)/(s-o),m=s*f+p;d.x=c(r,a,f)?f:h(r,a,f),d.y=c(l,u,m)?m:h(l,u,m)}var g=i.lineLength([d.x,d.y],[r,l]);return d.d=i.lineLength([t,e],[d.x,d.y]),d.l=g/n,d}},Arc:function(t){e.Segments.AbstractSegment.apply(this,arguments);var n=function(e,n){return i.theta([t.cx,t.cy],[e,n])},s=2*Math.PI;this.radius=t.r,this.anticlockwise=t.ac,this.type="Arc",t.startAngle&&t.endAngle?(this.startAngle=t.startAngle,this.endAngle=t.endAngle,this.x1=t.cx+this.radius*Math.cos(t.startAngle),this.y1=t.cy+this.radius*Math.sin(t.startAngle),this.x2=t.cx+this.radius*Math.cos(t.endAngle),this.y2=t.cy+this.radius*Math.sin(t.endAngle)):(this.startAngle=n(t.x1,t.y1),this.endAngle=n(t.x2,t.y2),this.x1=t.x1,this.y1=t.y1,this.x2=t.x2,this.y2=t.y2),this.endAngle<0&&(this.endAngle+=s),this.startAngle<0&&(this.startAngle+=s),this.segment=i.quadrant([this.x1,this.y1],[this.x2,this.y2]);var o=this.endAngle<this.startAngle?this.endAngle+s:this.endAngle;this.sweep=Math.abs(o-this.startAngle),this.anticlockwise&&(this.sweep=s-this.sweep);var r=2*Math.PI*this.radius,a=this.sweep/s,l=r*a;this.getLength=function(){return l},this.getBounds=function(){return{minX:t.cx-t.r,maxX:t.cx+t.r,minY:t.cy-t.r,maxY:t.cy+t.r}};var u=function(t){var e=Math.floor(t),n=Math.ceil(t);return t-e<1e-10?e:n-t<1e-10?n:t};this.pointOnPath=function(e,n){if(0===e)return{x:this.x1,y:this.y1,theta:this.startAngle};if(1==e)return{x:this.x2,y:this.y2,theta:this.endAngle};n&&(e/=l);var i=function(t,e){if(t.anticlockwise){var n=t.startAngle<t.endAngle?t.startAngle+s:t.startAngle;return n-Math.abs(n-t.endAngle)*e}var i=t.endAngle<t.startAngle?t.endAngle+s:t.endAngle,o=Math.abs(i-t.startAngle);return t.startAngle+o*e}(this,e),o=t.cx+t.r*Math.cos(i),r=t.cy+t.r*Math.sin(i);return{x:u(o),y:u(r),theta:i}},this.gradientAtPoint=function(e,n){var s=this.pointOnPath(e,n),o=i.normal([t.cx,t.cy],[s.x,s.y]);return this.anticlockwise||o!=1/0&&o!=-1/0||(o*=-1),o},this.pointAlongPathFrom=function(e,n,i){var s=this.pointOnPath(e,i),o=n/r*2*Math.PI,a=this.anticlockwise?-1:1,l=s.theta+a*o;return{x:t.cx+this.radius*Math.cos(l),y:t.cy+this.radius*Math.sin(l)}}},Bezier:function(n){this.curve=[{x:n.x1,y:n.y1},{x:n.cp1x,y:n.cp1y},{x:n.cp2x,y:n.cp2y},{x:n.x2,y:n.y2}];e.Segments.AbstractSegment.apply(this,arguments);this.bounds={minX:Math.min(n.x1,n.x2,n.cp1x,n.cp2x),minY:Math.min(n.y1,n.y2,n.cp1y,n.cp2y),maxX:Math.max(n.x1,n.x2,n.cp1x,n.cp2x),maxY:Math.max(n.y1,n.y2,n.cp1y,n.cp2y)},this.type="Bezier";var i=function(e,n,i){return i&&(n=t.jsBezier.locationAlongCurveFrom(e,n>0?0:1,n)),n};this.pointOnPath=function(e,n){return e=i(this.curve,e,n),t.jsBezier.pointOnCurve(this.curve,e)},this.gradientAtPoint=function(e,n){return e=i(this.curve,e,n),t.jsBezier.gradientAtPoint(this.curve,e)},this.pointAlongPathFrom=function(e,n,s){return e=i(this.curve,e,s),t.jsBezier.pointAlongCurveFrom(this.curve,e,n)},this.getLength=function(){return t.jsBezier.getLength(this.curve)},this.getBounds=function(){return this.bounds}}};var s=function(){this.resetBounds=function(){this.bounds={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}},this.resetBounds()};e.Connectors.AbstractConnector=function(t){s.apply(this,arguments);var o=[],r=0,a=[],l=[],u=t.stub||0,c=n.isArray(u)?u[0]:u,h=n.isArray(u)?u[1]:u,d=t.gap||0,p=n.isArray(d)?d[0]:d,f=n.isArray(d)?d[1]:d,m=null,g=null;this.getPath=function(){},this.setPath=function(t){},this.findSegmentForPoint=function(t,e){for(var n={d:1/0,s:null,x:null,y:null,l:null},i=0;i<o.length;i++){var s=o[i].findClosestPointOnPath(t,e);s.d<n.d&&(n.d=s.d,n.l=s.l,n.x=s.x,n.y=s.y,n.s=o[i],n.x1=s.x1,n.x2=s.x2,n.y1=s.y1,n.y2=s.y2,n.index=i)}return n};var v=function(t,e){e&&(t=t>0?t/r:(r+t)/r);for(var n=a.length-1,i=1,s=0;s<a.length;s++)if(a[s][1]>=t){n=s,i=1==t?1:0===t?0:(t-a[s][0])/l[s];break}return{segment:o[n],proportion:i,index:n}};this.setSegments=function(t){m=[],r=0;for(var e=0;e<t.length;e++)m.push(t[e]),r+=t[e].getLength()},this.getLength=function(){return r};var b=function(t){this.lineWidth=t.lineWidth;var e=i.quadrant(t.sourcePos,t.targetPos),n=t.targetPos[0]<t.sourcePos[0],s=t.targetPos[1]<t.sourcePos[1],o=t.lineWidth||1,r=t.sourceEndpoint.anchor.getOrientation(t.sourceEndpoint),a=t.targetEndpoint.anchor.getOrientation(t.targetEndpoint),l=n?t.targetPos[0]:t.sourcePos[0],u=s?t.targetPos[1]:t.sourcePos[1],d=Math.abs(t.targetPos[0]-t.sourcePos[0]),m=Math.abs(t.targetPos[1]-t.sourcePos[1]);if(0===r[0]&&0===r[1]||0===a[0]&&0===a[1]){var g=d>m?0:1,v=[1,0][g];a=[],(r=[])[g]=t.sourcePos[g]>t.targetPos[g]?-1:1,a[g]=t.sourcePos[g]>t.targetPos[g]?1:-1,r[v]=0,a[v]=0}var b=n?d+p*r[0]:p*r[0],y=s?m+p*r[1]:p*r[1],P=n?f*a[0]:d+f*a[0],_=s?f*a[1]:m+f*a[1],x=r[0]*a[0]+r[1]*a[1],C={sx:b,sy:y,tx:P,ty:_,lw:o,xSpan:Math.abs(P-b),ySpan:Math.abs(_-y),mx:(b+P)/2,my:(y+_)/2,so:r,to:a,x:l,y:u,w:d,h:m,segment:e,startStubX:b+r[0]*c,startStubY:y+r[1]*c,endStubX:P+a[0]*h,endStubY:_+a[1]*h,isXGreaterThanStubTimes2:Math.abs(b-P)>c+h,isYGreaterThanStubTimes2:Math.abs(y-_)>c+h,opposite:-1==x,perpendicular:0===x,orthogonal:1==x,sourceAxis:0===r[0]?"y":"x",points:[l,u,d,m,b,y,P,_]};return C.anchorOrientation=C.opposite?"opposite":C.orthogonal?"orthogonal":"perpendicular",C};this.getSegments=function(){return o},this.updateBounds=function(t){var e=t.getBounds();this.bounds.minX=Math.min(this.bounds.minX,e.minX),this.bounds.maxX=Math.max(this.bounds.maxX,e.maxX),this.bounds.minY=Math.min(this.bounds.minY,e.minY),this.bounds.maxY=Math.max(this.bounds.maxY,e.maxY)};return this.pointOnPath=function(t,e){var n=v(t,e);return n.segment&&n.segment.pointOnPath(n.proportion,!1)||[0,0]},this.gradientAtPoint=function(t,e){var n=v(t,e);return n.segment&&n.segment.gradientAtPoint(n.proportion,!1)||0},this.pointAlongPathFrom=function(t,e,n){var i=v(t,n);return i.segment&&i.segment.pointAlongPathFrom(i.proportion,e,!1)||[0,0]},this.compute=function(t){g=b.call(this,t),r=o.length=a.length=l.length=0,this._compute(g,t),this.x=g.points[0],this.y=g.points[1],this.w=g.points[2],this.h=g.points[3],this.segment=g.segment,function(){for(var t=0,e=0;e<o.length;e++){var n=o[e].getLength();l[e]=n/r,a[e]=[t,t+=n/r]}}()},{addSegment:function(t,n,i){if(i.x1!=i.x2||i.y1!=i.y2){var s=new e.Segments[n](i);o.push(s),r+=s.getLength(),t.updateBounds(s)}},prepareCompute:b,sourceStub:c,targetStub:h,maxStub:Math.max(c,h),sourceGap:p,targetGap:f,maxGap:Math.max(p,f)}},n.extend(e.Connectors.AbstractConnector,s);var o=e.Connectors.Straight=function(){this.type="Straight";var t=e.Connectors.AbstractConnector.apply(this,arguments);this._compute=function(e,n){t.addSegment(this,"Straight",{x1:e.sx,y1:e.sy,x2:e.startStubX,y2:e.startStubY}),t.addSegment(this,"Straight",{x1:e.startStubX,y1:e.startStubY,x2:e.endStubX,y2:e.endStubY}),t.addSegment(this,"Straight",{x1:e.endStubX,y1:e.endStubY,x2:e.tx,y2:e.ty})}};n.extend(e.Connectors.Straight,e.Connectors.AbstractConnector),e.registerConnectorType(o,"Straight"),e.Endpoints.AbstractEndpoint=function(t){s.apply(this,arguments);var e=this.compute=function(t,e,n,i){var s=this._compute.apply(this,arguments);return this.x=s[0],this.y=s[1],this.w=s[2],this.h=s[3],this.bounds.minX=this.x,this.bounds.minY=this.y,this.bounds.maxX=this.x+this.w,this.bounds.maxY=this.y+this.h,s};return{compute:e,cssClass:t.cssClass}},n.extend(e.Endpoints.AbstractEndpoint,s),e.Endpoints.Dot=function(t){this.type="Dot";e.Endpoints.AbstractEndpoint.apply(this,arguments);t=t||{},this.radius=t.radius||10,this.defaultOffset=.5*this.radius,this.defaultInnerRadius=this.radius/3,this._compute=function(t,e,n,i){this.radius=n.radius||this.radius;var s=t[0]-this.radius,o=t[1]-this.radius,r=2*this.radius,a=2*this.radius;if(n.strokeStyle){var l=n.lineWidth||1;s-=l,o-=l,r+=2*l,a+=2*l}return[s,o,r,a,this.radius]}},n.extend(e.Endpoints.Dot,e.Endpoints.AbstractEndpoint),e.Endpoints.Rectangle=function(t){this.type="Rectangle";e.Endpoints.AbstractEndpoint.apply(this,arguments);t=t||{},this.width=t.width||20,this.height=t.height||20,this._compute=function(t,e,n,i){var s=n.width||this.width,o=n.height||this.height;return[t[0]-s/2,t[1]-o/2,s,o]}},n.extend(e.Endpoints.Rectangle,e.Endpoints.AbstractEndpoint);var r=function(t){e.jsPlumbUIComponent.apply(this,arguments),this._jsPlumb.displayElements=[]};n.extend(r,e.jsPlumbUIComponent,{getDisplayElements:function(){return this._jsPlumb.displayElements},appendDisplayElement:function(t){this._jsPlumb.displayElements.push(t)}}),e.Endpoints.Image=function(i){this.type="Image",r.apply(this,arguments),e.Endpoints.AbstractEndpoint.apply(this,arguments);var s=i.onload,o=i.src||i.url,a=i.cssClass?" "+i.cssClass:"";this._jsPlumb.img=new Image,this._jsPlumb.ready=!1,this._jsPlumb.initialized=!1,this._jsPlumb.deleted=!1,this._jsPlumb.widthToUse=i.width,this._jsPlumb.heightToUse=i.height,this._jsPlumb.endpoint=i.endpoint,this._jsPlumb.img.onload=function(){null!=this._jsPlumb&&(this._jsPlumb.ready=!0,this._jsPlumb.widthToUse=this._jsPlumb.widthToUse||this._jsPlumb.img.width,this._jsPlumb.heightToUse=this._jsPlumb.heightToUse||this._jsPlumb.img.height,s&&s(this))}.bind(this),this._jsPlumb.endpoint.setImage=function(t,e){var n=t.constructor==String?t:t.src;s=e,this._jsPlumb.img.src=n,null!=this.canvas&&this.canvas.setAttribute("src",this._jsPlumb.img.src)}.bind(this),this._jsPlumb.endpoint.setImage(o,s),this._compute=function(t,e,n,i){return this.anchorPoint=t,this._jsPlumb.ready?[t[0]-this._jsPlumb.widthToUse/2,t[1]-this._jsPlumb.heightToUse/2,this._jsPlumb.widthToUse,this._jsPlumb.heightToUse]:[0,0,0,0]},this.canvas=jsPlumb.createElement("img",{position:"absolute",margin:0,padding:0,outline:0},this._jsPlumb.instance.endpointClass+a),this._jsPlumb.widthToUse&&this.canvas.setAttribute("width",this._jsPlumb.widthToUse),this._jsPlumb.heightToUse&&this.canvas.setAttribute("height",this._jsPlumb.heightToUse),this._jsPlumb.instance.appendElement(this.canvas),this.actuallyPaint=function(t,e,i){if(!this._jsPlumb.deleted){this._jsPlumb.initialized||(this.canvas.setAttribute("src",this._jsPlumb.img.src),this.appendDisplayElement(this.canvas),this._jsPlumb.initialized=!0);var s=this.anchorPoint[0]-this._jsPlumb.widthToUse/2,o=this.anchorPoint[1]-this._jsPlumb.heightToUse/2;n.sizeElement(this.canvas,s,o,this._jsPlumb.widthToUse,this._jsPlumb.heightToUse)}},this.paint=function(e,n){null!=this._jsPlumb&&(this._jsPlumb.ready?this.actuallyPaint(e,n):t.setTimeout(function(){this.paint(e,n)}.bind(this),200))}},n.extend(e.Endpoints.Image,[r,e.Endpoints.AbstractEndpoint],{cleanup:function(t){t&&(this._jsPlumb.deleted=!0,this.canvas&&this.canvas.parentNode.removeChild(this.canvas),this.canvas=null)}}),e.Endpoints.Blank=function(t){e.Endpoints.AbstractEndpoint.apply(this,arguments);this.type="Blank",r.apply(this,arguments),this._compute=function(t,e,n,i){return[t[0],t[1],10,0]};var i=t.cssClass?" "+t.cssClass:"";this.canvas=jsPlumb.createElement("div",{display:"block",width:"1px",height:"1px",background:"transparent",position:"absolute"},this._jsPlumb.instance.endpointClass+i),this._jsPlumb.instance.appendElement(this.canvas),this.paint=function(t,e){n.sizeElement(this.canvas,this.x,this.y,this.w,this.h)}},n.extend(e.Endpoints.Blank,[e.Endpoints.AbstractEndpoint,r],{cleanup:function(){this.canvas&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas)}}),e.Endpoints.Triangle=function(t){this.type="Triangle",e.Endpoints.AbstractEndpoint.apply(this,arguments),(t=t||{}).width=t.width||55,t.height=t.height||55,this.width=t.width,this.height=t.height,this._compute=function(t,e,n,i){var s=n.width||self.width,o=n.height||self.height;return[t[0]-s/2,t[1]-o/2,s,o]}};var a=e.Overlays.AbstractOverlay=function(t){this.visible=!0,this.isAppendedAtTopLevel=!0,this.component=t.component,this.loc=null==t.location?.5:t.location,this.endpointLoc=null==t.endpointLocation?[.5,.5]:t.endpointLocation};a.prototype={cleanup:function(t){t&&(this.component=null,this.canvas=null,this.endpointLoc=null)},reattach:function(t){},setVisible:function(t){this.visible=t,this.component.repaint()},isVisible:function(){return this.visible},hide:function(){this.setVisible(!1)},show:function(){this.setVisible(!0)},incrementLocation:function(t){this.loc+=t,this.component.repaint()},setLocation:function(t){this.loc=t,this.component.repaint()},getLocation:function(){return this.loc},updateFrom:function(){}},e.Overlays.Arrow=function(t){this.type="Arrow",a.apply(this,arguments),this.isAppendedAtTopLevel=!1,t=t||{},this.length=t.length||20,this.width=t.width||20,this.id=t.id;var e=(t.direction||1)<0?-1:1,s=t.paintStyle||{lineWidth:1},o=t.foldback||.623;this.computeMaxSize=function(){return 1.5*self.width},this.draw=function(t,r){var a,l,u,c;if(t.pointAlongPathFrom){if(n.isString(this.loc)||this.loc>1||this.loc<0){var h=parseInt(this.loc,10),d=this.loc<0?1:0;a=t.pointAlongPathFrom(d,h,!1),l=t.pointAlongPathFrom(d,h-e*this.length/2,!1),u=i.pointOnLine(a,l,this.length)}else if(1==this.loc){if(a=t.pointOnPath(this.loc),l=t.pointAlongPathFrom(this.loc,-this.length),u=i.pointOnLine(a,l,this.length),-1==e){var p=u;u=a,a=p}}else if(0===this.loc){if(u=t.pointOnPath(this.loc),l=t.pointAlongPathFrom(this.loc,this.length),a=i.pointOnLine(u,l,this.length),-1==e){var f=u;u=a,a=f}}else a=t.pointAlongPathFrom(this.loc,e*this.length/2),l=t.pointOnPath(this.loc),u=i.pointOnLine(a,l,this.length);var m={hxy:a,tail:c=i.perpendicularLineTo(a,u,this.width),cxy:i.pointOnLine(a,u,o*this.length)},g=s.strokeStyle||r.strokeStyle,v=s.fillStyle||r.strokeStyle;return{component:t,d:m,lineWidth:s.lineWidth||r.lineWidth,strokeStyle:g,fillStyle:v,minX:Math.min(a.x,c[0].x,c[1].x),maxX:Math.max(a.x,c[0].x,c[1].x),minY:Math.min(a.y,c[0].y,c[1].y),maxY:Math.max(a.y,c[0].y,c[1].y)}}return{component:t,minX:0,maxX:0,minY:0,maxY:0}}},n.extend(e.Overlays.Arrow,a,{updateFrom:function(t){this.length=t.length||this.length,this.width=t.width||this.width,this.direction=null!=t.direction?t.direction:this.direction,this.foldback=t.foldback||this.foldback}}),e.Overlays.PlainArrow=function(t){t=t||{};var n=e.extend(t,{foldback:1});e.Overlays.Arrow.call(this,n),this.type="PlainArrow"},n.extend(e.Overlays.PlainArrow,e.Overlays.Arrow),e.Overlays.Diamond=function(t){var n=(t=t||{}).length||40,i=jsPlumb.extend(t,{length:n/2,foldback:2});e.Overlays.Arrow.call(this,i),this.type="Diamond"},n.extend(e.Overlays.Diamond,e.Overlays.Arrow);var l=function(t,e){return(null==t._jsPlumb.cachedDimensions||e)&&(t._jsPlumb.cachedDimensions=t.getDimensions()),t._jsPlumb.cachedDimensions},u=function(t){e.jsPlumbUIComponent.apply(this,arguments),a.apply(this,arguments);var i=this.fire;this.fire=function(){i.apply(this,arguments),this.component&&this.component.fire.apply(this.component,arguments)},this.detached=!1,this.id=t.id,this._jsPlumb.div=null,this._jsPlumb.initialised=!1,this._jsPlumb.component=t.component,this._jsPlumb.cachedDimensions=null,this._jsPlumb.create=t.create,this._jsPlumb.initiallyInvisible=!1===t.visible,this.getElement=function(){if(null==this._jsPlumb.div){var e=this._jsPlumb.div=jsPlumb.getElement(this._jsPlumb.create(this._jsPlumb.component));e.style.position="absolute",e.className=this._jsPlumb.instance.overlayClass+" "+(this.cssClass?this.cssClass:t.cssClass?t.cssClass:""),this._jsPlumb.instance.appendElement(e),this._jsPlumb.instance.getId(e),this.canvas=e;var n="translate(-50%, -50%)";e.style.webkitTransform=n,e.style.mozTransform=n,e.style.msTransform=n,e.style.oTransform=n,e.style.transform=n,e._jsPlumb=this,!1===t.visible&&(e.style.display="none")}return this._jsPlumb.div},this.draw=function(t,e,i){var s=l(this);if(null!=s&&2==s.length){var o={x:0,y:0};if(i)o={x:i[0],y:i[1]};else if(t.pointOnPath){var r=this.loc,a=!1;(n.isString(this.loc)||this.loc<0||this.loc>1)&&(r=parseInt(this.loc,10),a=!0),o=t.pointOnPath(r,a)}else{var u=this.loc.constructor==Array?this.loc:this.endpointLoc;o={x:u[0]*t.w,y:u[1]*t.h}}var c=o.x-s[0]/2,h=o.y-s[1]/2;return{component:t,d:{minx:c,miny:h,td:s,cxy:o},minX:c,maxX:c+s[0],minY:h,maxY:h+s[1]}}return{minX:0,maxX:0,minY:0,maxY:0}}};n.extend(u,[e.jsPlumbUIComponent,a],{getDimensions:function(){return n.oldIE?e.getSize(this.getElement()):[1,1]},setVisible:function(t){this._jsPlumb.div&&(this._jsPlumb.div.style.display=t?"block":"none",t&&this._jsPlumb.initiallyInvisible&&(l(this,!0),this.component.repaint(),this._jsPlumb.initiallyInvisible=!1))},clearCachedDimensions:function(){this._jsPlumb.cachedDimensions=null},cleanup:function(t){t?null!=this._jsPlumb.div&&(this._jsPlumb.div._jsPlumb=null,this._jsPlumb.instance.removeElement(this._jsPlumb.div)):(this._jsPlumb&&this._jsPlumb.div&&this._jsPlumb.div.parentNode&&this._jsPlumb.div.parentNode.removeChild(this._jsPlumb.div),this.detached=!0)},reattach:function(t){null!=this._jsPlumb.div&&t.getContainer().appendChild(this._jsPlumb.div),this.detached=!1},computeMaxSize:function(){var t=l(this);return Math.max(t[0],t[1])},paint:function(t,e){this._jsPlumb.initialised||(this.getElement(),t.component.appendDisplayElement(this._jsPlumb.div),this._jsPlumb.initialised=!0,this.detached&&this._jsPlumb.div.parentNode.removeChild(this._jsPlumb.div)),this._jsPlumb.div.style.left=t.component.x+t.d.minx+"px",this._jsPlumb.div.style.top=t.component.y+t.d.miny+"px"}}),e.Overlays.Custom=function(t){this.type="Custom",u.apply(this,arguments)},n.extend(e.Overlays.Custom,u),e.Overlays.GuideLines=function(){var t=this;t.length=50,t.lineWidth=5,this.type="GuideLines",a.apply(this,arguments),e.jsPlumbUIComponent.apply(this,arguments),this.draw=function(e,n){var s=e.pointAlongPathFrom(t.loc,t.length/2),o=e.pointOnPath(t.loc),r=i.pointOnLine(s,o,t.length),a=i.perpendicularLineTo(s,r,40),l=i.perpendicularLineTo(r,s,20);return{connector:e,head:s,tail:r,headLine:l,tailLine:a,minX:Math.min(s.x,r.x,l[0].x,l[1].x),minY:Math.min(s.y,r.y,l[0].y,l[1].y),maxX:Math.max(s.x,r.x,l[0].x,l[1].x),maxY:Math.max(s.y,r.y,l[0].y,l[1].y)}}},e.Overlays.Label=function(t){this.labelStyle=t.labelStyle;this.cssClass=null!=this.labelStyle?this.labelStyle.cssClass:null;var n=e.extend({create:function(){return jsPlumb.createElement("div")}},t);if(e.Overlays.Custom.call(this,n),this.type="Label",this.label=t.label||"",this.labelText=null,this.labelStyle){var i=this.getElement();if(this.labelStyle.font=this.labelStyle.font||"12px sans-serif",i.style.font=this.labelStyle.font,i.style.color=this.labelStyle.color||"black",this.labelStyle.fillStyle&&(i.style.background=this.labelStyle.fillStyle),this.labelStyle.borderWidth>0){var s=this.labelStyle.borderStyle?this.labelStyle.borderStyle:"black";i.style.border=this.labelStyle.borderWidth+"px solid "+s}this.labelStyle.padding&&(i.style.padding=this.labelStyle.padding)}},n.extend(e.Overlays.Label,e.Overlays.Custom,{cleanup:function(t){t&&(this.div=null,this.label=null,this.labelText=null,this.cssClass=null,this.labelStyle=null)},getLabel:function(){return this.label},setLabel:function(t){this.label=t,this.labelText=null,this.clearCachedDimensions(),this.update(),this.component.repaint()},getDimensions:function(){return this.update(),u.prototype.getDimensions.apply(this,arguments)},update:function(){if("function"==typeof this.label){var t=this.label(this);this.getElement().innerHTML=t.replace(/\r\n/g,"<br/>")}else null==this.labelText&&(this.labelText=this.label,this.getElement().innerHTML=this.labelText.replace(/\r\n/g,"<br/>"))},updateFrom:function(t){t.label&&this.setLabel(t.label)}})}.call(this),function(){"use strict";var t=this,e=t.jsPlumb;e.extend(t.jsPlumbInstance.prototype,{getEventManager:function(){return(n=(e=this)._mottle)||(n=e._mottle=new t.Mottle),n;var e,n},on:function(t,e,n){return this.getEventManager().on.apply(this,arguments),this},off:function(t,e,n){return this.getEventManager().off.apply(this,arguments),this}})}.call(this),function(){"use strict";var t=this.jsPlumb,e=function(e){this.type="Flowchart",(e=e||{}).stub=null==e.stub?30:e.stub;var n,i=t.Connectors.AbstractConnector.apply(this,arguments),s=null==e.midpoint?.5:e.midpoint,o=!0===e.alwaysRespectStubs,r=null,a=null,l=null,u=null!=e.cornerRadius?e.cornerRadius:0,c=function(t){return t<0?-1:0===t?0:1},h=function(t,e,n,i){if(a!=e||l!=n){var s=null==a?i.sx:a,o=null==l?i.sy:l,r=s==e?"v":"h",u=c(e-s),h=c(n-o);a=e,l=n,t.push([s,o,e,n,r,u,h])}},d=function(t){return Math.sqrt(Math.pow(t[0]-t[2],2)+Math.pow(t[1]-t[3],2))},p=function(t){var e=[];return e.push.apply(e,t),e},f=function(t,e,n){for(var s,o=null,r=0;r<e.length-1;r++){if(o=o||p(e[r]),s=p(e[r+1]),u>0&&o[4]!=s[4]){var a=Math.min(u,d(o),d(s));o[2]-=o[5]*a,o[3]-=o[6]*a,s[0]+=s[5]*a,s[1]+=s[6]*a;var l=o[6]==s[5]&&1==s[5]||o[6]==s[5]&&0===s[5]&&o[5]!=s[6]||o[6]==s[5]&&-1==s[5],c=(s[1]>o[3]?1:-1)==(s[0]>o[2]?1:-1),h=c&&l||!c&&!l?s[0]:o[2],f=c&&l||!c&&!l?o[3]:s[1];i.addSegment(t,"Straight",{x1:o[0],y1:o[1],x2:o[2],y2:o[3]}),i.addSegment(t,"Arc",{r:a,x1:o[2],y1:o[3],x2:s[0],y2:s[1],cx:h,cy:f,ac:l})}else{var m=o[2]==o[0]?0:o[2]>o[0]?n.lw/2:-n.lw/2,g=o[3]==o[1]?0:o[3]>o[1]?n.lw/2:-n.lw/2;i.addSegment(t,"Straight",{x1:o[0]-m,y1:o[1]-g,x2:o[2]+m,y2:o[3]+g})}o=s}null!=s&&i.addSegment(t,"Straight",{x1:s[0],y1:s[1],x2:s[2],y2:s[3]})};this.setSegments=function(t){r=t},this.isEditable=function(){return!0},this.getOriginalSegments=function(){return r||n},this._compute=function(t,e){if(e.clearEdits&&(r=null),null==r){n=[],a=null,l=null;var u=t.startStubX+(t.endStubX-t.startStubX)*s,c=t.startStubY+(t.endStubY-t.startStubY)*s,d={x:[0,1],y:[1,0]},p=function(){return[t.startStubX,t.startStubY,t.endStubX,t.endStubY]},m={perpendicular:p,orthogonal:p,opposite:function(e){var n=t,i="x"==e?0:1;return!o&&{x:function(){return 1==n.so[i]&&(n.startStubX>n.endStubX&&n.tx>n.startStubX||n.sx>n.endStubX&&n.tx>n.sx)||-1==n.so[i]&&(n.startStubX<n.endStubX&&n.tx<n.startStubX||n.sx<n.endStubX&&n.tx<n.sx)},y:function(){return 1==n.so[i]&&(n.startStubY>n.endStubY&&n.ty>n.startStubY||n.sy>n.endStubY&&n.ty>n.sy)||-1==n.so[i]&&(n.startStubY<n.endStubY&&n.ty<n.startStubY||n.sy<n.endStubY&&n.ty<n.sy)}}[e]()?{x:[(t.sx+t.tx)/2,t.startStubY,(t.sx+t.tx)/2,t.endStubY],y:[t.startStubX,(t.sy+t.ty)/2,t.endStubX,(t.sy+t.ty)/2]}[e]:[t.startStubX,t.startStubY,t.endStubX,t.endStubY]}},g={perpendicular:function(e){var n=t,i={x:[[n.startStubX,n.endStubX],null,[n.endStubX,n.startStubX]],y:[[n.startStubY,n.endStubY],null,[n.endStubY,n.startStubY]]},s={x:[[u,n.startStubY],[u,n.endStubY]],y:[[n.startStubX,c],[n.endStubX,c]]},o={x:[[n.endStubX,n.startStubY]],y:[[n.startStubX,n.endStubY]]},r={x:[[n.startStubX,n.endStubY],[n.endStubX,n.endStubY]],y:[[n.endStubX,n.startStubY],[n.endStubX,n.endStubY]]},a={x:[[n.startStubX,c],[n.endStubX,c],[n.endStubX,n.endStubY]],y:[[u,n.startStubY],[u,n.endStubY],[n.endStubX,n.endStubY]]},l={x:[n.startStubY,n.endStubY],y:[n.startStubX,n.endStubX]},h=d[e][0],p=d[e][1],f=n.so[h]+1,m=n.to[p]+1,g=-1==n.to[p]&&l[e][1]<l[e][0]||1==n.to[p]&&l[e][1]>l[e][0],v=i[e][f][0],b=i[e][f][1],y={x:[[[1,2,3,4],null,[2,1,4,3]],null,[[4,3,2,1],null,[3,4,1,2]]],y:[[[3,2,1,4],null,[2,3,4,1]],null,[[4,1,2,3],null,[1,4,3,2]]]}[e][f][m];return n.segment==y[3]||n.segment==y[2]&&g?s[e]:n.segment==y[2]&&b<v?o[e]:n.segment==y[2]&&b>=v||n.segment==y[1]&&!g?a[e]:n.segment==y[0]||n.segment==y[1]&&g?r[e]:void 0},orthogonal:function(e,n,i,s,o){var r=t,a={x:-1==r.so[0]?Math.min(n,s):Math.max(n,s),y:-1==r.so[1]?Math.min(n,s):Math.max(n,s)}[e];return{x:[[a,i],[a,o],[s,o]],y:[[i,a],[o,a],[o,s]]}[e]},opposite:function(n,s,o,r){var a=t,l={x:"y",y:"x"}[n],h={x:"height",y:"width"}[n],d=a["is"+n.toUpperCase()+"GreaterThanStubTimes2"];if(e.sourceEndpoint.elementId==e.targetEndpoint.elementId){var p=o+(1-e.sourceEndpoint.anchor[l])*e.sourceInfo[h]+i.maxStub;return{x:[[s,p],[r,p]],y:[[p,s],[p,r]]}[n]}return!d||1==a.so[b]&&s>r||-1==a.so[b]&&s<r?{x:[[s,c],[r,c]],y:[[u,s],[u,r]]}[n]:1==a.so[b]&&s<r||-1==a.so[b]&&s>r?{x:[[u,a.sy],[u,a.ty]],y:[[a.sx,c],[a.tx,c]]}[n]:void 0}},v=m[t.anchorOrientation](t.sourceAxis),b="x"==t.sourceAxis?0:1,y="x"==t.sourceAxis?1:0,P=v[b],_=v[y],x=v[b+2],C=v[y+2];h(n,v[0],v[1],t);var j=g[t.anchorOrientation](t.sourceAxis,P,_,x,C);if(j)for(var E=0;E<j.length;E++)h(n,j[E][0],j[E][1],t);h(n,v[2],v[3],t),h(n,t.tx,t.ty,t),f(this,n,t)}else f(this,r,t)},this.getPath=function(){for(var t=null,e=null,i=[],s=r||n,o=0;o<s.length;o++){var a=s[o],l=a[4],u="v"==l?3:2;null!=t&&e===l?t[u]=a[u]:a[0]==a[2]&&a[1]==a[3]||(i.push({start:[a[0],a[1]],end:[a[2],a[3]]}),t=a,e=a[4])}return i},this.setPath=function(t){r=[];for(var e=0;e<t.length;e++){var n=t[e].start[0],i=t[e].start[1],s=t[e].end[0],o=t[e].end[1],a=n==s?"v":"h",l=c(s-n),u=c(o-i);r.push([n,i,s,o,a,l,u])}}};this.jsPlumbUtil.extend(e,t.Connectors.AbstractConnector),t.registerConnectorType(e,"Flowchart")}.call(this),function(){"use strict";var t=this.jsPlumb,e=this.jsPlumbUtil,n=function(e){e=e||{},this.type="StateMachine";var n=t.Connectors.AbstractConnector.apply(this,arguments),i=e.curviness||10,s=e.margin||5,o=e.proximityLimit||80,r=e.orientation&&"clockwise"===e.orientation,a=e.loopbackRadius||25,l=!1!==e.showLoopback;this._compute=function(t,e){var u=Math.abs(e.sourcePos[0]-e.targetPos[0]),c=Math.abs(e.sourcePos[1]-e.targetPos[1]);if(l&&e.sourceEndpoint.elementId===e.targetEndpoint.elementId){var h=e.sourcePos[0],d=e.sourcePos[1]-s,p=h,f=d-a,m=2*a,g=2*a,v=p-a,b=f-a;t.points[0]=v,t.points[1]=b,t.points[2]=m,t.points[3]=g,n.addSegment(this,"Arc",{loopback:!0,x1:h-v+4,y1:d-b,startAngle:0,endAngle:2*Math.PI,r:a,ac:!r,x2:h-v-4,y2:d-b,cx:p-v,cy:f-b})}else{var y=e.sourcePos[0]<e.targetPos[0]?0:u,P=e.sourcePos[1]<e.targetPos[1]?0:c,_=e.sourcePos[0]<e.targetPos[0]?u:0,x=e.sourcePos[1]<e.targetPos[1]?c:0;0===e.sourcePos[2]&&(y-=s),1===e.sourcePos[2]&&(y+=s),0===e.sourcePos[3]&&(P-=s),1===e.sourcePos[3]&&(P+=s),0===e.targetPos[2]&&(_-=s),1===e.targetPos[2]&&(_+=s),0===e.targetPos[3]&&(x-=s),1===e.targetPos[3]&&(x+=s);var C=(y+_)/2,j=(P+x)/2,E=function(t,e,n,i){return t<=n&&i<=e?1:t<=n&&e<=i?2:n<=t&&i>=e?3:4}(y,P,_,x),S=Math.sqrt(Math.pow(_-y,2)+Math.pow(x-P,2)),D=function(t,e,n,i,s,o,r,a,l){return a<=l?[t,e]:1===n?i[3]<=0&&s[3]>=1?[t+(i[2]<.5?-1*o:o),e]:i[2]>=1&&s[2]<=0?[t,e+(i[3]<.5?-1*r:r)]:[t+-1*o,e+-1*r]:2===n?i[3]>=1&&s[3]<=0?[t+(i[2]<.5?-1*o:o),e]:i[2]>=1&&s[2]<=0?[t,e+(i[3]<.5?-1*r:r)]:[t+o,e+-1*r]:3===n?i[3]>=1&&s[3]<=0?[t+(i[2]<.5?-1*o:o),e]:i[2]<=0&&s[2]>=1?[t,e+(i[3]<.5?-1*r:r)]:[t+-1*o,e+-1*r]:4===n?i[3]<=0&&s[3]>=1?[t+(i[2]<.5?-1*o:o),e]:i[2]<=0&&s[2]>=1?[t,e+(i[3]<.5?-1*r:r)]:[t+o,e+-1*r]:void 0}(C,j,E,e.sourcePos,e.targetPos,i,i,S,o);n.addSegment(this,"Bezier",{x1:_,y1:x,x2:y,y2:P,cp1x:D[0],cp1y:D[1],cp2x:D[0],cp2y:D[1]})}}};e.extend(n,t.Connectors.AbstractConnector),t.registerConnectorType(n,"StateMachine")}.call(this),function(){"use strict";var t=this.jsPlumb,e=function(e){e=e||{};var n=t.Connectors.AbstractConnector.apply(this,arguments),i=e.curviness||150,s=10;this.type="Bezier",this.getCurviness=function(){return i},this._findControlPoint=function(t,e,n,o,r,a,l){var u=[];return a[0]!=l[0]||a[1]==l[1]?(0===l[0]?u.push(n[0]<e[0]?t[0]+s:t[0]-s):u.push(t[0]+i*l[0]),0===l[1]?u.push(n[1]<e[1]?t[1]+s:t[1]-s):u.push(t[1]+i*a[1])):(0===a[0]?u.push(e[0]<n[0]?t[0]+s:t[0]-s):u.push(t[0]-i*a[0]),0===a[1]?u.push(e[1]<n[1]?t[1]+s:t[1]-s):u.push(t[1]+i*l[1])),u},this._compute=function(t,e){var i=e.sourcePos,s=e.targetPos,o=Math.abs(i[0]-s[0]),r=Math.abs(i[1]-s[1]),a=i[0]<s[0]?o:0,l=i[1]<s[1]?r:0,u=i[0]<s[0]?0:o,c=i[1]<s[1]?0:r,h=this._findControlPoint([a,l],i,s,e.sourceEndpoint,e.targetEndpoint,t.so,t.to),d=this._findControlPoint([u,c],s,i,e.targetEndpoint,e.sourceEndpoint,t.to,t.so);n.addSegment(this,"Bezier",{x1:a,y1:l,x2:u,y2:c,cp1x:h[0],cp1y:h[1],cp2x:d[0],cp2y:d[1]})}};this.jsPlumbUtil.extend(e,t.Connectors.AbstractConnector),t.registerConnectorType(e,"Bezier")}.call(this),function(){"use strict";var t=this.jsPlumb,e=this.jsPlumbUtil,n={joinstyle:"stroke-linejoin","stroke-linejoin":"stroke-linejoin","stroke-dashoffset":"stroke-dashoffset","stroke-linecap":"stroke-linecap"},i="stroke-dasharray",s="dashstyle",o="fill",r="stroke",a="none",l="http://www.w3.org/2000/svg",u="http://www.w3.org/1999/xhtml",c=function(t,e){for(var n in e)t.setAttribute(n,""+e[n])},h=function(t,e){return(e=e||{}).version="1.1",e.xmlns=u,jsPlumb.createElementNS(l,t,null,null,e)},d=function(t){return"position:absolute;left:"+t[0]+"px;top:"+t[1]+"px"},p=function(t){for(var e=t.querySelectorAll(" defs,linearGradient,radialGradient"),n=0;n<e.length;n++)e[n].parentNode.removeChild(e[n])},f=function(t,e,l,u,c){if(e.setAttribute(o,l.fillStyle?l.fillStyle:a),e.setAttribute(r,l.strokeStyle?l.strokeStyle:a),l.gradient?function(t,e,n,i,s){var a,l="jsplumb_gradient_"+s._jsPlumb.instance.idstamp();p(t),a=n.gradient.offset?h("radialGradient",{id:l}):h("linearGradient",{id:l,gradientUnits:"userSpaceOnUse"});var u=h("defs");t.appendChild(u),u.appendChild(a);for(var c=0;c<n.gradient.stops.length;c++){var d=1==s.segment||2==s.segment?c:n.gradient.stops.length-1-c,f=n.gradient.stops[d][1],m=h("stop",{offset:Math.floor(100*n.gradient.stops[c][0])+"%","stop-color":f});a.appendChild(m)}var g=n.strokeStyle?r:o;e.setAttribute(g,"url(#"+l+")")}(t,e,l,0,c):(p(t),e.setAttribute("style","")),l.lineWidth&&e.setAttribute("stroke-width",l.lineWidth),l[s]&&l.lineWidth&&!l[i]){var d=-1==l[s].indexOf(",")?" ":",",f=l[s].split(d),m="";f.forEach((function(t){m+=Math.floor(t*l.lineWidth)+d})),e.setAttribute(i,m)}else l[i]&&e.setAttribute(i,l[i]);for(var g in n)l[g]&&e.setAttribute(n[g],l[g])},m=function(t,e,n){t.childNodes.length>n?t.insertBefore(e,t.childNodes[n]):t.appendChild(e)};e.svg={node:h,attr:c,pos:d};var g=function(n){var i=n.pointerEventsSpec||"all",s={};t.jsPlumbUIComponent.apply(this,n.originalArgs),this.canvas=null,this.path=null,this.svg=null,this.bgCanvas=null;var o=n.cssClass+" "+(n.originalArgs[0].cssClass||""),r={style:"",width:0,height:0,"pointer-events":i,position:"absolute"};this.svg=h("svg",r),n.useDivWrapper?(this.canvas=jsPlumb.createElement("div",{position:"absolute"}),e.sizeElement(this.canvas,0,0,1,1),this.canvas.className=o):(c(this.svg,{class:o}),this.canvas=this.svg),n._jsPlumb.appendElement(this.canvas,n.originalArgs[0].parent),n.useDivWrapper&&this.canvas.appendChild(this.svg);var a=[this.canvas];return this.getDisplayElements=function(){return a},this.appendDisplayElement=function(t){a.push(t)},this.paint=function(t,i,o){if(null!=t){var r,a=[this.x,this.y],l=[this.w,this.h];null!=o&&(o.xmin<0&&(a[0]+=o.xmin),o.ymin<0&&(a[1]+=o.ymin),l[0]=o.xmax+(o.xmin<0?-o.xmin:0),l[1]=o.ymax+(o.ymin<0?-o.ymin:0)),n.useDivWrapper?(e.sizeElement(this.canvas,a[0],a[1],l[0],l[1]),a[0]=0,a[1]=0,r=d([0,0])):r=d([a[0],a[1]]),s.paint.apply(this,arguments),c(this.svg,{style:r,width:l[0]||0,height:l[1]||0})}},{renderer:s}};e.extend(g,t.jsPlumbUIComponent,{cleanup:function(t){t||null==this.typeId?(this.canvas&&(this.canvas._jsPlumb=null),this.svg&&(this.svg._jsPlumb=null),this.bgCanvas&&(this.bgCanvas._jsPlumb=null),this.canvas&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.bgCanvas&&this.bgCanvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.svg=null,this.canvas=null,this.path=null,this.group=null):(this.canvas&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.bgCanvas&&this.bgCanvas.parentNode&&this.bgCanvas.parentNode.removeChild(this.bgCanvas))},reattach:function(t){var e=t.getContainer();this.canvas&&null==this.canvas.parentNode&&e.appendChild(this.canvas),this.bgCanvas&&null==this.bgCanvas.parentNode&&e.appendChild(this.bgCanvas)},setVisible:function(t){this.canvas&&(this.canvas.style.display=t?"block":"none")}}),t.ConnectorRenderers.svg=function(e){var n=this;g.apply(this,[{cssClass:e._jsPlumb.connectorClass,originalArgs:arguments,pointerEventsSpec:"none",_jsPlumb:e._jsPlumb}]).renderer.paint=function(i,s,o){var r=n.getSegments(),a="",l=[0,0];if(o.xmin<0&&(l[0]=-o.xmin),o.ymin<0&&(l[1]=-o.ymin),r.length>0){for(var u=0;u<r.length;u++)a+=t.Segments.svg.SegmentRenderer.getPath(r[u]),a+=" ";var d={d:a,transform:"translate("+l[0]+","+l[1]+")","pointer-events":e["pointer-events"]||"visibleStroke"},p=null;n.x,n.y,n.w,n.h;if(i.outlineColor){var g=i.outlineWidth||1,v=i.lineWidth+2*g;delete(p=t.extend({},i)).gradient,p.strokeStyle=i.outlineColor,p.lineWidth=v,null==n.bgPath?(n.bgPath=h("path",d),t.addClass(n.bgPath,t.connectorOutlineClass),m(n.svg,n.bgPath,0)):c(n.bgPath,d),f(n.svg,n.bgPath,p,0,n)}null==n.path?(n.path=h("path",d),m(n.svg,n.path,i.outlineColor?1:0)):c(n.path,d),f(n.svg,n.path,i,0,n)}}},e.extend(t.ConnectorRenderers.svg,g),t.Segments.svg={SegmentRenderer:{getPath:function(t){return{Straight:function(){var e=t.getCoordinates();return"M "+e.x1+" "+e.y1+" L "+e.x2+" "+e.y2},Bezier:function(){var e=t.params;return"M "+e.x1+" "+e.y1+" C "+e.cp1x+" "+e.cp1y+" "+e.cp2x+" "+e.cp2y+" "+e.x2+" "+e.y2},Arc:function(){var e=t.params,n=t.sweep>Math.PI?1:0,i=t.anticlockwise?0:1;return"M"+t.x1+" "+t.y1+" A "+t.radius+" "+e.r+" 0 "+n+","+i+" "+t.x2+" "+t.y2}}[t.type]()}}};var v=t.SvgEndpoint=function(e){g.apply(this,[{cssClass:e._jsPlumb.endpointClass,originalArgs:arguments,pointerEventsSpec:"all",useDivWrapper:!0,_jsPlumb:e._jsPlumb}]).renderer.paint=function(e){var n=t.extend({},e);n.outlineColor&&(n.strokeWidth=n.outlineWidth,n.strokeStyle=n.outlineColor),null==this.node?(this.node=this.makeNode(n),this.svg.appendChild(this.node)):null!=this.updateNode&&this.updateNode(this.node),f(this.svg,this.node,n,(this.x,this.y,this.w,this.h),this),d(this.node,(this.x,this.y))}.bind(this)};e.extend(v,g),t.Endpoints.svg.Dot=function(){t.Endpoints.Dot.apply(this,arguments),v.apply(this,arguments),this.makeNode=function(t){return h("circle",{cx:this.w/2,cy:this.h/2,r:this.radius})},this.updateNode=function(t){c(t,{cx:this.w/2,cy:this.h/2,r:this.radius})}},e.extend(t.Endpoints.svg.Dot,[t.Endpoints.Dot,v]),t.Endpoints.svg.Rectangle=function(){t.Endpoints.Rectangle.apply(this,arguments),v.apply(this,arguments),this.makeNode=function(t){return h("rect",{width:this.w,height:this.h})},this.updateNode=function(t){c(t,{width:this.w,height:this.h})}},e.extend(t.Endpoints.svg.Rectangle,[t.Endpoints.Rectangle,v]),t.Endpoints.svg.Image=t.Endpoints.Image,t.Endpoints.svg.Blank=t.Endpoints.Blank,t.Overlays.svg.Label=t.Overlays.Label,t.Overlays.svg.Custom=t.Overlays.Custom;var b=function(e,n){e.apply(this,n),t.jsPlumbUIComponent.apply(this,n),this.isAppendedAtTopLevel=!1;this.path=null,this.paint=function(t,e){if(t.component.svg&&e){null==this.path&&(this.path=h("path",{"pointer-events":"all"}),t.component.svg.appendChild(this.path),this.canvas=t.component.svg);var s=n&&1==n.length&&n[0].cssClass||"",o=[0,0];e.xmin<0&&(o[0]=-e.xmin),e.ymin<0&&(o[1]=-e.ymin),c(this.path,{d:i(t.d),class:s,stroke:t.strokeStyle?t.strokeStyle:null,fill:t.fillStyle?t.fillStyle:null,transform:"translate("+o[0]+","+o[1]+")"})}};var i=function(t){return isNaN(t.cxy.x)||isNaN(t.cxy.y)?"":"M"+t.hxy.x+","+t.hxy.y+" L"+t.tail[0].x+","+t.tail[0].y+" L"+t.cxy.x+","+t.cxy.y+" L"+t.tail[1].x+","+t.tail[1].y+" L"+t.hxy.x+","+t.hxy.y};this.transfer=function(t){t.canvas&&this.path&&this.path.parentNode&&(this.path.parentNode.removeChild(this.path),t.canvas.appendChild(this.path))}};e.extend(b,[t.jsPlumbUIComponent,t.Overlays.AbstractOverlay],{cleanup:function(t){null!=this.path&&(t?this._jsPlumb.instance.removeElement(this.path):this.path.parentNode&&this.path.parentNode.removeChild(this.path))},reattach:function(t){this.path&&this.canvas&&null==this.path.parentNode&&this.canvas.appendChild(this.path)},setVisible:function(t){null!=this.path&&(this.path.style.display=t?"block":"none")}}),t.Overlays.svg.Arrow=function(){b.apply(this,[t.Overlays.Arrow,arguments])},e.extend(t.Overlays.svg.Arrow,[t.Overlays.Arrow,b]),t.Overlays.svg.PlainArrow=function(){b.apply(this,[t.Overlays.PlainArrow,arguments])},e.extend(t.Overlays.svg.PlainArrow,[t.Overlays.PlainArrow,b]),t.Overlays.svg.Diamond=function(){b.apply(this,[t.Overlays.Diamond,arguments])},e.extend(t.Overlays.svg.Diamond,[t.Overlays.Diamond,b]),t.Overlays.svg.GuideLines=function(){var e,n,i=null,s=this;t.Overlays.GuideLines.apply(this,arguments),this.paint=function(t,r){null==i&&(i=h("path"),t.connector.svg.appendChild(i),s.attachListeners(i,t.connector),s.attachListeners(i,s),e=h("path"),t.connector.svg.appendChild(e),s.attachListeners(e,t.connector),s.attachListeners(e,s),n=h("path"),t.connector.svg.appendChild(n),s.attachListeners(n,t.connector),s.attachListeners(n,s));var a=[0,0];r.xmin<0&&(a[0]=-r.xmin),r.ymin<0&&(a[1]=-r.ymin),c(i,{d:o(t.head,t.tail),stroke:"red",fill:null,transform:"translate("+a[0]+","+a[1]+")"}),c(e,{d:o(t.tailLine[0],t.tailLine[1]),stroke:"blue",fill:null,transform:"translate("+a[0]+","+a[1]+")"}),c(n,{d:o(t.headLine[0],t.headLine[1]),stroke:"green",fill:null,transform:"translate("+a[0]+","+a[1]+")"})};var o=function(t,e){return"M "+t.x+","+t.y+" L"+e.x+","+e.y}},e.extend(t.Overlays.svg.GuideLines,t.Overlays.GuideLines)}.call(this),function(){"use strict";var t=this.jsPlumb,e=this.jsPlumbUtil,n=function(t,e){if("transparent"===t)return t;var n,i=t,s=function(t){return 1==(e=Number(t).toString(16)).length?"0"+e:e;var e},o=/(rgb[a]?\()(.*)(\))/;if(t.match(o)){var r=t.match(o)[2].split(",");i="#"+s(r[0])+s(r[1])+s(r[2]),e||4!=r.length||(i+=(n=r[3],s(parseInt(255*n,10))))}return i},i={"stroke-linejoin":"joinstyle",joinstyle:"joinstyle",endcap:"endcap",miterlimit:"miterlimit"},s=null;if(document.createStyleSheet&&document.namespaces){var o=[".jsplumb_vml","jsplumb\\:textbox","jsplumb\\:oval","jsplumb\\:rect","jsplumb\\:stroke","jsplumb\\:shape","jsplumb\\:group"];s=document.createStyleSheet();for(var r=0;r<o.length;r++)s.addRule(o[r],"behavior:url(#default#VML);position:absolute;");document.namespaces.add("jsplumb","urn:schemas-microsoft-com:vml")}t.vml={};var a=1e3,l=function(t,e){for(var n in e)t[n]=e[n]},u=function(t,e,n,i,s,o){n=n||{};var r=document.createElement("jsplumb:"+t);return o?s.appendElement(r,i):i.appendChild(r),r.className=(n.class?n.class+" ":"")+"jsplumb_vml",c(r,e),l(r,n),r},c=function(t,e,n){t.style.left=e[0]+"px",t.style.top=e[1]+"px",t.style.width=e[2]+"px",t.style.height=e[3]+"px",t.style.position="absolute",n&&(t.style.zIndex=n)},h=t.vml.convertValue=function(t){return Math.floor(t*a)},d=function(t,e,n,i){"transparent"===e?i.setOpacity(n,"0.0"):i.setOpacity(n,"1.0")},p=function(t,e,i,s){var o={};if(e.strokeStyle){o.stroked="true";var r=n(e.strokeStyle,!0);o.strokecolor=r,d(0,r,"stroke",i),o.strokeweight=e.lineWidth+"px"}else o.stroked="false";if(e.fillStyle){o.filled="true";var a=n(e.fillStyle,!0);o.fillcolor=a,d(0,a,"fill",i)}else o.filled="false";if(e.dashstyle)null==i.strokeNode?i.strokeNode=u("stroke",[0,0,0,0],{dashstyle:e.dashstyle},t,s):i.strokeNode.dashstyle=e.dashstyle;else if(e["stroke-dasharray"]&&e.lineWidth){for(var c=-1==e["stroke-dasharray"].indexOf(",")?" ":",",h=e["stroke-dasharray"].split(c),p="",f=0;f<h.length;f++)p+=Math.floor(h[f]/e.lineWidth)+c;null==i.strokeNode?i.strokeNode=u("stroke",[0,0,0,0],{dashstyle:p},t,s):i.strokeNode.dashstyle=p}l(t,o)},f=function(){var e=this;t.jsPlumbUIComponent.apply(this,arguments),this.opacityNodes={stroke:null,fill:null},this.initOpacityNodes=function(t){e.opacityNodes.stroke=u("stroke",[0,0,1,1],{opacity:"0.0"},t,e._jsPlumb.instance),e.opacityNodes.fill=u("fill",[0,0,1,1],{opacity:"0.0"},t,e._jsPlumb.instance)},this.setOpacity=function(t,n){var i=e.opacityNodes[t];i&&(i.opacity=""+n)};var n=[];this.getDisplayElements=function(){return n},this.appendDisplayElement=function(t,i){i||e.canvas.parentNode.appendChild(t),n.push(t)}};e.extend(f,t.jsPlumbUIComponent,{cleanup:function(){this.bgCanvas&&this.bgCanvas.parentNode.removeChild(this.bgCanvas),this.canvas&&this.canvas.parentNode.removeChild(this.canvas)}});var m=t.ConnectorRenderers.vml=function(n,s){this.strokeNode=null,this.canvas=null,f.apply(this,arguments);var o=this._jsPlumb.instance.connectorClass+(n.cssClass?" "+n.cssClass:"");this.paint=function(r){if(null!==r){this.w=Math.max(this.w,1),this.h=Math.max(this.h,1);for(var h=this.getSegments(),d={path:""},f=[this.x,this.y,this.w,this.h],m=0;m<h.length;m++)d.path+=t.Segments.vml.SegmentRenderer.getPath(h[m]),d.path+=" ";if(r.outlineColor){var g=r.outlineWidth||1,v=r.lineWidth+2*g,b={strokeStyle:e.convertStyle(r.outlineColor),lineWidth:v};for(var y in i)b[y]=r[y];null==this.bgCanvas?(d.class=o,d.coordsize=f[2]*a+","+f[3]*a,this.bgCanvas=u("shape",f,d,n.parent,this._jsPlumb.instance,!0),c(this.bgCanvas,f),this.appendDisplayElement(this.bgCanvas,!0),this.initOpacityNodes(this.bgCanvas,["stroke"]),this.bgCanvas._jsPlumb=s):(d.coordsize=f[2]*a+","+f[3]*a,c(this.bgCanvas,f),l(this.bgCanvas,d)),p(this.bgCanvas,b,this)}null==this.canvas?(d.class=o,d.coordsize=f[2]*a+","+f[3]*a,this.canvas=u("shape",f,d,n.parent,this._jsPlumb.instance,!0),this.appendDisplayElement(this.canvas,!0),this.initOpacityNodes(this.canvas,["stroke"]),this.canvas._jsPlumb=s):(d.coordsize=f[2]*a+","+f[3]*a,c(this.canvas,f),l(this.canvas,d)),p(this.canvas,r,this,this._jsPlumb.instance)}}};e.extend(m,f,{setVisible:function(t){this.canvas&&(this.canvas.style.display=t?"block":"none"),this.bgCanvas&&(this.bgCanvas.style.display=t?"block":"none")}});var g=t.VmlEndpoint=function(t){f.apply(this,arguments),this._jsPlumb.vml=null,this.canvas=document.createElement("div"),this.canvas.style.position="absolute",this._jsPlumb.clazz=this._jsPlumb.instance.endpointClass+(t.cssClass?" "+t.cssClass:""),t._jsPlumb.appendElement(this.canvas,t.parent),this.paint=function(t,n){var i={},s=this._jsPlumb.vml;e.sizeElement(this.canvas,this.x,this.y,this.w,this.h),null==this._jsPlumb.vml?(i.class=this._jsPlumb.clazz,s=this._jsPlumb.vml=this.getVml([0,0,this.w,this.h],i,n,this.canvas,this._jsPlumb.instance),this.appendDisplayElement(s,!0),this.appendDisplayElement(this.canvas,!0),this.initOpacityNodes(s,["fill"])):(c(s,[0,0,this.w,this.h]),l(s,i)),p(s,t,this)}};e.extend(g,f),t.Segments.vml={SegmentRenderer:{getPath:function(t){return{Straight:function(t){var e=t.params;return"m"+h(e.x1)+","+h(e.y1)+" l"+h(e.x2)+","+h(e.y2)+" e"},Bezier:function(t){var e=t.params;return"m"+h(e.x1)+","+h(e.y1)+" c"+h(e.cp1x)+","+h(e.cp1y)+","+h(e.cp2x)+","+h(e.cp2y)+","+h(e.x2)+","+h(e.y2)+" e"},Arc:function(t){var e=t.params,n=Math.min(e.x1,e.x2),i=(Math.max(e.x1,e.x2),Math.min(e.y1,e.y2)),s=(Math.max(e.y1,e.y2),t.anticlockwise?1:0);return(t.anticlockwise?"at ":"wa ")+" "+function(){if(e.loopback)return"0,0,"+h(2*e.r)+","+h(2*e.r);var o=[null,[function(){return[n,i]},function(){return[n-e.r,i-e.r]}],[function(){return[n-e.r,i]},function(){return[n,i-e.r]}],[function(){return[n-e.r,i-e.r]},function(){return[n,i]}],[function(){return[n,i-e.r]},function(){return[n-e.r,i]}]][t.segment][s]();return h(o[0])+","+h(o[1])+","+h(o[0]+2*e.r)+","+h(o[1]+2*e.r)}()+","+h(e.x1)+","+h(e.y1)+","+h(e.x2)+","+h(e.y2)+" e"}}[t.type](t)}}},t.Endpoints.vml.Dot=function(){t.Endpoints.Dot.apply(this,arguments),g.apply(this,arguments),this.getVml=function(t,e,n,i,s){return u("oval",t,e,i,s)}},e.extend(t.Endpoints.vml.Dot,g),t.Endpoints.vml.Rectangle=function(){t.Endpoints.Rectangle.apply(this,arguments),g.apply(this,arguments),this.getVml=function(t,e,n,i,s){return u("rect",t,e,i,s)}},e.extend(t.Endpoints.vml.Rectangle,g),t.Endpoints.vml.Image=t.Endpoints.Image,t.Endpoints.vml.Blank=t.Endpoints.Blank,t.Overlays.vml.Label=t.Overlays.Label,t.Overlays.vml.Custom=t.Overlays.Custom;var v=function(t,n){t.apply(this,n),f.apply(this,n);var i=this;this.canvas=null,this.isAppendedAtTopLevel=!0;this.paint=function(t,s){if(t.component.canvas&&s){var o={},r=t.d,d=t.component;t.strokeStyle&&(o.stroked="true",o.strokecolor=e.convertStyle(t.strokeStyle,!0)),t.lineWidth&&(o.strokeweight=t.lineWidth+"px"),t.fillStyle&&(o.filled="true",o.fillcolor=t.fillStyle);var p=Math.min(r.hxy.x,r.tail[0].x,r.tail[1].x,r.cxy.x),f=Math.min(r.hxy.y,r.tail[0].y,r.tail[1].y,r.cxy.y),m=Math.max(r.hxy.x,r.tail[0].x,r.tail[1].x,r.cxy.x),g=Math.max(r.hxy.y,r.tail[0].y,r.tail[1].y,r.cxy.y),v=[p,f,Math.abs(m-p),Math.abs(g-f)];if(o.path=function(t){return"m "+h(t.hxy.x)+","+h(t.hxy.y)+" l "+h(t.tail[0].x)+","+h(t.tail[0].y)+" "+h(t.cxy.x)+","+h(t.cxy.y)+" "+h(t.tail[1].x)+","+h(t.tail[1].y)+" x e"}(r),o.coordsize=d.w*a+","+d.h*a,v[0]=d.x,v[1]=d.y,v[2]=d.w,v[3]=d.h,null==i.canvas){var b=d._jsPlumb.overlayClass||"",y=n&&1==n.length&&n[0].cssClass||"";o.class=y+" "+b,i.canvas=u("shape",v,o,d.canvas.parentNode,d._jsPlumb.instance,!0),d.appendDisplayElement(i.canvas,!0)}else c(i.canvas,v),l(i.canvas,o)}},this.cleanup=function(){null!=this.canvas&&this._jsPlumb.instance.removeElement(this.canvas)}};e.extend(v,[f,t.Overlays.AbstractOverlay],{setVisible:function(t){this.canvas.style.display=t?"block":"none"}}),t.Overlays.vml.Arrow=function(){v.apply(this,[t.Overlays.Arrow,arguments])},e.extend(t.Overlays.vml.Arrow,[t.Overlays.Arrow,v]),t.Overlays.vml.PlainArrow=function(){v.apply(this,[t.Overlays.PlainArrow,arguments])},e.extend(t.Overlays.vml.PlainArrow,[t.Overlays.PlainArrow,v]),t.Overlays.vml.Diamond=function(){v.apply(this,[t.Overlays.Diamond,arguments])},e.extend(t.Overlays.vml.Diamond,[t.Overlays.Diamond,v])}.call(this),function(){"use strict";var t=this,e=t.jsPlumb,n=t.jsPlumbUtil,i=t.Katavorio,s=t.Biltong,o=function(t,e){var o="_katavorio_"+(e=e||"main"),r=t[o],a=t.getEventManager();return r||(r=new i({bind:a.on,unbind:a.off,getSize:jsPlumb.getSize,getPosition:function(e){var n=t.getOffset(e);return[n.left,n.top]},setPosition:function(t,e){t.style.left=e[0]+"px",t.style.top=e[1]+"px"},addClass:jsPlumb.addClass,removeClass:jsPlumb.removeClass,intersects:s.intersects,indexOf:n.indexOf,css:{noSelect:t.dragSelectClass,droppable:"jsplumb-droppable",draggable:"jsplumb-draggable",drag:"jsplumb-drag",selected:"jsplumb-drag-selected",active:"jsplumb-drag-active",hover:"jsplumb-drag-hover"}}),t[o]=r,t.bind("zoom",r.setZoom)),r};e.extend(t.jsPlumbInstance.prototype,{animationSupported:!0,scopeChange:function(t,e,n,i,s){},getElement:function(t){return null==t?null:"string"==typeof(t="string"==typeof t?t:null!=t.length&&null==t.enctype?t[0]:t)?document.getElementById(t):t},removeElement:function(t){o(this).elementRemoved(t),this.getEventManager().remove(t)},doAnimate:function(t,e,i){i=i||{};var s=this.getOffset(t),o=function(t,e){var i=function(i){if(null!=e[i]){if(n.isString(e[i])){var s=e[i].match(/-=/)?-1:1,o=e[i].substring(2);return t[i]+s*o}return e[i]}return t[i]};return[i("left"),i("top")]}(s,e),r=o[0]-s.left,a=o[1]-s.top,l=i.duration||250,u=l/15,c=15/l*r,h=15/l*a,d=0,p=setInterval((function(){jsPlumb.setPosition(t,{left:s.left+c*(d+1),top:s.top+h*(d+1)}),null!=i.step&&i.step(),++d>=u&&(window.clearInterval(p),null!=i.complete&&i.complete())}),15)},destroyDraggable:function(t,e){o(this,e).destroyDraggable(t)},destroyDroppable:function(t,e){o(this,e).destroyDroppable(t)},initDraggable:function(t,e,n){o(this,n).draggable(t,e)},initDroppable:function(t,e,n){o(this,n).droppable(t,e)},isAlreadyDraggable:function(t){return null!=t._katavorioDrag},isDragSupported:function(t,e){return!0},isDropSupported:function(t,e){return!0},isElementDraggable:function(t){return(t=jsPlumb.getElement(t))._katavorioDrag&&t._katavorioDrag.isEnabled()},getDragObject:function(t){return t[0].drag.getDragElement()},getDragScope:function(t){return t._katavorioDrag&&t._katavorioDrag.scopes.join(" ")||""},getDropEvent:function(t){return t[0].e},getDropScope:function(t){return t._katavorioDrop&&t._katavorioDrop.scopes.join(" ")||""},getUIPosition:function(t,e){return{left:t[0].pos[0],top:t[0].pos[1]}},setDragFilter:function(t,e,n){t._katavorioDrag&&t._katavorioDrag.setFilter(e,n)},setElementDraggable:function(t,e){(t=jsPlumb.getElement(t))._katavorioDrag&&t._katavorioDrag.setEnabled(e)},setDragScope:function(t,e){t._katavorioDrag&&t._katavorioDrag.k.setDragScope(t,e)},dragEvents:{start:"start",stop:"stop",drag:"drag",step:"step",over:"over",out:"out",drop:"drop",complete:"complete"},animEvents:{step:"step",complete:"complete"},stopDrag:function(t){t._katavorioDrag&&t._katavorioDrag.abort()},addToDragSelection:function(t){o(this).select(t)},removeFromDragSelection:function(t){o(this).deselect(t)},clearDragSelection:function(){o(this).deselectAll()},getOriginalEvent:function(t){return t},trigger:function(t,e,n){this.getEventManager().trigger(t,e,n)},doReset:function(){for(var t in this)0===t.indexOf("_katavorio_")&&this[t].reset()}});var r,a;r=e.init,(a=function(){/complete|loaded|interactive/.test(document.readyState)&&void 0!==document.body&&null!=document.body?r():setTimeout(a,9)})()}.call(this);
//# sourceMappingURL=/sm/3d11aaf6f31bd6245529ed2acd3912dc324e9611edadb278957720d298fd37ba.map