You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NewEduCoderBuild/85160.async.js

1 line
919 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[85160],{85160:function(t,i,e){e.d(i,{FI:function(){return a}});var n=function(t,i){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var e in i)Object.prototype.hasOwnProperty.call(i,e)&&(t[e]=i[e])},n(t,i)};function o(t,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function e(){this.constructor=t}n(t,i),t.prototype=null===i?Object.create(i):(e.prototype=i.prototype,new e)}Object.create;Object.create;var r=e(12378),s=e(59301),a=function(t){function i(i){var e=t.call(this,i)||this;return e.wasCleared=!1,e.modelChangedListener=null,e.divRef=s.createRef(),e}return o(i,t),i.prototype.getDiagram=function(){return null===this.divRef.current?null:r.Diagram.fromDiv(this.divRef.current)},i.prototype.clear=function(){var t=this.getDiagram();null!==t&&(t.clear(),this.wasCleared=!0)},i.prototype.componentDidMount=function(){var t=this;if(null!==this.divRef.current){var i=this.props.initDiagram();i.div=this.divRef.current,this.modelChangedListener=function(i){if(i.isTransactionFinished&&i.model&&!i.model.isReadOnly&&t.props.onModelChange){var e=i.model.toIncrementalData(i);null!==e&&t.props.onModelChange(e)}},i.addModelChangedListener(this.modelChangedListener),i.delayInitialization((function(){t.mergeData(i,!0)}))}},i.prototype.componentWillUnmount=function(){var t=this.getDiagram();null!==t&&(t.div=null,null!==this.modelChangedListener&&(t.removeModelChangedListener(this.modelChangedListener),this.modelChangedListener=null))},i.prototype.shouldComponentUpdate=function(t,i){return t.divClassName!==this.props.divClassName||t.style!==this.props.style||!t.skipsDiagramUpdate&&(t.nodeDataArray!==this.props.nodeDataArray||t.linkDataArray!==this.props.linkDataArray||t.modelData!==this.props.modelData)},i.prototype.componentDidUpdate=function(t,i){var e=this;if(t.nodeDataArray!==this.props.nodeDataArray||t.linkDataArray!==this.props.linkDataArray||t.modelData!==this.props.modelData){var n=this.getDiagram();null!==n&&(this.wasCleared?n.delayInitialization((function(){e.mergeData(n,!0),e.wasCleared=!1})):this.mergeData(n,!1))}},i.prototype.mergeData=function(t,i){var e=this;t.model.commit((function(t){void 0!==e.props.modelData&&t.assignAllDataProperties(t.modelData,e.props.modelData),t.mergeNodeDataArray(e.props.nodeDataArray),void 0!==e.props.linkDataArray&&t instanceof r.GraphLinksModel&&t.mergeLinkDataArray(e.props.linkDataArray)}),i?"initial merge":"merge data")},i.prototype.render=function(){return s.createElement("div",{ref:this.divRef,className:this.props.divClassName,style:this.props.style})},i}(s.Component);(function(t){function i(i){var e=t.call(this,i)||this;return e.divRef=s.createRef(),e}o(i,t),i.prototype.getOverview=function(){return null===this.divRef.current?null:r.Diagram.fromDiv(this.divRef.current)},i.prototype.componentDidMount=function(){var t;null!==this.divRef.current&&(void 0!==this.props.initOverview?t=this.props.initOverview():(t=new r.Overview).contentAlignment=r.Spot.Center,t.div=this.divRef.current,t.observed=this.props.observedDiagram)},i.prototype.componentWillUnmount=function(){var t=this.getOverview();null!==t&&(t.div=null,t.observed=null)},i.prototype.shouldComponentUpdate=function(t,i){return t.divClassName!==this.props.divClassName||t.style!==this.props.style||t.observedDiagram!==this.props.observedDiagram},i.prototype.componentDidUpdate=function(t,i){if(t.observedDiagram!==this.props.observedDiagram){var e=this.getOverview();null!==e&&(e.observed=this.props.observedDiagram)}},i.prototype.render=function(){return s.createElement("div",{ref:this.divRef,className:this.props.divClassName,style:this.props.style})}})(s.Component),function(t){function i(i){var e=t.call(this,i)||this;return e.wasCleared=!1,e.divRef=s.createRef(),e}o(i,t),i.prototype.getPalette=function(){return null===this.divRef.current?null:r.Diagram.fromDiv(this.divRef.current)},i.prototype.clear=function(){var t=this.getPalette();null!==t&&(t.clear(),this.wasCleared=!0)},i.prototype.componentDidMount=function(){var t=this;if(null!==this.divRef.current){var i=this.props.initPalette();i.div=this.divRef.current,i.delayInitialization((function(){t.mergeData(i,!0)}))}},i.prototype.componentWillUnmount=function(){var t=this.getPalette();null!==t&&(t.div=null)},i.prototype.shouldComponentUpdate=function(t,i){return t.divClassName!==this.props.divClassName||t.style!==this.props.style||(t.nodeDataArray!==this.props.nodeDataArray||t.linkDataArray!==this.props.linkDataArray||t.modelData!==this.props.modelData)},i.prototype.componentDidUpdate=function(t,i){var e=this;if(t.nodeDataArray!==this.props.nodeDataArray||t.linkDataArray!==this.props.linkDataArray||t.modelData!==this.props.modelData){var n=this.getPalette();null!==n&&(this.wasCleared?n.delayInitialization((function(){e.mergeData(n,!0),e.wasCleared=!1})):this.mergeData(n,!1))}},i.prototype.mergeData=function(t,i){var e=this;t.model.commit((function(t){void 0!==e.props.modelData&&t.assignAllDataProperties(t.modelData,e.props.modelData),t.mergeNodeDataArray(e.props.nodeDataArray),void 0!==e.props.linkDataArray&&t instanceof r.GraphLinksModel&&t.mergeLinkDataArray(e.props.linkDataArray)}),i?"initial merge":"merge data")},i.prototype.render=function(){return s.createElement("div",{ref:this.divRef,className:this.props.divClassName,style:this.props.style})}}(s.Component)},12378:function(t,i,e){e.r(i),e.d(i,{ActionTool:function(){return z},Adornment:function(){return at},Animation:function(){return q},AnimationManager:function(){return H},AnimationTrigger:function(){return K},Binding:function(){return M},Brush:function(){return $},ChangedEvent:function(){return x},CircularEdge:function(){return bt},CircularLayout:function(){return yt},CircularNetwork:function(){return vt},CircularVertex:function(){return xt},ClickCreatingTool:function(){return R},ClickSelectingTool:function(){return I},CommandHandler:function(){return N},ContextMenuTool:function(){return V},Diagram:function(){return J},DiagramEvent:function(){return v},DragSelectingTool:function(){return Y},DraggingInfo:function(){return L},DraggingTool:function(){return T},EnumValue:function(){return r},ForceDirectedEdge:function(){return St},ForceDirectedLayout:function(){return wt},ForceDirectedNetwork:function(){return kt},ForceDirectedVertex:function(){return Mt},Geometry:function(){return p},GraphLinksModel:function(){return w},GraphObject:function(){return Q},GridLayout:function(){return gt},Group:function(){return o},HTMLInfo:function(){return E},InputEvent:function(){return y},Layer:function(){return W},LayeredDigraphEdge:function(){return Tt},LayeredDigraphLayout:function(){return Pt},LayeredDigraphNetwork:function(){return Nt},LayeredDigraphVertex:function(){return Ct},Layout:function(){return ct},LayoutEdge:function(){return pt},LayoutNetwork:function(){return ft},LayoutVertex:function(){return dt},Link:function(){return lt},LinkReshapingTool:function(){return D},LinkingBaseTool:function(){return A},LinkingTool:function(){return j},List:function(){return s},Map:function(){return h},Margin:function(){return f},Model:function(){return b},Node:function(){return ht},Overview:function(){return _},Palette:function(){return Z},Panel:function(){return tt},PanelLayout:function(){return mt},PanningTool:function(){return G},Part:function(){return st},PathFigure:function(){return g},PathSegment:function(){return m},Picture:function(){return rt},Placeholder:function(){return ut},Point:function(){return l},Rect:function(){return c},RelinkingTool:function(){return F},ResizingTool:function(){return B},RotatingTool:function(){return O},RowColumnDefinition:function(){return it},Set:function(){return a},Shape:function(){return et},Size:function(){return u},Spot:function(){return d},TextBlock:function(){return nt},TextBlockMetrics:function(){return ot},TextEditingTool:function(){return X},Tool:function(){return C},ToolManager:function(){return U},Transaction:function(){return S},TreeEdge:function(){return Ft},TreeLayout:function(){return Lt},TreeModel:function(){return k},TreeNetwork:function(){return At},TreeVertex:function(){return jt},UndoManager:function(){return P},go:function(){return n},version:function(){return Dt}}),t=e.hmd(t),function(){var i;function n(t){var i=0;return function(){return i<t.length?{done:!1,value:t[i++]}:{done:!0}}}function o(t){var i="undefined"!=typeof Symbol&&Symbol.iterator&&t[Symbol.iterator];return i?i.call(t):{next:n(t)}}function r(t){for(var i,e=[];!(i=t.next()).done;)e.push(i.value);return e}var s,a="function"==typeof Object.create?Object.create:function(t){function i(){}return i.prototype=t,new i};if("function"==typeof Object.setPrototypeOf)s=Object.setPrototypeOf;else{var h;t:{var l={};try{l.__proto__={a:!0},h=l.a;break t}catch(t){}h=!1}s=h?function(t,i){if(t.__proto__=i,t.__proto__!==i)throw new TypeError(t+" is not extensible");return t}:null}var u=s;function c(t,i){if(t.prototype=a(i.prototype),t.prototype.constructor=t,u)u(t,i);else for(var e in i)if("prototype"!=e)if(Object.defineProperties){var n=Object.getOwnPropertyDescriptor(i,e);n&&Object.defineProperty(t,e,n)}else t[e]=i[e];t.QA=i.prototype}var f=void 0!==e.g&&null!=e.g?e.g:self,d="function"==typeof Object.assign?Object.assign:function(t,i){for(var e=1;e<arguments.length;e++){var n=arguments[e];if(n)for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},p="function"==typeof Object.defineProperties?Object.defineProperty:function(t,i,e){t!=Array.prototype&&t!=Object.prototype&&(t[i]=e.value)};function g(t,i){if(i){var e=f;t=t.split(".");for(var n=0;n<t.length-1;n++){var o=t[n];o in e||(e[o]={}),e=e[o]}(i=i(n=e[t=t[t.length-1]]))!=n&&null!=i&&p(e,t,{writable:!0,value:i})}}g("Object.assign",(function(t){return t||d})),g("Array.prototype.fill",(function(t){return t||function(t,i,e){var n=this.length||0;for(0>i&&(i=Math.max(0,n+i)),(null==e||e>n)&&(e=n),0>(e=Number(e))&&(e=Math.max(0,n+e)),i=Number(i||0);i<e;i++)this[i]=t;return this}}));var m="object"==typeof globalThis&&globalThis||"object"==typeof e.g&&e.g.global===e.g&&e.g||"object"==typeof self&&self.self===self&&self||{};function y(){}function v(t,i){var e=-1;return function(){var n=this,o=arguments;-1!==e&&m.clearTimeout(e),e=x((function(){e=-1,t.apply(n,o)}),i)}}function x(t,i){return m.setTimeout(t,i)}function b(t){return m.document.createElement(t)}function w(t){throw Error(t)}function k(t,i){t="The object is frozen, so its properties cannot be set: "+t.toString(),void 0!==i&&(t+=" to value: "+i),w(t)}function M(t,i,e,n){e=null===e?"*":"string"==typeof e?e:"function"==typeof e&&"string"==typeof e.className?e.className:"",void 0!==n&&(e+="."+n),w(e+" is not in the range "+i+": "+t)}function S(t){m.console&&m.console.log(t)}function P(t){return"object"==typeof t&&null!==t}function N(t){return Array.isArray(t)||m.NodeList&&t instanceof m.NodeList||m.HTMLCollection&&t instanceof m.HTMLCollection}function C(t){return Array.prototype.slice.call(t)}function T(t,i,e){Array.isArray(t)?i>=t.length?t.push(e):t.splice(i,0,e):w("Cannot insert an object into an HTMLCollection or NodeList: "+e+" at "+i)}function L(t,i){Array.isArray(t)?i>=t.length?t.pop():t.splice(i,1):w("Cannot remove an object from an HTMLCollection or NodeList at "+i)}function A(){var t=E.pop();return void 0===t?[]:t}function j(t){t.length=0,E.push(t)}function F(t){if("function"==typeof t){if(t.className)return t.className;if(t.name)return t.name;var i=t.toString();if(""!==(i=i.substring(9,i.indexOf("(")).trim()))return t._className=i}else if(P(t)&&t.constructor)return F(t.constructor);return typeof t}function D(t){var i=t;return P(t)&&(t.text?i=t.text:t.name?i=t.name:void 0!==t.key?i=t.key:void 0!==t.id?i=t.id:t.constructor===Object&&(t.Text?i=t.Text:t.Name?i=t.Name:void 0!==t.Key?i=t.Key:void 0!==t.Id?i=t.Id:void 0!==t.ID&&(i=t.ID))),void 0===i?"undefined":null===i?"null":i.toString()}function B(t,i){if(t.hasOwnProperty(i))return!0;for(t=Object.getPrototypeOf(t);t&&t!==Function;){if(t.hasOwnProperty(i))return!0;var e=t.CA;if(e&&e[i])return!0;t=Object.getPrototypeOf(t)}return!1}function O(t,i,e){Object.defineProperty(xe.prototype,t,{get:i,set:e})}function I(t){for(var i=[],e=0;256>e;e++)i["0123456789abcdef".charAt(e>>4)+"0123456789abcdef".charAt(15&e)]=String.fromCharCode(e);t.length%2&&(t="0"+t),e=[];for(var n=0,o=0;o<t.length;o+=2)e[n++]=i[t.substr(o,2)];for(t=""===(t=e.join(""))?"0":t,i=[],e=0;256>e;e++)i[e]=e;for(e=n=0;256>e;e++)n=(n+i[e]+119)%256,o=i[e],i[e]=i[n],i[n]=o;n=e=0;for(var r="",s=0;s<t.length;s++)n=(n+i[e=(e+1)%256])%256,o=i[e],i[e]=i[n],i[n]=o,r+=String.fromCharCode(t.charCodeAt(s)^i[(i[e]+i[n])%256]);return r.indexOf("GoJS 2.1 evaluation")>-1||r.indexOf("© 1998-2021 Northwoods Software")>-1||r.indexOf("Not for distribution or production use")>-1||r.indexOf("gojs.net")>-1?"":r}void 0===m.requestAnimationFrame&&(void 0===m.setImmediate?m.requestAnimationFrame=function(t){m.setTimeout(t,0)}:m.requestAnimationFrame=m.setImmediate);var z=void 0!==m.navigator&&0<m.navigator.userAgent.indexOf("Trident/7"),R=void 0!==m.navigator&&void 0!==m.navigator.platform&&null!==m.navigator.platform.match(/(iPhone|iPod|iPad|Mac)/i),E=[];function V(t,i,e){Q(this),this.j=t,this.xa=i,this.o=e}function Y(t,i){return null==i||""===i?null:t[i]}function G(){this.ew=[]}function X(){}Object.freeze([]),y.className="Util",y.Dx="32ab5ff3b26f42dc0ed90f21472913b5",y.adym="gojs.net",y.vfo="28e645fdb266",y.className="Util",V.prototype.toString=function(){return"EnumValue."+this.xa},f.Object.defineProperties(V.prototype,{classType:{get:function(){return this.j}},name:{get:function(){return this.xa}},value:{get:function(){return this.o}}}),V.className="EnumValue",G.prototype.toString=function(){return this.ew.join("")},G.prototype.add=function(t){""!==t&&this.ew.push(t)},G.className="StringBuilder",X.className="PropertyCollection";var U={EA:!1,JA:!1,GA:!1,IA:!1,NA:!1,LA:!1,nx:!1,FA:null,trace:function(t){m.console&&m.console.log(t)},HA:function(t,i,e,n){t.strokeStyle="red",t.fillStyle="red",t.font="8px sans-serif",t.beginPath(),t.moveTo(-10,0),t.lineTo(10,0),t.moveTo(0,-10),t.lineTo(0,10),t.stroke(),t.setTransform(1,0,0,1,0,0),t.scale(e,e),t.transform(i.m11,i.m12,i.m21,i.m22,i.dx,i.dy),t.lineWidth=2,t.beginPath(),t.moveTo(n.left,n.top+20),t.lineTo(n.left,n.top),t.lineTo(n.left+20,n.top),t.moveTo(n.right,n.bottom-20),t.lineTo(n.right,n.bottom),t.lineTo(n.right-20,n.bottom),t.stroke(),t.fillText("DB: "+Math.round(n.x)+", "+Math.round(n.y)+", "+Math.round(n.width)+", "+Math.round(n.height),n.left,n.top-5)},DA:function(t){var i,e={};for(i in t){if(e.x=i,"licenseKey"!==e.x){var n=t[e.x];if(void 0!==n.prototype){e.Zl=Object.getOwnPropertyNames(n.prototype);for(var o={Tj:0};o.Tj<e.Zl.length;(o={Tj:o.Tj}).Tj++){var r=Object.getOwnPropertyDescriptor(n.prototype,e.Zl[o.Tj]);void 0!==r.get&&void 0===r.set&&Object.defineProperty(n.prototype,e.Zl[o.Tj],{set:function(t,i){return function(){throw Error("Property "+t.Zl[i.Tj]+" of "+t.x+" is read-only.")}}(e,o)})}}}e={Zl:e.Zl,x:e.x}}}};function q(){}q.prototype.reset=function(){},q.prototype.next=function(){return!1},q.prototype.Ad=function(){return!1},q.prototype.first=function(){return null},q.prototype.any=function(){return!1},q.prototype.all=function(){return!0},q.prototype.each=function(){return this},q.prototype.map=function(){return this},q.prototype.filter=function(){return this},q.prototype.de=function(){},q.prototype.toString=function(){return"EmptyIterator"},f.Object.defineProperties(q.prototype,{iterator:{get:function(){return this}},count:{get:function(){return 0}}}),q.prototype.first=q.prototype.first,q.prototype.hasNext=q.prototype.Ad,q.prototype.next=q.prototype.next,q.prototype.reset=q.prototype.reset;var H;function K(t){this.key=-1,this.value=t}function W(t){this.Bb=t,this.qf=null,t.Sa=null,this.qa=t.Ja,this.Za=-1}function J(t){this.Bb=t,t.Hg=null,this.qa=t.Ja,this.Za=t.s.length}function Z(t){Q(this),this._isFrozen=!1,this.s=[],this.Ja=0,this.Hg=this.Sa=null,"string"==typeof t&&w("Error: Since 2.0 List/Map/Set constructors no longer take an argument that enforces type."),void 0!==t&&this.addAll(t)}function _(t){this.eg=t,t.Sa=null,this.qa=t.Ja,this.sa=null}function $(t){Q(this),this._isFrozen=!1,this.Tb={},this.Sb=0,this.Sa=null,this.Ja=0,this.kf=this.ea=null,"string"==typeof t&&w("Error: Since 2.0 List/Map/Set constructors no longer take an argument that enforces type."),void 0!==t&&this.addAll(t)}function Q(t){t.__gohashid=at++}function tt(t){var i=t.__gohashid;return void 0===i&&(i=at++,t.__gohashid=i),i}function it(t){return t.__gohashid}q.className="EmptyIterator",H=new q,K.prototype.reset=function(){this.key=-1},K.prototype.next=function(){return-1===this.key&&(this.key=0,!0)},K.prototype.Ad=function(){return this.next()},K.prototype.first=function(){return this.key=0,this.value},K.prototype.any=function(t){return this.key=-1,t(this.value)},K.prototype.all=function(t){return this.key=-1,t(this.value)},K.prototype.each=function(t){return this.key=-1,t(this.value),this},K.prototype.map=function(t){return new K(t(this.value))},K.prototype.filter=function(t){return t(this.value)?new K(this.value):H},K.prototype.de=function(){this.value=null},K.prototype.toString=function(){return"SingletonIterator("+this.value+")"},f.Object.defineProperties(K.prototype,{iterator:{get:function(){return this}},count:{get:function(){return 1}}}),K.prototype.first=K.prototype.first,K.prototype.hasNext=K.prototype.Ad,K.prototype.next=K.prototype.next,K.prototype.reset=K.prototype.reset,K.className="SingletonIterator",W.prototype.reset=function(){var t=this.Bb;t.Sa=null,this.qa=t.Ja,this.Za=-1},W.prototype.next=function(){var t=this.Bb;if(t.Ja!==this.qa&&0>this.key)return!1;var i=(t=t.s).length,e=++this.Za,n=this.qf;if(null!==n)for(;e<i;){var o=t[e];if(n(o))return this.key=this.Za=e,this.value=o,!0;e++}else{if(e<i)return this.key=e,this.value=t[e],!0;this.de()}return!1},W.prototype.Ad=function(){return this.next()},W.prototype.first=function(){var t=this.Bb;this.qa=t.Ja,this.Za=0;var i=(t=t.s).length,e=this.qf;if(null!==e){for(var n=0;n<i;){var o=t[n];if(e(o))return this.key=this.Za=n,this.value=o;n++}return null}return 0<i?(t=t[0],this.key=0,this.value=t):null},W.prototype.any=function(t){var i=this.Bb;i.Sa=null,this.Za=-1;for(var e=(i=i.s).length,n=this.qf,o=0;o<e;o++){var r=i[o];if((null===n||n(r))&&t(r))return!0}return!1},W.prototype.all=function(t){var i=this.Bb;i.Sa=null,this.Za=-1;for(var e=(i=i.s).length,n=this.qf,o=0;o<e;o++){var r=i[o];if((null===n||n(r))&&!t(r))return!1}return!0},W.prototype.each=function(t){var i=this.Bb;i.Sa=null,this.Za=-1;for(var e=(i=i.s).length,n=this.qf,o=0;o<e;o++){var r=i[o];(null===n||n(r))&&t(r)}return this},W.prototype.map=function(t){var i=this.Bb;i.Sa=null,this.Za=-1;for(var e=[],n=(i=i.s).length,o=this.qf,r=0;r<n;r++){var s=i[r];(null===o||o(s))&&e.push(t(s))}return(t=new Z).s=e,t.xb(),t.iterator},W.prototype.filter=function(t){var i=this.Bb;i.Sa=null,this.Za=-1;for(var e=[],n=(i=i.s).length,o=this.qf,r=0;r<n;r++){var s=i[r];(null===o||o(s))&&t(s)&&e.push(s)}return(t=new Z).s=e,t.xb(),t.iterator},W.prototype.de=function(){this.key=-1,this.value=null,this.qa=-1,this.qf=null,this.Bb.Sa=this},W.prototype.toString=function(){return"ListIterator@"+this.Za+"/"+this.Bb.count},f.Object.defineProperties(W.prototype,{iterator:{get:function(){return this}},predicate:{get:function(){return this.qf},set:function(t){this.qf=t}},count:{get:function(){var t=this.qf;if(null!==t){for(var i=0,e=this.Bb.s,n=e.length,o=0;o<n;o++)t(e[o])&&i++;return i}return this.Bb.s.length}}}),W.prototype.first=W.prototype.first,W.prototype.hasNext=W.prototype.Ad,W.prototype.next=W.prototype.next,W.prototype.reset=W.prototype.reset,W.className="ListIterator",J.prototype.reset=function(){var t=this.Bb;t.Hg=null,this.qa=t.Ja,this.Za=t.s.length},J.prototype.next=function(){var t=this.Bb;if(t.Ja!==this.qa&&0>this.key)return!1;var i=--this.Za;return 0<=i?(this.key=i,this.value=t.s[i],!0):(this.de(),!1)},J.prototype.Ad=function(){return this.next()},J.prototype.first=function(){var t=this.Bb;this.qa=t.Ja;var i=t.s;return this.Za=t=i.length-1,0<=t?(i=i[t],this.key=t,this.value=i):null},J.prototype.any=function(t){var i=this.Bb;i.Hg=null;var e=(i=i.s).length;for(this.Za=e,--e;0<=e;e--)if(t(i[e]))return!0;return!1},J.prototype.all=function(t){var i=this.Bb;i.Hg=null;var e=(i=i.s).length;for(this.Za=e,--e;0<=e;e--)if(!t(i[e]))return!1;return!0},J.prototype.each=function(t){var i=this.Bb;i.Hg=null;var e=(i=i.s).length;for(this.Za=e,--e;0<=e;e--)t(i[e]);return this},J.prototype.map=function(t){var i=this.Bb;i.Hg=null;var e=[],n=(i=i.s).length;for(this.Za=n,--n;0<=n;n--)e.push(t(i[n]));return(t=new Z).s=e,t.xb(),t.iterator},J.prototype.filter=function(t){var i=this.Bb;i.Hg=null;var e=[],n=(i=i.s).length;for(this.Za=n,--n;0<=n;n--){var o=i[n];t(o)&&e.push(o)}return(t=new Z).s=e,t.xb(),t.iterator},J.prototype.de=function(){this.key=-1,this.value=null,this.qa=-1,this.Bb.Hg=this},J.prototype.toString=function(){return"ListIteratorBackwards("+this.Za+"/"+this.Bb.count+")"},f.Object.defineProperties(J.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.Bb.s.length}}}),J.prototype.first=J.prototype.first,J.prototype.hasNext=J.prototype.Ad,J.prototype.next=J.prototype.next,J.prototype.reset=J.prototype.reset,J.className="ListIteratorBackwards",(i=Z.prototype).xb=function(){var t=this.Ja;999999999<++t&&(t=0),this.Ja=t},i.freeze=function(){return this._isFrozen=!0,this},i.ka=function(){return this._isFrozen=!1,this},i.toString=function(){return"List()#"+it(this)},i.add=function(t){return null===t||(this._isFrozen&&k(this,t),this.s.push(t),this.xb()),this},i.push=function(t){this.add(t)},i.addAll=function(t){if(null===t)return this;this._isFrozen&&k(this);var i=this.s;if(N(t))for(var e=t.length,n=0;n<e;n++)i.push(t[n]);else for(t=t.iterator;t.next();)i.push(t.value);return this.xb(),this},i.clear=function(){this._isFrozen&&k(this),this.s.length=0,this.xb()},i.contains=function(t){return null!==t&&-1!==this.s.indexOf(t)},i.has=function(t){return this.contains(t)},i.indexOf=function(t){return null===t?-1:this.s.indexOf(t)},i.M=function(t){var i=this.s;return(0>t||t>=i.length)&&M(t,"0 <= i < length",Z,"elt:i"),i[t]},i.get=function(t){return this.M(t)},i.cd=function(t,i){var e=this.s;(0>t||t>=e.length)&&M(t,"0 <= i < length",Z,"setElt:i"),this._isFrozen&&k(this,t),e[t]=i},i.set=function(t,i){this.cd(t,i)},i.first=function(){var t=this.s;return 0===t.length?null:t[0]},i.jc=function(){var t=this.s,i=t.length;return 0<i?t[i-1]:null},i.pop=function(){this._isFrozen&&k(this);var t=this.s;return 0<t.length?t.pop():null},Z.prototype.any=function(t){for(var i=this.s,e=i.length,n=0;n<e;n++)if(t(i[n]))return!0;return!1},Z.prototype.all=function(t){for(var i=this.s,e=i.length,n=0;n<e;n++)if(!t(i[n]))return!1;return!0},Z.prototype.each=function(t){for(var i=this.s,e=i.length,n=0;n<e;n++)t(i[n]);return this},Z.prototype.map=function(t){for(var i=new Z,e=[],n=this.s,o=n.length,r=0;r<o;r++)e.push(t(n[r]));return i.s=e,i.xb(),i},Z.prototype.filter=function(t){for(var i=new Z,e=[],n=this.s,o=n.length,r=0;r<o;r++){var s=n[r];t(s)&&e.push(s)}return i.s=e,i.xb(),i},(i=Z.prototype).Gb=function(t,i){0>t&&M(t,">= 0",Z,"insertAt:i"),this._isFrozen&&k(this,t);var e=this.s;t>=e.length?e.push(i):e.splice(t,0,i),this.xb()},i.remove=function(t){if(null===t)return!1;this._isFrozen&&k(this,t);var i=this.s;return-1!==(t=i.indexOf(t))&&(t===i.length-1?i.pop():i.splice(t,1),this.xb(),!0)},i.delete=function(t){return this.remove(t)},i.mb=function(t){var i=this.s;(0>t||t>=i.length)&&M(t,"0 <= i < length",Z,"removeAt:i"),this._isFrozen&&k(this,t),t===i.length-1?i.pop():i.splice(t,1),this.xb()},i.removeRange=function(t,i){var e=this.s,n=e.length;if(0>t)t=0;else if(t>=n)return this;if(0>i)return this;if(i>=n&&(i=n-1),t>i)return this;this._isFrozen&&k(this);for(var o=t,r=i+1;r<n;)e[o++]=e[r++];return e.length=n-(i-t+1),this.xb(),this},Z.prototype.copy=function(){var t=new Z,i=this.s;return 0<i.length&&(t.s=Array.prototype.slice.call(i)),t},(i=Z.prototype).Fa=function(){for(var t=this.s,i=this.count,e=Array(i),n=0;n<i;n++)e[n]=t[n];return e},i.Iv=function(){for(var t=new $,i=this.s,e=this.count,n=0;n<e;n++)t.add(i[n]);return t},i.sort=function(t){return this._isFrozen&&k(this),this.s.sort(t),this.xb(),this},i.zi=function(t,i,e){var n=this.s,o=n.length;void 0===i&&(i=0),void 0===e&&(e=o),this._isFrozen&&k(this);var r=e-i;if(1>=r)return this;if((0>i||i>=o-1)&&M(i,"0 <= from < length",Z,"sortRange:from"),2===r)return 0<t(e=n[i],o=n[i+1])&&(n[i]=o,n[i+1]=e,this.xb()),this;if(0===i)if(e>=o)n.sort(t);else for((i=n.slice(0,e)).sort(t),t=0;t<e;t++)n[t]=i[t];else if(e>=o)for((e=n.slice(i)).sort(t),t=i;t<o;t++)n[t]=e[t-i];else for((o=n.slice(i,e)).sort(t),t=i;t<e;t++)n[t]=o[t-i];return this.xb(),this},i.reverse=function(){return this._isFrozen&&k(this),this.s.reverse(),this.xb(),this},f.Object.defineProperties(Z.prototype,{_dataArray:{get:function(){return this.s}},count:{get:function(){return this.s.length}},size:{get:function(){return this.s.length}},length:{get:function(){return this.s.length}},iterator:{get:function(){if(0>=this.s.length)return H;var t=this.Sa;return null!==t?(t.reset(),t):new W(this)}},iteratorBackwards:{get:function(){if(0>=this.s.length)return H;var t=this.Hg;return null!==t?(t.reset(),t):new J(this)}}}),Z.prototype.reverse=Z.prototype.reverse,Z.prototype.sortRange=Z.prototype.zi,Z.prototype.sort=Z.prototype.sort,Z.prototype.toSet=Z.prototype.Iv,Z.prototype.toArray=Z.prototype.Fa,Z.prototype.removeRange=Z.prototype.removeRange,Z.prototype.removeAt=Z.prototype.mb,Z.prototype.delete=Z.prototype.delete,Z.prototype.remove=Z.prototype.remove,Z.prototype.insertAt=Z.prototype.Gb,Z.prototype.pop=Z.prototype.pop,Z.prototype.last=Z.prototype.jc,Z.prototype.first=Z.prototype.first,Z.prototype.set=Z.prototype.set,Z.prototype.setElt=Z.prototype.cd,Z.prototype.get=Z.prototype.get,Z.prototype.elt=Z.prototype.M,Z.prototype.indexOf=Z.prototype.indexOf,Z.prototype.has=Z.prototype.has,Z.prototype.contains=Z.prototype.contains,Z.prototype.clear=Z.prototype.clear,Z.prototype.addAll=Z.prototype.addAll,Z.prototype.push=Z.prototype.push,Z.prototype.add=Z.prototype.add,Z.prototype.thaw=Z.prototype.ka,Z.prototype.freeze=Z.prototype.freeze,Z.className="List",_.prototype.reset=function(){var t=this.eg;t.Sa=null,this.qa=t.Ja,this.sa=null},_.prototype.next=function(){var t=this.eg;if(t.Ja!==this.qa&&null===this.key)return!1;var i=this.sa;return null!==(i=null===i?t.ea:i.va)?(this.sa=i,this.value=i.value,this.key=i.key,!0):(this.de(),!1)},_.prototype.Ad=function(){return this.next()},_.prototype.first=function(){var t=this.eg;if(this.qa=t.Ja,null!==(t=t.ea)){this.sa=t;var i=t.value;return this.key=t.key,this.value=i}return null},_.prototype.any=function(t){var i=this.eg;for(this.sa=i.Sa=null,i=i.ea;null!==i;){if(t(i.value))return!0;i=i.va}return!1},_.prototype.all=function(t){var i=this.eg;for(this.sa=i.Sa=null,i=i.ea;null!==i;){if(!t(i.value))return!1;i=i.va}return!0},_.prototype.each=function(t){var i=this.eg;for(this.sa=i.Sa=null,i=i.ea;null!==i;)t(i.value),i=i.va;return this},_.prototype.map=function(t){var i=this.eg;i.Sa=null;var e=new Z;for(i=i.ea;null!==i;)e.add(t(i.value)),i=i.va;return e.iterator},_.prototype.filter=function(t){var i=this.eg;i.Sa=null;var e=new Z;for(i=i.ea;null!==i;){var n=i.value;t(n)&&e.add(n),i=i.va}return e.iterator},_.prototype.de=function(){this.value=this.key=null,this.qa=-1,this.eg.Sa=this},_.prototype.toString=function(){return null!==this.sa?"SetIterator@"+this.sa.value:"SetIterator"},f.Object.defineProperties(_.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.eg.Sb}}}),_.prototype.first=_.prototype.first,_.prototype.hasNext=_.prototype.Ad,_.prototype.next=_.prototype.next,_.prototype.reset=_.prototype.reset,_.className="SetIterator",(i=$.prototype).xb=function(){var t=this.Ja;999999999<++t&&(t=0),this.Ja=t},i.freeze=function(){return this._isFrozen=!0,this},i.ka=function(){return this._isFrozen=!1,this},i.toString=function(){return"Set()#"+it(this)},i.add=function(t){if(null===t)return this;this._isFrozen&&k(this,t);var i=t;return P(t)&&(i=tt(t)),void 0===this.Tb[i]&&(this.Sb++,t=new ct(t,t),this.Tb[i]=t,null===(i=this.kf)?this.ea=t:(t.ll=i,i.va=t),this.kf=t,this.xb()),this},i.addAll=function(t){if(null===t)return this;if(this._isFrozen&&k(this),N(t))for(var i=t.length,e=0;e<i;e++)this.add(t[e]);else for(t=t.iterator;t.next();)this.add(t.value);return this},i.contains=function(t){if(null===t)return!1;var i=t;return(!P(t)||void 0!==(i=it(t)))&&void 0!==this.Tb[i]},i.has=function(t){return this.contains(t)},i.Sy=function(t){if(null===t)return!0;for(t=t.iterator;t.next();)if(!this.contains(t.value))return!1;return!0},i.Ty=function(t){if(null===t)return!0;for(t=t.iterator;t.next();)if(this.contains(t.value))return!0;return!1},i.first=function(){var t=this.ea;return null===t?null:t.value},$.prototype.any=function(t){for(var i=this.ea;null!==i;){if(t(i.value))return!0;i=i.va}return!1},$.prototype.all=function(t){for(var i=this.ea;null!==i;){if(!t(i.value))return!1;i=i.va}return!0},$.prototype.each=function(t){for(var i=this.ea;null!==i;)t(i.value),i=i.va;return this},$.prototype.map=function(t){for(var i=new $,e=this.ea;null!==e;)i.add(t(e.value)),e=e.va;return i},$.prototype.filter=function(t){for(var i=new $,e=this.ea;null!==e;){var n=e.value;t(n)&&i.add(n),e=e.va}return i},(i=$.prototype).remove=function(t){if(null===t)return!1;this._isFrozen&&k(this,t);var i=t;if(P(t)&&void 0===(i=it(t)))return!1;if(void 0===(t=this.Tb[i]))return!1;var e=t.va,n=t.ll;return null!==e&&(e.ll=n),null!==n&&(n.va=e),this.ea===t&&(this.ea=e),this.kf===t&&(this.kf=n),delete this.Tb[i],this.Sb--,this.xb(),!0},i.delete=function(t){return this.remove(t)},i.hp=function(t){if(null===t)return this;if(this._isFrozen&&k(this),N(t))for(var i=t.length,e=0;e<i;e++)this.remove(t[e]);else for(t=t.iterator;t.next();)this.remove(t.value);return this},i.pA=function(t){if(null===t||0===this.count)return this;this._isFrozen&&k(this);var i=new $;i.addAll(t),t=[];for(var e=this.iterator;e.next();){var n=e.value;i.contains(n)||t.push(n)}return this.hp(t),this},i.clear=function(){this._isFrozen&&k(this),this.Tb={},this.Sb=0,null!==this.Sa&&this.Sa.reset(),this.kf=this.ea=null,this.xb()},$.prototype.copy=function(){var t,i=new $,e=this.Tb;for(t in e)i.add(e[t].value);return i},$.prototype.Fa=function(){var t,i=Array(this.Sb),e=this.Tb,n=0;for(t in e)i[n]=e[t].value,n++;return i},$.prototype.Hv=function(){var t,i=new Z,e=this.Tb;for(t in e)i.add(e[t].value);return i},f.Object.defineProperties($.prototype,{count:{get:function(){return this.Sb}},size:{get:function(){return this.Sb}},iterator:{get:function(){if(0>=this.Sb)return H;var t=this.Sa;return null!==t?(t.reset(),t):new _(this)}}}),$.prototype.toList=$.prototype.Hv,$.prototype.toArray=$.prototype.Fa,$.prototype.clear=$.prototype.clear,$.prototype.retainAll=$.prototype.pA,$.prototype.removeAll=$.prototype.hp,$.prototype.delete=$.prototype.delete,$.prototype.remove=$.prototype.remove,$.prototype.first=$.prototype.first,$.prototype.containsAny=$.prototype.Ty,$.prototype.containsAll=$.prototype.Sy,$.prototype.has=$.prototype.has,$.prototype.contains=$.prototype.contains,$.prototype.addAll=$.prototype.addAll,$.prototype.add=$.prototype.add,$.prototype.thaw=$.prototype.ka,$.prototype.freeze=$.prototype.freeze;var et,nt,ot,rt,st,at=1;function ht(t){this.ma=t,this.qa=t.Ja,this.sa=null}function lt(t){$.call(this),Q(this),this._isFrozen=!0,this.ma=t}function ut(t){this.ma=t,t.jf=null,this.qa=t.Ja,this.sa=null}function ct(t,i){this.key=t,this.value=i,this.ll=this.va=null}function ft(t){this.ma=t,t.Sa=null,this.qa=t.Ja,this.sa=null}function dt(t){Q(this),this._isFrozen=!1,this.Tb={},this.Sb=0,this.jf=this.Sa=null,this.Ja=0,this.kf=this.ea=null,"string"==typeof t&&w("Error: Since 2.0 List/Map/Set constructors no longer take an argument that enforces type."),void 0!==t&&this.addAll(t)}function pt(t,i){void 0===t?this.y=this.x=0:"number"==typeof t&&"number"==typeof i?(this.x=t,this.y=i):w("Invalid arguments to Point constructor: "+t+", "+i),this._isFrozen=!1}function gt(t){if("string"==typeof t){t=t.split(" ");for(var i=0,e=0;""===t[i];)i++;var n=t[i++];n&&(e=parseFloat(n));for(var o=0;""===t[i];)i++;return(n=t[i++])&&(o=parseFloat(n)),new pt(e,o)}return new pt}function mt(t){return t.x.toString()+" "+t.y.toString()}function yt(t,i){if(0===t)return 0<i?90:0>i?270:0;if(0===i)return 0<t?0:180;if(isNaN(t)||isNaN(i))return 0;var e=180*Math.atan(Math.abs(i/t))/Math.PI;return 0>t?e=0>i?e+180:180-e:0>i&&(e=360-e),e}function vt(t,i){return i.Cd(t),t}function xt(t,i,e,n,o,r){var s=o-e,a=r-n,h=s*s+a*a,l=-(e-=t)*s-(n-=i)*a;return 0>=l||l>=h?(s=o-t,a=r-i,Math.min(e*e+n*n,s*s+a*a)):(t=s*n-a*e)*t/h}function bt(t,i,e,n){return(t=e-t)*t+(i=n-i)*i}function wt(t,i,e,n){return i=n-i,0===(t=e-t)?0<i?90:0>i?270:0:0===i?0<t?0:180:isNaN(t)||isNaN(i)?0:(n=180*Math.atan(Math.abs(i/t))/Math.PI,0>t?n=0>i?n+180:180-n:0>i&&(n=360-n),n)}$.className="Set",$.uniqueHash=Q,$.hashIdUnique=tt,$.hashId=it,ht.prototype.reset=function(){this.qa=this.ma.Ja,this.sa=null},ht.prototype.next=function(){var t=this.ma;if(t.Ja!==this.qa&&null===this.key)return!1;var i=this.sa;return null!==(i=null===i?t.ea:i.va)?(this.sa=i,this.value=this.key=t=i.key,!0):(this.de(),!1)},ht.prototype.Ad=function(){return this.next()},ht.prototype.first=function(){var t=this.ma;return this.qa=t.Ja,null!==(t=t.ea)?(this.sa=t,this.value=this.key=t=t.key):null},ht.prototype.any=function(t){var i=this.ma;for(this.sa=null,i=i.ea;null!==i;){if(t(i.key))return!0;i=i.va}return!1},ht.prototype.all=function(t){var i=this.ma;for(this.sa=null,i=i.ea;null!==i;){if(!t(i.key))return!1;i=i.va}return!0},ht.prototype.each=function(t){var i=this.ma;for(this.sa=null,i=i.ea;null!==i;)t(i.key),i=i.va;return this},ht.prototype.map=function(t){var i=this.ma;this.sa=null;var e=new Z;for(i=i.ea;null!==i;)e.add(t(i.key)),i=i.va;return e.iterator},ht.prototype.filter=function(t){var i=this.ma;this.sa=null;var e=new Z;for(i=i.ea;null!==i;){var n=i.key;t(n)&&e.add(n),i=i.va}return e.iterator},ht.prototype.de=function(){this.value=this.key=null,this.qa=-1},ht.prototype.toString=function(){return null!==this.sa?"MapKeySetIterator@"+this.sa.value:"MapKeySetIterator"},f.Object.defineProperties(ht.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.ma.Sb}}}),ht.prototype.first=ht.prototype.first,ht.prototype.hasNext=ht.prototype.Ad,ht.prototype.next=ht.prototype.next,ht.prototype.reset=ht.prototype.reset,ht.className="MapKeySetIterator",c(lt,$),(i=lt.prototype).freeze=function(){return this},i.ka=function(){return this},i.toString=function(){return"MapKeySet("+this.ma.toString()+")"},i.add=function(){w("This Set is read-only: "+this.toString())},i.contains=function(t){return this.ma.contains(t)},i.has=function(t){return this.contains(t)},i.remove=function(){w("This Set is read-only: "+this.toString())},i.delete=function(t){return this.remove(t)},i.clear=function(){w("This Set is read-only: "+this.toString())},i.first=function(){var t=this.ma.ea;return null!==t?t.key:null},lt.prototype.any=function(t){for(var i=this.ma.ea;null!==i;){if(t(i.key))return!0;i=i.va}return!1},lt.prototype.all=function(t){for(var i=this.ma.ea;null!==i;){if(!t(i.key))return!1;i=i.va}return!0},lt.prototype.each=function(t){for(var i=this.ma.ea;null!==i;)t(i.key),i=i.va;return this},lt.prototype.map=function(t){for(var i=new $,e=this.ma.ea;null!==e;)i.add(t(e.key)),e=e.va;return i},lt.prototype.filter=function(t){for(var i=new $,e=this.ma.ea;null!==e;){var n=e.key;t(n)&&i.add(n),e=e.va}return i},lt.prototype.copy=function(){return new lt(this.ma)},lt.prototype.Iv=function(){var t,i=new $,e=this.ma.Tb;for(t in e)i.add(e[t].key);return i},lt.prototype.Fa=function(){var t,i=this.ma.Tb,e=Array(this.ma.Sb),n=0;for(t in i)e[n]=i[t].key,n++;return e},lt.prototype.Hv=function(){var t,i=new Z,e=this.ma.Tb;for(t in e)i.add(e[t].key);return i},f.Object.defineProperties(lt.prototype,{count:{get:function(){return this.ma.Sb}},size:{get:function(){return this.ma.Sb}},iterator:{get:function(){return 0>=this.ma.Sb?H:new ht(this.ma)}}}),lt.prototype.toList=lt.prototype.Hv,lt.prototype.toArray=lt.prototype.Fa,lt.prototype.toSet=lt.prototype.Iv,lt.prototype.first=lt.prototype.first,lt.prototype.clear=lt.prototype.clear,lt.prototype.delete=lt.prototype.delete,lt.prototype.remove=lt.prototype.remove,lt.prototype.has=lt.prototype.has,lt.prototype.contains=lt.prototype.contains,lt.prototype.add=lt.prototype.add,lt.prototype.thaw=lt.prototype.ka,lt.prototype.freeze=lt.prototype.freeze,lt.className="MapKeySet",ut.prototype.reset=function(){var t=this.ma;t.jf=null,this.qa=t.Ja,this.sa=null},ut.prototype.next=function(){var t=this.ma;if(t.Ja!==this.qa&&null===this.key)return!1;var i=this.sa;return null!==(i=null===i?t.ea:i.va)?(this.sa=i,this.value=i.value,this.key=i.key,!0):(this.de(),!1)},ut.prototype.Ad=function(){return this.next()},ut.prototype.first=function(){var t=this.ma;if(this.qa=t.Ja,null!==(t=t.ea)){this.sa=t;var i=t.value;return this.key=t.key,this.value=i}return null},ut.prototype.any=function(t){var i=this.ma;for(this.sa=i.jf=null,i=i.ea;null!==i;){if(t(i.value))return!0;i=i.va}return!1},ut.prototype.all=function(t){var i=this.ma;for(this.sa=i.jf=null,i=i.ea;null!==i;){if(!t(i.value))return!1;i=i.va}return!0},ut.prototype.each=function(t){var i=this.ma;for(this.sa=i.jf=null,i=i.ea;null!==i;)t(i.value),i=i.va;return this},ut.prototype.map=function(t){var i=this.ma;this.sa=i.jf=null;var e=new Z;for(i=i.ea;null!==i;)e.add(t(i.value)),i=i.va;return e.iterator},ut.prototype.filter=function(t){var i=this.ma;this.sa=i.jf=null;var e=new Z;for(i=i.ea;null!==i;){var n=i.value;t(n)&&e.add(n),i=i.va}return e.iterator},ut.prototype.de=function(){this.value=this.key=null,this.qa=-1,this.ma.jf=this},ut.prototype.toString=function(){return null!==this.sa?"MapValueSetIterator@"+this.sa.value:"MapValueSetIterator"},f.Object.defineProperties(ut.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.ma.Sb}}}),ut.prototype.first=ut.prototype.first,ut.prototype.hasNext=ut.prototype.Ad,ut.prototype.next=ut.prototype.next,ut.prototype.reset=ut.prototype.reset,ut.className="MapValueSetIterator",ct.prototype.toString=function(){return"{"+this.key+":"+this.value+"}"},ct.className="KeyValuePair",ft.prototype.reset=function(){var t=this.ma;t.Sa=null,this.qa=t.Ja,this.sa=null},ft.prototype.next=function(){var t=this.ma;if(t.Ja!==this.qa&&null===this.key)return!1;var i=this.sa;return null!==(i=null===i?t.ea:i.va)?(this.sa=i,this.key=i.key,this.value=i.value,!0):(this.de(),!1)},ft.prototype.Ad=function(){return this.next()},ft.prototype.first=function(){var t=this.ma;return this.qa=t.Ja,null!==(t=t.ea)?(this.sa=t,this.key=t.key,this.value=t.value,t):null},ft.prototype.any=function(t){var i=this.ma;for(this.sa=i.Sa=null,i=i.ea;null!==i;){if(t(i))return!0;i=i.va}return!1},ft.prototype.all=function(t){var i=this.ma;for(this.sa=i.Sa=null,i=i.ea;null!==i;){if(!t(i))return!1;i=i.va}return!0},ft.prototype.each=function(t){var i=this.ma;for(this.sa=i.Sa=null,i=i.ea;null!==i;)t(i),i=i.va;return this},ft.prototype.map=function(t){var i=this.ma;this.sa=i.Sa=null;var e=new Z;for(i=i.ea;null!==i;)e.add(t(i)),i=i.va;return e.iterator},ft.prototype.filter=function(t){var i=this.ma;this.sa=i.Sa=null;var e=new Z;for(i=i.ea;null!==i;)t(i)&&e.add(i),i=i.va;return e.iterator},ft.prototype.de=function(){this.value=this.key=null,this.qa=-1,this.ma.Sa=this},ft.prototype.toString=function(){return null!==this.sa?"MapIterator@"+this.sa:"MapIterator"},f.Object.defineProperties(ft.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.ma.Sb}}}),ft.prototype.first=ft.prototype.first,ft.prototype.hasNext=ft.prototype.Ad,ft.prototype.next=ft.prototype.next,ft.prototype.reset=ft.prototype.reset,ft.className="MapIterator",(i=dt.prototype).xb=function(){var t=this.Ja;999999999<++t&&(t=0),this.Ja=t},i.freeze=function(){return this._isFrozen=!0,this},i.ka=function(){return this._isFrozen=!1,this},i.toString=function(){return"Map()#"+it(this)},i.add=function(t,i){this._isFrozen&&k(this,t);var e=t;P(t)&&(e=tt(t));var n=this.Tb[e];return void 0===n?(this.Sb++,t=new ct(t,i),this.Tb[e]=t,null===(e=this.kf)?this.ea=t:(t.ll=e,e.va=t),this.kf=t,this.xb()):n.value=i,this},i.set=function(t,i){return this.add(t,i)},i.addAll=function(t){if(null===t)return this;if(N(t))for(var i=t.length,e=0;e<i;e++){var n=t[e];this.add(n.key,n.value)}else if(t instanceof dt)for(t=t.iterator;t.next();)this.add(t.key,t.value);else for(t=t.iterator;t.next();)i=t.value,this.add(i.key,i.value);return this},i.first=function(){return this.ea},dt.prototype.any=function(t){for(var i=this.ea;null!==i;){if(t(i))return!0;i=i.va}return!1},dt.prototype.all=function(t){for(var i=this.ea;null!==i;){if(!t(i))return!1;i=i.va}return!0},dt.prototype.each=function(t){for(var i=this.ea;null!==i;)t(i),i=i.va;return this},dt.prototype.map=function(t){for(var i=new dt,e=this.ea;null!==e;)i.add(e.key,t(e)),e=e.va;return i},dt.prototype.filter=function(t){for(var i=new dt,e=this.ea;null!==e;)t(e)&&i.add(e.key,e.value),e=e.va;return i},(i=dt.prototype).contains=function(t){var i=t;return(!P(t)||void 0!==(i=it(t)))&&void 0!==this.Tb[i]},i.has=function(t){return this.contains(t)},i.I=function(t){var i=t;return P(t)&&void 0===(i=it(t))||void 0===(t=this.Tb[i])?null:t.value},i.get=function(t){return this.I(t)},i.remove=function(t){if(null===t)return!1;this._isFrozen&&k(this,t);var i=t;if(P(t)&&void 0===(i=it(t)))return!1;if(void 0===(t=this.Tb[i]))return!1;var e=t.va,n=t.ll;return null!==e&&(e.ll=n),null!==n&&(n.va=e),this.ea===t&&(this.ea=e),this.kf===t&&(this.kf=n),delete this.Tb[i],this.Sb--,this.xb(),!0},i.delete=function(t){return this.remove(t)},i.clear=function(){this._isFrozen&&k(this),this.Tb={},this.Sb=0,null!==this.Sa&&this.Sa.reset(),null!==this.jf&&this.jf.reset(),this.kf=this.ea=null,this.xb()},dt.prototype.copy=function(){var t,i=new dt,e=this.Tb;for(t in e){var n=e[t];i.add(n.key,n.value)}return i},dt.prototype.Fa=function(){var t,i=this.Tb,e=Array(this.Sb),n=0;for(t in i){var o=i[t];e[n]=new ct(o.key,o.value),n++}return e},dt.prototype.Lf=function(){return new lt(this)},f.Object.defineProperties(dt.prototype,{count:{get:function(){return this.Sb}},size:{get:function(){return this.Sb}},iterator:{get:function(){if(0>=this.count)return H;var t=this.Sa;return null!==t?(t.reset(),t):new ft(this)}},iteratorKeys:{get:function(){return 0>=this.count?H:new ht(this)}},iteratorValues:{get:function(){if(0>=this.count)return H;var t=this.jf;return null!==t?(t.reset(),t):new ut(this)}}}),dt.prototype.toKeySet=dt.prototype.Lf,dt.prototype.toArray=dt.prototype.Fa,dt.prototype.clear=dt.prototype.clear,dt.prototype.delete=dt.prototype.delete,dt.prototype.remove=dt.prototype.remove,dt.prototype.get=dt.prototype.get,dt.prototype.getValue=dt.prototype.I,dt.prototype.has=dt.prototype.has,dt.prototype.contains=dt.prototype.contains,dt.prototype.first=dt.prototype.first,dt.prototype.addAll=dt.prototype.addAll,dt.prototype.set=dt.prototype.set,dt.prototype.add=dt.prototype.add,dt.prototype.thaw=dt.prototype.ka,dt.prototype.freeze=dt.prototype.freeze,dt.className="Map",pt.prototype.assign=function(t){return this.x=t.x,this.y=t.y,this},pt.prototype.h=function(t,i){return this.x=t,this.y=i,this},pt.prototype.sg=function(t,i){return this.x=t,this.y=i,this},pt.prototype.set=function(t){return this.x=t.x,this.y=t.y,this},pt.prototype.copy=function(){var t=new pt;return t.x=this.x,t.y=this.y,t},(i=pt.prototype).ja=function(){return this._isFrozen=!0,Object.freeze(this),this},i.J=function(){return this._isFrozen||Object.isFrozen(this)?this:this.copy().freeze()},i.freeze=function(){return this._isFrozen=!0,this},i.ka=function(){return Object.isFrozen(this)&&w("cannot thaw constant: "+this),this._isFrozen=!1,this},i.toString=function(){return"Point("+this.x+","+this.y+")"},i.D=function(t){return t instanceof pt&&(this.x===t.x&&this.y===t.y)},i.hi=function(t,i){return this.x===t&&this.y===i},i.Xa=function(t){return Xi.B(this.x,t.x)&&Xi.B(this.y,t.y)},i.add=function(t){return this.x+=t.x,this.y+=t.y,this},i.re=function(t){return this.x-=t.x,this.y-=t.y,this},i.offset=function(t,i){return this.x+=t,this.y+=i,this},pt.prototype.rotate=function(t){if(0===t)return this;var i=this.x,e=this.y;if(0===i&&0===e)return this;if(360<=t?t-=360:0>t&&(t+=360),90===t){t=0;var n=1}else 180===t?(t=-1,n=0):270===t?(t=0,n=-1):(n=t*Math.PI/180,t=Math.cos(n),n=Math.sin(n));return this.x=t*i-n*e,this.y=n*i+t*e,this},(i=pt.prototype).scale=function(t,i){return this.x*=t,this.y*=i,this},i.Bf=function(t){var i=t.x-this.x;return i*i+(t=t.y-this.y)*t},i.zd=function(t,i){return(t-=this.x)*t+(i-=this.y)*i},i.normalize=function(){var t=this.x,i=this.y,e=Math.sqrt(t*t+i*i);return 0<e&&(this.x=t/e,this.y=i/e),this},i.ab=function(t){return yt(t.x-this.x,t.y-this.y)},i.direction=function(t,i){return yt(t-this.x,i-this.y)},i.Ry=function(t,i){return Xi.Fl(t.x,t.y,i.x,i.y,this.x,this.y)},i.fA=function(t,i,e,n){return Xi.qh(t,i,e,n,this.x,this.y,this),this},i.gA=function(t,i){return Xi.qh(t.x,t.y,i.x,i.y,this.x,this.y,this),this},i.uA=function(t,i,e,n){return Xi.No(this.x,this.y,t,i,e,n,this),this},i.vA=function(t,i){return Xi.No(this.x,this.y,t.x,t.y,i.width,i.height,this),this},i.xi=function(t,i){return this.x=t.x+i.x*t.width+i.offsetX,this.y=t.y+i.y*t.height+i.offsetY,this},i.yi=function(t,i,e,n,o){return this.x=t+o.x*e+o.offsetX,this.y=i+o.y*n+o.offsetY,this},i.transform=function(t){return t.Ga(this),this},i.w=function(){return isFinite(this.x)&&isFinite(this.y)},pt.alloc=function(){var t=Lt.pop();return void 0===t?new pt:t},pt.allocAt=function(t,i){var e=Lt.pop();return void 0===e?new pt(t,i):(e.x=t,e.y=i,e)},pt.free=function(t){Lt.push(t)},pt.prototype.isReal=pt.prototype.w,pt.prototype.setSpot=pt.prototype.yi,pt.prototype.setRectSpot=pt.prototype.xi,pt.prototype.snapToGridPoint=pt.prototype.vA,pt.prototype.snapToGrid=pt.prototype.uA,pt.prototype.projectOntoLineSegmentPoint=pt.prototype.gA,pt.prototype.projectOntoLineSegment=pt.prototype.fA,pt.intersectingLineSegments=function(t,i,e,n,o,r,s,a){return Xi.Rl(t,i,e,n,o,r,s,a)},pt.prototype.compareWithLineSegmentPoint=pt.prototype.Ry,pt.compareWithLineSegment=function(t,i,e,n,o,r){return Xi.Fl(t,i,e,n,o,r)},pt.prototype.direction=pt.prototype.direction,pt.prototype.directionPoint=pt.prototype.ab,pt.prototype.normalize=pt.prototype.normalize,pt.prototype.distanceSquared=pt.prototype.zd,pt.prototype.distanceSquaredPoint=pt.prototype.Bf,pt.prototype.scale=pt.prototype.scale,pt.prototype.rotate=pt.prototype.rotate,pt.prototype.offset=pt.prototype.offset,pt.prototype.subtract=pt.prototype.re,pt.prototype.add=pt.prototype.add,pt.prototype.equalsApprox=pt.prototype.Xa,pt.prototype.equalTo=pt.prototype.hi,pt.prototype.equals=pt.prototype.D,pt.prototype.set=pt.prototype.set,pt.prototype.setTo=pt.prototype.sg;var kt,Mt,St,Pt,Nt,Ct,Tt,Lt=[];function At(t,i){void 0===t?this.height=this.width=0:"number"==typeof t&&(0<=t||isNaN(t))&&"number"==typeof i&&(0<=i||isNaN(i))?(this.width=t,this.height=i):w("Invalid arguments to Size constructor: "+t+", "+i),this._isFrozen=!1}function jt(t){if("string"==typeof t){t=t.split(" ");for(var i=0,e=0;""===t[i];)i++;var n=t[i++];n&&(e=parseFloat(n));for(var o=0;""===t[i];)i++;return(n=t[i++])&&(o=parseFloat(n)),new At(e,o)}return new At}function Ft(t){return t.width.toString()+" "+t.height.toString()}pt.className="Point",pt.parse=gt,pt.stringify=mt,pt.distanceLineSegmentSquared=xt,pt.distanceSquared=bt,pt.direction=wt,pt.Origin=et=new pt(0,0).ja(),pt.InfiniteTopLeft=nt=new pt(-1/0,-1/0).ja(),pt.InfiniteBottomRight=ot=new pt(1/0,1/0).ja(),pt.SixPoint=rt=new pt(6,6).ja(),pt.NoPoint=st=new pt(NaN,NaN).ja(),pt.parse=gt,pt.stringify=mt,pt.distanceLineSegmentSquared=xt,pt.distanceSquared=bt,pt.direction=wt,At.prototype.assign=function(t){return this.width=t.width,this.height=t.height,this},At.prototype.h=function(t,i){return this.width=t,this.height=i,this},At.prototype.sg=function(t,i){return this.width=t,this.height=i,this},At.prototype.set=function(t){return this.width=t.width,this.height=t.height,this},At.prototype.copy=function(){var t=new At;return t.width=this.width,t.height=this.height,t},(i=At.prototype).ja=function(){return this._isFrozen=!0,Object.freeze(this),this},i.J=function(){return this._isFrozen||Object.isFrozen(this)?this:this.copy().freeze()},i.freeze=function(){return this._isFrozen=!0,this},i.ka=function(){return Object.isFrozen(this)&&w("cannot thaw constant: "+this),this._isFrozen=!1,this},i.toString=function(){return"Size("+this.width+","+this.height+")"},i.D=function(t){return t instanceof At&&(this.width===t.width&&this.height===t.height)},i.hi=function(t,i){return this.width===t&&this.height===i},i.Xa=function(t){return Xi.B(this.width,t.width)&&Xi.B(this.height,t.height)},i.Bc=function(t,i){return t=this.width+t,this.width=0<=t?t:0,i=this.height+i,this.height=0<=i?i:0,this},i.w=function(){return isFinite(this.width)&&isFinite(this.height)},At.alloc=function(){var t=Dt.pop();return void 0===t?new At:t},At.free=function(t){Dt.push(t)},At.prototype.isReal=At.prototype.w,At.prototype.inflate=At.prototype.Bc,At.prototype.equalsApprox=At.prototype.Xa,At.prototype.equalTo=At.prototype.hi,At.prototype.equals=At.prototype.D,At.prototype.set=At.prototype.set,At.prototype.setTo=At.prototype.sg;var Dt=[];function Bt(t,i,e,n){void 0===t?this.height=this.width=this.y=this.x=0:"number"==typeof t&&"number"==typeof i&&"number"==typeof e&&(0<=e||isNaN(e))&&"number"==typeof n&&(0<=n||isNaN(n))?(this.x=t,this.y=i,this.width=e,this.height=n):t instanceof pt?(e=t.x,t=t.y,i instanceof pt?(n=i.x,i=i.y,this.x=Math.min(e,n),this.y=Math.min(t,i),this.width=Math.abs(e-n),this.height=Math.abs(t-i)):i instanceof At?(this.x=e,this.y=t,this.width=i.width,this.height=i.height):w("Incorrect second argument supplied to Rect constructor "+i)):w("Invalid arguments to Rect constructor: "+t+", "+i+", "+e+", "+n),this._isFrozen=!1}function Ot(t,i,e){t.width=i,t.height=e}function It(t){if("string"==typeof t){t=t.split(" ");for(var i=0,e=0;""===t[i];)i++;var n=t[i++];n&&(e=parseFloat(n));for(var o=0;""===t[i];)i++;(n=t[i++])&&(o=parseFloat(n));for(var r=0;""===t[i];)i++;(n=t[i++])&&(r=parseFloat(n));for(var s=0;""===t[i];)i++;return(n=t[i++])&&(s=parseFloat(n)),new Bt(e,o,r,s)}return new Bt}function zt(t){return t.x.toString()+" "+t.y.toString()+" "+t.width.toString()+" "+t.height.toString()}function Rt(t,i){return Xi.$(t.x,i.x)&&Xi.$(t.y,i.y)&&Xi.$(t.width,i.width)&&Xi.$(t.height,i.height)}function Et(t,i,e,n,o){var r=t.width;return e+o<=-r?(t.x+=r/2,t.width=0):(t.x-=o,t.width+=e+o),i+n<=-(e=t.height)?(t.y+=e/2,t.height=0):(t.y-=i,t.height+=i+n),t}function Vt(t,i,e,n,o){var r=Math.max(t.x,i),s=Math.max(t.y,e);return i=Math.min(t.x+t.width,i+n),e=Math.min(t.y+t.height,e+o),t.x=r,t.y=s,t.width=Math.max(0,i-r),t.height=Math.max(0,e-s),t}function Yt(t,i){var e=t.width,n=t.x,o=i.x-10;return!(n>i.width+10+10+o||o>e+n)&&(e=t.height,t=t.y,n=i.y-10,!(t>i.height+10+10+n||n>e+t))}function Gt(t,i,e,n,o){var r=Math.min(t.x,i),s=Math.min(t.y,e);return i=Math.max(t.x+t.width,i+n),e=Math.max(t.y+t.height,e+o),t.x=r,t.y=s,t.width=i-r,t.height=e-s,t}function Xt(t,i,e,n,o,r,s,a){return void 0===s&&(s=0),void 0===a&&(a=0),t<=o&&o+s<=t+e&&i<=r&&r+a<=i+n}function Ut(t,i,e,n,o,r,s,a){return!(t>s+o||o>e+t)&&!(i>a+r||r>n+i)}At.className="Size",At.parse=jt,At.stringify=Ft,At.ZeroSize=kt=new At(0,0).ja(),At.OneSize=Mt=new At(1,1).ja(),At.SixSize=St=new At(6,6).ja(),At.EightSize=Pt=new At(8,8).ja(),At.TenSize=Nt=new At(10,10).ja(),At.InfiniteSize=Ct=new At(1/0,1/0).ja(),At.NoSize=Tt=new At(NaN,NaN).ja(),At.parse=jt,At.stringify=Ft,(i=Bt.prototype).assign=function(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this},i.h=function(t,i,e,n){return this.x=t,this.y=i,this.width=e,this.height=n,this},i.sg=function(t,i,e,n){return this.x=t,this.y=i,this.width=e,this.height=n,this},i.set=function(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this},i.dd=function(t){return this.x=t.x,this.y=t.y,this},i.tA=function(t){return this.width=t.width,this.height=t.height,this},Bt.prototype.copy=function(){var t=new Bt;return t.x=this.x,t.y=this.y,t.width=this.width,t.height=this.height,t},(i=Bt.prototype).ja=function(){return this._isFrozen=!0,Object.freeze(this),this},i.J=function(){return this._isFrozen||Object.isFrozen(this)?this:this.copy().freeze()},i.freeze=function(){return this._isFrozen=!0,this},i.ka=function(){return Object.isFrozen(this)&&w("cannot thaw constant: "+this),this._isFrozen=!1,this},i.toString=function(){return"Rect("+this.x+","+this.y+","+this.width+","+this.height+")"},i.D=function(t){return t instanceof Bt&&(this.x===t.x&&this.y===t.y&&this.width===t.width&&this.height===t.height)},i.hi=function(t,i,e,n){return this.x===t&&this.y===i&&this.width===e&&this.height===n},i.Xa=function(t){return Xi.B(this.x,t.x)&&Xi.B(this.y,t.y)&&Xi.B(this.width,t.width)&&Xi.B(this.height,t.height)},i.ca=function(t){return this.x<=t.x&&this.x+this.width>=t.x&&this.y<=t.y&&this.y+this.height>=t.y},i.Re=function(t){return this.x<=t.x&&t.x+t.width<=this.x+this.width&&this.y<=t.y&&t.y+t.height<=this.y+this.height},i.contains=function(t,i,e,n){return void 0===e&&(e=0),void 0===n&&(n=0),this.x<=t&&t+e<=this.x+this.width&&this.y<=i&&i+n<=this.y+this.height},i.offset=function(t,i){return this.x+=t,this.y+=i,this},i.Bc=function(t,i){return Et(this,i,t,i,t)},i.Co=function(t){return Et(this,t.top,t.right,t.bottom,t.left)},i.Fv=function(t){return Et(this,-t.top,-t.right,-t.bottom,-t.left)},i.Hz=function(t,i,e,n){return Et(this,t,i,e,n)},i.Ex=function(t){return Vt(this,t.x,t.y,t.width,t.height)},i.Uu=function(t,i,e,n){return Vt(this,t,i,e,n)},i.Yc=function(t){return this.Vu(t.x,t.y,t.width,t.height)},i.Vu=function(t,i,e,n){var o=this.width,r=this.x;return!(1/0!==o&&1/0!==e&&(o+=r,e+=t,isNaN(e)||isNaN(o)||r>e||t>o))&&(t=this.height,e=this.y,!(1/0!==t&&1/0!==n&&(t+=e,n+=i,isNaN(n)||isNaN(t)||e>n||i>t)))},i.Ye=function(t){return Gt(this,t.x,t.y,0,0)},i.ed=function(t){return Gt(this,t.x,t.y,t.width,t.height)},i.Kv=function(t,i,e,n){return void 0===e&&(e=0),void 0===n&&(n=0),Gt(this,t,i,e,n)},i.yi=function(t,i,e){return this.x=t-e.offsetX-e.x*this.width,this.y=i-e.offsetY-e.y*this.height,this},i.w=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},i.Mz=function(){return 0===this.width&&0===this.height},Bt.alloc=function(){var t=Kt.pop();return void 0===t?new Bt:t},Bt.allocAt=function(t,i,e,n){var o=Kt.pop();return void 0===o?new Bt(t,i,e,n):o.h(t,i,e,n)},Bt.free=function(t){Kt.push(t)},f.Object.defineProperties(Bt.prototype,{left:{get:function(){return this.x},set:function(t){this.x=t}},top:{get:function(){return this.y},set:function(t){this.y=t}},right:{get:function(){return this.x+this.width},set:function(t){this.x+=t-(this.x+this.width)}},bottom:{get:function(){return this.y+this.height},set:function(t){this.y+=t-(this.y+this.height)}},position:{get:function(){return new pt(this.x,this.y)},set:function(t){this.x=t.x,this.y=t.y}},size:{get:function(){return new At(this.width,this.height)},set:function(t){this.width=t.width,this.height=t.height}},center:{get:function(){return new pt(this.x+this.width/2,this.y+this.height/2)},set:function(t){this.x=t.x-this.width/2,this.y=t.y-this.height/2}},centerX:{get:function(){return this.x+this.width/2},set:function(t){this.x=t-this.width/2}},centerY:{get:function(){return this.y+this.height/2},set:function(t){this.y=t-this.height/2}}}),Bt.prototype.isEmpty=Bt.prototype.Mz,Bt.prototype.isReal=Bt.prototype.w,Bt.intersectsLineSegment=function(t,i,e,n,o,r,s,a){return Xi.Fx(t,i,e,n,o,r,s,a)},Bt.prototype.setSpot=Bt.prototype.yi,Bt.prototype.union=Bt.prototype.Kv,Bt.prototype.unionRect=Bt.prototype.ed,Bt.prototype.unionPoint=Bt.prototype.Ye,Bt.prototype.intersects=Bt.prototype.Vu,Bt.prototype.intersectsRect=Bt.prototype.Yc,Bt.prototype.intersect=Bt.prototype.Uu,Bt.prototype.intersectRect=Bt.prototype.Ex,Bt.prototype.grow=Bt.prototype.Hz,Bt.prototype.subtractMargin=Bt.prototype.Fv,Bt.prototype.addMargin=Bt.prototype.Co,Bt.prototype.inflate=Bt.prototype.Bc,Bt.prototype.offset=Bt.prototype.offset,Bt.prototype.contains=Bt.prototype.contains,Bt.prototype.containsRect=Bt.prototype.Re,Bt.prototype.containsPoint=Bt.prototype.ca,Bt.prototype.equalsApprox=Bt.prototype.Xa,Bt.prototype.equalTo=Bt.prototype.hi,Bt.prototype.equals=Bt.prototype.D,Bt.prototype.setSize=Bt.prototype.tA,Bt.prototype.setPoint=Bt.prototype.dd,Bt.prototype.set=Bt.prototype.set,Bt.prototype.setTo=Bt.prototype.sg;var qt,Ht,Kt=[];function Wt(t,i,e,n){void 0===t?this.left=this.bottom=this.right=this.top=0:void 0===i?this.left=this.bottom=this.right=this.top=t:void 0===e?(this.top=t,this.right=i,this.bottom=t,this.left=i):void 0!==n?(this.top=t,this.right=i,this.bottom=e,this.left=n):w("Invalid arguments to Margin constructor: "+t+", "+i+", "+e+", "+n),this._isFrozen=!1}function Jt(t){if("string"==typeof t){t=t.split(" ");for(var i=0,e=NaN;""===t[i];)i++;var n=t[i++];if(n&&(e=parseFloat(n)),isNaN(e))return new Wt;for(var o=NaN;""===t[i];)i++;if((n=t[i++])&&(o=parseFloat(n)),isNaN(o))return new Wt(e);for(var r=NaN;""===t[i];)i++;if((n=t[i++])&&(r=parseFloat(n)),isNaN(r))return new Wt(e,o);for(var s=NaN;""===t[i];)i++;return(n=t[i++])&&(s=parseFloat(n)),isNaN(s)?new Wt(e,o):new Wt(e,o,r,s)}return new Wt}function Zt(t){return t.top.toString()+" "+t.right.toString()+" "+t.bottom.toString()+" "+t.left.toString()}Bt.className="Rect",Bt.parse=It,Bt.stringify=zt,Bt.contains=Xt,Bt.intersects=Ut,Bt.ZeroRect=qt=new Bt(0,0,0,0).ja(),Bt.NoRect=Ht=new Bt(NaN,NaN,NaN,NaN).ja(),Bt.parse=It,Bt.stringify=zt,Bt.contains=Xt,Bt.intersects=Ut,Wt.prototype.assign=function(t){return this.top=t.top,this.right=t.right,this.bottom=t.bottom,this.left=t.left,this},Wt.prototype.sg=function(t,i,e,n){return this.top=t,this.right=i,this.bottom=e,this.left=n,this},Wt.prototype.set=function(t){return this.top=t.top,this.right=t.right,this.bottom=t.bottom,this.left=t.left,this},Wt.prototype.copy=function(){var t=new Wt;return t.top=this.top,t.right=this.right,t.bottom=this.bottom,t.left=this.left,t},(i=Wt.prototype).ja=function(){return this._isFrozen=!0,Object.freeze(this),this},i.J=function(){return this._isFrozen||Object.isFrozen(this)?this:this.copy().freeze()},i.freeze=function(){return this._isFrozen=!0,this},i.ka=function(){return Object.isFrozen(this)&&w("cannot thaw constant: "+this),this._isFrozen=!1,this},i.toString=function(){return"Margin("+this.top+","+this.right+","+this.bottom+","+this.left+")"},i.D=function(t){return t instanceof Wt&&(this.top===t.top&&this.right===t.right&&this.bottom===t.bottom&&this.left===t.left)},i.hi=function(t,i,e,n){return this.top===t&&this.right===i&&this.bottom===e&&this.left===n},i.Xa=function(t){return Xi.B(this.top,t.top)&&Xi.B(this.right,t.right)&&Xi.B(this.bottom,t.bottom)&&Xi.B(this.left,t.left)},i.w=function(){return isFinite(this.top)&&isFinite(this.right)&&isFinite(this.bottom)&&isFinite(this.left)},Wt.alloc=function(){var t=Oi.pop();return void 0===t?new Wt:t},Wt.free=function(t){Oi.push(t)},Wt.prototype.isReal=Wt.prototype.w,Wt.prototype.equalsApprox=Wt.prototype.Xa,Wt.prototype.equalTo=Wt.prototype.hi,Wt.prototype.equals=Wt.prototype.D,Wt.prototype.set=Wt.prototype.set,Wt.prototype.setTo=Wt.prototype.sg;var _t,$t,Qt,ti,ii,ei,ni,oi,ri,si,ai,hi,li,ui,ci,fi,di,pi,gi,mi,yi,vi,xi,bi,wi,ki,Mi,Si,Pi,Ni,Ci,Ti,Li,Ai,ji,Fi,Di,Bi,Oi=[];function Ii(t,i,e,n){void 0===t?this.offsetY=this.offsetX=this.y=this.x=0:(void 0===i&&(i=0),void 0===e&&(e=0),void 0===n&&(n=0),this.x=t,this.y=i,this.offsetX=e,this.offsetY=n),this._isFrozen=!1}function zi(t,i){return t.x=NaN,t.y=NaN,t.offsetX=i,t}function Ri(t){if("string"==typeof t){if("None"===(t=t.trim()))return Qt;if("TopLeft"===t)return ti;if("Top"===t||"TopCenter"===t||"MiddleTop"===t)return ii;if("TopRight"===t)return ei;if("Left"===t||"LeftCenter"===t||"MiddleLeft"===t)return ni;if("Center"===t)return oi;if("Right"===t||"RightCenter"===t||"MiddleRight"===t)return ri;if("BottomLeft"===t)return si;if("Bottom"===t||"BottomCenter"===t||"MiddleBottom"===t)return ai;if("BottomRight"===t)return hi;if("TopSide"===t)return li;if("LeftSide"===t)return ui;if("RightSide"===t)return ci;if("BottomSide"===t)return fi;if("TopBottomSides"===t)return di;if("LeftRightSides"===t)return pi;if("TopLeftSides"===t)return gi;if("TopRightSides"===t)return mi;if("BottomLeftSides"===t)return yi;if("BottomRightSides"===t)return vi;if("NotTopSide"===t)return xi;if("NotLeftSide"===t)return bi;if("NotRightSide"===t)return wi;if("NotBottomSide"===t)return ki;if("AllSides"===t)return Mi;if("Default"===t)return Si;t=t.split(" ");for(var i=0,e=0;""===t[i];)i++;var n=t[i++];void 0!==n&&0<n.length&&(e=parseFloat(n));for(var o=0;""===t[i];)i++;void 0!==(n=t[i++])&&0<n.length&&(o=parseFloat(n));for(var r=0;""===t[i];)i++;void 0!==(n=t[i++])&&0<n.length&&(r=parseFloat(n));for(var s=0;""===t[i];)i++;return void 0!==(n=t[i++])&&0<n.length&&(s=parseFloat(n)),new Ii(e,o,r,s)}return new Ii}function Ei(t){return t.sb()?t.x.toString()+" "+t.y.toString()+" "+t.offsetX.toString()+" "+t.offsetY.toString():t.toString()}Wt.className="Margin",Wt.parse=Jt,Wt.stringify=Zt,Wt.ZeroMargin=_t=new Wt(0,0,0,0).ja(),Wt.TwoMargin=$t=new Wt(2,2,2,2).ja(),Wt.parse=Jt,Wt.stringify=Zt,Ii.prototype.assign=function(t){return this.x=t.x,this.y=t.y,this.offsetX=t.offsetX,this.offsetY=t.offsetY,this},Ii.prototype.sg=function(t,i,e,n){return this.x=t,this.y=i,this.offsetX=e,this.offsetY=n,this},Ii.prototype.set=function(t){return this.x=t.x,this.y=t.y,this.offsetX=t.offsetX,this.offsetY=t.offsetY,this},Ii.prototype.copy=function(){var t=new Ii;return t.x=this.x,t.y=this.y,t.offsetX=this.offsetX,t.offsetY=this.offsetY,t},(i=Ii.prototype).ja=function(){return this._isFrozen=!0,Object.freeze(this),this},i.J=function(){return this._isFrozen||Object.isFrozen(this)?this:this.copy().freeze()},i.freeze=function(){return this._isFrozen=!0,this},i.ka=function(){return Object.isFrozen(this)&&w("cannot thaw constant: "+this),this._isFrozen=!1,this},i.toString=function(){return this.sb()?0===this.offsetX&&0===this.offsetY?"Spot("+this.x+","+this.y+")":"Spot("+this.x+","+this.y+","+this.offsetX+","+this.offsetY+")":this.D(Qt)?"None":this.D(ti)?"TopLeft":this.D(ii)?"Top":this.D(ei)?"TopRight":this.D(ni)?"Left":this.D(oi)?"Center":this.D(ri)?"Right":this.D(si)?"BottomLeft":this.D(ai)?"Bottom":this.D(hi)?"BottomRight":this.D(li)?"TopSide":this.D(ui)?"LeftSide":this.D(ci)?"RightSide":this.D(fi)?"BottomSide":this.D(di)?"TopBottomSides":this.D(pi)?"LeftRightSides":this.D(gi)?"TopLeftSides":this.D(mi)?"TopRightSides":this.D(yi)?"BottomLeftSides":this.D(vi)?"BottomRightSides":this.D(xi)?"NotTopSide":this.D(bi)?"NotLeftSide":this.D(wi)?"NotRightSide":this.D(ki)?"NotBottomSide":this.D(Mi)?"AllSides":this.D(Si)?"Default":"None"},i.D=function(t){return t instanceof Ii&&((this.x===t.x||isNaN(this.x)&&isNaN(t.x))&&(this.y===t.y||isNaN(this.y)&&isNaN(t.y))&&this.offsetX===t.offsetX&&this.offsetY===t.offsetY)},i.gv=function(){return new Ii(.5-(this.x-.5),.5-(this.y-.5),-this.offsetX,-this.offsetY)},i.Hf=function(t){if(!this.$c())return!1;if(!t.$c())if(t.D(Pi))t=ui;else if(t.D(Ni))t=ci;else if(t.D(Ci))t=li;else{if(!t.D(Ti))return!1;t=fi}return t=t.offsetY,(this.offsetY&t)===t},i.sb=function(){return!isNaN(this.x)&&!isNaN(this.y)},i.Mc=function(){return isNaN(this.x)||isNaN(this.y)},i.$c=function(){return isNaN(this.x)&&isNaN(this.y)&&1===this.offsetX&&0!==this.offsetY},i.ys=function(){return isNaN(this.x)&&isNaN(this.y)&&0===this.offsetX&&0===this.offsetY},i.Xb=function(){return isNaN(this.x)&&isNaN(this.y)&&-1===this.offsetX&&0===this.offsetY},Ii.alloc=function(){var t=Vi.pop();return void 0===t?new Ii:t},Ii.free=function(t){Vi.push(t)},Ii.prototype.isDefault=Ii.prototype.Xb,Ii.prototype.isNone=Ii.prototype.ys,Ii.prototype.isSide=Ii.prototype.$c,Ii.prototype.isNoSpot=Ii.prototype.Mc,Ii.prototype.isSpot=Ii.prototype.sb,Ii.prototype.includesSide=Ii.prototype.Hf,Ii.prototype.opposite=Ii.prototype.gv,Ii.prototype.equals=Ii.prototype.D,Ii.prototype.set=Ii.prototype.set,Ii.prototype.setTo=Ii.prototype.sg;var Vi=[];function Yi(){this.m11=1,this.m21=this.m12=0,this.m22=1,this.dy=this.dx=0}Ii.className="Spot",Ii.parse=Ri,Ii.stringify=Ei,Ii.None=Qt=zi(new Ii(0,0,0,0),0).ja(),Ii.Default=Si=zi(new Ii(0,0,-1,0),-1).ja(),Ii.TopLeft=ti=new Ii(0,0,0,0).ja(),Ii.TopCenter=ii=new Ii(.5,0,0,0).ja(),Ii.TopRight=ei=new Ii(1,0,0,0).ja(),Ii.LeftCenter=ni=new Ii(0,.5,0,0).ja(),Ii.Center=oi=new Ii(.5,.5,0,0).ja(),Ii.RightCenter=ri=new Ii(1,.5,0,0).ja(),Ii.BottomLeft=si=new Ii(0,1,0,0).ja(),Ii.BottomCenter=ai=new Ii(.5,1,0,0).ja(),Ii.BottomRight=hi=new Ii(1,1,0,0).ja(),Ii.MiddleTop=Li=ii,Ii.MiddleLeft=Ai=ni,Ii.MiddleRight=ji=ri,Ii.MiddleBottom=Fi=ai,Ii.Top=Ci=ii,Ii.Left=Pi=ni,Ii.Right=Ni=ri,Ii.Bottom=Ti=ai,Ii.TopSide=li=zi(new Ii(0,0,1,1),1).ja(),Ii.LeftSide=ui=zi(new Ii(0,0,1,2),1).ja(),Ii.RightSide=ci=zi(new Ii(0,0,1,4),1).ja(),Ii.BottomSide=fi=zi(new Ii(0,0,1,8),1).ja(),Ii.TopBottomSides=di=zi(new Ii(0,0,1,9),1).ja(),Ii.LeftRightSides=pi=zi(new Ii(0,0,1,6),1).ja(),Ii.TopLeftSides=gi=zi(new Ii(0,0,1,3),1).ja(),Ii.TopRightSides=mi=zi(new Ii(0,0,1,5),1).ja(),Ii.BottomLeftSides=yi=zi(new Ii(0,0,1,10),1).ja(),Ii.BottomRightSides=vi=zi(new Ii(0,0,1,12),1).ja(),Ii.NotTopSide=xi=zi(new Ii(0,0,1,14),1).ja(),Ii.NotLeftSide=bi=zi(new Ii(0,0,1,13),1).ja(),Ii.NotRightSide=wi=zi(new Ii(0,0,1,11),1).ja(),Ii.NotBottomSide=ki=zi(new Ii(0,0,1,7),1).ja(),Ii.AllSides=Mi=zi(new Ii(0,0,1,15),1).ja(),Di=new Ii(.156,.156).ja(),Bi=new Ii(.844,.844).ja(),Ii.parse=Ri,Ii.stringify=Ei,Yi.prototype.set=function(t){return this.m11=t.m11,this.m12=t.m12,this.m21=t.m21,this.m22=t.m22,this.dx=t.dx,this.dy=t.dy,this},Yi.prototype.setTransform=function(t,i,e,n,o,r){return this.m11=t,this.m12=i,this.m21=e,this.m22=n,this.dx=o,this.dy=r,this},Yi.prototype.copy=function(){var t=new Yi;return t.m11=this.m11,t.m12=this.m12,t.m21=this.m21,t.m22=this.m22,t.dx=this.dx,t.dy=this.dy,t},Yi.prototype.toString=function(){return"Transform("+this.m11+","+this.m12+","+this.m21+","+this.m22+","+this.dx+","+this.dy+")"},Yi.prototype.D=function(t){return this.m11===t.m11&&this.m12===t.m12&&this.m21===t.m21&&this.m22===t.m22&&this.dx===t.dx&&this.dy===t.dy},Yi.prototype.ws=function(){return 0===this.dx&&0===this.dy&&1===this.m11&&0===this.m12&&0===this.m21&&1===this.m22},Yi.prototype.reset=function(){return this.m11=1,this.m21=this.m12=0,this.m22=1,this.dy=this.dx=0,this},Yi.prototype.multiply=function(t){var i=this.m11*t.m11+this.m21*t.m12,e=this.m12*t.m11+this.m22*t.m12,n=this.m11*t.m21+this.m21*t.m22,o=this.m12*t.m21+this.m22*t.m22;return this.dx=this.m11*t.dx+this.m21*t.dy+this.dx,this.dy=this.m12*t.dx+this.m22*t.dy+this.dy,this.m11=i,this.m12=e,this.m21=n,this.m22=o,this},Yi.prototype.bv=function(t){var i=1/(t.m11*t.m22-t.m12*t.m21),e=t.m22*i,n=-t.m12*i,o=-t.m21*i,r=t.m11*i,s=i*(t.m21*t.dy-t.m22*t.dx);return t=i*(t.m12*t.dx-t.m11*t.dy),i=this.m11*e+this.m21*n,e=this.m12*e+this.m22*n,n=this.m11*o+this.m21*r,o=this.m12*o+this.m22*r,this.dx=this.m11*s+this.m21*t+this.dx,this.dy=this.m12*s+this.m22*t+this.dy,this.m11=i,this.m12=e,this.m21=n,this.m22=o,this},Yi.prototype.Vj=function(){var t=1/(this.m11*this.m22-this.m12*this.m21),i=-this.m12*t,e=-this.m21*t,n=this.m11*t,o=t*(this.m21*this.dy-this.m22*this.dx),r=t*(this.m12*this.dx-this.m11*this.dy);return this.m11=this.m22*t,this.m12=i,this.m21=e,this.m22=n,this.dx=o,this.dy=r,this},Yi.prototype.rotate=function(t,i,e){if(360<=t?t-=360:0>t&&(t+=360),0===t)return this;if(this.translate(i,e),90===t){t=0;var n=1}else 180===t?(t=-1,n=0):270===t?(t=0,n=-1):(n=t*Math.PI/180,t=Math.cos(n),n=Math.sin(n));var o=this.m12*t+this.m22*n,r=this.m11*-n+this.m21*t,s=this.m12*-n+this.m22*t;return this.m11=this.m11*t+this.m21*n,this.m12=o,this.m21=r,this.m22=s,this.translate(-i,-e),this},(i=Yi.prototype).translate=function(t,i){return this.dx+=this.m11*t+this.m21*i,this.dy+=this.m12*t+this.m22*i,this},i.scale=function(t,i){return void 0===i&&(i=t),this.m11*=t,this.m12*=t,this.m21*=i,this.m22*=i,this},i.Ga=function(t){var i=t.x,e=t.y;return t.h(i*this.m11+e*this.m21+this.dx,i*this.m12+e*this.m22+this.dy)},i.Cd=function(t){var i=1/(this.m11*this.m22-this.m12*this.m21),e=t.x,n=t.y;return t.h(e*this.m22*i+n*-this.m21*i+i*(this.m21*this.dy-this.m22*this.dx),e*-this.m12*i+n*this.m11*i+i*(this.m12*this.dx-this.m11*this.dy))},i.Eu=function(t){var i=1/(this.m11*this.m22-this.m12*this.m21),e=1.25*t.x,n=1.2*t.y;return t.h(e*this.m22*i+n*-this.m21*i+i*(this.m21*this.dy-this.m22*this.dx),e*-this.m12*i+n*this.m11*i+i*(this.m12*this.dx-this.m11*this.dy))},i.pp=function(t){var i=t.x,e=t.y,n=i+t.width,o=e+t.height,r=this.m11,s=this.m12,a=this.m21,h=this.m22,l=this.dx,u=this.dy,c=i*r+e*a+l,f=i*s+e*h+u,d=n*r+e*a+l,p=n*s+e*h+u;return e=i*r+o*a+l,i=i*s+o*h+u,r=n*r+o*a+l,n=n*s+o*h+u,o=Math.min(c,d),c=Math.max(c,d),d=Math.min(f,p),f=Math.max(f,p),o=Math.min(o,e),c=Math.max(c,e),d=Math.min(d,i),f=Math.max(f,i),o=Math.min(o,r),c=Math.max(c,r),d=Math.min(d,n),f=Math.max(f,n),t.h(o,d,c-o,f-d),t},Yi.alloc=function(){var t=Gi.pop();return void 0===t?new Yi:t},Yi.free=function(t){Gi.push(t)},Yi.prototype.transformRect=Yi.prototype.pp,Yi.prototype.transformPoint=Yi.prototype.Ga,Yi.prototype.scale=Yi.prototype.scale,Yi.prototype.translate=Yi.prototype.translate,Yi.prototype.rotate=Yi.prototype.rotate,Yi.prototype.invert=Yi.prototype.Vj,Yi.prototype.multiplyInverted=Yi.prototype.bv,Yi.prototype.multiply=Yi.prototype.multiply,Yi.prototype.reset=Yi.prototype.reset,Yi.prototype.isIdentity=Yi.prototype.ws,Yi.prototype.equals=Yi.prototype.D,Yi.prototype.setTransform=Yi.prototype.setTransform,Yi.prototype.set=Yi.prototype.set;var Gi=[];Yi.className="Transform",Yi.xF="54a702f3e53909c447824c6706603faf4c";var Xi={AA:"7da71ca0ad381e90",wg:(Math.sqrt(2)-1)/3*4,Uv:null,sqrt:function(t){if(0>=t)return 0;var i=Xi.Uv;if(null===i){i=[];for(var e=0;2e3>=e;e++)i[e]=Math.sqrt(e);Xi.Uv=i}return 1>t?2e3>=(e=1/t)?1/i[0|e]:Math.sqrt(t):2e3>=t?i[0|t]:Math.sqrt(t)},B:function(t,i){return.5>(t-=i)&&-.5<t},$:function(t,i){return 5e-8>(t-=i)&&-5e-8<t},Yb:function(t,i,e,n,o,r,s){if(0>=o&&(o=1e-6),t<e)var a=t,h=e;else a=e,h=t;if(i<n)var l=i,u=n;else l=n,u=i;if(t===e)return l<=s&&s<=u&&t-o<=r&&r<=t+o;if(i===n)return a<=r&&r<=h&&i-o<=s&&s<=i+o;if(h+=o,(a-=o)<=r&&r<=h&&(u+=o,(l-=o)<=s&&s<=u))if(h-a>u-l){if(!(t-e>o||e-t>o))return!0;if((r=(n-i)/(e-t)*(r-t)+i)-o<=s&&s<=r+o)return!0}else{if(!(i-n>o||n-i>o))return!0;if((s=(e-t)/(n-i)*(s-i)+t)-o<=r&&r<=s+o)return!0}return!1},cs:function(t,i,e,n,o,r,s,a,h,l,u,c){if(Xi.Yb(t,i,s,a,c,e,n)&&Xi.Yb(t,i,s,a,c,o,r))return Xi.Yb(t,i,s,a,c,l,u);var f=(t+e)/2,d=(i+n)/2,p=(e+o)/2,g=(n+r)/2,m=((n=(f+p)/2)+(p=(p+(o=(o+s)/2))/2))/2,y=((e=(d+g)/2)+(g=(g+(r=(r+a)/2))/2))/2;return Xi.cs(t,i,f,d,n,e,m,y,h,l,u,c)||Xi.cs(m,y,p,g,o,r,s,a,h,l,u,c)},ax:function(t,i,e,n,o,r,s,a,h){var l=(e+o)/2,u=(n+r)/2;return h.h((((t+e)/2+l)/2+(l+(o+s)/2)/2)/2,(((i+n)/2+u)/2+(u+(r+a)/2)/2)/2),h},My:function(t,i,e,n,o,r,s,a){var h=(e+o)/2,l=(n+r)/2;return wt(((t+e)/2+h)/2,((i+n)/2+l)/2,(h+(o+s)/2)/2,(l+(r+a)/2)/2)},Dl:function(t,i,e,n,o,r,s,a,h,l){if(Xi.Yb(t,i,s,a,h,e,n)&&Xi.Yb(t,i,s,a,h,o,r))Gt(l,t,i,0,0),Gt(l,s,a,0,0);else{var u=(t+e)/2,c=(i+n)/2,f=(e+o)/2,d=(n+r)/2,p=((n=(u+f)/2)+(f=(f+(o=(o+s)/2))/2))/2,g=((e=(c+d)/2)+(d=(d+(r=(r+a)/2))/2))/2;Xi.Dl(t,i,u,c,n,e,p,g,h,l),Xi.Dl(p,g,f,d,o,r,s,a,h,l)}return l},Qe:function(t,i,e,n,o,r,s,a,h,l){if(Xi.Yb(t,i,s,a,h,e,n)&&Xi.Yb(t,i,s,a,h,o,r))0===l.length&&(l.push(t),l.push(i)),l.push(s),l.push(a);else{var u=(t+e)/2,c=(i+n)/2,f=(e+o)/2,d=(n+r)/2,p=((n=(u+f)/2)+(f=(f+(o=(o+s)/2))/2))/2,g=((e=(c+d)/2)+(d=(d+(r=(r+a)/2))/2))/2;Xi.Qe(t,i,u,c,n,e,p,g,h,l),Xi.Qe(p,g,f,d,o,r,s,a,h,l)}return l},jv:function(t,i,e,n,o,r,s,a,h,l){if(Xi.Yb(t,i,o,r,l,e,n))return Xi.Yb(t,i,o,r,l,a,h);var u=(t+e)/2,c=(i+n)/2,f=(u+(e=(e+o)/2))/2,d=(c+(n=(n+r)/2))/2;return Xi.jv(t,i,u,c,f,d,s,a,h,l)||Xi.jv(f,d,e,n,o,r,s,a,h,l)},OA:function(t,i,e,n,o,r,s){return s.h(((t+e)/2+(e+o)/2)/2,((i+n)/2+(n+r)/2)/2),s},iv:function(t,i,e,n,o,r,s,a){if(Xi.Yb(t,i,o,r,s,e,n))Gt(a,t,i,0,0),Gt(a,o,r,0,0);else{var h=(t+e)/2,l=(i+n)/2,u=(h+(e=(e+o)/2))/2,c=(l+(n=(n+r)/2))/2;Xi.iv(t,i,h,l,u,c,s,a),Xi.iv(u,c,e,n,o,r,s,a)}return a},ep:function(t,i,e,n,o,r,s,a){if(Xi.Yb(t,i,o,r,s,e,n))0===a.length&&(a.push(t),a.push(i)),a.push(o),a.push(r);else{var h=(t+e)/2,l=(i+n)/2,u=(h+(e=(e+o)/2))/2,c=(l+(n=(n+r)/2))/2;Xi.ep(t,i,h,l,u,c,s,a),Xi.ep(u,c,e,n,o,r,s,a)}return a},Eo:function(t,i,e,n,o,r,s,a,h,l,u,c,f,d){if(Xi.Yb(t,i,s,a,f,e,n)&&Xi.Yb(t,i,s,a,f,o,r))return!!Xi.Rl(t,i,s,a,h,l,u,c)&&(0!=(f=(t-s)*(l-c)-(i-a)*(h-u))&&(d.h(((t*a-i*s)*(h-u)-(t-s)*(h*c-l*u))/f,((t*a-i*s)*(l-c)-(i-a)*(h*c-l*u))/f),!0));var p=(t+e)/2,g=(i+n)/2,m=(e+o)/2,y=(n+r)/2,v=((n=(p+m)/2)+(m=(m+(o=(o+s)/2))/2))/2,x=((e=(g+y)/2)+(y=(y+(r=(r+a)/2))/2))/2,b=1/0,w=!1,k=0,M=0;return Xi.Eo(t,i,p,g,n,e,v,x,h,l,u,c,f,d)&&((t=(d.x-h)*(d.x-h)+(d.y-l)*(d.y-l))<b&&(b=t,w=!0,k=d.x,M=d.y)),Xi.Eo(v,x,m,y,o,r,s,a,h,l,u,c,f,d)&&(d.x-h)*(d.x-h)+(d.y-l)*(d.y-l)<b&&(w=!0,k=d.x,M=d.y),w&&(d.x=k,d.y=M),w},Fo:function(t,i,e,n,o,r,s,a,h,l,u,c,f){var d=0;if(Xi.Yb(t,i,s,a,f,e,n)&&Xi.Yb(t,i,s,a,f,o,r)){if(0===(f=(t-s)*(l-c)-(i-a)*(h-u)))return d;var p=((t*a-i*s)*(h-u)-(t-s)*(h*c-l*u))/f,g=((t*a-i*s)*(l-c)-(i-a)*(h*c-l*u))/f;if(p>=u)return d;if((h>u?h-u:u-h)<(l>c?l-c:c-l)){if(i<a?(h=i,t=a):(h=a,t=i),g<h||g>t)return d}else if(t<s?(h=t,t=s):h=s,p<h||p>t)return d;0<f?d++:0>f&&d--}else{g=(i+n)/2;var m=(e+o)/2,y=(n+r)/2,v=((n=((p=(t+e)/2)+m)/2)+(m=(m+(o=(o+s)/2))/2))/2,x=((e=(g+y)/2)+(y=(y+(r=(r+a)/2))/2))/2;d+=Xi.Fo(t,i,p,g,n,e,v,x,h,l,u,c,f),d+=Xi.Fo(v,x,m,y,o,r,s,a,h,l,u,c,f)}return d},qh:function(t,i,e,n,o,r,s){return Xi.$(t,e)?(i<n?(e=i,i=n):e=n,r<e?(s.h(t,e),!1):r>i?(s.h(t,i),!1):(s.h(t,r),!0)):Xi.$(i,n)?(t<e?(n=t,t=e):n=e,o<n?(s.h(n,i),!1):o>t?(s.h(t,i),!1):(s.h(o,i),!0)):-5e-6>(o=((t-o)*(t-e)+(i-r)*(i-n))/((e-t)*(e-t)+(n-i)*(n-i)))?(s.h(t,i),!1):1.000005<o?(s.h(e,n),!1):(s.h(t+o*(e-t),i+o*(n-i)),!0)},Ve:function(t,i,e,n,o,r,s,a,h){return Xi.B(t,e)&&Xi.B(i,n)?(h.h(t,i),!1):Xi.$(o,s)?Xi.$(t,e)?(Xi.qh(t,i,e,n,o,r,h),!1):Xi.qh(t,i,e,n,o,(n-i)/(e-t)*(o-t)+i,h):(a=(a-r)/(s-o),Xi.$(t,e)?(e=a*(t-o)+r,i<n?(o=i,i=n):o=n,e<o?(h.h(t,o),!1):e>i?(h.h(t,i),!1):(h.h(t,e),!0)):(s=(n-i)/(e-t),Xi.$(a,s)?(Xi.qh(t,i,e,n,o,r,h),!1):(o=(s*t-a*o+r-i)/(s-a),Xi.$(s,0)?(t<e?(n=t,t=e):n=e,o<n?(h.h(n,i),!1):o>t?(h.h(t,i),!1):(h.h(o,i),!0)):Xi.qh(t,i,e,n,o,s*(o-t)+i,h))))},MA:function(t,i,e,n,o){return Xi.Ve(e.x,e.y,n.x,n.y,t.x,t.y,i.x,i.y,o)},KA:function(t,i,e,n,o,r,s,a,h,l){function u(e,n){var o=(e-t)*(e-t)+(n-i)*(n-i);o<c&&(c=o,h.h(e,n))}var c=1/0;u(h.x,h.y);var f=0,d=0,p=0,g=0;if(o<s?(f=o,d=s):(f=s,d=o),r<a?(p=o,g=s):(p=s,g=o),f=(d-f)/2+l,l=(g-p)/2+l,o=(o+s)/2,r=(r+a)/2,0===f||0===l)return h;if(.5>(e>t?e-t:t-e)){if(0>(f=1-(e-o)*(e-o)/(f*f)))return h;n=-l*(f=Math.sqrt(f))+r,u(e,l*f+r),u(e,n)}else{if(0>(f=(a=2*(e=(n-i)/(e-t))*(i-e*t)/(l*l)-2*e*r/(l*l)-2*o/(f*f))*a-4*(n=1/(f*f)+e*e/(l*l))*(2*e*t*r/(l*l)-2*i*r/(l*l)+r*r/(l*l)+o*o/(f*f)-1+(i-e*t)*(i-e*t)/(l*l))))return h;u(l=(-a+(f=Math.sqrt(f)))/(2*n),e*l-e*t+i),u(f=(-a-f)/(2*n),e*f-e*t+i)}return h},Ff:function(t,i,e,n,o,r,s,a,h){var l=1e21,u=t,c=i;if(Xi.Ve(t,i,t,n,o,r,s,a,h)){var f=(h.x-o)*(h.x-o)+(h.y-r)*(h.y-r);f<l&&(l=f,u=h.x,c=h.y)}return Xi.Ve(e,i,e,n,o,r,s,a,h)&&((f=(h.x-o)*(h.x-o)+(h.y-r)*(h.y-r))<l&&(l=f,u=h.x,c=h.y)),Xi.Ve(t,i,e,i,o,r,s,a,h)&&((i=(h.x-o)*(h.x-o)+(h.y-r)*(h.y-r))<l&&(l=i,u=h.x,c=h.y)),Xi.Ve(t,n,e,n,o,r,s,a,h)&&((t=(h.x-o)*(h.x-o)+(h.y-r)*(h.y-r))<l&&(l=t,u=h.x,c=h.y)),h.h(u,c),1e21>l},us:function(t,i,e){return Xi.Fx(t.x,t.y,t.width,t.height,i.x,i.y,e.x,e.y)},Fx:function(t,i,e,n,o,r,s,a){var h=t+e,l=i+n;return o===s?(r<a?(s=r,r=a):s=a,t<=o&&o<=h&&s<=l&&r>=i):r===a?(o<s?(a=o,o=s):a=s,i<=r&&r<=l&&a<=h&&o>=t):!!(Xt(t,i,e,n,o,r)||Xt(t,i,e,n,s,a)||Xi.Rl(t,i,h,i,o,r,s,a)||Xi.Rl(h,i,h,l,o,r,s,a)||Xi.Rl(h,l,t,l,o,r,s,a)||Xi.Rl(t,l,t,i,o,r,s,a))},Rl:function(t,i,e,n,o,r,s,a){return t===e&&i===n&&o===s&&r===a?t===o&&i===r:0>=Xi.Fl(t,i,e,n,o,r)*Xi.Fl(t,i,e,n,s,a)&&0>=Xi.Fl(o,r,s,a,t,i)*Xi.Fl(o,r,s,a,e,n)},Fl:function(t,i,e,n,o,r){return e-=t,0===(r=(t=o-t)*(n-=i)-(i=r-i)*e)&&(0<(r=t*e+i*n)&&(0>(r=(t-e)*e+(i-n)*n)&&(r=0))),r},bp:function(t){return 0>t&&(t+=360),360<=t&&(t-=360),t},jx:function(t,i,e,n,o,r){var s=Math.PI;r||(n*=s/180,o*=s/180);var a=n>o?-1:1;r=[];var h=s/2,l=n;if(1e-5>(n=Math.min(2*s,Math.abs(o-n))))return h=l+a*Math.min(n,h),a=t+e*Math.cos(l),l=i+e*Math.sin(l),t+=e*Math.cos(h),i+=e*Math.sin(h),e=(a+t)/2,h=(l+i)/2,r.push([a,l,e,h,e,h,t,i]),r;for(;1e-5<n;)o=l+a*Math.min(n,h),r.push(Xi.Vy(e,l,o,t,i)),n-=Math.abs(o-l),l=o;return r},Vy:function(t,i,e,n,o){var r=(e-i)/2,s=t*Math.cos(r),a=t*Math.sin(r),h=-a,l=s*s+h*h,u=l+s*s+h*a;return a=s-(l=4/3*(Math.sqrt(2*l*u)-u)/(s*a-h*s))*h,h=-(s=h+l*s),l=r+i,r=Math.cos(l),l=Math.sin(l),[n+t*Math.cos(i),o+t*Math.sin(i),n+a*r-s*l,o+a*l+s*r,n+a*r-h*l,o+a*l+h*r,n+t*Math.cos(e),o+t*Math.sin(e)]},No:function(t,i,e,n,o,r,s){var a=e=Math.floor((t-e)/o)*o+e;return e+o-t<o/2&&(a=e+o),t=n=Math.floor((i-n)/r)*r+n,n+r-i<r/2&&(t=n+r),s.h(a,t),s},vx:function(t,i){var e,n=Math.max(t,i);t=Math.min(t,i);do{i=n%t,n=e=t,t=i}while(0<i);return e},$y:function(t,i,e,n){var o=0>e,r=0>n;if(t<i)var s=1,a=0;else s=0,a=1;var h=0===s?t:i,l=0===s?e:n;return(0===s?o:r)&&(l=-l),e=0===(s=a)?e:n,(0===s?o:r)&&(e=-e),Xi.az(h,0===s?t:i,l,e,0,0)},az:function(t,i,e,n,o,r){if(0<n)if(0<e){o=t*t,t*=e;var s=i*n,a=-(r=i*i)+s,h=-r+Math.sqrt(t*t+s*s);i=a;for(var l=0;9999999999>l&&((i=.5*(a+h))!==a&&i!==h);++l){var u=t/(i+o),c=s/(i+r);if(0<(u=u*u+c*c-1))a=i;else{if(!(0>u))break;h=i}}e=o*e/(i+o)-e,n=r*n/(i+r)-n,e=Math.sqrt(e*e+n*n)}else e=Math.abs(n-i);else(r=t*e)<(n=t*t-i*i)?(n=r/n,r=i*Math.sqrt(Math.abs(1-n*n)),e=t*n-e,e=Math.sqrt(e*e+r*r)):e=Math.abs(e-t);return e},Ze:new X,um:new X,Mf:new X,Nf:0,vm:100};function Ui(t){Q(this),this.l=2,void 0===t&&(t=Ui.o),this.na=t,this.Ec=this.Dc=this.pd=this.od=0,t===Ui.o?this.ee=new Z:(null===Ui.V&&(Ui.V=(new Z).freeze()),this.ee=Ui.V),this.aq=this.ee.Ja,this.Ip=(new Bt).freeze(),this.ym=this.tk=null,this.zm=NaN,this.fg=ti,this.gg=hi,this.Rk=this.Sk=NaN,this.Uf=cs}function qi(t,i){return t.type===Ui.j&&i.type===Ui.o&&!!(1===i.figures.count&&(i=i.figures.M(0),1===i.segments.count&&Xi.B(t.startX,i.startX)&&Xi.B(t.startY,i.startY)&&(i=i.segments.M(0),i.type===ne&&Xi.B(t.endX,i.endX)&&Xi.B(t.endY,i.endY))))}function Hi(t,i,e){switch(t.type){case Ui.j:case Ui.u:case Ui.F:e?i.h(t.od,t.pd,0,0):Gt(i,t.od,t.pd,0,0),Gt(i,t.Dc,t.Ec,0,0);break;case Ui.o:var n=t.figures;t=n.s,n=n.length;for(var o=0;o<n;o++){var r=t[o];e&&0===o?i.h(r.startX,r.startY,0,0):Gt(i,r.startX,r.startY,0,0);for(var s=r.segments.s,a=s.length,h=r.startX,l=r.startY,u=0;u<a;u++){var c=s[u];switch(c.type){case ne:case ee:Gt(i,h=c.endX,l=c.endY,0,0);break;case oe:Xi.Dl(h,l,c.point1X,c.point1Y,c.point2X,c.point2Y,c.endX,c.endY,.5,i),h=c.endX,l=c.endY;break;case re:Xi.iv(h,l,c.point1X,c.point1Y,c.endX,c.endY,.5,i),h=c.endX,l=c.endY;break;case se:case ae:var f=c.type===se?te(c,r):ie(c,r,h,l),d=f.length;if(0===d){Gt(i,h=c.type===se?c.centerX:c.endX,l=c.type===se?c.centerY:c.endY,0,0);break}c=null;for(var p=0;p<d;p++)c=f[p],Xi.Dl(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],.5,i);null!==c&&(h=c[6],l=c[7]);break;default:w("Unknown Segment type: "+c.type)}}}break;default:w("Unknown Geometry type: "+t.type)}}function Ki(t,i,e,n,o){var r=i.x;i=i.y;for(var s,a,h,l,u=t.bounds.x-20,c=0,f=t.figures.s,d=f.length,p=0;p<d;p++){var g=f[p],m=!g.isEvenOdd;if(g.isFilled){if(n&&g.ca(r,i,e))return!0;for(var y=g.segments,v=s=g.startX,x=a=g.startY,b=y.s,k=0;k<=y.length;k++){var M=void 0;if(k!==y.length){var S=(M=b[k]).type;t=M.endX,l=M.endY}else S=ne,t=v,l=x;switch(S){case ee:if(v=Wi(r,i,u,i,s,a,v,x),isNaN(v))return!0;c+=v,v=t,x=l;break;case ne:if(s=Wi(r,i,u,i,s,a,t,l),isNaN(s))return!0;c+=s;break;case oe:c+=h=Xi.Fo(s,a,M.point1X,M.point1Y,M.point2X,M.point2Y,t,l,u,i,r,i,.5);break;case re:c+=h=Xi.Fo(s,a,(s+2*M.point1X)/3,(a+2*M.point1Y)/3,(2*M.point1X+t)/3,(2*M.point1Y+l)/3,t,l,u,i,r,i,.5);break;case se:case ae:var P=(S=M.type===se?te(M,g):ie(M,g,s,a)).length;if(0===P){if(s=Wi(r,i,u,i,s,a,M.type===se?M.centerX:M.endX,M.type===se?M.centerY:M.endY),isNaN(s))return!0;c+=s;break}M=null;for(var N=0;N<P;N++){if(M=S[N],0===N){if(h=Wi(r,i,u,i,s,a,M[0],M[1]),isNaN(h))return!0;c+=h}c+=h=Xi.Fo(M[0],M[1],M[2],M[3],M[4],M[5],M[6],M[7],u,i,r,i,.5)}null!==M&&(t=M[6],l=M[7]);break;default:w("Unknown Segment type: "+M.type)}s=t,a=l}if(m){if(0!==c)return!0}else if(0!=c%2)return!0;c=0}else if(g.ca(r,i,o?e:e+2))return!0}return!1}function Wi(t,i,e,n,o,r,s,a){if(Xi.Yb(o,r,s,a,.05,t,i))return NaN;var h=(t-e)*(r-a);if(0===h)return 0;var l=((t*n-i*e)*(o-s)-(t-e)*(o*a-r*s))/h;if(i=(t*n-i*e)*(r-a)/h,l>=t)return 0;if((o>s?o-s:s-o)<(r>a?r-a:a-r)){if(r<a){if(i<r||i>a)return 0}else if(i<a||i>r)return 0}else if(o<s){if(l<o||l>s)return 0}else if(l<s||l>o)return 0;return 0<h?1:-1}function Ji(t,i,e,n){for(var o=(t=t.figures.s).length,r=0;r<o;r++)if(t[r].ca(i,e,n))return!0;return!1}function Zi(t){if(null===t.tk){var i=t.tk=[],e=t.ym=[],n=[],o=[];if(t.type===Ui.j)n.push(t.startX),n.push(t.startY),n.push(t.endX),n.push(t.endY),i.push(n),o.push(Math.sqrt((t.startX-t.endX)*(t.startX-t.endX)+(t.startY-t.endY)*(t.startY-t.endY))),e.push(o);else if(t.type===Ui.u)n.push(t.startX),n.push(t.startY),n.push(t.endX),n.push(t.startY),n.push(t.endX),n.push(t.endY),n.push(t.startX),n.push(t.endY),n.push(t.startX),n.push(t.startY),i.push(n),o.push(Math.abs(t.startX-t.endX)),o.push(Math.abs(t.startY-t.endY)),o.push(Math.abs(t.startX-t.endX)),o.push(Math.abs(t.startY-t.endY)),e.push(o);else if(t.type===Ui.F){var r=new $i;r.startX=t.endX,r.startY=(t.startY+t.endY)/2;var s=new Qi(se);if(s.startAngle=0,s.sweepAngle=360,s.centerX=(t.startX+t.endX)/2,s.centerY=(t.startY+t.endY)/2,s.radiusX=Math.abs(t.startX-t.endX)/2,s.radiusY=Math.abs(t.startY-t.endY)/2,r.add(s),0===(o=(t=te(s,r)).length))n.push(s.centerX),n.push(s.centerY);else{s=r.startX,r=r.startY;for(var a=0;a<o;a++){var h=t[a];Xi.Qe(s,r,h[2],h[3],h[4],h[5],h[6],h[7],.5,n),s=h[6],r=h[7]}}i.push(n),e.push(_i(n))}else for(t=t.figures.iterator;t.next();){o=t.value,(n=[]).push(o.startX),n.push(o.startY),a=s=o.startX,h=r=o.startY;for(var l=o.segments.s,u=l.length,c=0;c<u;c++){var f=l[c];switch(f.type){case ee:4<=n.length&&(i.push(n),e.push(_i(n))),(n=[]).push(f.endX),n.push(f.endY),a=s=f.endX,h=r=f.endY;break;case ne:n.push(f.endX),n.push(f.endY),s=f.endX,r=f.endY;break;case oe:Xi.Qe(s,r,f.point1X,f.point1Y,f.point2X,f.point2Y,f.endX,f.endY,.5,n),s=f.endX,r=f.endY;break;case re:Xi.ep(s,r,f.point1X,f.point1Y,f.endX,f.endY,.5,n),s=f.endX,r=f.endY;break;case se:var d=te(f,o),p=d.length;if(0===p){n.push(f.centerX),n.push(f.centerY),s=f.centerX,r=f.centerY;break}for(var g=0;g<p;g++){var m=d[g];Xi.Qe(s,r,m[2],m[3],m[4],m[5],m[6],m[7],.5,n),s=m[6],r=m[7]}break;case ae:if(p=(d=ie(f,o,s,r)).length,g=f.endX,m=f.endY,0===p){n.push(g),n.push(m),s=g,r=m;break}for(g=0;g<p;g++)m=d[g],Xi.Qe(s,r,m[2],m[3],m[4],m[5],m[6],m[7],.5,n),s=m[6],r=m[7];break;default:w("Segment not of valid type: "+f.type)}f.isClosed&&(n.push(a),n.push(h))}4<=n.length&&(i.push(n),e.push(_i(n)))}}}function _i(t){for(var i=[],e=0,n=0,o=t.length,r=0;r<o;r+=2){var s=t[r],a=t[r+1];0!==r&&i.push(Math.sqrt(bt(e,n,s,a))),e=s,n=a}return i}function $i(t,i,e,n,o){Q(this),void 0===e&&(e=!0),void 0===n&&(n=!0),void 0===o&&(o=!1),this.l=2|(e?4:0)|(n?8:0)|(o?16:0),this.od=void 0!==t?t:0,this.pd=void 0!==i?i:0,this.pl=new Z,this.sr=this.pl.Ja,this.fw=null}function Qi(t,i,e,n,o,r,s,a){Q(this),void 0===t&&(t=ne),this.na=t,this.l=2,this.Dc=void 0!==i?i:0,this.Ec=void 0!==e?e:0,void 0===n&&(n=0),void 0===o&&(o=0),void 0===r&&(r=0),void 0===s&&(s=0),t===ae?(0>(t=r%360)&&(t+=360),this.Ne=t,this.Vh=0,this.Wh=Math.max(n,0),this.Pg=Math.max(o,0),"boolean"==typeof s?s&&(this.isLargeArc=!0):"number"==typeof s&&s&&(this.isLargeArc=!0),a&&(this.isClockwiseArc=!0)):(this.Ne=n,this.Vh=o,t===se&&(r=Math.max(r,0)),this.Wh=r,"number"==typeof s?(t===se&&(s=Math.max(s,0)),this.Pg=s):this.Pg=0),this.ae=null}function te(t,i){if(null!==t.ae&&!1===i._isInvalidBounds)return t.ae;var e=t.radiusX,n=t.radiusY;if(void 0===n&&(n=e),0===e||0===n)return t.ae=[],t.ae;i=t.Ne;var o=t.Vh,r=Xi.jx(0,0,e<n?e:n,t.startAngle,t.startAngle+t.sweepAngle,!1);if(e!==n){var s=Yi.alloc();s.reset(),e<n?s.scale(1,n/e):s.scale(e/n,1),Ui.Ha(r,s),Yi.free(s)}for(e=r.length,n=0;n<e;n++)(s=r[n])[0]+=i,s[1]+=o,s[2]+=i,s[3]+=o,s[4]+=i,s[5]+=o,s[6]+=i,s[7]+=o;return t.ae=r,t.ae}function ie(t,i,e,n){function o(t,i,e,n){return(t*n<i*e?-1:1)*Math.acos((t*e+i*n)/(Math.sqrt(t*t+i*i)*Math.sqrt(e*e+n*n)))}if(null!==t.ae&&!1===i._isInvalidBounds)return t.ae;if(0===t.radiusX||0===t.radiusY)return t.ae=[],t.ae;i=t.Wh;var r=t.Pg;0===i&&(i=1e-4),0===r&&(r=1e-4);var s=Math.PI/180*t.Ne,a=t.isLargeArc,h=t.isClockwiseArc,l=t.Dc,u=t.Ec,c=Math.cos(s),f=Math.sin(s),d=c*(e-l)/2+f*(n-u)/2,p=d*d/(i*i)+(s=-f*(e-l)/2+c*(n-u)/2)*s/(r*r);return 1<p&&(i*=Math.sqrt(p),r*=Math.sqrt(p)),p=(a===h?-1:1)*Math.sqrt((i*i*r*r-i*i*s*s-r*r*d*d)/(i*i*s*s+r*r*d*d)),isNaN(p)&&(p=0),a=p*i*s/r,p=p*-r*d/i,isNaN(a)&&(a=0),isNaN(p)&&(p=0),e=(e+l)/2+c*a-f*p,n=(n+u)/2+f*a+c*p,u=o(1,0,(d-a)/i,(s-p)/r),s=o(c=(d-a)/i,l=(s-p)/r,d=(-d-a)/i,a=(-s-p)/r),-1>=(d=(c*d+l*a)/(Math.sqrt(c*c+l*l)*Math.sqrt(d*d+a*a)))?s=Math.PI:1<=d&&(s=0),!h&&0<s&&(s-=2*Math.PI),h&&0>s&&(s+=2*Math.PI),h=i>r?1:i/r,d=i>r?r/i:1,i=Xi.jx(0,0,i>r?i:r,u,u+s,!0),(r=Yi.alloc()).reset(),r.translate(e,n),r.rotate(t.Ne,0,0),r.scale(h,d),Ui.Ha(i,r),Yi.free(r),t.ae=i,t.ae}Xi.za=Xi.AA,Ui.prototype.copy=function(){var t=new Ui;if(t.l=-2&this.l,t.na=this.na,t.od=this.od,t.pd=this.pd,t.Dc=this.Dc,t.Ec=this.Ec,this.na===Ui.o){for(var i=this.ee.s,e=t.ee,n=0;n<i.length;n++)e.add(i[n].copy());t.ee=e}else t.ee=this.ee;return t.aq=this.aq,t.Ip.assign(this.Ip),t.tk=this.tk,t.ym=this.ym,t.zm=this.zm,t.fg=this.fg.J(),t.gg=this.gg.J(),t.Sk=this.Sk,t.Rk=this.Rk,t.Uf=this.Uf,t},Ui.prototype.ja=function(){return this.freeze(),Object.freeze(this),this},Ui.prototype.freeze=function(){if(this._isFrozen=!0,this.type!==Ui.o)return this;var t=this.figures;t.freeze();for(var i=(t=t.s).length,e=0;e<i;e++)t[e].freeze();return this},Ui.prototype.ka=function(){if(Object.isFrozen(this)&&w("cannot thaw constant: "+this),this._isFrozen=!1,this.type!==Ui.o)return this;var t=this.figures;t.ka();for(var i=(t=t.s).length,e=0;e<i;e++)t[e].ka();return this},Ui.prototype.Xa=function(t){if(!(t instanceof Ui))return!1;if(this.type!==t.type)return this.type===Ui.j&&t.type===Ui.o?qi(this,t):t.type===Ui.j&&this.type===Ui.o&&qi(t,this);if(this.type===Ui.o){var i=this.figures.s;t=t.figures.s;var e=i.length;if(e!==t.length)return!1;for(var n=0;n<e;n++)if(!i[n].Xa(t[n]))return!1;return!0}return Xi.B(this.startX,t.startX)&&Xi.B(this.startY,t.startY)&&Xi.B(this.endX,t.endX)&&Xi.B(this.endY,t.endY)},Ui.ia=function(t){return t.toString()},Ui.prototype.qb=function(t){t.classType===Ui&&(this.type=t)},Ui.prototype.toString=function(t){switch(void 0===t&&(t=-1),this.type){case Ui.j:return 0>t?"M"+this.startX.toString()+" "+this.startY.toString()+"L"+this.endX.toString()+" "+this.endY.toString():"M"+this.startX.toFixed(t)+" "+this.startY.toFixed(t)+"L"+this.endX.toFixed(t)+" "+this.endY.toFixed(t);case Ui.u:var i=new Bt(this.startX,this.startY,0,0);return i.Kv(this.endX,this.endY,0,0),0>t?"M"+i.x.toString()+" "+i.y.toString()+"H"+i.right.toString()+"V"+i.bottom.toString()+"H"+i.left.toString()+"z":"M"+i.x.toFixed(t)+" "+i.y.toFixed(t)+"H"+i.right.toFixed(t)+"V"+i.bottom.toFixed(t)+"H"+i.left.toFixed(t)+"z";case Ui.F:if((i=new Bt(this.startX,this.startY,0,0)).Kv(this.endX,this.endY,0,0),0>t)return"M"+(t=i.left.toString()+" "+(i.y+i.height/2).toString())+"A"+(i.width/2).toString()+" "+(i.height/2).toString()+" 0 0 1 "+i.right.toString()+" "+(i.y+i.height/2).toString()+"A"+(i.width/2).toString()+" "+(i.height/2).toString()+" 0 0 1 "+t;var e=i.left.toFixed(t)+" "+(i.y+i.height/2).toFixed(t);return"M"+e+"A"+(i.width/2).toFixed(t)+" "+(i.height/2).toFixed(t)+" 0 0 1 "+i.right.toFixed(t)+" "+(i.y+i.height/2).toFixed(t)+"A"+(i.width/2).toFixed(t)+" "+(i.height/2).toFixed(t)+" 0 0 1 "+e;case Ui.o:i="";for(var n=(e=this.figures.s).length,o=0;o<n;o++){var r=e[o];0<o&&(i+=" x "),r.isFilled&&(i+="F "),i+=r.toString(t)}return i;default:return this.type.toString()}},Ui.nb=function(t){for(var i=(t=t.split(/[Xx]/)).length,e="",n=0;n<i;n++){var o=t[n];e=null!==o.match(/[Ff]/)?0===n?e+o:e+"X"+(" "===o[0]?"":" ")+o:e+(0===n?"":"X ")+"F"+(" "===o[0]?"":" ")+o}return e},Ui.parse=function(t,i){function e(){return g>=b-1||null!==l[g+1].match(w)}function n(){return g++,l[g]}function o(t){var i=parseFloat(n()),e=parseFloat(n());m===m.toLowerCase()&&(i=x.x+i,e=x.y+e),t.h(i,e)}function r(){return o(x),x}function s(){return o(v),v}function a(){var t=y.toLowerCase();return"c"!==t&&"s"!==t&&"q"!==t&&"t"!==t?x:new pt(2*x.x-v.x,2*x.y-v.y)}void 0===i&&(i=!1);var h=/([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])/gm,l=(t=(t=(t=(t=(t=(t=(t=(t=t.replace(/,/gm," ")).replace(h,"$1 $2")).replace(h,"$1 $2")).replace(/([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])([^s])/gm,"$1 $2")).replace(/([^s])([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])/gm,"$1 $2")).replace(/([0-9])([+\-])/gm,"$1 $2")).replace(/[\s\r\t\n]+/gm," ")).replace(/^\s+|\s+$/g,"")).split(" ");for(t=0;t<l.length;t++){var u=l[t];if(null!==u.match(/(\.[0-9]*)(\.)/gm)){h=A();for(var c="",f=!1,d=0;d<u.length;d++){var p=u[d];"."!==p||f?"."===p?(h.push(c),c="."):c+=p:(f=!0,c+=p)}for(h.push(c),l.splice(t,1),u=0;u<h.length;u++)l.splice(t+u,0,h[u]);t+=h.length-1,j(h)}}var g=-1,m="",y="";h=new pt(0,0);var v=new pt(0,0),x=new pt(0,0),b=l.length;t=vu(null),f=c=u=!1,d=!0,p=null;for(var w=/[UuBbMmZzLlHhVvCcSsQqTtAaFfXx]/;!(g>=b-1);)if(y=m,""!==(m=n()))switch(m.toUpperCase()){case"X":d=!0,c=u=!1;break;case"M":for(p=r(),null===t.mc||!0===d?(du(t,p.x,p.y,u,!c,f),d=!1):t.moveTo(p.x,p.y),h.assign(x);!e();)p=r(),t.lineTo(p.x,p.y);break;case"L":for(;!e();)p=r(),t.lineTo(p.x,p.y);break;case"H":for(;!e();)x=new pt((m===m.toLowerCase()?x.x:0)+parseFloat(n()),x.y),t.lineTo(x.x,x.y);break;case"V":for(;!e();)x=new pt(x.x,(m===m.toLowerCase()?x.y:0)+parseFloat(n())),t.lineTo(x.x,x.y);break;case"C":for(;!e();){o(p=new pt);var k=s(),M=r();gu(t,p.x,p.y,k.x,k.y,M.x,M.y)}break;case"S":for(;!e();)p=a(),k=s(),M=r(),gu(t,p.x,p.y,k.x,k.y,M.x,M.y);break;case"Q":for(;!e();)p=s(),k=r(),mu(t,p.x,p.y,k.x,k.y);break;case"T":for(;!e();)v=p=a(),k=r(),mu(t,p.x,p.y,k.x,k.y);break;case"B":for(;!e();){p=parseFloat(n()),k=parseFloat(n()),M=parseFloat(n());var S=parseFloat(n()),P=parseFloat(n()),N=P,C=!1;e()||(N=parseFloat(n()),e()||(C=0!==parseFloat(n()))),m===m.toLowerCase()&&(M+=x.x,S+=x.y),t.arcTo(p,k,M,S,P,N,C)}break;case"A":for(;!e();)p=Math.abs(parseFloat(n())),k=Math.abs(parseFloat(n())),M=parseFloat(n()),P=S=!1,C=N=0,1===(N=n()).length?(S=!!parseFloat(N),P=!!parseFloat(n()),N=parseFloat(n())):2===N.length?(S=!!parseFloat(N[0]),P=!!parseFloat(N[1]),N=parseFloat(n())):(S=!!parseFloat(N[0]),P=!!parseFloat(N[1]),N=parseFloat(N.slice(2))),C=parseFloat(n()),m===m.toLowerCase()&&(N=x.x+N,C=x.y+C),x.h(N,C),yu(t,p,k,M,S,P,N,C);break;case"Z":pu(t),x.assign(h);break;case"F":for(p="",k=1;l[g+k];)if("0"===l[g+k])f=!0,k++;else if(null!==l[g+k].match(/[Uu]/))k++;else{if(null!==l[g+k].match(w)){p=l[g+k];break}k++}p.match(/[Mm]/)?u=!0:0<t.mc.segments.length&&(t.mc.isFilled=!0);break;case"U":for(p="",k=1;l[g+k];)if(null!==l[g+k].match(/[Ff]/))k++;else{if(null!==l[g+k].match(w)){p=l[g+k];break}k++}p.match(/[Mm]/)?c=!0:t.mc.isShadowed=!1}if(h=t.os,xu=t,i)for(i=h.figures.iterator;i.next();)i.value.isFilled=!0;return h},Ui.Ha=function(t,i){for(var e=t.length,n=pt.alloc(),o=0;o<e;o++){var r=t[o];n.x=r[0],n.y=r[1],i.Ga(n),r[0]=n.x,r[1]=n.y,n.x=r[2],n.y=r[3],i.Ga(n),r[2]=n.x,r[3]=n.y,n.x=r[4],n.y=r[5],i.Ga(n),r[4]=n.x,r[5]=n.y,n.x=r[6],n.y=r[7],i.Ga(n),r[6]=n.x,r[7]=n.y}pt.free(n)},Ui.prototype.Zu=function(){if(this._isInvalidBounds)return!0;if(this.type===Ui.o){if(this.aq!==this.figures.Ja)return!0;for(var t=this.figures.s,i=t.length,e=0;e<i;e++)if(t[e].Zu())return!0}return!1},Ui.prototype.computeBounds=function(){if(this._isInvalidBounds=!1,this.ym=this.tk=null,this.zm=NaN,this.type===Ui.o){this.aq=this.figures.Ja;for(var t=this.figures.s,i=t.length,e=0;e<i;e++){var n=t[e];n._isInvalidBounds=!1;var o=n.segments;n.sr=o.Ja,o=(n=o.s).length;for(var r=0;r<o;r++){var s=n[r];s._isInvalidBounds=!1,s.ae=null}}}(t=this.Ip).ka(),isNaN(this.Sk)||isNaN(this.Rk)?t.h(0,0,0,0):t.h(0,0,this.Sk,this.Rk),Hi(this,t,!1),Gt(t,0,0,0,0),t.freeze()},Ui.prototype.ix=function(){var t=new Bt;return Hi(this,t,!0),t},Ui.prototype.normalize=function(){this._isFrozen&&k(this);var t=this.ix();return this.offset(-t.x,-t.y),new pt(-t.x,-t.y)},Ui.prototype.offset=function(t,i){return this._isFrozen&&k(this),this.transform(1,0,0,1,t,i),this},Ui.prototype.scale=function(t,i){return this._isFrozen&&k(this),this.transform(t,0,0,i,0,0),this},Ui.prototype.rotate=function(t,i,e){this._isFrozen&&k(this),void 0===i&&(i=0),void 0===e&&(e=0);var n=Yi.alloc();return n.reset(),n.rotate(t,i,e),this.transform(n.m11,n.m12,n.m21,n.m22,n.dx,n.dy),Yi.free(n),this},(i=Ui.prototype).transform=function(t,i,e,n,o,r){switch(this.type){case Ui.j:case Ui.u:case Ui.F:var s=this.od,a=this.pd;this.od=s*t+a*e+o,this.pd=s*i+a*n+r,s=this.Dc,a=this.Ec,this.Dc=s*t+a*e+o,this.Ec=s*i+a*n+r;break;case Ui.o:for(var h=this.figures.s,l=h.length,u=0;u<l;u++){var c=h[u];s=c.startX,a=c.startY,c.startX=s*t+a*e+o,c.startY=s*i+a*n+r;for(var f=(c=c.segments.s).length,d=0;d<f;d++){var p=c[d];switch(p.type){case ne:case ee:s=p.endX,a=p.endY,p.endX=s*t+a*e+o,p.endY=s*i+a*n+r;break;case oe:s=p.point1X,a=p.point1Y,p.point1X=s*t+a*e+o,p.point1Y=s*i+a*n+r,s=p.point2X,a=p.point2Y,p.point2X=s*t+a*e+o,p.point2Y=s*i+a*n+r,s=p.endX,a=p.endY,p.endX=s*t+a*e+o,p.endY=s*i+a*n+r;break;case re:s=p.point1X,a=p.point1Y,p.point1X=s*t+a*e+o,p.point1Y=s*i+a*n+r,s=p.endX,a=p.endY,p.endX=s*t+a*e+o,p.endY=s*i+a*n+r;break;case se:s=p.centerX,a=p.centerY,p.centerX=s*t+a*e+o,p.centerY=s*i+a*n+r,0!==i&&(0>(s=180*Math.atan2(i,t)/Math.PI)&&(s+=360),p.startAngle+=s),0>t&&(p.startAngle=180-p.startAngle,p.sweepAngle=-p.sweepAngle),0>n&&(p.startAngle=-p.startAngle,p.sweepAngle=-p.sweepAngle),p.radiusX*=Math.sqrt(t*t+e*e),void 0!==p.radiusY&&(p.radiusY*=Math.sqrt(i*i+n*n));break;case ae:if(s=p.endX,a=p.endY,p.endX=s*t+a*e+o,p.endY=s*i+a*n+r,0===p.radiusX||0===p.radiusY)break;0!==i&&(0>(s=180*Math.atan2(i,t)/Math.PI)&&(s+=360),p.xAxisRotation+=s),0>t&&(p.xAxisRotation=180-p.xAxisRotation,p.isClockwiseArc=!p.isClockwiseArc),0>n&&(p.xAxisRotation=-p.xAxisRotation,p.isClockwiseArc=!p.isClockwiseArc),p.radiusX*=Math.sqrt(t*t+e*e),p.radiusY*=Math.sqrt(i*i+n*n);break;default:w("Unknown Segment type: "+p.type)}}}}return this._isInvalidBounds=!0,this},i.ca=function(t,i){void 0===i&&(i=0);var e=this.od,n=this.pd,o=this.Dc,r=this.Ec;switch(this.type){case Ui.j:return Xi.Yb(e,n,o,r,i,t.x,t.y);case Ui.u:var s=Bt.allocAt(Math.min(e,o)-i,Math.min(n,r)-i,Math.abs(o-e)+2*i,Math.abs(r-n)+2*i);return t=s.ca(t),Bt.free(s),t;case Ui.F:s=Math.min(e,o)-i;var a=Math.min(n,r)-i;return e=(Math.abs(o-e)+2*i)/2,i=(Math.abs(r-n)+2*i)/2,0>=e||0>=i?!1:1>=(s=t.x-(s+e))*s/(e*e)+(a=t.y-(a+i))*a/(i*i);case Ui.o:return Ki(this,t,i,!0,!1);default:return!1}},i.Pu=function(t,i){if(0>t?t=0:1<t&&(t=1),void 0===i&&(i=new pt),this.type===Ui.j)return i.h(this.startX+t*(this.endX-this.startX),this.startY+t*(this.endY-this.startY)),i;for(var e=this.flattenedSegments,n=this.flattenedLengths,o=e.length,r=this.flattenedTotalLength*t,s=0,a=0;a<o;a++){var h=n[a],l=h.length;for(t=0;t<l;t++){var u=h[t];if(s+u>=r)return n=r-s,n=0===u?0:n/u,a=(e=e[a])[2*t],o=e[2*t+1],i.h(a+(e[2*t+2]-a)*n,o+(e[2*t+3]-o)*n),i;s+=u}}return i},i.wx=function(t){if(0>t?t=0:1<t&&(t=1),this.type===Ui.j)return 180*Math.atan2(this.endY-this.startY,this.endX-this.startX)/Math.PI;for(var i=this.flattenedSegments,e=this.flattenedLengths,n=i.length,o=this.flattenedTotalLength*t,r=0,s=0;s<n;s++){var a=e[s],h=a.length;for(t=0;t<h;t++){var l=a[t];if(r+l>=o)return i=(o=i[s])[2*t],e=o[2*t+1],n=o[2*t+2],t=o[2*t+3],1>Math.abs(n-i)&&1>Math.abs(t-e)?0:1>Math.abs(n-i)?0<=t-e?90:270:1>Math.abs(t-e)?0<=n-i?0:180:180*Math.atan2(t-e,n-i)/Math.PI;r+=l}}return NaN},i.Qu=function(t,i){if(0>t?t=0:1<t&&(t=1),void 0===i&&(i=[]),i.length=3,this.type===Ui.j)return i[0]=this.startX+t*(this.endX-this.startX),i[1]=this.startY+t*(this.endY-this.startY),i[2]=180*Math.atan2(this.endY-this.startY,this.endX-this.startX)/Math.PI,i;for(var e=this.flattenedSegments,n=this.flattenedLengths,o=e.length,r=this.flattenedTotalLength*t,s=0,a=0;a<o;a++){var h=n[a],l=h.length;for(t=0;t<l;t++){var u=h[t];if(s+u>=r)return n=r-s,n=0===u?0:n/u,e=(u=e[a])[2*t],a=u[2*t+1],o=u[2*t+2],t=u[2*t+3],i[0]=e+(o-e)*n,i[1]=a+(t-a)*n,i[2]=1>Math.abs(o-e)&&1>Math.abs(t-a)?0:1>Math.abs(o-e)?0<=t-a?90:270:1>Math.abs(t-a)?0<=o-e?0:180:180*Math.atan2(t-a,o-e)/Math.PI,i;s+=u}}return i},i.xx=function(t){if(this.type===Ui.j){var i=this.startX,e=this.startY,n=this.endX,o=this.endY;if(i!==n||e!==o){var r=t.x;if(t=t.y,i===n){if(e<o){var s=e;n=o}else s=o,n=e;return t<=s?s===e?0:1:t>=n?n===e?0:1:Math.abs(t-e)/(n-s)}if(e===o)return i<n?s=i:(s=n,n=i),r<=s?s===i?0:1:r>=n?n===i?0:1:Math.abs(r-i)/(n-s);s=(n-i)*(n-i)+(o-e)*(o-e);var a=pt.alloc();return Xi.qh(i,e,n,o,r,t,a),t=a.x,r=a.y,pt.free(a),Math.sqrt(((t-i)*(t-i)+(r-e)*(r-e))/s)}}else{if(this.type!==Ui.u){i=this.flattenedSegments,e=this.flattenedLengths,r=this.flattenedTotalLength,n=pt.alloc(),o=1/0,a=s=0,y=i.length;for(var h=v=0,l=0;l<y;l++)for(var u=i[l],c=e[l],f=u.length,d=0;d<f;d+=2){var p=u[d],g=u[d+1];if(0!==d){Xi.qh(v,h,p,g,t.x,t.y,n);var m=(n.x-t.x)*(n.x-t.x)+(n.y-t.y)*(n.y-t.y);m<o&&(o=m,s=a,s+=Math.sqrt((n.x-v)*(n.x-v)+(n.y-h)*(n.y-h))),a+=c[(d-2)/2]}v=p,h=g}return pt.free(n),0>(t=s/r)?0:1<t?1:t}s=this.startX,a=this.startY;var y=this.endX;if(o=this.endY,s!==y||a!==o){r=2*(i=y-s)+2*(e=o-a),n=t.x,t=t.y,n=Math.min(Math.max(n,s),y),t=Math.min(Math.max(t,a),o),s=Math.abs(n-s),y=Math.abs(n-y),a=Math.abs(t-a),o=Math.abs(t-o);var v=Math.min(s,y,a,o);if(v===a)return n/r;if(v===y)return(i+t)/r;if(v===o)return(2*i+e-n)/r;if(v===s)return(2*i+2*e-t)/r}}return 0},i.add=function(t){return this.ee.add(t),this},i.pm=function(t,i,e,n,o,r,s,a){return this._isFrozen&&k(this),this.fg=new Ii(t,i,o,r).freeze(),this.gg=new Ii(e,n,s,a).freeze(),this},f.Object.defineProperties(Ui.prototype,{_isFrozen:{get:function(){return 0!=(1&this.l)},set:function(t){this.l=t?1|this.l:-2&this.l}},_isInvalidBounds:{get:function(){return 0!=(2&this.l)},set:function(t){this.l=t?2|this.l:-3&this.l}},flattenedSegments:{get:function(){return Zi(this),this.tk}},flattenedLengths:{get:function(){return Zi(this),this.ym}},flattenedTotalLength:{get:function(){var t=this.zm;if(isNaN(t)){if(this.type===Ui.j){t=Math.abs(this.endX-this.startX);var i=Math.abs(this.endY-this.startY);t=Math.sqrt(t*t+i*i)}else if(this.type===Ui.u)t=2*Math.abs(this.endX-this.startX)+2*Math.abs(this.endY-this.startY);else for(var e=(i=this.flattenedLengths).length,n=t=0;n<e;n++)for(var o=i[n],r=o.length,s=0;s<r;s++)t+=o[s];this.zm=t}return t}},type:{get:function(){return this.na},set:function(t){this.na!==t&&(this._isFrozen&&k(this,t),this.na=t,t===Ui.o?this.ee=new Z:(null===Ui.V&&(Ui.V=(new Z).freeze()),this.ee=Ui.V),this._isInvalidBounds=!0)}},startX:{get:function(){return this.od},set:function(t){this.od!==t&&(this._isFrozen&&k(this,t),this.od=t,this._isInvalidBounds=!0)}},startY:{get:function(){return this.pd},set:function(t){this.pd!==t&&(this._isFrozen&&k(this,t),this.pd=t,this._isInvalidBounds=!0)}},endX:{get:function(){return this.Dc},set:function(t){this.Dc!==t&&(this._isFrozen&&k(this,t),this.Dc=t,this._isInvalidBounds=!0)}},endY:{get:function(){return this.Ec},set:function(t){this.Ec!==t&&(this._isFrozen&&k(this,t),this.Ec=t,this._isInvalidBounds=!0)}},figures:{get:function(){return this.ee},set:function(t){this.ee!==t&&(this._isFrozen&&k(this,t),this.ee=t,this._isInvalidBounds=!0)}},spot1:{get:function(){return this.fg},set:function(t){this._isFrozen&&k(this,t),this.fg=t.J()}},spot2:{get:function(){return this.gg},set:function(t){this._isFrozen&&k(this,t),this.gg=t.J()}},defaultStretch:{get:function(){return this.Uf},set:function(t){this._isFrozen&&k(this,t),this.Uf=t}},bounds:{get:function(){return this.Zu()&&this.computeBounds(),this.Ip}}}),Ui.prototype.setSpots=Ui.prototype.pm,Ui.prototype.add=Ui.prototype.add,Ui.prototype.getFractionForPoint=Ui.prototype.xx,Ui.prototype.getPointAndAngleAlongPath=Ui.prototype.Qu,Ui.prototype.getAngleAlongPath=Ui.prototype.wx,Ui.prototype.getPointAlongPath=Ui.prototype.Pu,Ui.prototype.containsPoint=Ui.prototype.ca,Ui.prototype.transform=Ui.prototype.transform,Ui.prototype.rotate=Ui.prototype.rotate,Ui.prototype.scale=Ui.prototype.scale,Ui.prototype.offset=Ui.prototype.offset,Ui.prototype.normalize=Ui.prototype.normalize,Ui.prototype.computeBoundsWithoutOrigin=Ui.prototype.ix,Ui.prototype.equalsApprox=Ui.prototype.Xa,Ui.className="Geometry",Ui.j=new V(Ui,"Line",0),Ui.u=new V(Ui,"Rectangle",1),Ui.F=new V(Ui,"Ellipse",2),Ui.o=new V(Ui,"Path",3),Ui.V=null,Ui.hb="UuBbMmZzLlHhVvCcSsQqTtAaFfXx",Ui.className="Geometry",Ui.stringify=Ui.ia,Ui.fillPath=Ui.nb,Ui.parse=Ui.parse,Ui.Line=Ui.j,Ui.Rectangle=Ui.u,Ui.Ellipse=Ui.F,Ui.Path=Ui.o,$i.prototype.copy=function(){var t=new $i;t.l=-2&this.l,t.od=this.od,t.pd=this.pd;for(var i=this.pl.s,e=i.length,n=t.pl,o=0;o<e;o++){var r=i[o].copy();n.add(r)}return t.sr=this.sr,t.fw=this.fw,t},(i=$i.prototype).Xa=function(t){if(!(t instanceof $i&&Xi.B(this.startX,t.startX)&&Xi.B(this.startY,t.startY)))return!1;var i=this.segments.s;t=t.segments.s;var e=i.length;if(e!==t.length)return!1;for(var n=0;n<e;n++)if(!i[n].Xa(t[n]))return!1;return!0},i.toString=function(t){void 0===t&&(t=-1);for(var i=0>t?"M"+this.startX.toString()+" "+this.startY.toString():"M"+this.startX.toFixed(t)+" "+this.startY.toFixed(t),e=this.segments.s,n=e.length,o=0;o<n;o++)i+=" "+e[o].toString(t);return i},i.freeze=function(){this._isFrozen=!0;var t=this.segments;t.freeze();var i=t.s;t=t.length;for(var e=0;e<t;e++)i[e].freeze();return this},i.ka=function(){this._isFrozen=!1;var t=this.segments;t.ka();for(var i=(t=t.s).length,e=0;e<i;e++)t[e].ka();return this},i.Zu=function(){if(this._isInvalidBounds)return!0;var t=this.segments;if(this.sr!==t.Ja)return!0;for(var i=(t=t.s).length,e=0;e<i;e++)if(t[e]._isInvalidBounds)return!0;return!1},i.add=function(t){return this.pl.add(t),this},i.ca=function(t,i,e){for(var n=this.startX,o=this.startY,r=n,s=o,a=this.segments.s,h=a.length,l=0;l<h;l++){var u=a[l];switch(u.type){case ee:r=u.endX,s=u.endY,n=u.endX,o=u.endY;break;case ne:if(Xi.Yb(n,o,u.endX,u.endY,e,t,i))return!0;n=u.endX,o=u.endY;break;case oe:if(Xi.cs(n,o,u.point1X,u.point1Y,u.point2X,u.point2Y,u.endX,u.endY,.5,t,i,e))return!0;n=u.endX,o=u.endY;break;case re:if(Xi.jv(n,o,u.point1X,u.point1Y,u.endX,u.endY,.5,t,i,e))return!0;n=u.endX,o=u.endY;break;case se:case ae:var c=u.type===se?te(u,this):ie(u,this,n,o),f=c.length,d=u.type===se?u.centerX:u.endX,p=u.type===se?u.centerY:u.endY;if(0===f){if(Xi.Yb(n,o,d,p,e,t,i))return!0;n=d,o=p;break}for(d=null,p=0;p<f;p++)if(d=c[p],0===p&&Xi.Yb(n,o,d[0],d[1],e,t,i)||Xi.cs(d[0],d[1],d[2],d[3],d[4],d[5],d[6],d[7],.5,t,i,e))return!0;null!==d&&(n=d[6],o=d[7]);break;default:w("Unknown Segment type: "+u.type)}if(u.isClosed&&(n!==r||o!==s)&&Xi.Yb(n,o,r,s,e,t,i))return!0}return!1},f.Object.defineProperties($i.prototype,{_isFrozen:{get:function(){return 0!=(1&this.l)},set:function(t){this.l=t?1|this.l:-2&this.l}},_isInvalidBounds:{get:function(){return 0!=(2&this.l)},set:function(t){this.l=t?2|this.l:-3&this.l}},isFilled:{get:function(){return 0!=(4&this.l)},set:function(t){this._isFrozen&&k(this,t),this.l=t?4|this.l:-5&this.l}},isShadowed:{get:function(){return 0!=(8&this.l)},set:function(t){this._isFrozen&&k(this,t),this.l=t?8|this.l:-9&this.l}},isEvenOdd:{get:function(){return 0!=(16&this.l)},set:function(t){this._isFrozen&&k(this,t),this.l=t?16|this.l:-17&this.l}},startX:{get:function(){return this.od},set:function(t){this._isFrozen&&k(this,t),this.od=t,this._isInvalidBounds=!0}},startY:{get:function(){return this.pd},set:function(t){this._isFrozen&&k(this,t),this.pd=t,this._isInvalidBounds=!0}},segments:{get:function(){return this.pl},set:function(t){this._isFrozen&&k(this,t),this.pl=t,this._isInvalidBounds=!0}}}),$i.prototype.add=$i.prototype.add,$i.prototype.equalsApprox=$i.prototype.Xa,$i.className="PathFigure",Qi.prototype.copy=function(){var t=new Qi;return t.na=this.na,t.l=-2&this.l,t.Dc=this.Dc,t.Ec=this.Ec,t.Ne=this.Ne,t.Vh=this.Vh,t.Wh=this.Wh,t.Pg=this.Pg,t},(i=Qi.prototype).Xa=function(t){if(!(t instanceof Qi)||this.type!==t.type||this.isClosed!==t.isClosed)return!1;switch(this.type){case ee:case ne:return Xi.B(this.endX,t.endX)&&Xi.B(this.endY,t.endY);case oe:return Xi.B(this.endX,t.endX)&&Xi.B(this.endY,t.endY)&&Xi.B(this.point1X,t.point1X)&&Xi.B(this.point1Y,t.point1Y)&&Xi.B(this.point2X,t.point2X)&&Xi.B(this.point2Y,t.point2Y);case re:return Xi.B(this.endX,t.endX)&&Xi.B(this.endY,t.endY)&&Xi.B(this.point1X,t.point1X)&&Xi.B(this.point1Y,t.point1Y);case se:return Xi.B(this.startAngle,t.startAngle)&&Xi.B(this.sweepAngle,t.sweepAngle)&&Xi.B(this.centerX,t.centerX)&&Xi.B(this.centerY,t.centerY)&&Xi.B(this.radiusX,t.radiusX)&&Xi.B(this.radiusY,t.radiusY);case ae:return this.isClockwiseArc===t.isClockwiseArc&&this.isLargeArc===t.isLargeArc&&Xi.B(this.xAxisRotation,t.xAxisRotation)&&Xi.B(this.endX,t.endX)&&Xi.B(this.endY,t.endY)&&Xi.B(this.radiusX,t.radiusX)&&Xi.B(this.radiusY,t.radiusY);default:return!1}},i.qb=function(t){t.classType===Qi&&(this.type=t)},i.toString=function(t){switch(void 0===t&&(t=-1),this.type){case ee:t=0>t?"M"+this.endX.toString()+" "+this.endY.toString():"M"+this.endX.toFixed(t)+" "+this.endY.toFixed(t);break;case ne:t=0>t?"L"+this.endX.toString()+" "+this.endY.toString():"L"+this.endX.toFixed(t)+" "+this.endY.toFixed(t);break;case oe:t=0>t?"C"+this.point1X.toString()+" "+this.point1Y.toString()+" "+this.point2X.toString()+" "+this.point2Y.toString()+" "+this.endX.toString()+" "+this.endY.toString():"C"+this.point1X.toFixed(t)+" "+this.point1Y.toFixed(t)+" "+this.point2X.toFixed(t)+" "+this.point2Y.toFixed(t)+" "+this.endX.toFixed(t)+" "+this.endY.toFixed(t);break;case re:t=0>t?"Q"+this.point1X.toString()+" "+this.point1Y.toString()+" "+this.endX.toString()+" "+this.endY.toString():"Q"+this.point1X.toFixed(t)+" "+this.point1Y.toFixed(t)+" "+this.endX.toFixed(t)+" "+this.endY.toFixed(t);break;case se:t=0>t?"B"+this.startAngle.toString()+" "+this.sweepAngle.toString()+" "+this.centerX.toString()+" "+this.centerY.toString()+" "+this.radiusX.toString()+" "+this.radiusY.toString():"B"+this.startAngle.toFixed(t)+" "+this.sweepAngle.toFixed(t)+" "+this.centerX.toFixed(t)+" "+this.centerY.toFixed(t)+" "+this.radiusX.toFixed(t)+" "+this.radiusY.toFixed(t);break;case ae:t=0>t?"A"+this.radiusX.toString()+" "+this.radiusY.toString()+" "+this.xAxisRotation.toString()+" "+(this.isLargeArc?1:0)+" "+(this.isClockwiseArc?1:0)+" "+this.endX.toString()+" "+this.endY.toString():"A"+this.radiusX.toFixed(t)+" "+this.radiusY.toFixed(t)+" "+this.xAxisRotation.toFixed(t)+" "+(this.isLargeArc?1:0)+" "+(this.isClockwiseArc?1:0)+" "+this.endX.toFixed(t)+" "+this.endY.toFixed(t);break;default:t=this.type.toString()}return t+(this.isClosed?"z":"")},i.freeze=function(){return this._isFrozen=!0,this},i.ka=function(){return this._isFrozen=!1,this},i.close=function(){return this.isClosed=!0,this},f.Object.defineProperties(Qi.prototype,{_isFrozen:{get:function(){return 0!=(1&this.l)},set:function(t){this.l=t?1|this.l:-2&this.l}},_isInvalidBounds:{get:function(){return 0!=(2&this.l)},set:function(t){this.l=t?2|this.l:-3&this.l}},isClosed:{get:function(){return 0!=(8&this.l)},set:function(t){this.isClosed!==t&&(this.l=t?8|this.l:-9&this.l,this._isInvalidBounds=!0)}},type:{get:function(){return this.na},set:function(t){this._isFrozen&&k(this,t),this.na=t,this._isInvalidBounds=!0}},endX:{get:function(){return this.Dc},set:function(t){this._isFrozen&&k(this,t),this.Dc=t,this._isInvalidBounds=!0}},endY:{get:function(){return this.Ec},set:function(t){this._isFrozen&&k(this,t),this.Ec=t,this._isInvalidBounds=!0}},point1X:{get:function(){return this.Ne},set:function(t){this._isFrozen&&k(this,t),this.Ne=t,this._isInvalidBounds=!0}},point1Y:{get:function(){return this.Vh},set:function(t){this._isFrozen&&k(this,t),this.Vh=t,this._isInvalidBounds=!0}},point2X:{get:function(){return this.Wh},set:function(t){this._isFrozen&&k(this,t),this.Wh=t,this._isInvalidBounds=!0}},point2Y:{get:function(){return this.Pg},set:function(t){this._isFrozen&&k(this,t),this.Pg=t,this._isInvalidBounds=!0}},centerX:{get:function(){return this.Ne},set:function(t){this._isFrozen&&k(this,t),this.Ne=t,this._isInvalidBounds=!0}},centerY:{get:function(){return this.Vh},set:function(t){this._isFrozen&&k(this,t),this.Vh=t,this._isInvalidBounds=!0}},radiusX:{get:function(){return this.Wh},set:function(t){0>t&&M(t,">= zero",Qi,"radiusX"),this._isFrozen&&k(this,t),this.Wh=t,this._isInvalidBounds=!0}},radiusY:{get:function(){return this.Pg},set:function(t){0>t&&M(t,">= zero",Qi,"radiusY"),this._isFrozen&&k(this,t),this.Pg=t,this._isInvalidBounds=!0}},startAngle:{get:function(){return this.Dc},set:function(t){this._isFrozen&&k(this,t),0>(t%=360)&&(t+=360),this.Dc=t,this._isInvalidBounds=!0}},sweepAngle:{get:function(){return this.Ec},set:function(t){this._isFrozen&&k(this,t),360<t&&(t=360),-360>t&&(t=-360),this.Ec=t,this._isInvalidBounds=!0}},isClockwiseArc:{get:function(){return 0!=(4&this.l)},set:function(t){this._isFrozen&&k(this,t),this.l=t?4|this.l:-5&this.l,this._isInvalidBounds=!0}},isLargeArc:{get:function(){return 0!=(16&this.l)},set:function(t){this._isFrozen&&k(this,t),this.l=t?16|this.l:-17&this.l,this._isInvalidBounds=!0}},xAxisRotation:{get:function(){return this.Ne},set:function(t){this._isFrozen&&k(this,t),0>(t%=360)&&(t+=360),this.Ne=t,this._isInvalidBounds=!0}}}),Qi.prototype.equalsApprox=Qi.prototype.Xa;var ee=new V(Qi,"Move",0),ne=new V(Qi,"Line",1),oe=new V(Qi,"Bezier",2),re=new V(Qi,"QuadraticBezier",3),se=new V(Qi,"Arc",4),ae=new V(Qi,"SvgArc",4);function he(){this.H=null,this.xu=new pt(0,0).freeze(),this.mt=new pt(0,0).freeze(),this.Bp=this.Rq=0,this.Cp=1,this.xq="",this.Wr=this.Tp=!1,this.Rp=this.Ep=0,this.xg=this.nq=this.tq=!1,this.Zp=null,this.Rr=0,this.xd=this.Nr=null}function le(){this.H=null,this.xa="",this.ar=this.Lr=null}function ue(){this.Fm=fe,this.rf=this.Qq="",this.Ln=this.Mn=this.Rn=this.Sn=this.Qn=this.H=this.cc=null}Qi.className="PathSegment",Qi.Move=ee,Qi.Line=ne,Qi.Bezier=oe,Qi.QuadraticBezier=re,Qi.Arc=se,Qi.SvgArc=ae,he.prototype.copy=function(){var t=new he;return this.clone(t)},he.prototype.clone=function(t){return t.H=this.H,t.xu.assign(this.viewPoint),t.mt.assign(this.documentPoint),t.Rq=this.Rq,t.Bp=this.Bp,t.Cp=this.Cp,t.xq=this.xq,t.Tp=this.Tp,t.Wr=this.Wr,t.Ep=this.Ep,t.Rp=this.Rp,t.tq=this.tq,t.nq=this.nq,t.xg=this.xg,t.Zp=this.Zp,t.Rr=this.Rr,t.Nr=this.Nr,t.xd=this.xd,t},he.prototype.toString=function(){var t="^";return 0!==this.modifiers&&(t+="M:"+this.modifiers),0!==this.button&&(t+="B:"+this.button),""!==this.key&&(t+="K:"+this.key),0!==this.clickCount&&(t+="C:"+this.clickCount),0!==this.delta&&(t+="D:"+this.delta),this.handled&&(t+="h"),this.bubbles&&(t+="b"),null!==this.documentPoint&&(t+="@"+this.documentPoint.toString()),t},he.prototype.So=function(t,i){var e=this.diagram;return null===e||Zo(e,t,i),i},he.prototype.Bz=function(t,i){var e=this.diagram;return null===e||(Zo(e,t,i),i.assign(e.Ps(i))),i},f.Object.defineProperties(he.prototype,{diagram:{get:function(){return this.H},set:function(t){this.H=t}},viewPoint:{get:function(){return this.xu},set:function(t){this.xu.assign(t)}},documentPoint:{get:function(){return this.mt},set:function(t){this.mt.assign(t)}},modifiers:{get:function(){return this.Rq},set:function(t){this.Rq=t}},button:{get:function(){return this.Bp},set:function(t){if(this.Bp=t,null===this.event)switch(t){case 0:this.buttons=1;break;case 1:this.buttons=4;break;case 2:this.buttons=2}}},buttons:{get:function(){return this.Cp},set:function(t){this.Cp=t}},key:{get:function(){return this.xq},set:function(t){this.xq=t}},down:{get:function(){return this.Tp},set:function(t){this.Tp=t}},up:{get:function(){return this.Wr},set:function(t){this.Wr=t}},clickCount:{get:function(){return this.Ep},set:function(t){this.Ep=t}},delta:{get:function(){return this.Rp},set:function(t){this.Rp=t}},isMultiTouch:{get:function(){return this.tq},set:function(t){this.tq=t}},handled:{get:function(){return this.nq},set:function(t){this.nq=t}},bubbles:{get:function(){return this.xg},set:function(t){this.xg=t}},event:{get:function(){return this.Zp},set:function(t){this.Zp=t}},isTouchEvent:{get:function(){var t=this.event;return null!==t&&("touch"===t.pointerType||"pen"===t.pointerType)}},timestamp:{get:function(){return this.Rr},set:function(t){this.Rr=t}},targetDiagram:{get:function(){return this.Nr},set:function(t){this.Nr=t}},targetObject:{get:function(){return this.xd},set:function(t){this.xd=t}},control:{get:function(){return 0!=(1&this.modifiers)},set:function(t){this.modifiers=t?1|this.modifiers:-2&this.modifiers}},shift:{get:function(){return 0!=(4&this.modifiers)},set:function(t){this.modifiers=t?4|this.modifiers:-5&this.modifiers}},alt:{get:function(){return 0!=(2&this.modifiers)},set:function(t){this.modifiers=t?2|this.modifiers:-3&this.modifiers}},meta:{get:function(){return 0!=(8&this.modifiers)},set:function(t){this.modifiers=t?8|this.modifiers:-9&this.modifiers}},left:{get:function(){var t=this.event;return null===t||"mousedown"!==t.type&&"mouseup"!==t.type&&"pointerdown"!==t.type&&"pointerup"!==t.type?0!=(1&this.buttons):0===this.button},set:function(t){this.buttons=t?1|this.buttons:-2&this.buttons}},right:{get:function(){var t=this.event;return null===t||"mousedown"!==t.type&&"mouseup"!==t.type&&"pointerdown"!==t.type&&"pointerup"!==t.type?0!=(2&this.buttons):2===this.button},set:function(t){this.buttons=t?2|this.buttons:-3&this.buttons}},middle:{get:function(){var t=this.event;return null===t||"mousedown"!==t.type&&"mouseup"!==t.type&&"pointerdown"!==t.type&&"pointerup"!==t.type?0!=(4&this.buttons):1===this.button},set:function(t){this.buttons=t?4|this.buttons:-5&this.buttons}}}),he.prototype.getMultiTouchDocumentPoint=he.prototype.Bz,he.prototype.getMultiTouchViewPoint=he.prototype.So,he.className="InputEvent",le.prototype.copy=function(){var t=new le;return t.H=this.H,t.xa=this.xa,t.Lr=this.Lr,t.ar=this.ar,t},le.prototype.toString=function(){var t="*"+this.name;return null!==this.subject&&(t+=":"+this.subject.toString()),null!==this.parameter&&(t+="("+this.parameter.toString()+")"),t},f.Object.defineProperties(le.prototype,{diagram:{get:function(){return this.H},set:function(t){this.H=t}},name:{get:function(){return this.xa},set:function(t){this.xa=t}},subject:{get:function(){return this.Lr},set:function(t){this.Lr=t}},parameter:{get:function(){return this.ar},set:function(t){this.ar=t}}}),le.className="DiagramEvent",ue.prototype.clear=function(){this.Ln=this.Mn=this.Rn=this.Sn=this.Qn=this.H=this.cc=null},ue.prototype.copy=function(){var t=new ue;t.Fm=this.Fm,t.Qq=this.Qq,t.rf=this.rf,t.cc=this.cc,t.H=this.H,t.Qn=this.Qn;var i=this.Sn;return t.Sn=P(i)&&"function"==typeof i.J?i.J():i,i=this.Rn,t.Rn=P(i)&&"function"==typeof i.J?i.J():i,i=this.Mn,t.Mn=P(i)&&"function"==typeof i.J?i.J():i,i=this.Ln,t.Ln=P(i)&&"function"==typeof i.J?i.J():i,t},ue.prototype.qb=function(t){t.classType===ue&&(this.change=t)},ue.prototype.toString=function(){var t="";return t=this.change===ce?t+"* ":this.change===fe?t+(null!==this.model?"!m":"!d"):t+(null!==this.model?"!m":"!d")+this.change,this.propertyName&&"string"==typeof this.propertyName&&(t+=" "+this.propertyName),this.modelChange&&this.modelChange!==this.propertyName&&(t+=" "+this.modelChange),t+=": ",this.change===ce?null!==this.oldValue&&(t+=" "+this.oldValue):(null!==this.object&&(t+=D(this.object)),null!==this.oldValue&&(t+=" old: "+D(this.oldValue)),null!==this.oldParam&&(t+=" "+this.oldParam),null!==this.newValue&&(t+=" new: "+D(this.newValue)),null!==this.newParam&&(t+=" "+this.newParam)),t},ue.prototype.I=function(t){return t?this.oldValue:this.newValue},ue.prototype.Dz=function(t){return t?this.oldParam:this.newParam},ue.prototype.canUndo=function(){return null!==this.model||null!==this.diagram},ue.prototype.undo=function(){this.canUndo()&&(null!==this.model?this.model.changeState(this,!0):null!==this.diagram&&this.diagram.changeState(this,!0))},ue.prototype.canRedo=function(){return null!==this.model||null!==this.diagram},ue.prototype.redo=function(){this.canRedo()&&(null!==this.model?this.model.changeState(this,!1):null!==this.diagram&&this.diagram.changeState(this,!1))},f.Object.defineProperties(ue.prototype,{model:{get:function(){return this.cc},set:function(t){this.cc=t}},diagram:{get:function(){return this.H},set:function(t){this.H=t}},change:{get:function(){return this.Fm},set:function(t){this.Fm=t}},modelChange:{get:function(){return this.Qq},set:function(t){this.Qq=t}},propertyName:{get:function(){return this.rf},set:function(t){this.rf=t}},isTransactionFinished:{get:function(){return this.Fm===ce&&("CommittedTransaction"===this.rf||"FinishedUndo"===this.rf||"FinishedRedo"===this.rf)}},object:{get:function(){return this.Qn},set:function(t){this.Qn=t}},oldValue:{get:function(){return this.Sn},set:function(t){this.Sn=t}},oldParam:{get:function(){return this.Rn},set:function(t){this.Rn=t}},newValue:{get:function(){return this.Mn},set:function(t){this.Mn=t}},newParam:{get:function(){return this.Ln},set:function(t){this.Ln=t}}}),ue.prototype.redo=ue.prototype.redo,ue.prototype.canRedo=ue.prototype.canRedo,ue.prototype.undo=ue.prototype.undo,ue.prototype.canUndo=ue.prototype.canUndo,ue.prototype.getParam=ue.prototype.Dz,ue.prototype.getValue=ue.prototype.I,ue.prototype.clear=ue.prototype.clear;var ce=new V(ue,"Transaction",-1),fe=new V(ue,"Property",0),de=new V(ue,"Insert",1),pe=new V(ue,"Remove",2);function ge(){this.o=(new Z).freeze(),this.xa="",this.j=!1}function me(){this.Pt=new $,this.Jd=!1,this.u=(new Z).freeze(),this.Ce=-1,this.o=999,this.Fe=!1,this.Np=null,this.bi=0,this.j=!1,this.Ie=(new Z).freeze(),this.hl=new Z,this.tt=!0,this.Dt=this.rq=this.Gt=this.Ft=!1}function ye(t,i,e){if(t.isUndoingRedoing)return!1;t.checksTransactionLevel&&1>t.transactionLevel&&S("Ending transaction without having started a transaction: "+e);var n=1===t.transactionLevel,o=t.currentTransaction;n&&i&&(t.isInternalTransaction||t.Ob("CommittingTransaction",e,o));var r=0;if(0<t.transactionLevel&&(t.bi--,t.isEnabled)){var s=t.Ie.count;0<s&&(""===e&&(e=t.Ie.M(0)),t.Ie.ka(),t.Ie.mb(s-1),t.Ie.freeze()),0<(s=t.hl.count)&&(r=t.hl.M(s-1),t.hl.mb(s-1))}if(n){if(i)t.rq=!1,null===o&&""!==e&&(o=t.currentTransaction),t.isEnabled&&null!==o&&(o.isComplete||(o.isComplete=!0,o.name=e),t.lx(),(i=t.history).ka(),0<=(n=t.maxHistoryLength)&&(0===n?i.clear():i.count>=n&&(null!==(r=i.M(0))&&r.clear(),i.mb(0),t.Ce--)),0===n||0!==i.count&&i.get(i.count-1)===o||(i.add(o),t.Ce++),i.freeze()),t.isInternalTransaction||t.Ob("CommittedTransaction",e,o);else{t.Fe=!0;try{t.isEnabled&&null!==o&&(o.isComplete=!0,o.undo())}finally{t.isInternalTransaction||t.Ob("RolledBackTransaction",e,o),t.Fe=!1}null!==o&&o.clear()}return t.Np=null,t.isPendingClear&&t.clear(),t.isPendingClear=!1,t.isPendingUnmodified=!1,!0}if(t.isEnabled&&!i&&null!==o){for(t=r,o=(e=o.changes).count-1;o>=t;o--)null!==(i=e.M(o))&&i.undo(),e.ka(),e.mb(o);e.freeze()}return!1}function ve(){Q(this),this.H=bo,this.xa="",this.Jd=!0,this.nb=!1,this.wm=null,this.yy=new he,this.Zr=-1}function xe(){ve.call(this),this.name="ToolManager",this.hb=new Z,this.ob=new Z,this.Hb=new Z,this.F=this.V=850,this.o=new At(2,2).ja(),this.Ha=5e3,this.ia=ke,this.u=Pe,this.Mp=this.j=null,this.zj=-1}function be(t,i){t.standardMouseOver(),t.isBeyondDragSize()&&t.standardWaitAfter(t.isActive?t.holdDelay:t.hoverDelay,i.lastInput)}ue.className="ChangedEvent",ue.Transaction=ce,ue.Property=fe,ue.Insert=de,ue.Remove=pe,ge.prototype.toString=function(t){var i="Transaction: "+this.name+" "+this.changes.count.toString()+(this.isComplete?"":", incomplete");if(void 0!==t&&0<t){t=this.changes.count;for(var e=0;e<t;e++){var n=this.changes.M(e);null!==n&&(i+="\n "+n.toString())}}return i},ge.prototype.clear=function(){var t=this.changes;t.ka();for(var i=t.count-1;0<=i;i--){var e=t.M(i);null!==e&&e.clear()}t.clear(),t.freeze()},ge.prototype.canUndo=function(){return this.isComplete},ge.prototype.undo=function(){if(this.canUndo())for(var t=this.changes.count-1;0<=t;t--){var i=this.changes.M(t);null!==i&&i.undo()}},ge.prototype.canRedo=function(){return this.isComplete},ge.prototype.redo=function(){if(this.canRedo())for(var t=this.changes.count,i=0;i<t;i++){var e=this.changes.M(i);null!==e&&e.redo()}},ge.prototype.ak=function(){if(this.isComplete){var t=this.changes;t.ka();for(var i=new dt,e=0;e<t.count;e++){var n=t.M(e);if(null!==n&&n.change===fe&&n.object){var o=i.get(n.object);o||(o=new dt,i.set(n.object,o));var r=o.get(n.propertyName);null===r?o.set(n.propertyName,-1):(0<r&&t.cd(r,null),o.set(n.propertyName,e))}}for(e=i=0;e<t.count;e++)null!==(n=t.M(e))&&(e>i&&t.cd(i,n),i++);for(;t.length>i;)t.pop();t.freeze()}},f.Object.defineProperties(ge.prototype,{changes:{get:function(){return this.o}},name:{get:function(){return this.xa},set:function(t){this.xa=t}},isComplete:{get:function(){return this.j},set:function(t){this.j=t}}}),ge.prototype.optimize=ge.prototype.ak,ge.prototype.redo=ge.prototype.redo,ge.prototype.canRedo=ge.prototype.canRedo,ge.prototype.undo=ge.prototype.undo,ge.prototype.canUndo=ge.prototype.canUndo,ge.prototype.clear=ge.prototype.clear,ge.className="Transaction",me.prototype.toString=function(t){var i="UndoManager "+this.historyIndex+"<"+this.history.count+"<="+this.maxHistoryLength;i+="[";for(var e=this.nestedTransactionNames.count,n=0;n<e;n++)0<n&&(i+=" "),i+=this.nestedTransactionNames.M(n);if(i+="]",void 0!==t&&0<t)for(e=this.history.count,n=0;n<e;n++)i+="\n "+this.history.M(n).toString(t-1);return i},me.prototype.clear=function(){var t=this.history;t.ka();for(var i=t.count-1;0<=i;i--){var e=t.M(i);null!==e&&e.clear()}t.clear(),this.Ce=-1,t.freeze(),this.Fe=!1,this.Np=null,this.bi=0,this.Ie.ka(),this.Ie.clear(),this.Ie.freeze(),this.hl.clear(),this.Dt=this.rq=this.Gt=this.Ft=!1},me.prototype.copyProperties=function(t){this.isEnabled=t.isEnabled,this.maxHistoryLength=t.maxHistoryLength,this.checksTransactionLevel=t.checksTransactionLevel},(i=me.prototype).Xw=function(t){this.Pt.add(t)},i.Rx=function(t){this.Pt.remove(t)},i.Ea=function(t){if(void 0===t&&(t=""),null===t&&(t=""),this.isUndoingRedoing)return!1;!0===this.tt&&(this.tt=!1,this.bi++,this.isInternalTransaction||this.Ob("StartingFirstTransaction",t,this.currentTransaction),0<this.bi&&this.bi--),this.isEnabled&&(this.Ie.ka(),this.Ie.add(t),this.Ie.freeze(),null===this.currentTransaction?this.hl.add(0):this.hl.add(this.currentTransaction.changes.count)),this.bi++;var i=1===this.transactionLevel;return i&&(this.isInternalTransaction||this.Ob("StartedTransaction",t,this.currentTransaction)),i},i.eb=function(t){return void 0===t&&(t=""),ye(this,!0,t)},i.Kf=function(){return ye(this,!1,"")},i.lx=function(){if(!this.isUndoingRedoing&&this.canRedo()){var t=this.history;t.ka();for(var i=t.count-1;i>this.historyIndex;i--){var e=t.M(i);null!==e&&e.clear(),t.mb(i),this.rq=!0}t.freeze()}},me.prototype.canUndo=function(){if(!this.isEnabled||0<this.transactionLevel)return!1;var t=this.transactionToUndo;return!(null===t||!t.canUndo())},me.prototype.undo=function(){if(this.canUndo()){var t=this.transactionToUndo;try{this.Fe=!0,this.Ob("StartingUndo","Undo",t),this.Ce--,t.undo()}catch(t){S("undo error: "+t.toString())}finally{this.Ob("FinishedUndo","Undo",t),this.Fe=!1}}},me.prototype.canRedo=function(){if(!this.isEnabled||0<this.transactionLevel)return!1;var t=this.transactionToRedo;return!(null===t||!t.canRedo())},me.prototype.redo=function(){if(this.canRedo()){var t=this.transactionToRedo;try{this.Fe=!0,this.Ob("StartingRedo","Redo",t),this.Ce++,t.redo()}catch(t){S("redo error: "+t.toString())}finally{this.Ob("FinishedRedo","Redo",t),this.Fe=!1}}},me.prototype.Ob=function(t,i,e){void 0===e&&(e=null);var n=new ue;for(n.change=ce,n.propertyName=t,n.object=e,n.oldValue=i,t=this.models;t.next();)i=t.value,n.model=i,i.ds(n)},me.prototype.Tu=function(t){if(this.isEnabled&&!this.isUndoingRedoing&&!this.skipsEvent(t)){var i=this.currentTransaction;null===i&&(this.Np=i=new ge);var e=t.copy();(i=i.changes).ka(),i.add(e),i.freeze(),this.checksTransactionLevel&&0>=this.transactionLevel&&!this.tt&&(null!==(t=t.diagram)&&!1===t.pi||S("Change not within a transaction: "+e.toString()))}},me.prototype.skipsEvent=function(t){if(null===t||0>t.change.value)return!0;if(null===(t=t.object))return!1;if(void 0!==t.layer){if(null!==(t=t.layer)&&t.isTemporary)return!0}else if(t.isTemporary)return!0;return!1},f.Object.defineProperties(me.prototype,{models:{get:function(){return this.Pt.iterator}},isEnabled:{get:function(){return this.Jd},set:function(t){this.Jd=t}},transactionToUndo:{get:function(){return 0<=this.historyIndex&&this.historyIndex<=this.history.count-1?this.history.M(this.historyIndex):null}},transactionToRedo:{get:function(){return this.historyIndex<this.history.count-1?this.history.M(this.historyIndex+1):null}},isUndoingRedoing:{get:function(){return this.Fe}},history:{get:function(){return this.u}},maxHistoryLength:{get:function(){return this.o},set:function(t){this.o=t}},historyIndex:{get:function(){return this.Ce}},currentTransaction:{get:function(){return this.Np}},transactionLevel:{get:function(){return this.bi}},isInTransaction:{get:function(){return 0<this.bi}},checksTransactionLevel:{get:function(){return this.j},set:function(t){this.j=t}},nestedTransactionNames:{get:function(){return this.Ie}},isPendingClear:{get:function(){return this.Ft},set:function(t){this.Ft=t}},isPendingUnmodified:{get:function(){return this.Gt},set:function(t){this.Gt=t}},isInternalTransaction:{get:function(){return this.Dt},set:function(t){this.Dt=t}},isJustDiscarded:{get:function(){return this.rq}}}),me.prototype.handleChanged=me.prototype.Tu,me.prototype.redo=me.prototype.redo,me.prototype.undo=me.prototype.undo,me.prototype.canUndo=me.prototype.canUndo,me.prototype.discardHistoryAfterIndex=me.prototype.lx,me.prototype.rollbackTransaction=me.prototype.Kf,me.prototype.commitTransaction=me.prototype.eb,me.prototype.startTransaction=me.prototype.Ea,me.prototype.removeModel=me.prototype.Rx,me.prototype.addModel=me.prototype.Xw,me.prototype.clear=me.prototype.clear,me.className="UndoManager",ve.prototype.toString=function(){return""!==this.name?this.name+" Tool":F(this.constructor)},ve.prototype.updateAdornments=function(){},ve.prototype.canStart=function(){return this.isEnabled},ve.prototype.doStart=function(){},ve.prototype.doActivate=function(){this.isActive=!0},ve.prototype.doDeactivate=function(){this.isActive=!1},ve.prototype.doStop=function(){},ve.prototype.doCancel=function(){this.transactionResult=null,this.stopTool()},ve.prototype.stopTool=function(){var t=this.diagram;t.currentTool===this&&(t.currentTool=null,t.currentCursor="")},ve.prototype.doMouseDown=function(){!this.isActive&&this.canStart()&&this.doActivate()},ve.prototype.doMouseMove=function(){},ve.prototype.doMouseUp=function(){this.stopTool()},ve.prototype.doMouseWheel=function(){},ve.prototype.canStartMultiTouch=function(){return!0},ve.prototype.standardPinchZoomStart=function(){var t=this.diagram,i=t.lastInput,e=i.So(0,pt.allocAt(NaN,NaN)),n=i.So(1,pt.allocAt(NaN,NaN));if(e.w()&&n.w()&&(this.doCancel(),t.Ql("hasGestureZoom"))){t.Bw=t.scale;var o=n.x-e.x,r=n.y-e.y;t.Jw=Math.sqrt(o*o+r*r),i.bubbles=!1}pt.free(e),pt.free(n)},ve.prototype.standardPinchZoomMove=function(){var t=this.diagram,i=t.lastInput,e=i.So(0,pt.allocAt(NaN,NaN)),n=i.So(1,pt.allocAt(NaN,NaN));if(e.w()&&n.w()&&(this.doCancel(),t.Ql("hasGestureZoom"))){var o=n.x-e.x,r=n.y-e.y;r=Math.sqrt(o*o+r*r)/t.Jw,o=new pt((Math.min(n.x,e.x)+Math.max(n.x,e.x))/2,(Math.min(n.y,e.y)+Math.max(n.y,e.y))/2),r*=t.Bw;var s=t.commandHandler;if(r!==t.scale&&s.canResetZoom(r)){var a=t.zoomPoint;t.zoomPoint=o,s.resetZoom(r),t.zoomPoint=a}i.bubbles=!1}pt.free(e),pt.free(n)},ve.prototype.doKeyDown=function(){"Esc"===this.diagram.lastInput.key&&this.doCancel()},ve.prototype.doKeyUp=function(){},ve.prototype.Ea=function(t){return void 0===t&&(t=this.name),this.transactionResult=null,this.diagram.Ea(t)},ve.prototype.stopTransaction=function(){var t=this.diagram;return null===this.transactionResult?t.Kf():t.eb(this.transactionResult)},ve.prototype.standardMouseSelect=function(){var t=this.diagram;if(t.allowSelect){var i=t.lastInput,e=t.Ol(i.documentPoint,!1);if(null!==e){if(R?i.meta:i.control){for(t.R("ChangingSelection",t.selection),i=e;null!==i&&!i.canSelect();)i=i.containingGroup;null!==i&&(i.isSelected=!i.isSelected),t.R("ChangedSelection",t.selection)}else if(i.shift){if(!e.isSelected){for(t.R("ChangingSelection",t.selection),i=e;null!==i&&!i.canSelect();)i=i.containingGroup;null!==i&&(i.isSelected=!0),t.R("ChangedSelection",t.selection)}}else if(!e.isSelected){for(i=e;null!==i&&!i.canSelect();)i=i.containingGroup;null!==i&&t.select(i)}}else!i.left||(R?i.meta:i.control)||i.shift||t.clearSelection()}},ve.prototype.standardMouseClick=function(t,i){void 0===t&&(t=null),void 0===i&&(i=function(t){return!t.layer.isTemporary});var e=this.diagram,n=e.lastInput;return t=e.ic(n.documentPoint,t,i),n.targetObject=t,function(t,i,e){if(i.handled=!1,null===t||t.If()){var n=0;i.left?n=1===i.clickCount?1:2===i.clickCount?2:1:i.right&&1===i.clickCount&&(n=3);var o="ObjectSingleClicked";if(null!==t){switch(n){case 1:o="ObjectSingleClicked";break;case 2:o="ObjectDoubleClicked";break;case 3:o="ObjectContextClicked"}0!==n&&e.R(o,t)}else{switch(n){case 1:o="BackgroundSingleClicked";break;case 2:o="BackgroundDoubleClicked";break;case 3:o="BackgroundContextClicked"}0!==n&&e.R(o)}if(null!==t)for(;null!==t;){switch(e=null,n){case 1:e=t.click;break;case 2:e=t.doubleClick?t.doubleClick:t.click;break;case 3:e=t.contextClick}if(null!==e&&(e(i,t),i.handled))break;t=t.panel}else{switch(t=null,n){case 1:t=e.click;break;case 2:t=e.doubleClick?e.doubleClick:e.click;break;case 3:t=e.contextClick}null!==t&&t(i)}}}(t,n,e),n.handled},ve.prototype.standardMouseOver=function(){var t=this.diagram,i=t.lastInput;if(!0!==t.animationManager.zb){var e=t.skipsUndoManager;t.skipsUndoManager=!0;var n=t.viewportBounds.ca(i.documentPoint)?t.ic(i.documentPoint,null,null):null;!i.event||"pointercancel"!==i.event.type&&"pointerout"!==i.event.type||(n=null),i.targetObject=n;var o=!1;if(n!==t.Ck){var r=t.Ck,s=r;for(t.Ck=n,this.doCurrentObjectChanged(r,n),i.handled=!1;null!==r;){var a=r.mouseLeave;if(null!==a){if(n===r)break;if(null!==n&&n.rg(r))break;if(a(i,r,n),o=!0,i.handled)break}r=r.panel}for(r=s,i.handled=!1;null!==n;){if(null!==(s=n.mouseEnter)){if(r===n)break;if(null!==r&&r.rg(n))break;if(s(i,n,r),o=!0,i.handled)break}n=n.panel}n=t.Ck}if(null!==n){for(r=n,s="";null!==r&&""===(s=r.cursor);)r=r.panel;for(t.currentCursor=s,i.handled=!1,r=n;null!==r&&(null===(n=r.mouseOver)||(n(i,r),o=!0,!i.handled));)r=r.panel}else this.doUpdateCursor(null),null!==(n=t.mouseOver)&&(n(i),o=!0);o&&t.$b(),t.skipsUndoManager=e}},ve.prototype.doUpdateCursor=function(){var t=this.diagram;t&&(t.currentCursor="")},ve.prototype.doCurrentObjectChanged=function(){},ve.prototype.standardMouseWheel=function(){var t=this.diagram,i=t.lastInput,e=i.delta;if(0!==e&&t.documentBounds.w()){var n=t.commandHandler,o=t.toolManager.mouseWheelBehavior;if(null!==n&&(o===Me&&!i.shift||o===ke&&i.control))(0<e?n.canIncreaseZoom():n.canDecreaseZoom())&&(o=t.zoomPoint,t.zoomPoint=i.viewPoint,0<e?n.increaseZoom():n.decreaseZoom(),t.zoomPoint=o),i.bubbles=!1;else if(o===Me&&i.shift||o===ke&&!i.control){n=t.position.copy();var r=i.event;o=r.deltaMode;var s=r.deltaX;r=r.deltaY;var a="pixel";if(0===s&&0===r||i.shift)!i.shift&&t.allowVerticalScroll?(e=3*e*t.scrollVerticalLineChange,t.scroll(a,0<e?"up":"down",Math.abs(e))):i.shift&&t.allowHorizontalScroll&&(e=3*e*t.scrollHorizontalLineChange,t.scroll(a,0<e?"left":"right",Math.abs(e)));else{switch(o){case 0:a="pixel";break;case 1:a="line";break;case 2:a="page"}0!==s&&t.allowHorizontalScroll&&(s*=t.scrollHorizontalLineChange/16,t.scroll(a,0<s?"right":"left",Math.abs(s))),0!==r&&t.allowVerticalScroll&&(r*=t.scrollVerticalLineChange/16,t.scroll(a,0<r?"down":"up",Math.abs(r)))}this.doWheelChange(t,n,i)}}},ve.prototype.doWheelChange=function(t,i,e){t.position.D(i)&&0===e.event.wheelDeltaX||(e.bubbles=!1)},ve.prototype.standardWaitAfter=function(t,i){void 0===i&&(i=this.diagram.lastInput),this.cancelWaitAfter();var e=this,n=i.clone(this.yy);this.Zr=x((function(){e.doWaitAfter(n)}),t)},ve.prototype.cancelWaitAfter=function(){-1!==this.Zr&&m.clearTimeout(this.Zr),this.Zr=-1},ve.prototype.doWaitAfter=function(){},ve.prototype.findToolHandleAt=function(t,i){return null===(t=this.diagram.ic(t,(function(t){for(;null!==t&&!(t.panel instanceof Ku);)t=t.panel;return t})))?null:t.part.category===i?t:null},ve.prototype.isBeyondDragSize=function(t,i){var e=this.diagram;void 0===t&&(t=e.firstInput.viewPoint),void 0===i&&(i=e.lastInput.viewPoint);var n=e.toolManager.dragSize,o=n.width;return n=n.height,e.firstInput.isTouchEvent&&(o+=6,n+=6),Math.abs(i.x-t.x)>o||Math.abs(i.y-t.y)>n},f.Object.defineProperties(ve.prototype,{diagram:{get:function(){return this.H},set:function(t){t instanceof To&&(this.H=t)}},name:{get:function(){return this.xa},set:function(t){this.xa=t}},isEnabled:{get:function(){return this.Jd},set:function(t){this.Jd=t}},isActive:{get:function(){return this.nb},set:function(t){this.nb=t}},transactionResult:{get:function(){return this.wm},set:function(t){this.wm=t}}}),ve.prototype.startTransaction=ve.prototype.Ea,ve.className="Tool",c(xe,ve),xe.prototype.initializeStandardTools=function(){},xe.prototype.updateAdornments=function(t){var i=this.currentToolTip;if(i instanceof Ku&&this.Mp===t){var e=i.adornedObject;(null!==t?e.part===t:null===e)?this.showToolTip(i,e):this.hideToolTip()}},xe.prototype.doMouseDown=function(){var t=this.diagram,i=t.lastInput;if(i.isTouchEvent&&this.gestureBehavior===Ne&&(i.bubbles=!1),i.isMultiTouch){if(this.cancelWaitAfter(),this.gestureBehavior===Ce)return void(i.bubbles=!0);if(this.gestureBehavior===Ne)return;if(t.currentTool.canStartMultiTouch())return void t.currentTool.standardPinchZoomStart()}for(var e=this.mouseDownTools.length,n=0;n<e;n++){var o=this.mouseDownTools.M(n);if(o.diagram=this.diagram,o.canStart())return t.doFocus(),t.currentTool=o,void(t.currentTool===o&&(o.isActive||o.doActivate(),o.doMouseDown()))}1===t.lastInput.button&&(this.mouseWheelBehavior===ke?this.mouseWheelBehavior=Me:this.mouseWheelBehavior===Me&&(this.mouseWheelBehavior=ke)),this.doActivate(),this.standardWaitAfter(this.holdDelay,i)},xe.prototype.doMouseMove=function(){var t=this.diagram,i=t.lastInput;if(i.isMultiTouch){if(this.gestureBehavior===Ce)return void(i.bubbles=!0);if(this.gestureBehavior===Ne)return;if(t.currentTool.canStartMultiTouch())return void t.currentTool.standardPinchZoomMove()}if(this.isActive)for(var e=this.mouseMoveTools.length,n=0;n<e;n++){var o=this.mouseMoveTools.M(n);if(o.diagram=this.diagram,o.canStart())return t.doFocus(),t.currentTool=o,void(t.currentTool===o&&(o.isActive||o.doActivate(),o.doMouseMove()))}be(this,t),null===(t=i.event)||"pointermove"!==t.type&&t.cancelable||(i.bubbles=!0)},xe.prototype.doCurrentObjectChanged=function(t,i){null===(t=this.currentToolTip)||null!==i&&t instanceof Ku&&(i===t||i.rg(t))||this.hideToolTip()},xe.prototype.doWaitAfter=function(t){var i=this.diagram;null!==i.ta&&(this.doMouseHover(),this.isActive||this.doToolTip(),t.isTouchEvent&&!i.lastInput.handled&&((t=t.copy()).button=2,t.buttons=2,i.lastInput=t,i.qu=!0,i.doMouseUp()))},xe.prototype.doMouseHover=function(){var t=this.diagram,i=t.lastInput;null===i.targetObject&&(i.targetObject=t.ic(i.documentPoint,null,null));var e=i.targetObject;if(null!==e)for(i.handled=!1;null!==e&&(null===(t=this.isActive?e.mouseHold:e.mouseHover)||(t(i,e),!i.handled));)e=e.panel;else null!==(e=this.isActive?t.mouseHold:t.mouseHover)&&e(i)},xe.prototype.doToolTip=function(){var t=this.diagram,i=t.lastInput;if(null===i.targetObject&&(i.targetObject=t.ic(i.documentPoint,null,null)),null!==(i=i.targetObject)){if(!((t=this.currentToolTip)instanceof Ku)||i!==t&&!i.rg(t)){for(;null!==i;){if(null!==(t=i.toolTip))return void this.showToolTip(t,i);i=i.panel}this.hideToolTip()}}else null!==(i=t.toolTip)?this.showToolTip(i,null):this.hideToolTip()},xe.prototype.showToolTip=function(t,i){var e=this.diagram;if(t!==this.currentToolTip&&this.hideToolTip(),t instanceof Ku){t.layerName="Tool",t.selectable=!1,t.scale=1/e.scale,t.category="ToolTip",null!==t.placeholder&&(t.placeholder.scale=e.scale);var n=t.diagram;null!==n&&n!==e&&n.remove(t),e.add(t),null!==i?t.adornedObject=i:t.data=e.model,t.Va(),this.positionToolTip(t,i)}else t instanceof xn&&t!==this.currentToolTip&&t.show(i,e,this);if(this.currentToolTip=t,-1!==this.zj&&(m.clearTimeout(this.zj),this.zj=-1),0<(t=this.toolTipDuration)&&1/0!==t){var o=this;this.zj=x((function(){o.hideToolTip()}),t)}},xe.prototype.positionToolTip=function(t){if(null===t.placeholder){var i=this.diagram,e=i.lastInput.documentPoint.copy(),n=t.measuredBounds,o=i.viewportBounds;i.lastInput.isTouchEvent&&(e.x-=n.width),e.x+n.width>o.right&&(e.x-=n.width+5/i.scale),e.x<o.x&&(e.x=o.x),e.y=e.y+20/i.scale+n.height>o.bottom?e.y-(n.height+5/i.scale):e.y+20/i.scale,e.y<o.y&&(e.y=o.y),t.position=e}},xe.prototype.hideToolTip=function(){-1!==this.zj&&(m.clearTimeout(this.zj),this.zj=-1);var t=this.diagram,i=this.currentToolTip;null!==i&&(i instanceof Ku?(t.remove(i),null!==this.Mp&&this.Mp.Jf(i.category),i.data=null,i.adornedObject=null):i instanceof xn&&null!==i.hide&&i.hide(t,this),this.currentToolTip=null)},xe.prototype.doMouseUp=function(){this.cancelWaitAfter();var t=this.diagram;if(this.isActive)for(var i=this.mouseUpTools.length,e=0;e<i;e++){var n=this.mouseUpTools.M(e);if(n.diagram=this.diagram,n.canStart())return t.doFocus(),t.currentTool=n,void(t.currentTool===n&&(n.isActive||n.doActivate(),n.doMouseUp()))}t.doFocus(),this.doDeactivate()},xe.prototype.doMouseWheel=function(){this.standardMouseWheel()},xe.prototype.doKeyDown=function(){var t=this.diagram;null!==t.commandHandler&&t.commandHandler.doKeyDown()},xe.prototype.doKeyUp=function(){var t=this.diagram;null!==t.commandHandler&&t.commandHandler.doKeyUp()},xe.prototype.findTool=function(t){for(var i=this.mouseDownTools.length,e=0;e<i;e++){var n=this.mouseDownTools.M(e);if(n.name===t)return n}for(i=this.mouseMoveTools.length,e=0;e<i;e++)if((n=this.mouseMoveTools.M(e)).name===t)return n;for(i=this.mouseUpTools.length,e=0;e<i;e++)if((n=this.mouseUpTools.M(e)).name===t)return n;return null},xe.prototype.replaceTool=function(t,i){null!==i&&(i.diagram=this.diagram);for(var e=this.mouseDownTools.length,n=0;n<e;n++){var o=this.mouseDownTools.M(n);if(o.name===t)return null!==i?this.mouseDownTools.cd(n,i):this.mouseDownTools.mb(n),o}for(e=this.mouseMoveTools.length,n=0;n<e;n++)if((o=this.mouseMoveTools.M(n)).name===t)return null!==i?this.mouseMoveTools.cd(n,i):this.mouseMoveTools.mb(n),o;for(e=this.mouseUpTools.length,n=0;n<e;n++)if((o=this.mouseUpTools.M(n)).name===t)return null!==i?this.mouseUpTools.cd(n,i):this.mouseUpTools.mb(n),o;return null},xe.prototype.gb=function(t,i,e){null!==i&&(i.name=t,i.diagram=this.diagram),this.findTool(t)?this.replaceTool(t,i):null!==i&&e.add(i)},f.Object.defineProperties(xe.prototype,{mouseWheelBehavior:{get:function(){return this.ia},set:function(t){this.ia=t}},gestureBehavior:{get:function(){return this.u},set:function(t){this.u=t}},currentToolTip:{get:function(){return this.j},set:function(t){this.j=t,this.Mp=null!==t&&t instanceof Ku?t.adornedPart:null}},mouseDownTools:{get:function(){return this.hb}},mouseMoveTools:{get:function(){return this.ob}},mouseUpTools:{get:function(){return this.Hb}},hoverDelay:{get:function(){return this.V},set:function(t){this.V=t}},holdDelay:{get:function(){return this.F},set:function(t){this.F=t}},dragSize:{get:function(){return this.o},set:function(t){this.o=t.J()}},toolTipDuration:{get:function(){return this.Ha},set:function(t){this.Ha=t}}}),xe.prototype.replaceStandardTool=xe.prototype.gb;var we,ke=new V(xe,"WheelScroll",0),Me=new V(xe,"WheelZoom",1),Se=new V(xe,"WheelNone",2),Pe=new V(xe,"GestureZoom",3),Ne=new V(xe,"GestureCancel",4),Ce=new V(xe,"GestureNone",5);function Te(){ve.call(this),this.name="Dragging",this.u=this.Sw=this.ob=!0,this.o=this.Ha=this.V=this.Oe=null,this.Ym=this.Hb=!1,this.tl=new pt(NaN,NaN),this.Fr=new pt,this.hb=!0,this.Ik=100,this.Cg=[],this.te=(new $).freeze(),this.ia=new Ms,this.Bn=null,this.F="copy",this.Oc="",this.Pc="no-drop"}function Le(t,i){if(t.dragsLink){var e=t.diagram;e.allowRelink&&(e.model.Wj()&&1===i.count&&i.first()instanceof wc?(t.draggedLink=i.first(),t.draggedLink.canRelinkFrom()&&t.draggedLink.canRelinkTo()&&t.draggedLink.Ej(),t.Oe=e.toolManager.findTool("Relinking"),null===t.Oe&&(t.Oe=new on,t.Oe.diagram=e),t.Oe.originalLink=t.draggedLink):(t.draggedLink=null,t.Oe=null))}}function Ae(t){var i=t.diagram,e=i.skipsUndoManager;i.skipsUndoManager=!0,Re(t,i.lastInput,null),i.skipsUndoManager=e,t.Cg.length=0}function je(){var t=He;De(t),Ie(t);var i=t.diagram;t.tl.w()&&(i.position=t.tl),i.ug()}function Fe(t,i){if(null===t.copiedParts){var e=t.diagram;if((!i||!e.isReadOnly&&!e.isModelReadOnly)&&null!==t.draggedParts){var n=e.undoManager;for(n.isEnabled&&n.isInTransaction?null!==n.currentTransaction&&0<n.currentTransaction.changes.count&&(e.undoManager.Kf(),e.Ea("Drag")):Ie(t),e.skipsUndoManager=!i,e.partManager.addsToTemporaryLayer=!i,t.startPoint=e.firstInput.documentPoint,i=t.copiesEffectiveCollection?t.draggedParts.Lf():e.selection,i=e.Kj(i,e,!0),e=new dt,n=t.draggedParts.iterator;n.next();){var o=n.key;if(o.Zc()&&o.canCopy()){var r=i.I(o);null!==r&&(r.location=o.location,r.Va(),e.add(r,t.Pd(r.location)))}}for(i=i.iterator;i.next();)(n=i.value)instanceof wc&&n.canCopy()&&e.add(n,t.Pd());t.copiedParts=e,Le(t,e.Lf()),null!==t.draggedLink&&(i=(e=t.draggedLink).routeBounds,Sc(e,t.startPoint.x-(i.x+i.width/2),t.startPoint.y-(i.y+i.height/2))),t.doUpdateCursor(null)}}}function De(t){var i=t.diagram;if(null!==t.copiedParts){if(i.Is(t.copiedParts.Lf(),!1),t.copiedParts=null,null!==t.draggedParts)for(var e=t.draggedParts.iterator;e.next();)e.key instanceof wc&&(e.value.point=new pt(0,0));t.doUpdateCursor(null)}i.skipsUndoManager=!1,i.partManager.addsToTemporaryLayer=!1,t.startPoint=i.firstInput.documentPoint}function Be(t){if(null!==t.draggedLink){if(t.dragsLink&&null!==t.Oe){var i=t.Oe;i.diagram.remove(i.temporaryFromNode),i.diagram.remove(i.temporaryToNode),t.Oe.originalLink=null}t.draggedLink=null,t.Oe=null}}function Oe(t,i,e){var n=t.diagram,o=t.startPoint,r=pt.alloc();r.assign(n.lastInput.documentPoint),t.moveParts(i,r.re(o),e),pt.free(r),!0===n.Gf("temporaryPixelRatio")&&null===n.Yh&&30<n.$w&&(Do(n),n.hk())}function Ie(t){if(null!==t.draggedParts){for(var i=t.diagram,e=t.draggedParts.iterator;e.next();){var n=e.key;n.Zc()&&(n.location=e.value.point)}for(e=t.draggedParts.iterator;e.next();)if((n=e.key)instanceof wc&&n.suspendsRouting){var o=e.value.point;t.draggedParts.add(n,t.Pd()),Sc(n,-o.x,-o.y)}i.bd()}}function ze(t,i){var e=t.diagram;t.dragsLink&&(null!==t.draggedLink&&(t.draggedLink.fromNode=null,t.draggedLink.toNode=null),Ye(t,!1));var n=t.findDragOverObject(i),o=e.lastInput;o.targetObject=n,t.doUpdateCursor(n);var r=e.skipsUndoManager,s=!1;try{if(e.skipsUndoManager=!0,s=Re(t,o,n),!t.isActive&&null===He)return;var a=null!==n?n.part:null;if(null===a||e.handlesDragDropForTopLevelParts&&a.isTopLevel&&!(a instanceof gc)){var h=e.mouseDragOver;null!==h&&(h(o),s=!0)}if(!t.isActive&&null===He)return;if(t.doDragOver(i,n),!t.isActive&&null===He)return}finally{e.skipsUndoManager=r,s&&e.bd()}t.Bn=n,e.isReadOnly||!e.allowMove&&!e.allowCopy||!e.allowHorizontalScroll&&!e.allowVerticalScroll||e.gs(o.viewPoint)}function Re(t,i,e){var n=!1,o=t.Cg.length,r=0<o?t.Cg[0]:null;if(e===r)return!1;i.handled=!1;for(var s=0;s<o;s++){var a=t.Cg[s],h=a.mouseDragLeave;if(null!==h&&(h(i,a,e),n=!0,i.handled))break}if(t.Cg.length=0,!t.isActive&&null===He||null===e)return n;for(i.handled=!1,o=e;null!==o;)t.Cg.push(o),o=Ee(o);for(o=t.Cg.length,e=0;e<o&&(null===(a=(s=t.Cg[e]).mouseDragEnter)||(a(i,s,r),n=!0,!i.handled));e++);return n}function Ee(t){var i=t.panel;return null!==i?i:t instanceof ku&&!(t instanceof gc)&&(null!==(t=t.containingGroup)&&t.handlesDragDropForMembers)?t:null}function Ve(t,i,e){var n=t.Oe;if(null===n)return null;var o=t.diagram.og(i,n.portGravity,(function(t){return n.findValidLinkablePort(t,e)}));t=pt.alloc();var r=1/0,s=null;for(o=o.iterator;o.next();){var a=o.value;if(null!==a.part){var h=a.ga(oi,t);(h=i.Bf(h))<r&&(s=a,r=h)}}return pt.free(t),s}function Ye(t,i){var e=t.draggedLink;if(null!==e&&!(2>e.pointsCount)){var n=t.diagram;if(!n.isReadOnly){var o=t.Oe;if(null!==o){var r=null,s=null;null===e.fromNode&&(null!==(r=Ve(t,e.i(0),!1))&&(s=r.part));var a=null,h=null;null===e.toNode&&(null!==(a=Ve(t,e.i(e.pointsCount-1),!0))&&(h=a.part)),o.isValidLink(s,r,h,a)?i?(e.defaultFromPoint=e.i(0),e.defaultToPoint=e.i(e.pointsCount-1),e.suspendsRouting=!1,e.fromNode=s,null!==r&&(e.fromPortId=r.portId),e.toNode=h,null!==a&&(e.toPortId=a.portId),e.fromPort!==n.Mx&&n.R("LinkRelinked",e,n.Mx),e.toPort!==n.Nx&&n.R("LinkRelinked",e,n.Nx)):rn(o,s,r,h,a):rn(o,null,null,null,null)}}}}function Ge(t,i){var e=t.diagram;t.dragsLink&&Ye(t,!0),Ae(t);var n=t.findDragOverObject(i),o=e.lastInput;if(o.targetObject=n,null!==n){o.handled=!1;for(var r=n;null!==r;){var s=r.mouseDrop;if(null!==s&&(s(o,r),o.handled))break;Xe(t,o,r),r=Ee(r)}}else null!==(r=e.mouseDrop)&&r(o);if(t.isActive||null!==He){for(o=(t.copiedParts||t.draggedParts).iterator;o.next();)(r=o.key)instanceof Ju&&r.linksConnected.each((function(t){t.suspendsRouting=!1}));if(t.doDropOnto(i,n),t.isActive||null!==He){for(t=Bt.alloc(),i=e.selection.iterator;i.next();)(n=i.value)instanceof Ju&&Ue(e,n,t);Bt.free(t)}}}function Xe(t,i,e){t=t.diagram,e=e.part,!t.handlesDragDropForTopLevelParts||!e.isTopLevel||e instanceof gc||null!==(e=t.mouseDrop)&&e(i)}function Ue(t,i,e){var n=!1;if(e=i.getAvoidableRect(e),t.viewportBounds.Re(e)&&(n=!0),0!==(t=t.Nu(e,(function(t){return t.part}),(function(t){return t instanceof wc}),!0,(function(t){return t instanceof wc}),n)).count)for(t=t.iterator;t.next();)!(e=t.value).Td(i)&&e.isAvoiding&&e.bb()}function qe(t,i,e,n){if(null===t.copiedParts){var o=t.diagram;if(!o.isReadOnly&&!o.isModelReadOnly){o.skipsUndoManager=!e,o.partManager.addsToTemporaryLayer=!e,t.startPoint=n.documentPoint,e=o.Kj(i,o,!0);var r=Bt.alloc();o=n=1/0;for(var s=-1/0,a=-1/0,h=i.iterator;h.next();){var l=h.value;if(l.isVisible()){var u=l.location;l=u.x,u=u.y,isNaN(l)||isNaN(u)||(l<n&&(n=l),u<o&&(o=u),l>s&&(s=l),u>a&&(a=u))}}for(1/0===n?r.h(0,0,0,0):r.h(n,o,s-n,a-o),n=r.x+r.width/2,o=r.y+r.height/2,Bt.free(r),r=t.Fr,s=new dt,a=pt.alloc(),h=i.iterator;h.next();)(l=h.value)instanceof wc&&l.canCopy()&&(null!==(u=e.I(l))&&(u.points=l.points,Sc(u,r.x-n,r.y-o),u.suspendsRouting=!0,s.add(u,t.Pd())));for(i=i.iterator;i.next();)(l=i.value).Zc()&&l.canCopy()&&(null!==(h=e.I(l))&&(l=l.location,a.h(r.x-(n-l.x),r.y-(o-l.y)),h.location=a,h.Va(),s.add(h,t.Pd(a))));pt.free(a),t.copiedParts=s,Le(t,s.Lf()),null!==t.draggedLink&&(i=(e=t.draggedLink).routeBounds,Sc(e,t.startPoint.x-(i.x+i.width/2),t.startPoint.y-(i.y+i.height/2))),t.doUpdateCursor(null)}}}xe.className="ToolManager",xe.WheelScroll=ke,xe.WheelZoom=Me,xe.WheelNone=Se,xe.GestureZoom=Pe,xe.GestureCancel=Ne,xe.GestureNone=Ce,c(Te,ve),Te.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;if(t.isReadOnly&&!t.allowDragOut||!t.allowMove&&!t.allowCopy&&!t.allowDragOut||!t.allowSelect)return!1;var i=t.lastInput;return!(!i.left||t.currentTool!==this&&(!this.isBeyondDragSize()||i.isTouchEvent&&i.timestamp-t.firstInput.timestamp<this.Ik))&&null!==this.findDraggablePart()},Te.prototype.findDraggablePart=function(){var t=this.diagram;if(null===(t=t.Ol(t.firstInput.documentPoint,!1)))return null;for(;null!==t&&!t.canSelect();)t=t.containingGroup;return null!==t&&(t.canMove()||t.canCopy())?t:null},Te.prototype.standardMouseSelect=function(){var t=this.diagram;if(t.allowSelect){var i=t.Ol(t.firstInput.documentPoint,!1);if(null!==i){for(;null!==i&&!i.canSelect();)i=i.containingGroup;this.currentPart=i,null===this.currentPart||this.currentPart.isSelected||(t.R("ChangingSelection",t.selection),i=t.lastInput,(R?i.meta:i.control)||i.shift||t.clearSelection(!0),this.currentPart.isSelected=!0,t.R("ChangedSelection",t.selection))}}},Te.prototype.doActivate=function(){var t=this.diagram;this.Bn=null,null===this.currentPart&&this.standardMouseSelect();var i=this.currentPart;null!==i&&(i.canMove()||i.canCopy())&&(t.Fu(!0),He=null,this.isActive=!0,this.tl.set(t.position),Le(this,t.selection),this.Cg.length=0,t.animationManager.Cc(),this.draggedParts=this.computeEffectiveCollection(t.selection,this.dragOptions),this.Sw=this.diagram.layout.isRealtime,this.diagram.layout.isRealtime=!1,t.Ns=!0,!0===t.Gf("temporaryPixelRatio")&&30<t.$w&&Do(t),fr(t,this.draggedParts),this.Ea("Drag"),this.startPoint=t.firstInput.documentPoint,t.isMouseCaptured=!0,t.allowDragOut&&(this.isDragOutStarted=!0,this.Ym=!1,He=this,Ke=this.diagram,this.doSimulatedDragOut()))},Te.prototype.computeEffectiveCollection=function(t,i){return this.diagram.commandHandler.computeEffectiveCollection(t,i)},Te.prototype.Pd=function(t){return void 0===t?new us(et):this.isGridSnapEnabled?new us(new pt(Math.round(1e3*t.x)/1e3,Math.round(1e3*t.y)/1e3)):new us(t.copy())},Te.prototype.doDeactivate=function(){this.isActive=!1;var t=this.diagram;if(this.diagram.layout.isRealtime=this.Sw,t.Fu(!1),t.ug(),Ae(this),dr(t,this.draggedParts),this.draggedParts=this.currentPart=this.Bn=null,this.Ym=this.isDragOutStarted=!1,0<we.count){for(var i=we,e=i.length,n=0;n<e;n++){var o=i.M(n);Be(o),De(o),Ae(o),o.diagram.ug()}i.clear()}Be(this),this.tl.h(NaN,NaN),null!==Ke&&(Ke.currentCursor=""),He=Ke=null,De(this),t.isMouseCaptured=!1,t.currentCursor="",t.Ns=!1,this.stopTransaction(),Bo(t,!0)},Te.prototype.stopTransaction=function(){var t=this.diagram,i=ve.prototype.stopTransaction.call(this);return i&&null!==t.undoManager.transactionToUndo&&t.undoManager.transactionToUndo.ak(),i},Te.prototype.doCancel=function(){De(this),Ie(this);var t=this.diagram;this.tl.w()&&(t.position=this.tl),this.stopTool()},Te.prototype.doKeyDown=function(){var t=this.diagram,i=t.lastInput;this.isActive&&("Esc"===i.key?this.doCancel():i.key!==t.previousInput.key&&this.doMouseMove())},Te.prototype.doKeyUp=function(){this.isActive&&this.doMouseMove()},Te.prototype.moveParts=function(t,i,e){void 0===e&&(e=!1);var n=this.diagram;null!==n&&lr(n,t,i,this.dragOptions,e)},Te.prototype.findDragOverObject=function(t){var i=this;return Uo(this.diagram,t,null,(function(t){return null===t?t=!0:t=!!(null===(t=t.part)||t instanceof Ku||t.layer.isTemporary||i.draggedParts&&i.draggedParts.contains(t)||i.copiedParts&&i.copiedParts.contains(t)),!t}))},Te.prototype.doUpdateCursor=function(t){var i=this.diagram;null!==t&&this.Bn===t||(!this.diagram.currentTool.isActive||this.mayCopy()?i.currentCursor=this.copyCursor:this.mayMove()?i.currentCursor=this.moveCursor:this.mayDragOut()&&(i.currentCursor=this.nodropCursor))},Te.prototype.doDragOver=function(){},Te.prototype.doDropOnto=function(){},Te.prototype.doMouseMove=function(){if(this.isActive){var t=this.diagram,i=t.lastInput;this.simulatedMouseMove(i.event,i.documentPoint,i.targetDiagram)||null===this.currentPart||null===this.draggedParts||(this.mayCopy()?(Fe(this,!1),fr(t,this.copiedParts),Oe(this,this.copiedParts,!1),dr(t,this.copiedParts)):this.mayMove()?(De(this),Oe(this,this.draggedParts,!0)):this.mayDragOut()?(Fe(this,!1),Oe(this,this.copiedParts,!1)):De(this),ze(this,t.lastInput.documentPoint))}},Te.prototype.doMouseUp=function(){if(this.isActive){var t=this.diagram,i=t.lastInput;if(!this.simulatedMouseUp(i.event,i.documentPoint,i.targetDiagram)){i=!1;var e=this.mayCopy();if(e&&null!==this.copiedParts?(De(this),Fe(this,!0),fr(t,this.copiedParts),Oe(this,this.copiedParts,!1),dr(t,this.copiedParts),null!==this.copiedParts&&(t.R("ChangingSelection",t.selection),t.clearSelection(!0),this.copiedParts.iteratorKeys.each((function(t){t.isSelected=!0})))):(i=!0,De(this),this.mayMove()&&(Oe(this,this.draggedParts,!0),ze(this,t.lastInput.documentPoint))),this.Ym=!0,Ge(this,t.lastInput.documentPoint),this.isActive){var n=e?this.copiedParts.Lf():this.draggedParts.Lf();this.copiedParts=null,i&&function(t){if(null!==t.draggedParts)for(var i=t.draggedParts.iterator;i.next();){var e=i.key;e instanceof Ju&&(null===(e=e.containingGroup)||null===e.placeholder||t.draggedParts.contains(e)||e.placeholder.v())}}(this),t.Ya(),dr(t,this.draggedParts),this.transactionResult=e?"Copy":"Move",t.R(e?"SelectionCopied":"SelectionMoved",n)}this.stopTool(),e&&t.R("ChangedSelection",t.selection)}}},Te.prototype.simulatedMouseMove=function(t,i,e){if(null===He)return!1;var n=He.diagram;e instanceof To||(e=null);var o=Ke;return e!==o&&(null!==o&&o!==n&&(o.ug(),He.isDragOutStarted=!1,null!==(o=o.toolManager.findTool("Dragging"))&&o.doSimulatedDragLeave()),Ke=e,null!==e&&e!==n&&(je(),null!==(o=e.toolManager.findTool("Dragging"))&&(we.contains(o)||we.add(o),o.doSimulatedDragEnter())),this.doUpdateCursor(null)),!(null===e||e===n||!e.allowDrop||e.isReadOnly||!e.allowInsert)&&(null!==(n=e.toolManager.findTool("Dragging"))&&(null!==t&&(void 0!==t.targetTouches&&(0<t.targetTouches.length?t=t.targetTouches[0]:0<t.changedTouches.length&&(t=t.changedTouches[0])),i=e.getMouse(t)),e.lastInput.documentPoint=i,e.lastInput.viewPoint=e.op(i),e.lastInput.down=!1,e.lastInput.up=!1,n.doSimulatedDragOver()),!0)},Te.prototype.simulatedMouseUp=function(t,i,e){if(null===He)return!1;var n=Ke,o=He.diagram;if(null===e)return He.doCancel(),!0;if(e!==n){var r=n.toolManager.findTool("Dragging");if(null!==n&&n!==o&&null!==r)return n.ug(),He.isDragOutStarted=!1,r.doSimulatedDragLeave(),!1;Ke=e,null!==(n=e.toolManager.findTool("Dragging"))&&(je(),we.contains(n)||we.add(n),n.doSimulatedDragEnter())}return e!==this.diagram&&(null!==t?(void 0!==t.targetTouches&&(0<t.targetTouches.length?t=t.targetTouches[0]:0<t.changedTouches.length&&(t=t.changedTouches[0])),i=e.getMouse(t)):null===i&&(i=new pt),e.lastInput.documentPoint=i,e.lastInput.viewPoint=e.op(i),e.lastInput.down=!1,e.lastInput.up=!0,null!==(t=e.toolManager.findTool("Dragging"))&&t.doSimulatedDrop(),null!==(t=He)&&(e=t.mayCopy(),t.transactionResult=e?"Copy":"Move",t.stopTool()),!0)},Te.prototype.mayCopy=function(){if(!this.isCopyEnabled)return!1;var t=this.diagram;if(t.isReadOnly||t.isModelReadOnly||!t.allowInsert||!t.allowCopy||(R?!t.lastInput.alt:!t.lastInput.control))return!1;for(t=t.selection.iterator;t.next();)if(t.value.canCopy())return!0;return!(null===this.draggedLink||!this.dragsLink||!this.draggedLink.canCopy())},Te.prototype.mayDragOut=function(){if(!this.isCopyEnabled)return!1;var t=this.diagram;if(!t.allowDragOut||!t.allowCopy||t.allowMove)return!1;for(t=t.selection.iterator;t.next();)if(t.value.canCopy())return!0;return!(null===this.draggedLink||!this.dragsLink||!this.draggedLink.canCopy())},Te.prototype.mayMove=function(){var t=this.diagram;if(t.isReadOnly||!t.allowMove)return!1;for(t=t.selection.iterator;t.next();)if(t.value.canMove())return!0;return!(null===this.draggedLink||!this.dragsLink||!this.draggedLink.canMove())},Te.prototype.computeBorder=function(t,i,e){return this.Ym||null===this.draggedParts||this.draggedParts.contains(t)?null:e.assign(i)},Te.prototype.Az=function(){return He},Te.prototype.mayDragIn=function(){var t=this.diagram;if(!t.allowDrop||t.isReadOnly||t.isModelReadOnly||!t.allowInsert)return!1;return null!==He&&He.diagram.model.dataFormat===t.model.dataFormat},Te.prototype.doSimulatedDragEnter=function(){if(this.mayDragIn()){var t=this.diagram;t.animationManager.Cc(),$o(t),t.animationManager.Cc(),null!==(t=He)&&(t.diagram.Ns=!1),this.doUpdateCursor(null)}},Te.prototype.doSimulatedDragLeave=function(){null!==He&&He.doSimulatedDragOut(),this.doCancel()},Te.prototype.doSimulatedDragOver=function(){var t=this.diagram;t.animationManager.Dm=!0;var i=He;if(null!==i&&null!==i.draggedParts){if(!this.mayDragIn())return;qe(this,i.draggedParts.Lf(),!1,t.firstInput),Oe(this,this.copiedParts,!1),ze(this,t.lastInput.documentPoint)}t.animationManager.Dm=!1},Te.prototype.doSimulatedDrop=function(){var t=this.diagram,i=He;if(null!==i){var e=i.diagram;if(i.Ym=!0,De(this),!this.mayDragIn())return;t.animationManager.Dm=!0,t.R("ChangingSelection",t.selection),this.Ea("Drop"),qe(this,i.draggedParts.Lf(),!0,t.lastInput),Oe(this,this.copiedParts,!1);var n=new $;null!==this.copiedParts&&(t.clearSelection(!0),this.copiedParts.iteratorKeys.each((function(t){t.isSelected=!0,n.add(t)}))),Ge(this,t.lastInput.documentPoint),t.Ya(),null!==this.copiedParts&&(this.transactionResult="ExternalCopy"),this.copiedParts=null,t.doFocus(),t.R("ExternalObjectsDropped",n,e),this.stopTransaction(),t.R("ChangedSelection",t.selection)}t.animationManager.Dm=!1},Te.prototype.doSimulatedDragOut=function(){var t=this.diagram;t.Ns=!1,this.mayCopy()||this.mayMove()?t.currentCursor="":t.currentCursor=this.nodropCursor,this.Bn=null},Te.prototype.computeMove=function(t,i,e,n){return null!==(e=this.diagram)?e.computeMove(t,i,this.dragOptions,n):new pt},f.Object.defineProperties(Te.prototype,{isCopyEnabled:{get:function(){return this.ob},set:function(t){this.ob=t}},copiesEffectiveCollection:{get:function(){return this.u},set:function(t){this.u=t}},dragOptions:{get:function(){return this.ia},set:function(t){this.ia=t}},isGridSnapEnabled:{get:function(){return this.dragOptions.isGridSnapEnabled},set:function(t){this.dragOptions.isGridSnapEnabled=t}},isComplexRoutingRealtime:{get:function(){return this.hb},set:function(t){this.hb=t}},isGridSnapRealtime:{get:function(){return this.dragOptions.isGridSnapRealtime},set:function(t){this.dragOptions.isGridSnapRealtime=t}},gridSnapCellSize:{get:function(){return this.dragOptions.gridSnapCellSize},set:function(t){this.dragOptions.gridSnapCellSize.D(t)||(t=t.J(),this.dragOptions.gridSnapCellSize=t)}},gridSnapCellSpot:{get:function(){return this.dragOptions.gridSnapCellSpot},set:function(t){this.dragOptions.gridSnapCellSpot.D(t)||(t=t.J(),this.dragOptions.gridSnapCellSpot=t)}},gridSnapOrigin:{get:function(){return this.dragOptions.gridSnapOrigin},set:function(t){this.dragOptions.gridSnapOrigin.D(t)||(t=t.J(),this.dragOptions.gridSnapOrigin=t)}},dragsLink:{get:function(){return this.dragOptions.dragsLink},set:function(t){this.dragOptions.dragsLink=t}},dragsTree:{get:function(){return this.dragOptions.dragsTree},set:function(t){this.dragOptions.dragsTree=t}},copyCursor:{get:function(){return this.F},set:function(t){this.F=t}},moveCursor:{get:function(){return this.Oc},set:function(t){this.Oc=t}},nodropCursor:{get:function(){return this.Pc},set:function(t){this.Pc=t}},currentPart:{get:function(){return this.V},set:function(t){this.V=t}},copiedParts:{get:function(){return this.o},set:function(t){this.o=t}},draggedParts:{get:function(){return this.Ha},set:function(t){this.Ha=t}},draggingParts:{get:function(){return null!==this.copiedParts?this.copiedParts.Lf():null!==this.draggedParts?this.draggedParts.Lf():this.te}},draggedLink:{get:function(){return this.diagram.draggedLink},set:function(t){this.diagram.draggedLink=t}},isDragOutStarted:{get:function(){return this.Hb},set:function(t){this.Hb=t}},startPoint:{get:function(){return this.Fr},set:function(t){this.Fr.D(t)||this.Fr.assign(t)}},delay:{get:function(){return this.Ik},set:function(t){this.Ik=t}}}),Te.prototype.getDraggingSource=Te.prototype.Az;var He=null,Ke=null;function We(){ve.call(this),this.te=100,this.Ha=!1,this.u="pointer";var t=new wc,i=new pl;i.isPanelMain=!0,i.stroke="blue",t.add(i),(i=new pl).toArrow="Standard",i.fill="blue",i.stroke="blue",t.add(i),t.layerName="Tool",this.Ci=t,t=new Ju,(i=new pl).portId="",i.figure="Rectangle",i.fill=null,i.stroke="magenta",i.strokeWidth=2,i.desiredSize=Mt,t.add(i),t.selectable=!1,t.layerName="Tool",this.Bi=t,this.j=i,t=new Ju,(i=new pl).portId="",i.figure="Rectangle",i.fill=null,i.stroke="magenta",i.strokeWidth=2,i.desiredSize=Mt,t.add(i),t.selectable=!1,t.layerName="Tool",this.Di=t,this.o=i,this.Pc=this.Oc=this.ob=this.hb=this.Hb=null,this.ia=!0,this.hy=new dt,this.Of=this.gj=this.Pf=null}function Je(t,i,e,n){if(i===e)return!0;var o=i.fromNode;return!(null===o||!o.isLinkLabel||(n.add(o),!Je(t,o.labeledLink,e,n)))||!(null===(i=i.toNode)||!i.isLinkLabel||(n.add(i),!Je(t,i.labeledLink,e,n)))}function Ze(t,i,e,n,o){if(i===e)return!0;if(null===i||null===e)return!1;for(var r=i.linksConnected;r.next();){var s=r.value;if(s!==n&&(!o||s.isTreeLink)&&s.toNode===i&&((s=s.fromNode)!==i&&Ze(t,s,e,n,o)))return!0}return!1}function _e(t,i,e,n,o){if(e===n)return!0;if(null===e||null===n||i.contains(e))return!1;i.add(e);for(var r=e.linksConnected;r.next();){var s=r.value;if(s!==o&&s.toNode===e&&((s=s.fromNode)!==e&&_e(t,i,s,n,o)))return!0}return!1}function $e(t,i,e,n,o){if(e===n)return!0;if(null===e||null===n||i.contains(e))return!1;i.add(e);for(var r=e.linksConnected;r.next();){var s=r.value;if(s!==o){var a=s.fromNode;if(s=s.toNode,(a=a===e?s:a)!==e&&$e(t,i,a,n,o))return!0}}return!1}function Qe(){We.call(this),this.name="Linking",this.V={},this.F=null,this.K=tn,this.Xd=null}Te.className="DraggingTool",we=new Z,O("draggingTool",(function(){return this.findTool("Dragging")}),(function(t){this.gb("Dragging",t,this.mouseMoveTools)})),xe.prototype.doCancel=function(){null!==He&&He.doCancel(),ve.prototype.doCancel.call(this)},c(We,ve),We.prototype.doStop=function(){this.diagram.ug(),this.originalToPort=this.originalToNode=this.originalFromPort=this.originalFromNode=this.originalLink=null,this.validPortsCache.clear(),this.targetPort=null},We.prototype.copyPortProperties=function(t,i,e,n,o){if(null!==t&&null!==i&&null!==e&&null!==n){var r=i.Df(),s=At.alloc();s.width=i.naturalBounds.width*r,s.height=i.naturalBounds.height*r,n.desiredSize=s,At.free(s),o?(n.toSpot=i.toSpot,n.toEndSegmentLength=i.toEndSegmentLength):(n.fromSpot=i.fromSpot,n.fromEndSegmentLength=i.fromEndSegmentLength),e.locationSpot=oi,r=pt.alloc(),e.location=i.ga(oi,r),pt.free(r),n.angle=i.li(),null!==this.portTargeted&&this.portTargeted(t,i,e,n,o)}},We.prototype.setNoTargetPortProperties=function(t,i,e){null!==i&&(i.desiredSize=Mt,i.fromSpot=Qt,i.toSpot=Qt),null!==t&&(t.location=this.diagram.lastInput.documentPoint),null!==this.portTargeted&&this.portTargeted(null,null,t,i,e)},We.prototype.doMouseDown=function(){this.isActive&&this.doMouseMove()},We.prototype.doMouseMove=function(){if(this.isActive){var t=this.diagram;if(this.targetPort=this.findTargetPort(this.isForwards),null!==this.targetPort&&this.targetPort.part instanceof Ju){var i=this.targetPort.part;this.isForwards?this.copyPortProperties(i,this.targetPort,this.temporaryToNode,this.temporaryToPort,!0):this.copyPortProperties(i,this.targetPort,this.temporaryFromNode,this.temporaryFromPort,!1)}else this.isForwards?this.setNoTargetPortProperties(this.temporaryToNode,this.temporaryToPort,!0):this.setNoTargetPortProperties(this.temporaryFromNode,this.temporaryFromPort,!1);(t.allowHorizontalScroll||t.allowVerticalScroll)&&t.gs(t.lastInput.viewPoint)}},We.prototype.findValidLinkablePort=function(t,i){if(null===t)return null;var e=t.part;if(!(e instanceof Ju))return null;for(;null!==t;){var n=i?t.toLinkable:t.fromLinkable;if(!0===n&&(null!==t.portId||t instanceof Ju)&&(i?this.isValidTo(e,t):this.isValidFrom(e,t)))return t;if(!1===n)break;t=t.panel}return null},We.prototype.findTargetPort=function(t){var i=this.diagram,e=i.lastInput.documentPoint,n=this.portGravity;0>=n&&(n=.1);var o=this,r=i.og(e,n,(function(i){return o.findValidLinkablePort(i,t)}),null,!0);for(n=1/0,i=null,r=r.iterator;r.next();){var s=r.value,a=s.part;if(a instanceof Ju){var h=s.ga(oi,pt.alloc()),l=e.x-h.x,u=e.y-h.y;pt.free(h),(h=l*l+u*u)<n&&(null!==(l=this.validPortsCache.I(s))?l&&(i=s,n=h):t&&this.isValidLink(this.originalFromNode,this.originalFromPort,a,s)||!t&&this.isValidLink(a,s,this.originalToNode,this.originalToPort)?(this.validPortsCache.add(s,!0),i=s,n=h):this.validPortsCache.add(s,!1))}}return null!==i&&((e=i.part)instanceof Ju&&(null===e.layer||e.layer.allowLink))?i:null},We.prototype.isValidFrom=function(t,i){if(null===t||null===i)return this.isUnconnectedLinkValid;if(this.diagram.currentTool===this&&(null!==t.layer&&!t.layer.allowLink||!0!==i.fromLinkable))return!1;var e=i.fromMaxLinks;if(1/0>e){if(null!==this.originalLink&&t===this.originalFromNode&&i===this.originalFromPort)return!0;if(null===(i=i.portId)&&(i=""),t.Mo(i).count>=e)return!1}return!0},We.prototype.isValidTo=function(t,i){if(null===t||null===i)return this.isUnconnectedLinkValid;if(this.diagram.currentTool===this&&(null!==t.layer&&!t.layer.allowLink||!0!==i.toLinkable))return!1;var e=i.toMaxLinks;if(1/0>e){if(null!==this.originalLink&&t===this.originalToNode&&i===this.originalToPort)return!0;if(null===(i=i.portId)&&(i=""),t.Sd(i).count>=e)return!1}return!0},We.prototype.isInSameNode=function(t,i){return null!==t&&null!==i&&(t===i||(t=t.part,i=i.part,null!==t&&t===i))},We.prototype.isLinked=function(t,i){if(null===t||null===i)return!1;var e=t.part;if(!(e instanceof Ju))return!1;null===(t=t.portId)&&(t="");var n=i.part;if(!(n instanceof Ju))return!1;for(null===(i=i.portId)&&(i=""),i=n.Sd(i);i.next();)if((n=i.value).fromNode===e&&n.fromPortId===t)return!0;return!1},We.prototype.isValidLink=function(t,i,e,n){if(!this.isValidFrom(t,i)||!this.isValidTo(e,n)||!(null===i||null===n||(i.fromLinkableSelfNode&&n.toLinkableSelfNode||!this.isInSameNode(i,n))&&(i.fromLinkableDuplicates&&n.toLinkableDuplicates||!this.isLinked(i,n)))||null!==this.originalLink&&(null!==t&&this.isLabelDependentOnLink(t,this.originalLink)||null!==e&&this.isLabelDependentOnLink(e,this.originalLink))||null!==t&&null!==e&&(null===t.data&&null!==e.data||null!==t.data&&null===e.data)||!this.isValidCycle(t,e,this.originalLink))return!1;if(null!==t){var o=t.linkValidation;if(null!==o&&!o(t,i,e,n,this.originalLink))return!1}return!(null!==e&&null!==(o=e.linkValidation)&&!o(t,i,e,n,this.originalLink))&&(null===(o=this.linkValidation)||o(t,i,e,n,this.originalLink))},We.prototype.isLabelDependentOnLink=function(t,i){if(null===t)return!1;var e=t.labeledLink;if(null===e)return!1;if(e===i)return!0;var n=new $;return n.add(t),Je(this,e,i,n)},We.prototype.isValidCycle=function(t,i,e){if(void 0===e&&(e=null),null===t||null===i)return this.isUnconnectedLinkValid;var n=this.diagram.validCycle;if(n!==Hr){if(n===Zr){if(null!==(n=e||this.temporaryLink)&&!n.isTreeLink)return!0;for(n=i.linksConnected;n.next();){var o=n.value;if(o!==e&&o.isTreeLink&&o.toNode===i)return!1}return!Ze(this,t,i,e,!0)}if(n===_r){if(null!==(n=e||this.temporaryLink)&&!n.isTreeLink)return!0;for(n=t.linksConnected;n.next();)if((o=n.value)!==e&&o.isTreeLink&&o.fromNode===t)return!1;return!Ze(this,t,i,e,!0)}if(n===Kr)return t===i?t=!0:((n=new $).add(i),t=_e(this,n,t,i,e)),!t;if(n===Wr)return!Ze(this,t,i,e,!1);if(n===Jr)return t===i?t=!0:((n=new $).add(i),t=$e(this,n,t,i,e)),!t}return!0},f.Object.defineProperties(We.prototype,{portGravity:{get:function(){return this.te},set:function(t){0<=t&&(this.te=t)}},isUnconnectedLinkValid:{get:function(){return this.Ha},set:function(t){this.Ha=t}},linkingCursor:{get:function(){return this.u},set:function(t){this.u=t}},temporaryLink:{get:function(){return this.Ci},set:function(t){this.Ci=t}},temporaryFromNode:{get:function(){return this.Bi},set:function(t){(this.Bi=t)&&(this.j=t.port)}},temporaryFromPort:{get:function(){return this.j},set:function(t){if(null!==this.j){var i=this.j.panel;if(null!==i){var e=i.O.indexOf(this.j);i.mb(e),i.Gb(e,t)}}this.j=t}},temporaryToNode:{get:function(){return this.Di},set:function(t){(this.Di=t)&&(this.o=t.port)}},temporaryToPort:{get:function(){return this.o},set:function(t){if(null!==this.o){var i=this.o.panel;if(null!==i){var e=i.O.indexOf(this.o);i.mb(e),i.Gb(e,t)}}this.o=t}},originalLink:{get:function(){return this.Hb},set:function(t){this.Hb=t}},originalFromNode:{get:function(){return this.hb},set:function(t){this.hb=t}},originalFromPort:{get:function(){return this.ob},set:function(t){this.ob=t}},originalToNode:{get:function(){return this.Oc},set:function(t){this.Oc=t}},originalToPort:{get:function(){return this.Pc},set:function(t){this.Pc=t}},isForwards:{get:function(){return this.ia},set:function(t){this.ia=t}},validPortsCache:{get:function(){return this.hy}},targetPort:{get:function(){return this.Pf},set:function(t){this.Pf=t}},linkValidation:{get:function(){return this.gj},set:function(t){this.gj=t}},portTargeted:{get:function(){return this.Of},set:function(t){this.Of=t}}}),We.className="LinkingBaseTool",c(Qe,We),Qe.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;return!(t.isReadOnly||t.isModelReadOnly||!t.allowLink||!t.model.xs()||!t.lastInput.left||t.currentTool!==this&&!this.isBeyondDragSize())&&null!==this.findLinkablePort()},Qe.prototype.findLinkablePort=function(){var t=this.diagram,i=this.startObject;if(null===i&&(i=t.ic(t.firstInput.documentPoint,null,null)),null===i)return null;if(!((t=i.part)instanceof Ju))return null;var e=this.direction;if(e===tn||e===en){var n=this.findValidLinkablePort(i,!1);if(null!==n||this.startObject===t&&(n=t.port,this.findValidLinkablePort(n,!1)))return this.isForwards=!0,n}return(e===tn||e===nn)&&(null!==(i=this.findValidLinkablePort(i,!0))||this.startObject===t&&(i=t.port,this.findValidLinkablePort(i,!0)))?(this.isForwards=!1,i):null},Qe.prototype.doActivate=function(){var t=this.diagram,i=this.findLinkablePort();null===i?this.stopTool():(this.Ea(this.name),t.isMouseCaptured=!0,t.currentCursor=this.linkingCursor,this.isForwards?(null!==this.temporaryToNode&&(this.temporaryToNode.location=t.lastInput.documentPoint),this.originalFromPort=i,(i=this.originalFromPort.part)instanceof Ju&&(this.originalFromNode=i),this.copyPortProperties(this.originalFromNode,this.originalFromPort,this.temporaryFromNode,this.temporaryFromPort,!1)):(null!==this.temporaryFromNode&&(this.temporaryFromNode.location=t.lastInput.documentPoint),this.originalToPort=i,(i=this.originalToPort.part)instanceof Ju&&(this.originalToNode=i),this.copyPortProperties(this.originalToNode,this.originalToPort,this.temporaryToNode,this.temporaryToPort,!0)),t.add(this.temporaryFromNode),this.temporaryFromNode&&this.temporaryFromNode.Va(),t.add(this.temporaryToNode),this.temporaryToNode&&this.temporaryToNode.Va(),null!==this.temporaryLink&&(null!==this.temporaryFromNode&&(this.temporaryLink.fromNode=this.temporaryFromNode),null!==this.temporaryToNode&&(this.temporaryLink.toNode=this.temporaryToNode),this.temporaryLink.isTreeLink=this.isNewTreeLink(),this.temporaryLink.bb(),t.add(this.temporaryLink)),this.isActive=!0)},Qe.prototype.doDeactivate=function(){this.isActive=!1;var t=this.diagram;t.remove(this.temporaryLink),t.remove(this.temporaryFromNode),t.remove(this.temporaryToNode),t.isMouseCaptured=!1,t.currentCursor="",this.stopTransaction()},Qe.prototype.doStop=function(){We.prototype.doStop.call(this),this.startObject=null},Qe.prototype.doMouseUp=function(){if(this.isActive){var t=this.diagram,i=this.transactionResult=null,e=null,n=null,o=null,r=null;try{var s=this.targetPort=this.findTargetPort(this.isForwards);if(null!==s){var a=s.part;a instanceof Ju&&(this.isForwards?(null!==this.originalFromNode&&(i=this.originalFromNode,e=this.originalFromPort),n=a,o=s):(i=a,e=s,null!==this.originalToNode&&(n=this.originalToNode,o=this.originalToPort)))}else this.isForwards?null!==this.originalFromNode&&this.isUnconnectedLinkValid&&(i=this.originalFromNode,e=this.originalFromPort):null!==this.originalToNode&&this.isUnconnectedLinkValid&&(n=this.originalToNode,o=this.originalToPort);null!==i||null!==n?null!==(r=this.insertLink(i,e,n,o))?(null===s&&(this.isForwards?r.defaultToPoint=t.lastInput.documentPoint:r.defaultFromPoint=t.lastInput.documentPoint),t.allowSelect&&(t.R("ChangingSelection",t.selection),t.clearSelection(!0),r.isSelected=!0),this.transactionResult=this.name,t.R("LinkDrawn",r)):this.doNoLink(i,e,n,o):this.isForwards?this.doNoLink(this.originalFromNode,this.originalFromPort,null,null):this.doNoLink(null,null,this.originalToNode,this.originalToPort)}finally{this.stopTool(),r&&t.allowSelect&&t.R("ChangedSelection",t.selection)}}},Qe.prototype.isNewTreeLink=function(){var t=this.archetypeLinkData;if(null===t)return!0;if(t instanceof wc)return t.isTreeLink;var i=this.diagram;return null===i||(t=i.partManager.getLinkCategoryForData(t),null===(i=i.partManager.findLinkTemplateForCategory(t))||i.isTreeLink)},Qe.prototype.insertLink=function(t,i,e,n){return this.diagram.partManager.insertLink(t,i,e,n)},Qe.prototype.doNoLink=function(){},f.Object.defineProperties(Qe.prototype,{archetypeLinkData:{get:function(){return this.V},set:function(t){this.V=t}},archetypeLabelNodeData:{get:function(){return this.F},set:function(t){this.F=t}},direction:{get:function(){return this.K},set:function(t){this.K=t}},startObject:{get:function(){return this.Xd},set:function(t){this.Xd=t}}});var tn=new V(Qe,"Either",0),en=new V(Qe,"ForwardsOnly",0),nn=new V(Qe,"BackwardsOnly",0);function on(){We.call(this),this.name="Relinking";var t=new pl;t.figure="Diamond",t.desiredSize=Pt,t.fill="lightblue",t.stroke="dodgerblue",t.cursor=this.linkingCursor,t.segmentIndex=0,this.V=t,(t=new pl).figure="Diamond",t.desiredSize=Pt,t.fill="lightblue",t.stroke="dodgerblue",t.cursor=this.linkingCursor,t.segmentIndex=-1,this.Xd=t,this.F=null,this.Ew=new Bt}function rn(t,i,e,n,o){null!==i?(t.copyPortProperties(i,e,t.temporaryFromNode,t.temporaryFromPort,!1),t.diagram.add(t.temporaryFromNode)):t.diagram.remove(t.temporaryFromNode),null!==n?(t.copyPortProperties(n,o,t.temporaryToNode,t.temporaryToPort,!0),t.diagram.add(t.temporaryToNode)):t.diagram.remove(t.temporaryToNode)}function sn(){ve.call(this),this.name="LinkReshaping";var t=new pl;t.figure="Rectangle",t.desiredSize=St,t.fill="lightblue",t.stroke="dodgerblue",this.o=t,(t=new pl).figure="Diamond",t.desiredSize=Pt,t.fill="lightblue",t.stroke="dodgerblue",t.cursor="move",this.u=t,this.F=3,this.Ts=this.j=null,this.Fw=new pt,this.Yq=new Z}function an(t,i,e,n,o,r){return r?Math.abs(i.y-e.y)<t.resegmentingDistance&&Math.abs(e.y-n.y)<t.resegmentingDistance&&Math.abs(n.y-o.y)<t.resegmentingDistance:Math.abs(i.x-e.x)<t.resegmentingDistance&&Math.abs(e.x-n.x)<t.resegmentingDistance&&Math.abs(n.x-o.x)<t.resegmentingDistance}Qe.className="LinkingTool",Qe.Either=tn,Qe.ForwardsOnly=en,Qe.BackwardsOnly=nn,c(on,We),on.prototype.updateAdornments=function(t){if(null!==t&&t instanceof wc){var i="RelinkFrom",e=null;if(t.isSelected&&!this.diagram.isReadOnly){var n=t.selectionObject;null!==n&&t.canRelinkFrom()&&t.actualBounds.w()&&t.isVisible()&&n.actualBounds.w()&&n.Ed()&&(null===(e=t.Pj(i))&&(e=this.makeAdornment(n,!1),t.bh(i,e)))}null===e&&t.Jf(i),i="RelinkTo",e=null,t.isSelected&&!this.diagram.isReadOnly&&(null!==(n=t.selectionObject)&&t.canRelinkTo()&&t.actualBounds.w()&&t.isVisible()&&n.actualBounds.w()&&n.Ed()&&(null===(e=t.Pj(i))?(e=this.makeAdornment(n,!0),t.bh(i,e)):e.v())),null===e&&t.Jf(i)}},on.prototype.makeAdornment=function(t,i){var e=new Ku;return e.type=Ch.Link,null!==(i=i?this.toHandleArchetype:this.fromHandleArchetype)&&e.add(i.copy()),e.adornedObject=t,e},on.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;if(t.isReadOnly||t.isModelReadOnly||!t.allowRelink||!t.model.xs()||!t.lastInput.left)return!1;var i=this.findToolHandleAt(t.firstInput.documentPoint,"RelinkFrom");return null===i&&(i=this.findToolHandleAt(t.firstInput.documentPoint,"RelinkTo")),null!==i},on.prototype.doActivate=function(){var t=this.diagram;if(null===this.originalLink){var i=this.handle;if(null===i&&(null===(i=this.findToolHandleAt(t.firstInput.documentPoint,"RelinkFrom"))&&(i=this.findToolHandleAt(t.firstInput.documentPoint,"RelinkTo"))),null===i)return;var e=i.part;if(!(e instanceof Ku&&e.adornedPart instanceof wc))return;this.handle=i,this.isForwards=null===e||"RelinkTo"===e.category,this.originalLink=e.adornedPart}this.Ea(this.name),t.isMouseCaptured=!0,t.currentCursor=this.linkingCursor,this.originalFromPort=this.originalLink.fromPort,this.originalFromNode=this.originalLink.fromNode,this.originalToPort=this.originalLink.toPort,this.originalToNode=this.originalLink.toNode,this.Ew.set(this.originalLink.actualBounds),null!==this.originalLink&&0<this.originalLink.pointsCount&&(null===this.originalLink.fromNode&&(null!==this.temporaryFromPort&&(this.temporaryFromPort.desiredSize=kt),null!==this.temporaryFromNode&&(this.temporaryFromNode.location=this.originalLink.i(0))),null===this.originalLink.toNode&&(null!==this.temporaryToPort&&(this.temporaryToPort.desiredSize=kt),null!==this.temporaryToNode&&(this.temporaryToNode.location=this.originalLink.i(this.originalLink.pointsCount-1)))),this.copyPortProperties(this.originalFromNode,this.originalFromPort,this.temporaryFromNode,this.temporaryFromPort,!1),this.copyPortProperties(this.originalToNode,this.originalToPort,this.temporaryToNode,this.temporaryToPort,!0),t.add(this.temporaryFromNode),t.add(this.temporaryToNode),null!==this.temporaryLink&&(null!==this.temporaryFromNode&&(this.temporaryLink.fromNode=this.temporaryFromNode),null!==this.temporaryToNode&&(this.temporaryLink.toNode=this.temporaryToNode),this.copyLinkProperties(this.originalLink,this.temporaryLink),this.temporaryLink.bb(),t.add(this.temporaryLink)),this.isActive=!0},on.prototype.copyLinkProperties=function(t,i){if(null!==t&&null!==i){i.adjusting=t.adjusting,i.corner=t.corner;var e=t.curve;e!==_c&&e!==Zc||(e=Wc),i.curve=e,i.curviness=t.curviness,i.isTreeLink=t.isTreeLink,i.points=t.points,i.routing=t.routing,i.smoothness=t.smoothness,i.fromSpot=t.fromSpot,i.fromEndSegmentLength=t.fromEndSegmentLength,i.fromShortLength=t.fromShortLength,i.toSpot=t.toSpot,i.toEndSegmentLength=t.toEndSegmentLength,i.toShortLength=t.toShortLength}},on.prototype.doDeactivate=function(){this.isActive=!1;var t=this.diagram;t.remove(this.temporaryLink),t.remove(this.temporaryFromNode),t.remove(this.temporaryToNode),t.isMouseCaptured=!1,t.currentCursor="",this.stopTransaction()},on.prototype.doStop=function(){We.prototype.doStop.call(this),this.handle=null},on.prototype.doMouseUp=function(){if(this.isActive){var t=this.diagram;this.transactionResult=null;var i=this.originalFromNode,e=this.originalFromPort,n=this.originalToNode,o=this.originalToPort,r=this.originalLink;try{if(this.targetPort=this.findTargetPort(this.isForwards),null!==this.targetPort){var s=this.targetPort.part;s instanceof Ju&&(this.isForwards?(n=s,o=this.targetPort):(i=s,e=this.targetPort))}else this.isUnconnectedLinkValid?this.isForwards?o=n=null:e=i=null:r=null;null!==r?(this.reconnectLink(r,this.isForwards?n:i,this.isForwards?o:e,this.isForwards),null===this.targetPort&&(this.isForwards?r.defaultToPoint=t.lastInput.documentPoint:r.defaultFromPoint=t.lastInput.documentPoint,r.bb()),this.transactionResult=this.name,t.R("LinkRelinked",r,this.isForwards?this.originalToPort:this.originalFromPort)):this.doNoRelink(this.originalLink,this.isForwards),this.originalLink.Xo(this.Ew)}finally{this.stopTool()}}},on.prototype.reconnectLink=function(t,i,e,n){return e=null!==e&&null!==e.portId?e.portId:"",n?(t.toNode=i,t.toPortId=e):(t.fromNode=i,t.fromPortId=e),!0},on.prototype.doNoRelink=function(){},f.Object.defineProperties(on.prototype,{fromHandleArchetype:{get:function(){return this.V},set:function(t){this.V=t}},toHandleArchetype:{get:function(){return this.Xd},set:function(t){this.Xd=t}},handle:{get:function(){return this.F},set:function(t){if(null!==t&&!(t.part instanceof Ku))throw Error("new handle is not in an Adornment: "+t);this.F=t}}}),on.className="RelinkingTool",O("linkingTool",(function(){return this.findTool("Linking")}),(function(t){this.gb("Linking",t,this.mouseMoveTools)})),O("relinkingTool",(function(){return this.findTool("Relinking")}),(function(t){this.gb("Relinking",t,this.mouseDownTools)})),c(sn,ve),sn.prototype.Ru=function(t){return t&&0!==t.reshapingBehavior.value?t.reshapingBehavior:hn},sn.prototype.om=function(t,i){t.reshapingBehavior=i},sn.prototype.updateAdornments=function(t){if(null!==t&&t instanceof wc){var i=null;if(t.isSelected&&!this.diagram.isReadOnly){var e=t.path;null!==e&&t.canReshape()&&t.actualBounds.w()&&t.isVisible()&&e.actualBounds.w()&&e.Ed()&&(null===(i=t.Pj(this.name))||i.Aw!==t.pointsCount||i.Uw!==t.resegmentable)&&(null!==(i=this.makeAdornment(e))&&(i.Aw=t.pointsCount,i.Uw=t.resegmentable,t.bh(this.name,i)))}null===i&&t.Jf(this.name)}},sn.prototype.makeAdornment=function(t){var i=t.part,e=i.pointsCount,n=i.isOrthogonal,o=null;if(null!==i.points&&1<e){(o=new Ku).type=Ch.Link,e=i.firstPickIndex;var r=i.lastPickIndex,s=n?1:0;if(i.resegmentable&&i.computeCurve()!==Jc)for(var a=e+s;a<r-s;a++){var h=this.makeResegmentHandle(t,a);null!==h&&(h.segmentIndex=a,h.segmentFraction=.5,h.fromMaxLinks=999,o.add(h))}for(s=e+1;s<r;s++)if(null!==(a=this.makeHandle(t,s))){if(a.segmentIndex=s,s!==e)if(s===e+1&&n){h=i.i(e);var l=i.i(e+1);Xi.B(h.x,l.x)&&Xi.B(h.y,l.y)&&(l=i.i(e-1)),Xi.B(h.x,l.x)?(this.om(a,un),a.cursor="n-resize"):Xi.B(h.y,l.y)&&(this.om(a,ln),a.cursor="w-resize")}else s===r-1&&n?(h=i.i(r-1),l=i.i(r),Xi.B(h.x,l.x)&&Xi.B(h.y,l.y)&&(h=i.i(r+1)),Xi.B(h.x,l.x)?(this.om(a,un),a.cursor="n-resize"):Xi.B(h.y,l.y)&&(this.om(a,ln),a.cursor="w-resize")):s!==r&&(this.om(a,cn),a.cursor="move");o.add(a)}o.adornedObject=t}return o},sn.prototype.makeHandle=function(){var t=this.handleArchetype;return null===t?null:t.copy()},sn.prototype.makeResegmentHandle=function(){var t=this.midHandleArchetype;return null===t?null:t.copy()},sn.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;return!(t.isReadOnly||!t.allowReshape||!t.lastInput.left)&&null!==this.findToolHandleAt(t.firstInput.documentPoint,this.name)},sn.prototype.doActivate=function(){var t=this.diagram;if(null===this.handle&&(this.handle=this.findToolHandleAt(t.firstInput.documentPoint,this.name)),null!==this.handle){var i=this.handle.part.adornedPart;if(i instanceof wc){if(this.Ts=i,t.isMouseCaptured=!0,this.Ea(this.name),i.resegmentable&&999===this.handle.fromMaxLinks){var e=i.points.copy(),n=this.getResegmentingPoint();if(e.Gb(this.handle.segmentIndex+1,n),i.isOrthogonal&&e.Gb(this.handle.segmentIndex+1,n),i.points=e,i.Wb(),i.updateAdornments(),this.handle=this.findToolHandleAt(t.firstInput.documentPoint,this.name),null===this.handle)return void this.doDeactivate()}this.Fw=i.i(this.handle.segmentIndex),this.Yq=i.points.copy(),this.isActive=!0}}},sn.prototype.doDeactivate=function(){this.stopTransaction(),this.Ts=this.handle=null,this.isActive=this.diagram.isMouseCaptured=!1},sn.prototype.stopTransaction=function(){var t=this.diagram,i=ve.prototype.stopTransaction.call(this);return i&&null!==t.undoManager.transactionToUndo&&t.undoManager.transactionToUndo.ak(),i},sn.prototype.doCancel=function(){var t=this.adornedLink;null!==t&&(t.points=this.Yq),this.stopTool()},sn.prototype.getResegmentingPoint=function(){return this.handle.ga(oi)},sn.prototype.doMouseMove=function(){var t=this.diagram;this.isActive&&(t=this.computeReshape(t.lastInput.documentPoint),this.reshape(t))},sn.prototype.doMouseUp=function(){var t=this.diagram;if(this.isActive){var i=this.computeReshape(t.lastInput.documentPoint);if(this.reshape(i),null!==(i=this.adornedLink)&&i.resegmentable){var e=this.handle.segmentIndex,n=i.i(e-1),o=i.i(e),r=i.i(e+1);if(i.isOrthogonal){if(e>i.firstPickIndex+1&&e<i.lastPickIndex-1){var s=i.i(e-2);if(Math.abs(n.x-o.x)<this.resegmentingDistance&&Math.abs(n.y-o.y)<this.resegmentingDistance&&(an(this,s,n,o,r,!0)||an(this,s,n,o,r,!1))){var a=i.points.copy();an(this,s,n,o,r,!0)?(a.cd(e-2,new pt(s.x,(r.y+s.y)/2)),a.cd(e+1,new pt(r.x,(r.y+s.y)/2))):(a.cd(e-2,new pt((r.x+s.x)/2,s.y)),a.cd(e+1,new pt((r.x+s.x)/2,r.y))),a.mb(e),a.mb(e-1),i.points=a,i.Wb()}else s=i.i(e+2),Math.abs(o.x-r.x)<this.resegmentingDistance&&Math.abs(o.y-r.y)<this.resegmentingDistance&&(an(this,n,o,r,s,!0)||an(this,n,o,r,s,!1))&&(a=i.points.copy(),an(this,n,o,r,s,!0)?(a.cd(e-1,new pt(n.x,(n.y+s.y)/2)),a.cd(e+2,new pt(s.x,(n.y+s.y)/2))):(a.cd(e-1,new pt((n.x+s.x)/2,n.y)),a.cd(e+2,new pt((n.x+s.x)/2,s.y))),a.mb(e+1),a.mb(e),i.points=a,i.Wb())}}else s=pt.alloc(),Xi.qh(n.x,n.y,r.x,r.y,o.x,o.y,s)&&s.Bf(o)<this.resegmentingDistance*this.resegmentingDistance&&((n=i.points.copy()).mb(e),i.points=n,i.Wb()),pt.free(s)}t.Ya(),this.transactionResult=this.name,t.R("LinkReshaped",this.adornedLink,this.Yq)}this.stopTool()},sn.prototype.reshape=function(t){var i=this.adornedLink;i.uh();var e=this.handle.segmentIndex,n=this.Ru(this.handle);if(i.isOrthogonal)if(e===i.firstPickIndex+1)e=i.firstPickIndex+1,n===un?(i.L(e,i.i(e-1).x,t.y),i.L(e+1,i.i(e+2).x,t.y)):n===ln&&(i.L(e,t.x,i.i(e-1).y),i.L(e+1,t.x,i.i(e+2).y));else if(e===i.lastPickIndex-1)e=i.lastPickIndex-1,n===un?(i.L(e-1,i.i(e-2).x,t.y),i.L(e,i.i(e+1).x,t.y)):n===ln&&(i.L(e-1,t.x,i.i(e-2).y),i.L(e,t.x,i.i(e+1).y));else{n=e;var o=i.i(n),r=i.i(n-1),s=i.i(n+1);Xi.B(r.x,o.x)&&Xi.B(o.y,s.y)?(Xi.B(r.x,i.i(n-2).x)&&!Xi.B(r.y,i.i(n-2).y)?(i.m(n,t.x,r.y),e++,n++):i.L(n-1,t.x,r.y),Xi.B(s.y,i.i(n+2).y)&&!Xi.B(s.x,i.i(n+2).x)?i.m(n+1,s.x,t.y):i.L(n+1,s.x,t.y)):Xi.B(r.y,o.y)&&Xi.B(o.x,s.x)?(Xi.B(r.y,i.i(n-2).y)&&!Xi.B(r.x,i.i(n-2).x)?(i.m(n,r.x,t.y),e++,n++):i.L(n-1,r.x,t.y),Xi.B(s.x,i.i(n+2).x)&&!Xi.B(s.y,i.i(n+2).y)?i.m(n+1,t.x,s.y):i.L(n+1,t.x,s.y)):Xi.B(r.x,o.x)&&Xi.B(o.x,s.x)?(Xi.B(r.x,i.i(n-2).x)&&!Xi.B(r.y,i.i(n-2).y)?(i.m(n,t.x,r.y),e++,n++):i.L(n-1,t.x,r.y),Xi.B(s.x,i.i(n+2).x)&&!Xi.B(s.y,i.i(n+2).y)?i.m(n+1,t.x,s.y):i.L(n+1,t.x,s.y)):Xi.B(r.y,o.y)&&Xi.B(o.y,s.y)&&(Xi.B(r.y,i.i(n-2).y)&&!Xi.B(r.x,i.i(n-2).x)?(i.m(n,r.x,t.y),e++,n++):i.L(n-1,r.x,t.y),Xi.B(s.y,i.i(n+2).y)&&!Xi.B(s.x,i.i(n+2).x)?i.m(n+1,s.x,t.y):i.L(n+1,s.x,t.y)),i.L(e,t.x,t.y)}else i.L(e,t.x,t.y),n=i.fromNode,o=i.fromPort,null!==n&&(null!==(r=n.findVisibleNode())&&r!==n&&(o=(n=r).port)),1===e&&i.computeSpot(!0,o).Mc()&&(r=o.ga(oi,pt.alloc()),n=i.getLinkPointFromPoint(n,o,r,t,!0,pt.alloc()),i.L(0,n.x,n.y),pt.free(r),pt.free(n)),n=i.toNode,o=i.toPort,null!==n&&(null!==(r=n.findVisibleNode())&&r!==n&&(o=(n=r).port)),e===i.pointsCount-2&&i.computeSpot(!1,o).Mc()&&(e=o.ga(oi,pt.alloc()),t=i.getLinkPointFromPoint(n,o,e,t,!1,pt.alloc()),i.L(i.pointsCount-1,t.x,t.y),pt.free(e),pt.free(t));i.zf()},sn.prototype.computeReshape=function(t){var i=this.adornedLink,e=this.handle.segmentIndex;switch(this.Ru(this.handle)){case cn:return t;case un:return new pt(i.i(e).x,t.y);case ln:return new pt(t.x,i.i(e).y);default:return i.i(e)}},f.Object.defineProperties(sn.prototype,{handleArchetype:{get:function(){return this.o},set:function(t){this.o=t}},midHandleArchetype:{get:function(){return this.u},set:function(t){this.u=t}},handle:{get:function(){return this.j},set:function(t){if(null!==t&&!(t.part instanceof Ku))throw Error("new handle is not in an Adornment: "+t);this.j=t}},adornedLink:{get:function(){return this.Ts}},resegmentingDistance:{get:function(){return this.F},set:function(t){this.F=t}},originalPoint:{get:function(){return this.Fw}},originalPoints:{get:function(){return this.Yq}}}),sn.prototype.setReshapingBehavior=sn.prototype.om,sn.prototype.getReshapingBehavior=sn.prototype.Ru;var hn=new V(sn,"None",0),ln=new V(sn,"Horizontal",1),un=new V(sn,"Vertical",2),cn=new V(sn,"All",3);function fn(){ve.call(this),this.name="Resizing",this.o=new At(1,1).freeze(),this.j=new At(9999,9999).freeze(),this.yg=new At(NaN,NaN).freeze(),this.V=!1,this.ia=!0,this.ue=null;var t=new pl;t.alignmentFocus=oi,t.figure="Rectangle",t.desiredSize=St,t.fill="lightblue",t.stroke="dodgerblue",t.strokeWidth=1,t.cursor="pointer",this.F=t,this.u=null,this.Xq=new pt,this.Dw=new At,this.Tn=new pt,this.rt=new At(0,0),this.qt=new At(1/0,1/0),this.pt=new At(1,1)}function dn(){ve.call(this),this.name="Rotating",this.ia=45,this.V=2,this.Tn=new pt,this.ue=null;var t=new pl;t.figure="Ellipse",t.desiredSize=Pt,t.fill="lightblue",t.stroke="dodgerblue",t.strokeWidth=1,t.cursor="pointer",this.o=t,this.j=null,this.Cw=0,this.kr=new pt(NaN,NaN),this.u=0,this.F=50}function pn(){ve.call(this),this.name="ClickSelecting"}function gn(){ve.call(this),this.name="Action",this.pk=null}function mn(){ve.call(this),this.name="ClickCreating",this.Ri=null,this.o=!0,this.j=!1,this.mw=new pt(0,0)}function yn(){ve.call(this),this.name="DragSelecting",this.Ik=175,this.o=!1;var t=new ku;t.layerName="Tool",t.selectable=!1;var i=new pl;i.name="SHAPE",i.figure="Rectangle",i.fill=null,i.stroke="magenta",t.add(i),this.j=t}function vn(){ve.call(this),this.name="Panning",this.Xt=new pt,this.xy=new pt,this.xg=!1;var t=this;this.Kw=function(){var i=t.diagram;null!==i&&i.removeEventListener(m.document,"scroll",t.Kw,!1),t.stopTool()}}function xn(){this.F=this.u=this.j=this.o=null}function bn(t,i,e){this.text=t,this.hx=i,this.visible=e}function wn(){ve.call(this),this.name="ContextMenu",this.o=this.ht=this.j=null,this.yw=new pt,this.jt=null,this.Et=!1;var t=this;this.tu=function(){t.stopTool()}}function kn(t){return t.preventDefault(),!1}function Mn(t){var i=t.diagram;if(t.isActive){var e=t.currentContextMenu;if(null!==e){var n=null;e instanceof xn||null!==(n=i.ic(i.lastInput.documentPoint,null,null))&&n.rg(e)&&t.standardMouseClick(null,null),t.maybeStopTool(n)}}else t.canStart()&&(Sn(t,!0),t.isActive||t.stopTool())}function Sn(t,i,e){if(void 0===e&&(e=null),!t.Et&&(t.Et=!0,i&&t.standardMouseSelect(),i=t.standardMouseClick(),t.Et=!1,!i)){if(t.isActive=!0,i=Pn,null===e&&(e=t.findObjectWithContextMenu()),null!==e){var n=e.contextMenu;null!==n?(t.currentObject=e instanceof Ds?e:null,t.showContextMenu(n,t.currentObject)):null!==i&&t.showContextMenu(i,t.currentObject)}else null!==i&&t.showContextMenu(i,null);t.currentContextMenu instanceof Ku&&!t.currentContextMenu.visible&&t.stopTool()}}sn.className="LinkReshapingTool",sn.None=hn,sn.Horizontal=ln,sn.Vertical=un,sn.All=cn,O("linkReshapingTool",(function(){return this.findTool("LinkReshaping")}),(function(t){this.gb("LinkReshaping",t,this.mouseDownTools)})),c(fn,ve),fn.prototype.updateAdornments=function(t){if(!(null===t||t instanceof wc)){if(t.isSelected&&!this.diagram.isReadOnly){var i=t.resizeObject,e=t.Pj(this.name);if(null!==i&&t.canResize()&&t.actualBounds.w()&&t.isVisible()&&i.actualBounds.w()&&i.Ed()&&(null!==e&&e.adornedObject===i||(e=this.makeAdornment(i)),null!==e))return i=i.li(),Eu(t)&&this.updateResizeHandles(e,i),void t.bh(this.name,e)}t.Jf(this.name)}},fn.prototype.makeAdornment=function(t){var i=t.part.resizeAdornmentTemplate;if(null===i){(i=new Ku).type=Ch.Spot,i.locationSpot=oi;var e=new bc;e.isPanelMain=!0,i.add(e),i.add(this.makeHandle(t,ti)),i.add(this.makeHandle(t,ei)),i.add(this.makeHandle(t,hi)),i.add(this.makeHandle(t,si)),i.add(this.makeHandle(t,Li)),i.add(this.makeHandle(t,ji)),i.add(this.makeHandle(t,Fi)),i.add(this.makeHandle(t,Ai))}else if(Wh(i),null===(i=i.copy()))return null;return i.adornedObject=t,i},fn.prototype.makeHandle=function(t,i){return null===(t=this.handleArchetype)?null:((t=t.copy()).alignment=i,t)},fn.prototype.updateResizeHandles=function(t,i){if(null!==t)if(!t.alignment.Xb()&&("pointer"===t.cursor||0<t.cursor.indexOf("resize")))t:{var e=t.alignment;if(e.Mc()&&(e=oi),0>=e.x)i=0>=e.y?i+225:1<=e.y?i+135:i+180;else if(1<=e.x)0>=e.y?i+=315:1<=e.y&&(i+=45);else if(0>=e.y)i+=270;else{if(!(1<=e.y))break t;i+=90}0>i?i+=360:360<=i&&(i-=360),t.cursor=22.5>i?"e-resize":67.5>i?"se-resize":112.5>i?"s-resize":157.5>i?"sw-resize":202.5>i?"w-resize":247.5>i?"nw-resize":292.5>i?"n-resize":337.5>i?"ne-resize":"e-resize"}else if(t instanceof Ch)for(t=t.elements;t.next();)this.updateResizeHandles(t.value,i)},fn.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;return!(t.isReadOnly||!t.allowResize||!t.lastInput.left)&&null!==this.findToolHandleAt(t.firstInput.documentPoint,this.name)},fn.prototype.doActivate=function(){var t=this.diagram;null===this.handle&&(this.handle=this.findToolHandleAt(t.firstInput.documentPoint,this.name)),null!==this.handle&&(this.adornedObject=this.handle.part.adornedObject,null!==this.adornedObject&&(t.isMouseCaptured=!0,t.animationManager.Cc(),this.Ea(this.name),this.Xq.set(this.adornedObject.ga(this.handle.alignment.gv())),this.Tn.set(this.adornedObject.part.location),this.Dw.set(this.adornedObject.desiredSize),this.pt=this.computeCellSize(),this.rt=this.computeMinSize(),this.qt=this.computeMaxSize(),this.isActive=!0))},fn.prototype.doDeactivate=function(){var t=this.diagram;this.stopTransaction(),this.ue=this.handle=null,this.isActive=t.isMouseCaptured=!1},fn.prototype.stopTransaction=function(){var t=this.diagram,i=ve.prototype.stopTransaction.call(this);return i&&null!==t.undoManager.transactionToUndo&&t.undoManager.transactionToUndo.ak(),i},fn.prototype.doCancel=function(){null!==this.adornedObject&&(this.adornedObject.desiredSize=this.originalDesiredSize,this.adornedObject.part.location=this.originalLocation),this.stopTool()},fn.prototype.doMouseMove=function(){var t=this.diagram;if(this.isActive){var i=this.rt,e=this.qt,n=this.pt,o=this.adornedObject.qs(t.lastInput.documentPoint,pt.alloc()),r=this.computeReshape();i=this.computeResize(o,this.handle.alignment,i,e,n,r),this.resize(i),t.bd(),pt.free(o)}},fn.prototype.doMouseUp=function(){var t=this.diagram;if(this.isActive){var i=this.rt,e=this.qt,n=this.pt,o=this.adornedObject.qs(t.lastInput.documentPoint,pt.alloc()),r=this.computeReshape();i=this.computeResize(o,this.handle.alignment,i,e,n,r),this.resize(i),pt.free(o),t.Ya(),this.transactionResult=this.name,t.R("PartResized",this.adornedObject,this.originalDesiredSize)}this.stopTool()},fn.prototype.resize=function(t){var i=this.diagram,e=this.adornedObject;if(null!==e){if(e.desiredSize=t.size,(t=e.part).Va(),e=e.ga(this.handle.alignment.gv()),t instanceof gc){var n=new Z;if(n.add(t),!this.dragsMembers&&null===t.placeholder){var o=new Ms;o.dragsMembers=!1}i.moveParts(n,this.oppositePoint.copy().re(e),!0,o)}else t.location=t.location.copy().re(e).add(this.oppositePoint);i.bd()}},fn.prototype.computeResize=function(t,i,e,n,o,r){i.Mc()&&(i=oi);var s=this.adornedObject.naturalBounds,a=s.x,h=s.y,l=s.x+s.width,u=s.y+s.height,c=1;if(!r){c=s.width;var f=s.height;0>=c&&(c=1),0>=f&&(f=1),c=f/c}return f=pt.alloc(),Xi.No(t.x,t.y,a,h,o.width,o.height,f),t=s.copy(),0>=i.x?0>=i.y?(t.x=Math.max(f.x,l-n.width),t.x=Math.min(t.x,l-e.width),t.width=Math.max(l-t.x,e.width),t.y=Math.max(f.y,u-n.height),t.y=Math.min(t.y,u-e.height),t.height=Math.max(u-t.y,e.height),r||(1<=t.height/t.width?(t.height=Math.max(Math.min(c*t.width,n.height),e.height),t.width=t.height/c):(t.width=Math.max(Math.min(t.height/c,n.width),e.width),t.height=c*t.width),t.x=l-t.width,t.y=u-t.height)):1<=i.y?(t.x=Math.max(f.x,l-n.width),t.x=Math.min(t.x,l-e.width),t.width=Math.max(l-t.x,e.width),t.height=Math.max(Math.min(f.y-h,n.height),e.height),r||(1<=t.height/t.width?(t.height=Math.max(Math.min(c*t.width,n.height),e.height),t.width=t.height/c):(t.width=Math.max(Math.min(t.height/c,n.width),e.width),t.height=c*t.width),t.x=l-t.width)):(t.x=Math.max(f.x,l-n.width),t.x=Math.min(t.x,l-e.width),t.width=l-t.x,r||(t.height=Math.max(Math.min(c*t.width,n.height),e.height),t.width=t.height/c,t.y=h+.5*(u-h-t.height))):1<=i.x?0>=i.y?(t.width=Math.max(Math.min(f.x-a,n.width),e.width),t.y=Math.max(f.y,u-n.height),t.y=Math.min(t.y,u-e.height),t.height=Math.max(u-t.y,e.height),r||(1<=t.height/t.width?(t.height=Math.max(Math.min(c*t.width,n.height),e.height),t.width=t.height/c):(t.width=Math.max(Math.min(t.height/c,n.width),e.width),t.height=c*t.width),t.y=u-t.height)):1<=i.y?(t.width=Math.max(Math.min(f.x-a,n.width),e.width),t.height=Math.max(Math.min(f.y-h,n.height),e.height),r||(1<=t.height/t.width?(t.height=Math.max(Math.min(c*t.width,n.height),e.height),t.width=t.height/c):(t.width=Math.max(Math.min(t.height/c,n.width),e.width),t.height=c*t.width))):(t.width=Math.max(Math.min(f.x-a,n.width),e.width),r||(t.height=Math.max(Math.min(c*t.width,n.height),e.height),t.width=t.height/c,t.y=h+.5*(u-h-t.height))):0>=i.y?(t.y=Math.max(f.y,u-n.height),t.y=Math.min(t.y,u-e.height),t.height=u-t.y,r||(t.width=Math.max(Math.min(t.height/c,n.width),e.width),t.height=c*t.width,t.x=a+.5*(l-a-t.width))):1<=i.y&&(t.height=Math.max(Math.min(f.y-h,n.height),e.height),r||(t.width=Math.max(Math.min(t.height/c,n.width),e.width),t.height=c*t.width,t.x=a+.5*(l-a-t.width))),pt.free(f),t},fn.prototype.computeReshape=function(){var t=fs;return this.adornedObject instanceof pl&&(t=yl(this.adornedObject)),!(t===ds||this.diagram.lastInput.shift)},fn.prototype.computeMinSize=function(){var t=this.adornedObject.minSize.copy(),i=this.minSize;return!isNaN(i.width)&&i.width>t.width&&(t.width=i.width),!isNaN(i.height)&&i.height>t.height&&(t.height=i.height),t},fn.prototype.computeMaxSize=function(){var t=this.adornedObject.maxSize.copy(),i=this.maxSize;return!isNaN(i.width)&&i.width<t.width&&(t.width=i.width),!isNaN(i.height)&&i.height<t.height&&(t.height=i.height),t},fn.prototype.computeCellSize=function(){var t=new At(NaN,NaN),i=this.adornedObject.part;return null!==i&&(i=i.resizeCellSize,!isNaN(i.width)&&0<i.width&&(t.width=i.width),!isNaN(i.height)&&0<i.height&&(t.height=i.height)),i=this.cellSize,isNaN(t.width)&&!isNaN(i.width)&&0<i.width&&(t.width=i.width),isNaN(t.height)&&!isNaN(i.height)&&0<i.height&&(t.height=i.height),i=this.diagram,(isNaN(t.width)||isNaN(t.height))&&i&&(null!==(i=i.grid)&&i.visible&&this.isGridSnapEnabled&&(i=i.gridCellSize,isNaN(t.width)&&!isNaN(i.width)&&0<i.width&&(t.width=i.width),isNaN(t.height)&&!isNaN(i.height)&&0<i.height&&(t.height=i.height))),(isNaN(t.width)||0===t.width||1/0===t.width)&&(t.width=1),(isNaN(t.height)||0===t.height||1/0===t.height)&&(t.height=1),t},f.Object.defineProperties(fn.prototype,{handleArchetype:{get:function(){return this.F},set:function(t){this.F=t}},handle:{get:function(){return this.u},set:function(t){if(null!==t&&!(t.part instanceof Ku))throw Error("new handle is not in an Adornment: "+t);this.u=t}},adornedObject:{get:function(){return this.ue},set:function(t){if(null!==t&&t.part instanceof Ku)throw Error("new handle must not be in an Adornment: "+t);this.ue=t}},minSize:{get:function(){return this.o},set:function(t){if(!this.o.D(t)){var i=t.width;isNaN(i)&&(i=0),t=t.height,isNaN(t)&&(t=0),this.o.h(i,t)}}},maxSize:{get:function(){return this.j},set:function(t){if(!this.j.D(t)){var i=t.width;isNaN(i)&&(i=1/0),t=t.height,isNaN(t)&&(t=1/0),this.j.h(i,t)}}},cellSize:{get:function(){return this.yg},set:function(t){this.yg.D(t)||this.yg.assign(t)}},isGridSnapEnabled:{get:function(){return this.V},set:function(t){this.V=t}},dragsMembers:{get:function(){return this.ia},set:function(t){this.ia=t}},oppositePoint:{get:function(){return this.Xq},set:function(t){this.Xq.D(t)||this.Xq.assign(t)}},originalDesiredSize:{get:function(){return this.Dw}},originalLocation:{get:function(){return this.Tn}}}),fn.className="ResizingTool",O("resizingTool",(function(){return this.findTool("Resizing")}),(function(t){this.gb("Resizing",t,this.mouseDownTools)})),c(dn,ve),dn.prototype.updateAdornments=function(t){if(null!==t){if(t.ph()){var i=t.rotateObject;if(i===t||i===t.path||i.isPanelMain)return}if(t.isSelected&&!this.diagram.isReadOnly&&(null!==(i=t.rotateObject)&&t.canRotate()&&t.actualBounds.w()&&t.isVisible()&&i.actualBounds.w()&&i.Ed())){var e=t.Pj(this.name);if(null!==e&&e.adornedObject===i||(e=this.makeAdornment(i)),null!==e)return e.angle=i.li(),null===e.placeholder&&(e.location=this.computeAdornmentLocation(i)),void t.bh(this.name,e)}t.Jf(this.name)}},dn.prototype.makeAdornment=function(t){var i=t.part.rotateAdornmentTemplate;if(null===i){(i=new Ku).type=Ch.Position,i.locationSpot=oi;var e=this.handleArchetype;null!==e&&i.add(e.copy())}else if(Wh(i),null===(i=i.copy()))return null;return i.adornedObject=t,i},dn.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;return!(t.isReadOnly||!t.allowRotate||!t.lastInput.left)&&null!==this.findToolHandleAt(t.firstInput.documentPoint,this.name)},dn.prototype.doActivate=function(){var t=this.diagram;if(null===this.adornedObject){if(null===this.handle&&(this.handle=this.findToolHandleAt(t.firstInput.documentPoint,this.name)),null===this.handle)return;this.adornedObject=this.handle.part.adornedObject}null!==this.adornedObject&&(t.isMouseCaptured=!0,t.delaysLayout=!0,this.Ea(this.name),this.Cw=this.adornedObject.angle,this.kr=this.computeRotationPoint(this.adornedObject),this.Tn=this.adornedObject.part.location.copy(),this.isActive=!0)},dn.prototype.computeRotationPoint=function(t){var i=t.part,e=i.locationObject;return i.rotationSpot.sb()?t.ga(i.rotationSpot):t===i||t===e?e.ga(i.locationSpot):t.ga(oi)},dn.prototype.computeAdornmentLocation=function(t){var i=this.rotationPoint;i.w()||(i=this.computeRotationPoint(t)),i=t.qs(i);var e=this.handleAngle;0>e?e+=360:360<=e&&(e-=360),e=Math.round(45*Math.round(e/45));var n=this.handleDistance;return 0===e?i.x=t.naturalBounds.width+n:45===e?(i.x=t.naturalBounds.width+n,i.y=t.naturalBounds.height+n):90===e?i.y=t.naturalBounds.height+n:135===e?(i.x=-n,i.y=t.naturalBounds.height+n):180===e?i.x=-n:225===e?(i.x=-n,i.y=-n):270===e?i.y=-n:315===e&&(i.x=t.naturalBounds.width+n,i.y=-n),t.ga(i)},dn.prototype.doDeactivate=function(){var t=this.diagram;this.stopTransaction(),this.ue=this.handle=null,this.kr=new pt(NaN,NaN),this.isActive=t.isMouseCaptured=!1},dn.prototype.stopTransaction=function(){var t=this.diagram,i=ve.prototype.stopTransaction.call(this);return i&&null!==t.undoManager.transactionToUndo&&t.undoManager.transactionToUndo.ak(),i},dn.prototype.doCancel=function(){this.diagram.delaysLayout=!1,this.rotate(this.originalAngle),this.stopTool()},dn.prototype.doMouseMove=function(){var t=this.diagram;this.isActive&&(t=this.computeRotate(t.lastInput.documentPoint),this.rotate(t))},dn.prototype.doMouseUp=function(){var t=this.diagram;if(this.isActive){t.delaysLayout=!1;var i=this.computeRotate(t.lastInput.documentPoint);this.rotate(i),t.Ya(),this.transactionResult=this.name,t.R("PartRotated",this.adornedObject,this.originalAngle)}this.stopTool()},dn.prototype.rotate=function(t){var i=this.adornedObject;if(null!==i){i.angle=t,(i=i.part).Va();var e=i.locationObject,n=i.rotateObject;(e===n||e.rg(n))&&(e=this.Tn.copy(),i.location=e.re(this.rotationPoint).rotate(t-this.originalAngle).add(this.rotationPoint)),this.diagram.bd()}},dn.prototype.computeRotate=function(t){t=this.rotationPoint.ab(t)-this.handleAngle;var i=this.adornedObject.panel;null!==i&&(t-=i.li()),360<=t?t-=360:0>t&&(t+=360),i=Math.min(Math.abs(this.snapAngleMultiple),180);var e=Math.min(Math.abs(this.snapAngleEpsilon),i/2);return!this.diagram.lastInput.shift&&0<i&&0<e&&(t%i<e?t=Math.floor(t/i)*i:t%i>i-e&&(t=(Math.floor(t/i)+1)*i)),360<=t?t-=360:0>t&&(t+=360),t},f.Object.defineProperties(dn.prototype,{handleArchetype:{get:function(){return this.o},set:function(t){this.o=t}},handle:{get:function(){return this.j},set:function(t){if(null!==t&&!(t.part instanceof Ku))throw Error("new handle is not in an Adornment: "+t);this.j=t}},adornedObject:{get:function(){return this.ue},set:function(t){if(null!==t&&t.part instanceof Ku)throw Error("new handle must not be in an Adornment: "+t);this.ue=t}},snapAngleMultiple:{get:function(){return this.ia},set:function(t){this.ia=t}},snapAngleEpsilon:{get:function(){return this.V},set:function(t){this.V=t}},originalAngle:{get:function(){return this.Cw}},rotationPoint:{get:function(){return this.kr},set:function(t){this.kr=t.copy()}},handleAngle:{get:function(){return this.u},set:function(t){this.u=t}},handleDistance:{get:function(){return this.F},set:function(t){this.F=t}}}),dn.className="RotatingTool",O("rotatingTool",(function(){return this.findTool("Rotating")}),(function(t){this.gb("Rotating",t,this.mouseDownTools)})),c(pn,ve),pn.prototype.canStart=function(){return!(!this.isEnabled||this.isBeyondDragSize())},pn.prototype.doMouseUp=function(){this.isActive&&(this.standardMouseSelect(),!this.standardMouseClick()&&this.diagram.lastInput.isTouchEvent&&this.diagram.toolManager.doToolTip()),this.stopTool()},pn.className="ClickSelectingTool",c(gn,ve),gn.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram,i=t.lastInput,e=t.ic(i.documentPoint,(function(t){for(;null!==t.panel&&!t.isActionable;)t=t.panel;return t}));return null!==e&&(!!e.isActionable&&(this.pk=e,t.Ck=t.ic(i.documentPoint,null,null),!0))},gn.prototype.doMouseDown=function(){if(this.isActive){var t=this.diagram.lastInput,i=this.pk;null!==i&&(t.targetObject=i,null!==i.actionDown&&i.actionDown(t,i))}else this.canStart()&&this.doActivate()},gn.prototype.doMouseMove=function(){if(this.isActive){var t=this.diagram.lastInput,i=this.pk;null!==i&&(t.targetObject=i,null!==i.actionMove&&i.actionMove(t,i))}},gn.prototype.doMouseUp=function(){if(this.isActive){var t=this.diagram.lastInput,i=this.pk;if(null===i)return;t.targetObject=i,null!==i.actionUp&&i.actionUp(t,i),this.standardMouseClick((function(t){for(;null!==t.panel&&(!t.isActionable||t!==i);)t=t.panel;return t}),(function(t){return t===i}))}this.stopTool()},gn.prototype.doCancel=function(){var t=this.diagram.lastInput,i=this.pk;null!==i&&(t.targetObject=i,null!==i.actionCancel&&i.actionCancel(t,i),this.stopTool())},gn.prototype.doStop=function(){this.pk=null},gn.className="ActionTool",c(mn,ve),mn.prototype.canStart=function(){if(!this.isEnabled||null===this.archetypeNodeData)return!1;var t=this.diagram;if(t.isReadOnly||t.isModelReadOnly||!t.allowInsert||!t.lastInput.left||this.isBeyondDragSize())return!1;if(this.isDoubleClick){if(1===t.lastInput.clickCount&&(this.mw=t.lastInput.viewPoint.copy()),2!==t.lastInput.clickCount||this.isBeyondDragSize(this.mw))return!1}else if(1!==t.lastInput.clickCount)return!1;return t.currentTool===this||null===t.Ol(t.lastInput.documentPoint,!0)},mn.prototype.doMouseUp=function(){var t=this.diagram;this.isActive&&this.insertPart(t.lastInput.documentPoint),this.stopTool()},mn.prototype.insertPart=function(t){var i=this.diagram,e=this.archetypeNodeData;if(null===e)return null;var n=null;try{if(i.R("ChangingSelection",i.selection),this.Ea(this.name),e instanceof ku)e.Zc()&&(Wh(e),null!==(n=e.copy())&&i.add(n));else if(null!==e){var o=i.model.copyNodeData(e);P(o)&&(i.model.xf(o),n=i.Lc(o))}if(null!==n){var r=pt.allocAt(t.x,t.y);this.isGridSnapEnabled&&cr(this.diagram,n,t,r),n.location=r,i.allowSelect&&(i.clearSelection(!0),n.isSelected=!0),pt.free(r)}i.Ya(),this.transactionResult=this.name,i.R("PartCreated",n)}finally{this.stopTransaction(),i.R("ChangedSelection",i.selection)}return n},f.Object.defineProperties(mn.prototype,{archetypeNodeData:{get:function(){return this.Ri},set:function(t){this.Ri=t}},isDoubleClick:{get:function(){return this.o},set:function(t){this.o=t}},isGridSnapEnabled:{get:function(){return this.j},set:function(t){this.j=t}}}),mn.className="ClickCreatingTool",c(yn,ve),yn.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;if(!t.allowSelect)return!1;var i=t.lastInput;return!(!i.left||t.currentTool!==this&&(!this.isBeyondDragSize()||i.timestamp-t.firstInput.timestamp<this.delay||null!==t.Ol(i.documentPoint,!0)))},yn.prototype.doActivate=function(){var t=this.diagram;this.isActive=!0,t.isMouseCaptured=!0,t.skipsUndoManager=!0,t.add(this.box),this.doMouseMove()},yn.prototype.doDeactivate=function(){var t=this.diagram;t.ug(),t.remove(this.box),t.skipsUndoManager=!1,this.isActive=t.isMouseCaptured=!1},yn.prototype.doMouseMove=function(){var t=this.diagram;if(this.isActive&&null!==this.box){var i=this.computeBoxBounds(),e=this.box.fb("SHAPE");null===e&&(e=this.box.Pb());var n=At.alloc().h(i.width,i.height);e.desiredSize=n,this.box.mm(i.x,i.y,!1),At.free(n),(t.allowHorizontalScroll||t.allowVerticalScroll)&&t.gs(t.lastInput.viewPoint)}},yn.prototype.doMouseUp=function(){if(this.isActive){var t=this.diagram;t.remove(this.box);try{t.currentCursor="wait",t.R("ChangingSelection",t.selection),this.selectInRect(this.computeBoxBounds()),t.R("ChangedSelection",t.selection)}finally{t.currentCursor=""}}this.stopTool()},yn.prototype.computeBoxBounds=function(){var t=this.diagram;return new Bt(t.firstInput.documentPoint,t.lastInput.documentPoint)},yn.prototype.selectInRect=function(t){var i=this.diagram,e=i.lastInput;if(t=i.ux(t,this.isPartialInclusion),R?e.meta:e.control)if(e.shift)for(t=t.iterator;t.next();)(i=t.value).isSelected&&(i.isSelected=!1);else for(t=t.iterator;t.next();)(i=t.value).isSelected=!i.isSelected;else if(e.shift)for(t=t.iterator;t.next();)(i=t.value).isSelected||(i.isSelected=!0);else{for(e=new Z,i=i.selection.iterator;i.next();){var n=i.value;t.contains(n)||e.add(n)}for(i=e.iterator;i.next();)i.value.isSelected=!1;for(t=t.iterator;t.next();)(i=t.value).isSelected||(i.isSelected=!0)}},f.Object.defineProperties(yn.prototype,{delay:{get:function(){return this.Ik},set:function(t){this.Ik=t}},isPartialInclusion:{get:function(){return this.o},set:function(t){this.o=t}},box:{get:function(){return this.j},set:function(t){this.j=t}}}),yn.className="DragSelectingTool",c(vn,ve),vn.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;return!(!t.allowHorizontalScroll&&!t.allowVerticalScroll||!t.lastInput.left||t.currentTool!==this&&!this.isBeyondDragSize())},vn.prototype.doActivate=function(){var t=this.diagram;this.xg?(t.lastInput.bubbles=!0,t.addEventListener(m.document,"scroll",this.Kw,!1)):(t.currentCursor="move",t.isMouseCaptured=!0,this.Xt.assign(t.position)),this.isActive=!0},vn.prototype.doDeactivate=function(){var t=this.diagram;t.currentCursor="",this.isActive=t.isMouseCaptured=!1},vn.prototype.doCancel=function(){var t=this.diagram;t.position=this.Xt,t.isMouseCaptured=!1,this.stopTool()},vn.prototype.doMouseMove=function(){this.move()},vn.prototype.doMouseUp=function(){this.move(),this.stopTool()},vn.prototype.move=function(){var t=this.diagram;if(this.isActive&&t)if(this.xg)t.lastInput.bubbles=!0;else{var i=t.position,e=t.firstInput.documentPoint,n=t.lastInput.documentPoint,o=i.x+e.x-n.x;e=i.y+e.y-n.y,t.allowHorizontalScroll||(o=i.x),t.allowVerticalScroll||(e=i.y),t.position=this.xy.h(o,e)}},f.Object.defineProperties(vn.prototype,{bubbles:{get:function(){return this.xg},set:function(t){this.xg=t}},originalPosition:{get:function(){return this.Xt}}}),vn.className="PanningTool",O("clickCreatingTool",(function(){return this.findTool("ClickCreating")}),(function(t){this.gb("ClickCreating",t,this.mouseUpTools)})),O("clickSelectingTool",(function(){return this.findTool("ClickSelecting")}),(function(t){this.gb("ClickSelecting",t,this.mouseUpTools)})),O("panningTool",(function(){return this.findTool("Panning")}),(function(t){this.gb("Panning",t,this.mouseMoveTools)})),O("dragSelectingTool",(function(){return this.findTool("DragSelecting")}),(function(t){this.gb("DragSelecting",t,this.mouseMoveTools)})),O("actionTool",(function(){return this.findTool("Action")}),(function(t){this.gb("Action",t,this.mouseDownTools)})),f.Object.defineProperties(xn.prototype,{mainElement:{get:function(){return this.u},set:function(t){this.u=t}},show:{get:function(){return this.o},set:function(t){this.o!==t&&(this.o=t)}},hide:{get:function(){return this.j},set:function(t){this.j!==t&&(this.j=t)}},valueFunction:{get:function(){return this.F},set:function(t){this.F=t}}}),xn.className="HTMLInfo",bn.className="ContextMenuButtonInfo",c(wn,ve),wn.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;return!(this.isBeyondDragSize()||!t.lastInput.right||1<t.lastInput.clickCount)&&!!(t.lastInput.isTouchEvent&&null!==this.defaultTouchContextMenu||null!==this.findObjectWithContextMenu())},wn.prototype.doStart=function(){this.yw.set(this.diagram.firstInput.documentPoint)},wn.prototype.doStop=function(){this.hideContextMenu(),this.currentObject=null},wn.prototype.findObjectWithContextMenu=function(t){void 0===t&&(t=null);var i=this.diagram,e=i.lastInput,n=null;if(t instanceof To||(n=t instanceof Ds?t:i.ic(e.documentPoint,null,(function(t){return!t.layer.isTemporary}))),null!==n){for(t=n;null!==t;){if(null!==t.contextMenu)return t;t=t.panel}if(i.lastInput.isTouchEvent&&this.defaultTouchContextMenu)return n.part}else if(null!==i.contextMenu)return i;return null},wn.prototype.doActivate=function(){},wn.prototype.doMouseDown=function(){if(ve.prototype.doMouseDown.call(this),this.isActive&&this.currentContextMenu instanceof Ku){var t=this.diagram.toolManager.findTool("Action");null!==t&&t.canStart()&&(t.doActivate(),t.doMouseDown(),t.doDeactivate())}this.diagram.toolManager.mouseDownTools.contains(this)&&Mn(this)},wn.prototype.doMouseUp=function(){if(this.isActive&&this.currentContextMenu instanceof Ku){var t=this.diagram.toolManager.findTool("Action");null!==t&&t.canStart()&&(t.doActivate(),t.doCancel(),t.doDeactivate())}Mn(this)},wn.prototype.maybeStopTool=function(){this.stopTool(),this.canStart()&&(this.diagram.currentTool=this,this.doMouseUp())},wn.prototype.doMouseMove=function(){var t=this.diagram.toolManager.findTool("Action");null!==t&&t.doMouseMove(),this.isActive&&this.diagram.toolManager.doMouseMove()},wn.prototype.showContextMenu=function(t,i){var e=this.diagram;if(t!==this.currentContextMenu&&this.hideContextMenu(),t instanceof Ku){t.layerName="Tool",t.selectable=!1,t.scale=1/e.scale,t.category=this.name,null!==t.placeholder&&(t.placeholder.scale=e.scale);var n=t.diagram;null!==n&&n!==e&&n.remove(t),e.add(t),null!==i?t.adornedObject=i:t.data=e.model,t.Va(),this.positionContextMenu(t,i)}else t instanceof xn&&t.show(i,e,this);this.currentContextMenu=t},wn.prototype.positionContextMenu=function(t){if(null===t.placeholder){var i=this.diagram,e=i.lastInput.documentPoint.copy(),n=t.measuredBounds,o=i.viewportBounds;i.lastInput.isTouchEvent&&(e.x-=n.width),e.x+n.width>o.right&&(e.x-=n.width+5/i.scale),e.x<o.x&&(e.x=o.x),e.y+n.height>o.bottom&&(e.y-=n.height+5/i.scale),e.y<o.y&&(e.y=o.y),t.position=e}},wn.prototype.hideContextMenu=function(){var t=this.diagram,i=this.currentContextMenu;null!==i&&(i instanceof Ku?(t.remove(i),null!==this.ht&&this.ht.Jf(i.category),i.data=null,i.adornedObject=null):i instanceof xn&&(null!==i.hide?i.hide(t,this):null!==i.mainElement&&(i.mainElement.style.display="none")),this.currentContextMenu=null,this.standardMouseOver())},wn.prototype.showDefaultContextMenu=function(){var t=this.diagram;null===this.jt&&(this.jt=function(t){var i=new Z;return i.add(new bn("Copy",(function(t){t.commandHandler.copySelection()}),(function(t){return t.commandHandler.canCopySelection()}))),i.add(new bn("Cut",(function(t){t.commandHandler.cutSelection()}),(function(t){return t.commandHandler.canCutSelection()}))),i.add(new bn("Delete",(function(t){t.commandHandler.deleteSelection()}),(function(t){return t.commandHandler.canDeleteSelection()}))),i.add(new bn("Paste",(function(i){i.commandHandler.pasteSelection(t.mouseDownPoint)}),(function(i){return i.commandHandler.canPasteSelection(t.mouseDownPoint)}))),i.add(new bn("Select All",(function(t){t.commandHandler.selectAll()}),(function(t){return t.commandHandler.canSelectAll()}))),i.add(new bn("Undo",(function(t){t.commandHandler.undo()}),(function(t){return t.commandHandler.canUndo()}))),i.add(new bn("Redo",(function(t){t.commandHandler.redo()}),(function(t){return t.commandHandler.canRedo()}))),i.add(new bn("Scroll To Part",(function(t){t.commandHandler.scrollToPart()}),(function(t){return t.commandHandler.canScrollToPart()}))),i.add(new bn("Zoom To Fit",(function(t){t.commandHandler.zoomToFit()}),(function(t){return t.commandHandler.canZoomToFit()}))),i.add(new bn("Reset Zoom",(function(t){t.commandHandler.resetZoom()}),(function(t){return t.commandHandler.canResetZoom()}))),i.add(new bn("Group Selection",(function(t){t.commandHandler.groupSelection()}),(function(t){return t.commandHandler.canGroupSelection()}))),i.add(new bn("Ungroup Selection",(function(t){t.commandHandler.ungroupSelection()}),(function(t){return t.commandHandler.canUngroupSelection()}))),i.add(new bn("Edit Text",(function(t){t.commandHandler.editTextBlock()}),(function(t){return t.commandHandler.canEditTextBlock()}))),i}(this)),Tn.innerHTML="",Cn.addEventListener("pointerdown",this.tu,!1);var i=this,e=b("ul");e.className="goCXul",Tn.appendChild(e),e.innerHTML="";for(var n=this.jt.iterator;n.next();){var o=n.value,r=o.visible;if("function"==typeof o.hx&&("function"!=typeof r||r(t))){(r=b("li")).className="goCXli";var s=b("a");s.className="goCXa",s.href="#",s.ky=o.hx,s.addEventListener("pointerdown",(function(e){return this.ky(t),i.stopTool(),e.preventDefault(),!1}),!1),s.textContent=o.text,r.appendChild(s),e.appendChild(r)}}Tn.style.display="block",Cn.style.display="block"},wn.prototype.hideDefaultContextMenu=function(){if(null!==this.currentContextMenu&&this.currentContextMenu===Pn){Tn.style.display="none",Cn.style.display="none";var t=this.diagram;null!==t&&t.removeEventListener(Cn,"pointerdown",this.tu,!1),this.currentContextMenu=null}},f.Object.defineProperties(wn.prototype,{currentContextMenu:{get:function(){return this.j},set:function(t){this.j=t,this.ht=t instanceof Ku?t.adornedPart:null}},defaultTouchContextMenu:{get:function(){return!1===Nn&&null===Pn&&Vr&&function(t){var i=new xn;i.show=function(t,i,e){e.showDefaultContextMenu()},i.hide=function(t,i){i.hideDefaultContextMenu()},Pn=i,t.tu=function(){t.stopTool()},i=b("div");var e=b("div");i.style.cssText="top: 0px;z-index:10002;position: fixed;display: none;text-align: center;left: 25%;width: 50%;background-color: #F5F5F5;padding: 16px;border: 16px solid #444;border-radius: 10px;margin-top: 10px",e.style.cssText="z-index:10001;position: fixed;display: none;top: 0;left: 0;width: 100%;height: 100%;background-color: black;opacity: 0.8;";var n=b("style");m.document.getElementsByTagName("head")[0].appendChild(n),n.sheet.insertRule(".goCXul { list-style: none; }",0),n.sheet.insertRule(".goCXli {font:700 1.5em Helvetica, Arial, sans-serif;position: relative;min-width: 60px; }",0),n.sheet.insertRule(".goCXa {color: #444;display: inline-block;padding: 4px;text-decoration: none;margin: 2px;border: 1px solid gray;border-radius: 10px; }",0),null!==(n=t.diagram)&&(n.addEventListener(i,"contextmenu",kn,!1),n.addEventListener(i,"selectstart",kn,!1),n.addEventListener(e,"contextmenu",kn,!1)),i.className="goCXforeground",e.className="goCXbackground",m.document.body&&(m.document.body.appendChild(i),m.document.body.appendChild(e)),Tn=i,Cn=e,Nn=!0}(this),Pn},set:function(t){null===t&&(Nn=!0),Pn=t}},currentObject:{get:function(){return this.o},set:function(t){this.o=t}},mouseDownPoint:{get:function(){return this.yw}}});var Pn=null,Nn=!1,Cn=null,Tn=null;function Ln(){ve.call(this),this.name="TextEditing",this.Zh=new Nl,this.ia=null,this.V=In,this.vj=null,this.qa=Rn,this.u=1,this.F=!0,this.o=null,this.j=new xn,this.kt=null,function(t,i){if(Vr){var e=b("textarea");t.kt=e,e.addEventListener("input",(function(){if(null!==t.textBlock){var i=t.Lx(this.value);this.style.width=20+i.measuredBounds.width*this.wA+"px",this.rows=i.lineCount}}),!1),e.addEventListener("keydown",(function(i){if(!i.isComposing&&null!==t.textBlock){var e=i.key;"Enter"===e?(!1===t.textBlock.isMultiline&&i.preventDefault(),t.acceptText(Bn)):"Tab"===e?(t.acceptText(Dn),i.preventDefault()):"Escape"===e&&(t.doCancel(),null!==t.diagram&&t.diagram.doFocus())}}),!1),e.addEventListener("focus",(function(){if(null!==t.currentTextEditor&&t.state!==Rn){var i=t.kt;t.qa===En&&(t.qa=Vn),"function"==typeof i.select&&t.selectsTextOnActivate&&(i.select(),i.setSelectionRange(0,9999))}}),!1),e.addEventListener("blur",(function(){if(null!==t.currentTextEditor&&t.state!==Rn){var i=t.kt;"function"==typeof i.focus&&i.focus(),"function"==typeof i.select&&t.selectsTextOnActivate&&(i.select(),i.setSelectionRange(0,9999))}}),!1),i.valueFunction=function(){return e.value},i.mainElement=e,i.show=function(t,i,n){if(t instanceof Nl&&n instanceof Ln)if(n.state===Gn)e.style.border="3px solid red",e.focus();else{var o=t.ga(oi),r=i.position,s=i.scale,a=t.Df()*s;a<n.minimumEditorScale&&(a=n.minimumEditorScale);var h=t.naturalBounds.width*a+6,l=t.naturalBounds.height*a+2,u=(o.x-r.x)*s;o=(o.y-r.y)*s,r=t.verticalAlignment,s=(t.lineHeight+t.spacingAbove+t.spacingBelow)*t.lineCount*a,l=r.y*l-r.y*s+r.offsetY-(.5*l-.5*s)-s/2,e.value=t.text,i.div.style.font=t.font,e.style.position="absolute",e.style.zIndex="100",e.style.font="inherit",e.style.fontSize=100*a+"%",e.style.lineHeight="normal",e.style.width=h+"px",e.style.left=(u-h/2|0)-1+"px",e.style.top=(o+l|0)-1+"px",e.style.textAlign=t.textAlign,e.style.margin="0",e.style.padding="1px",e.style.border="0",e.style.outline="none",e.style.whiteSpace="pre-wrap",e.style.overflow="hidden",e.rows=t.lineCount,e.wA=a,e.className="goTXarea",i.div.appendChild(e),e.focus(),n.selectsTextOnActivate&&(e.select(),e.setSelectionRange(0,9999))}},i.hide=function(t){t.div.removeChild(e)}}}(this,this.j)}function An(t){var i=t.textBlock,e=t.diagram,n=t.currentTextEditor;if(null!==i&&null!==n){var o=i.text,r="";null!==n.valueFunction&&(r=n.valueFunction()),t.isValidText(i,o,r)?(t.Ea(t.name),t.qa=Xn,t.transactionResult=t.name,i.text=r,t.doSuccess(o,r),null!==e&&e.R("TextEdited",i,o),t.stopTransaction(),t.stopTool(),null!==e&&e.doFocus()):(t.qa=Gn,t.doError(o,r))}}wn.className="ContextMenuTool",O("contextMenuTool",(function(){return this.findTool("ContextMenu")}),(function(t){this.gb("ContextMenu",t,this.mouseUpTools)})),c(Ln,ve),Ln.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;if(null===t||t.isReadOnly||Un&&Un!==this&&(Un.acceptText(Fn),Un&&Un!==this)||!t.lastInput.left||this.isBeyondDragSize())return!1;var i=t.ic(t.lastInput.documentPoint);return!!(null!==i&&i instanceof Nl&&i.editable&&i.part.canEdit())&&!(null===(i=i.part)||this.starting===In&&!i.isSelected||this.starting===zn&&2>t.lastInput.clickCount)},Ln.prototype.doStart=function(){Un=this,null!==this.textBlock&&this.doActivate()},Ln.prototype.doActivate=function(){if(!this.isActive){var t=this.diagram;if(null!==t){var i=this.textBlock;if(null===i&&(i=t.ic(t.lastInput.documentPoint)),null!==i&&i instanceof Nl&&(this.textBlock=i,null!==i.part)){t.animationManager.Cc(),this.isActive=!0,this.qa=En;var e=this.defaultTextEditor;null!==i.textEditor&&(e=i.textEditor),this.Zh=this.textBlock.copy();var n=new Bt(this.textBlock.ga(ti),this.textBlock.ga(hi));t.tv(n),e.show(i,t,this),this.currentTextEditor=e}}}},Ln.prototype.doCancel=function(){this.stopTool()},Ln.prototype.doMouseUp=function(){this.canStart()&&this.doActivate()},Ln.prototype.doMouseDown=function(){this.isActive&&this.acceptText(Fn)},Ln.prototype.acceptText=function(t){switch(t){case Fn:this.qa===Xn?this.currentTextEditor instanceof HTMLElement&&this.currentTextEditor.focus():this.qa!==En&&this.qa!==Gn&&this.qa!==Vn||(this.qa=Yn,An(this));break;case jn:case Bn:case Dn:Bn===t&&!0===this.textBlock.isMultiline||this.qa!==En&&this.qa!==Gn&&this.qa!==Vn||(this.qa=Yn,An(this))}},Ln.prototype.doError=function(t,i){var e=this.textBlock;null!==e.errorFunction&&e.errorFunction(this,t,i),(t=this.currentTextEditor)&&t.show(e,this.diagram,this)},Ln.prototype.doSuccess=function(t,i){var e=this.textBlock;null!==e.textEdited&&e.textEdited(e,t,i)},Ln.prototype.doDeactivate=function(){var t=this.diagram;null!==t&&(this.qa=Rn,null!==this.currentTextEditor&&this.currentTextEditor.hide(t,this),this.textBlock=null,this.isActive=!1)},Ln.prototype.doStop=function(){Un=null},Ln.prototype.isValidText=function(t,i,e){var n=this.textValidation;return!(null!==n&&!n(t,i,e))&&!(null!==(n=t.textValidation)&&!n(t,i,e))},Ln.prototype.Lx=function(t){var i=this.Zh;return i.text=t,i.measure(this.textBlock.Ih,1/0),i},f.Object.defineProperties(Ln.prototype,{textBlock:{get:function(){return this.ia},set:function(t){this.ia=t}},currentTextEditor:{get:function(){return this.o},set:function(t){this.o=t}},defaultTextEditor:{get:function(){return this.j},set:function(t){this.j=t}},starting:{get:function(){return this.V},set:function(t){this.V=t}},textValidation:{get:function(){return this.vj},set:function(t){this.vj=t}},minimumEditorScale:{get:function(){return this.u},set:function(t){this.u=t}},selectsTextOnActivate:{get:function(){return this.F},set:function(t){this.F=t}},state:{get:function(){return this.qa},set:function(t){this.qa!==t&&(this.qa=t)}}}),Ln.prototype.measureTemporaryTextBlock=Ln.prototype.Lx;var jn=new V(Ln,"LostFocus",0),Fn=new V(Ln,"MouseDown",1),Dn=new V(Ln,"Tab",2),Bn=new V(Ln,"Enter",3),On=new V(Ln,"SingleClick",0),In=new V(Ln,"SingleClickSelected",1),zn=new V(Ln,"DoubleClick",2),Rn=new V(Ln,"StateNone",0),En=new V(Ln,"StateActive",1),Vn=new V(Ln,"StateEditing",2),Yn=new V(Ln,"StateValidating",3),Gn=new V(Ln,"StateInvalid",4),Xn=new V(Ln,"StateValidated",5),Un=null;function qn(t){oo||(eo(),oo=!0),this.H=bo,this.Ok=this.zb=this.vq=this.bc=!1,this.Qw=!0,this.Pk=ro,this.Dm=!1,this.Gh=this.Jd=!0,this.Dg=600,this.cw=this.Ow=!1,this.Zd=new $,this.ce=new ho,this.ce.Yd=this,this.Ei=new $,this.pu=new $,this.Sr=new $,this.pr=new $,t&&Object.assign(this,t)}function Hn(t,i){t.Jd&&t.canStart(i)&&(t.Zd.add(i),t.defaultAnimation.isAnimating&&t.Cc(),Qo(t.H),t.zb=!0)}function Kn(t){if(t.Jd&&t.zb){var i=t.ce,e=t.H,n=t.Zd.contains("Model");n&&(t.Ok=!0,t.Pk===ro?(i.isViewportUnconstrained=!0,i.vc.clear(),i.add(e,"position",e.position.copy().offset(0,-200),e.position),i.add(e,"opacity",0,1)):t.Pk===ao&&i.vc.clear(),t.Qw=!(t.Pk!==so||!e.du.D(e.pa)),e.R("InitialAnimationStarting",t)),n&&!t.Gh||0===i.vc.count?(t.Zd.clear(),t.zb=!1,i.vc.clear(),lo(i,e),t.Ok=!1,e.N()):(t.Zd.clear(),e.kg=!1,n=i.vc.get(e),e.autoScale!==Xr&&null!==n&&(delete n.start.scale,delete n.end.scale),m.requestAnimationFrame((function(){!1===t.zb||i.bc||(e.Gf("temporaryPixelRatio")&&Do(e),Oo(e),t.zb=!1,i.start(),i.bc&&(Zn(t),e.Ya(),po(i,0),$o(e,!0),_n(t),e.R("AnimationStarting",t)))})))}}function Wn(t){return t.Zd.contains("Trigger")&&1===t.Zd.count}function Jn(t,i,e,n){t.isTicking||Wn(t)||i instanceof wc&&(null!==i.fromNode||null!==i.toNode)||t.ce.add(i,"position",e,n,!1)}function Zn(t){if(!t.vq){var i=t.H;t.Ow=i.skipsUndoManager,t.cw=i.skipsModelSourceBindings,i.skipsUndoManager=!0,i.skipsModelSourceBindings=!0,t.vq=!0}}function _n(t){var i=t.H;i.skipsUndoManager=t.Ow,i.skipsModelSourceBindings=t.cw,t.vq=!1}function $n(t,i,e){!t.zb||i.D(e)||Wn(t)||(t.H.pi||(i=e.copy()),uo(t.ce,t.H,"position",i,e))}function Qn(t,i,e){i.fd&&(i.Tg=e,t.pr.add(i))}function to(t,i){for(i=i.findLinksConnected();i.next();){var e=i.value;e.fd&&(e.Tg=e.points.copy(),t.pr.add(e))}}function io(t,i,e,n,o){null===t&&(t=[0,0,0,0]),null===i&&(i=[0,0,0,0]);var r=t[0],s=t[1],a=t[2];t=t[3];var h=i[0],l=i[1],u=i[2];return i=i[3],0===a||100===a?(r=h,s=l):0!==u&&100!==u||(h=r,l=s),180<Math.abs(h-r)&&(h>r?r+=360:h+=360),"hsla("+(r=o(e,r,h-r,n)%360)+", "+(s=o(e,s,l-s,n))+"%, "+(a=o(e,a,u-a,n))+"%, "+(e=o(e,t,i-t,n))+")"}function eo(){function t(t,i,e,n,o,r){t.position=new pt(n(o,i.x,e.x-i.x,r),n(o,i.y,e.y-i.y,r))}var i=new dt;i.add("position:diagram",t),i.add("position",t),i.add("position:part",(function(t,i,e,n,o,r){o<r?t.mm(n(o,i.x,e.x-i.x,r),n(o,i.y,e.y-i.y,r),!1):t.position=new pt(n(o,i.x,e.x-i.x,r),n(o,i.y,e.y-i.y,r))})),i.add("location",(function(t,i,e,n,o,r){o<r?t.mm(n(o,i.x,e.x-i.x,r),n(o,i.y,e.y-i.y,r),!0):t.location=new pt(n(o,i.x,e.x-i.x,r),n(o,i.y,e.y-i.y,r))})),i.add("position:placeholder",(function(t,i,e,n,o,r){o<r?t.mm(n(o,i.x,e.x-i.x,r),n(o,i.y,e.y-i.y,r),!1):t.position=new pt(n(o,i.x,e.x-i.x,r),n(o,i.y,e.y-i.y,r))})),i.add("position:nodeCollapse",(function(t,i,e,n,o,r){var s=t.actualBounds,a=e.actualBounds;e=a.x+a.width/2-s.width/2,s=a.y+a.height/2-s.height/2,o<r?t.mm(n(o,i.x,e-i.x,r),n(o,i.y,s-i.y,r),!1):t.position=new pt(n(o,i.x,e-i.x,r),n(o,i.y,s-i.y,r))})),i.add("desiredSize",(function(t,i,e,n,o,r){t.desiredSize=new Bt(n(o,i.width,e.width-i.width,r),n(o,i.height,e.height-i.height,r))})),i.add("width",(function(t,i,e,n,o,r){t.width=n(o,i,e-i,r)})),i.add("height",(function(t,i,e,n,o,r){t.height=n(o,i,e-i,r)})),i.add("fill",(function(t,i,e,n,o,r){t.fill=io(i,e,o,r,n)})),i.add("stroke",(function(t,i,e,n,o,r){t.stroke=io(i,e,o,r,n)})),i.add("strokeWidth",(function(t,i,e,n,o,r){t.strokeWidth=n(o,i,e-i,r)})),i.add("strokeDashOffset",(function(t,i,e,n,o,r){t.strokeDashOffset=n(o,i,e-i,r)})),i.add("background",(function(t,i,e,n,o,r){t.background=io(i,e,o,r,n)})),i.add("areaBackground",(function(t,i,e,n,o,r){t.areaBackground=io(i,e,o,r,n)})),i.add("opacity",(function(t,i,e,n,o,r){t.opacity=n(o,i,e-i,r)})),i.add("scale",(function(t,i,e,n,o,r){t.scale=n(o,i,e-i,r)})),i.add("angle",(function(t,i,e,n,o,r){t.angle=n(o,i,e-i,r)})),no=i}Ln.className="TextEditingTool",Ln.LostFocus=jn,Ln.MouseDown=Fn,Ln.Tab=Dn,Ln.Enter=Bn,Ln.SingleClick=On,Ln.SingleClickSelected=In,Ln.DoubleClick=zn,Ln.StateNone=Rn,Ln.StateActive=En,Ln.StateEditing=Vn,Ln.StateValidating=Yn,Ln.StateInvalid=Gn,Ln.StateValidated=Xn,O("textEditingTool",(function(){return this.findTool("TextEditing")}),(function(t){this.gb("TextEditing",t,this.mouseUpTools)})),qn.prototype.Xe=function(t){this.H=t},qn.prototype.canStart=function(){return!0},(i=qn.prototype).fv=function(t){return this.ce.fv(t)},i.Xu=function(t){return this.ce.Xu(t)},i.Cc=function(t){var i=this.ce;if(!0===this.zb&&(this.Ok=this.zb=!1,this.Zd.clear(),0<i.vc.count&&this.H.$b()),this.bc){if(i.Ml(!0),i.vc.clear(),lo(i,null),!0===t)for(t=this.Ei.Fa(),i=0;i<t.length;i++)t[i].Ml(!0)}else i.vc.clear(),lo(i,this.H)},i.Ml=function(t){t===this.defaultAnimation&&this.defaultAnimation.vc.clear(),this.Ei.remove(t),0===this.Ei.count&&(this.bc=!1,this.H.$b()),t===this.defaultAnimation&&(this.defaultAnimation.vc.clear(),this.H.R("AnimationFinished",this))},i.Cj=function(t,i){this.zb&&(this.Zd.contains("Expand Tree")||this.Zd.contains("Expand SubGraph"))&&(this.ce.Cj(t,i),to(this,t))},i.Aj=function(t,i){this.zb&&(this.Zd.contains("Collapse Tree")||this.Zd.contains("Collapse SubGraph"))&&(this.ce.Aj(t,i),uo(this.ce,i,"position",i.position,i.position),to(this,t))},f.Object.defineProperties(qn.prototype,{animationReasons:{get:function(){return this.Zd}},isEnabled:{get:function(){return this.Jd},set:function(t){(this.Jd=t)&&this.Ei.each((function(t){t.isAnimating||1/0!==t.runCount||t.start()}))}},duration:{get:function(){return this.Dg},set:function(t){1>t&&M(t,">= 1",qn,"duration"),this.Dg=t}},isAnimating:{get:function(){return this.bc}},isTicking:{get:function(){return this.vq}},isInitial:{get:function(){return this.Gh},set:function(t){this.Gh=t}},defaultAnimation:{get:function(){return this.ce}},activeAnimations:{get:function(){return this.Ei}},initialAnimationStyle:{get:function(){return this.Pk},set:function(t){this.Pk=t}}}),qn.prototype.stopAnimation=qn.prototype.Cc;var no=null,oo=!1,ro=new V(qn,"Default",1),so=new V(qn,"AnimateLocations",2),ao=new V(qn,"None",3);function ho(t){this.vu=this.Nw=this.Yd=this.H=null,this.Xk=this.bc=this.j=!1,this.cn=this.Qd=0,this.Lp=this.ot=go,this.Wk=this.ho=!1,this.cu=1,this.au=0,this.Gd=this.Dg=NaN,this.gw=0,this.dn=null,this.o=et,this.vc=new dt,this.Tt=new dt,this.yl=new $,this.Ut=new $,this.dw=$r,t&&Object.assign(this,t)}function lo(t,i){if(t.Tt.clear(),t.Wk=!1,t.au=0,t.Gd=NaN,0<t.yl.count&&t.yl.clear(),0<t.Ut.count&&t.Ut.clear(),null!==i)for(t=i.links;t.next();)t.value.Tg=null}function uo(t,i,e,n,o,r){var s=t.vc;if(i instanceof To&&"position"===e&&(e="position:diagram"),"fill"!==e&&"stroke"!==e&&"background"!==e&&"areaBackground"!==e||(Ga(n),Xa(),n=[ah.j,ah.u,ah.o,ah.F],Ga(o),Xa(),o=[ah.j,ah.u,ah.o,ah.F]),s.contains(i)){var a=s.I(i),h=a.start,l=a.end;void 0===h[e]&&(h[e]=co(n)),l[e]=co(o)}else l={},(h={})[e]=co(n),l[e]=co(o),a=h.position,i instanceof Ds&&a instanceof pt&&!a.w()&&i.diagram.animationManager.Zd.contains("Expand SubGraph")&&a.assign(l.position),a=new yo(h,l,r),s.add(i,a);(s=h[e])instanceof pt&&!s.w()&&s.assign(t.o),r&&0===e.indexOf("position:")&&i instanceof ku?a.Ku.location=co(i.location):r&&(a.Ku[e]=co(n))}function co(t){return t instanceof pt||t instanceof At?t.copy():t}function fo(t,i){if(!t.Xk||i){var e=t.Yd;if(!1!==t.bc){var n=+new Date,o=n>t.cn?t.Gd:n-t.Qd;i&&((o=t.gw)<t.Gd?(t.Qd=+new Date-o,t.cn=t.Qd+t.Gd):o=t.Gd),Zn(e),po(t,o),$o(t.H,!0),_n(e),n>t.cn&&(t.ho&&!t.Wk?(t.Qd=+new Date,t.cn=t.Qd+t.Gd,t.Wk=!0):t.Ml(!1))}}}function po(t,i){for(var e=t.Gd,n=t.vc.iterator,o=t.Wk;n.next();){var r=n.key;if(!(r instanceof Ds&&null===r.diagram)){var s=n.value,a=o?s.end:s.start;s=o?s.start:s.end;var h,l=no;for(h in s)"position"===h&&(s["position:placeholder"]||s["position:nodeCollapse"])||null===l.get(h)||l.get(h)(r,a[h],s[h],t.Lp,i,e,t)}}}function go(t,i,e,n){return 1>(t/=n/2)?e/2*t*t+i:-e/2*(--t*(t-2)-1)+i}function mo(t,i,e,n){return t===n?i+e:e*(1-Math.pow(2,-10*t/n))+i}function yo(t,i,e){this.start=t,this.end=i,this.Ku={},this.Hu=e,this.nv=!1}function vo(t,i,e){this.xd=null,this.rf=t,this.so=e||wo,this.uk=null,void 0!==i&&(this.uk=i,void 0===e&&(this.so=ko))}qn.className="AnimationManager",qn.defineAnimationEffect=function(t,i){oo||(eo(),oo=!0),no.add(t,i)},qn.Default=ro,qn.AnimateLocations=so,qn.None=ao,ho.prototype.suspend=function(){this.Xk=!0},ho.prototype.advanceTo=function(t,i){i&&(this.Xk=!1),this.ho&&t>=this.Gd&&(this.Wk=!0,t-=this.Gd),this.gw=t,fo(this,!0),Zn(this.Yd),$o(this.H),_n(this.Yd),this.H.redraw()},(i=ho.prototype).start=function(){if(0===this.vc.count||this.bc)return this;for(var t=this.H,i=this.vc.iterator;i.next();){var e=i.key;null===t&&(e instanceof To?t=e:e instanceof Ds&&(t=e.diagram))}return null===t?this:(this.H=t,this.Yd=t.animationManager,!1===(i=this.Yd).isEnabled||(this.Gd=isNaN(this.Dg)?i.duration:this.Dg,this.Lp=this.ot,i.Ok&&i.Pk===ro&&this===i.defaultAnimation&&(this.Lp=mo,this.Gd=isNaN(this.Dg)?600===i.duration?900:i.duration:this.Dg),this.dw=t.scrollMode,this.isViewportUnconstrained&&(t.sj=Qr),Zn(i),this.yl.each((function(i){i.data=null,t.add(i)})),_n(i),this.bc=!0,this.Qd=+new Date,this.cn=this.Qd+this.Gd,function(t,i){function e(){if(0<o.Sr.count&&(n.addAll(o.Sr),o.Sr.clear(),o.bc=!0),!1!==o.bc&&0!==n.count){o.pu.addAll(n);for(var t=o.pu.iterator;t.next();){var i=t.value;if(!1!==i.bc){t:if(0<i.yl.count)var r=!0;else{for(r=i.vc.iterator;r.next();){var s=r.key;if(s instanceof Ds&&null!==s.diagram||s instanceof To){r=!0;break t}}r=!1}r?fo(i,!1):i.Xk=!0}}o.pu.clear(),!1!==o.bc&&(Zn(o),$o(o.H),_n(o)),m.requestAnimationFrame(e)}}var n=t.Ei,o=t;t.bc?t.Sr.add(i):(t.bc=!0,n.add(i),m.requestAnimationFrame((function(){e()})))}(i,this)),this)},i.Iy=function(t,i){return t.Zc()?(this.yl.add(t),this.H=i,this):this},i.add=function(t,i,e,n,o){if("position"===i&&e.Xa(n))return this;if(null===this.H&&(t instanceof To?this.H=t:t instanceof Ds&&null!==t.diagram&&(this.H=t.diagram)),t instanceof ku){if(!t.isAnimated)return this;"position"===i&&(i="position:part")}return uo(this,t,i,e,n,o),this},i.fv=function(t){return!!this.bc&&(null!==(t=this.vc.I(t))&&t.nv)},i.Xu=function(t){return!!this.bc&&(null!==(t=this.vc.I(t))&&(t.start.position||t.start.location))},i.stop=function(){return this.bc?(this.Ml(!0),this):this},i.Ml=function(t){if(null!==this.vu&&this.vu.jo.remove(this.Nw),this.bc){var i=this.H,e=this.Yd;this.Xk=this.bc=e.Ok=!1,Zn(e);for(var n=this.vc,o=this.yl.iterator;o.next();)i.remove(o.value);for(o=this.Ut.iterator;o.next();)o.value.v();o=this.ho,n=n.iterator;for(var r=no;n.next();){var s,a=n.key,h=n.value,l=o?h.end:h.start,u=o?h.start:h.end,c=h.Ku;for(s in u)if(null!==r.get(s)){var f=s;!h.Hu||"position:nodeCollapse"!==f&&"position:placeholder"!==f||(f="position"),r.get(f)(a,l[s],void 0!==c[s]?c[s]:h.Hu?l[s]:u[s],this.Lp,this.Gd,this.Gd,this)}h.Hu&&void 0!==c.location&&a instanceof ku&&(a.location=c.location),h.nv&&a instanceof ku&&a.Zb(!1)}if(i.As.clear(),Bo(i,!1),i.Ya(),i.N(),$o(i,!0),e.defaultAnimation===this){for(s=e.pr.iterator;s.next();)null!==(o=s.value).Tg&&(o.points=o.Tg,o.Tg=null);e.pr.clear()}$o(i,!0),this.isViewportUnconstrained&&(i.scrollMode=this.dw),_n(e),this.au++,!t&&this.cu>this.au?(this.Wk=!1,this.start()):(this.dn&&this.dn(this),lo(this,null),e.Ml(this),i.$b())}},i.Cj=function(t,i){var e=i.actualBounds,n=null;if(i instanceof gc&&(n=i.placeholder),null!==n?(e=n.ga(ti),n=n.padding,e.x+=n.left,e.y+=n.top,this.add(t,"position",e,t.position,!1)):this.add(t,"position",new pt(e.x+e.width/2,e.y+e.height/2),t.position,!1),this.add(t,"scale",.01,t.scale,!1),t instanceof gc)for(t=t.memberParts;t.next();)(n=t.value)instanceof Ju&&this.Cj(n,i)},i.Aj=function(t,i){if(t.isVisible()){var e=null;if(i instanceof gc&&(e=i.placeholder),null!==e){var n=e.ga(ti);e=e.padding,n.x+=e.left,n.y+=e.top,this.add(t,"position:placeholder",t.position,n,!0)}else this.add(t,"position:nodeCollapse",t.position,i,!0);if(this.add(t,"scale",t.scale,.01,!0),(n=this.vc).contains(t)&&(n.I(t).nv=!0),t instanceof gc)for(t=t.memberParts;t.next();)(n=t.value)instanceof Ju&&this.Aj(n,i)}},i.Ez=function(t){var i=this.Tt.get(t);return null===i&&(i={},this.Tt.add(t,i)),i},f.Object.defineProperties(ho.prototype,{duration:{get:function(){return this.Dg},set:function(t){1>t&&M(t,">= 1",ho,"duration"),this.Dg=t}},reversible:{get:function(){return this.ho},set:function(t){this.ho=t}},runCount:{get:function(){return this.cu},set:function(t){0<t?this.cu=t:w("Animation.runCount value must be a positive integer.")}},finished:{get:function(){return this.dn},set:function(t){this.dn!==t&&(this.dn=t)}},easing:{get:function(){return this.ot},set:function(t){this.ot=t}},isViewportUnconstrained:{get:function(){return this.j},set:function(t){this.j=t}},isAnimating:{get:function(){return this.bc}}}),ho.prototype.getTemporaryState=ho.prototype.Ez,ho.prototype.stop=ho.prototype.stop,ho.prototype.add=ho.prototype.add,ho.prototype.addTemporaryPart=ho.prototype.Iy,ho.className="Animation",ho.EaseLinear=function(t,i,e,n){return e*t/n+i},ho.EaseInOutQuad=go,ho.EaseInQuad=function(t,i,e,n){return e*(t/=n)*t+i},ho.EaseOutQuad=function(t,i,e,n){return-e*(t/=n)*(t-2)+i},ho.EaseInExpo=function(t,i,e,n){return 0===t?i:e*Math.pow(2,10*(t/n-1))+i},ho.EaseOutExpo=mo,yo.className="AnimationState",vo.prototype.copy=function(){var t=new vo(this.rf);t.so=this.so;var i=this.uk;if(null!==i){var e={};void 0!==i.duration&&(e.duration=i.duration),void 0!==i.finished&&(e.finished=i.finished),void 0!==i.easing&&(e.easing=i.easing),t.uk=e}return t},f.Object.defineProperties(vo.prototype,{propertyName:{get:function(){return this.rf},set:function(t){this.rf=t}},animationSettings:{get:function(){return this.uk},set:function(t){this.uk=t}},startCondition:{get:function(){return this.so},set:function(t){this.so=t}}});var xo,bo,wo=new V(vo,"Default",1),ko=new V(vo,"Immediate",2),Mo=new V(vo,"Bundled",3);function So(t){Q(this),this.H=null,this.Pa=new Z,this.xa="",this.pb=1,this.o=!1,this.j=this.Uh=this.u=this.Oi=this.Ni=this.Mi=this.Li=this.Ji=this.Ki=this.Ii=this.Qi=this.Hi=this.Pi=this.Gi=this.Fi=!0,this.Zq=[],t&&Object.assign(this,t)}function Po(t,i){var e=1;return 1!==t.pb&&(e=i.globalAlpha,i.globalAlpha=e*t.pb),e}function No(t,i,e,n,o){if(t.visible&&0!==t.pb&&(o||!t.isTemporary)){var r=(o=t.Pa.s).length;if(0!==r){var s=Po(t,i),a=t.Zq;a.length=0;for(var h=e.scale,l=Bt.alloc(),u=0;u<r;u++){var c=o[u];n.contains(c)&&t.Oj(i,c,e,a,h,l,!1)}Bt.free(l),i.globalAlpha=s}}}function Co(t,i,e){if(i=function(t,i,e){var n=e.zOrder;if(isNaN(n))return i;t=t.Pa;var o=t.count;if(1>=o)return i;if(0>i&&(i=t.indexOf(e)),0>i)return-1;for(var r=i-1,s=NaN;0<=r&&(s=t.M(r).zOrder,isNaN(s));)r--;for(var a=i+1,h=NaN;a<o&&(h=t.M(a).zOrder,isNaN(h));)a++;if(!isNaN(s)&&s>n)for(;;){if(-1===r||s<=n){if(++r===i)break;return t.mb(i),t.Gb(r,e),r}for(s=NaN;0<=--r&&(s=t.M(r).zOrder,isNaN(s)););}else if(!isNaN(h)&&h<n)for(;;){if(a===o||h>=n){if(--a===i)break;return t.mb(i),t.Gb(a,e),a}for(h=NaN;++a<o&&(h=t.M(a).zOrder,isNaN(h)););}return i}(t,i,e),e instanceof gc&&null!==e&&isNaN(e.zOrder)){if(0!==e.memberParts.count){for(var n=-1,o=t.Pa.s,r=o.length,s=0;s<r;s++){var a=o[s];if(a===e&&(i=s,0<=n))break;if(0>n&&a.containingGroup===e&&(n=s,0<=i))break}!(0>n)&&n<i&&((o=t.Pa).mb(i),o.Gb(n,e))}null!==(i=e.containingGroup)&&Co(t,-1,i)}null!==e.svg&&e.svg.remove()}function To(t,i){if(as||(function(){if(Vr){var t=m.document.createElement("canvas"),i=t.getContext("2d"),e=I("7ca11abfd022028846");i[e]=I("398c3597c01238");for(var n=["5da73c80a36455d7038e4972187c3cae51fd22",y.Dx+"4ae6247590da4bb21c324ba3a84e385776",Yi.xF+"fb236cdfda5de14c134ba1a95a2d4c7cc6f93c1387",Xi.za],o=1;5>o;o++)i[I("7ca11abfd7330390")](I(n[o-1]),10,15*o);for(i[e]=I("39f046ebb36e4b"),e=1;5>e;e++)i[I("7ca11abfd7330390")](I(n[e-1]),10,15*e);4===n.length&&"5"===n[0][0]&&"7"===n[3][0]||(Yi.prototype.Cd=Yi.prototype.Eu),ss=t}}(),as=!0),Q(this),bo=this,this.vb=!0,this.Ka=null,this.ya=this.Aa=0,this.ta=null,Vr){var e=this,n=function(){e.removeEventListener(m.document,"DOMContentLoaded",n,!1),e.setRTL()};null!==m.document.body?this.setRTL():e.addEventListener(m.document,"DOMContentLoaded",n,!1)}this.ol=null,Rr.add("Model",Qf);var o=this;return this.Hb=function(t){var i=o.partManager;if(t.model===i.diagram.model&&i.diagram.aa){i.diagram.aa=!1;try{var e=t.change;""===t.modelChange&&e===fe&&i.updateDataBindings(t.object,t.propertyName)}finally{i.diagram.aa=!0}}},this.Oc=function(t){o.partManager.doModelChanged(t)},this.hu=this.ku=null,Lo(this),this.model=Od(),this.Wg=!0,Io(this),this.layout=new Ff,this.Wg=!1,this.ck=this.ek=this.fk=this.dk=this.ui=this.aA=this.$j=this.Ov=null,this.hk=function(){},this.preventDefault=null,this.rn=!1,this.Yf=new hs,void 0!==t&&("string"==typeof t||m.Element&&t instanceof Element?Fo(this,t):i=t),this.vb=!1,i&&this.nm(i),this}function Lo(t){t.Yd=new qn,t.Yd.Xe(t),t.Db=17,t.Gw=!1,t.tn=!1,t.bu="default",t.Wa=new Z,t.pj=new dt,t.nl="default",t.Tx(),t.Sx(),t.pb=1,t.pa=new pt(NaN,NaN).freeze(),t.du=new pt(NaN,NaN),t.Ca=1,t.Pp=1,t.zt=new pt(NaN,NaN).freeze(),t.At=NaN,t.Ot=1e-4,t.Mt=100,t.Ab=new Yi,t.zu=new pt(NaN,NaN).freeze(),t.ut=new Bt(NaN,NaN,NaN,NaN).freeze(),t.rj=new Wt(0,0,0,0).freeze(),t.sj=$r,t.nu=!1,t.Zt=null,t.fu=null,t.yh=Xr,t.zk=Si,t.Fg=Xr,t.pq=Si,t.yt=ti,t.Bt=ti,t.Fc=!0,t.pn=!1,t.De=new $,t.Eh=new dt,t.Xm=!0,t.vp=250,t.vk=-1,t.xp=new Wt(16,16,16,16).freeze(),t.kg=!1,t.Jk=!1,t.fn=!0,t.bq=new he,t.bq.diagram=t,t.Qg=new he,t.Qg.diagram=t,t.cj=new he,t.cj.diagram=t,t.zg=null,t.pf=null,t.qu=!1,function(t){function i(t){var i=t.toLowerCase(),o=new Z;e.add(t,o),e.add(i,o),n.add(t,t),n.add(i,t)}var e=new dt,n=new dt;i("InitialAnimationStarting"),i("AnimationStarting"),i("AnimationFinished"),i("BackgroundSingleClicked"),i("BackgroundDoubleClicked"),i("BackgroundContextClicked"),i("ClipboardChanged"),i("ClipboardPasted"),i("DocumentBoundsChanged"),i("ExternalObjectsDropped"),i("GainedFocus"),i("InitialLayoutCompleted"),i("LayoutCompleted"),i("LinkDrawn"),i("LinkRelinked"),i("LinkReshaped"),i("LostFocus"),i("Modified"),i("ObjectSingleClicked"),i("ObjectDoubleClicked"),i("ObjectContextClicked"),i("PartCreated"),i("PartResized"),i("PartRotated"),i("SelectionMoved"),i("SelectionCopied"),i("SelectionDeleting"),i("SelectionDeleted"),i("SelectionGrouped"),i("SelectionUngrouped"),i("ChangingSelection"),i("ChangedSelection"),i("SubGraphCollapsed"),i("SubGraphExpanded"),i("TextEdited"),i("TreeCollapsed"),i("TreeExpanded"),i("ViewportBoundsChanged"),i("InvalidateDraw"),t.iw=e,t.hw=n}(t),t.ai=new $,t.Ht=!0,t.uu=ts,t.pw=!1,t.wu=Hr,t.it="auto",t.Op="auto",t.zh=null,t.Fh=null,t.Bh=null,t.Qh=null,t.Oh=null,t.Nh=null,t.Qt=null,t.Lh=null,t.xt=!1,t.Mh=null,t.Ph=null,t.$h=null,t.Ch=null,t.Rt=!1,t.Yt={},t.oj=[null,null],t.Wg=!1,t.Iw=!1,t.ou=!1,t.lt=!1,t.rw=!0,t.ld=!1,t.$i=!1,t.Tw=!0,t.Ce=-2,t.Og=new dt,t.Xn=new Z,t.Gg=!1,t.Jd=!0,t.Us=!0,t.Fi=!0,t.Gi=!0,t.Vs=!1,t.Ws=!0,t.Pi=!0,t.Hi=!0,t.Qi=!0,t.Ys=!0,t.Ii=!0,t.Ki=!0,t.Ji=!0,t.Li=!0,t.Mi=!0,t.Ni=!0,t.Oi=!0,t.Zs=!0,t.at=!0,t.qw=!1,t.Vk=!1,t.mn=!0,t.nn=!0,t.Xs=!0,t.$s=!0,t.iu=16,t.mu=16,t.qr=!1,t.gu=!1,t.lu=0,t.ju=0,t.yb=new Wt(5).freeze(),t.Hw=(new $).freeze(),t.Nt=999999999,t.nw=(new $).freeze(),t.Zi=!0,t.Ee=!0,t.vd=!0,t.Be=!1,t.gf=!1,t.xh=!0,t.hf=!1,t.sy=new $,t.ow=new $,t.Xh=null,t.aw=new At(8,8),t.bw=999,t.Bw=1,t.Jw=0,t.fc={scale:1,position:new pt,bounds:new Bt,Py:new At,bA:new At,Oz:!1},t.fc.canvasSize=t.fc.Py,t.fc.newCanvasSize=t.fc.bA,t.fc.isScroll=!1,t.Rw=new Bt(NaN,NaN,NaN,NaN).freeze(),t.wo=new At(NaN,NaN).freeze(),t.Sp=new Bt(NaN,NaN,NaN,NaN).freeze(),t.It=!1,t.Lg=new dt;var i=new Ju,e=new Nl;e.bind(new Gd("text","",D)),i.add(e),t.ny=i,t.Lg.add("",i),i=new Ju,(e=new Nl).stroke="brown",e.bind(new Gd("text","",D)),i.add(e),t.Lg.add("Comment",i),(i=new Ju).selectable=!1,i.avoidable=!1,(e=new pl).figure="Ellipse",e.fill="black",e.stroke=null,e.desiredSize=new At(3,3).ja(),i.add(e),t.Lg.add("LinkLabel",i),t.Yi=new dt,(i=new gc).selectionObjectName="GROUPPANEL",i.type=Ch.Vertical,(e=new Nl).font="bold 12pt sans-serif",e.bind(new Gd("text","",D)),i.add(e),(e=new Ch(Ch.Auto)).name="GROUPPANEL";var n=new pl;n.figure="Rectangle",n.fill="rgba(128,128,128,0.2)",n.stroke="black",e.add(n),(n=new bc).padding=new Wt(5,5,5,5).ja(),e.add(n),i.add(e),t.ly=i,t.Yi.add("",i),t.Kh=new dt,i=new wc,(e=new pl).isPanelMain=!0,i.add(e),(e=new pl).toArrow="Standard",e.fill="black",e.stroke=null,e.strokeWidth=0,i.add(e),t.my=i,t.Kh.add("",i),i=new wc,(e=new pl).isPanelMain=!0,e.stroke="brown",i.add(e),t.Kh.add("Comment",i),(i=new Ku).type=Ch.Auto,(e=new pl).fill=null,e.stroke="dodgerblue",e.strokeWidth=3,i.add(e),(e=new bc).margin=new Wt(1.5,1.5,1.5,1.5).ja(),i.add(e),t.St=i,t.wt=i,(i=new Ku).type=Ch.Link,(e=new pl).isPanelMain=!0,e.fill=null,e.stroke="dodgerblue",e.strokeWidth=3,i.add(e),t.Kt=i,t.fe=null,t.mq=!1,t.Ck=null,t.partManager=new Qf,t.toolManager=new xe,t.toolManager.initializeStandardTools(),t.defaultTool=t.toolManager,t.currentTool=t.defaultTool,t.nt=null,t.Wm=new Ms,t.Vt=null,t.Wt=null,t.Mr=!1,t.commandHandler=jo(),t.eq=null,t.fq=st,t.Pw=!1,t.Mb=1,t.Yh=null,t.Oq=1,t.Sq=0,t.zw=[0,0,0,0,0],t.Tq=0,t.yq=1,t.tw=0,t.uw=new pt,t.zy=500,t.wp=new pt,t.wq=!1}function Ao(t,i){t.animationManager.Cc(!0),t.Hw=(new $).freeze(),t.nw=(new $).freeze();var e=t.skipsUndoManager,n=null!==t.cc&&void 0!==t.cc;n&&(t.skipsUndoManager=!0);var o=null;null!==t.fe&&(null!==(o=t.fe.part)&&t.remove(o));var r=[],s=t.Wa.length;if(i){for(i=0;i<s;i++)for(var a=t.Wa.s[i].parts;a.next();){var h=a.value;h!==o&&null===h.data&&r.push(h)}for(i=0;i<r.length;i++)t.remove(r[i])}for(i=0;i<s;i++)t.Wa.s[i].clear();return t.partManager.clear(),t.De.clear(),t.Eh.clear(),t.ai.clear(),t.Ck=null,t.Xn.clear(),ru(),t.Og.clear(),E=[],null!==o&&(t.add(o),t.partManager.parts.remove(o)),n&&(t.skipsUndoManager=e),r}function jo(){return null}function Fo(t,i){if(Vr){if(null!=i||w("Diagram setup requires an argument DIV."),null!==t.Ka&&w("Diagram has already completed setup."),"string"==typeof i?t.Ka=m.document.getElementById(i):i instanceof HTMLDivElement?t.Ka=i:w("No DIV or DIV id supplied: "+i),null===t.Ka&&w("Invalid DIV id; could not get element with id: "+i),void 0!==t.Ka.H&&w("Invalid div id; div already has a Diagram associated with it."),!t.ol&&m.ResizeObserver){var e=v((function(){t.$b()}),250);t.ol=new m.ResizeObserver((function(){e()})),t.ol.observe(t.Ka)}"static"===m.getComputedStyle(t.Ka,null).position&&(t.Ka.style.position="relative");var n="rgba(2"+(i=5)+"5, 255, 255, 0)";i--,t.Ka.style["-webkit-tap-highlight-color"]=n,t.Ka.innerHTML="",t.Ka.H=t,t.Ka.goDiagram=t,t.Ka.go=m.go;var o=new Fa(t);if(void 0!==o.style&&(o.style.position="absolute",o.style.top="0px",o.style.left="0px","rtl"===m.getComputedStyle(t.Ka,null).getPropertyValue("direction")&&(t.tn=!0),o.style.zIndex="2",o.style.userSelect="none",o.style.MozUserSelect="none",o.style.touchAction="none",o.style.letterSpacing="normal !important",o.style.wordSpacing="normal !important"),t.ta=o,t.ib=o.context,n=t.ib,t.Mb=t.computePixelRatio(),t.viewSize.w()||(t.Aa=t.Ka.clientWidth||1,t.ya=t.Ka.clientHeight||1),rr(t,t.Aa,t.ya),t.Ka.insertBefore(o.Oa,t.Ka.firstChild),(o=new Fa(null)).width=1,o.height=1,t.jw=o,t.oy=o.context,Vr){o=b("div");var r=b("div");o.style.position="absolute",o.style.overflow="auto",o.style.width=t.Aa+"px",o.style.height=t.ya+"px",o.style.zIndex="1",r.style.position="absolute",r.style.width="1px",r.style.height="1px",t.Ka.appendChild(o),o.appendChild(r),o.onscroll=Ro,o.addEventListener("pointerdown",Eo),o.H=t,o.uy=!0,o.vy=!0,t.ku=o,t.hu=r}t.hk=v((function(){t.Yh=null,t.N()}),300),t.Ov=v((function(){Oo(t)}),250),t.preventDefault=function(t){return t.preventDefault(),!1},t.$j=function(i){if(t.isEnabled){var e=qo(t,i,!0);e.bubbles=!0;var n=0,o=0;e.delta=0,void 0!==i.deltaX?(0!==i.deltaX&&(n=0<i.deltaX?1:-1),0!==i.deltaY&&(o=0<i.deltaY?1:-1),e.delta=Math.abs(i.deltaX)>Math.abs(i.deltaY)?-n:-o):void 0!==i.wheelDeltaX?(0!==i.wheelDeltaX&&(n=0<i.wheelDeltaX?-1:1),0!==i.wheelDeltaY&&(o=0<i.wheelDeltaY?-1:1),e.delta=Math.abs(i.wheelDeltaX)>Math.abs(i.wheelDeltaY)?-n:-o):void 0!==i.wheelDelta&&0!==i.wheelDelta&&(e.delta=0<i.wheelDelta?1:-1),t.doMouseWheel(),Wo(e,i)}},t.aA=function(i){t.isEnabled&&(t.Vk=!1,qo(t,i,!0),(i=t.currentTool).cancelWaitAfter(),i.standardMouseOver())},t.ui=function(i){if(t.isEnabled){t.Vk=!0;var e=t.Yt;void 0===e[i.pointerId]&&(e[i.pointerId]=i);var n=!1;if(null===(e=t.oj)[0]||e[0].pointerId!==i.pointerId&&e[0].pointerType===i.pointerType)if(null!==e[1]&&e[1].pointerId===i.pointerId)e[1]=i,n=!0;else if(null===e[0])e[0]=i;else{if(null!==e[1])return void i.preventDefault();e[1]=i,n=!0}else e[0]=i;(e="touch"===i.pointerType||"pen"===i.pointerType)&&(t.qu=!1,t.wq=!0);var o=n;n=Ko(t,i,!0,!1,!0,o),Jo(t,i,n),n.targetDiagram=Ho(i,i.target),n.targetObject=null,o||n.clone(t.bq),o=t.uw,e=e?25:10,i.timeStamp-t.tw<t.zy&&!(Math.abs(o.x-i.screenX)>e||Math.abs(o.y-i.screenY)>e)?t.yq++:t.yq=1,n.clickCount=t.yq,t.tw=i.timeStamp,t.uw.sg(i.screenX,i.screenY),t.doMouseDown(),1===i.button?i.preventDefault():Wo(n,i)}},t.dk=function(i){if(t.isEnabled){t.Vk=!0;var e=t.oj;if(null===e[0]||e[0].pointerId!==i.pointerId&&e[0].pointerType===i.pointerType){if(null!==e[1]&&e[1].pointerId===i.pointerId)return void(e[1]=i);if(null!==e[0])return;e[0]=i}else e[0]=i;if(e[0].pointerId===i.pointerId){e=Ko(t,i,!1,!1,!1,null!==e[1]);var n=m.document.elementFromPoint(i.clientX,i.clientY)||null;null!==n&&void 0!==n.shadowRoot&&null!==n.shadowRoot&&(n=n.shadowRoot.elementFromPoint(i.clientX,i.clientY));var o=t,r=i;n&&n.H&&(r=i,o=n.H),e.targetDiagram=o,Jo(t,r,e),e.targetObject=null,t.doMouseMove(),Wo(e,i)}}},t.fk=function(i){if(t.isEnabled){t.Vk=!0;var e="touch"===i.pointerType||"pen"===i.pointerType,n=t.Yt;if(e&&t.qu)delete n[i.pointerId],i.preventDefault();else if(null===(n=t.oj)[0]||n[0].pointerId!==i.pointerId&&n[0].pointerType===i.pointerType)null!==n[1]&&n[1].pointerId===i.pointerId&&(n[1]=null);else{n[0]=null,n=Ko(t,i,!1,!0,!0,!1);var o=m.document.elementFromPoint(i.clientX,i.clientY)||null;null!==o&&void 0!==o.shadowRoot&&null!==o.shadowRoot&&(o=o.shadowRoot.elementFromPoint(i.clientX,i.clientY)),null!==o&&o.H instanceof To&&o.H!==t&&Jo(o.H,i,n),null===o&&(o=i.target),Jo(t,i,n),n.clickCount=t.yq,n.targetDiagram=Ho(i,o),n.targetObject=null,t.doMouseUp(),Wo(n,i),e&&(t.wq=!1)}}},t.ek=function(i){if(t.isEnabled){t.Vk=!1;var e=t.Yt;e[i.pointerId]&&delete e[i.pointerId],null!==(e=t.oj)[0]&&e[0].pointerId===i.pointerId&&(e[0]=null),null!==e[1]&&e[1].pointerId===i.pointerId&&(e[1]=null),"touch"!==i.pointerType&&"pen"!==i.pointerType&&((i=t.currentTool).cancelWaitAfter(),i.standardMouseOver())}},t.ck=function(i){var e=t.oj;null!==e[0]&&e[0].pointerId===i.pointerId?(e[0]=null,t.wq=!1):null!==e[1]&&e[1].pointerId===i.pointerId&&(e[1]=null)},t.Vp=n.Z["d"+ws[1]+ws[2]+"wI"+rs.slice(1,5)]["b"+Ud.slice(1,i)](n.Z,ss,i,i),n.Vc(!0),function(t){var i=t.ta.Oa;i instanceof HTMLCanvasElement||(i=t.div),t.addEventListener(i,"pointerdown",t.ui,!1),t.addEventListener(i,"pointermove",t.dk,!1),t.addEventListener(i,"pointerup",t.fk,!1),t.addEventListener(i,"pointerout",t.ek,!1),t.addEventListener(i,"pointercancel",t.ck,!1),t.addEventListener(i,"pointerenter",t.bz,!1),t.addEventListener(i,"pointerleave",t.cz,!1),t.addEventListener(i,"wheel",t.$j,!1),t.addEventListener(i,"keydown",t.Qz,!1),t.addEventListener(i,"keyup",t.Rz,!1),t.addEventListener(i,"blur",t.Ny,!1),t.addEventListener(i,"focus",t.Oy,!1),t.addEventListener(i,"selectstart",(function(t){return t.preventDefault(),!1}),!1),t.addEventListener(i,"contextmenu",(function(t){return t.preventDefault(),!1}),!1),t.addEventListener(m,"resize",t.Ov,!1)}(t),"svg"===t.nl&&(i=t.pj.get("svg"),t.Ka.appendChild(i.Oa),t.ib=i.context)}}function Do(t){30<t.Sq&&(t.Yh=1)}function Bo(t,i){null!==t.Yh&&(t.Yh=null,i&&t.hk(),U&&U.nx||(t.Sq=0,t.zw=[0,0,0,0,0],t.Tq=0))}function Oo(t){if(null!==t.ta){var i=t.Ka;if(null!==i&&0!==i.clientWidth&&0!==i.clientHeight){t.Gw||t.setScrollWidth();var e=t.gf?t.Db:0,n=t.Be?t.Db:0,o=t.Mb;t.Mb=t.computePixelRatio(),t.Mb!==o&&(t.pn=!0,t.$b()),i.clientWidth===t.Aa+e&&i.clientHeight===t.ya+n||(t.Ee=!0,t.Fc=!0,null!==(i=t.layout)&&i.isViewportSized&&t.autoScale===Xr&&(t.Jk=!0,i.C()),t.ld||t.$b())}}}function Io(t){var i=new So;i.name="Background",t.Al(i),(i=new So).name="",t.Al(i),(i=new So).name="Foreground",t.Al(i),(i=new So).name="Adornment",i.isTemporary=!0,i.isInDocumentBounds=!1,t.Al(i),(i=new So).name="Tool",i.isTemporary=!0,i.isInDocumentBounds=!0,t.Al(i),(i=new So).name="Grid",i.allowSelect=!1,i.pickable=!1,i.isTemporary=!0,i.isInDocumentBounds=!1,t.Ww(i,t.Qj("Background"))}function zo(t){var i=new Ch(Ch.Grid);i.name="GRID";var e=new pl;return e.figure="LineH",e.stroke="lightgray",e.strokeWidth=.5,e.interval=1,i.add(e),(e=new pl).figure="LineH",e.stroke="gray",e.strokeWidth=.5,e.interval=5,i.add(e),(e=new pl).figure="LineH",e.stroke="gray",e.strokeWidth=1,e.interval=10,i.add(e),(e=new pl).figure="LineV",e.stroke="lightgray",e.strokeWidth=.5,e.interval=1,i.add(e),(e=new pl).figure="LineV",e.stroke="gray",e.strokeWidth=.5,e.interval=5,i.add(e),(e=new pl).figure="LineV",e.stroke="gray",e.strokeWidth=1,e.interval=10,i.add(e),(e=new ku).add(i),e.layerName="Grid",e.zOrder=0,e.isInDocumentBounds=!1,e.isAnimated=!1,e.pickable=!1,e.locationObjectName="GRID",t.add(e),t.partManager.parts.remove(e),i.visible=!1,i}function Ro(){this.H.gu?this.H.gu=!1:this.H.isEnabled?this.H.kx(this):sr(this.H)}function Eo(t){this.H.isEnabled?(this.H.lu=t.target.scrollTop,this.H.ju=t.target.scrollLeft):sr(this.H)}function Vo(t,i){if(t.fixedBounds.w())return i.assign(t.fixedBounds),i.Co(t.yb),i;for(var e=!0,n=t.Wa.s,o=n.length,r=0;r<o;r++){var s=n[r];if(s.visible&&s.isInDocumentBounds)for(var a=(s=s.Pa.s).length,h=0;h<a;h++){var l=s[h];l.isInDocumentBounds&&l.isVisible()&&((l=l.actualBounds).w()&&(e?(e=!1,i.assign(l)):i.ed(l)))}}return e&&i.h(0,0,0,0),i.Co(t.yb),i}function Yo(t,i){if((i||t.hf)&&!t.vb&&null!==t.ta&&t.documentBounds.w()){if(t.vb=!0,i){var e=t.initialPosition;if(e.w())return t.vb=!1,void(t.position=e);(e=pt.alloc()).xi(t.documentBounds,t.initialDocumentSpot);var n=t.viewportBounds;n=Bt.allocAt(0,0,n.width,n.height);var o=pt.alloc();o.xi(n,t.initialViewportSpot),o.h(e.x-o.x,e.y-o.y),t.position=o,Bt.free(n),pt.free(o),pt.free(e)}e=t.yh,i&&t.Fg!==Xr&&(e=t.Fg);var r=e!==Xr?Go(t,e):t.scale;e=t.pa.x,n=t.pa.y,o=t.Aa/r;var s=t.ya/r,a=t.zk,h=t.pq;i&&!a.sb()&&(h.sb()||h.Xb())&&(a=h.Xb()?oi:h),Xo(t,t.documentBounds,o,s,a,i),i=t.scale,t.scale=r,t.vb=!1,r=t.viewportBounds,Xi.B(r.x,e)&&Xi.B(r.y,n)&&Xi.B(r.width,o)&&Xi.B(r.height,s)||t.onViewportBoundsChanged(new Bt(e,n,o,s),r,i,!1)}}function Go(t,i){var e=t.Pp;if(null===t.ta)return e;t.Va();var n=t.documentBounds;if(!n.w())return e;var o=n.width;n=n.height;var r=t.Aa+(t.gf?t.Db:0),s=t.ya+(t.Be?t.Db:0),a=r/o,h=s/n;return i===Ur?((i=Math.min(h,a))>e&&(i=e),i<t.minScale&&(i=t.minScale),i>t.maxScale&&(i=t.maxScale),i):i===qr?((i=h>a?(s-t.Db)/n:(r-t.Db)/o)>e&&(i=e),i<t.minScale&&(i=t.minScale),i>t.maxScale&&(i=t.maxScale),i):t.scale}function Xo(t,i,e,n,o,r){var s=pt.allocAt(t.pa.x,t.pa.y),a=s.x,h=s.y;if(null!==t.eq){var l=pt.alloc();a=(l=t.eq.ga(ti,l)).x-t.fq.x/t.scale,h=l.y-t.fq.y/t.scale,o=Qt,pt.free(l)}(r||t.scrollMode===$r)&&(o.sb()&&(e>i.width&&(a=i.x+(o.x*i.width+o.offsetX)-(o.x*e-o.offsetX)),n>i.height&&(h=i.y+(o.y*i.height+o.offsetY)-(o.y*n-o.offsetY))),o=t.rj,r=e-i.width,e<i.width+o.left+o.right?(a=Math.min(a+e/2,i.right+Math.max(r,o.right)-e/2),a=Math.max(a,i.left-Math.max(r,o.left)+e/2),a-=e/2):a>i.left?a=i.left:a<i.right-e&&(a=i.right-e),e=n-i.height,n<i.height+o.top+o.bottom?(h=Math.min(h+n/2,i.bottom+Math.max(e,o.bottom)-n/2),h=Math.max(h,i.top-Math.max(e,o.top)+n/2),h-=n/2):h>i.top?h=i.top:h<i.bottom-n&&(h=i.bottom-n)),s.x=isFinite(a)?a:-t.yb.left,s.y=isFinite(h)?h:-t.yb.top,null!==t.positionComputation&&(i=t.positionComputation(t,s),s.x=i.x,s.y=i.y),$n(t.Yd,t.pa,s),t.pa.h(s.x,s.y),kr(t),pt.free(s)}function Uo(t,i,e,n){for(void 0===e&&(e=null),void 0===n&&(n=null),Qo(t),t=t.Wa.iteratorBackwards;t.next();){var o=t.value;if(o.visible&&!o.isTemporary&&null!==(o=o.ic(i,e,n)))return o}return null}function qo(t,i,e){var n=t.Qg;return t.Qg=t.cj,t.cj=n,n.diagram=t,n.event=i,e?Jo(t,i,n):(n.viewPoint=t.Qg.viewPoint,n.documentPoint=t.Qg.documentPoint),t=0,i.ctrlKey&&(t+=1),i.altKey&&(t+=2),i.shiftKey&&(t+=4),i.metaKey&&(t+=8),n.modifiers=t,n.button=i.button,void 0!==i.buttons&&(n.buttons=i.buttons),R&&0===i.button&&i.ctrlKey&&(n.button=2),n.down=!1,n.up=!1,n.clickCount=1,n.delta=0,n.handled=!1,n.bubbles=!1,n.timestamp=i.timeStamp,n.isMultiTouch=!1,n.targetDiagram=Ho(i,i.target),n.targetObject=null,n}function Ho(t,i){return null===i?null:(i=i.H)?i:((i=t.path)||"function"!=typeof t.composedPath||(i=t.composedPath()),i&&i[0]&&i[0].H?i[0].H:null)}function Ko(t,i,e,n,o,r){var s=t.Qg;return t.Qg=t.cj,t.cj=s,s.diagram=t,s.clickCount=1,t=s.delta=0,i.ctrlKey&&(t+=1),i.altKey&&(t+=2),i.shiftKey&&(t+=4),i.metaKey&&(t+=8),s.modifiers=t,s.event=i,s.timestamp=i.timeStamp,s.button=i.button,s.buttons=i.buttons,R&&0===i.button&&i.ctrlKey&&(s.button=2),s.down=e,s.up=n,s.handled=!1,s.bubbles=o,s.isMultiTouch=r,s}function Wo(t,i){return!!t.bubbles||(void 0!==i.stopPropagation&&i.stopPropagation(),!1!==i.cancelable&&i.preventDefault(),i.cancelBubble=!0,!1)}function Jo(t,i,e){var n=t.ta,o=t.Aa,r=t.ya,s=0,a=0;null!==n&&(n=n.getBoundingClientRect(),s=i.clientX-o/n.width*n.left,a=i.clientY-r/n.height*n.top),e.viewPoint.h(s,a),null!==t.Ab?(i=pt.allocAt(s,a),t.Ab.Cd(i),e.documentPoint.assign(i),pt.free(i)):e.documentPoint.h(s,a)}function Zo(t,i,e){if(null!==t.oj[0]){i=t.oj[i];var n=t.ta;null!==n&&(n=n.getBoundingClientRect(),e.h(i.clientX-t.Aa/n.width*n.left,i.clientY-t.ya/n.height*n.top))}}function _o(t,i,e){!t.Ee||t.vb||t.animationManager.defaultAnimation.isAnimating||sr(t)||(i&&Qo(t),e&&Yo(t,!1))}function $o(t,i){if(!t.ld&&(t.kg=!1,null!==t.Ka||t.wo.w())){t.ld=!0;var e=t.animationManager,n=t.Xn;if(!e.isAnimating&&0!==n.length){for(var o=n.s,r=o.length,s=0;s<r;s++){var a=o[s];ea(a,!1),a.v()}n.clear()}0<(n=t.ow).count&&(n.each((function(t){t.Nv()})),n.clear()),o=n=!1,e.defaultAnimation.isAnimating&&(o=!0,n=t.skipsUndoManager,t.skipsUndoManager=!0),e.zb||Oo(t),_o(t,!1,!0),null!==t.fe&&(t.fe.visible&&!t.mq&&(yr(t),t.mq=!0),!t.fe.visible&&t.mq&&(t.mq=!1)),Qo(t),r=!1,t.hf&&!t.xh||(t.hf?Nr(t,!t.Jk):(t.Ea("Initial Layout"),!1===e.isEnabled&&e.Cc(),Nr(t,!1)),r=!0),t.Jk=!1,Qo(t),t.ou||function(t){t.ld||Qo(t),t.Va()}(t),_o(t,!0,!1),s=!1,r?((e=Bt.alloc()).assign(t.viewportBounds),t.hf||(s=t.hf=!0,t.skipsUndoManager||(t.undoManager.isPendingClear=!0),t.undoManager.isPendingUnmodified=!0,function(t){if(t.Fg!==Xr)t.scale=Go(t,t.Fg);else if(t.yh!==Xr)t.scale=Go(t,t.yh);else{var i=t.initialScale;isFinite(i)&&0<i&&(t.scale=i)}Yo(t,!0),i=t.Wa.s,t.Fd(i,i.length,t,t.viewportBounds),t.R("InitialLayoutCompleted"),t.du.assign(t.pa),yr(t)}(t)),t.R("LayoutCompleted"),_o(t,!0,!1),Bt.free(e)):e.Ok&&e.Qw&&(t.Fg!==Xr?t.scale=Go(t,t.Fg):t.yh!==Xr?t.scale=Go(t,t.yh):(e=t.initialScale,isFinite(e)&&0<e&&(t.scale=e)),Yo(t,!0)),r&&s&&t.eb("Initial Layout"),Qo(t),i||t.gc(t.ib),o&&(t.skipsUndoManager=n),t.ld=!1}}function Qo(t){if(0!==t.De.count&&(t.ld||!t.animationManager.isTicking)){for(var i=0;23>i;i++){var e=t.De.iterator;if(null===e||0===t.De.count)break;t.De=new $,t.Nv(e,t.De)}t.nodes.each((function(t){t instanceof gc&&0!=(65536&t.U)!=!1&&(t.U=65536^t.U)}))}}function tr(t,i){for(var e=A(),n=A(),o=i.memberParts;o.next();){var r=o.value;r.isVisible()&&(r instanceof gc?(ia(r)||na(r)||Iu(r))&&tr(t,r):r instanceof wc?r.fromNode===i||r.toNode===i?n.push(r):e.push(r):(r.measure(1/0,1/0),r.arrange()))}for(t=e.length,o=0;o<t;o++)(r=e[o]).measure(1/0,1/0),r.arrange();for(j(e),i.measure(1/0,1/0),i.arrange(),t=n.length,i=0;i<t;i++)(e=n[i]).measure(1/0,1/0),e.arrange();j(n)}function ir(t,i,e,n,o,r,s,a,h,l){if(null!==t.Ka){null===t.ta&&w("No canvas specified"),void 0===s&&(s=null),void 0===a&&(a=null),void 0===h&&(h=!1),void 0===l&&(l=!1),or(t),t.ib.Vc(!0),t.vd=!0,t.$i=!0;var u=t.Ca;t.Ca=o;var c=t.Wa.s,f=c.length;try{var d=new Bt(r.x,r.y,n.width/o,n.height/o),p=d.copy();p.Co(e),yr(t,p),Qo(t),t.Fd(c,f,t,d),i.setTransform(1,0,0,1,0,0),i.clearRect(0,0,n.width,n.height),null!==a&&""!==a&&(i.fillStyle=a,i.ox(0,0,n.width,n.height));var g=t.Mb;i.scale(g,g);var m=Yi.alloc();m.reset(),m.translate(e.left,e.top),m.scale(o),0===r.x&&0===r.y||m.translate(-r.x,-r.y),i.setTransform(m.m11,m.m12,m.m21,m.m22,m.dx,m.dy),i.yc(),i instanceof va&&xa(i,m.m11,m.m12,m.m21,m.m22,m.dx,m.dy),Yi.free(m),er(t,i),i.globalAlpha=t.pb;var y=t.Qj("Grid");if(s){var v=new $,x=s.iterator;for(x.reset();x.next();){var b=x.value;b instanceof ku&&(l||b.layer!==y)&&(b.Gj(),v.add(b))}for(l=0;l<f;l++)No(c[l],i,t,v,h);v.each((function(t){return t.Gj()}))}else for(v=0;v<f;v++){var k=c[v];k===y?l&&k.gc(i,t,!0):k.gc(i,t,h)}t.$i=!1,t.Yf&&ls(t.Yf,t)&&t.Vp()}finally{t.Ca=u,t.ib.Vc(!0),t.vd=!0,t.Fd(c,f,t,t.viewportBounds),yr(t),t.ib instanceof va&&(t.ib.Nj.PA(),t.redraw())}}}function er(t,i){null!==(t=t.Rg)&&(void 0!==t.imageSmoothingEnabled&&i.Wx(!!t.imageSmoothingEnabled),null!=(t=t.defaultFont)&&(i.font=t))}function nr(t,i){var e,n=t instanceof Ch,o=t instanceof To;for(e in i){""===e&&w("Setting properties requires non-empty property names");var r=t,s=e;if(n||o){var a=e.indexOf(".");if(0<a){var h=e.substring(0,a);n?r=t.fb(h):null==(r=t[h])&&(r=t.toolManager[h]),P(r)?s=e.substr(a+1):w("Unable to find object named: "+h+" in "+t.toString()+" when trying to set property: "+e)}}if("_"!==s[0]&&!B(r,s)){if(o&&"ModelChanged"===s){t.Yw(i[s]);continue}if(o&&"Changed"===s){t.Pe(i[s]);continue}if(o&&B(t.toolManager,s))r=t.toolManager;else{if(o&&Tr(t,s)){t.Bj(s,i[s]);continue}if(t instanceof md&&"Changed"===s){t.Pe(i[s]);continue}w('Trying to set undefined property "'+s+'" on object: '+r.toString())}}r[s]=i[e],"_"===s[0]&&r instanceof Ds&&r.Vw(s)}}function or(t){!1!==t.pn&&(t.pn=!1,rr(t,t.Aa,t.ya))}function rr(t,i,e){kr(t);var n=t.Mb;t.ta.resize(i*n,e*n,i,e)&&(t.Fc=!0,t.ib.Vc(!0))}function sr(t){var i=t.ta;if(null===i||t.wo.w())return!0;var e=t.Aa,n=t.ya,o=t.Ka,r=!1,s=t.gf?t.Db:0,a=t.Be?t.Db:0,h=o.clientWidth||e+s,l=o.clientHeight||n+a,u=t.viewportBounds;o=u.x;var c=u.y,f=u.width,d=u.height;if(h===e+s&&l===n+a||(t.gf=!1,t.Be=!1,a=s=0,t.Aa=h,t.ya=l,r=t.pn=!0,kr(t)),!t.hf||!t.viewportBounds.w())return!0;var p=t.ku,g=t.hu;if(t.Ee=!1,!(r||t.gf||t.Be||t.mn||t.nn))return!0;var m=t.documentBounds,y=0,v=0,x=0,b=0,w=u.width,k=u.height,M=t.rj;t.contentAlignment.sb()?(m.width>w&&(y=M.left,v=M.right),m.height>k&&(x=M.top,b=M.bottom)):(y=M.left,v=M.right,x=M.top,b=M.bottom);var S=m.width+y+v,P=m.height+x+b,N=S>h/(M=t.scale),C=P>l/M;if(!(r||t.gf||t.Be||N||C))return!0;y=m.x-y,h=u.x,v=m.right+v,l=u.right+s,x=m.y-x;var T=u.y;m=m.bottom+b,u=u.bottom+a;var L="1px";if(b="1px",t.scrollMode===$r&&(N||C)&&(N&&t.hasHorizontalScrollbar&&t.allowHorizontalScroll&&(N=1,y+1<h&&(N=Math.max((h-y)*M+t.Aa,N)),v>l+1&&(N=Math.max((v-l)*M+t.Aa,N)),w+s+1<S&&(N=Math.max((S-w)*M+t.Aa,N)),L=N.toString()+"px"),C&&t.hasVerticalScrollbar&&t.allowVerticalScroll&&(N=1,x+1<T&&(N=Math.max((T-x)*M+t.ya,N)),m>u+1&&(N=Math.max((m-u)*M+t.ya,N)),k+a+1<P&&(N=Math.max((P-k)*M+t.ya,N)),b=N.toString()+"px")),C="1px"!==b,(N="1px"!==L)&&C||!N&&!C||(C&&(l-=t.Db),N&&(u-=t.Db),S<w+s||!t.hasHorizontalScrollbar||!t.allowHorizontalScroll||(s=1,y+1<h&&(s=Math.max((h-y)*M+t.Aa,s)),v>l+1&&(s=Math.max((v-l)*M+t.Aa,s)),w+1<S&&(s=Math.max((S-w)*M+t.Aa,s)),L=s.toString()+"px"),N="1px"!==L,s=t.ya,N!==t.Be&&(s=N?t.ya-t.Db:t.ya+t.Db),P<k+a||!t.hasVerticalScrollbar||!t.allowVerticalScroll||(a=1,x+1<T&&(a=Math.max((T-x)*M+s,a)),m>u+1&&(a=Math.max((m-u)*M+s,a)),k+1<P&&(a=Math.max((P-k)*M+s,a)),b=a.toString()+"px"),C="1px"!==b),t.qr&&N===t.Be&&C===t.gf)return e===t.Aa&&n===t.ya||t.bd(),!1;if(N!==t.Be&&(t.ya="1px"===L?t.ya+t.Db:Math.max(t.ya-t.Db,1),r=!0),t.Be=N,g.style.width=L,C!==t.gf&&(t.Aa="1px"===b?t.Aa+t.Db:Math.max(t.Aa-t.Db,1),r=!0,t.tn&&(a=pt.alloc(),C?(i.style.left=t.Db+"px",t.position=a.h(t.pa.x+t.Db/t.scale,t.pa.y)):(i.style.left="0px",t.position=a.h(t.pa.x-t.Db/t.scale,t.pa.y)),pt.free(a))),r&&kr(t),t.gf=C,g.style.height=b,t.gu=!0,r&&(t.pn=!0),i=p.scrollLeft,t.hasHorizontalScrollbar&&t.allowHorizontalScroll&&(w+1<S?i=(t.position.x-y)*M:y+1<h?i=p.scrollWidth-p.clientWidth:v>l+1&&(i=t.position.x*M)),t.tn)switch(t.bu){case"negative":i=-(p.scrollWidth-i-p.clientWidth);break;case"reverse":i=p.scrollWidth-i-p.clientWidth}return p.scrollLeft=i,t.hasVerticalScrollbar&&t.allowVerticalScroll&&(k+1<P?p.scrollTop=(t.position.y-x)*M:x+1<T?p.scrollTop=p.scrollHeight-p.clientHeight:m>u+1&&(p.scrollTop=t.position.y*M)),h=t.Aa,l=t.ya,p.style.width=h+(t.gf?t.Db:0)+"px",p.style.height=l+(t.Be?t.Db:0)+"px",e===h&&n===l&&!t.animationManager.zb||(e=Bt.allocAt(o,c,f,d),t.onViewportBoundsChanged(e,t.viewportBounds,M,r),Bt.free(e),!1)}function ar(t,i,e){var n=i.layer;null!==n&&n.diagram===t&&(i.isSelected=!1,i.isHighlighted=!1,i.C(2),e&&i.Lj(),0<=(e=n.pc(-1,i,!1))&&t.cb(pe,"parts",n,i,null,e,null),null!==(t=i.layerChanged)&&t(i,n,null))}function hr(t,i,e,n,o,r){if(!i.contains(e)&&(void 0===r&&(r=!1),!n||r||e.canMove()||e.canCopy()))if(void 0===o&&(o=ur(t)),e instanceof Ju){if(i.add(e,t.Pd(o,e,e.location)),e instanceof gc&&(null!==e.placeholder||o.dragsMembers))for(r=e.memberParts;r.next();)hr(t,i,r.value,n,o,o.groupsAlwaysMove);for(r=e.linksConnected;r.next();){var s=r.value;if(!i.contains(s)){var a=s.fromNode,h=s.toNode;null!==a&&i.contains(a)&&null!==h&&i.contains(h)&&hr(t,i,s,n,o)}}if(o.dragsTree)for(e=e.Ou();e.next();)hr(t,i,e.value,n,o)}else if(e instanceof wc)for(i.add(e,t.Pd(o,e)),e=e.labelNodes;e.next();)hr(t,i,e.value,n,o);else e instanceof Ku||i.add(e,t.Pd(o,e,e.location))}function lr(t,i,e,n,o){if(null!==i&&0!==i.count){var r=pt.alloc(),s=pt.alloc();s.assign(e),isNaN(s.x)&&(s.x=0),isNaN(s.y)&&(s.y=0),(e=t.Mr)||fr(t,i);for(var a=A(),h=A(),l=i.iterator,u=pt.alloc();l.next();){var c=l.key,f=l.value;if(c.Zc()){var d=pr(t,c,i);null!==d?a.push(new ks(c,f,d)):o&&!c.canMove()||(d=f.point,r.assign(d),t.computeMove(c,r.add(s),n,u),c.location=u,void 0===f.shifted&&(f.shifted=new pt),f.shifted.assign(u.re(d)))}else l.key instanceof wc&&h.push(l.sa)}for(pt.free(u),o=a.length,l=0;l<o;l++)c=a[l],r.assign(c.info.point),void 0===c.Su.shifted&&(c.Su.shifted=new pt),c.node.location=r.add(c.Su.shifted);for(o=pt.alloc(),l=pt.alloc(),c=h.length,f=0;f<c;f++){var p=h[f];if((d=p.key)instanceof wc)if(d.suspendsRouting){d.Tg=null,u=d.fromNode;var g=d.toNode;if(null!==t.draggedLink&&n.dragsLink)if(g=p.value.point,null===d.dragComputation)i.add(d,t.Pd(n,d,s)),Sc(d,s.x-g.x,s.y-g.y);else{p=pt.allocAt(0,0),(u=d.i(0))&&u.w()&&p.assign(u);var m=u=pt.alloc().assign(p).add(s);n.isGridSnapEnabled&&(n.isGridSnapRealtime||t.lastInput.up)&&cr(t,d,u,m=pt.alloc(),n),u.assign(d.dragComputation(d,u,m)).re(p),i.add(d,t.Pd(n,d,u)),Sc(d,u.x-g.x,u.y-g.y),pt.free(p),pt.free(u),m!==u&&pt.free(m)}else null!==u&&(o.assign(u.location),null!==(m=i.I(u))&&o.re(m.point)),null!==g&&(l.assign(g.location),null!==(m=i.I(g))&&l.re(m.point)),null!==u&&null!==g?o.Xa(l)?(u=p.value.point,(g=r).assign(o),g.re(u),i.add(d,t.Pd(n,d,o)),Sc(d,g.x,g.y)):(d.suspendsRouting=!1,d.bb()):(p=p.value.point,u=null!==u?o:null!==g?l:s,i.add(d,t.Pd(n,d,u)),Sc(d,u.x-p.x,u.y-p.y))}else null!==d.fromNode&&null!==d.toNode||(u=p.value.point,i.add(d,t.Pd(n,d,s)),Sc(d,s.x-u.x,s.y-u.y))}pt.free(r),pt.free(s),pt.free(o),pt.free(l),j(a),j(h),e||(Qo(t),dr(t,i))}}function ur(t){var i=t.toolManager.findTool("Dragging");return null!==i?i.dragOptions:t.Wm}function cr(t,i,e,n,o){if(void 0===o&&(o=ur(t)),n.assign(e),null!==i){var r=t.grid;t=(i=o.gridSnapCellSize).width,i=i.height;var s=o.gridSnapOrigin,a=s.x;if(s=s.y,o=o.gridSnapCellSpot,null!==r){var h=r.gridCellSize;isNaN(t)&&(t=h.width),isNaN(i)&&(i=h.height),r=r.gridOrigin,isNaN(a)&&(a=r.x),isNaN(s)&&(s=r.y)}(r=pt.allocAt(0,0)).yi(0,0,t,i,o),Xi.No(e.x,e.y,a+r.x,s+r.y,t,i,n),pt.free(r)}}function fr(t,i){if(null!==i)for(t.Mr=!0,t=i.iterator;t.next();)(i=t.key)instanceof wc&&(i.suspendsRouting=!0)}function dr(t,i){if(null!==i){for(i=i.iterator;i.next();){var e=i.key;e instanceof wc&&(e.suspendsRouting=!1,Ac(e)&&e.bb())}t.Mr=!1}}function pr(t,i,e){if(null!==(i=i.containingGroup)){if(null!==(t=pr(t,i,e)))return t;if(null!==(t=e.I(i)))return t}return null}function gr(t,i,e){if(null!==i.diagram&&i.diagram!==t&&w("Cannot share a Layer with another Diagram: "+i+" of "+i.diagram),null===e?null!==i.diagram&&w("Cannot add an existing Layer to this Diagram again: "+i):(e.diagram!==t&&w("Existing Layer must be in this Diagram: "+e+" not in "+e.diagram),i===e&&w("Cannot move a Layer before or after itself: "+i)),i.diagram!==t){i=i.name,e=(t=t.Wa).count;for(var n=0;n<e;n++)t.M(n).name===i&&w("Cannot add Layer with the name '"+i+"'; a Layer with the same name is already present in this Diagram.")}}function mr(t,i,e){var n=t.animationManager;if(t.vb||t.ld)t.Ca=e,kr(t),t.N(),t.Ee=!0,n.zb&&(Wn(n)||n.ce.add(n.H,"scale",i,t.Ca));else if(null===t.ta)t.Ca=e,kr(t);else{t.vb=!0;var o=t.viewportBounds.copy(),r=t.Aa,s=t.ya,a=t.zoomPoint.x,h=t.zoomPoint.y,l=t.contentAlignment;isNaN(a)&&(l.$c()?l.Hf(ui)?a=0:l.Hf(ci)&&(a=r-1):a=l.sb()?l.x*(r-1):r/2),isNaN(h)&&(l.$c()?l.Hf(li)?h=0:l.Hf(fi)&&(h=s-1):h=l.sb()?l.y*(s-1):s/2),null===t.scaleComputation||t.animationManager.defaultAnimation.isAnimating||(e=t.scaleComputation(t,e)),e<t.minScale&&(e=t.minScale),e>t.maxScale&&(e=t.maxScale),r=pt.allocAt(t.pa.x+a/i-a/e,t.pa.y+h/i-h/e),t.position=r,pt.free(r),t.Ca=e,kr(t),t.vb=!1,t.onViewportBoundsChanged(o,t.viewportBounds,i,!1),Yo(t,!1),n.zb&&(Wn(n)||n.ce.add(n.H,"scale",i,t.Ca))}}function yr(t,i){var e=t.fe;if(null!==e&&e.visible){for(var n=At.alloc(),o=1,r=1,s=e.O.s,a=s.length,h=0;h<a;h++){var l=s[h],u=Math.abs(l.interval);2>u||(Fh(l.figure)?r=r*u/Xi.vx(r,u):o=o*u/Xi.vx(o,u))}if(s=e.gridCellSize,n.h(r*s.width,o*s.height),void 0!==i)o=i.width,r=i.height,t=i.x,s=i.y;else{if(i=Bt.alloc(),t=t.viewportBounds,i.h(t.x,t.y,t.width,t.height),!i.w())return void Bt.free(i);o=i.width,r=i.height,t=i.x,s=i.y,Bt.free(i)}e.width=o+2*n.width,e.height=r+2*n.height,i=pt.alloc(),Xi.No(t,s,0,0,n.width,n.height,i),i.offset(-n.width,-n.height),At.free(n),e.part.location=i,pt.free(i)}}function vr(t){var i=t.isModified;t.Tw!==i&&(t.Tw=i,t.R("Modified"))}function xr(t,i){for(var e=(i=i.O.s).length,n=0;n<e;n++)br(t,i[n])}function br(t,i){if(i instanceof ou){var e=i.element;if(null!==e&&e instanceof HTMLImageElement){e.Bg instanceof $&&e.Bg.add(t);var n=i.Eg;if(null!==n&&!0===n.sq&&null!==i.diagram&&i.diagram.Xn.add(i),e.hn)if(e=e.getAttribute("src")||"",null===(n=t.Og.I(e)))(n=[]).push(i),t.Og.add(e,n);else{for(t=0;t<n.length;t++)if(n[t]===i)return;n.push(i)}}}}function wr(t,i){if(i instanceof ou){var e=i.element;if(null!==e&&e instanceof HTMLImageElement&&e.hn){var n=e.getAttribute("src")||"",o=t.Og.I(n);if(null!==o)for(var r=0;r<o.length;r++)if(o[r]===i){o.splice(r,1),0===o.length&&(t.Og.remove(n),e.Fq&&e.removeEventListener("load",e.Fq),e.Yp&&e.removeEventListener("error",e.Yp),delete e.Fq,delete e.Yp,e.Bg instanceof $&&e.Bg.remove(t),ru(n));break}}}}function kr(t){var i=t.pa,e=t.Ca;t.Rw.h(i.x,i.y,Math.max(t.Aa,0)/e,Math.max(t.ya,0)/e),t.vd=!0}function Mr(t,i){t.Zi=!1;var e=t.Sp;e.D(i)||(e=e.copy(),t.Sp.assign(i),Yo(t,!1),t.R("DocumentBoundsChanged",void 0,e),t.Ee=!0,t.N())}function Sr(t,i){for(var e=t.ai.iterator;e.next();)Pr(t,e.value,i);t.layout&&(i?t.layout.isValidLayout=!1:t.layout.C())}function Pr(t,i,e){if(null!==i){for(var n=i.gl.iterator;n.next();)Pr(t,n.value,e);null!==i.layout&&(e?i.layout.isValidLayout=!1:i.layout.C())}}function Nr(t,i){if(t.xh&&!t.lt){var e=t.aa;t.aa=!0;var n=t.undoManager.transactionLevel,o=t.layout,r=t.animationManager;try{0===n&&(t.undoManager.isInternalTransaction=!0,t.Ea("Layout")),1>=n&&!r.defaultAnimation.isAnimating&&!r.zb&&(i||Hn(r,"Layout")),t.xh=!1;for(var s=t.ai.iterator;s.next();)Cr(t,s.value,i,n);o.isValidLayout||(!i||o.isRealtime||null===o.isRealtime||0===n?(o.doLayout(t),Qo(t),o.isValidLayout=!0):t.xh=!0)}finally{i=t.undoManager.isInternalTransaction,0===n&&(t.eb("Layout"),t.undoManager.isInternalTransaction=!1),!i||0!==n&&1!==n||Kn(r),t.aa=e}}}function Cr(t,i,e,n){if(null!==i){for(var o=i.gl.iterator;o.next();)Cr(t,o.value,e,n);null===(o=i.layout)||o.isValidLayout||(!e||o.isRealtime||0===n?(i.rh=!i.location.w(),o.doLayout(i),i.C(32),tr(t,i),o.isValidLayout=!0):t.xh=!0)}}function Tr(t,i){var e=t.hw.I(i);return null!==e?e:t.hw.I(i.toLowerCase())}function Lr(t,i){var e=t.iw.I(i);return null!==e||null!==(e=t.iw.I(i.toLowerCase()))?e:void w("Unknown DiagramEvent name: "+i)}function Ar(t){if(t.animationManager.isTicking)return!1;var i=t.currentTool;return i!==t.toolManager.findTool("Dragging")||(!t.Mr||i.isComplexRoutingRealtime)}function jr(t,i,e,n){var o=t.Xh;if(null===o&&(t.Xh=o=new pf(t.avoidanceCellSize)),o.vs||o.group!==e||o.Yx!==n){if(o.Hx=Math.max(o.Os+1,Math.floor(t.avoidanceLimit/t.avoidanceCellSize.width)),o.Ix=Math.max(o.Os+1,Math.floor(t.avoidanceLimit/t.avoidanceCellSize.height)),null!==e&&(e=Fr(t,e)),null===e){i=Bt.alloc(),t.computeOccupiedArea(i),i.Bc(100,100),o.initialize(i);for(var r=t.nodes;r.next();){var s=r.value,a=s.layer;null!==a&&a.visible&&!a.isTemporary&&Dr(t,s,n,i)}Bt.free(i)}else{for(0<e.memberParts.count&&((i=t.computePartsBounds(e.memberParts,!1)).Bc(20,20),o.initialize(i)),i=Bt.alloc(),r=e.memberParts;r.next();)(s=r.value)instanceof Ju&&Dr(t,s,n,i);Bt.free(i)}o.group=e,o.Yx=n,o.vs=!1}else i&&yf(o);return o}function Fr(t,i){return i.avoidable&&!i.isLinkLabel?i:null!==i.containingGroup?Fr(t,i.containingGroup):null}function Dr(t,i,e,n){if(i!==e&&i.isVisible())if(i.avoidable&&!i.isLinkLabel){i=i.getAvoidableRect(n),t=t.Xh;var o=i.x,r=i.y;if(gf(t,o,r))for(e=(r-t.Od)/t.sc|0,n=Math.min((o+i.width-t.Nd)/t.rc|0,t.di),i=Math.min((r+i.height-t.Od)/t.sc|0,t.ei),o=(o-t.Nd)/t.rc|0;o<=n;o++)if((r=t.ac[o]).fill)r.fill(Mf,e,i+1);else for(var s=e;s<=i;s++)r[s]=Mf}else if(i instanceof gc)for(i=i.memberParts;i.next();)(o=i.value)instanceof Ju&&Dr(t,o,e,n)}function Br(t,i){null===t.Xh||t.Xh.vs||void 0!==i&&(!i.avoidable||i.isLinkLabel)||(t.Xh.vs=!0)}function Or(t){-1===t.vk&&(t.vk=x((function(){if(-1!==t.vk&&(t.ug(),null!==t.lastInput.event)){var i=t.computeAutoScrollPosition(t.wp);i.Xa(t.position)||(t.position=i,t.lastInput.documentPoint=t.Ps(t.wp),t.doMouseMove(),t.Zi=!0,i=Bt.alloc(),t.computeBounds(i),i.ed(t.documentBounds),Mr(t,i),Bt.free(i),t.Fc=!0,t.bd(),Or(t))}}),t.vp))}function Ir(t,i,e){function n(){var t=+new Date;for(r=!0,s.reset();s.next();)if(!s.value[0].al){r=!1;break}r||t-l>h?i(e,o,a):m.requestAnimationFrame(n)}for(var o=e.callback,r=!0,s=t.Og.iterator;s.next();)if(!s.value[0].al){r=!1;break}if("function"!=typeof o||r)return i(e,o,t);var a=t,h=e.callbackTimeout||300,l=+new Date;return m.requestAnimationFrame((function(){n()})),null}function zr(t,i,e,n){if(t.animationManager.Cc(),t.bd(),null===t.ta)return null;"object"!=typeof i&&w("properties argument must be an Object.");var o=i.size||null,r=i.scale||null;void 0!==i.scale&&isNaN(i.scale)&&(r="NaN");var s=i.maxSize;void 0===i.maxSize&&(s="SVG"===e?new At(1/0,1/0):new At(2e3,2e3));var a=i.position||null,h=i.parts||null,l=void 0===i.padding?1:i.padding,u=i.background||null,c=i.omitTemporary;void 0===c&&(c=!0);var f=i.document||document,d=i.elementFinished||null,p=i.showTemporary;void 0===p&&(p=!c),void 0===(i=i.showGrid)&&(i=p),null!==o&&isNaN(o.width)&&isNaN(o.height)&&(o=null),"number"==typeof l?l=new Wt(l):l instanceof Wt||w("MakeImage padding must be a Margin or a number."),l.left=Math.max(l.left,0),l.right=Math.max(l.right,0),l.top=Math.max(l.top,0),l.bottom=Math.max(l.bottom,0),t.ib.Vc(!0);var g=(c=new Fa(null,f,void 0,!0)).context;if(!(o||r||h||a))return c.width=t.Aa+Math.ceil(l.left+l.right),c.height=t.ya+Math.ceil(l.top+l.bottom),"SVG"===e?null===n?null:(n.resize(c.width,c.height,c.width,c.height),n.ownerDocument=f,n.hs=d,ir(t,n.context,l,new At(c.width,c.height),t.Ca,t.pa,h,u,p,i),n.context):(t.Xm=!1,ir(t,g,l,new At(c.width,c.height),t.Ca,t.pa,h,u,p,i),t.Xm=!0,c.context);var m=t.Pp,y=t.documentBounds.copy();if(y.Fv(t.yb),p)for(var v=t.Wa.s,x=v.length,b=0;b<x;b++){var k=v[b];if(k.visible&&k.isTemporary)for(var M=(k=k.Pa.s).length,S=0;S<M;S++){var P=k[S];P.isInDocumentBounds&&P.isVisible()&&((P=P.actualBounds).w()&&y.ed(P))}}if(v=new pt(y.x,y.y),null!==h){for(x=new Bt(0,0,0,0),b=!0,(k=h.iterator).reset();k.next();)(M=k.value)instanceof ku&&(null!==(S=M.layer)&&!S.visible||null!==S&&!p&&S.isTemporary||!M.isVisible()||(M=M.actualBounds).w()&&(b?(b=!1,x.assign(M)):x.ed(M)));y.width=x.width,y.height=x.height,v.x=x.x,v.y=x.y}return null!==a&&a.w()&&(v=a,r||(r=m)),x=a=0,null!==l&&(a=l.left+l.right,x=l.top+l.bottom),b=k=0,null!==o&&(k=o.width,b=o.height,isFinite(k)&&(k=Math.max(0,k-a)),isFinite(b)&&(b=Math.max(0,b-x))),null!==o&&null!==r?("NaN"===r&&(r=m),o.w()?(o=k,y=b):isNaN(b)?(o=k,y=y.height*r):(o=y.width*r,y=b)):null!==o?o.w()?(r=Math.min(k/y.width,b/y.height),o=k,y=b):isNaN(b)?(r=k/y.width,o=k,y=y.height*r):(r=b/y.height,o=y.width*r,y=b):null!==r?"NaN"===r&&s.w()?(r=Math.min((s.width-a)/y.width,(s.height-x)/y.height))>m?(r=m,o=y.width,y=y.height):(o=s.width,y=s.height):(o=y.width*r,y=y.height*r):(r=m,o=y.width,y=y.height),null!==l?(o+=a,y+=x):l=new Wt(0),null!==s&&(m=s.width,s=s.height,isNaN(m)&&(m=2e3),isNaN(s)&&(s=2e3),isFinite(m)&&(o=Math.min(o,m)),isFinite(s)&&(y=Math.min(y,s))),c.width=Math.ceil(o),c.height=Math.ceil(y),"SVG"===e?null===n?null:(n.resize(c.width,c.height,c.width,c.height),n.ownerDocument=f,n.hs=d,ir(t,n.context,l,new At(Math.ceil(o),Math.ceil(y)),r,v,h,u,p,i),n.context):(t.Xm=!1,ir(t,g,l,new At(Math.ceil(o),Math.ceil(y)),r,v,h,u,p,i),t.Xm=!0,c.context)}vo.className="AnimationTrigger",vo.Default=wo,vo.Immediate=ko,vo.Bundled=Mo,(i=So.prototype).clear=function(){for(var t=this.Pa,i=0;i<t.length;i++){var e=t.s[i];e.Ig=null,Xs(e)}t.clear(),this.Zq.length=0},i.Xe=function(t){this.H=t},i.toString=function(t){void 0===t&&(t=0);var i='Layer "'+this.name+'"';if(0>=t)return i;for(var e=0,n=0,o=0,r=0,s=0,a=this.Pa.iterator;a.next();){var h=a.value;h instanceof gc?o++:h instanceof Ju?n++:h instanceof wc?r++:h instanceof Ku?s++:e++}if(a="",0<e&&(a+=e+" Parts "),0<n&&(a+=n+" Nodes "),0<o&&(a+=o+" Groups "),0<r&&(a+=r+" Links "),0<s&&(a+=s+" Adornments "),1<t)for(t=this.Pa.iterator;t.next();)a+="\n "+(e=t.value).toString(),null!==(n=e.data)&&it(n)&&(a+=" #"+it(n)),e instanceof Ju?a+=" "+D(n):e instanceof wc&&(a+=" "+D(e.fromNode)+" "+D(e.toNode));return i+" "+this.Pa.count+": "+a},i.ic=function(t,i,e){if(void 0===i&&(i=null),void 0===e&&(e=null),!1===this.Uh)return null;var n=!1;null!==this.diagram&&this.diagram.viewportBounds.ca(t)&&(n=!0);for(var o=pt.alloc(),r=this.Pa.s,s=r.length;s--;){var a=r[s];if((!0!==n||!1!==Eu(a))&&a.isVisible()&&(o.assign(t),vt(o,a.oe),null!==(a=a.ic(o,i,e))&&(null!==i&&(a=i(a)),null!==a&&(null===e||e(a)))))return pt.free(o),a}return pt.free(o),null},i.ji=function(t,i,e,n){if(void 0===i&&(i=null),void 0===e&&(e=null),n instanceof Z||n instanceof $||(n=new $),!1===this.Uh)return n;var o=!1;null!==this.diagram&&this.diagram.viewportBounds.ca(t)&&(o=!0);for(var r=pt.alloc(),s=this.Pa.s,a=s.length;a--;){var h=s[a];if((!0!==o||!1!==Eu(h))&&h.isVisible()){r.assign(t),vt(r,h.oe);var l=h;h.ji(r,i,e,n)&&(null!==i&&(l=i(l)),null===l||null!==e&&!e(l)||n.add(l))}}return pt.free(r),n},i.Cf=function(t,i,e,n,o){if(void 0===i&&(i=null),void 0===e&&(e=null),void 0===n&&(n=!1),o instanceof Z||o instanceof $||(o=new $),!1===this.Uh)return o;var r=!1;null!==this.diagram&&this.diagram.viewportBounds.Re(t)&&(r=!0);for(var s=this.Pa.s,a=s.length;a--;){var h=s[a];if((!0!==r||!1!==Eu(h))&&h.isVisible()){var l=h;h.Cf(t,i,e,n,o)&&(null!==i&&(l=i(l)),null===l||null!==e&&!e(l)||o.add(l))}}return o},i.Nu=function(t,i,e,n,o,r,s){if(!1===this.Uh)return o;for(var a=this.Pa.s,h=a.length;h--;){var l=a[h];if((!0!==s||!1!==Eu(l))&&r(l)&&l.isVisible()){var u=l;l.Cf(t,i,e,n,o)&&(null!==i&&(u=i(u)),null===u||null!==e&&!e(u)||o.add(u))}}return o},i.og=function(t,i,e,n,o,r){if(void 0===e&&(e=null),void 0===n&&(n=null),void 0===o&&(o=!0),!1!==o&&!0!==o&&((o instanceof Z||o instanceof $)&&(r=o),o=!0),r instanceof Z||r instanceof $||(r=new $),!1===this.Uh)return r;var s=!1;null!==this.diagram&&this.diagram.viewportBounds.ca(t)&&(s=!0);for(var a=pt.alloc(),h=pt.alloc(),l=this.Pa.s,u=l.length;u--;){var c=l[u];if((!0!==s||!1!==Eu(c))&&c.isVisible()){a.assign(t),vt(a,c.oe),h.h(t.x+i,t.y),vt(h,c.oe);var f=c;c.og(a,h,e,n,o,r)&&(null!==e&&(f=e(f)),null===f||null!==n&&!n(f)||r.add(f))}}return pt.free(a),pt.free(h),r},i.Fd=function(t,i){if(this.visible){var e=this.Pa.s,n=e.length;if(0!==n){t=A();for(var o=A(),r=0;r<n;r++){var s=e[r];if(s.vw=r,s instanceof wc){if(!1===s.fd)continue}else if(s instanceof Ku&&null!==s.adornedPart)continue;var a=s.actualBounds;s.isVisible()&&Yt(a,i)?(s.Fd(!0),t.push(s)):(s.Fd(!1),null!==s.adornments&&0<s.adornments.count&&o.push(s))}for(i=0;i<t.length;i++)for(Su(e=t[i]),e=e.adornments;e.next();)(n=e.value).measure(1/0,1/0),n.arrange(),n.Fd(!0);for(i=0;i<o.length;i++)Su(o[i]);j(t),j(o)}}},i.gc=function(t,i,e){if(this.visible&&0!==this.pb&&(void 0===e&&(e=!0),e||!this.isTemporary)){var n=(e=this.Pa.s).length;if(0!==n){if(t.isTemporary)for(var o=0;o<n;o++)e[o].Gj();o=Po(this,t);var r=this.Zq;r.length=0;for(var s=i.scale,a=Bt.alloc(),h=0;h<n;h++)this.Oj(t,e[h],i,r,s,a,!0);if(Bt.free(a),t.isTemporary)for(i=0;i<n;i++)e[i].Gj();t.globalAlpha=o}}},i.Oj=function(t,i,e,n,o,r,s){if(s&&!Eu(i))t.Hs(i);else{if(null!==n&&i instanceof wc&&(i.isOrthogonal&&n.push(i),!1===i.fd))return void t.Hs(i);for(s=!1,n=i.containingGroup;null!==n;)s?null!==n.tb&&r.Ex(n.tb):null!==n.tb&&(s=!0,r.assign(n.tb)),n=n.containingGroup;var a=i.actualBounds;if(n=!1,s&&i.isVisible()){if(!r.Yc(a))return void t.Hs(i);n=!r.Re(a)}n&&(t.save(),t instanceof va?t.bk=r.copy():(t.beginPath(),t.rect(r.x,r.y,r.width,r.height),t.clip())),a.width*o>e.Oq||a.height*o>e.Oq?i.gc(t,e):(o=i.actualBounds,r=i.naturalBounds,0===o.width||0===o.height||isNaN(o.x)||isNaN(o.y)||!i.isVisible()||(e=i.transform,null!==i.areaBackground&&(Us(i,t,i.areaBackground,!0,!0,r,o),t.fillRect(o.x,o.y,o.width,o.height)),null===i.areaBackground&&null===i.background&&(Us(i,t,"rgba(0,0,0,0.3)",!0,!1,r,o),t.fillRect(o.x,o.y,o.width,o.height)),null!==i.background&&(t.transform(e.m11,e.m12,e.m21,e.m22,e.dx,e.dy),Us(i,t,i.background,!0,!1,r,o),t.fillRect(0,0,r.width/2,r.height/2),e.ws()||(i=1/(e.m11*e.m22-e.m12*e.m21),t.transform(e.m22*i,-e.m12*i,-e.m21*i,e.m11*i,i*(e.m21*e.dy-e.m22*e.dx),i*(e.m12*e.dx-e.m11*e.dy)))))),n&&(t.restore(),t.Vc(!0))}},i.g=function(t,i,e,n,o){var r=this.diagram;null!==r&&r.cb(fe,t,this,i,e,n,o)},i.oi=function(t,i,e){var n=this.Pa;if(i.Ig=this,null===this&&Xs(i),t>=n.count)t=n.count;else if(n.M(t)===i)return-1;return n.Gb(t,i),i.Vo(e),null!==(n=this.diagram)&&(e?n.N():n.oi(i)),Co(this,t,i),t},i.pc=function(t,i,e){if(!e&&i.layer!==this&&null!==i.layer)return i.layer.pc(t,i,e);var n=this.Pa;if(0>t||t>=n.length){if(0>(t=n.indexOf(i)))return-1}else if(n.M(t)!==i&&0>(t=n.indexOf(i)))return-1;return i.Wo(e),n.mb(t),null!==(n=this.diagram)&&(e?n.N():n.pc(i)),i.Ig=null,Xs(i),t},f.Object.defineProperties(So.prototype,{parts:{get:function(){return this.Pa.iterator}},partsBackwards:{get:function(){return this.Pa.iteratorBackwards}},diagram:{get:function(){return this.H}},name:{get:function(){return this.xa},set:function(t){var i=this.xa;if(i!==t){var e=this.diagram;if(null!==e)for(""===i&&w("Cannot rename default Layer to: "+t),e=e.layers;e.next();)e.value.name===t&&w("Layer.name is already present in this diagram: "+t);for(this.xa=t,this.g("name",i,t),t=this.Pa.iterator;t.next();)t.value.layerName=this.xa}}},opacity:{get:function(){return this.pb},set:function(t){var i=this.pb;i!==t&&((0>t||1<t)&&M(t,"0 <= value <= 1",So,"opacity"),this.pb=t,this.g("opacity",i,t),null!==(t=this.diagram)&&t.N())}},isTemporary:{get:function(){return this.o},set:function(t){var i=this.o;i!==t&&((this.o=t)&&(this.isInDocumentBounds=!1),this.g("isTemporary",i,t))}},visible:{get:function(){return this.u},set:function(t){var i=this.u;if(i!==t){for(this.u=t,this.g("visible",i,t),i=this.Pa.iterator;i.next();)i.value.Zb(t);null!==(t=this.diagram)&&t.N()}}},pickable:{get:function(){return this.Uh},set:function(t){var i=this.Uh;i!==t&&(this.Uh=t,this.g("pickable",i,t))}},isInDocumentBounds:{get:function(){return this.j},set:function(t){this.j!==t&&(this.j=t,null!==this.diagram&&this.diagram.Ya())}},allowCopy:{get:function(){return this.Fi},set:function(t){var i=this.Fi;i!==t&&(this.Fi=t,this.g("allowCopy",i,t))}},allowDelete:{get:function(){return this.Gi},set:function(t){var i=this.Gi;i!==t&&(this.Gi=t,this.g("allowDelete",i,t))}},allowTextEdit:{get:function(){return this.Pi},set:function(t){var i=this.Pi;i!==t&&(this.Pi=t,this.g("allowTextEdit",i,t))}},allowGroup:{get:function(){return this.Hi},set:function(t){var i=this.Hi;i!==t&&(this.Hi=t,this.g("allowGroup",i,t))}},allowUngroup:{get:function(){return this.Qi},set:function(t){var i=this.Qi;i!==t&&(this.Qi=t,this.g("allowUngroup",i,t))}},allowLink:{get:function(){return this.Ii},set:function(t){var i=this.Ii;i!==t&&(this.Ii=t,this.g("allowLink",i,t))}},allowRelink:{get:function(){return this.Ki},set:function(t){var i=this.Ki;i!==t&&(this.Ki=t,this.g("allowRelink",i,t))}},allowMove:{get:function(){return this.Ji},set:function(t){var i=this.Ji;i!==t&&(this.Ji=t,this.g("allowMove",i,t))}},allowReshape:{get:function(){return this.Li},set:function(t){var i=this.Li;i!==t&&(this.Li=t,this.g("allowReshape",i,t))}},allowResize:{get:function(){return this.Mi},set:function(t){var i=this.Mi;i!==t&&(this.Mi=t,this.g("allowResize",i,t))}},allowRotate:{get:function(){return this.Ni},set:function(t){var i=this.Ni;i!==t&&(this.Ni=t,this.g("allowRotate",i,t))}},allowSelect:{get:function(){return this.Oi},set:function(t){var i=this.Oi;i!==t&&(this.Oi=t,this.g("allowSelect",i,t))}}}),So.prototype.findObjectsNear=So.prototype.og,So.prototype.findObjectsIn=So.prototype.Cf,So.prototype.findObjectsAt=So.prototype.ji,So.prototype.findObjectAt=So.prototype.ic,So.className="Layer",To.prototype.clear=function(){this.animationManager.Cc(),this.model.clear(),Yr=null,Gr="",Ao(this,!1),this.Xn.clear(),ru(),this.Og.clear(),this.Xh=null,this.Ya(),this.Va(),this.N()},To.prototype.reset=function(){this.clear(),this.vb=!0,Lo(this),kr(this),this.Wg=!0,Io(this),this.layout=new Ff,this.Wg=!1,this.model=Od(),this.model.undoManager=new me,this.vb=this.rn=!1,this.N()},To.prototype.setRTL=function(t){null===(t=void 0===t?this.div:t)&&(t=m.document.body);var i=b("div");i.dir="rtl",i.style.cssText="font-size: 14px; width: 1px; height: 1px; position: absolute; top: -1000px; overflow: scroll;",i.textContent="A",t.appendChild(i);var e="reverse";0<i.scrollLeft?e="default":(i.scrollLeft=1,0===i.scrollLeft&&(e="negative")),t.removeChild(i),this.bu=e},To.prototype.setScrollWidth=function(t){null===(t=void 0===t?this.div:t)&&(t=m.document.body);var i=0;if(Vr){var e=Er;i=xo,null===e&&((e=Er=b("p")).style.width="100%",e.style.height="200px",e.style.boxSizing="content-box",(i=xo=b("div")).style.position="absolute",i.style.visibility="hidden",i.style.width="200px",i.style.height="150px",i.style.boxSizing="content-box",i.appendChild(e)),i.style.overflow="hidden",t.appendChild(i);var n=e.offsetWidth;i.style.overflow="scroll",n===(e=e.offsetWidth)&&(e=i.clientWidth),t.removeChild(i),0!==(i=n-e)||R||(i=11)}this.Db=i,this.Gw=!0},To.prototype.qb=function(t){t.classType===To&&(this.autoScale=t)},To.prototype.toString=function(t){void 0===t&&(t=0);var i="";if(this.div&&this.div.id&&(i=this.div.id),i='Diagram "'+i+'"',0>=t)return i;for(var e=this.Wa.iterator;e.next();)i+="\n "+e.value.toString(t-1);return i},To.prototype.addEventListener=function(t,i,e,n){t.addEventListener(i,e,{capture:n,passive:!1})},To.prototype.removeEventListener=function(t,i,e,n){t.removeEventListener(i,e,{capture:n})},To.prototype.computePixelRatio=function(){return null!==this.Yh?this.Yh:m.devicePixelRatio||1},To.prototype.doMouseMove=function(){this.currentTool.doMouseMove()},To.prototype.doMouseDown=function(){this.currentTool.doMouseDown()},To.prototype.doMouseUp=function(){this.currentTool.doMouseUp()},To.prototype.doMouseWheel=function(){this.currentTool.doMouseWheel()},To.prototype.doKeyDown=function(){this.currentTool.doKeyDown()},To.prototype.doKeyUp=function(){this.currentTool.doKeyUp()},To.prototype.doFocus=function(){this.focus()},To.prototype.focus=function(){if(this.ta)if(this.scrollsPageOnFocus)this.ta.focus();else{var t=m.scrollX||m.pageXOffset,i=m.scrollY||m.pageYOffset;this.ta.focus(),m.scrollTo(t,i)}},To.prototype.Oy=function(){this.H.R("GainedFocus")},To.prototype.Ny=function(){this.H.R("LostFocus")},To.prototype.kx=function(t){if(null!==this.ta){var i=this.ku,e=this.hu;this.qr=!0;var n=this.documentBounds,o=this.viewportBounds,r=this.rj,s=n.x-r.left,a=n.y-r.top,h=n.width+r.left+r.right,l=n.height+r.top+r.bottom,u=n.right+r.right;r=n.bottom+r.bottom;var c=o.x;n=o.y;var f=o.width,d=o.height,p=o.right,g=o.bottom;o=this.scale;var m=t.scrollLeft;if(this.tn)switch(this.bu){case"negative":m=m+t.scrollWidth-t.clientWidth;break;case"reverse":m=t.scrollWidth-m-t.clientWidth}var y=m;f<h||d<l?(m=pt.allocAt(this.position.x,this.position.y),this.allowHorizontalScroll&&this.ju!==y&&(m.x=y/o+s,this.ju=y),this.allowVerticalScroll&&this.lu!==t.scrollTop&&(m.y=t.scrollTop/o+a,this.lu=t.scrollTop),this.position=m,pt.free(m),this.Ee=this.qr=!1):(m=pt.alloc(),t.uy&&this.allowHorizontalScroll&&(s<c&&(this.position=m.h(y+s,this.position.y)),u>p&&(this.position=m.h(-(i.scrollWidth-this.Aa)+y-this.Aa/o+u,this.position.y))),t.vy&&this.allowVerticalScroll&&(a<n&&(this.position=m.h(this.position.x,t.scrollTop+a)),r>g&&(this.position=m.h(this.position.x,-(i.scrollHeight-this.ya)+t.scrollTop-this.ya/o+r))),pt.free(m),this.vd=!0,this.Ee=this.qr=!1,n=this.documentBounds,o=this.viewportBounds,u=n.right,p=o.right,r=n.bottom,g=o.bottom,s=n.x,c=o.x,a=n.y,n=o.y,f>=h&&s>=c&&u<=p&&(e.style.width="1px"),d>=l&&a>=n&&r<=g&&(e.style.height="1px"))}},To.prototype.computeBounds=function(t){return void 0===t&&(t=new Bt),Qo(this),Vo(this,t)},To.prototype.computePartsBounds=function(t,i){void 0===i&&(i=!1);var e=null;if(N(t))for(var n=0;n<t.length;n++){var o=t[n];!i&&o instanceof wc||(o.Va(),null===e?e=o.actualBounds.copy():e.ed(o.actualBounds))}else for(t=t.iterator;t.next();)n=t.value,!i&&n instanceof wc||(n.Va(),null===e?e=n.actualBounds.copy():e.ed(n.actualBounds));return null===e?new Bt(NaN,NaN,0,0):e},To.prototype.zoomToFit=function(){var t=this.sj;this.sj=$r,this.scale=Go(this,Ur),t!==$r&&(Yo(this,!1),Xo(this,this.documentBounds,this.Aa/this.Ca,this.ya/this.Ca,this.zk,!1)),this.sj=t},(i=To.prototype).BA=function(t,i){void 0===i&&(i=Ur);var e=t.width,n=t.height;if(!(0===e||0===n||isNaN(e)&&isNaN(n))){var o=1;if(i===Ur||i===qr)if(isNaN(e))o=this.viewportBounds.height*this.scale/n;else if(isNaN(n))o=this.viewportBounds.width*this.scale/e;else{o=this.Aa;var r=this.ya;o=i===qr?r/n>o/e?(r-(this.Be?this.Db:0))/n:(o-(this.gf?this.Db:0))/e:Math.min(r/n,o/e)}this.scale=o,this.position=new pt(t.x,t.y)}},i.Jy=function(t,i){this.Va();var e=this.documentBounds,n=this.viewportBounds;this.position=new pt(e.x+(t.x*e.width+t.offsetX)-(i.x*n.width-i.offsetX),e.y+(t.y*e.height+t.offsetY)-(i.y*n.height-i.offsetY))},i.zz=function(t){if(t instanceof Ds){this.eq=t;var i=pt.alloc();this.fq=this.op(t.ga(ti,i)),pt.free(i)}else this.eq=null,this.fq=st},i.Ol=function(t,i){if(void 0===i&&(i=!0),i){if((t=Uo(this,t,(function(t){return t.part}),(function(t){return t.canSelect()})))instanceof ku)return t}else if((t=Uo(this,t,(function(t){return t.part})))instanceof ku)return t;return null},i.ic=function(t,i,e){void 0===i&&(i=null),void 0===e&&(e=null),Qo(this);for(var n=this.Wa.iteratorBackwards;n.next();){var o=n.value;if(o.visible&&null!==(o=o.ic(t,i,e)))return o}return null},i.lz=function(t,i,e){return void 0===i&&(i=!0),function(t,i,e,n,o){for(void 0===e&&(e=null),void 0===n&&(n=null),o instanceof Z||o instanceof $||(o=new $),Qo(t),t=t.Wa.iteratorBackwards;t.next();){var r=t.value;r.visible&&!r.isTemporary&&r.ji(i,e,n,o)}return o}(this,t,(function(t){return t.part}),i?function(t){return t instanceof ku&&t.canSelect()}:null,e)},i.ji=function(t,i,e,n){void 0===i&&(i=null),void 0===e&&(e=null),n instanceof Z||n instanceof $||(n=new $),Qo(this);for(var o=this.Wa.iteratorBackwards;o.next();){var r=o.value;r.visible&&r.ji(t,i,e,n)}return n},i.ux=function(t,i,e,n){return void 0===i&&(i=!1),void 0===e&&(e=!0),function(t,i,e,n,o){var r=null;for(void 0===r&&(r=null),void 0===e&&(e=null),void 0===n&&(n=!1),o instanceof Z||o instanceof $||(o=new $),Qo(t),t=t.Wa.iteratorBackwards;t.next();){var s=t.value;s.visible&&!s.isTemporary&&s.Cf(i,r,e,n,o)}return o}(this,t,(function(t){return t instanceof ku&&(!e||t.canSelect())}),i,n)},i.Cf=function(t,i,e,n,o){void 0===i&&(i=null),void 0===e&&(e=null),void 0===n&&(n=!1),o instanceof Z||o instanceof $||(o=new $),Qo(this);for(var r=this.Wa.iteratorBackwards;r.next();){var s=r.value;s.visible&&s.Cf(t,i,e,n,o)}return o},i.Nu=function(t,i,e,n,o,r){var s=new $;Qo(this);for(var a=this.Wa.iteratorBackwards;a.next();){var h=a.value;h.visible&&h.Nu(t,i,e,n,s,o,r)}return s},i.mz=function(t,i,e,n,o){return void 0===e&&(e=!0),void 0===n&&(n=!0),function(t,i,e,n,o,r){var s=null;void 0===s&&(s=null),void 0===n&&(n=null),void 0===o&&(o=!0),!1!==o&&!0!==o&&((o instanceof Z||o instanceof $)&&(r=o),o=!0);for(r instanceof Z||r instanceof $||(r=new $),Qo(t),t=t.Wa.iteratorBackwards;t.next();){var a=t.value;a.visible&&!a.isTemporary&&a.og(i,e,s,n,o,r)}return r}(this,t,i,(function(t){return t instanceof ku&&(!n||t.canSelect())}),e,o)},i.og=function(t,i,e,n,o,r){void 0===e&&(e=null),void 0===n&&(n=null),void 0===o&&(o=!0),!1!==o&&!0!==o&&((o instanceof Z||o instanceof $)&&(r=o),o=!0),r instanceof Z||r instanceof $||(r=new $),Qo(this);for(var s=this.Wa.iteratorBackwards;s.next();){var a=s.value;a.visible&&a.og(t,i,e,n,o,r)}return r},To.prototype.acceptEvent=function(t){return qo(this,t,t instanceof MouseEvent)},To.prototype.Qz=function(t){var i=this.H;if(!this.H.isEnabled)return!1;var e=qo(i,t,!1);switch(e.key=String.fromCharCode(t.which),e.down=!0,t.which){case 8:e.key="Backspace";break;case 33:e.key="PageUp";break;case 34:e.key="PageDown";break;case 35:e.key="End";break;case 36:e.key="Home";break;case 37:e.key="Left";break;case 38:e.key="Up";break;case 39:e.key="Right";break;case 40:e.key="Down";break;case 45:e.key="Insert";break;case 46:e.key="Del";break;case 48:e.key="0";break;case 187:case 61:case 107:e.key="Add";break;case 189:case 173:case 109:e.key="Subtract";break;case 27:e.key="Esc"}return i.doKeyDown(),Wo(e,t)},To.prototype.Rz=function(t){var i=this.H;if(!i.isEnabled)return!1;var e=qo(i,t,!1);switch(e.key=String.fromCharCode(t.which),e.up=!0,t.which){case 8:e.key="Backspace";break;case 33:e.key="PageUp";break;case 34:e.key="PageDown";break;case 35:e.key="End";break;case 36:e.key="Home";break;case 37:e.key="Left";break;case 38:e.key="Up";break;case 39:e.key="Right";break;case 40:e.key="Down";break;case 45:e.key="Insert";break;case 46:e.key="Del"}return i.doKeyUp(),Wo(e,t)},To.prototype.bz=function(t){var i=this.H;if(!i.isEnabled)return!1;var e=qo(i,t,!0);return null!==i.mouseEnter&&i.mouseEnter(e),i.currentTool.standardMouseOver(),Wo(e,t)},To.prototype.cz=function(t){var i=this.H;if(!i.isEnabled)return!1;var e=qo(i,t,!0);return null!==i.mouseLeave&&i.mouseLeave(e),Wo(e,t)},To.prototype.getMouse=function(t){var i=this.ta;if(null===i)return new pt(0,0);var e=i.getBoundingClientRect();return i=t.clientX-this.Aa/e.width*e.left,t=t.clientY-this.ya/e.height*e.top,null!==this.Ab?vt(new pt(i,t),this.Ab):new pt(i,t)},To.prototype.Ya=function(){this.Zi||(this.Zi=!0,this.$b(!1))},To.prototype.redraw=function(){this.vb||this.ld||(this.N(),this.bd())},(i=To.prototype).Pz=function(){return this.kg},i.Xy=function(t){void 0===t&&(t=null);var i=this.animationManager,e=i.isEnabled;i.Cc(),i.isEnabled=!1,$o(this),this.hf=!1,this.du=new pt(NaN,NaN),i.isEnabled=e,this.ld=!0;var n=this;null!==t&&x((function(){n.ld=!1,Hn(i,"Model"),t(n)}),1)},i.$b=function(t){if(void 0===t&&(t=!1),!0!==this.kg&&!(this.vb||!1===t&&this.ld)){this.kg=!0;var i=this;m.requestAnimationFrame((function(){i.kg&&i.bd()}))}},i.bd=function(){this.fn&&!this.kg||(this.fn&&(this.fn=!1),$o(this))},i.Nv=function(t,i){for(t.reset();t.next();){var e=t.value;!e.Zc()||e instanceof gc||(e.si()?(e.measure(1/0,1/0),e.arrange()):i.add(e))}for(t.reset();t.next();)(e=t.value)instanceof gc&&e.isVisible()&&tr(this,e);for(t.reset();t.next();)(e=t.value)instanceof wc&&e.isVisible()&&(e.si()?(e.measure(1/0,1/0),e.arrange()):i.add(e));for(t.reset();t.next();)(e=t.value)instanceof Ku&&e.isVisible()&&(e.si()?(e.measure(1/0,1/0),e.arrange()):i.add(e))},i.Fd=function(t,i,e,n){if(this.vd||this.animationManager.isAnimating)for(var o=0;o<i;o++)t[o].Fd(e,n)},i.gc=function(t){if(null!==this.Ka)if(null===this.ta&&w("No canvas specified"),"svg"===this.nl){if(null!==this.Ka){var i=this.animationManager;if(!i.zb&&(!i.isAnimating||i.isTicking)){or(this);var e=this.Aa,n=this.ya;if(t.Gv.resize(e,n,e,n),n=(e=this.Wa.s).length,this.Fd(e,n,this,this.viewportBounds),this.Fc||i.isAnimating){i=this.pa;var o=this.Ca,r=Math.round(i.x*o)/o,s=Math.round(i.y*o)/o,a=this.Ab;for(a.reset(),1!==o&&a.scale(o),0===i.x&&0===i.y||a.translate(-r,-s),t.ti=null,xa(t,a.m11,a.m12,a.m21,a.m22,a.dx,a.dy),1!==this.pb&&(t.globalAlpha=this.pb),er(this,t),i=this.Mb,this.ta.context.setTransform(i,0,0,i,0,0),this.ta.context.clearRect(0,0,this.Aa,this.ya),i=0;i<n;i++)e[i].gc(t,this);t=!1,this.Yf?ls(this.Yf,this)&&(t=this.Vp()):t=!0,t&&(Yi.prototype.Cd=Yi.prototype.Eu),this.Fc=this.vd=!1}}}}else t:if(r=this.animationManager,!r.zb&&(!r.isAnimating||r.isTicking)&&(e=new Date,or(this),"0"!==this.Ka.style.opacity)){if(n=t!==this.ib,o=(i=this.Wa.s).length,this.Fd(i,o,this,this.viewportBounds),n)t.Vc(!0),this.vd=!0;else if(!this.Fc&&!r.isAnimating)break t;(r=this.Ab).reset(),s=this.Mb,a=this.pa;var h=this.Ca,l=Math.round(a.x*h)/h,u=Math.round(a.y*h)/h;for(1!==h&&r.scale(h),0===a.x&&0===a.y||r.translate(-l,-u),t.setTransform(s,0,0,s,0,0),t.clearRect(0,0,this.Aa,this.ya),1!==this.pb&&(t.globalAlpha=this.pb),er(this,t),a=0;a<o;a++)t.setTransform(s,0,0,s,0,0),t.transform(r.m11,r.m12,r.m21,r.m22,r.dx,r.dy),t.yc(),i[a].gc(t,this);if(i=!1,this.Yf?ls(this.Yf,this)&&(i=this.Vp()):i=!0,i&&(Yi.prototype.Cd=Yi.prototype.Eu),n?(this.ib.Vc(!0),this.vd=!0):this.Fc=this.vd=!1,i=+new Date-+e,n=U&&U.nx,e=this.zw,n||null===this.Yh){for(e[this.Tq]=i,this.Tq=(this.Tq+1)%e.length,o=i=0;o<e.length;o++)i+=e[o];this.Sq=i/e.length}if(1!==this.pb&&(t.globalAlpha=1),n)for(t.setTransform(1,0,0,1,0,0),n=0;n<e.length;n++)t.fillText(e[n].toString(),20,150+20*n)}},i.Gf=function(t){return this.Rg[t]},i.Xx=function(t,i){"minDrawingLength"===t&&(this.Oq=i),this.Rg[t]=i,this.redraw()},i.Tx=function(){this.Rg=new X,this.Rg.drawShadows=!0,this.Rg.textGreeking=!0,this.Rg.viewportOptimizations=!R&&!z,this.Rg.temporaryPixelRatio=!0,this.Rg.pictureRatioOptimization=!0,this.Oq=this.Rg.minDrawingLength=1},i.Ql=function(t){return this.on[t]},i.sA=function(t,i){this.on[t]=i},i.Sx=function(){this.on=new X,this.on.extraTouchArea=10,this.on.extraTouchThreshold=10,this.on.hasGestureZoom=!0},i.set=function(t){return Object.assign(this,t),this},i.Du=function(t){return this.nm(t)},i.nm=function(t){return nr(this,t),this},i.bx=function(){if(0!==this.Eh.count&&!(1<this.undoManager.transactionLevel)){for(;0<this.Eh.count;){var t=this.Eh;for(this.Eh=new dt,t=t.iterator;t.next();){var i=t.key;i.Xo(t.value),i.qc()}}this.N()}},i.N=function(t){if(void 0===t)this.Fc=!0,this.$b();else{var i=this.viewportBounds;t.w()&&i.Yc(t)&&(this.Fc=!0,this.$b())}this.R("InvalidateDraw")},To.prototype.invalidateViewport=function(t,i){if(!0!==this.Fc)if(this.Fc=!0,"svg"===this.nl)this.bd();else{var e=!0===this.Gf("temporaryPixelRatio");if(!0===this.Gf("viewportOptimizations")&&this.scrollMode!==Qr&&this.rj.hi(0,0,0,0)&&i.width===t.width&&i.height===t.height){var n=this.scale,o=Math.max(t.y,i.y),r=Math.min(t.y+t.height,i.y+i.height);if(0<Math.max(0,Math.min(t.x+t.width,i.x+i.width)-Math.max(t.x,i.x))*n&&0<Math.max(0,r-o)*n){if(!(this.ld||(this.kg=!1,null===this.Ka||(this.ld=!0,this.documentBounds.w()||(n=Bt.alloc(),Mr(this,this.computeBounds(n)),Bt.free(n)),n=this.ta,null===n||n instanceof ya)))){var s=this.Mb;o=this.Aa*s;var a=this.ya*s,h=this.scale*s;r=Math.round(Math.round(i.x*h)-Math.round(t.x*h)),i=Math.round(Math.round(i.y*h)-Math.round(t.y*h)),h=this.jw,t=this.oy,h.width!==o&&(h.width=o),h.height!==a&&(h.height=a),t.clearRect(0,0,o,a),h=190*s;var l=70*s,u=Math.max(r,0),c=Math.max(i,0),f=Math.floor(o-u),d=Math.floor(a-c);t.drawImage(n.Oa,u,c,f,d,0,0,f,d),ls(this.Yf,this)&&t.clearRect(0,0,h,l),n=A(),t=A(),d=Math.abs(r),f=Math.abs(i);var p=0===u?0:o-d;u=pt.allocAt(p,0),d=pt.allocAt(d+p,a),t.push(new Bt(Math.min(u.x,d.x),Math.min(u.y,d.y),Math.abs(u.x-d.x),Math.abs(u.y-d.y)));var g=this.Ab;if(g.reset(),g.scale(s,s),1!==this.Ca&&g.scale(this.Ca),(0!==(s=this.pa).x||0!==s.y)&&isFinite(s.x)&&isFinite(s.y)&&g.translate(-s.x,-s.y),vt(u,g),vt(d,g),n.push(new Bt(Math.min(u.x,d.x),Math.min(u.y,d.y),Math.abs(u.x-d.x),Math.abs(u.y-d.y))),p=0===c?0:a-f,u.h(0,p),d.h(o,f+p),t.push(new Bt(Math.min(u.x,d.x),Math.min(u.y,d.y),Math.abs(u.x-d.x),Math.abs(u.y-d.y))),vt(u,g),vt(d,g),n.push(new Bt(Math.min(u.x,d.x),Math.min(u.y,d.y),Math.abs(u.x-d.x),Math.abs(u.y-d.y))),ls(this.Yf,this)&&(o=0<r?0:-r,a=0<i?0:-i,u.h(o,a),d.h(h+o,l+a),t.push(new Bt(Math.min(u.x,d.x),Math.min(u.y,d.y),Math.abs(u.x-d.x),Math.abs(u.y-d.y))),vt(u,g),vt(d,g),n.push(new Bt(Math.min(u.x,d.x),Math.min(u.y,d.y),Math.abs(u.x-d.x),Math.abs(u.y-d.y)))),pt.free(u),pt.free(d),_o(this,!1,!0),null===this.Ka&&w("No div specified"),null===this.ta&&w("No canvas specified"),!this.animationManager.zb&&(o=this.ib,this.Fc)){for(or(this),a=this.Mb,o.setTransform(1,0,0,1,0,0),o.clearRect(0,0,this.Aa*a,this.ya*a),o.drawImage(this.jw.Oa,0<r?0:Math.round(-r),0<i?0:Math.round(-i)),r=this.pa,s=this.Ca,h=Math.round(r.x*s)/s,l=Math.round(r.y*s)/s,(i=this.Ab).reset(),1!==s&&i.scale(s),0===r.x&&0===r.y||i.translate(-h,-l),o.save(),o.beginPath(),r=t.length,s=0;s<r;s++)0!==(h=t[s]).width&&0!==h.height&&o.rect(Math.floor(h.x),Math.floor(h.y),Math.ceil(h.width),Math.ceil(h.height));for(o.clip(),o.setTransform(a,0,0,a,0,0),o.transform(i.m11,i.m12,i.m21,i.m22,i.dx,i.dy),o.yc(),r=(i=this.Wa.s).length,this.Fd(i,r,this,this.viewportBounds),er(this,o),o.globalAlpha=this.pb,a=0;a<r;a++)if(h=n,(s=i[a]).visible&&0!==s.pb){l=Po(s,o),(c=s.Zq).length=0,u=this.scale,f=Bt.alloc(),g=(d=s.Pa.s).length,p=h.length;for(var m=0;m<g;m++){var y=d[m],v=Lu(y,y.actualBounds);t:{for(var x=2/u,b=4/u,k=0;k<p;k++){var M=h[k];if(0!==M.width&&0!==M.height&&v.Vu(M.x-x,M.y-x,M.width+b,M.height+b)){v=!0;break t}}v=!1}v&&s.Oj(o,y,this,c,u,f,!0)}Bt.free(f),o.globalAlpha=l}o.restore(),o.Vc(!0),this.Yf&&ls(this.Yf,this)&&this.Vp(),this.Fc=this.vd=!1,this.hk()}j(n),j(t),this.ld=!1}}else this.bd();e&&(Do(this),this.bd(),Bo(this,!0))}else e?(Do(this),this.bd(),Bo(this,!0)):this.bd()}},(i=To.prototype).add=function(t){var i=t.diagram;if(i!==this&&(null!==i&&w("Cannot add part "+t.toString()+" to "+this.toString()+". It is already a part of "+i.toString()),null===(i=this.Qj(t.layerName))&&(i=this.Qj("")),null===i&&w('Cannot add a Part when unable find a Layer named "'+t.layerName+'" and there is no default Layer'),t.layer!==i)){var e=i.oi(99999999,t,t.diagram===this);0<=e&&this.cb(de,"parts",i,null,t,null,e),i.isTemporary||this.Ya(),t.C(1),null!==(e=t.layerChanged)&&e(t,null,i)}},i.oi=function(t){this.partManager.oi(t);var i=this;Bh(t,(function(t){xr(i,t)})),(t instanceof Ku||t instanceof gc&&null!==t.placeholder)&&t.v(),null!==t.data&&Bh(t,(function(t){od(i.partManager,t)})),!0!==na(t)&&!0!==Iu(t)||this.De.add(t),Bu(t,!0,this),Uu(t)?(t.actualBounds.w()&&this.N(Lu(t,t.actualBounds)),this.Ya()):t.isVisible()&&t.actualBounds.w()&&this.N(Lu(t,t.actualBounds)),this.$b()},i.pc=function(t){t.Ej(),this.partManager.pc(t);var i=this;null!==t.data&&Bh(t,(function(t){rd(i.partManager,t,i)})),this.De.remove(t),Uu(t)?(t.actualBounds.w()&&this.N(Lu(t,t.actualBounds)),this.Ya()):t.isVisible()&&t.actualBounds.w()&&this.N(Lu(t,t.actualBounds)),this.$b()},i.remove=function(t){ar(this,t,!0)},i.Is=function(t,i){if(void 0===i&&(i=!1),N(t))for(var e=t.length,n=0;n<e;n++){var o=t[n];i&&!o.canDelete()||this.remove(o)}else for((e=new $).addAll(t),t=e.iterator;t.next();)e=t.value,i&&!e.canDelete()||this.remove(e)},i.Kj=function(t,i,e){return void 0===e&&(e=!1),this.partManager.Kj(t,i,e)},To.prototype.moveParts=function(t,i,e,n){if(void 0===e&&(e=!1),void 0===n&&(n=ur(this)),null!==this.toolManager){var o=new dt;if(null!==t)if(N(t))for(var r=0;r<t.length;r++)hr(this,o,t[r],e,n);else for(t=t.iterator;t.next();)hr(this,o,t.value,e,n);else{for(t=this.parts;t.next();)hr(this,o,t.value,e,n);for(t=this.nodes;t.next();)hr(this,o,t.value,e,n);for(t=this.links;t.next();)hr(this,o,t.value,e,n)}lr(this,o,i,n,e)}},To.prototype.computeMove=function(t,i,e,n){if(void 0===n&&(n=new pt),n.assign(i),null===t)return n;var o=i,r=e.isGridSnapEnabled;r&&(e.isGridSnapRealtime||this.lastInput.up)&&cr(this,t,i,o=pt.alloc(),e),e=null!==t.dragComputation?t.dragComputation(t,i,o):o;var s=t.minLocation,a=s.x;isNaN(a)&&(a=r?Math.round(1e3*t.location.x)/1e3:t.location.x),s=s.y,isNaN(s)&&(s=r?Math.round(1e3*t.location.y)/1e3:t.location.y);var h=t.maxLocation,l=h.x;return isNaN(l)&&(l=r?Math.round(1e3*t.location.x)/1e3:t.location.x),h=h.y,isNaN(h)&&(h=r?Math.round(1e3*t.location.y)/1e3:t.location.y),n.h(Math.max(a,Math.min(e.x,l)),Math.max(s,Math.min(e.y,h))),o!==i&&pt.free(o),n},(i=To.prototype).Pd=function(t,i,e){if(void 0===e)return new us(et);var n=t.isGridSnapEnabled;return t.groupsSnapMembers||null===i.containingGroup||(n=!1),new us(n?new pt(Math.round(1e3*e.x)/1e3,Math.round(1e3*e.y)/1e3):e.copy())},i.Al=function(t){gr(this,t,null),t.Xe(this);var i=this.Wa,e=i.count-1;if(!t.isTemporary)for(;0<=e&&i.M(e).isTemporary;)e--;return i.Gb(e+1,t),null!==this.cc&&this.cb(de,"layers",this,null,t,null,e+1),this.N(),this.Ya(),this},i.Ww=function(t,i){gr(this,t,i),t.Xe(this);var e=this.Wa,n=e.indexOf(t);0<=n&&(e.remove(t),null!==this.cc&&this.cb(pe,"layers",this,t,null,n,null));var o,r=e.count;for(o=0;o<r;o++)if(e.M(o)===i){e.Gb(o,t);break}return null!==this.cc&&this.cb(de,"layers",this,null,t,null,o),this.N(),0>n&&this.Ya(),this},i.Cy=function(t,i){gr(this,t,i),t.Xe(this);var e=this.Wa,n=e.indexOf(t);0<=n&&(e.remove(t),null!==this.cc&&this.cb(pe,"layers",this,t,null,n,null));var o,r=e.count;for(o=0;o<r;o++)if(e.M(o)===i){e.Gb(o+1,t);break}return null!==this.cc&&this.cb(de,"layers",this,null,t,null,o+1),this.N(),0>n&&this.Ya(),this},i.kA=function(t){if(t.diagram!==this&&w("Cannot remove a Layer from another Diagram: "+t+" of "+t.diagram),""!==t.name){var i=this.Wa,e=i.indexOf(t);if(i.remove(t)){for(i=t.Pa.copy().iterator;i.next();){var n=i.value,o=n.layerName;o!==t.name?n.layerName=o:n.layerName=""}null!==this.cc&&this.cb(pe,"layers",this,t,null,e,null),this.N(),this.Ya()}}},i.Qj=function(t){for(var i=this.layers;i.next();){var e=i.value;if(e.name===t)return e}return null},i.Yw=function(t){return null===this.pf&&(this.pf=new Z),this.pf.add(t),this.model.Pe(t),this},i.mA=function(t){null!==this.pf&&(this.pf.remove(t),0===this.pf.count&&(this.pf=null)),this.model.ik(t)},i.Pe=function(t){return null===this.zg&&(this.zg=new Z),this.zg.add(t),this},i.ik=function(t){null!==this.zg&&(this.zg.remove(t),0===this.zg.count&&(this.zg=null))},i.ds=function(t){if(this.skipsUndoManager||this.model.skipsUndoManager||this.model.undoManager.Tu(t),t.change!==ce&&(this.isModified=!0),null!==this.zg)for(var i=this.zg,e=i.length,n=0;n<e;n++)i.M(n)(t)},i.cb=function(t,i,e,n,o,r,s){void 0===r&&(r=null),void 0===s&&(s=null);var a=new ue;a.diagram=this,a.change=t,a.propertyName=i,a.object=e,a.oldValue=n,a.oldParam=r,a.newValue=o,a.newParam=s,this.ds(a)},i.g=function(t,i,e,n,o){this.cb(fe,t,this,i,e,n,o)},To.prototype.changeState=function(t,i){if(null!==t&&t.diagram===this){var e=this.skipsModelSourceBindings;try{this.skipsModelSourceBindings=!0;var n=t.change;if(n===fe){var o=t.object;if(Ed(o,t.propertyName,t.I(i)),o instanceof Ds){var r=o.part;null!==r&&r.Wb()}this.isModified=!0}else if(n===de){var s=t.object,a=t.newParam,h=t.newValue;if(s instanceof Ch)if("number"==typeof a&&h instanceof Ds){i?s.pc(a):s.Gb(a,h);var l=s.part;null!==l&&l.Wb()}else"number"==typeof a&&h instanceof hl&&(h.isRow?qh(s,a,i?void 0:h):Hh(s,a,i?void 0:h));else if(s instanceof So){var u=!0===t.oldParam;"number"==typeof a&&h instanceof ku&&(i?(h.isSelected=!1,h.isHighlighted=!1,h.Wb(),s.pc(u?a:-1,h,u)):s.oi(a,h,u))}else s instanceof To?"number"==typeof a&&h instanceof So&&(i?this.Wa.mb(a):(h.Xe(this),this.Wa.Gb(a,h))):w("unknown ChangedEvent.Insert object: "+t.toString());this.isModified=!0}else if(n===pe){var c=t.object,f=t.oldParam,d=t.oldValue;if(c instanceof Ch)"number"==typeof f&&d instanceof Ds?i?c.Gb(f,d):c.pc(f):"number"==typeof f&&d instanceof hl&&(d.isRow?qh(c,f,i?d:void 0):Hh(c,f,i?d:void 0));else if(c instanceof So){var p=!0===t.newParam;"number"==typeof f&&d instanceof ku&&(i?0>c.Pa.indexOf(d)&&c.oi(f,d,p):(d.isSelected=!1,d.isHighlighted=!1,d.Wb(),c.pc(p?f:-1,d,p)))}else c instanceof To?"number"==typeof f&&d instanceof So&&(i?(d.Xe(this),this.Wa.Gb(f,d)):this.Wa.mb(f)):w("unknown ChangedEvent.Remove object: "+t.toString());this.isModified=!0}else n!==ce&&w("unknown ChangedEvent: "+t.toString())}finally{this.skipsModelSourceBindings=e}}},To.prototype.Ea=function(t){return this.undoManager.Ea(t)},To.prototype.eb=function(t){return this.undoManager.eb(t)},To.prototype.Kf=function(){return this.undoManager.Kf()},To.prototype.commit=function(t,i){void 0===i&&(i="");var e=this.skipsUndoManager;null===i&&(this.skipsUndoManager=!0,i=""),this.undoManager.Ea(i);var n=!1;try{t(this),n=!0}finally{n?this.undoManager.eb(i):this.undoManager.Kf(),this.skipsUndoManager=e}},To.prototype.updateAllTargetBindings=function(t){this.partManager.updateAllTargetBindings(t)},To.prototype.rp=function(){this.partManager.rp()},To.prototype.onViewportBoundsChanged=function(t,i,e,n){if(!t.D(i)){void 0===n&&(n=!1),n||(this.Ee=!0),this.vd=!0;var o=this.layout;null===o||!o.isViewportSized||this.autoScale!==Xr||t.width===i.width&&t.height===i.height||o.C(),o=this.currentTool,!0===this.Vk&&o instanceof xe&&(this.lastInput.documentPoint=this.Ps(this.lastInput.viewPoint),be(o,this)),this.vb||this.invalidateViewport(t,i),yr(this),this.fc.scale=e,this.fc.position.x=t.x,this.fc.position.y=t.y,this.fc.bounds.assign(t),this.fc.canvasSize.width=Math.round(t.width*e),this.fc.canvasSize.height=Math.round(t.height*e),this.fc.newCanvasSize.width=this.Aa,this.fc.newCanvasSize.height=this.ya,this.fc.isScroll=n,this.R("ViewportBoundsChanged",this.fc,t),this.isVirtualized&&this.links.each((function(t){t.isAvoiding&&t.actualBounds.Yc(i)&&t.bb()}))}},To.prototype.clearSelection=function(t){void 0===t&&(t=!1);var i=this.selection;if(0!==i.count){t||this.R("ChangingSelection",i);for(var e=i.Fa(),n=e.length,o=0;o<n;o++)e[o].isSelected=!1;i.ka(),i.clear(),i.freeze(),t||this.R("ChangedSelection",i)}},To.prototype.select=function(t){null!==t&&t.diagram===this&&(!t.isSelected||1<this.selection.count)&&(this.R("ChangingSelection",this.selection),this.clearSelection(!0),t.isSelected=!0,this.R("ChangedSelection",this.selection))},To.prototype.rA=function(t){if(this.R("ChangingSelection",this.selection),this.clearSelection(!0),N(t))for(var i=t.length,e=0;e<i;e++){var n=t[e];n instanceof ku||w("Diagram.selectCollection given something that is not a Part: "+n),n.isSelected=!0}else for(t=t.iterator;t.next();)(i=t.value)instanceof ku||w("Diagram.selectCollection given something that is not a Part: "+i),i.isSelected=!0;this.R("ChangedSelection",this.selection)},To.prototype.clearHighlighteds=function(){var t=this.highlighteds;if(0<t.count){for(var i=t.Fa(),e=i.length,n=0;n<e;n++)i[n].isHighlighted=!1;t.ka(),t.clear(),t.freeze()}},(i=To.prototype).Iz=function(t){null!==t&&t.diagram===this&&(!t.isHighlighted||1<this.highlighteds.count)&&(this.clearHighlighteds(),t.isHighlighted=!0)},i.Jz=function(t){t=(new $).addAll(t);for(var i=this.highlighteds.copy().hp(t).iterator;i.next();)i.value.isHighlighted=!1;for(t=t.iterator;t.next();)(i=t.value)instanceof ku||w("Diagram.highlightCollection given something that is not a Part: "+i),i.isHighlighted=!0},i.scroll=function(t,i,e){void 0===e&&(e=1);var n="up"===i||"down"===i,o=0,r=pt.alloc();if("pixel"===t)o=e;else if("line"===t)o=e*(n?this.scrollVerticalLineChange:this.scrollHorizontalLineChange);else if("page"===t)t=n?this.viewportBounds.height:this.viewportBounds.width,0!==(t*=this.scale)&&(o=e*Math.max(t-(n?this.scrollVerticalLineChange:this.scrollHorizontalLineChange),0));else{if("document"===t)return o=this.documentBounds,e=this.viewportBounds,"up"===i?this.position=r.h(e.x,o.y):"left"===i?this.position=r.h(o.x,e.y):"down"===i?this.position=r.h(e.x,o.bottom-e.height):"right"===i&&(this.position=r.h(o.right-e.width,e.y)),void pt.free(r);w("scrolling unit must be 'pixel', 'line', 'page', or 'document', not: "+t)}o/=this.scale,e=this.position,"up"===i?this.position=r.h(e.x,e.y-o):"down"===i?this.position=r.h(e.x,e.y+o):"left"===i?this.position=r.h(e.x-o,e.y):"right"===i?this.position=r.h(e.x+o,e.y):w("scrolling direction must be 'up', 'down', 'left', or 'right', not: "+i),pt.free(r)},i.tv=function(t){var i=this.viewportBounds;i.Re(t)||((t=t.center).x-=i.width/2,t.y-=i.height/2,this.position=t)},i.es=function(t){var i=this.viewportBounds;(t=t.center).x-=i.width/2,t.y-=i.height/2,this.position=t},i.op=function(t){var i=this.Ab;i.reset(),1!==this.Ca&&i.scale(this.Ca);var e=this.pa;return(0!==e.x||0!==e.y)&&isFinite(e.x)&&isFinite(e.y)&&i.translate(-e.x,-e.y),t.copy().transform(this.Ab)},i.zA=function(t){var i=this.Ab,e=t.x,n=t.y,o=e+t.width,r=n+t.height,s=i.m11,a=i.m12,h=i.m21,l=i.m22,u=i.dx,c=i.dy,f=e*s+n*h+u;i=e*a+n*l+c;var d=o*s+n*h+u;return t=o*a+n*l+c,n=e*s+r*h+u,e=e*a+r*l+c,s=o*s+r*h+u,o=o*a+r*l+c,r=Math.min(f,d),f=Math.max(f,d),d=Math.min(i,t),i=Math.max(i,t),r=Math.min(r,n),f=Math.max(f,n),d=Math.min(d,e),i=Math.max(i,e),r=Math.min(r,s),f=Math.max(f,s),new Bt(r,d=Math.min(d,o),f-r,(i=Math.max(i,o))-d)},i.Ps=function(t){var i=this.Ab;i.reset(),1!==this.Ca&&i.scale(this.Ca);var e=this.pa;return(0!==e.x||0!==e.y)&&isFinite(e.x)&&isFinite(e.y)&&i.translate(-e.x,-e.y),vt(t.copy(),this.Ab)},To.prototype.doModelChanged=function(t){var i=this;if(t.model===this.model){var e=t.change,n=t.propertyName;if(e===ce&&"S"===n[0])if("StartingFirstTransaction"===n){var o=this;(t=this.toolManager).mouseDownTools.each((function(t){return t.diagram=o})),t.mouseMoveTools.each((function(t){return t.diagram=o})),t.mouseUpTools.each((function(t){return t.diagram=o})),this.ld||this.hf||(this.Jk=!0,this.fn&&(this.kg=!0))}else"StartingUndo"===n||"StartingRedo"===n?((t=this.animationManager).defaultAnimation.isAnimating&&!this.skipsUndoManager&&t.Cc(),this.R("ChangingSelection",this.selection)):"StartedTransaction"===n&&((t=this.animationManager).defaultAnimation.isAnimating&&!this.skipsUndoManager&&t.Cc());else if(this.aa){this.aa=!1;try{if(""===t.modelChange&&e===ce){"FinishedUndo"!==n&&"FinishedRedo"!==n||(this.R("ChangedSelection",this.selection),Qo(this));var r=this.animationManager;"RolledBackTransaction"===n&&r.Cc(),this.bx(),this.Jk=!0,this.bd(),0!==this.undoManager.transactionLevel&&1!==this.undoManager.transactionLevel||Kn(r),"CommittedTransaction"===n&&this.undoManager.isJustDiscarded&&(this.Ce=Math.min(this.Ce,this.undoManager.historyIndex-1)),"CommittedTransaction"!==n&&"RolledBackTransaction"!==n||!this.undoManager.isPendingUnmodified||setTimeout((function(){i.isModified=!1}),1);var s=t.isTransactionFinished;if(s&&(vr(this),this.As.clear(),function(t){for(t=t.Ei.iterator;t.next();)t.value.Xk=!1}(this.animationManager)),!this.Rt&&s&&this.lastInput.targetDiagram){this.Rt=!0;var a=this;x((function(){a.currentTool.standardMouseOver(),a.Rt=!1}),10)}}}finally{this.aa=!0}}}},To.prototype.Wd=function(){this.partManager.Wd()},To.prototype.Aj=function(t,i){this.Yd.Aj(t,i)},To.prototype.Cj=function(t,i){this.Yd.Cj(t,i)},To.prototype.findPartForKey=function(t){return this.partManager.findPartForKey(t)},To.prototype.Vb=function(t){return this.partManager.Vb(t)},To.prototype.findLinkForKey=function(t){return this.partManager.findLinkForKey(t)},(i=To.prototype).Lc=function(t){return this.partManager.Lc(t)},i.ii=function(t){return this.partManager.ii(t)},i.Kc=function(t){return this.partManager.Kc(t)},i.ms=function(t){for(var i=[],e=0;e<arguments.length;++e)i[e]=arguments[e];return this.partManager.ms.apply(this.partManager,i instanceof Array?i:r(o(i)))},i.ls=function(t){for(var i=[],e=0;e<arguments.length;++e)i[e]=arguments[e];return this.partManager.ls.apply(this.partManager,i instanceof Array?i:r(o(i)))},i.Va=function(){if(this.Zi){var t=Bt.alloc();Mr(this,this.computeBounds(t)),Bt.free(t)}},i.rz=function(){for(var t=new $,i=this.nodes;i.next();){var e=i.value;e.isTopLevel&&t.add(e)}for(i=this.links;i.next();)(e=i.value).isTopLevel&&t.add(e);return t.iterator},i.qz=function(){return this.ai.iterator},i.Uz=function(t){Qo(this),t&&Sr(this,!0),this.ld?Nr(this,!1):(this.Jk=!0,$o(this))},i.yz=function(){for(var t=new Z,i=this.nodes;i.next();){var e=i.value;e.isTopLevel&&null===e.kh()&&t.add(e)}return t.iterator},i.Bj=function(t,i){return null!==(t=Lr(this,t))&&t.add(i),this},i.am=function(t,i){null!==(t=Lr(this,t))&&t.remove(i)},i.R=function(t,i,e){var n=Lr(this,t),o=new le;if(o.diagram=this,null!==(t=Tr(this,t))&&(o.name=t),void 0!==i&&(o.subject=i),void 0!==e&&(o.parameter=e),1===(i=n.length))n.M(0)(o);else if(0!==i)for(n=n.Fa(),e=0;e<i;e++)(0,n[e])(o)},i.Yj=function(t,i){return jr(this,!1,null,i||null).Yj(t.x,t.y,t.width,t.height)},To.prototype.computeOccupiedArea=function(t){return this.isVirtualized?this.viewportBounds.copy():this.Zi?Vo(this,t):t.assign(this.documentBounds)},To.prototype.gs=function(t){this.wp.assign(t),this.computeAutoScrollPosition(this.wp).Xa(this.position)?this.ug():Or(this)},To.prototype.ug=function(){-1!==this.vk&&(m.clearTimeout(this.vk),this.vk=-1)},To.prototype.computeAutoScrollPosition=function(t){var i=this.position,e=this.xp;if(0>=e.top&&0>=e.left&&0>=e.right&&0>=e.bottom)return i;var n=this.viewportBounds,o=this.scale;n=Bt.allocAt(0,0,n.width*o,n.height*o);var r=pt.allocAt(0,0);if(t.x>=n.x&&t.x<n.x+e.left&&this.allowHorizontalScroll){var s=Math.max(this.scrollHorizontalLineChange,1);s|=0,r.x-=s,t.x<n.x+e.left/2&&(r.x-=s),t.x<n.x+e.left/4&&(r.x-=4*s)}else t.x<=n.x+n.width&&t.x>n.x+n.width-e.right&&this.allowHorizontalScroll&&(s=Math.max(this.scrollHorizontalLineChange,1),s|=0,r.x+=s,t.x>n.x+n.width-e.right/2&&(r.x+=s),t.x>n.x+n.width-e.right/4&&(r.x+=4*s));return t.y>=n.y&&t.y<n.y+e.top&&this.allowVerticalScroll?(s=Math.max(this.scrollVerticalLineChange,1),s|=0,r.y-=s,t.y<n.y+e.top/2&&(r.y-=s),t.y<n.y+e.top/4&&(r.y-=4*s)):t.y<=n.y+n.height&&t.y>n.y+n.height-e.bottom&&this.allowVerticalScroll&&(s=Math.max(this.scrollVerticalLineChange,1),s|=0,r.y+=s,t.y>n.y+n.height-e.bottom/2&&(r.y+=s),t.y>n.y+n.height-e.bottom/4&&(r.y+=4*s)),r.Xa(et)||(i=new pt(i.x+r.x/o,i.y+r.y/o)),Bt.free(n),pt.free(r),i},(i=To.prototype).Cs=function(){return null},i.av=function(){return null},i.bs=function(t,i){this.pj.add(t,i)},i.Fu=function(t){(this.Pw=t)||this.nodes.each((function(t){t instanceof gc&&(t.$p=null)}))},i.Wz=function(t){return Vr?(void 0===t&&(t={}),t.returnType="Image",this.Jx(t)):null},i.Jx=function(t){return void 0===t&&(t={}),Ir(this,this.Xz,t)},i.Xz=function(t,i,e){var n=zr(e,t,"canvas",null);if(null===n)return null;var o=null;if(null!==(e=n.Z.canvas))switch(o=t.returnType,o=void 0===o?"string":o.toLowerCase(),o){case rs+"data":o=n.getImageData(0,0,e.width,e.height);break;case rs:(n=(t.document||document).createElement("img")).src=e.toDataURL(t.type,t.details),o=n;break;case"blob":return"function"!=typeof i&&w('Error: Diagram.makeImageData called with "returnType: toBlob", but no required "callback" function property defined.'),"function"==typeof e.toBlob?(e.toBlob(i,t.type,t.details),"toBlob"):(i(null),null);default:o=e.toDataURL(t.type,t.details)}return"function"==typeof i?(i(o),null):o},f.Object.defineProperties(To.prototype,{renderer:{get:function(){return this.nl},set:function(t){this instanceof Ns||(""===t&&(t="default"),(t=t.toLowerCase())!==this.nl&&(this.nl=t,"default"===t||"canvas"===t?(null!==(t=this.pj.get("svg"))&&t.Oa.remove(),this.ta&&(this.ib=this.ta.context)):"svg"===t?(this.pj.contains("svg")?t=this.pj.get("svg"):(t=new ya(this,m.document),this.bs("svg",t)),null!==this.div&&this.div.appendChild(t.Oa),this.ib=t.context,this.ta&&(this.ta.context.setTransform(this.Mb,0,0,this.Mb,0,0),this.ta.context.clearRect(0,0,this.Aa,this.ya))):"debug"!==t||this.pj.contains("SVG")||(t=new ya(this,m.document),this.bs("SVG",t),t.Oa.style.backgroundColor="whitesmoke",null!==this.div&&this.div.after(t.Oa)),this.hk()))}},div:{get:function(){return this.Ka},set:function(t){if(this.Ka!==t){var i=this.Ka;null!==i?(i.H=void 0,i.goDiagram=void 0,i.go=void 0,i.innerHTML="",null!==this.ta&&(i=this.ta.Oa,this.removeEventListener(i,"pointermove",this.dk,!1),this.removeEventListener(i,"pointerdown",this.ui,!1),this.removeEventListener(i,"pointerup",this.fk,!1),this.removeEventListener(i,"pointerout",this.ek,!1),this.removeEventListener(i,"pointercancel",this.ck,!1),this.ta.mx()),this.ol&&(this.ol.disconnect(),this.ol=null),null!==(i=this.toolManager)&&(i.mouseDownTools.each((function(t){t.cancelWaitAfter()})),i.mouseMoveTools.each((function(t){t.cancelWaitAfter()})),i.mouseUpTools.each((function(t){t.cancelWaitAfter()}))),i.cancelWaitAfter(),this.currentTool.doCancel(),this.ta=null,this.removeEventListener(m,"resize",this.Ov,!1),this.removeEventListener(m,"wheel",this.$j,!0),bo===this&&(bo=null)):null===this.ui&&(this.hf=!1),this.Ka=null,null!==t&&((i=t.H)&&(i.div=null),Fo(this,t),this.hk())}}},$w:{get:function(){return this.Sq}},pi:{get:function(){return this.hf}},draggedLink:{get:function(){return this.nt},set:function(t){this.nt!==t&&(this.nt=t,null!==t&&(this.Vt=t.fromPort,this.Wt=t.toPort))}},Mx:{get:function(){return this.Vt},set:function(t){this.Vt=t}},Nx:{get:function(){return this.Wt},set:function(t){this.Wt=t}},animationManager:{get:function(){return this.Yd}},undoManager:{get:function(){return this.cc.undoManager}},skipsUndoManager:{get:function(){return this.Wg},set:function(t){this.Wg=t,this.cc.skipsUndoManager=t}},delaysLayout:{get:function(){return this.lt},set:function(t){this.lt=t}},opacity:{get:function(){return this.pb},set:function(t){var i=this.pb;i!==t&&((0>t||1<t)&&M(t,"0 <= value <= 1",To,"opacity"),this.pb=t,this.g("opacity",i,t),this.N())}},validCycle:{get:function(){return this.wu},set:function(t){var i=this.wu;i!==t&&(this.wu=t,this.g("validCycle",i,t))}},layers:{get:function(){return this.Wa.iterator}},isModelReadOnly:{get:function(){var t=this.cc;return null!==t&&t.isReadOnly},set:function(t){var i=this.cc;null!==i&&(i.isReadOnly=t)}},isReadOnly:{get:function(){return this.Gg},set:function(t){var i=this.Gg;i!==t&&(this.Gg=t,this.g("isReadOnly",i,t))}},isEnabled:{get:function(){return this.Jd},set:function(t){var i=this.Jd;i!==t&&(this.Jd=t,this.g("isEnabled",i,t))}},allowClipboard:{get:function(){return this.Us},set:function(t){var i=this.Us;i!==t&&(this.Us=t,this.g("allowClipboard",i,t))}},allowCopy:{get:function(){return this.Fi},set:function(t){var i=this.Fi;i!==t&&(this.Fi=t,this.g("allowCopy",i,t))}},allowDelete:{get:function(){return this.Gi},set:function(t){var i=this.Gi;i!==t&&(this.Gi=t,this.g("allowDelete",i,t))}},allowDragOut:{get:function(){return this.Vs},set:function(t){var i=this.Vs;i!==t&&(this.Vs=t,this.g("allowDragOut",i,t))}},allowDrop:{get:function(){return this.Ws},set:function(t){var i=this.Ws;i!==t&&(this.Ws=t,this.g("allowDrop",i,t))}},allowTextEdit:{get:function(){return this.Pi},set:function(t){var i=this.Pi;i!==t&&(this.Pi=t,this.g("allowTextEdit",i,t))}},allowGroup:{get:function(){return this.Hi},set:function(t){var i=this.Hi;i!==t&&(this.Hi=t,this.g("allowGroup",i,t))}},allowUngroup:{get:function(){return this.Qi},set:function(t){var i=this.Qi;i!==t&&(this.Qi=t,this.g("allowUngroup",i,t))}},allowInsert:{get:function(){return this.Ys},set:function(t){var i=this.Ys;i!==t&&(this.Ys=t,this.g("allowInsert",i,t))}},allowLink:{get:function(){return this.Ii},set:function(t){var i=this.Ii;i!==t&&(this.Ii=t,this.g("allowLink",i,t))}},allowRelink:{get:function(){return this.Ki},set:function(t){var i=this.Ki;i!==t&&(this.Ki=t,this.g("allowRelink",i,t))}},allowMove:{get:function(){return this.Ji},set:function(t){var i=this.Ji;i!==t&&(this.Ji=t,this.g("allowMove",i,t))}},allowReshape:{get:function(){return this.Li},set:function(t){var i=this.Li;i!==t&&(this.Li=t,this.g("allowReshape",i,t))}},allowResize:{get:function(){return this.Mi},set:function(t){var i=this.Mi;i!==t&&(this.Mi=t,this.g("allowResize",i,t))}},allowRotate:{get:function(){return this.Ni},set:function(t){var i=this.Ni;i!==t&&(this.Ni=t,this.g("allowRotate",i,t))}},allowSelect:{get:function(){return this.Oi},set:function(t){var i=this.Oi;i!==t&&(this.Oi=t,this.g("allowSelect",i,t))}},allowUndo:{get:function(){return this.Zs},set:function(t){var i=this.Zs;i!==t&&(this.Zs=t,this.g("allowUndo",i,t))}},allowZoom:{get:function(){return this.at},set:function(t){var i=this.at;i!==t&&(this.at=t,this.g("allowZoom",i,t))}},hasVerticalScrollbar:{get:function(){return this.nn},set:function(t){var i=this.nn;i!==t&&(this.nn=t,this.Ee=!0,this.N(),this.g("hasVerticalScrollbar",i,t),Yo(this,!1))}},hasHorizontalScrollbar:{get:function(){return this.mn},set:function(t){var i=this.mn;i!==t&&(this.mn=t,this.Ee=!0,this.N(),this.g("hasHorizontalScrollbar",i,t),Yo(this,!1))}},allowHorizontalScroll:{get:function(){return this.Xs},set:function(t){var i=this.Xs;i!==t&&(this.Xs=t,this.g("allowHorizontalScroll",i,t),Yo(this,!1))}},allowVerticalScroll:{get:function(){return this.$s},set:function(t){var i=this.$s;i!==t&&(this.$s=t,this.g("allowVerticalScroll",i,t),Yo(this,!1))}},scrollHorizontalLineChange:{get:function(){return this.iu},set:function(t){var i=this.iu;i!==t&&(0>t&&M(t,">= 0",To,"scrollHorizontalLineChange"),this.iu=t,this.g("scrollHorizontalLineChange",i,t))}},scrollVerticalLineChange:{get:function(){return this.mu},set:function(t){var i=this.mu;i!==t&&(0>t&&M(t,">= 0",To,"scrollVerticalLineChange"),this.mu=t,this.g("scrollVerticalLineChange",i,t))}},lastInput:{get:function(){return this.cj},set:function(t){this.cj=t}},previousInput:{get:function(){return this.Qg},set:function(t){this.Qg=t}},firstInput:{get:function(){return this.bq},set:function(t){this.bq=t}},currentCursor:{get:function(){return this.it},set:function(t){if(""===t&&(t=this.Op),this.it!==t){var i=this.ta,e=this.Ka;if(null!==i&&null!==e){this.it=t;var n=i.style.cursor;i.style.cursor=t,e.style.cursor=t,i.style.cursor===n&&(i.style.cursor="-webkit-"+t,e.style.cursor="-webkit-"+t,i.style.cursor===n&&(i.style.cursor="-moz-"+t,e.style.cursor="-moz-"+t,i.style.cursor===n&&(i.style.cursor=t,e.style.cursor=t)))}}}},defaultCursor:{get:function(){return this.Op},set:function(t){""===t&&(t="auto");var i=this.Op;i!==t&&(this.Op=t,this.g("defaultCursor",i,t))}},click:{get:function(){return this.zh},set:function(t){var i=this.zh;i!==t&&(this.zh=t,this.g("click",i,t))}},doubleClick:{get:function(){return this.Fh},set:function(t){var i=this.Fh;i!==t&&(this.Fh=t,this.g("doubleClick",i,t))}},contextClick:{get:function(){return this.Bh},set:function(t){var i=this.Bh;i!==t&&(this.Bh=t,this.g("contextClick",i,t))}},mouseOver:{get:function(){return this.Qh},set:function(t){var i=this.Qh;i!==t&&(this.Qh=t,this.g("mouseOver",i,t))}},mouseHover:{get:function(){return this.Oh},set:function(t){var i=this.Oh;i!==t&&(this.Oh=t,this.g("mouseHover",i,t))}},mouseHold:{get:function(){return this.Nh},set:function(t){var i=this.Nh;i!==t&&(this.Nh=t,this.g("mouseHold",i,t))}},mouseDragOver:{get:function(){return this.Qt},set:function(t){var i=this.Qt;i!==t&&(this.Qt=t,this.g("mouseDragOver",i,t))}},mouseDrop:{get:function(){return this.Lh},set:function(t){var i=this.Lh;i!==t&&(this.Lh=t,this.g("mouseDrop",i,t))}},handlesDragDropForTopLevelParts:{get:function(){return this.xt},set:function(t){var i=this.xt;i!==t&&(this.xt=t,this.g("handlesDragDropForTopLevelParts",i,t))}},mouseEnter:{get:function(){return this.Mh},set:function(t){var i=this.Mh;i!==t&&(this.Mh=t,this.g("mouseEnter",i,t))}},mouseLeave:{get:function(){return this.Ph},set:function(t){var i=this.Ph;i!==t&&(this.Ph=t,this.g("mouseLeave",i,t))}},toolTip:{get:function(){return this.$h},set:function(t){var i=this.$h;i!==t&&(this.$h=t,this.g("toolTip",i,t))}},contextMenu:{get:function(){return this.Ch},set:function(t){var i=this.Ch;i!==t&&(this.Ch=t,this.g("contextMenu",i,t))}},commandHandler:{get:function(){return this.nb},set:function(t){this.nb!==t&&(this.nb=t,t.Xe(this))}},toolManager:{get:function(){return this.te},set:function(t){this.te!==t&&(this.te=t,t.diagram=this)}},defaultTool:{get:function(){return this.ob},set:function(t){var i=this.ob;i!==t&&(this.ob=t,t.diagram=this,this.currentTool===i&&(this.currentTool=t))}},currentTool:{get:function(){return this.hb},set:function(t){var i=this.hb;i&&(i.isActive&&i.doDeactivate(),i.cancelWaitAfter(),i.doStop()),null===t&&(t=this.defaultTool),null!==t&&(this.hb=t,t.diagram=this,t.doStart())}},selection:{get:function(){return this.Hw}},maxSelectionCount:{get:function(){return this.Nt},set:function(t){var i=this.Nt;if(i!==t)if(0<=t&&!isNaN(t)){if(this.Nt=t,this.g("maxSelectionCount",i,t),!this.undoManager.isUndoingRedoing&&0<(t=this.selection.count-t)){this.R("ChangingSelection",this.selection),i=this.selection.Fa();for(var e=0;e<t;e++)i[e].isSelected=!1;this.R("ChangedSelection",this.selection)}}else M(t,">= 0",To,"maxSelectionCount")}},nodeSelectionAdornmentTemplate:{get:function(){return this.St},set:function(t){var i=this.St;i!==t&&(this.St=t,this.g("nodeSelectionAdornmentTemplate",i,t))}},groupSelectionAdornmentTemplate:{get:function(){return this.wt},set:function(t){var i=this.wt;i!==t&&(this.wt=t,this.g("groupSelectionAdornmentTemplate",i,t))}},linkSelectionAdornmentTemplate:{get:function(){return this.Kt},set:function(t){var i=this.Kt;i!==t&&(this.Kt=t,this.g("linkSelectionAdornmentTemplate",i,t))}},highlighteds:{get:function(){return this.nw}},isModified:{get:function(){var t=this.undoManager;return t.isEnabled?null!==t.currentTransaction||this.rn&&this.Ce!==t.historyIndex:this.rn},set:function(t){if(this.rn!==t){this.rn=t;var i=this.undoManager;!t&&i.isEnabled&&(this.Ce=i.historyIndex),t||vr(this)}}},model:{get:function(){return this.cc},set:function(t){var i=this.cc;if(i!==t){this.currentTool.doCancel(),i&&i.undoManager!==t.undoManager&&i.undoManager.isInTransaction&&w("Do not replace a Diagram.model while a transaction is in progress."),this.animationManager.Cc(!0);var e=Ao(this,!0);this.hf=!1,this.fn=!0,this.Ce=-2,this.kg=!1;var n=this.vb;this.vb=!0,Hn(this.animationManager,"Model"),i&&(null!==this.pf&&this.pf.each((function(t){return i.ik(t)})),i.ik(this.Oc)),this.cc=t,this.partManager=function(t){return null!==(t=Rr.get(t))?new t:new Qf}(this.cc.type);for(var o=0;o<e.length;o++)this.add(e[o]);t.Pe(this.Hb),this.partManager.addAllModeledParts(),t.ik(this.Hb),t.Pe(this.Oc),null!==this.pf&&this.pf.each((function(i){return t.Pe(i)})),this.vb=n,this.Ya(),this.vb||this.N(),i&&t.undoManager.copyProperties(i.undoManager)}}},aa:{get:function(){return this.rw},set:function(t){this.rw=t}},As:{get:function(){return this.sy}},skipsModelSourceBindings:{get:function(){return this.Iw},set:function(t){this.Iw=t}},Ns:{get:function(){return this.ou},set:function(t){this.ou=t}},nodeTemplate:{get:function(){return this.Lg.I("")},set:function(t){var i=this.Lg.I("");i!==t&&(this.Lg.add("",t),this.g("nodeTemplate",i,t),this.undoManager.isUndoingRedoing||this.Wd())}},nodeTemplateMap:{get:function(){return this.Lg},set:function(t){var i=this.Lg;i!==t&&(this.Lg=t,this.g("nodeTemplateMap",i,t),this.undoManager.isUndoingRedoing||this.Wd())}},groupTemplate:{get:function(){return this.Yi.I("")},set:function(t){var i=this.Yi.I("");i!==t&&(this.Yi.add("",t),this.g("groupTemplate",i,t),this.undoManager.isUndoingRedoing||this.Wd())}},groupTemplateMap:{get:function(){return this.Yi},set:function(t){var i=this.Yi;i!==t&&(this.Yi=t,this.g("groupTemplateMap",i,t),this.undoManager.isUndoingRedoing||this.Wd())}},linkTemplate:{get:function(){return this.Kh.I("")},set:function(t){var i=this.Kh.I("");i!==t&&(this.Kh.add("",t),this.g("linkTemplate",i,t),this.undoManager.isUndoingRedoing||this.Wd())}},linkTemplateMap:{get:function(){return this.Kh},set:function(t){var i=this.Kh;i!==t&&(this.Kh=t,this.g("linkTemplateMap",i,t),this.undoManager.isUndoingRedoing||this.Wd())}},isMouseCaptured:{get:function(){return this.qw},set:function(t){var i=this.ta;null!==i&&((i=i.Oa)instanceof SVGElement||(t?(this.lastInput.bubbles=!1,this.removeEventListener(i,"pointermove",this.dk,!1),this.removeEventListener(i,"pointerdown",this.ui,!1),this.removeEventListener(i,"pointerup",this.fk,!1),this.removeEventListener(i,"pointerout",this.ek,!1),this.removeEventListener(i,"pointercancel",this.ck,!1),this.addEventListener(m,"pointermove",this.dk,!0),this.addEventListener(m,"pointerdown",this.ui,!0),this.addEventListener(m,"pointerup",this.fk,!0),this.addEventListener(m,"pointerout",this.ek,!0),this.addEventListener(m,"pointercancel",this.ck,!0),this.removeEventListener(i,"wheel",this.$j,!1),this.addEventListener(m,"wheel",this.$j,!0),this.addEventListener(m,"selectstart",this.preventDefault,!1)):(this.removeEventListener(m,"pointermove",this.dk,!0),this.removeEventListener(m,"pointerdown",this.ui,!0),this.removeEventListener(m,"pointerup",this.fk,!0),this.removeEventListener(m,"pointerout",this.ek,!0),this.removeEventListener(m,"pointercancel",this.ck,!0),this.addEventListener(i,"pointermove",this.dk,!1),this.addEventListener(i,"pointerdown",this.ui,!1),this.addEventListener(i,"pointerup",this.fk,!1),this.addEventListener(i,"pointerout",this.ek,!1),this.addEventListener(i,"pointercancel",this.ck,!1),this.removeEventListener(m,"wheel",this.$j,!0),this.removeEventListener(m,"selectstart",this.preventDefault,!1),this.addEventListener(i,"wheel",this.$j,!1)),this.qw=t))}},position:{get:function(){return this.pa},set:function(t){var i=pt.alloc().assign(this.pa);if(!i.D(t)){var e=this.viewportBounds.copy();this.pa.assign(t),$n(this.animationManager,i,this.pa),this.vb||null===this.ta&&!this.wo.w()?kr(this):(this.vb=!0,t=this.scale,Xo(this,this.Sp,this.Aa/t,this.ya/t,this.zk,!1),this.vb=!1),this.vb||this.onViewportBoundsChanged(e,this.viewportBounds,this.Ca,!1)}pt.free(i)}},initialPosition:{get:function(){return this.zt},set:function(t){this.zt.D(t)||(this.zt=t.J())}},initialScale:{get:function(){return this.At},set:function(t){this.At!==t&&(this.At=t)}},grid:{get:function(){return null===this.fe&&(this.fe=zo(this)),this.fe},set:function(t){var i=this.fe;if(i!==t){null===i&&(i=this.fe=zo(this)),t.type!==Ch.Grid&&w("Diagram.grid must be a Panel of type Panel.Grid");var e=i.panel;null!==e&&e.remove(i),this.fe=t,t.name="GRID",null!==e&&e.add(t),yr(this),this.N(),this.g("grid",i,t)}}},viewportBounds:{get:function(){return this.Rw}},viewSize:{get:function(){return this.wo},set:function(t){var i=this.viewSize;i.D(t)||(this.wo=t=t.J(),this.ya=this.Aa=0,t.w()?(this.Aa=t.width,this.ya=t.height):null!==this.Ka&&(this.Aa=this.Ka.clientWidth||1,this.ya=this.Ka.clientHeight||1),kr(this),this.Ya(),this.g("viewSize",i,t),this.redraw())}},fixedBounds:{get:function(){return this.ut},set:function(t){var i=this.ut;i.D(t)||(-1/0!==t.width&&1/0!==t.height&&-1/0!==t.height||w("fixedBounds width/height must not be Infinity"),this.ut=t=t.J(),this.Ya(),this.g("fixedBounds",i,t))}},scrollMargin:{get:function(){return this.rj},set:function(t){"number"==typeof t&&(t=new Wt(t));var i=this.rj;i.D(t)||(this.rj=t=t.J(),this.g("scrollMargin",i,t),this.hk())}},scrollMode:{get:function(){return this.sj},set:function(t){var i=this.sj;i!==t&&(this.sj=t,t===$r&&Yo(this,!1),this.g("scrollMode",i,t),this.Ee=!0,this.N())}},scrollsPageOnFocus:{get:function(){return this.nu},set:function(t){var i=this.nu;i!==t&&(this.nu=t,this.g("scrollsPageOnFocus",i,t))}},positionComputation:{get:function(){return this.Zt},set:function(t){var i=this.Zt;i!==t&&(this.Zt=t,Yo(this,!1),this.g("positionComputation",i,t))}},scaleComputation:{get:function(){return this.fu},set:function(t){var i=this.fu;i!==t&&(this.fu=t,mr(this,this.scale,this.scale),this.g("scaleComputation",i,t))}},documentBounds:{get:function(){return this.Sp}},isVirtualized:{get:function(){return this.It},set:function(t){var i=this.It;i!==t&&(this.It=t,this.g("isVirtualized",i,t))}},scale:{get:function(){return this.Ca},set:function(t){var i=this.Ca;i!==t&&mr(this,i,t)}},defaultScale:{get:function(){return this.Pp},set:function(t){this.Pp=t}},autoScale:{get:function(){return this.yh},set:function(t){var i=this.yh;i!==t&&(this.yh=t,this.g("autoScale",i,t),t!==Xr&&Yo(this,!1))}},initialAutoScale:{get:function(){return this.Fg},set:function(t){var i=this.Fg;i!==t&&(this.Fg=t,this.g("initialAutoScale",i,t))}},initialViewportSpot:{get:function(){return this.Bt},set:function(t){var i=this.Bt;i!==t&&(t.sb()||w("initialViewportSpot must be a specific Spot: "+t),this.Bt=t,this.g("initialViewportSpot",i,t))}},initialDocumentSpot:{get:function(){return this.yt},set:function(t){var i=this.yt;i!==t&&(t.sb()||w("initialViewportSpot must be a specific Spot: "+t),this.yt=t,this.g("initialDocumentSpot",i,t))}},minScale:{get:function(){return this.Ot},set:function(t){var i=this.Ot;i!==t&&(0<t?(this.Ot=t,this.g("minScale",i,t),t>this.scale&&(this.scale=t)):M(t,"> 0",To,"minScale"))}},maxScale:{get:function(){return this.Mt},set:function(t){var i=this.Mt;i!==t&&(0<t?(this.Mt=t,this.g("maxScale",i,t),t<this.scale&&(this.scale=t)):M(t,"> 0",To,"maxScale"))}},zoomPoint:{get:function(){return this.zu},set:function(t){this.zu.D(t)||(this.zu=t=t.J())}},contentAlignment:{get:function(){return this.zk},set:function(t){var i=this.zk;i.D(t)||(this.zk=t=t.J(),this.g("contentAlignment",i,t),Yo(this,!1))}},initialContentAlignment:{get:function(){return this.pq},set:function(t){var i=this.pq;i.D(t)||(this.pq=t=t.J(),this.g("initialContentAlignment",i,t))}},padding:{get:function(){return this.yb},set:function(t){"number"==typeof t&&(t=new Wt(t));var i=this.yb;i.D(t)||(this.yb=t=t.J(),this.Ya(),this.g("padding",i,t))}},partManager:{get:function(){return this.Pc},set:function(t){var i=this.Pc;i!==t&&(null!==t.diagram&&w("Cannot share PartManagers between Diagrams: "+t.toString()),i&&i.Xe(null),this.Pc=t,t.Xe(this))}},nodes:{get:function(){return this.partManager.nodes.iterator}},links:{get:function(){return this.partManager.links.iterator}},parts:{get:function(){return this.partManager.parts.iterator}},layout:{get:function(){return this.Sc},set:function(t){var i=this.Sc;i!==t&&(this.Sc=t,t.diagram=this,t.group=null,this.xh=!0,this.g("layout",i,t),this.$b())}},isTreePathToChildren:{get:function(){return this.Ht},set:function(t){var i=this.Ht;if(i!==t&&(this.Ht=t,this.g("isTreePathToChildren",i,t),!this.undoManager.isUndoingRedoing))for(t=this.nodes;t.next();)oc(t.value)}},treeCollapsePolicy:{get:function(){return this.uu},set:function(t){var i=this.uu;i!==t&&(t!==ts&&t!==is&&t!==es&&w("Unknown Diagram.treeCollapsePolicy: "+t),this.uu=t,this.g("treeCollapsePolicy",i,t))}},Ue:{get:function(){return this.pw},set:function(t){this.pw=t}},avoidanceCellSize:{get:function(){return this.aw},set:function(t){this.Xh=null,this.aw=new At(Math.max(1,t.width),Math.max(1,t.height))}},avoidanceLimit:{get:function(){return this.bw},set:function(t){this.bw=Math.max(1,t)}},autoScrollInterval:{get:function(){return this.vp},set:function(t){var i=this.vp;i!==t&&(this.vp=t,this.g("autoScrollInterval",i,t))}},autoScrollRegion:{get:function(){return this.xp},set:function(t){"number"==typeof t&&(t=new Wt(t));var i=this.xp;i.D(t)||(this.xp=t=t.J(),this.Ya(),this.g("autoScrollRegion",i,t))}}}),f.Object.defineProperties(To,{licenseKey:{get:function(){return ns.jc()},set:function(t){ns.add(t.replace(/\s/g,""))}},version:{get:function(){return os}}}),To.prototype.makeImageData=To.prototype.Jx,To.prototype.makeImage=To.prototype.Wz,To.prototype.cacheGroupExternalLinks=To.prototype.Fu,To.prototype.addRenderer=To.prototype.bs,To.prototype.makeSVG=To.prototype.av,To.prototype.makeSvg=To.prototype.Cs,To.prototype.stopAutoScroll=To.prototype.ug,To.prototype.doAutoScroll=To.prototype.gs,To.prototype.isUnoccupied=To.prototype.Yj,To.prototype.raiseDiagramEvent=To.prototype.R,To.prototype.removeDiagramListener=To.prototype.am,To.prototype.addDiagramListener=To.prototype.Bj,To.prototype.findTreeRoots=To.prototype.yz,To.prototype.layoutDiagram=To.prototype.Uz,To.prototype.findTopLevelGroups=To.prototype.qz,To.prototype.findTopLevelNodesAndLinks=To.prototype.rz,To.prototype.ensureBounds=To.prototype.Va,To.prototype.findLinksByExample=To.prototype.ls,To.prototype.findNodesByExample=To.prototype.ms,To.prototype.findLinkForData=To.prototype.Kc,To.prototype.findNodeForData=To.prototype.ii,To.prototype.findPartForData=To.prototype.Lc,To.prototype.findLinkForKey=To.prototype.findLinkForKey,To.prototype.findNodeForKey=To.prototype.Vb,To.prototype.findPartForKey=To.prototype.findPartForKey,To.prototype.rebuildParts=To.prototype.Wd,To.prototype.transformViewToDoc=To.prototype.Ps,To.prototype.transformRectDocToView=To.prototype.zA,To.prototype.transformDocToView=To.prototype.op,To.prototype.centerRect=To.prototype.es,To.prototype.scrollToRect=To.prototype.tv,To.prototype.scroll=To.prototype.scroll,To.prototype.highlightCollection=To.prototype.Jz,To.prototype.highlight=To.prototype.Iz,To.prototype.selectCollection=To.prototype.rA,To.prototype.select=To.prototype.select,To.prototype.updateAllRelationshipsFromData=To.prototype.rp,To.prototype.updateAllTargetBindings=To.prototype.updateAllTargetBindings,To.prototype.commit=To.prototype.commit,To.prototype.rollbackTransaction=To.prototype.Kf,To.prototype.commitTransaction=To.prototype.eb,To.prototype.startTransaction=To.prototype.Ea,To.prototype.raiseChanged=To.prototype.g,To.prototype.raiseChangedEvent=To.prototype.cb,To.prototype.removeChangedListener=To.prototype.ik,To.prototype.addChangedListener=To.prototype.Pe,To.prototype.removeModelChangedListener=To.prototype.mA,To.prototype.addModelChangedListener=To.prototype.Yw,To.prototype.findLayer=To.prototype.Qj,To.prototype.removeLayer=To.prototype.kA,To.prototype.addLayerAfter=To.prototype.Cy,To.prototype.addLayerBefore=To.prototype.Ww,To.prototype.addLayer=To.prototype.Al,To.prototype.moveParts=To.prototype.moveParts,To.prototype.copyParts=To.prototype.Kj,To.prototype.removeParts=To.prototype.Is,To.prototype.remove=To.prototype.remove,To.prototype.add=To.prototype.add,To.prototype.clearDelayedGeometries=To.prototype.bx,To.prototype.setProperties=To.prototype.nm,To.prototype.attach=To.prototype.Du,To.prototype.set=To.prototype.set,To.prototype.resetInputOptions=To.prototype.Sx,To.prototype.setInputOption=To.prototype.sA,To.prototype.getInputOption=To.prototype.Ql,To.prototype.resetRenderingHints=To.prototype.Tx,To.prototype.setRenderingHint=To.prototype.Xx,To.prototype.getRenderingHint=To.prototype.Gf,To.prototype.maybeUpdate=To.prototype.bd,To.prototype.requestUpdate=To.prototype.$b,To.prototype.delayInitialization=To.prototype.Xy,To.prototype.isUpdateRequested=To.prototype.Pz,To.prototype.invalidateDocumentBounds=To.prototype.Ya,To.prototype.findObjectsNear=To.prototype.og,To.prototype.findPartsNear=To.prototype.mz,To.prototype.findObjectsIn=To.prototype.Cf,To.prototype.findPartsIn=To.prototype.ux,To.prototype.findObjectsAt=To.prototype.ji,To.prototype.findPartsAt=To.prototype.lz,To.prototype.findObjectAt=To.prototype.ic,To.prototype.findPartAt=To.prototype.Ol,To.prototype.focusObject=To.prototype.zz,To.prototype.alignDocument=To.prototype.Jy,To.prototype.zoomToRect=To.prototype.BA,To.prototype.zoomToFit=To.prototype.zoomToFit,To.prototype.diagramScroll=To.prototype.kx,To.prototype.focus=To.prototype.focus;var Rr=new dt,Er=null,Vr=void 0!==m.document,Yr=null,Gr="",Xr=new V(To,"None",0),Ur=new V(To,"Uniform",1),qr=new V(To,"UniformToFill",2),Hr=new V(To,"CycleAll",10),Kr=new V(To,"CycleNotDirected",11),Wr=new V(To,"CycleNotDirectedFast",12),Jr=new V(To,"CycleNotUndirected",13),Zr=new V(To,"CycleDestinationTree",14),_r=new V(To,"CycleSourceTree",15),$r=new V(To,"DocumentScroll",1),Qr=new V(To,"InfiniteScroll",2),ts=new V(To,"TreeParentCollapsed",21),is=new V(To,"AllParentsCollapsed",22),es=new V(To,"AnyParentsCollapsed",23),ns=new Z,os="2.3.10",rs="image",ss=null,as=!1;function hs(){this.wy=null,this.j="zz@orderNum","63ad05bbe23a1786468a4c741b6d2"===this._tk?this.Rc=this.j=!0:this.Rc=null}function ls(t,i){if(i.ib.setTransform(i.Mb,0,0,i.Mb,0,0),i.ib.yc(),null===t.Rc)t:{i="f";var e=m[I("76a715b2f73f148a")][I("72ba13b5")]||"";if(t.Rc=!0,Vr){var n=To[I("76a115b6ed251eaf4692")];if(n)for(var o=ns.iterator;o.next()&&!(6>(n=I(n=o.value).split(I("39e9"))).length);){var r=I(n[1]).split(".");if("7da71ca0"!==n[4])break;var s=I(y[I("6cae19")]).split(".");if(r[0]>s[0]||r[0]===s[0]&&r[1]>=s[1]){var a=m[I("74a900bae4370f8b51")][I("6fbb13a1c2311e8a57")].toLowerCase();if(s=a[I("73a612b6fb191d")](I("3aad1ab6e022098b4dc4")),r=I(n[2]),-1<s&&(a=a[I("73a612b6fb191d")](r.toLowerCase()+"/"),t.Rc=!(-1<a&&a<s),!t.Rc))break;for(s=e[I("76ad18b4f73e")],a=e[I("73a612b6fb191d")](I("35e7"))+2;a<s;a++)i+=e[a];if(0>(s=i[I("73a612b6fb191d")](r))&&r!==I("7da71ca0ad381e90")&&(s=i[I("73a612b6fb191d")](I("76a715b2ef3e149757"))),0>s&&(s=i[I("73a612b6fb191d")](I("76a715b2ef3e149757"))),0>s&&(s=i[I("73a612b6fb191d")](I("2bfa41fdb3784bca12"))),0>s&&(s=e[I("73a612b6fb191d")](I("7baa19a6f76c1988428554"))),t.Rc=!(0<=s&&s<i[I("73a612b6fb191d")](I("35"))||-1===i[I("73a612b6fb191d")](I("35"))),!t.Rc)break;if(e[I("73a612b6fb191d")](I("7fb002b6ed25128b4da25b2e"))&&(t.Rc=!(-1<e[I("73a612b6fb191d")](r)),!t.Rc))break;if(-1<(a=(s=m[I("76a715b2f73f148a")][I("69ad17a1e03e")])[I("73a612b6fb191d")](I("7fb002b6ed25128b4da25b2e")))&&(t.Rc=!(s[I("73a612b6fb191d")](r)>a),!t.Rc))break;if("#"===r[0]){s=m.document.createElement("div");for(var h=n[0].replace(/[A-Za-z]/g,"");4>h.length;)h+="9";if(a=h,h=h.substr(h.length-4),n="",n+=["gsh","gsf"][parseInt(h.substr(0,1),10)%2],n+=["Header","Background","Display","Feedback"][parseInt(h.substr(0,1),10)%4],s[I("79a417a0f0181a8946")]=n,m.document[I("78a712aa")]){m.document[I("78a712aa")][I("7bb806b6ed32388c4a875b")](s),h=m.getComputedStyle(s).getPropertyValue(I("78a704b7e62456904c9b12701b6532a8"));var l=m.getComputedStyle(s).getPropertyValue(I("75b817b0ea2202"));if(m.document[I("78a712aa")][I("68ad1bbcf533388c4a875b")](s),h){if(s=m[I("77a902b0eb1b1e804a8a")],l==="0."+parseInt(a,10)%100||-1!==h.indexOf(parseInt(r[1]+r[2],16))&&-1!==h.indexOf(parseInt(r[3]+r[4],16))){t.Rc=!1;break}if(s&&s(I("32ae19a1e0331fc94084537c067a67fa59f1386b89d006")).matches)for(n="."+n,r=0;r<document.styleSheets.length;r++)for(var u in s=document.styleSheets[r].rules||document.styleSheets[r].cssRules)if(n===s[u].selectorText){t.Rc=!1;break t}}}else t.Rc=null,t.Rc=!1}}}else{for(u=e[I("76ad18b4f73e")],o=e[I("73a612b6fb191d")](I("35e7"))+2;o<u;o++)i+=e[o];e=i[I("73a612b6fb191d")](I("7da71ca0ad381e90")),t.Rc=!(0<=e&&e<i[I("73a612b6fb191d")](I("35")))}}}return 0<t.Rc&&t!==t.wy}function us(t){this.j=void 0===t?new pt:t,this.o=new pt}To.className="Diagram",To.fromDiv=function(t){var i=t;return"string"==typeof t&&(i=m.document.getElementById(t)),i instanceof HTMLDivElement&&i.H instanceof To?i.H:null},To.inherit=function(t,i){function e(){}if(Object.getPrototypeOf(t).prototype)throw Error("Used go.Diagram.inherit defining already defined class \n"+t);e.prototype=i.prototype,t.prototype=new e,t.prototype.constructor=t},To.useDOM=function(t){Vr=!!t&&void 0!==m.document},To.isUsingDOM=function(){return Vr},To.None=Xr,To.Uniform=Ur,To.UniformToFill=qr,To.CycleAll=Hr,To.CycleNotDirected=Kr,To.CycleNotDirectedFast=Wr,To.CycleNotUndirected=Jr,To.CycleDestinationTree=Zr,To.CycleSourceTree=_r,To.DocumentScroll=$r,To.InfiniteScroll=Qr,To.TreeParentCollapsed=ts,To.AllParentsCollapsed=is,To.AnyParentsCollapsed=es,hs.className="DiagramHelper",f.Object.defineProperties(us.prototype,{point:{get:function(){return this.j},set:function(t){this.j=t}},shifted:{get:function(){return this.o},set:function(t){this.o=t}}});var cs,fs,ds,ps,gs,ms,ys,vs,xs,bs,ws="DraggingInfo";function ks(t,i,e){this.node=t,this.info=i,this.Su=e}function Ms(){this.reset()}function Ss(t,i){if("string"==typeof t||m.Element&&t instanceof Element)var e=To.call(this,t)||this;else e=To.call(this)||this,i=t;return Ps(e),i&&e.nm(i),e}function Ps(t){t.allowDragOut=!0,t.allowMove=!1,t.isReadOnly=!0,t.contentAlignment=ii,t.layout=new Xf}function Ns(t,i){if("string"==typeof t||m.Element&&t instanceof Element)var e=To.call(this,t)||this;else e=To.call(this)||this,i=t;var n=e;e.animationManager.isEnabled=!1,e.vb=!0,e.V=null,e.mn=!1,e.nn=!1,e.F=!0,e.u=!0,e.ia=0,e.o=!1,e.ql=null,e.Xx("drawShadows",!1),t=new ku;var o=new pl;return o.stroke="magenta",o.strokeWidth=2,o.fill="transparent",o.name="BOXSHAPE",t.selectable=!0,t.selectionAdorned=!1,t.selectionObjectName="BOXSHAPE",t.locationObjectName="BOXSHAPE",t.resizeObjectName="BOXSHAPE",t.cursor="move",t.add(o),e.j=t,e.allowCopy=!1,e.allowDelete=!1,e.allowSelect=!0,e.autoScrollRegion=new Wt(0,0,0,0),e.pa.h(0,0),e.toolManager.gb("Dragging",new Ls,e.toolManager.mouseMoveTools),e.click=function(){var t=n.observed;if(null!==t){var i=t.viewportBounds,e=n.lastInput.documentPoint;t.position=new pt(e.x-i.width/2,e.y-i.height/2)}},e.Pf=function(){n.Ya(),Ts(n)},e.Xd=function(){null!==n.observed&&(n.Ya(),n.N())},e.Ha=function(){1>n.updateDelay?n.N():n.o||(n.o=!0,setTimeout((function(){return n.redraw()}),n.updateDelay))},e.Of=function(){null!==n.observed&&Ts(n)},e.autoScale=Ur,e.vb=!1,i&&Object.assign(e,i),e}function Cs(t){var i=t.observed;if(null!==i){var e=t.drawsTemporaryLayers,n=t.drawsGrid&&e,o=i.grid;n&&null!==o&&o.visible&&!isNaN(o.width)&&!isNaN(o.height)&&(yr(i,o=Bt.alloc().assign(t.viewportBounds).ed(i.viewportBounds)),Bt.free(o),Qo(i));var r=t.Ab;r.reset(),1!==t.scale&&r.scale(t.scale),0===t.position.x&&0===t.position.y||r.translate(-t.position.x,-t.position.y),(o=t.ib).scale(t.Mb,t.Mb),o.transform(r.m11,r.m12,r.m21,r.m22,r.dx,r.dy),o.yc(),r=(i=i.Wa.s).length;for(var s=0;s<r;s++){var a=i[s],h=t;if(a.visible&&0!==a.opacity){var l=a.diagram.grid.part;if(!e&&a.isTemporary)n&&l.layer===a&&(a=Po(a,o),l.gc(o,h),o.globalAlpha=a);else{for(var u=Po(a,o),c=h.scale,f=Bt.alloc(),d=a.Pa.s,p=d.length,g=0;g<p;g++){var m=d[g];(n||m!==l)&&a.Oj(o,m,h,null,c,f,!1)}Bt.free(f),o.globalAlpha=u}}}}}function Ts(t){var i=t.box;if(null!==i){var e=t.observed;if(null!==e){t.Fc=!0,e=e.viewportBounds;var n=i.selectionObject,o=At.alloc();o.h(e.width,e.height),n.desiredSize=o,At.free(o),t=2/t.scale,n instanceof pl&&(n.strokeWidth=t),i.location=new pt(e.x-t/2,e.y-t/2),i.isSelected=!0}}}function Ls(){Te.call(this),this.j=null}function As(){Q(this),this.H=bo,this.Ha=this.u=this.o=!0,this.F=this.V=this.nb=this.ia=!1,this.ij=this.j=null,this.Hb=1.05,this.Jt=NaN,this.sw=null,this.Au=NaN,this.yu=qt,this.hb=!0,this.cg=null,this.ob=200}function js(t,i,e){if(i.isVisible())return e;if(i instanceof Ku)js(t,i.adornedPart,e);else if(i instanceof wc){var n=i.fromNode;null!==n&&js(t,n,e),null!==(i=i.toNode)&&js(t,i,e)}else i instanceof Ju&&(null!==(n=i.labeledLink)&&js(t,n,e),null!==(n=i.pg())&&(n.isTreeExpanded||n.wasTreeExpanded||e.push(n),js(t,n,e))),null!==(i=i.containingGroup)&&(i.isSubGraphExpanded||i.wasSubGraphExpanded||e.push(i),js(t,i,e));return e}function Fs(t){var i=A();for(t=t.iterator;t.next();){var e=t.value;e instanceof wc||i.push(e)}t=new $,e=i.length;for(var n=0;n<e;n++){for(var o=i[n],r=!0,s=0;s<e;s++)if(o.Td(i[s])){r=!1;break}r&&t.add(o)}return j(i),t}function Ds(){Q(this),this.l=30723,this.pb=1,this.bn="",this.Ma=this.Me=null,this.pa=new pt(NaN,NaN).freeze(),this.jd=Tt,this.Ab=new Yi,this.wh=new Yi,this.Lb=null,this.Ca=this.Kk=1,this.Kb=0,this.Kg=_t,this.uc=new Bt(NaN,NaN,NaN,NaN).freeze(),this.Ib=new Bt(NaN,NaN,NaN,NaN).freeze(),this.dc=new Bt(0,0,NaN,NaN).freeze(),this.ba=this.Yn=this.Zn=null,this.sk=this.Jb=Si,this.Ag=this.io=0,this.V=this.tb=this.Dh=this.A=this.Ua=null,this.Uc=!1,this.jo=this.Ng=null}function Bs(t){null===t.A?t.A=new fa:t.A.nc&&(t.A=t.A.copy())}function Os(t,i,e){var n=t.ih();if(null!==n)for(var o=t.localBindings.iterator;o.next();){var r=o.value,s=null;if(null!==r.sourceName){if(null===(s=Xd(r,n,t)))continue;r.sp(t,s,e,null)}else if(r.isToModel){var a=i.diagram;null===a||a.skipsModelSourceBindings||r.sp(t,a.model.modelData,e,n)}else{if(null===(a=n.data))continue;var h=i.diagram;null===h||h.skipsModelSourceBindings||r.sp(t,a,e,n)}s===t&&(null!==(a=n.ks(r.Ai))&&r.Mv(a,s,e))}}function Is(t,i,e,n){return!1!==t.pickable&&(n.multiply(t.transform),e?t.Yc(i,n):t.fh(i,n))}function zs(t,i,e,n,o){if(t.Ib.h(i,e,n,o),!t.desiredSize.w()){var r=t.uc;i=(e=t.Kg).right+e.left;var s=e.top+e.bottom;switch(e=r.width+i,r=r.height+s,n+=i,o+=s,i=Ks(t,!0),e===n&&r===o&&(i=fs),i){case fs:(e>n||r>o)&&(ea(t,!0),t.measure(e>n?n:e,r>o?o:r,0,0));break;case cs:ea(t,!0),t.measure(n,o,0,0);break;case ps:ea(t,!0),t.measure(n,r,0,0);break;case gs:ea(t,!0),t.measure(e,o,0,0)}}}function Rs(t,i){return null!==i&&(Vh(i)&&(i=i.panel),0!=(512&i.l)||(i.type===Ch.Auto||i.type===Ch.Spot)&&i.Pb()!==t)}function Es(t,i,e,n){Us(t,i,t.areaBackground,!0,!0,e,n),t.areaBackground instanceof Ia&&t.areaBackground.type===$a?(i.beginPath(),i.rect(n.x,n.y,n.width,n.height),i.ng(t.areaBackground)):i.fillRect(n.x,n.y,n.width,n.height)}function Vs(t,i,e,n){var o=t.kq(),r=e.x,s=e.y,a=e.width+o,h=e.height+o;Us(t,i,t.Ma,!0,!1,e,n),t.Ma instanceof Ia&&t.Ma.type===$a?(i.beginPath(),i.rect(r-o/2,s-o/2,a,h),i.ng(t.Ma)):i.fillRect(r-o/2,s-o/2,a,h)}function Ys(t,i,e){for(var n=i.O.s,o=n.length,r=-1,s=0;s<o;s++)if(n[s]===t){r=s;break}if(-1!==(t=r))if(0===t)i.svg.gd?i.svg.gd.after(e):i.svg.Ma?i.svg.Ma.after(e):i.type===Ch.Table?null!==(i=0!==(i=i.svg.getElementsByClassName("gojs-ts")).length?i[0]:null)&&i.after(e):i.svg.prepend(e);else{for(;0!==t&&!i.M(t-1).Ed();)t--;0===t?i.svg.prepend(e):null!==(t=i.M(t-1).svg)?t.after(e):i.svg.appendChild(e)}}function Gs(t,i){null!==(i=i.getAttribute("clip-path"))&&(null!==(t=t.svg.getElementById(i.split("#")[1].slice(0,-1)))&&t.remove())}function Xs(t){if(null!==t.svg){var i=t.svg.innerHTML.match(/url\(#((CLIP|GRAD).+?)\)/g),e=t.svg.ownerDocument;if(null!==i)for(var n=(i=o(i)).next();!n.done;n=i.next())null!==(n=e.getElementById(n.value.split("#")[1].slice(0,-1)))&&n.remove();t.svg.remove()}}function Us(t,i,e,n,o,r,s){if(null!==e){var a=1,h=1;if("string"==typeof e)n?i.fillStyle=e:i.strokeStyle=e;else if(e.type===Za)n?i.fillStyle=e.color:i.strokeStyle=e.color;else{var l=t.kq();if(a=r.width,h=r.height,o?(a=s.width,h=s.height):n||(a+=l,h+=l),(r=i instanceof Da)&&e.xe&&(e.type===Qa||e.yk===a&&e.ft===h))var u=e.xe;else{var c=0,f=0,d=0,p=0,g=0,m=0;if(m=g=0,o?(g=s.x,m=s.y):n||(g-=l/2,m-=l/2),c=e.start.x*a+e.start.offsetX,f=e.start.y*h+e.start.offsetY,d=e.end.x*a+e.end.offsetX,p=e.end.y*h+e.end.offsetY,c+=g,d+=g,f+=m,p+=m,e.type===_a)u=i.createLinearGradient(c,f,d,p);else if(e.type===$a)m=isNaN(e.endRadius)?Math.max(a,h)/2:e.endRadius,isNaN(e.startRadius)?(g=0,m=Math.max(a,h)/2):g=e.startRadius,u=i.createRadialGradient(c,f,g,d,p,m);else if(e.type===Qa)try{u=i.createPattern(e.pattern,"repeat")}catch(t){u=null}if(e.type!==Qa&&null!==(o=e.colorStops))for(o=o.iterator;o.next();)u.addColorStop(o.key,o.value);if(r&&(e.xe=u,null!==u&&(e.yk=a,e.ft=h),null===u&&e.type===Qa&&-1!==e.yk)){e.yk=-1;var y=t.diagram;null!==y&&-1===e.yk&&x((function(){y.redraw()}),600)}}n?i.fillStyle=u:i.strokeStyle=u}}}function qs(t){if(0!=(2048&t.l)==!0){var i=t.Ab;if(i.reset(),!t.Ib.w()||!t.uc.w())return void Qs(t,!1);if(i.translate(t.Ib.x-t.uc.x,t.Ib.y-t.uc.y),1!==t.scale||0!==t.angle){var e=t.naturalBounds;t.no(i,e.x,e.y,e.width,e.height)}Qs(t,!1),ta(t,!0)}0!=(4096&t.l)==!0&&(null===(i=t.panel)?(t.wh.set(t.Ab),t.Kk=t.scale,ta(t,!1)):null!==i.oe&&((e=t.wh).reset(),i.se()?e.multiply(i.wh):null!==i.panel&&e.multiply(i.panel.wh),e.multiply(t.Ab),t.Kk=t.scale*i.Kk,ta(t,!1)))}function Hs(t){if(!na(t)){var i=t.panel;null!==i?i.v():t.Dd()&&(null!==(i=t.diagram)&&(i.De.add(t),t instanceof Ju&&t.Bd(),i.$b())),oa(t,!0)}}function Ks(t,i){var e=t.stretch,n=t.panel;return null!==n&&n.type===Ch.Table?Ws(t,n.Fb(t.row),n.Eb(t.column),i):null!==n&&n.type===Ch.Auto&&n.Pb()===t?Js(t,cs,i):e===ms?null!==n?n.type===Ch.Spot&&n.Pb()===t?Js(t,cs,i):Js(t,(e=n.defaultStretch)===ms?fs:e,i):Js(t,fs,i):Js(t,e,i)}function Ws(t,i,e,n){var o=t.stretch;if(o!==ms)return Js(t,o,n);var r=o=null;switch(i.stretch){case gs:case cs:r=!0}switch(e.stretch){case ps:case cs:o=!0}return i=t.panel.defaultStretch,null===o&&(o=i===ps||i===cs),null===r&&(r=i===gs||i===cs),Js(t,!0===o&&!0===r?cs:!0===o?ps:!0===r?gs:fs,n)}function Js(t,i,e){if(e)return i;if(i===fs)return fs;if((e=t.desiredSize).w())return fs;if(t=t.angle,!isNaN(e.width))if(90!==t&&270!==t){if(i===ps)return fs;if(i===cs)return gs}else{if(i===gs)return fs;if(i===cs)return ps}if(!isNaN(e.height))if(90!==t&&270!==t){if(i===gs)return fs;if(i===cs)return ps}else{if(i===ps)return fs;if(i===cs)return gs}return i}function Zs(t,i){t.l=i?512|t.l:-513&t.l}function _s(t){return 0!=(1024&t.l)}function $s(t,i){t.l=i?1024|t.l:-1025&t.l}function Qs(t,i){t.l=i?2048|t.l:-2049&t.l}function ta(t,i){t.l=i?4096|t.l:-4097&t.l}function ia(t){return 0!=(8192&t.l)}function ea(t,i){t.l=i?8192|t.l:-8193&t.l}function na(t){return 0!=(16384&t.l)}function oa(t,i){t.l=i?16384|t.l:-16385&t.l}function ra(t){var i=t.part;if(i instanceof Ju&&(null!==t.portId||t===i.port)){var e=i.diagram;null===e||e.undoManager.isUndoingRedoing||Qu(i,t)}}function sa(t){var i=t.diagram;null===i||i.undoManager.isUndoingRedoing||(t instanceof Ch?t instanceof Ju?t.Bd():t.qm(t,(function(t){ra(t)})):ra(t))}function aa(t,i){for(var e=1;e<arguments.length;++e);e=arguments;var n=null,o=null;if("function"==typeof t)o=t;else if("string"==typeof t){var r=ca.I(t);"function"==typeof r?P(n=r(e=C(arguments)))||w('GraphObject.make invoked object builder "'+t+'", but it did not return an Object'):o=m.go[t]}if(null===n&&(null!=o&&o.constructor||w("GraphObject.make requires a class function or GoJS class name or name of an object builder, not: "+t),n=new o),o=1,n instanceof To&&1<e.length){r=n;var s=e[1];("string"==typeof s||s instanceof HTMLDivElement)&&(Fo(r,s),o++)}for(;o<e.length;o++)void 0===(r=e[o])?w("Undefined value at argument "+o+" for object being constructed by GraphObject.make: "+n):ha(n,r);return n}function ha(t,i){if("string"==typeof i)if(t instanceof Nl)t.text=i;else if(t instanceof pl)t.figure=i;else if(t instanceof ou)t.source=i;else if(t instanceof Ch)null!==(i=rl.I(i))&&(t.type=i);else if(t instanceof Ia){var e=Y(Ia,i);null!==e?t.type=e:w("Unknown Brush type as an argument to GraphObject.make: "+i)}else t instanceof Ui?null!==(i=Y(Ui,i))&&(t.type=i):t instanceof Qi&&(null!==(i=Y(Qi,i))&&(t.type=i));else if(i instanceof Ds)t instanceof Ch||w("A GraphObject can only be added to a Panel, not to: "+t),t.add(i);else if(i instanceof hl){var n;i.isRow&&"function"==typeof t.getRowDefinition?n=t.getRowDefinition(i.index):i.isRow||"function"!=typeof t.getColumnDefinition||(n=t.getColumnDefinition(i.index)),n instanceof hl?ll(n,i):w("A RowColumnDefinition can only be added to an object that implements getRowDefinition/getColumnDefinition, not to: "+t)}else if(i instanceof V)"function"==typeof t.qb&&t.qb(i);else if(i instanceof ch)t.type=i;else if(i instanceof Gd)t instanceof Ds||t instanceof hl?t.bind(i):w("A Binding can only be applied to a GraphObject or RowColumnDefinition, not to: "+t);else if(i instanceof vo)t instanceof Ds?t.Jv(i):w("An AnimationTrigger can only be applied to a GraphObject, not to: "+t);else if(i instanceof $i)t instanceof Ui&&t.type===Ui.o?t.figures.add(i):w("A PathFigure can only be added to a Path Geometry, not to: "+t);else if(i instanceof Qi)t instanceof $i?t.segments.add(i):w("A PathSegment can only be added to a PathFigure, not to: "+t);else if(i instanceof Ff)t instanceof To||t instanceof gc?t.layout=i:w("A Layout can only be assigned to a Diagram or a Group, not to: "+t);else if(Array.isArray(i))for(e=0;e<i.length;e++)ha(t,i[e]);else if("object"==typeof i&&null!==i)if(t instanceof Ia){for(var o in e=new X,i)n=parseFloat(o),isNaN(n)?e[o]=i[o]:t.addColorStop(n,i[o]);nr(t,e)}else if(t instanceof hl){for(e in void 0!==i.row?((null==(o=i.row)||1/0===o||isNaN(o)||0>o)&&w("Must specify non-negative integer row for RowColumnDefinition "+i+", not: "+o),t.isRow=!0,t.index=o):void 0!==i.column&&((null==(o=i.column)||1/0===o||isNaN(o)||0>o)&&w("Must specify non-negative integer column for RowColumnDefinition "+i+", not: "+o),t.isRow=!1,t.index=o),o=new X,i)"row"!==e&&"column"!==e&&(o[e]=i[e]);nr(t,o)}else nr(t,i);else w('Unknown initializer "'+i+'" for object being constructed by GraphObject.make: '+t)}function la(t,i){ca.add(t,i)}function ua(t,i,e){void 0===e&&(e=null);var n=t[1];if("function"==typeof e?e(n):"string"==typeof n)return t.splice(1,1),n;if(void 0===i)throw Error("no "+("function"==typeof e?"satisfactory":"string")+" argument for GraphObject builder "+t[0]);return i}us.className="DraggingInfo",ks.className="DraggingNodeInfoPair",Ms.prototype.reset=function(){this.isGridSnapEnabled=!1,this.isGridSnapRealtime=!0,this.gridSnapCellSize=new At(NaN,NaN).freeze(),this.gridSnapCellSpot=ti,this.gridSnapOrigin=new pt(NaN,NaN).freeze(),this.groupsSnapMembers=this.dragsTree=this.dragsLink=!1,this.dragsMembers=this.groupsAlwaysMove=!0},Ms.className="DraggingOptions",c(Ss,To),Ss.prototype.reset=function(){To.prototype.reset.call(this),Ps(this)},Ss.className="Palette",c(Ns,To),Ns.prototype.computePixelRatio=function(){return 1},Ns.prototype.redraw=function(){if(this.o&&1<=this.updateDelay){this.o=!1;var t=this.ta,i=this.ib;if(null!==t&&null!==i){if(or(this),null===this.ql){var e=new Fa(null);e.width=t.width,e.height=t.height,this.ql=e}try{this.ta=this.ql,this.ib=this.ta.context,this.ib.Vc(!0),this.ib.setTransform(1,0,0,1,0,0),this.ib.clearRect(0,0,this.ta.width,this.ta.height),Cs(this)}finally{this.ta=t,this.ib=i}}}To.prototype.redraw.call(this)},Ns.prototype.gc=function(){if(null===this.Ka&&w("No div specified"),null===this.ta&&w("No canvas specified"),!(this.ta instanceof ya)&&(Su(this.box),this.Fc)){var t=this.observed;if(null!==t&&!t.animationManager.defaultAnimation.isAnimating&&t.pi){or(this);var i=this.ta;(t=this.ib).Vc(!0),t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,i.width,i.height),1>this.updateDelay?Cs(this):null!==this.ql&&(t.drawImage(this.ql.Oa,0,0),(i=this.Ab).reset(),1!==this.scale&&i.scale(this.scale),0===this.position.x&&0===this.position.y||i.translate(-this.position.x,-this.position.y),t.scale(this.Mb,this.Mb),t.transform(i.m11,i.m12,i.m21,i.m22,i.dx,i.dy),t.yc());for(var e=(i=this.Wa.s).length,n=0;n<e;n++)i[n].gc(t,this);this.Fc=this.vd=!1}}},Ns.prototype.computeBounds=function(){var t=this.observed;if(null===t)return qt;var i=t.documentBounds.copy();return i.ed(t.viewportBounds),i},Ns.prototype.invalidateViewport=function(){!0!==this.Fc&&(this.Fc=!0,this.$b())},Ns.prototype.onViewportBoundsChanged=function(t,i,e,n){this.vb||(this.vd=!0,this.N(),this.Ee=!0,this.Ya(),Ts(this),this.fc.scale=e,this.fc.position.x=t.x,this.fc.position.y=t.y,this.fc.bounds.assign(t),this.fc.Oz=n,this.R("ViewportBoundsChanged",this.fc,t))},f.Object.defineProperties(Ns.prototype,{observed:{get:function(){return this.V},set:function(t){var i=this.V;if(t instanceof Ns&&w("Overview.observed Diagram may not be an Overview itself: "+t),i!==t){if(null!==i&&(this.remove(this.box),i.am("ViewportBoundsChanged",this.Pf),i.am("DocumentBoundsChanged",this.Xd),i.am("InvalidateDraw",this.Ha),i.am("AnimationFinished",this.Of)),this.V=t,null!==t&&(t.Bj("ViewportBoundsChanged",this.Pf),t.Bj("DocumentBoundsChanged",this.Xd),t.Bj("InvalidateDraw",this.Ha),t.Bj("AnimationFinished",this.Of),this.add(this.box)),this.Ya(),null===t){this.ql=null;var e=this.ta,n=this.ib;e&&n&&(n.setTransform(1,0,0,1,0,0),n.clearRect(0,0,e.width,e.height))}else this.Ha(null),Ts(this),this.N();this.g("observed",i,t)}}},box:{get:function(){return this.j},set:function(t){var i=this.j;i!==t&&(this.j=t,this.remove(i),this.add(this.j),Ts(this),this.g("box",i,t))}},drawsTemporaryLayers:{get:function(){return this.F},set:function(t){this.F!==t&&(this.F=t,this.redraw())}},drawsGrid:{get:function(){return this.u},set:function(t){this.u!==t&&(this.u=t,this.redraw())}},updateDelay:{get:function(){return this.ia},set:function(t){0>t&&(t=0),this.ia!==t&&(this.ia=t)}}}),Ns.className="Overview",c(Ls,Te),Ls.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;if(null===t||!t.allowMove||!t.allowSelect)return!1;var i=t.observed;if(null===i)return!1;var e=t.lastInput;return!(!e.left||t.currentTool!==this&&(!this.isBeyondDragSize()||e.isTouchEvent&&e.timestamp-t.firstInput.timestamp<this.delay))&&(null===this.findDraggablePart()&&(e=i.viewportBounds,this.j=new pt(e.width/2,e.height/2),t=t.firstInput.documentPoint,i.position=new pt(t.x-this.j.x,t.y-this.j.y)),!0)},Ls.prototype.doActivate=function(){this.j=null,Te.prototype.doActivate.call(this)},Ls.prototype.doUpdateCursor=function(){var t=this.diagram,i=t.box;null!==i&&i.cursor&&(t.currentCursor=i.cursor)},Ls.prototype.moveParts=function(){var t=this.diagram,i=t.observed;if(null!==i){var e=t.box;if(null!==e){if(null===this.j){var n=t.firstInput.documentPoint;e=e.location,this.j=new pt(n.x-e.x,n.y-e.y)}t=t.lastInput.documentPoint,i.position=new pt(t.x-this.j.x,t.y-this.j.y)}}},Ls.className="OverviewDraggingTool",As.prototype.toString=function(){return"CommandHandler"},As.prototype.Xe=function(t){this.H=t},As.prototype.doKeyDown=function(){var t=this.diagram,i=t.lastInput,e=R?i.meta:i.control,n=i.shift,o=i.alt,r=i.key;!e||"C"!==r&&"Insert"!==r?e&&"X"===r||n&&"Del"===r?this.canCutSelection()&&this.cutSelection():e&&"V"===r||n&&"Insert"===r?this.canPasteSelection()&&this.pasteSelection():e&&"Y"===r||o&&n&&"Backspace"===r?this.canRedo()&&this.redo():e&&"Z"===r||o&&"Backspace"===r?this.canUndo()&&this.undo():"Del"===r||"Backspace"===r?this.canDeleteSelection()&&this.deleteSelection():e&&"A"===r?this.canSelectAll()&&this.selectAll():"Esc"===r?this.canStopCommand()&&this.stopCommand():"Up"===r?t.allowVerticalScroll&&(e?t.scroll("pixel","up"):t.scroll("line","up")):"Down"===r?t.allowVerticalScroll&&(e?t.scroll("pixel","down"):t.scroll("line","down")):"Left"===r?t.allowHorizontalScroll&&(e?t.scroll("pixel","left"):t.scroll("line","left")):"Right"===r?t.allowHorizontalScroll&&(e?t.scroll("pixel","right"):t.scroll("line","right")):"PageUp"===r?n&&t.allowHorizontalScroll?t.scroll("page","left"):t.allowVerticalScroll&&t.scroll("page","up"):"PageDown"===r?n&&t.allowHorizontalScroll?t.scroll("page","right"):t.allowVerticalScroll&&t.scroll("page","down"):"Home"===r?e&&t.allowVerticalScroll?t.scroll("document","up"):!e&&t.allowHorizontalScroll&&t.scroll("document","left"):"End"===r?e&&t.allowVerticalScroll?t.scroll("document","down"):!e&&t.allowHorizontalScroll&&t.scroll("document","right"):" "===r?this.canScrollToPart()&&this.scrollToPart():"Subtract"===r?this.canDecreaseZoom()&&this.decreaseZoom():"Add"===r?this.canIncreaseZoom()&&this.increaseZoom():e&&"0"===r?this.canResetZoom()&&this.resetZoom():n&&"Z"===r?this.canZoomToFit()&&this.zoomToFit():e&&!n&&"G"===r?this.canGroupSelection()&&this.groupSelection():e&&n&&"G"===r?this.canUngroupSelection()&&this.ungroupSelection():"F2"===r||i.event&&"F2"===i.event.key?this.canEditTextBlock()&&this.editTextBlock():"ContextMenu"===r||i.event&&"ContextMenu"===i.event.key?this.canShowContextMenu()&&this.showContextMenu():i.bubbles=!0:this.canCopySelection()&&this.copySelection()},As.prototype.doKeyUp=function(){this.diagram.lastInput.bubbles=!0},As.prototype.stopCommand=function(){var t=this.diagram,i=t.currentTool;i instanceof xe&&t.allowSelect&&t.clearSelection(),null!==i&&i.doCancel()},As.prototype.canStopCommand=function(){return!0},As.prototype.selectAll=function(){var t=this.diagram;t.N();try{t.currentCursor="wait",t.R("ChangingSelection",t.selection);for(var i=t.parts;i.next();)i.value.isSelected=!0;for(var e=t.nodes;e.next();)e.value.isSelected=!0;for(var n=t.links;n.next();)n.value.isSelected=!0}finally{t.R("ChangedSelection",t.selection),t.currentCursor=""}},As.prototype.canSelectAll=function(){return this.diagram.allowSelect},As.prototype.deleteSelection=function(){var t=this.diagram;try{t.currentCursor="wait",t.R("ChangingSelection",t.selection),t.Ea("Delete"),t.R("SelectionDeleting",t.selection);for(var i=new $,e=t.selection.iterator;e.next();)qu(i,e.value,!0,this.deletesTree?1/0:0,!!this.deletesConnectedLinks&&null,(function(t){return t.canDelete()}));t.Is(i,!0),t.R("SelectionDeleted",i)}finally{t.eb("Delete"),t.R("ChangedSelection",t.selection),t.currentCursor=""}},As.prototype.canDeleteSelection=function(){var t=this.diagram;return!(t.isReadOnly||t.isModelReadOnly||!t.allowDelete||0===t.selection.count)},As.prototype.copySelection=function(){var t=this.diagram,i=new $;for(t=t.selection.iterator;t.next();)qu(i,t.value,!0,this.copiesTree?1/0:0,this.copiesConnectedLinks,(function(t){return t.canCopy()}));this.copyToClipboard(i)},As.prototype.canCopySelection=function(){var t=this.diagram;return!(!t.allowCopy||!t.allowClipboard||0===t.selection.count)},As.prototype.cutSelection=function(){this.copySelection(),this.deleteSelection()},As.prototype.canCutSelection=function(){var t=this.diagram;return!(t.isReadOnly||t.isModelReadOnly||!t.allowCopy||!t.allowDelete||!t.allowClipboard||0===t.selection.count)},As.prototype.copyToClipboard=function(t){var i=this.diagram,e=null;if(null===t)Yr=null,Gr="";else{e=i.model;var n=!1,o=!1,r=null;try{e.Tl()&&(n=e.Jj,e.Jj=this.copiesParentKey),e.Wj()&&(o=e.Ij,e.Ij=this.copiesGroupKey),r=i.Kj(t,null,!0)}finally{e.Tl()&&(e.Jj=n),e.Wj()&&(e.Ij=o),(e=new Z).addAll(r),Yr=e,Gr=i.model.dataFormat}}i.R("ClipboardChanged",e)},As.prototype.pasteFromClipboard=function(){var t=new $,i=Yr;if(null===i)return t;var e=this.diagram;if(Gr!==e.model.dataFormat)return t;var n=e.model,o=!1,r=!1,s=null;try{n.Tl()&&(o=n.Jj,n.Jj=this.copiesParentKey),n.Wj()&&(r=n.Ij,n.Ij=this.copiesGroupKey),s=e.Kj(i,e,!1)}finally{for(n.Tl()&&(n.Jj=o),n.Wj()&&(n.Ij=r),i=s.iterator;i.next();)e=i.value,n=i.key,e.location.w()||(n.location.w()?e.location=n.location:!e.position.w()&&n.position.w()&&(e.position=n.position)),t.add(e)}return t},As.prototype.pasteSelection=function(t){void 0===t&&(t=null);var i=this.diagram;try{i.currentCursor="wait",i.R("ChangingSelection",i.selection),i.Ea("Paste");var e=this.pasteFromClipboard();0<e.count&&i.clearSelection(!0);for(var n=e.iterator;n.next();)n.value.isSelected=!0;if(null!==t){var o=i.computePartsBounds(i.selection);if(o.w())lr(i,this.computeEffectiveCollection(i.selection,i.Wm),new pt(t.x-o.centerX,t.y-o.centerY),i.Wm,!1)}i.R("ClipboardPasted",e)}finally{i.eb("Paste"),i.R("ChangedSelection",i.selection),i.currentCursor=""}},As.prototype.canPasteSelection=function(){var t=this.diagram;return!(t.isReadOnly||t.isModelReadOnly||!t.allowInsert||!t.allowClipboard||null===Yr||0===Yr.count||Gr!==t.model.dataFormat)},As.prototype.undo=function(){this.diagram.undoManager.undo()},As.prototype.canUndo=function(){var t=this.diagram;return!t.isReadOnly&&!t.isModelReadOnly&&(t.allowUndo&&t.undoManager.canUndo())},As.prototype.redo=function(){this.diagram.undoManager.redo()},As.prototype.canRedo=function(){var t=this.diagram;return!t.isReadOnly&&!t.isModelReadOnly&&(t.allowUndo&&t.undoManager.canRedo())},As.prototype.decreaseZoom=function(t){void 0===t&&(t=1/this.zoomFactor);var i=this.diagram;i.autoScale===Xr&&((t=i.scale*t)<i.minScale||t>i.maxScale||(i.scale=t))},As.prototype.canDecreaseZoom=function(t){void 0===t&&(t=1/this.zoomFactor);var i=this.diagram;return i.autoScale===Xr&&(!((t=i.scale*t)<i.minScale||t>i.maxScale)&&i.allowZoom)},As.prototype.increaseZoom=function(t){void 0===t&&(t=this.zoomFactor);var i=this.diagram;i.autoScale===Xr&&((t=i.scale*t)<i.minScale||t>i.maxScale||(i.scale=t))},As.prototype.canIncreaseZoom=function(t){void 0===t&&(t=this.zoomFactor);var i=this.diagram;return i.autoScale===Xr&&(!((t=i.scale*t)<i.minScale||t>i.maxScale)&&i.allowZoom)},As.prototype.resetZoom=function(t){void 0===t&&(t=this.defaultScale);var i=this.diagram;t<i.minScale||t>i.maxScale||(i.scale=t)},As.prototype.canResetZoom=function(t){void 0===t&&(t=this.defaultScale);var i=this.diagram;return!(t<i.minScale||t>i.maxScale)&&i.allowZoom},As.prototype.zoomToFit=function(){var t=this.diagram,i=t.animationManager;i.Cc(),t.redraw();var e=t.position,n=t.scale;Hn(i,"Zoom To Fit"),this.isZoomToFitRestoreEnabled&&n===this.Au&&!isNaN(this.Jt)&&t.documentBounds.D(this.yu)?(t.scale=this.Jt,t.position=this.sw,this.Au=NaN,this.yu=qt):(this.Jt=n,this.sw=e.copy(),t.zoomToFit(),this.Au=t.scale,this.yu=t.documentBounds.copy()),Kn(i)},As.prototype.canZoomToFit=function(){return this.diagram.allowZoom},As.prototype.scrollToPart=function(t){void 0===t&&(t=null);var i=this.diagram;if(i.Va(),null===t){try{null!==this.cg&&(this.cg.next()?t=this.cg.value:this.cg=null)}catch(t){this.cg=null}null===t&&(0<i.highlighteds.count?this.cg=i.highlighteds.iterator:0<i.selection.count&&(this.cg=i.selection.iterator),null!==this.cg&&this.cg.next()&&(t=this.cg.value))}if(null!==t){var e=i.animationManager;Hn(e,"Scroll To Part");var n=this.scrollToPartPause;if(0<n){var o=js(this,t,[t]);if(1===o.length)i.Ea(),i.es(t.actualBounds),i.eb("Scroll To Part");else{var r=function(){i.Ea();for(var t=o.pop();0<o.length&&t instanceof Ju&&t.isTreeExpanded&&(!(t instanceof gc)||t.isSubGraphExpanded);)t=o.pop();0<o.length?(t instanceof ku&&i.tv(t.actualBounds),t instanceof Ju&&!t.isTreeExpanded&&(t.isTreeExpanded=!0),t instanceof gc&&!t.isSubGraphExpanded&&(t.isSubGraphExpanded=!0)):(t instanceof ku&&i.es(t.actualBounds),i.am("LayoutCompleted",s)),i.eb("Scroll To Part")},s=function(){x(r,(e.isEnabled?e.duration:0)+n)};i.Bj("LayoutCompleted",s),r()}}else{var a=i.position.copy();i.es(t.actualBounds),a.Xa(i.position)&&e.Cc()}}},As.prototype.canScrollToPart=function(t){return void 0===t&&(t=null),(null===t||t instanceof ku)&&((0!==(t=this.diagram).selection.count||0!==t.highlighteds.count)&&(t.allowHorizontalScroll&&t.allowVerticalScroll))},As.prototype.collapseTree=function(t){void 0===t&&(t=null);var i=this.diagram;try{i.Ea("Collapse Tree"),Hn(i.animationManager,"Collapse Tree");var e=new Z;if(null!==t&&t.isTreeExpanded)t.collapseTree(),e.add(t);else if(null===t)for(var n=i.selection.iterator;n.next();){var o=n.value;o instanceof Ju&&o.isTreeExpanded&&(o.collapseTree(),e.add(o))}i.R("TreeCollapsed",e)}finally{i.eb("Collapse Tree")}},As.prototype.canCollapseTree=function(t){void 0===t&&(t=null);var i=this.diagram;if(i.isReadOnly)return!1;if(null!==t){if(!(t instanceof Ju&&t.isTreeExpanded))return!1;if(0<t.Qo().count)return!0}else for(t=i.selection.iterator;t.next();)if((i=t.value)instanceof Ju&&i.isTreeExpanded&&0<i.Qo().count)return!0;return!1},As.prototype.expandTree=function(t){void 0===t&&(t=null);var i=this.diagram;try{i.Ea("Expand Tree"),Hn(i.animationManager,"Expand Tree");var e=new Z;if(null===t||t.isTreeExpanded){if(null===t)for(var n=i.selection.iterator;n.next();){var o=n.value;o instanceof Ju&&!o.isTreeExpanded&&(o.expandTree(),e.add(o))}}else t.expandTree(),e.add(t);i.R("TreeExpanded",e)}finally{i.eb("Expand Tree")}},As.prototype.canExpandTree=function(t){void 0===t&&(t=null);var i=this.diagram;if(i.isReadOnly)return!1;if(null!==t){if(!(t instanceof Ju)||t.isTreeExpanded)return!1;if(0<t.Qo().count)return!0}else for(t=i.selection.iterator;t.next();)if((i=t.value)instanceof Ju&&!i.isTreeExpanded&&0<i.Qo().count)return!0;return!1},As.prototype.groupSelection=function(){var t=this.diagram,i=t.model;if(i.Xj()){var e=this.archetypeGroupData;if(null!==e){var n=null;try{t.currentCursor="wait",t.R("ChangingSelection",t.selection),t.Ea("Group");for(var o=new Z,r=t.selection.iterator;r.next();){var s=r.value;s.Zc()&&s.canGroup()&&o.add(s)}for(var a=new Z,h=o.iterator;h.next();){var l=h.value;r=!1;for(var u=o.iterator;u.next();)if(l.Td(u.value)){r=!0;break}r||a.add(l)}if(0<a.count){var c=a.first().containingGroup;if(null!==c)for(;null!==c;){o=!1;for(var f=a.iterator;f.next();)if(!f.value.Td(c)){o=!0;break}if(!o)break;c=c.containingGroup}if(e instanceof gc)Wh(e),null!==(n=e.copy())&&t.add(n);else if(i.Yu(e)){var d=i.copyNodeData(e);P(d)&&(i.xf(d),n=t.ii(d))}if(null!==n){null!==c&&this.isValidMember(c,n)&&(n.containingGroup=c);for(var p=a.iterator;p.next();){var g=p.value;this.isValidMember(n,g)&&(g.containingGroup=n)}t.clearSelection(!0),n.isSelected=!0}}t.R("SelectionGrouped",n)}finally{t.eb("Group"),t.R("ChangedSelection",t.selection),t.currentCursor=""}}}},As.prototype.canGroupSelection=function(){var t=this.diagram;if(t.isReadOnly||t.isModelReadOnly||!t.allowInsert||!t.allowGroup||!t.model.Xj()||null===this.archetypeGroupData)return!1;for(t=t.selection.iterator;t.next();){var i=t.value;if(i.Zc()&&i.canGroup())return!0}return!1},As.prototype.isValidMember=function(t,i){if(null===i||t===i||i instanceof wc)return!1;if(null!==t){if(t===i||t.Td(i))return!1;var e=t.memberValidation;if(null!==e&&!e(t,i)||null===t.data&&null!==i.data||null!==t.data&&null===i.data)return!1}return null===(e=this.memberValidation)||e(t,i)},As.prototype.ungroupSelection=function(t){void 0===t&&(t=null);var i=this.diagram,e=i.model;if(e.Xj())try{i.currentCursor="wait",i.R("ChangingSelection",i.selection),i.Ea("Ungroup");var n=new Z;if(null!==t)n.add(t);else for(var o=i.selection.iterator;o.next();){var r=o.value;r instanceof gc&&r.canUngroup()&&n.add(r)}var s=new Z;if(0<n.count){i.clearSelection(!0);for(var a=n.iterator;a.next();){var h=a.value;h.expandSubGraph();var l=h.containingGroup,u=null!==l&&null!==l.data?e.wa(l.data):void 0;s.addAll(h.memberParts);for(var c=s.iterator;c.next();){var f=c.value;if(f.isSelected=!0,!(f instanceof wc)){var d=f.data;null!==d?e.mp(d,u):f.containingGroup=l}}i.remove(h)}}i.R("SelectionUngrouped",n,s)}finally{i.eb("Ungroup"),i.R("ChangedSelection",i.selection),i.currentCursor=""}},As.prototype.canUngroupSelection=function(t){void 0===t&&(t=null);var i=this.diagram;if(i.isReadOnly||i.isModelReadOnly||!i.allowDelete||!i.allowUngroup||!i.model.Xj())return!1;if(null!==t){if(!(t instanceof gc))return!1;if(t.canUngroup())return!0}else for(t=i.selection.iterator;t.next();)if((i=t.value)instanceof gc&&i.canUngroup())return!0;return!1},As.prototype.addTopLevelParts=function(t,i){var e=!0;for(t=Fs(t).iterator;t.next();){var n=t.value;null!==n.containingGroup&&(!i||this.isValidMember(null,n)?n.containingGroup=null:e=!1)}return e},As.prototype.collapseSubGraph=function(t){void 0===t&&(t=null);var i=this.diagram;try{i.Ea("Collapse SubGraph"),Hn(i.animationManager,"Collapse SubGraph");var e=new Z;if(null!==t&&t.isSubGraphExpanded)t.collapseSubGraph(),e.add(t);else if(null===t)for(var n=i.selection.iterator;n.next();){var o=n.value;o instanceof gc&&o.isSubGraphExpanded&&(o.collapseSubGraph(),e.add(o))}i.R("SubGraphCollapsed",e)}finally{i.eb("Collapse SubGraph")}},As.prototype.canCollapseSubGraph=function(t){void 0===t&&(t=null);var i=this.diagram;if(i.isReadOnly)return!1;if(null!==t)return!!(t instanceof gc&&t.isSubGraphExpanded);for(t=i.selection.iterator;t.next();)if((i=t.value)instanceof gc&&i.isSubGraphExpanded)return!0;return!1},As.prototype.expandSubGraph=function(t){void 0===t&&(t=null);var i=this.diagram;try{i.Ea("Expand SubGraph"),Hn(i.animationManager,"Expand SubGraph");var e=new Z;if(null===t||t.isSubGraphExpanded){if(null===t)for(var n=i.selection.iterator;n.next();){var o=n.value;o instanceof gc&&!o.isSubGraphExpanded&&(o.expandSubGraph(),e.add(o))}}else t.expandSubGraph(),e.add(t);i.R("SubGraphExpanded",e)}finally{i.eb("Expand SubGraph")}},As.prototype.canExpandSubGraph=function(t){void 0===t&&(t=null);var i=this.diagram;if(i.isReadOnly)return!1;if(null!==t)return t instanceof gc&&!t.isSubGraphExpanded;for(t=i.selection.iterator;t.next();)if((i=t.value)instanceof gc&&!i.isSubGraphExpanded)return!0;return!1},As.prototype.editTextBlock=function(t){void 0===t&&(t=null);var i=this.diagram,e=i.toolManager.findTool("TextEditing");if(null!==e){if(null===t){t=null;for(var n=i.selection.iterator;n.next();){var o=n.value;if(o.canEdit()){t=o;break}}if(null===t)return;t=t.Nl((function(t){return t instanceof Nl&&t.editable}))}null!==t&&(i.currentTool=null,e.textBlock=t,i.currentTool=e)}},As.prototype.canEditTextBlock=function(t){void 0===t&&(t=null);var i=this.diagram;if(i.isReadOnly||i.isModelReadOnly||!i.allowTextEdit||null===i.toolManager.findTool("TextEditing"))return!1;if(null!==t){if(!(t instanceof Nl))return!1;if(null!==(t=t.part)&&t.canEdit())return!0}else for(i=i.selection.iterator;i.next();)if((t=i.value).canEdit()&&null!==(t=t.Nl((function(t){return t instanceof Nl&&t.editable}))))return!0;return!1},As.prototype.showContextMenu=function(t){var i=this.diagram,e=i.toolManager.findTool("ContextMenu");if(null!==e&&(void 0===t&&(t=0<i.selection.count?i.selection.first():i),null!==(t=e.findObjectWithContextMenu(t)))){var n=i.lastInput,o=null;t instanceof Ds?o=t.ga(oi):i.viewportBounds.ca(n.documentPoint)||(o=new pt((o=i.viewportBounds).x+o.width/2,o.y+o.height/2)),null!==o&&(n.viewPoint=i.op(o),n.documentPoint=o,n.left=!1,n.right=!0,n.up=!0),i.currentTool=e,Sn(e,!1,t)}},As.prototype.canShowContextMenu=function(t){var i=this.diagram,e=i.toolManager.findTool("ContextMenu");return null!==e&&(void 0===t&&(t=0<i.selection.count?i.selection.first():i),null!==e.findObjectWithContextMenu(t))},As.prototype.computeEffectiveCollection=function(t,i){var e=this.diagram,n=e.toolManager.findTool("Dragging"),o=e.currentTool===n;if(void 0===i&&(i=o?n.dragOptions:e.Wm),n=new dt,null===t)return n;for(var r=t.iterator;r.next();)hr(e,n,r.value,o,i);if(null!==e.draggedLink&&i.dragsLink)return n;for(r=t.iterator;r.next();)(t=r.value)instanceof wc&&(null===(i=t.fromNode)||n.contains(i)?null===(i=t.toNode)||n.contains(i)||n.remove(t):n.remove(t));return n},f.Object.defineProperties(As.prototype,{diagram:{get:function(){return this.H}},copiesClipboardData:{get:function(){return this.o},set:function(t){this.o=t}},copiesConnectedLinks:{get:function(){return this.u},set:function(t){this.u=t}},deletesConnectedLinks:{get:function(){return this.Ha},set:function(t){this.Ha=t}},copiesTree:{get:function(){return this.ia},set:function(t){this.ia=t}},deletesTree:{get:function(){return this.nb},set:function(t){this.nb=t}},copiesParentKey:{get:function(){return this.V},set:function(t){this.V=t}},copiesGroupKey:{get:function(){return this.F},set:function(t){this.F=t}},archetypeGroupData:{get:function(){return this.j},set:function(t){this.j=t}},memberValidation:{get:function(){return this.ij},set:function(t){this.ij=t}},defaultScale:{get:function(){return this.diagram.defaultScale},set:function(t){this.diagram.defaultScale=t}},zoomFactor:{get:function(){return this.Hb},set:function(t){1<t||w("zoomFactor must be larger than 1.0, not: "+t),this.Hb=t}},isZoomToFitRestoreEnabled:{get:function(){return this.hb},set:function(t){this.hb=t}},scrollToPartPause:{get:function(){return this.ob},set:function(t){this.ob=t}}}),As.className="CommandHandler",jo=function(){return new As},Ds.prototype.cloneProtected=function(t){t.l=6144|this.l,t.pb=this.pb,t.bn=this.bn,t.Ma=this.Ma,t.pa.assign(this.pa),t.jd=this.jd.J(),null!==this.Lb?t.Lb=this.Lb.copy():t.Lb=null,t.Ca=this.Ca,t.Kb=this.Kb,t.Kg=this.Kg.J(),t.uc.assign(this.uc),t.Ib.assign(this.Ib),t.dc.assign(this.dc),t.Yn=this.Yn,null!==this.ba&&(t.ba=this.ba.copy()),t.Jb=this.Jb.J(),t.sk=this.sk.J(),t.io=this.io,t.Ag=this.Ag,null!==this.Ua&&(t.Ua=this.Ua.copy()),null!==this.A&&(t.A=this.A.nc?this.A:this.A.copy()),null!==this.Dh&&(t.Dh=C(this.Dh)),null!==this.tb&&(t.tb=this.tb.copy())},Ds.prototype.Vw=function(t){var i=this.Dh;if(N(i)){for(var e=0;e<i.length;e++)if(i[e]===t)return}else this.Dh=i=[];i.push(t)},Ds.prototype.Af=function(t){t.Zn=null,t.Ng=null,t.v()},Ds.prototype.clone=function(){var t=new this.constructor;if(this.cloneProtected(t),null!==this.Dh)for(var i=0;i<this.Dh.length;i++){var e=this.Dh[i];t[e]=this[e]}return t},Ds.prototype.copy=function(){return this.clone()},(i=Ds.prototype).qb=function(t){t.classType===wc?0===t.name.indexOf("Orient")?this.segmentOrientation=t:w("Unknown Link enum value for GraphObject.segmentOrientation property: "+t):t.classType===Ds&&(this.stretch=t)},i.toString=function(){return F(this.constructor)+"#"+it(this)},i.th=function(){null!==this.A&&(this.A.nc=!0)},i.Xc=function(){if(null===this.ba){var t=new pa;t.Xi=Qt,t.yj=Qt,t.Vi=10,t.wj=10,t.Wi=0,t.xj=0,this.ba=t}},i.cb=function(t,i,e,n,o,r,s){var a=this.part;if(null!==a&&(a.gk(t,i,e,n,o,r,s),e===this&&t===fe&&_s(this)&&Os(this,a,i),r=this.diagram,null===this.animationTriggers||null===r||!r.pi||r.undoManager.isUndoingRedoing||r.animationManager.Dm||null!==(t=this.animationTriggers.get(i))&&r.animationManager.isEnabled&&!r.animationManager.isTicking&&(null===this.jo&&(this.jo=new dt),s=0===r.undoManager.transactionLevel,t.startCondition===ko?s=!0:t.startCondition===Mo&&(s=!1),s?(function(t,i){null!==(t=t.uk)&&(t.duration&&(i.duration=t.duration),t.finished&&(i.finished=t.finished),t.easing&&(i.easing=t.easing))}(t,r=new ho),null!==(s=this.jo.get(t))&&s.stop(),this.jo.add(t,r),r.vu=this,r.Nw=t,r.add(this,i,n,o),r.start()):(Hn(r.animationManager,"Trigger"),r.animationManager.defaultAnimation.add(this,i,n,o))),this instanceof Ch&&e===a&&0!=(16777216&a.l)&&null!==a.data))for(n=(e=this.O.s).length,o=0;o<n;o++)(a=e[o])instanceof Ch&&Bh(a,(function(t){null!==t.data&&0!=(16777216&t.l)&&t.La(i)}))},i.ks=function(t){return this.bindingId===t?this:null},i.g=function(t,i,e){this.cb(fe,t,this,i,e)},i.Ge=function(t,i,e,n){var o=this.uc;if(o.h(t,i,e,n),1!==this.Ca||0!==this.Kb){null===this.Lb&&(this.Lb=new Yi);var r=this.Lb;r.reset(),this.no(r,t,i,e,n),r.pp(o)}},i.tx=function(t,i,e){if(!1===this.pickable)return!1;var n=this.naturalBounds;return i=t.Bf(i),e?xt(t.x,t.y,0,0,0,n.height)<=i||xt(t.x,t.y,0,n.height,n.width,n.height)<=i||xt(t.x,t.y,n.width,n.height,n.width,0)<=i||xt(t.x,t.y,n.width,0,0,0)<=i:t.zd(0,0)<=i&&t.zd(0,n.height)<=i&&t.zd(n.width,0)<=i&&t.zd(n.width,n.height)<=i},i.se=function(){return!0},i.ca=function(t){var i=pt.alloc();i.assign(t),this.transform.Ga(i);var e=this.actualBounds;if(!e.w())return pt.free(i),!1;var n=this.diagram;if(null!==n&&n.wq){var o=n.Ql("extraTouchThreshold"),r=n.Ql("extraTouchArea"),s=r/2,a=this.naturalBounds,h=1/(n=this.Df()*n.scale);if(a.width*n<o&&a.height*n<o)return t=Xt(e.x-s*h,e.y-s*h,e.width+r*h,e.height+r*h,i.x,i.y),pt.free(i),t}return o=!1,(this instanceof Ku||this instanceof pl?Xt(e.x-5,e.y-5,e.width+10,e.height+10,i.x,i.y):e.ca(i))&&(o=!(this.tb&&!this.tb.ca(i))&&(!(null===this.areaBackground||!e.ca(i))||(!(null===this.Ma||!this.dc.ca(t))||this.gh(t)))),pt.free(i),o},i.gh=function(t){var i=this.naturalBounds;return Xt(0,0,i.width,i.height,t.x,t.y)},i.Re=function(t){if(0===this.angle)return this.actualBounds.Re(t);var i=this.naturalBounds;i=Bt.allocAt(0,0,i.width,i.height);var e=this.transform,n=!1,o=pt.allocAt(t.x,t.y);return i.ca(e.Cd(o))&&(o.h(t.x,t.bottom),i.ca(e.Cd(o))&&(o.h(t.right,t.bottom),i.ca(e.Cd(o))&&(o.h(t.right,t.y),i.ca(e.Cd(o))&&(n=!0)))),pt.free(o),Bt.free(i),n},i.fh=function(t,i){if(void 0===i)return t.Re(this.actualBounds);var e=this.naturalBounds,n=!1,o=pt.allocAt(0,0);return t.ca(i.Ga(o))&&(o.h(0,e.height),t.ca(i.Ga(o))&&(o.h(e.width,e.height),t.ca(i.Ga(o))&&(o.h(e.width,0),t.ca(i.Ga(o))&&(n=!0)))),pt.free(o),n},i.Yc=function(t,i){if(void 0===i&&(i=this.transform,0===this.angle))return t.Yc(this.actualBounds);var e=this.naturalBounds,n=pt.allocAt(0,0),o=pt.allocAt(0,e.height),r=pt.allocAt(e.width,e.height),s=pt.allocAt(e.width,0),a=!1;if(t.ca(i.Ga(n))||t.ca(i.Ga(o))||t.ca(i.Ga(r))||t.ca(i.Ga(s)))a=!0;else{e=Bt.allocAt(0,0,e.width,e.height);var h=pt.allocAt(t.x,t.y);e.ca(i.Cd(h))?a=!0:(h.h(t.x,t.bottom),e.ca(i.Cd(h))?a=!0:(h.h(t.right,t.bottom),e.ca(i.Cd(h))?a=!0:(h.h(t.right,t.y),e.ca(i.Cd(h))&&(a=!0)))),pt.free(h),Bt.free(e),!a&&(Xi.us(t,n,o)||Xi.us(t,o,r)||Xi.us(t,r,s)||Xi.us(t,s,n))&&(a=!0)}return pt.free(n),pt.free(o),pt.free(r),pt.free(s),a},i.ga=function(t,i){if(void 0===i&&(i=new pt),t instanceof Ii){var e=this.naturalBounds;i.h(t.x*e.width+t.offsetX,t.y*e.height+t.offsetY)}else i.set(t);return this.oe.Ga(i),i},i.mi=function(t){void 0===t&&(t=new Bt);var i=this.naturalBounds,e=this.oe,n=pt.allocAt(0,0).transform(e);return t.h(n.x,n.y,0,0),n.h(i.width,0).transform(e),Gt(t,n.x,n.y,0,0),n.h(i.width,i.height).transform(e),Gt(t,n.x,n.y,0,0),n.h(0,i.height).transform(e),Gt(t,n.x,n.y,0,0),pt.free(n),t},i.li=function(){var t=this.oe;return 1===t.m11&&0===t.m12?t=0:0>(t=180*Math.atan2(t.m12,t.m11)/Math.PI)&&(t+=360),t},i.Df=function(){if(0!=(4096&this.l)==!1)return this.Kk;var t=this.Ca;return null!==this.panel?t*this.panel.Df():t},i.qs=function(t,i){return void 0===i&&(i=new pt),i.assign(t),this.oe.Cd(i),i},i.rs=function(t,i,e){return this.Sj(t.x,t.y,i.x,i.y,e)},i.Sj=function(t,i,e,n,o){var r=this.transform,s=1/(r.m11*r.m22-r.m12*r.m21),a=r.m22*s,h=-r.m12*s,l=-r.m21*s,u=r.m11*s,c=s*(r.m21*r.dy-r.m22*r.dx),f=s*(r.m12*r.dx-r.m11*r.dy);return null!==this.areaBackground?(r=this.actualBounds,Xi.Ff(r.left,r.top,r.right,r.bottom,t,i,e,n,o)):(s=t*a+i*l+c,t=t*h+i*u+f,i=e*a+n*l+c,e=e*h+n*u+f,o.h(0,0),n=this.naturalBounds,e=Xi.Ff(0,0,n.width,n.height,s,t,i,e,o),o.transform(r),e)},Ds.prototype.measure=function(t,i,e,n){if(!1!==ia(this)){var o=this.Kg,r=o.right+o.left;o=o.top+o.bottom,t=Math.max(t-r,0),i=Math.max(i-o,0),e=Math.max((e||0)-r,0),n=Math.max((n||0)-o,0),r=this.angle,o=this.desiredSize;var s=this.kq();90===r||270===r?(t=isFinite(o.height)?o.height+s:t,i=isFinite(o.width)?o.width+s:i):(t=isFinite(o.width)?o.width+s:t,i=isFinite(o.height)?o.height+s:i),o=e||0,s=n||0;var a=this instanceof Ch;switch(Ks(this,!0)){case fs:s=o=0,a&&(i=t=1/0);break;case cs:isFinite(t)&&t>e&&(o=t),isFinite(i)&&i>n&&(s=i);break;case ps:isFinite(t)&&t>e&&(o=t),s=0,a&&(i=1/0);break;case gs:isFinite(i)&&i>n&&(s=i),o=0,a&&(t=1/0)}a=this.maxSize;var h=this.minSize;o>a.width&&h.width<a.width&&(o=a.width),s>a.height&&h.height<a.height&&(s=a.height),e=Math.max(o,h.width),n=Math.max(s,h.height),a.width<e&&(e=Math.min(h.width,e)),a.height<n&&(n=Math.min(h.height,n)),t=Math.min(a.width,t),i=Math.min(a.height,i),t=Math.max(e,t),i=Math.max(n,i),90!==r&&270!==r||(r=t,t=i,i=r,r=e,e=n,n=r),this.uc.ka(),this.Wl(t,i,e,n),this.uc.freeze(),this.uc.w()||w("Non-real measuredBounds has been set. Object "+this+", measuredBounds: "+this.uc.toString()),ea(this,!1)}},Ds.prototype.Wl=function(){},Ds.prototype.Dd=function(){return!1},Ds.prototype.arrange=function(t,i,e,n,o){this.Uk();var r=Bt.alloc();r.assign(this.Ib),this.Ib.ka(),!1===na(this)?this.Ib.h(t,i,e,n):this.eh(t,i,e,n),this.Ib.freeze(),this.tb=void 0===o?null:o,e=!1,void 0!==o?e=!0:(null!==(o=this.panel)&&Vh(o)&&(o=o.panel),null!==o&&(o=o.dc,n=this.measuredBounds,null!==this.areaBackground&&(n=this.Ib),e=i+n.height,n=t+n.width,e=!(0<=t+.05&&n<=o.width+.05&&0<=i+.05&&e<=o.height+.05),this instanceof Nl&&(t=this.naturalBounds,this.Lq>t.height||this.Cb>t.width))&&(e=!0)),this.l=e?256|this.l:-257&this.l,this.Ib.w()||w("Non-real actualBounds has been set. Object "+this+", actualBounds: "+this.Ib.toString()),this.Xl(r,this.Ib),oa(this,!1),Bt.free(r)},(i=Ds.prototype).eh=function(){},i.Xl=function(t,i){var e=this.part;null!==e&&null!==e.diagram&&(e.selectionObject!==this&&e.resizeObject!==this&&e.rotateObject!==this||Ru(e,!0),this.N(),Rt(t,i)||(e.oh(),this.Pn(e)))},i.Pn=function(t){null!==this.portId&&(Ru(t,!0),t instanceof Ju&&Qu(t,this))},i.gc=function(t,i){if(!function(t,i,e){if(!(i instanceof va))return!1;if(!t.visible||0===t.opacity||t.Dd()&&!t.isVisible())return null!==t.svg&&null!==t.svg.parentNode&&t.svg.remove(),!0;var n=t.panel,o=t.nk(i);if(t.kk(i,e,o))return null!==t.svg.parentElement?(t.Dd()&&(i.ti=t.svg),!0):(t.Dd()?(null!==i.ti?i.ti.after(t.svg):i.Nj.prepend(t.svg),i.ti=t.svg):n&&Ys(t,n,t.svg),!0);if(t.Dd()&&t.isShadowed){var r=t.shadowOffset;i.Ev(r.x*e.scale*t.scale*e.Mb,r.y*e.scale*t.scale*e.Mb,t.shadowBlur),Aa(i),i.shadowColor=t.shadowColor}t instanceof Nl&&(i.font=t.font),i.yd=null;var s=t.transform;r=t instanceof Ch;var a=t instanceof Ch&&Vh(t);0!=(4096&t.l)==!0&&qs(t);var h=t.Ib;if(i.rb.ha=[1,0,0,1,0,0],i.o=!1,o&&(i.o=!0,r&&a?(Ca(i,1,0,0,1,0,0),t.svg=i.ad):r?(Ca(i,s.m11,s.m12,s.m21,s.m22,s.dx,s.dy),t.svg=i.ad):Ca(i,1,0,0,1,0,0)),o=t.naturalBounds,null!==t.areaBackground){var l=s.copy().Vj();i.rb.ha=[l.m11,l.m12,l.m21,l.m22,l.dx,l.dy],Es(t,i,o,h),i.rb.ha=[1,0,0,1,0,0],i.yd.gd=i.ad,i.yd.prepend(i.ad)}return r||(i.rb.ha=[s.m11,s.m12,s.m21,s.m22,s.dx,s.dy]),null!==t.background&&(r?(a&&(i.rb.ha=[s.m11,s.m12,s.m21,s.m22,s.dx,s.dy]),Vs(t,i,o,h),a&&(i.rb.ha=[1,0,0,1,0,0])):(i.rb.ha=[s.m11,s.m12,s.m21,s.m22,s.dx,s.dy],Vs(t,i,o,h)),i.yd.Ma=i.ad,i.yd.prepend(i.ad)),s=i.yd,o=t.part,a=!1,o&&e.Gf("drawShadows")&&(a=o.isShadowed),i.clipInsteadOfFill&&(a=!1),t.Dd()&&a&&Aa(i),a&&!0===t.shadowVisible?Aa(i):a&&!1===t.shadowVisible&&La(i),o=t.panel,a&&Rs(t,o)&&null===t.shadowVisible&&La(i),i.Il&&(l=e.computePixelRatio(),l="drop-shadow("+i.shadowOffsetX/l+"px "+i.shadowOffsetY/l+"px "+i.shadowBlur/l/2+"px "+i.shadowColor+")",null!==t.background&&s.Ma.setAttributeNS(null,"filter",l),null!==t.areaBackground&&s.gd.setAttributeNS(null,"filter",l)),a&&(null!==t.Ma||null!==t.areaBackground||Rs(t,o))?(Zs(t,!0),null===t.shadowVisible&&La(i)):Zs(t,!1),o=a,t.hh(i,e),r&&i.nh.pop(),i.o&&i.nh.pop(),s=i.Gv.hs,a=r?t.svg:i.yd,l=t.svg,r||null===l||a===l||l.parentNode!==t.panel.svg?(t.svg=a,null!==s&&null===a&&(Ta(i),i.nh.pop()),null===a||(t.$o(i,n,h,a),i.Il&&(e=e.computePixelRatio(),t.Dv(a,"drop-shadow("+i.shadowOffsetX/e+"px "+i.shadowOffsetY/e+"px "+i.shadowBlur/e/2+"px "+i.shadowColor+")")),o&&0!=(512&t.l)==!0&&Aa(i),t.Dd()&&La(i),e=t.Dd()?t.opacity*i.globalAlpha:t.opacity,1!==e&&a.setAttributeNS(null,"opacity",e.toString()),""!==t.filter&&a.setAttributeNS(null,"filter",t.filter),t.Dd()?(i.ti?i.ti.after(a):i.Nj.prepend(a),i.ti=a):null!==n&&Ys(t,n,a),null!==s&&s(t,a)),!0):(t.svg.replaceWith(a),t.svg=a,null!==a&&t.$o(i,n,h,a),Gs(i,l),!0)}(this,t,i)&&this.visible){var e=this.opacity;if(0!==e){var n=1;1!==e&&(n=t.globalAlpha,t.globalAlpha=n*e);var o="";""!==this.filter&&(o=t.filter,t.filter=this.filter);var r=this instanceof Ch&&Vh(this),s=this.Ib;if(r){var a=this.Ib,h=this.dc,l=this.areaBackground,u=this.Ma;null===l&&null===u||t.yc(),null!==l&&(Us(this,t,l,!0,!0,h,a),l instanceof Ia&&l.type===$a?(t.beginPath(),t.rect(a.x,a.y,a.width,a.height),t.ng(l)):t.fillRect(a.x,a.y,a.width,a.height)),null!==u&&(Us(this,t,u,!0,!1,h,a),u instanceof Ia&&u.type===$a?(t.beginPath(),t.rect(a.x,a.y,a.width,a.height),t.ng(u)):t.fillRect(a.x,a.y,a.width,a.height)),this.hh(t,i)}if(!r&&(r||0!==s.width&&0!==s.height&&!isNaN(s.x)&&!isNaN(s.y))){r=this.transform,a=this.panel,0!=(4096&this.l)==!0&&qs(this),h=!1;var c,f=0;if((l=this.part)&&i.Gf("drawShadows")&&(h=l.isShadowed)&&(u=l.shadowOffset,f=Math.max(u.y,u.x)*i.scale*i.Mb),u=this.Dd(),!(c=i.$i||!u)){var d,p=this.naturalBounds,g=(c=this.wh).m11,m=c.m21,y=c.dx,v=c.m12,x=c.m22,b=c.dy,w=d=0;c=d*g+w*m+y;var k=d*v+w*x+b,M=(d=p.width+f)*g+(w=0)*m+y;d=d*v+w*x+b,w=Math.min(c,M);var S=Math.min(k,d),P=Math.max(c+0,M)-w,N=Math.max(k+0,d)-S;c=w,k=S,M=(d=p.width+f)*g+(w=p.height+f)*m+y,d=d*v+w*x+b,w=Math.min(c,M),S=Math.min(k,d),P=Math.max(c+P,M)-w,N=Math.max(k+N,d)-S,c=w,k=S,M=(d=0)*g+(w=p.height+f)*m+y,d=d*v+w*x+b,w=Math.min(c,M),S=Math.min(k,d),P=Math.max(c+P,M)-w,N=Math.max(k+N,d)-S,c=w,k=S,p=(f=i.viewportBounds).x,g=f.y,c=!(c>f.width+p||p>P+c||k>f.height+g||g>N+k)}if(c){if(c=0!=(256&this.l),t.clipInsteadOfFill&&(c=!1),this instanceof Nl&&(t.font=this.font),c){if(k=a.se()?a.naturalBounds:a.actualBounds,P=Math.max(s.x,k.x),N=Math.max(s.y,k.y),f=Math.min(s.right,k.right)-P,p=Math.min(s.bottom,k.bottom)-N,null!==(g=this.tb)&&(P=g.x,N=g.y,f=g.width,p=g.height),P>s.width+s.x||s.x>k.width+k.x)return 1!==e&&(t.globalAlpha=n),void(""!==this.filter&&(t.filter=o));t.save(),t.beginPath(),t.rect(P,N,f,p),t.clip()}if(u){if(!l.isVisible())return 1!==e&&(t.globalAlpha=n),void(""!==this.filter&&(t.filter=o));h&&(k=l.shadowOffset,t.Ev(k.x*i.scale*this.scale*i.Mb,k.y*i.scale*this.scale*i.Mb,l.shadowBlur),Aa(t),t.shadowColor=l.shadowColor)}h&&!0===this.shadowVisible?Aa(t):h&&!1===this.shadowVisible&&La(t),l=this.naturalBounds,null!==this.areaBackground&&(t.yc(),Es(this,t,l,s)),t.transform(r.m11,r.m12,r.m21,r.m22,r.dx,r.dy),h&&Rs(this,a)&&null===this.shadowVisible&&La(t),null!==this.Ma&&(t.yc(),Vs(this,t,l,s)),h&&(null!==this.Ma||null!==this.areaBackground||Rs(this,a))?(Zs(this,!0),null===this.shadowVisible&&La(t)):Zs(this,!1),this.hh(t,i),h&&0!=(512&this.l)==!0&&Aa(t),u&&h&&La(t),c&&(t.restore(),t.Vc(this instanceof Ch)),r.ws()||(i=1/(r.m11*r.m22-r.m12*r.m21),t.transform(r.m22*i,-r.m12*i,-r.m21*i,r.m11*i,i*(r.m21*r.dy-r.m22*r.dx),i*(r.m12*r.dx-r.m11*r.dy)))}}1!==e&&(t.globalAlpha=n),""!==this.filter&&(t.filter=o)}}},i.Dv=function(){},i.$o=function(t,i,e,n){var o=0!=(256&this.l);if(t.clipInsteadOfFill&&(o=!1),o){var r=i.se()?i.naturalBounds:i.actualBounds;i=Math.max(e.x,r.x),o=Math.max(e.y,r.y);var s=Math.min(e.right,r.right)-i;e=Math.min(e.bottom,r.bottom)-o,null!==(r=this.tb)&&(i=r.x,o=r.y,s=r.width,e=r.height);var a=null;null!==(r=n.getAttribute("clip-path"))&&(a=t.svg.getElementById(r.split("#")[1].slice(0,-1))),null===a?(r="CLIP"+at++,a=t.Ud("clipPath",{id:r}),i=t.Ud("rect",{x:i,y:o,width:s,height:e}),this instanceof Ch&&(o=this.transform.copy().Vj(),i.setAttribute("transform","matrix("+o.m11+", "+o.m12+", "+o.m21+", "+o.m22+", "+o.dx+", "+o.dy+")")),a.appendChild(i),t.svg.appendChild(a),n.setAttributeNS(null,"clip-path","url(#"+r+")")):((t=a.firstElementChild).setAttribute("x",i.toString()),t.setAttribute("y",o.toString()),t.setAttribute("width",s.toString()),t.setAttribute("height",e.toString()))}else n.removeAttributeNS(null,"clip-path"),Gs(t,n)},i.hh=function(){},i.lv=function(){this.Uc=!0},i.kk=function(t,i,e){if(this.Uc)return this.lv(),this.Uc=!1;if(null===(i=this.svg))return!1;if(!this.visible)return i.remove(),!1;if("g"!==i.nodeName&&e||"g"===i.nodeName&&!e)return!1;var n=this.transform,o=this instanceof Ch&&Vh(this);if(!(this instanceof Ch&&o))if(this instanceof ou){var r=this.bt;t.rb.ha=[n.m11,n.m12,n.m21,n.m22,n.dx,n.dy],null!==r&&ba(t,r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7]),e?i.lastElementChild.setAttributeNS(null,"transform",wa(t)):i.setAttributeNS(null,"transform",wa(t))}else if(!e||this instanceof Ch)i.setAttributeNS(null,"transform","matrix("+n.m11+", "+n.m12+", "+n.m21+", "+n.m22+", "+n.dx+", "+n.dy+")");else if(this instanceof pl){r=i.getElementsByTagName("path");for(var s=0;s<r.length;s++)r[s].setAttributeNS(null,"transform","matrix("+n.m11+", "+n.m12+", "+n.m21+", "+n.m22+", "+n.dx+", "+n.dy+")")}else i.lastElementChild.setAttributeNS(null,"transform","matrix("+n.m11+", "+n.m12+", "+n.m21+", "+n.m22+", "+n.dx+", "+n.dy+")");return 1===(r=this.Dd()?this.opacity*t.globalAlpha:this.opacity)?i.removeAttribute("opacity"):i.setAttributeNS(null,"opacity",r.toString()),t.rb.ha=[1,0,0,1,0,0],null===this.areaBackground&&void 0===i.gd||(r=i.gd,null===this.areaBackground?(i.gd.remove(),i.gd=void 0):(s=n.copy().Vj(),t.rb.ha=[s.m11,s.m12,s.m21,s.m22,s.dx,s.dy],Es(this,t,this.naturalBounds,this.actualBounds),t.rb.ha=[1,0,0,1,0,0],i.gd?(null!==(s=i.gd.getAttribute("filter"))&&t.ad.setAttribute("filter",s),i.gd.replaceWith(t.ad)):i.prepend(t.ad),i.gd=t.ad),r&&ja(t,r)),null===this.background&&void 0===i.Ma||(r=i.Ma,null===this.background?(ja(t,i.Ma),i.Ma.remove(),i.Ma=void 0):((o||e&&!(this instanceof Ch))&&(t.rb.ha=[n.m11,n.m12,n.m21,n.m22,n.dx,n.dy]),Vs(this,t,this.naturalBounds,this.actualBounds),i.Ma?(ja(t,i.Ma),null!==(e=i.Ma.getAttribute("filter"))&&t.ad.setAttribute("filter",e),i.Ma.replaceWith(t.ad)):i.prepend(t.ad),i.Ma=t.ad),r&&ja(t,r)),this.$o(t,this.panel,this.actualBounds,i),!0},i.nk=function(t){if(null!==this.background||null!==this.areaBackground)return!0;var i=0!=(256&this.l);return t.clipInsteadOfFill&&(i=!1),!!i},i.rg=function(t){if(t instanceof Ch)t:{if(this!==t&&null!==t)for(var i=this.panel;null!==i;){if(i===t){t=!0;break t}i=i.panel}t=!1}else t=!1;return t},i.Ed=function(){if(!this.visible)return!1;var t=this.panel;return null===t||t.Ed()},i.If=function(){for(var t=this instanceof Ch?this:this.panel;null!==t&&t.isEnabled;)t=t.panel;return null===t},i.no=function(t,i,e,n,o){if(1!==this.Ca&&t.scale(this.Ca),0!==this.Kb){var r=pt.alloc();r.yi(i,e,n,o,oi),t.rotate(this.Kb,r.x,r.y),pt.free(r)}},i.v=function(t){if(!ia(this)){void 0===t&&(t=!1),ea(this,!0),oa(this,!0);var i=this.panel;null===i||t||i.v()}},i.Uj=function(){ia(this)||(ea(this,!0),oa(this,!0))},i.Uk=function(){0!=(2048&this.l)==!1&&(Qs(this,!0),ta(this,!0))},i.Wu=function(){ta(this,!0)},i.N=function(){var t=this.part;null!==t&&t.N()},i.Gj=function(){this.svg=null},i.wi=function(t){this.Me=t,null!==this.svg&&this.svg.remove()},i.Av=function(){},i.zv=function(t){return this.pa=t,Hs(this),!0},i.mm=function(t,i){this.pa.x===t&&this.pa.y===i||(this.pa.h(t,i),this.Uk())},i.kq=function(){return 0},i.bind=function(t,i,e,n){var o=null;return(o="string"==typeof t?new Gd(t,i,e,n):t).xd=this,null!==(t=this.ih())&&Kh(t)&&w("Cannot add a Binding to a template that has already been copied: "+o),null===this.localBindings&&(this.localBindings=new Z),this.localBindings.add(o),this},i.set=function(t){return Object.assign(this,t),this},i.Du=function(t){return ha(this,t),this},i.apply=function(t){return t(this),this},i.nm=function(t){return nr(this,t),this},i.pz=function(){return this.ih()},i.ih=function(){for(var t=this instanceof Ch?this:this.panel;null!==t;){if(null!==t.allBindings)return t;t=t.panel}return null},i.Jv=function(t){return t.xd=this,null===this.animationTriggers&&(this.animationTriggers=new dt),this.animationTriggers.add(t.propertyName,t),this},f.Object.defineProperties(Ds.prototype,{bindingId:{get:function(){return null!==this.A?this.A.zp:-1},set:function(t){this.bindingId!==t&&(null===this.A&&(this.A=new fa),this.A.zp=t)}},localBindings:{get:function(){return null!==this.A?this.A.te:null},set:function(t){this.localBindings!==t&&(null===this.A&&(this.A=new fa),this.A.te=t)}},srcBindings:{get:function(){return null!==this.A?this.A.wm:null},set:function(t){this.srcBindings!==t&&(null===this.A&&(this.A=new fa),this.A.wm=t)}},shadowVisible:{get:function(){return null!==this.A?this.A.Ci:null},set:function(t){var i=this.shadowVisible;i!==t&&(Bs(this),this.A.Ci=t,this.Uc=!0,this.N(),this.g("shadowVisible",i,t))}},enabledChanged:{get:function(){return null!==this.A?this.A.Hb:null},set:function(t){var i=this.enabledChanged;i!==t&&(Bs(this),this.A.Hb=t,this.g("enabledChanged",i,t))}},segmentOrientation:{get:function(){return null!==this.Ua?this.Ua.rr:Wc},set:function(t){var i=this.segmentOrientation;i!==t&&(null===this.Ua&&(this.Ua=new da),this.Ua.rr=t,this.v(),this.g("segmentOrientation",i,t),t===Wc&&(this.angle=0))}},segmentIndex:{get:function(){return null!==this.Ua?this.Ua.u:-1/0},set:function(t){t=Math.round(t);var i=this.segmentIndex;i!==t&&(null===this.Ua&&(this.Ua=new da),this.Ua.u=t,this.v(),this.g("segmentIndex",i,t))}},segmentFraction:{get:function(){return null!==this.Ua?this.Ua.o:0},set:function(t){isNaN(t)||0>t?t=0:1<t&&(t=1);var i=this.segmentFraction;i!==t&&(null===this.Ua&&(this.Ua=new da),this.Ua.o=t,this.v(),this.g("segmentFraction",i,t))}},segmentOffset:{get:function(){return null!==this.Ua?this.Ua.F:et},set:function(t){var i=this.segmentOffset;i.D(t)||(t=t.J(),null===this.Ua&&(this.Ua=new da),this.Ua.F=t,this.v(),this.g("segmentOffset",i,t))}},stretch:{get:function(){return null!==this.A?this.A.hg:ms},set:function(t){var i=this.stretch;i!==t&&(Bs(this),this.A.hg=t,this.v(),this.g("stretch",i,t))}},name:{get:function(){return null!==this.A?this.A.xa:""},set:function(t){var i=this.name;i!==t&&(Bs(this),this.A.xa=t,null!==this.part&&(this.part.Rh=null),this.g("name",i,t))}},opacity:{get:function(){return this.pb},set:function(t){var i=this.pb;i!==t&&((0>t||1<t)&&M(t,"0 <= value <= 1",Ds,"opacity"),this.pb=t,this.g("opacity",i,t),t=this.diagram,i=this.part,null!==t&&null!==i&&t.N(Lu(i,i.actualBounds)))}},filter:{get:function(){return this.bn},set:function(t){var i=this.bn;i!==t&&(this.bn=t,this.Uc=!0,this.g("filter",i,t),t=this.diagram,i=this.part,null!==t&&null!==i&&t.N(Lu(i,i.actualBounds)))}},visible:{get:function(){return 0!=(1&this.l)},set:function(t){var i=0!=(1&this.l);i!==t&&(this.l^=1,this.g("visible",i,t),null!==(i=this.panel)?i.v():this.Dd()&&this.Zb(t),this.N(),sa(this))}},pickable:{get:function(){return 0!=(2&this.l)},set:function(t){var i=0!=(2&this.l);i!==t&&(this.l^=2,this.g("pickable",i,t))}},fromLinkableDuplicates:{get:function(){return 0!=(4&this.l)},set:function(t){var i=0!=(4&this.l);i!==t&&(this.l^=4,this.g("fromLinkableDuplicates",i,t))}},fromLinkableSelfNode:{get:function(){return 0!=(8&this.l)},set:function(t){var i=0!=(8&this.l);i!==t&&(this.l^=8,this.g("fromLinkableSelfNode",i,t))}},toLinkableDuplicates:{get:function(){return 0!=(16&this.l)},set:function(t){var i=0!=(16&this.l);i!==t&&(this.l^=16,this.g("toLinkableDuplicates",i,t))}},toLinkableSelfNode:{get:function(){return 0!=(32&this.l)},set:function(t){var i=0!=(32&this.l);i!==t&&(this.l^=32,this.g("toLinkableSelfNode",i,t))}},isPanelMain:{get:function(){return 0!=(64&this.l)},set:function(t){var i=0!=(64&this.l);i!==t&&(this.l^=64,this.v(),this.g("isPanelMain",i,t))}},isActionable:{get:function(){return 0!=(128&this.l)},set:function(t){var i=0!=(128&this.l);i!==t&&(this.l^=128,this.g("isActionable",i,t))}},areaBackground:{get:function(){return null!==this.A?this.A.gd:null},set:function(t){var i=this.areaBackground;i!==t&&(null!==t&&Wa(t,"GraphObject.areaBackground"),t instanceof Ia&&t.freeze(),Bs(this),this.A.gd=t,this.N(),this.g("areaBackground",i,t))}},background:{get:function(){return this.Ma},set:function(t){var i=this.Ma;i!==t&&(null!==t&&Wa(t,"GraphObject.background"),t instanceof Ia&&t.freeze(),this.Ma=t,this.N(),this.g("background",i,t))}},part:{get:function(){if(this.Dd())return this;if(null!==this.Ng)return this.Ng;var t;for(t=this.panel;t;){if(t instanceof ku)return this.Ng=t;t=t.panel}return null}},svg:{get:function(){return this.V},set:function(t){this.V=t}},panel:{get:function(){return this.Me}},layer:{get:function(){var t=this.part;return null!==t?t.layer:null}},diagram:{get:function(){var t=this.part;return null!==t?t.diagram:null}},position:{get:function(){return this.pa},set:function(t){var i=t.x,e=t.y,n=this.pa,o=n.x;n=n.y,(o===i||isNaN(o)&&isNaN(i))&&(n===e||isNaN(n)&&isNaN(e))?this.Av():(t=t.copy(),this.zv(t,o,n)&&this.g("position",new pt(o,n),t))}},actualBounds:{get:function(){return this.Ib}},scale:{get:function(){return this.Ca},set:function(t){var i=this.Ca;i!==t&&(0>=t&&w("GraphObject.scale for "+this+" must be greater than zero, not: "+t),this.Ca=t,this.v(),this.g("scale",i,t))}},angle:{get:function(){return this.Kb},set:function(t){var i=this.Kb;i!==t&&(0>(t%=360)&&(t+=360),i!==t&&(this.Kb=t,sa(this),this.v(),this.g("angle",i,t)))}},desiredSize:{get:function(){return this.jd},set:function(t){var i=t.width,e=t.height,n=this.jd,o=n.width,r=n.height;(o===i||isNaN(o)&&isNaN(i))&&(r===e||isNaN(r)&&isNaN(e))||(this.jd=t=t.J(),this.v(),this instanceof pl&&this.qc(),this.g("desiredSize",n,t),_s(this)&&(null!==(t=this.part)&&(Os(this,t,"width"),Os(this,t,"height"))))}},width:{get:function(){return this.jd.width},set:function(t){var i=this.jd.width;i===t||isNaN(i)&&isNaN(t)||(i=this.jd,this.jd=t=new At(t,this.jd.height).freeze(),this.v(),this instanceof pl&&this.qc(),this.g("desiredSize",i,t),_s(this)&&(null!==(t=this.part)&&Os(this,t,"width")))}},height:{get:function(){return this.jd.height},set:function(t){var i=this.jd.height;i===t||isNaN(i)&&isNaN(t)||(i=this.jd,this.jd=t=new At(this.jd.width,t).freeze(),this.v(),this instanceof pl&&this.qc(),this.g("desiredSize",i,t),_s(this)&&(null!==(t=this.part)&&Os(this,t,"height")))}},minSize:{get:function(){return null!==this.A?this.A.u:kt},set:function(t){var i=this.minSize;i.D(t)||(t=t.copy(),isNaN(t.width)&&(t.width=0),isNaN(t.height)&&(t.height=0),t.freeze(),Bs(this),this.A.u=t,this.v(),this.g("minSize",i,t))}},maxSize:{get:function(){return null!==this.A?this.A.o:Ct},set:function(t){var i=this.maxSize;i.D(t)||(t=t.copy(),isNaN(t.width)&&(t.width=1/0),isNaN(t.height)&&(t.height=1/0),t.freeze(),Bs(this),this.A.o=t,this.v(),this.g("maxSize",i,t))}},measuredBounds:{get:function(){return this.uc}},naturalBounds:{get:function(){return this.dc}},margin:{get:function(){return this.Kg},set:function(t){"number"==typeof t&&(t=new Wt(t));var i=this.Kg;i.D(t)||(this.Kg=t=t.J(),this.v(),this.g("margin",i,t))}},transform:{get:function(){return 0!=(2048&this.l)==!0&&qs(this),this.Ab}},oe:{get:function(){return 0!=(4096&this.l)==!0&&qs(this),this.wh}},animationTriggers:{get:function(){return null!==this.A?this.A.hb:null},set:function(t){this.animationTriggers!==t&&(Bs(this),this.A.hb=t)}},reshapingBehavior:{get:function(){return null!==this.A?this.A.Pf:fs},set:function(t){this.reshapingBehavior!==t&&(Bs(this),this.A.Pf=t)}},alignment:{get:function(){return this.Jb},set:function(t){var i=this.Jb;i.D(t)||(t.Mc()&&!t.Xb()&&w("GraphObject.alignment for "+this+" must be a real Spot or Spot.Default, not: "+t),this.Jb=t=t.J(),Hs(this),this.g("alignment",i,t))}},column:{get:function(){return this.Ag},set:function(t){t=Math.round(t);var i=this.Ag;i!==t&&(0>t&&M(t,">= 0",Ds,"column"),this.Ag=t,this.v(),this.g("column",i,t),null!==this.svg&&this.svg.remove())}},columnSpan:{get:function(){return null!==this.A?this.A.ob:1},set:function(t){t=Math.round(t);var i=this.columnSpan;i!==t&&(1>t&&M(t,">= 1",Ds,"columnSpan"),Bs(this),this.A.ob=t,this.v(),this.g("columnSpan",i,t))}},row:{get:function(){return this.io},set:function(t){t=Math.round(t);var i=this.io;i!==t&&(0>t&&M(t,">= 0",Ds,"row"),this.io=t,this.v(),this.g("row",i,t),null!==this.svg&&this.svg.remove())}},rowSpan:{get:function(){return null!==this.A?this.A.Bi:1},set:function(t){t=Math.round(t);var i=this.rowSpan;i!==t&&(1>t&&M(t,">= 1",Ds,"rowSpan"),Bs(this),this.A.Bi=t,this.v(),this.g("rowSpan",i,t))}},spanAllocation:{get:function(){return null!==this.A?this.A.Di:null},set:function(t){var i=this.spanAllocation;i!==t&&(Bs(this),this.A.Di=t,this.v(),this.g("spanAllocation",i,t))}},alignmentFocus:{get:function(){return this.sk},set:function(t){var i=this.sk;i.D(t)||(this.sk=t=t.J(),this.v(),this.g("alignmentFocus",i,t))}},portId:{get:function(){return this.Yn},set:function(t){var i=this.Yn;if(i!==t){var e=this.part;null===e||e instanceof Ju||w("Cannot set portID on a Link: "+t),null!==i&&null!==e&&ac(e,this),this.Yn=t,null!==t&&null!==e&&(e.Te=!0,sc(e,this)),this.g("portId",i,t)}}},toSpot:{get:function(){return null!==this.ba?this.ba.yj:Qt},set:function(t){var i=this.toSpot;i.D(t)||(t=t.J(),this.Xc(),this.ba.yj=t,this.g("toSpot",i,t),ra(this))}},toEndSegmentLength:{get:function(){return null!==this.ba?this.ba.wj:10},set:function(t){var i=this.toEndSegmentLength;i!==t&&(0>t&&M(t,">= 0",Ds,"toEndSegmentLength"),this.Xc(),this.ba.wj=t,this.g("toEndSegmentLength",i,t),ra(this))}},toShortLength:{get:function(){return null!==this.ba?this.ba.xj:0},set:function(t){var i=this.toShortLength;i!==t&&(this.Xc(),this.ba.xj=t,this.g("toShortLength",i,t),ra(this))}},toLinkable:{get:function(){return null!==this.ba?this.ba.Tr:null},set:function(t){var i=this.toLinkable;i!==t&&(this.Xc(),this.ba.Tr=t,this.g("toLinkable",i,t))}},toMaxLinks:{get:function(){return null!==this.ba?this.ba.Ur:1/0},set:function(t){var i=this.toMaxLinks;i!==t&&(0>t&&M(t,">= 0",Ds,"toMaxLinks"),this.Xc(),this.ba.Ur=t,this.g("toMaxLinks",i,t))}},fromSpot:{get:function(){return null!==this.ba?this.ba.Xi:Qt},set:function(t){var i=this.fromSpot;i.D(t)||(t=t.J(),this.Xc(),this.ba.Xi=t,this.g("fromSpot",i,t),ra(this))}},fromEndSegmentLength:{get:function(){return null!==this.ba?this.ba.Vi:10},set:function(t){var i=this.fromEndSegmentLength;i!==t&&(0>t&&M(t,">= 0",Ds,"fromEndSegmentLength"),this.Xc(),this.ba.Vi=t,this.g("fromEndSegmentLength",i,t),ra(this))}},fromShortLength:{get:function(){return null!==this.ba?this.ba.Wi:0},set:function(t){var i=this.fromShortLength;i!==t&&(this.Xc(),this.ba.Wi=t,this.g("fromShortLength",i,t),ra(this))}},fromLinkable:{get:function(){return null!==this.ba?this.ba.hq:null},set:function(t){var i=this.fromLinkable;i!==t&&(this.Xc(),this.ba.hq=t,this.g("fromLinkable",i,t))}},fromMaxLinks:{get:function(){return null!==this.ba?this.ba.iq:1/0},set:function(t){var i=this.fromMaxLinks;i!==t&&(0>t&&M(t,">= 0",Ds,"fromMaxLinks"),this.Xc(),this.ba.iq=t,this.g("fromMaxLinks",i,t))}},cursor:{get:function(){return null!==this.A?this.A.j:""},set:function(t){var i=this.cursor;i!==t&&(Bs(this),this.A.j=t,this.g("cursor",i,t))}},click:{get:function(){return null!==this.A?this.A.zh:null},set:function(t){var i=this.click;i!==t&&(Bs(this),this.A.zh=t,this.g("click",i,t))}},doubleClick:{get:function(){return null!==this.A?this.A.Fh:null},set:function(t){var i=this.doubleClick;i!==t&&(Bs(this),this.A.Fh=t,this.g("doubleClick",i,t))}},contextClick:{get:function(){return null!==this.A?this.A.Bh:null},set:function(t){var i=this.contextClick;i!==t&&(Bs(this),this.A.Bh=t,this.g("contextClick",i,t))}},mouseEnter:{get:function(){return null!==this.A?this.A.Mh:null},set:function(t){var i=this.mouseEnter;i!==t&&(Bs(this),this.A.Mh=t,this.g("mouseEnter",i,t))}},mouseLeave:{get:function(){return null!==this.A?this.A.Ph:null},set:function(t){var i=this.mouseLeave;i!==t&&(Bs(this),this.A.Ph=t,this.g("mouseLeave",i,t))}},mouseOver:{get:function(){return null!==this.A?this.A.Qh:null},set:function(t){var i=this.mouseOver;i!==t&&(Bs(this),this.A.Qh=t,this.g("mouseOver",i,t))}},mouseHover:{get:function(){return null!==this.A?this.A.Oh:null},set:function(t){var i=this.mouseHover;i!==t&&(Bs(this),this.A.Oh=t,this.g("mouseHover",i,t))}},mouseHold:{get:function(){return null!==this.A?this.A.Nh:null},set:function(t){var i=this.mouseHold;i!==t&&(Bs(this),this.A.Nh=t,this.g("mouseHold",i,t))}},mouseDragEnter:{get:function(){return null!==this.A?this.A.Of:null},set:function(t){var i=this.mouseDragEnter;i!==t&&(Bs(this),this.A.Of=t,this.g("mouseDragEnter",i,t))}},mouseDragLeave:{get:function(){return null!==this.A?this.A.Xd:null},set:function(t){var i=this.mouseDragLeave;i!==t&&(Bs(this),this.A.Xd=t,this.g("mouseDragLeave",i,t))}},mouseDrop:{get:function(){return null!==this.A?this.A.Lh:null},set:function(t){var i=this.mouseDrop;i!==t&&(Bs(this),this.A.Lh=t,this.g("mouseDrop",i,t))}},actionDown:{get:function(){return null!==this.A?this.A.V:null},set:function(t){var i=this.actionDown;i!==t&&(Bs(this),this.A.V=t,this.g("actionDown",i,t))}},actionMove:{get:function(){return null!==this.A?this.A.ia:null},set:function(t){var i=this.actionMove;i!==t&&(Bs(this),this.A.ia=t,this.g("actionMove",i,t))}},actionUp:{get:function(){return null!==this.A?this.A.Ha:null},set:function(t){var i=this.actionUp;i!==t&&(Bs(this),this.A.Ha=t,this.g("actionUp",i,t))}},actionCancel:{get:function(){return null!==this.A?this.A.F:null},set:function(t){var i=this.actionCancel;i!==t&&(Bs(this),this.A.F=t,this.g("actionCancel",i,t))}},toolTip:{get:function(){return null!==this.A?this.A.$h:null},set:function(t){var i=this.toolTip;i!==t&&(Bs(this),this.A.$h=t,this.g("toolTip",i,t))}},contextMenu:{get:function(){return null!==this.A?this.A.Ch:null},set:function(t){var i=this.contextMenu;i!==t&&(Bs(this),this.A.Ch=t,this.g("contextMenu",i,t))}}}),Ds.prototype.trigger=Ds.prototype.Jv,Ds.prototype.findBindingPanel=Ds.prototype.ih,Ds.prototype.findTemplateBinder=Ds.prototype.pz,Ds.prototype.setProperties=Ds.prototype.nm,Ds.prototype.apply=Ds.prototype.apply,Ds.prototype.attach=Ds.prototype.Du,Ds.prototype.set=Ds.prototype.set,Ds.prototype.isEnabledObject=Ds.prototype.If,Ds.prototype.isVisibleObject=Ds.prototype.Ed,Ds.prototype.isContainedBy=Ds.prototype.rg,Ds.prototype.getNearestIntersectionPoint=Ds.prototype.rs,Ds.prototype.getLocalPoint=Ds.prototype.qs,Ds.prototype.getDocumentScale=Ds.prototype.Df,Ds.prototype.getDocumentAngle=Ds.prototype.li,Ds.prototype.getDocumentBounds=Ds.prototype.mi,Ds.prototype.getDocumentPoint=Ds.prototype.ga,Ds.prototype.intersectsRect=Ds.prototype.Yc,Ds.prototype.containedInRect=Ds.prototype.fh,Ds.prototype.containsRect=Ds.prototype.Re,Ds.prototype.containsPoint=Ds.prototype.ca,Ds.prototype.raiseChanged=Ds.prototype.g,Ds.prototype.raiseChangedEvent=Ds.prototype.cb,Ds.prototype.addCopyProperty=Ds.prototype.Vw;var ca=null;function fa(){this.nc=!1,this.xa="",this.zp=-1,this.nb=this.wm=this.te=null,this.j="",this.hb=this.Di=this.Hb=this.Ch=this.$h=this.F=this.Ha=this.ia=this.V=this.Lh=this.Xd=this.Of=this.Nh=this.Oh=this.Qh=this.Ph=this.Mh=this.Bh=this.Fh=this.zh=null,this.u=kt,this.o=Ct,this.hg=ms,this.ob=this.Bi=1,this.Pf=fs,this.Pc=this.Ci=this.gd=null,this.Oc="category"}function da(){this.u=-1/0,this.o=0,this.F=et,this.rr=Wc,this.j=this.V="None"}function pa(){this.yj=this.Xi=Si,this.xj=this.Wi=this.wj=this.Vi=NaN,this.Tr=this.hq=null,this.Ur=this.iq=1/0}function ga(){this.ha=[1,0,0,1,0,0]}function ma(t){this.type=t,this.r2=this.y2=this.x2=this.r1=this.y1=this.x1=0,this.gx=[],this.pattern=null}function ya(t,i,e){this.ownerDocument=t=void 0===i?m.document:i,this.cA="http://www.w3.org/2000/svg",void 0!==t&&(this.Oa=this.Ud("svg",{width:"1px",height:"1px",viewBox:"0 0 1 1"}),this.style.display="block",this.style.letterSpacing="normal",this.style.wordSpacing="normal",this.Oa.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns","http://www.w3.org/2000/svg"),this.Oa.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink")),this.hs=null,this.context=new va(this,e)}function va(t,i){this.Gv=t,this.svg=t.Oa,this.stack=[],this.nh=[],this.fillStyle="#000000",this.font="10px sans-serif",this.globalAlpha=1,this.lineCap="butt",this.lineDashOffset=0,this.lineJoin="miter",this.lineWidth=1,this.miterLimit=10,this.shadowBlur=0,this.shadowColor="rgba(0, 0, 0, 0)",this.shadowOffsetY=this.shadowOffsetX=0,this.Il=!1,this.strokeStyle="#000000",this.textAlign="start",this.clipInsteadOfFill=!1,this.Vg=this.Br=this.Ar=0,this.yd=this.ad=null,this.path=[],this.Yl={},this.Ct=!1,this.Yg=null,this.uj=0,this.rb=new ga,this.j=Ta(this),this.Nj=Ta(this,"gojs-diagram"),this.Hl=this.ti=null;var e=at++,n=this.Ud("clipPath",{id:"mainClip"+e});n.appendChild(this.Ud("rect",{x:0,y:0,width:t.width,height:t.height})),this.ww=n,this.svg.appendChild(this.j),this.j.appendChild(this.Nj),this.svg.appendChild(n),this.j.setAttributeNS(null,"clip-path","url(#mainClip"+e+")"),this.eA={},this.isTemporary=!!i,this.filter="",this.bk=null}function xa(t,i,e,n,o,r,s){void 0===t.Nj?Ca(t,i,e,n,o,r,s):t.Nj.setAttribute("transform","matrix("+i+", "+e+", "+n+", "+o+", "+r+", "+s+")")}function ba(t,i,e,n,o,r,s,a,h){n=a/n,o=h/o,0===r&&0===s||t.rb.translate(r,s),1===n&&1===o||t.rb.scale(n,o),0===i&&0===e||t.rb.translate(-i,-e)}function wa(t){return"matrix("+(t=t.rb.ha)[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+")"}function ka(t,i,e,n){"fill"===i?Ma(t,e):"stroke"===i&&Pa(t,e),null!==n&&(t=n.ha,e.transform="matrix("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+")")}function Ma(t,i){t.fillStyle instanceof ma?i.fill=Na(t,t.fillStyle,!0):/^rgba\(/.test(t.fillStyle)?(t=/^\s*rgba\s*\(([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\)\s*$/i.exec(t.fillStyle),i.fill="rgb("+t[1]+","+t[2]+","+t[3]+")",i["fill-opacity"]=t[4]):i.fill=t.fillStyle}function Sa(t,i,e){e=e?"fill":"stroke",t.fillStyle instanceof ma?i.setAttributeNS(null,"fill",Na(t,t.fillStyle,!0)):/^rgba\(/.test(t.fillStyle)?(t=/^\s*rgba\s*\(([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\)\s*$/i.exec(t.fillStyle),i.setAttributeNS(null,e,"rgb("+t[1]+","+t[2]+","+t[3]+")"),i.setAttributeNS(null,e+"-opacity",t[4])):i.setAttributeNS(null,e,t.fillStyle)}function Pa(t,i){if(t.strokeStyle instanceof ma)i.stroke=Na(t,t.strokeStyle,!1);else if(/^rgba\(/.test(t.strokeStyle)){var e=/^\s*rgba\s*\(([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\)\s*$/i.exec(t.strokeStyle);i.stroke="rgb("+e[1]+","+e[2]+","+e[3]+")",i["stroke-opacity"]=e[4]}else i.stroke=t.strokeStyle;i["stroke-width"]=t.lineWidth,i["stroke-linecap"]=t.lineCap,i["stroke-linejoin"]=t.lineJoin,i["stroke-miterlimit"]=t.miterLimit,t.Ct&&(i["stroke-dasharray"]=t.Yg.toString(),i["stroke-dashoffset"]=t.uj)}function Na(t,i,e){var n="";if(null!==(n=null!==t.Hl?t.Hl.getAttribute(e?"fill":"stroke"):null)&&-1!==n.indexOf("GRAD")?(n=n.split("#")[1].slice(0,-1),null!==(e=t.svg.getElementById(n))&&e.remove()):n="GRAD"+at++,"linear"===i.type)e=t.Ud("linearGradient",{x1:i.x1,x2:i.x2,y1:i.y1,y2:i.y2,id:n,gradientUnits:"userSpaceOnUse"});else{if("radial"!==i.type)throw Error("invalid gradient");e=t.Ud("radialGradient",{x1:i.x1,x2:i.x2,y1:i.y1,y2:i.y2,r1:i.r1,r2:i.r2,id:n})}var o=i.gx;i=o.length;for(var r=[],s=0;s<i;s++){var a=o[s],h=a.color;a={offset:a.offset,"stop-color":h},/^rgba\(/.test(h)&&(h=/^\s*rgba\s*\(([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\)\s*$/i.exec(h),a["stop-color"]="rgb("+h[1]+","+h[2]+","+h[3]+")",a["stop-opacity"]=h[4]),r.push(a)}for(r.sort((function(t,i){return t.offset>i.offset?1:-1})),o=0;o<i;o++)e.appendChild(t.Ud("stop",r[o]));return t.svg.appendChild(e),"url(#"+n+")"}function Ca(t,i,e,n,o,r,s){var a=new ga;a.ha=[i,e,n,o,r,s],ka(t,"g",i={},a),a=t.addElement("g",i),t.nh.push(a)}function Ta(t,i){var e={};return i&&(e.class=i),i=t.addElement("g",e),t.nh.push(i),i}function La(t){t.Il=!1,t.shadowOffsetX=0,t.shadowOffsetY=0,t.shadowBlur=0}function Aa(t){t.Il=!0,t.shadowOffsetX=t.Ar,t.shadowOffsetY=t.Br,t.shadowBlur=t.Vg}function ja(t,i){null!==(i=i.getAttribute("fill"))&&(1!==(i=i.split("#")).length&&(null!==(i=t.svg.getElementById(i[1].slice(0,-1)))&&1===t.svg.innerHTML.match(new RegExp(i.id,"g")).length&&i.remove()))}function Fa(t,i,e,n){this.ownerDocument=i=void 0===i?m.document:i,this.hs=null,(i=i.createElement("canvas")).tabIndex=0,this.Oa=i,this.context=new Da(i,e,n),i.H=t}function Da(t,i,e){this.Z=t.getContext?t.getContext("2d",i):null,null===this.Z&&w("Browser does not support HTML Canvas Element"),this.ct=this.et=this.dt="",this.Hm=!1,this.Vg=this.Br=this.Ar=0,this.Il=!1,this.El=new Yi,this.isTemporary=!!e}Ds.className="GraphObject",ca=new dt,la("Button",(function(){function t(t,i){return null!==t.diagram.ic(t.documentPoint,(function(t){for(;null!==t.panel&&!t.isActionable;)t=t.panel;return t}),(function(t){return t===i}))}var i=aa(Ch,Ch.Auto,{isActionable:!0,enabledChanged:function(t,i){if(t instanceof Ch){var e=t.fb("ButtonBorder");null!==e&&(e.fill=i?t._buttonFillNormal:t._buttonFillDisabled)}},cursor:"pointer",_buttonFillNormal:"#F5F5F5",_buttonStrokeNormal:"#BDBDBD",_buttonFillOver:"#E0E0E0",_buttonStrokeOver:"#9E9E9E",_buttonFillPressed:"#BDBDBD",_buttonStrokePressed:"#9E9E9E",_buttonFillDisabled:"#E5E5E5"},aa(pl,{name:"ButtonBorder",figure:"RoundedRectangle",spot1:new Ii(0,0,2.76142374915397,2.761423749153969),spot2:new Ii(1,1,-2.76142374915397,-2.761423749153969),parameter1:2,parameter2:2,fill:"#F5F5F5",stroke:"#BDBDBD"}));return i.mouseEnter=function(t,i){if(i.If()&&i instanceof Ch&&(t=i.fb("ButtonBorder"))instanceof pl){var e=i._buttonFillOver;i._buttonFillNormal=t.fill,t.fill=e,e=i._buttonStrokeOver,i._buttonStrokeNormal=t.stroke,t.stroke=e}},i.mouseLeave=function(t,i){i.If()&&i instanceof Ch&&((t=i.fb("ButtonBorder"))instanceof pl&&(t.fill=i._buttonFillNormal,t.stroke=i._buttonStrokeNormal))},i.actionDown=function(t,i){if(i.If()&&i instanceof Ch&&null!==i._buttonFillPressed&&0===t.button){var e=i.fb("ButtonBorder");if(e instanceof pl){var n=(t=t.diagram).skipsUndoManager;t.skipsUndoManager=!0;var o=i._buttonFillPressed;i._buttonFillOver=e.fill,e.fill=o,o=i._buttonStrokePressed,i._buttonStrokeOver=e.stroke,e.stroke=o,t.skipsUndoManager=n}}},i.actionUp=function(i,e){if(e.If()&&e instanceof Ch&&null!==e._buttonFillPressed&&0===i.button){var n=e.fb("ButtonBorder");if(n instanceof pl){var o=i.diagram,r=o.skipsUndoManager;o.skipsUndoManager=!0,t(i,e)?(n.fill=e._buttonFillOver,n.stroke=e._buttonStrokeOver):(n.fill=e._buttonFillNormal,n.stroke=e._buttonStrokeNormal),o.skipsUndoManager=r}}},i.actionCancel=function(i,e){if(e.If()&&e instanceof Ch&&null!==e._buttonFillPressed){var n=e.fb("ButtonBorder");if(n instanceof pl){var o=i.diagram,r=o.skipsUndoManager;o.skipsUndoManager=!0,t(i,e)?(n.fill=e._buttonFillOver,n.stroke=e._buttonStrokeOver):(n.fill=e._buttonFillNormal,n.stroke=e._buttonStrokeNormal),o.skipsUndoManager=r}}},i.actionMove=function(i,e){if(e.If()&&e instanceof Ch&&null!==e._buttonFillPressed){var n=i.diagram;if(0===n.firstInput.button&&(n.currentTool.standardMouseOver(),t(i,e)&&(i=e.fb("ButtonBorder"))instanceof pl)){var o=n.skipsUndoManager;n.skipsUndoManager=!0;var r=e._buttonFillPressed;i.fill!==r&&(i.fill=r),r=e._buttonStrokePressed,i.stroke!==r&&(i.stroke=r),n.skipsUndoManager=o}}},i})),la("TreeExpanderButton",(function(){var t=aa("Button",{_treeExpandedFigure:"MinusLine",_treeCollapsedFigure:"PlusLine"},aa(pl,{name:"ButtonIcon",figure:"MinusLine",stroke:"#424242",strokeWidth:2,desiredSize:Pt},new Gd("figure","isTreeExpanded",(function(t,i){return i=i.panel,t?i._treeExpandedFigure:i._treeCollapsedFigure})).cp()),{visible:!1},new Gd("visible","isTreeLeaf",(function(t){return!t})).cp());return t.click=function(t,i){if((i=i.part)instanceof Ku&&(i=i.adornedPart),i instanceof Ju){var e=i.diagram;if(null!==e){if(e=e.commandHandler,i.isTreeExpanded){if(!e.canCollapseTree(i))return}else if(!e.canExpandTree(i))return;t.handled=!0,i.isTreeExpanded?e.collapseTree(i):e.expandTree(i)}}},t})),la("SubGraphExpanderButton",(function(){var t=aa("Button",{_subGraphExpandedFigure:"MinusLine",_subGraphCollapsedFigure:"PlusLine"},aa(pl,{name:"ButtonIcon",figure:"MinusLine",stroke:"#424242",strokeWidth:2,desiredSize:Pt},new Gd("figure","isSubGraphExpanded",(function(t,i){return i=i.panel,t?i._subGraphExpandedFigure:i._subGraphCollapsedFigure})).cp()));return t.click=function(t,i){if((i=i.part)instanceof Ku&&(i=i.adornedPart),i instanceof gc){var e=i.diagram;if(null!==e){if(e=e.commandHandler,i.isSubGraphExpanded){if(!e.canCollapseSubGraph(i))return}else if(!e.canExpandSubGraph(i))return;t.handled=!0,i.isSubGraphExpanded?e.collapseSubGraph(i):e.expandSubGraph(i)}}},t})),la("ToolTip",(function(){return aa(Ku,Ch.Auto,{isShadowed:!0,shadowColor:"rgba(0, 0, 0, .4)",shadowOffset:new pt(0,3),shadowBlur:5},aa(pl,{name:"Border",figure:"RoundedRectangle",parameter1:1,parameter2:1,fill:"#F5F5F5",stroke:"#F0F0F0",spot1:new Ii(0,0,4,6),spot2:new Ii(1,1,-4,-4)}))})),la("ContextMenu",(function(){return aa(Ku,Ch.Vertical,{background:"#F5F5F5",isShadowed:!0,shadowColor:"rgba(0, 0, 0, .4)",shadowOffset:new pt(0,3),shadowBlur:5},new Gd("background","",(function(t){return null!==t.adornedPart&&null!==t.placeholder?null:"#F5F5F5"})))})),la("ContextMenuButton",(function(){var t=aa("Button");t.stretch=ps;var i=t.fb("ButtonBorder");return i instanceof pl&&(i.figure="Rectangle",i.strokeWidth=0,i.spot1=new Ii(0,0,2,3),i.spot2=new Ii(1,1,-2,-2)),t})),la("PanelExpanderButton",(function(t){var i=ua(t,"COLLAPSIBLE"),e=aa("Button",{_buttonExpandedFigure:"M0 0 M0 6 L4 2 8 6 M8 8",_buttonCollapsedFigure:"M0 0 M0 2 L4 6 8 2 M8 8",_buttonFillNormal:"rgba(0, 0, 0, 0)",_buttonStrokeNormal:null,_buttonFillOver:"rgba(0, 0, 0, .2)",_buttonStrokeOver:null,_buttonFillPressed:"rgba(0, 0, 0, .4)",_buttonStrokePressed:null},aa(pl,{name:"ButtonIcon",strokeWidth:2},new Gd("geometryString","visible",(function(t){return t?e._buttonExpandedFigure:e._buttonCollapsedFigure})).cp(i)));return(t=e.fb("ButtonBorder"))instanceof pl&&(t.stroke=null,t.fill="rgba(0, 0, 0, 0)"),e.click=function(t,e){var n=e.diagram;if(null!==n&&!n.isReadOnly){var o=e.ih();null===o&&(o=e.part),null!==o&&(null!==(e=o.fb(i))&&(t.handled=!0,n.Ea("Collapse/Expand Panel"),e.visible=!e.visible,n.eb("Collapse/Expand Panel")))}},e})),la("CheckBoxButton",(function(t){var i=ua(t);return(t=aa("Button",{desiredSize:new At(14,14)},aa(pl,{name:"ButtonIcon",geometryString:"M0 0 M0 8.85 L4.9 13.75 16.2 2.45 M16.2 16.2",strokeWidth:2,stretch:cs,geometryStretch:ds,visible:!1},""!==i?new Gd("visible",i).Kx():[]))).click=function(t,e){if(e instanceof Ch){var n=t.diagram;if(!(null===n||n.isReadOnly||""!==i&&n.model.isReadOnly)){t.handled=!0;var o=e.fb("ButtonIcon");n.Ea("checkbox"),o.visible=!o.visible,"function"==typeof e._doClick&&e._doClick(t,e),n.eb("checkbox")}}},t})),la("CheckBox",(function(t){t=aa("CheckBoxButton",t=ua(t),{name:"Button",isActionable:!1,margin:new Wt(0,1,0,0)});var i=aa(Ch,"Horizontal",t,{isActionable:!0,cursor:t.cursor,margin:new Wt(1),_buttonFillNormal:t._buttonFillNormal,_buttonStrokeNormal:t._buttonStrokeNormal,_buttonFillOver:t._buttonFillOver,_buttonStrokeOver:t._buttonStrokeOver,_buttonFillPressed:t._buttonFillPressed,_buttonStrokePressed:t._buttonStrokePressed,_buttonFillDisabled:t._buttonFillDisabled,mouseEnter:t.mouseEnter,mouseLeave:t.mouseLeave,actionDown:t.actionDown,actionUp:t.actionUp,actionCancel:t.actionCancel,actionMove:t.actionMove,click:t.click,_buttonClick:t.click});return t.mouseEnter=null,t.mouseLeave=null,t.actionDown=null,t.actionUp=null,t.actionCancel=null,t.actionMove=null,t.click=null,i})),Ds.None=fs=new V(Ds,"None",0),Ds.Default=ms=new V(Ds,"Default",0),Ds.Vertical=gs=new V(Ds,"Vertical",4),Ds.Horizontal=ps=new V(Ds,"Horizontal",5),Ds.Fill=cs=new V(Ds,"Fill",3),Ds.Uniform=ds=new V(Ds,"Uniform",1),Ds.UniformToFill=ys=new V(Ds,"UniformToFill",2),Ds.FlipVertical=vs=new V(Ds,"FlipVertical",1),Ds.FlipHorizontal=xs=new V(Ds,"FlipHorizontal",2),Ds.FlipBoth=bs=new V(Ds,"FlipBoth",3),Ds.make=aa,Ds.getBuilders=function(){var t,i=new dt;for(t in ca)if(t!==t.toLowerCase()){var e=ca.I(t);"function"==typeof e&&i.add(t,e)}return i.freeze(),i},Ds.defineBuilder=la,Ds.build=function(t,i,e){for(var n=[],o=2;o<arguments.length;++o)n[o-2]=arguments[o];if("function"==typeof(o=ca.I(t))&&(n=o([t].concat(n)))instanceof Ds)return i&&n.set(i),n;w('GraphObject.build invoked object builder "'+t+'", but it did not return an Object')},Ds.takeBuilderArgument=ua,fa.prototype.copy=function(){var t=new fa;return t.xa=this.xa,t.zp=this.zp,t.te=this.te,t.nb=this.nb,t.j=this.j,t.zh=this.zh,t.Fh=this.Fh,t.Bh=this.Bh,t.Mh=this.Mh,t.Ph=this.Ph,t.Qh=this.Qh,t.Oh=this.Oh,t.Nh=this.Nh,t.Of=this.Of,t.Xd=this.Xd,t.Lh=this.Lh,t.V=this.V,t.ia=this.ia,t.Ha=this.Ha,t.F=this.F,t.$h=this.$h,t.Ch=this.Ch,t.Hb=this.Hb,t.Di=this.Di,t.hb=this.hb,t.u=this.u.J(),t.o=this.o.J(),t.hg=this.hg,t.Bi=this.Bi,t.ob=this.ob,t.Pf=this.Pf,t.gd=this.gd,t.Ci=this.Ci,t.Pc=this.Pc,t.Oc=this.Oc,t},da.prototype.copy=function(){var t=new da;return t.u=this.u,t.o=this.o,t.F=this.F.J(),t.rr=this.rr,t.V=this.V,t.j=this.j,t},da.className="LinkElementSettings",pa.prototype.copy=function(){var t=new pa;return t.Xi=this.Xi.J(),t.yj=this.yj.J(),t.Vi=this.Vi,t.wj=this.wj,t.Wi=this.Wi,t.xj=this.xj,t.hq=this.hq,t.Tr=this.Tr,t.iq=this.iq,t.Ur=this.Ur,t},pa.className="LinkSettings",ga.prototype.copy=function(){var t=new ga;return t.ha[0]=this.ha[0],t.ha[1]=this.ha[1],t.ha[2]=this.ha[2],t.ha[3]=this.ha[3],t.ha[4]=this.ha[4],t.ha[5]=this.ha[5],t},ga.prototype.translate=function(t,i){this.ha[4]+=this.ha[0]*t+this.ha[2]*i,this.ha[5]+=this.ha[1]*t+this.ha[3]*i},ga.prototype.scale=function(t,i){this.ha[0]*=t,this.ha[1]*=t,this.ha[2]*=i,this.ha[3]*=i},ga.prototype.rotate=function(t,i,e){if(360<=t?t-=360:0>t&&(t+=360),0!==t){if(this.translate(i,e),90===t){t=0;var n=1}else 180===t?(t=-1,n=0):270===t?(t=0,n=-1):(n=t*Math.PI/180,t=Math.cos(n),n=Math.sin(n));var o=this.ha[1]*t+this.ha[3]*n,r=this.ha[0]*-n+this.ha[2]*t,s=this.ha[1]*-n+this.ha[3]*t;this.ha[0]=this.ha[0]*t+this.ha[2]*n,this.ha[1]=o,this.ha[2]=r,this.ha[3]=s,this.translate(-i,-e)}},ga.className="STransform",ma.prototype.addColorStop=function(t,i){this.gx.push({offset:t,color:i})},ma.className="SGradient",ya.prototype.resize=function(t,i,e,n){return(this.width!==t||this.height!==i)&&(this.width=t,this.height=i,this.style.width=e+"px",this.style.height=n+"px",this.Oa.setAttributeNS(null,"width",e+"px"),this.Oa.setAttributeNS(null,"height",n+"px"),this.Oa.setAttributeNS(null,"viewBox","0 0 "+e+" "+n),this.context.ww.firstElementChild.setAttributeNS(null,"width",e+"px"),this.context.ww.firstElementChild.setAttributeNS(null,"height",n+"px"),!0)},ya.prototype.Ud=function(t,i,e){if(t=this.ownerDocument.createElementNS(this.cA,t),P(i))for(var n in i)t.setAttributeNS("href"===n?"http://www.w3.org/1999/xlink":"",n,i[n]);return void 0!==e&&(t.textContent=e),t},ya.prototype.getBoundingClientRect=function(){return this.Oa.getBoundingClientRect()},ya.prototype.focus=function(){this.Oa.focus()},ya.prototype.mx=function(){this.ownerDocument=null},f.Object.defineProperties(ya.prototype,{width:{get:function(){return this.Oa.width.baseVal.value},set:function(t){this.Oa.setAttribute("width",t+"px")}},height:{get:function(){return this.Oa.height.baseVal.value},set:function(t){this.Oa.setAttribute("height",t+"px")}},style:{get:function(){return this.Oa.style}}}),ya.className="SVGSurface",(i=va.prototype).arc=function(t,i,e,n,o,r,s,a){var h=2*Math.PI,l=h-1e-6,u=e*Math.cos(n),c=e*Math.sin(n),f=t+u,d=i+c,p=r?0:1;n=r?n-o:o-n,(1e-6<Math.abs(s-f)||1e-6<Math.abs(a-d))&&this.path.push(["L",f,+d]),0>n&&(n=n%h+h),n>l?(this.path.push(["A",e,e,0,1,p,t-u,i-c]),this.path.push(["A",e,e,0,1,p,f,d])):1e-6<n&&this.path.push(["A",e,e,0,+(n>=Math.PI),p,t+e*Math.cos(o),i+e*Math.sin(o)])},i.beginPath=function(){this.path=[],this.Yl={stroke:"none",fill:"none"}},i.Se=function(t){this.addPath(this.path,this.rb,t||0)},i.bezierCurveTo=function(t,i,e,n,o,r){this.path.push(["C",t,i,e,n,o,r])},i.clearRect=function(){},i.clip=function(){this.Yl.clipPath=!0},i.closePath=function(){this.path.push(["z"])},i.createLinearGradient=function(t,i,e,n){var o=new ma("linear");return o.x1=t,o.y1=i,o.x2=e,o.y2=n,o},i.createPattern=function(t){var i="";t instanceof HTMLCanvasElement&&(i=t.toDataURL()),t instanceof HTMLImageElement&&(i=t.getAttribute("src"));var e=this.eA;if(e[i])return"url(#"+e[i]+")";var n="PATTERN"+at++,o={x:0,y:0,width:t.width,height:t.height,href:i};return(t=this.Ud("pattern",{width:t.width,height:t.height,id:n,patternUnits:"userSpaceOnUse"})).appendChild(this.Ud(rs,o)),this.svg.appendChild(t),e[i]=n,"url(#"+n+")"},i.createRadialGradient=function(t,i,e,n,o,r){var s=new ma("radial");return s.x1=t,s.y1=i,s.r1=e,s.x2=n,s.y2=o,s.r2=r,s},i.drawImage=function(t,i,e,n,o,r,s,a,h){var l="";t instanceof HTMLCanvasElement&&(l=t.toDataURL()),t instanceof HTMLImageElement&&(l=t.getAttribute("src"));var u=t instanceof HTMLImageElement?t.naturalWidth:t.width;t=t instanceof HTMLImageElement?t.naturalHeight:t.height,void 0===n&&(r=i,s=e,a=n=u,h=o=t),ba(this,i,e,n=n||0,o=o||0,r||0,s||0,a=a||0,h=h||0),r={x:0,y:0,width:u||n,height:t||o,href:l},Xi.$(n,a)&&Xi.$(o,h)?-1===l.toLowerCase().indexOf(".svg")&&-1===l.toLowerCase().indexOf("data:image/svg")&&(r.preserveAspectRatio="xMidYMid slice"):r.preserveAspectRatio="none",0===i&&0===e&&n===u&&o===t||(n+=i,o+=e,r["clip-path"]="path('M "+i+","+e+" L "+n+" "+e+" L "+n+" "+o+" L "+i+" "+o+" z')"),ka(this,rs,r,this.rb),this.addElement(rs,r)},i.fill=function(t){t&&(this.Yl["fill-rule"]="evenodd"),Ma(this,this.Yl)},i.ng=function(t,i){this.clipInsteadOfFill?this.clip():this.fill(i)},i.fillRect=function(t,i,e,n){ka(this,"fill",t={x:(t=[t,i,e,n])[0],y:t[1],width:t[2],height:t[3]},this.rb),this.addElement("rect",t)},i.ox=function(t,i,e,n){ka(this,"fill",t={x:t,y:i,width:e,height:n},this.rb),Ma(this,t),this.svg.prepend(this.Ud("rect",t))},i.fillText=function(t,i,e){t=[t,i,e],"left"===(i=this.textAlign)?i="start":"right"===i?i="end":"center"===i&&(i="middle"),ka(this,"fill",i={x:t[1],y:t[2],style:"font: "+this.font,"text-anchor":i},this.rb),this.addElement("text",i,t[0])},i.lineTo=function(t,i){this.path.push(["L",t,i])},i.moveTo=function(t,i){this.path.push(["M",t,i])},i.quadraticCurveTo=function(t,i,e,n){this.path.push(["Q",t,i,e,n])},i.rect=function(t,i,e,n){this.path.push(["M",t,i],["L",t+e,i],["L",t+e,i+n],["L",t,i+n],["z"])},i.restore=function(){this.rb=this.stack.pop(),this.path=this.stack.pop();var t=this.stack.pop();this.fillStyle=t.fillStyle,this.font=t.font,this.globalAlpha=t.globalAlpha,this.lineCap=t.lineCap,this.lineDashOffset=t.lineDashOffset,this.lineJoin=t.lineJoin,this.lineWidth=t.lineWidth,this.miterLimit=t.miterLimit,this.shadowBlur=t.shadowBlur,this.shadowColor=t.shadowColor,this.shadowOffsetX=t.shadowOffsetX,this.shadowOffsetY=t.shadowOffsetY,this.strokeStyle=t.strokeStyle,this.textAlign=t.textAlign,this.bk=t.bk},i.save=function(){this.stack.push({fillStyle:this.fillStyle,font:this.font,globalAlpha:this.globalAlpha,lineCap:this.lineCap,lineDashOffset:this.lineDashOffset,lineJoin:this.lineJoin,lineWidth:this.lineWidth,miterLimit:this.miterLimit,shadowBlur:this.shadowBlur,shadowColor:this.shadowColor,shadowOffsetX:this.shadowOffsetX,shadowOffsetY:this.shadowOffsetY,strokeStyle:this.strokeStyle,textAlign:this.textAlign,bk:this.bk});for(var t=[],i=0;i<this.path.length;i++)t.push(this.path[i]);this.stack.push(t),this.stack.push(this.rb.copy())},i.setTransform=function(t,i,e,n,o,r){1===t&&0===i&&0===e&&1===n&&0===o&&0===r||Ca(this,t,i,e,n,o,r)},i.scale=function(t,i){this.rb.scale(t,i)},i.translate=function(t,i){this.rb.translate(t,i)},i.transform=function(){},i.yc=function(){},i.stroke=function(){Pa(this,this.Yl)},i.jk=function(){this.clipInsteadOfFill||this.stroke()},i.Ud=function(t,i,e){return this.Gv.Ud(t,i,e)},i.addElement=function(t,i,e){return t=this.Ud(t,i,e),null!==this.yd?this.yd.appendChild(t):this.yd=t,this.ad=t},i.addPath=function(t,i,e){for(var n=[],o=0;o<t.length;o++){var r=C(t[o]),s=[r.shift()];if("A"===s[0])s.push(r.shift()+","+r.shift(),r.shift(),r.shift()+","+r.shift(),r.shift()+","+r.shift());else for(;r.length;)s.push(r.shift()+","+r.shift());n.push(s.join(" "))}if(n=n.join(" "),(t=this.Yl).clipPath)0<this.nh.length&&this.nh[this.nh.length-1].setAttributeNS(null,"clip-path",'path("'+n+'")');else if(t.d=n,ka(this,"",t,i),null!==this.Hl)if("g"!==(i=this.Hl).nodeName)for(var a in t)"transform"!==a&&i.setAttributeNS(null,a,t[a]);else for(var h in a=i.getElementsByTagName("path"),t)"transform"!==h&&a[e].setAttributeNS(null,h,t[h]);else this.addElement("path",t)},i.Ev=function(t,i,e){this.Ar=t,this.Br=i,this.Vg=e},i.js=function(t,i){this.Ct=!0,this.Yg=t,this.uj=i},i.fs=function(){this.Ct=!1},i.Vc=function(){},i.Wx=function(){},va.prototype.rotate=function(t){this.rb.rotate(57.2958*t,0,0)},va.prototype.getImageData=function(){return null},va.prototype.measureText=function(){return null},va.prototype.Hs=function(t){null!==t.svg&&t.svg.parentNode===this.Nj&&t.svg.remove()},va.className="SVGContext",To.prototype.Cs=function(t){this.pj.contains("SVG")||this.bs("SVG",new ya(this,m.document));var i=new ya(this,m.document,!0);void 0===t&&(t=new X);var e=this;return Ir(this,(function(t,n){return t=null!==(t=zr(e,t,"SVG",i))?t.svg:null,"function"==typeof n?(n(t),null):t}),t)},To.prototype.makeSvg=To.prototype.Cs,To.prototype.av=function(t){return this.Cs(t)},To.prototype.makeSVG=To.prototype.av,Fa.prototype.resize=function(t,i,e,n){return(this.width!==t||this.height!==i)&&(this.width=t,this.height=i,this.style.width=e+"px",this.style.height=n+"px",!0)},Fa.prototype.toDataURL=function(t,i){return this.Oa.toDataURL(t,i)},Fa.prototype.getBoundingClientRect=function(){return this.Oa.getBoundingClientRect()},Fa.prototype.focus=function(){this.Oa.focus()},Fa.prototype.mx=function(){this.ownerDocument=this.Oa.H=null},f.Object.defineProperties(Fa.prototype,{width:{get:function(){return this.Oa.width},set:function(t){this.Oa.width=t}},height:{get:function(){return this.Oa.height},set:function(t){this.Oa.height=t}},style:{get:function(){return this.Oa.style}}}),Fa.className="CanvasSurface",(i=Da.prototype).Wx=function(t){this.Z.imageSmoothingEnabled=t},i.arc=function(t,i,e,n,o,r){this.Z.arc(t,i,e,n,o,r)},i.beginPath=function(){this.Z.beginPath()},i.Se=function(){},i.bezierCurveTo=function(t,i,e,n,o,r){this.Z.bezierCurveTo(t,i,e,n,o,r)},i.clearRect=function(t,i,e,n){this.yc(),this.Z.clearRect(t,i,e,n)},i.clip=function(){this.Z.clip()},i.closePath=function(){this.Z.closePath()},i.createLinearGradient=function(t,i,e,n){return this.Z.createLinearGradient(t,i,e,n)},i.createPattern=function(t,i){return this.Z.createPattern(t,i)},i.createRadialGradient=function(t,i,e,n,o,r){return this.Z.createRadialGradient(t,i,e,n,o,r)},i.drawImage=function(t,i,e,n,o,r,s,a,h){void 0===n?this.Z.drawImage(t,i,e):this.Z.drawImage(t,i,e,n,o,r,s,a,h)},i.fill=function(t){this.Z.fill(t?"evenodd":"nonzero")},i.fillRect=function(t,i,e,n){this.Z.fillRect(t,i,e,n)},i.ox=function(t,i,e,n){this.Z.fillRect(t,i,e,n)},i.fillText=function(t,i,e){this.Z.fillText(t,i,e)},i.getImageData=function(t,i,e,n){return this.Z.getImageData(t,i,e,n)},i.lineTo=function(t,i){this.Z.lineTo(t,i)},i.measureText=function(t){return this.Z.measureText(t)},i.moveTo=function(t,i){this.Z.moveTo(t,i)},i.quadraticCurveTo=function(t,i,e,n){this.Z.quadraticCurveTo(t,i,e,n)},i.rect=function(t,i,e,n){this.Z.rect(t,i,e,n)},i.restore=function(){this.Z.restore()},i.save=function(){this.yc(),this.Z.save()},Da.prototype.rotate=function(t){this.El.rotate(57.2958*t,0,0)},(i=Da.prototype).setTransform=function(t,i,e,n,o,r){this.El.setTransform(t,i,e,n,o,r)},i.scale=function(t,i){this.El.scale(t,i)},i.translate=function(t,i){this.El.translate(t,i)},i.stroke=function(){this.Z.stroke()},i.transform=function(t,i,e,n,o,r){if(1!==t||0!==i||0!==e||1!==n||0!==o||0!==r){var s=this.El,a=s.m11*t+s.m21*i;t=s.m12*t+s.m22*i,i=s.m11*e+s.m21*n,e=s.m12*e+s.m22*n,s.dx=s.m11*o+s.m21*r+s.dx,s.dy=s.m12*o+s.m22*r+s.dy,s.m11=a,s.m12=t,s.m21=i,s.m22=e}},i.yc=function(){var t=this.El;this.Z.setTransform(t.m11,t.m12,t.m21,t.m22,t.dx,t.dy)},i.ng=function(t,i){if(t instanceof Ia&&t.type===$a){var e=t.yk;(t=t.ft)>e?(this.scale(e/t,1),this.translate((t-e)/2,0)):e>t&&(this.scale(1,t/e),this.translate(0,(e-t)/2)),this.Hm?this.clip():this.fill(i),t>e?(this.translate(-(t-e)/2,0),this.scale(1/(e/t),1)):e>t&&(this.translate(0,-(e-t)/2),this.scale(1,1/(t/e)))}else this.Hm?this.clip():this.fill(i)},i.jk=function(){this.Hm||this.stroke()},i.Ev=function(t,i,e){this.Ar=t,this.Br=i,this.Vg=e},i.js=function(t,i){var e=this.Z;void 0!==e.setLineDash&&(e.setLineDash(t),e.lineDashOffset=i)},i.fs=function(){var t=this.Z;void 0!==t.setLineDash&&(t.setLineDash(Ba),t.lineDashOffset=0)},i.Vc=function(t){t&&(this.dt=""),this.ct=this.et=""},i.Hs=function(){},f.Object.defineProperties(Da.prototype,{fillStyle:{get:function(){return this.Z.fillStyle},set:function(t){this.ct!==t&&(this.ct=this.Z.fillStyle=t)}},font:{get:function(){return this.Z.font},set:function(t){this.dt!==t&&(this.dt=this.Z.font=t)}},globalAlpha:{get:function(){return this.Z.globalAlpha},set:function(t){this.Z.globalAlpha=t}},lineCap:{get:function(){return this.Z.lineCap},set:function(t){this.Z.lineCap=t}},lineDashOffset:{get:function(){return this.Z.lineDashOffset},set:function(t){this.Z.lineDashOffset=t}},lineJoin:{get:function(){return this.Z.lineJoin},set:function(t){this.Z.lineJoin=t}},lineWidth:{get:function(){return this.Z.lineWidth},set:function(t){this.Z.lineWidth=t}},miterLimit:{get:function(){return this.Z.miterLimit},set:function(t){this.Z.miterLimit=t}},shadowBlur:{get:function(){return this.Z.shadowBlur},set:function(t){this.Z.shadowBlur=t}},shadowColor:{get:function(){return this.Z.shadowColor},set:function(t){this.Z.shadowColor=t}},shadowOffsetX:{get:function(){return this.Z.shadowOffsetX},set:function(t){this.Z.shadowOffsetX=t}},shadowOffsetY:{get:function(){return this.Z.shadowOffsetY},set:function(t){this.Z.shadowOffsetY=t}},strokeStyle:{get:function(){return this.Z.strokeStyle},set:function(t){this.et!==t&&(this.et=this.Z.strokeStyle=t)}},textAlign:{get:function(){return this.Z.textAlign},set:function(t){this.Z.textAlign=t}},imageSmoothingEnabled:{get:function(){return this.Z.imageSmoothingEnabled},set:function(t){this.Z.imageSmoothingEnabled=t}},filter:{get:function(){return this.Z.filter},set:function(t){this.Z.filter=""===t?"none":t}},clipInsteadOfFill:{get:function(){return this.Hm},set:function(t){this.Hm=t}}});var Ba=Object.freeze([]);function Oa(){this.F=this.o=this.u=this.j=0}function Ia(t,i){uh||(Ja(),uh=!0),Q(this),this._isFrozen=!1,void 0===t?(this.na=Za,this.xk="black"):"string"==typeof t?(this.na=Za,this.xk=t):(this.na=t,this.xk="black"),(t=this.na)===_a?(this.Qd=ii,this.Lk=ai):this.Lk=this.Qd=t===$a?oi:Qt,this.Gr=0,this.Xp=NaN,this.xe=this.cr=this.we=null,this.ft=this.yk=0,i&&Object.assign(this,i)}function za(t,i,e){return i=void 0===i||"number"!=typeof i?.2:i,e=void 0===e?th:e,Ga(t),Ya(i,e)}function Ra(t,i,e){return i=void 0===i||"number"!=typeof i?.2:i,e=void 0===e?th:e,Ga(t),Ya(-i,e)}function Ea(t,i,e){Ga(t),t=sh.j;var n=sh.u,o=sh.o,r=sh.F;return Ga(i),void 0===e&&(e=.5),"rgba("+Math.round((sh.j-t)*e+t)+", "+Math.round((sh.u-n)*e+n)+", "+Math.round((sh.o-o)*e+o)+", "+Math.round((sh.F-r)*e+r)+")"}function Va(t){return!!t&&(t instanceof Ia?t.Gx():(Ga(t),128>(299*sh.j+587*sh.u+114*sh.o)/1e3))}function Ya(t,i){switch(i){case th:i=100*Ua(sh.j);var e=100*Ua(sh.u),n=100*Ua(sh.o);return hh.j=.4124564*i+.3575761*e+.1804375*n,hh.u=.2126729*i+.7151522*e+.072175*n,hh.o=.0193339*i+.119192*e+.9503041*n,hh.F=sh.F,i=Ha(hh.j/oh[0]),e=Ha(hh.u/oh[1]),n=Ha(hh.o/oh[2]),lh.j=116*e-16,lh.u=500*(i-e),lh.o=200*(e-n),lh.F=hh.F,lh.j=Math.min(100,Math.max(0,lh.j+100*t)),i=(t=(lh.j+16)/116)-lh.o/200,hh.j=oh[0]*Ka(lh.u/500+t),hh.u=oh[1]*(lh.j>nh*eh?Math.pow(t,3):lh.j/nh),hh.o=oh[2]*Ka(i),hh.F=lh.F,t=-.969266*hh.j+1.8760108*hh.u+.041556*hh.o,i=.0556434*hh.j+-.2040259*hh.u+1.0572252*hh.o,sh.j=255*qa((3.2404542*hh.j+-1.5371385*hh.u+-.4985314*hh.o)/100),sh.u=255*qa(t/100),sh.o=255*qa(i/100),sh.F=hh.F,sh.j=Math.round(sh.j),255<sh.j?sh.j=255:0>sh.j&&(sh.j=0),sh.u=Math.round(sh.u),255<sh.u?sh.u=255:0>sh.u&&(sh.u=0),sh.o=Math.round(sh.o),255<sh.o?sh.o=255:0>sh.o&&(sh.o=0),"rgba("+sh.j+", "+sh.u+", "+sh.o+", "+sh.F+")";case ih:return Xa(),ah.o=Math.min(100,Math.max(0,ah.o+100*t)),"hsla("+ah.j+", "+ah.u+"%, "+ah.o+"%, "+ah.F+")";default:w("Unknown color space: "+i)}}function Ga(t){uh||(Ja(),uh=!0);var i=rh;if(null!==i){i.clearRect(0,0,1,1),i.fillStyle="#000000";var e=i.fillStyle;i.fillStyle=t,i.fillStyle!==e?(i.fillRect(0,0,1,1),t=i.getImageData(0,0,1,1).data,sh.j=t[0],sh.u=t[1],sh.o=t[2],sh.F=t[3]/255):(i.fillStyle="#FFFFFF",i.fillStyle=t,sh.j=0,sh.u=0,sh.o=0,sh.F=1)}}function Xa(){var t=sh.j/255,i=sh.u/255,e=sh.o/255,n=Math.max(t,i,e),o=Math.min(t,i,e),r=n-o;if(o=(n+o)/2,0===r)var s=t=0;else{switch(n){case t:s=(i-e)/r%6;break;case i:s=(e-t)/r+2;break;case e:s=(t-i)/r+4}0>(s*=60)&&(s+=360),t=r/(1-Math.abs(2*o-1))}ah.j=Math.round(s),ah.u=Math.round(100*t),ah.o=Math.round(100*o),ah.F=sh.F}function Ua(t){return.04045>=(t/=255)?t/12.92:Math.pow((t+.055)/1.055,2.4)}function qa(t){return.0031308>=t?12.92*t:1.055*Math.pow(t,1/2.4)-.055}function Ha(t){return t>eh?Math.pow(t,1/3):(nh*t+16)/116}function Ka(t){var i=t*t*t;return i>eh?i:(116*t-16)/nh}function Wa(t,i){"string"!=typeof t&&(t instanceof Ia||w("Value for "+i+" must be a color string or a Brush, not "+t))}function Ja(){rh=Vr?new Fa(null,void 0,{willReadFrequently:!0}).context:null}Da.className="CanvasSurfaceContext",Oa.className="ColorNumbers",Ia.prototype.copy=function(){var t=new Ia;return t.na=this.na,t.xk=this.xk,t.Qd=this.Qd.J(),t.Lk=this.Lk.J(),t.Gr=this.Gr,t.Xp=this.Xp,null!==this.we&&(t.we=this.we.copy()),t.cr=this.cr,t},(i=Ia.prototype).freeze=function(){return this._isFrozen=!0,null!==this.we&&this.we.freeze(),this},i.ka=function(){return Object.isFrozen(this)&&w("cannot thaw constant: "+this),this._isFrozen=!1,null!==this.we&&this.we.ka(),this},i.qb=function(t){t.classType===Ia&&(this.type=t)},i.toString=function(){var t="Brush(";if(this.type===Za)t+=this.color;else if(t=this.type===_a?t+"Linear ":this.type===$a?t+"Radial ":this.type===Qa?t+"Pattern ":t+"(unknown) ",t+=this.start+" "+this.end,null!==this.colorStops)for(var i=this.colorStops.iterator;i.next();)t+=" "+i.key+":"+i.value;return t+")"},i.addColorStop=function(t,i){return this._isFrozen&&k(this),("number"!=typeof t||!isFinite(t)||1<t||0>t)&&M(t,"0 <= loc <= 1",Ia,"addColorStop:loc"),null===this.we&&(this.we=new dt),this.we.add(t,i),this.na===Za&&(this.type=_a),this.xe=null,this},i.Vz=function(t,i){if(this._isFrozen&&k(this),t=void 0===t||"number"!=typeof t?.2:t,i=void 0===i?th:i,this.type===Za)Ga(this.color),this.color=Ya(t,i);else if((this.type===_a||this.type===$a)&&null!==this.colorStops)for(var e=this.colorStops.iterator;e.next();)Ga(e.value),this.addColorStop(e.key,Ya(t,i));return this},i.Wy=function(t,i){if(this._isFrozen&&k(this),t=void 0===t||"number"!=typeof t?.2:t,i=void 0===i?th:i,this.type===Za)Ga(this.color),this.color=Ya(-t,i);else if((this.type===_a||this.type===$a)&&null!==this.colorStops)for(var e=this.colorStops.iterator;e.next();)Ga(e.value),this.addColorStop(e.key,Ya(-t,i));return this},i.Gx=function(){if(this.type===Za)return Va(this.color);if((this.type===_a||this.type===$a)&&null!==this.colorStops){var t=this.colorStops;if(this.type===$a)return Va(t.first().value);if(null!==t.get(.5))return Va(t.get(.5));if(2===t.count)return Va(Ea((t=t.Fa())[0].value,t[1].value));for(var i=t.iterator,e=-1,n=-1,o=1,r=1;i.next();){var s=i.key,a=Math.abs(.5-i.key);o>r&&a<o?(e=s,o=a):r>=o&&a<r&&(n=s,r=a)}return e>n&&(r=e,e=n,n=r,r=o),o=n-e,Va(Ea(t.get(e),t.get(n),1-r/o))}return!1},f.Object.defineProperties(Ia.prototype,{type:{get:function(){return this.na},set:function(t){this._isFrozen&&k(this,t),this.na=t,this.start.Mc()&&(t===_a?this.start=ii:t===$a&&(this.start=oi)),this.end.Mc()&&(t===_a?this.end=ai:t===$a&&(this.end=oi)),this.xe=null}},color:{get:function(){return this.xk},set:function(t){this._isFrozen&&k(this,t),this.xk=t,this.xe=null}},start:{get:function(){return this.Qd},set:function(t){this._isFrozen&&k(this,t),this.Qd=t.J(),this.xe=null}},end:{get:function(){return this.Lk},set:function(t){this._isFrozen&&k(this,t),this.Lk=t.J(),this.xe=null}},startRadius:{get:function(){return this.Gr},set:function(t){this._isFrozen&&k(this,t),0>t&&M(t,">= zero",Ia,"startRadius"),this.Gr=t,this.xe=null}},endRadius:{get:function(){return this.Xp},set:function(t){this._isFrozen&&k(this,t),0>t&&M(t,">= zero",Ia,"endRadius"),this.Xp=t,this.xe=null}},colorStops:{get:function(){return this.we},set:function(t){this._isFrozen&&k(this,t),this.we=t,this.xe=null}},pattern:{get:function(){return this.cr},set:function(t){this._isFrozen&&k(this,t),this.cr=t,this.xe=null}}}),Ia.prototype.isDark=Ia.prototype.Gx,Ia.prototype.darkenBy=Ia.prototype.Wy,Ia.prototype.lightenBy=Ia.prototype.Vz,Ia.prototype.addColorStop=Ia.prototype.addColorStop;var Za,_a,$a,Qa,th,ih,eh=216/24389,nh=24389/27,oh=[95.047,100,108.883],rh=null,sh=new Oa,ah=new Oa,hh=new Oa,lh=new Oa,uh=!1;function ch(){this.xa="Base"}function fh(){this.xa="Base"}function dh(){this.xa="Base"}function ph(){this.xa="Base"}function gh(){this.xa="Base"}function mh(t,i,e){var n=null;if(t instanceof Ch&&""!==t.$e&&((n=t.fb(t.$e))===t&&(n=null)),null!==n)for(e&&t.arrange(0,0,i.width,i.height),i.assign(n.actualBounds),n=n.panel;n!==t;)n.transform.pp(i),n=n.panel}function yh(){this.xa="Base"}function vh(){this.xa="Base",this.name="Table"}function xh(){this.xa="Base"}function bh(){this.xa="Base"}function wh(){this.xa="Base"}function kh(){this.xa="Base"}function Mh(t,i,e,n){if(0>i)return t%i===e;if(t%i!==e)return!1;i=n.length;for(var o=0;o<i;o++)if(t%n[o]===e)return!1;return!0}function Sh(){this.xa="Base"}function Ph(t,i,e,n){if(!1!==ia(n)){var o=n.strokeWidth;0===o&&t instanceof Ku&&t.type===Ch.Link&&t.adornedObject instanceof pl&&(o=t.adornedObject.strokeWidth),o*=n.Ca,t instanceof wc&&null!==t.ua?(t=t.geometry.bounds,n.Ge(t.x-o/2,t.y-o/2,t.width+o,t.height+o)):t instanceof Ku&&null!==t.adornedPart.ua?(t=t.adornedPart.ua.bounds,n.Ge(t.x-o/2,t.y-o/2,t.width+o,t.height+o)):n.Ge(-o/2,-o/2,i+o,e+o),(o=n.desiredSize).w()||null===n.ua?n.dc.h(0,0,o.width,o.height):n.dc.assign(n.ua.bounds),ea(n,!1)}}function Nh(){this.xa="Base"}function Ch(t,i){if(Ds.call(this),this.na=null,void 0===t)this.na=Ch.Position;else if("string"==typeof t){var e=rl.I(t);null!==e&&(this.na=e)}else t instanceof ch?this.na=t:t&&(this.na=Ch.Position,i=t);null===this.na&&w("Panel type not specified or PanelLayout not loaded: "+t),this.l=4194304|this.l|(this.na===Ch.Grid?1048576:0),this.O=new Z,this.yb=_t,this.Tm=Si,this.Uf=ms,this.$g=null,this.$e="",this.jg=new Bt(NaN,NaN,NaN,NaN),this.T=this.F=null,this.xo=ds,this.jn=Nt,this.kn=et,this.ub=this.ra=null,this.zn=NaN,this.ge=this.Hh=null,i&&Object.assign(this,i)}function Th(t,i){i.lineCap="butt";var e=0<t.rowCount?t.rowDefs:null,n=0<t.columnCount?t.colDefs:null;null!==e&&Ah(t,i,!0,e,!0),null!==n&&Ah(t,i,!1,n,!0),null!==e&&Lh(t,i,!0,e),null!==n&&Lh(t,i,!1,n),null!==e&&Ah(t,i,!0,e,!1),null!==n&&Ah(t,i,!1,n,!1)}function Lh(t,i,e,n){for(var o=n.length,r=t.actualBounds,s=t.naturalBounds,a=!0,h=0;h<o;h++){var l=n[h];if(void 0!==l&&0!==l.actual)if(a)a=!1;else{if(e){if(l.position>s.height)continue}else if(l.position>s.width)continue;var u=l.separatorStrokeWidth;isNaN(u)&&(u=e?t.defaultRowSeparatorStrokeWidth:t.defaultColumnSeparatorStrokeWidth);var c=l.separatorStroke;if(null===c&&(c=e?t.defaultRowSeparatorStroke:t.defaultColumnSeparatorStroke),0!==u&&null!==c){Us(t,i,c,!1,!1,s,r),c=!1;var f=l.separatorDashArray;null===f&&(f=e?t.defaultRowSeparatorDashArray:t.defaultColumnSeparatorDashArray),null!==f&&(c=!0,i.js(f,0)),i.beginPath(),f=l.position+u,e?f>s.height&&(u-=f-s.height):f>s.width&&(u-=f-s.width),l=l.position+u/2,i.lineWidth=u,u=t.yb,e?(l+=u.top,f=s.width-u.right,i.moveTo(u.left,l),i.lineTo(f,l)):(l+=u.left,f=s.height-u.bottom,i.moveTo(l,u.top),i.lineTo(l,f)),i.stroke(),i.Se(),c&&i.fs()}}}}function Ah(t,i,e,n,o){for(var r=n.length,s=t.actualBounds,a=t.naturalBounds,h=jh(t,!0),l=jh(t,!1),u=0;u<r;u++){var c=n[u];if(void 0!==c&&null!==c.background&&c.coversSeparators!==o&&0!==c.actual){var f=e?s.height:s.width;if(!(c.position>f)){var d=c.Wc(),p=c.separatorStrokeWidth;isNaN(p)&&(p=e?t.defaultRowSeparatorStrokeWidth:t.defaultColumnSeparatorStrokeWidth);var g=c.separatorStroke;null===g&&(g=e?t.defaultRowSeparatorStroke:t.defaultColumnSeparatorStroke),null!==g&&c.index!==(e?h:l)||(p=0),d-=p,(p=c.position+p)+(d+=c.actual)>f&&(d=f-p),0>=d||(f=t.yb,Us(t,i,c.background,!0,!1,a,s),e?i.fillRect(f.left,p+f.top,s.width-(f.left+f.right),d):i.fillRect(p+f.left,f.top,d,s.height-(f.top+f.bottom)))}}}}function jh(t,i){for(var e=i?t.rowCount:t.columnCount,n=0;n<e;n++){var o=i?t.rowDefs[n]:t.colDefs[n];if(void 0!==o)return o.index}return 0}function Fh(t){return"LineV"===t||"BarV"===t}function Dh(t){return null!==t.part?t.part.locationObject:null}function Bh(t,i){Oh(t,t,i)}function Oh(t,i,e){e(i);for(var n=(i=i.O.s).length,o=0;o<n;o++){var r=i[o];r instanceof Ch&&Oh(t,r,e)}}function Ih(t,i){zh(t,t,i)}function zh(t,i,e){if(e(i),i instanceof Ch)for(var n=(i=i.O.s).length,o=0;o<n;o++)zh(t,i[o],e)}function Rh(t,i,e){if(e(i))return i;if(i instanceof Ch)for(var n=(i=i.O.s).length,o=0;o<n;o++){var r=Rh(t,i[o],e);if(null!==r)return r}return null}function Eh(t){for(var i=(t=t.O.s).length,e=0,n=0;n<i;n++){var o=t[n];o instanceof Ch?e=Math.max(e,Eh(o)):o instanceof pl&&(e=Math.max(e,o.ig/2*o.strokeMiterLimit*o.Df()))}return e}function Vh(t){return t.type===Ch.TableRow||t.type===Ch.TableColumn}function Yh(t,i,e,n){for(var o=t.O.s,r=o.length;r--;){var s=o[r];if(s.visible){var a=s.actualBounds,h=t.naturalBounds;a.x>h.width||a.y>h.height||0>a.x+a.width||0>a.y+a.height||(s instanceof Ch&&Yh(s,i,e,n),null!==i&&(s=i(s)),null===s||null!==e&&!e(s)||n.add(s))}}}function Gh(t){var i=null;return t instanceof pl&&((i=t.spot1)===Si&&(i=null),null!==(t=t.geometry)&&null===i&&(i=t.spot1)),null===i&&(i=ti),i}function Xh(t){var i=null;return t instanceof pl&&((i=t.spot2)===Si&&(i=null),null!==(t=t.geometry)&&null===i&&(i=t.spot2)),null===i&&(i=hi),i}function Uh(t,i){t.l=i?16777216|t.l:-16777217&t.l}function qh(t,i,e){var n=t.rowDefs;if(!(0>i)){if(n[i]=e instanceof hl?e:void 0,!e)for(i=n.length-1;0<=i&&void 0===n[i--];)n.length--;t.v()}}function Hh(t,i,e){var n=t.colDefs;if(!(0>i)){if(n[i]=e instanceof hl?e:void 0,!e)for(i=n.length-1;0<=i&&void 0===n[i--];)n.length--;t.v()}}function Kh(t){return null!==(t=t.allBindings)&&t._isFrozen}function Wh(t){var i=t.allBindings;if(null===i)null!==t.data&&w("Template cannot have .data be non-null: "+t),t.allBindings=i=new Z;else if(i._isFrozen)return;var e=new Z;Uh(t,!1),t.qm(t,(function(t,n){n.th();var o=n.localBindings;if(null!==o)for($s(n,!1),o=o.iterator;o.next();){var r=o.value;r.mode===Hd&&$s(n,!0);var s=r.sourceName;null!==s&&("/"===s&&Uh(t,!0),null!==(s=Xd(r,t,n))&&(e.add(s),null===s.srcBindings&&(s.srcBindings=new Z),s.srcBindings.add(r))),i.add(r)}if(n instanceof Ch&&n.type===Ch.Table){if(0<n.rowCount)for(o=(t=n.rowDefs).length,r=0;r<o;r++)if(void 0!==(s=t[r])&&null!==s.be)for(var a=s.be.iterator;a.next();){var h=a.value;h.xd=s,h.to=2,h.wl=s.index,i.add(h)}if(0<n.columnCount)for(t=(n=n.colDefs).length,o=0;o<t;o++)if(void 0!==(r=n[o])&&null!==r.be)for(s=r.be.iterator;s.next();)(a=s.value).xd=r,a.to=1,a.wl=r.index,i.add(a)}}));for(var n=e.iterator;n.next();){var o=n.value;if(null!==o.srcBindings){$s(o,!0);for(var r=o.srcBindings.iterator;r.next();){var s=r.value;null===o.localBindings&&(o.localBindings=new Z),o.localBindings.add(s)}}o.srcBindings=null}for(n=i.iterator;n.next();)if(null!==(r=(o=n.value).xd)){o.xd=null;var a=o.targetProperty,h=a.indexOf(".");0<h&&r instanceof Ch&&(s=a.substring(0,h),a=a.substr(h+1),null!==(h=r.fb(s))?(r=h,o.targetProperty=a):S('Warning: unable to find GraphObject named "'+s+'" for Binding: '+o.toString())),r instanceof hl?(s=it(r.panel),o.Ai=void 0===s?-1:s,r.panel.bindingId=o.Ai):r instanceof Ds?(s=it(r),o.Ai=void 0===s?-1:s,r.bindingId=o.Ai):w("Unknown type of binding target: "+r)}i.freeze(),t instanceof ku&&t.Zc()&&t.Va()}function Jh(t){if(t.type===Ch.Spot||t.type===Ch.Auto)return Math.min(t.O.length,1);if(t.type===Ch.Link){for(var i=(t=t.O).length,e=0;e<i;e++){var n=t.M(e);if(!(n instanceof pl&&n.isPanelMain))break}return e}return t.type===Ch.Table&&0<t.O.length&&((t=t.O.M(0)).isPanelMain&&t instanceof Ch&&Vh(t))?1:0}function Zh(t,i){var e=Jh(t);if(null===i||0===i.length)for(;t.O.length>e;)t.pc(t.O.length-1,!1);else if(t.O.length<=e){e=i.length;for(var n=0;n<e;n++)_h(t,i[n],n,!0)}else{n=e;for(var o=0;o<i.length;o++,n++){var r=i[o],s=n<t.O.length?t.O.M(n):null;if(s instanceof Ch){if(s.data!==r){var a=Qh(t,s.data),h=Qh(t,r),l=h!==a;l||(a=tl(t,a),l=tl(t,h)!==a),l?(t.pc(n,!1),_h(t,r,o,!1)):s.data=r}}else _h(t,r,o,!1)}for(;n<t.O.length;)t.pc(n,!1);t.$g=null,$h(t,e,0),ia(t)||t.v(),t.graduatedIntervals=null,t.If()||il(t,t,!1),null!==(i=t.part)&&(i.Rh=null,i.ag=NaN,t.Te&&i instanceof Ju&&(i.Te=!0),i.Te&&i instanceof Ju&&(i.wc=null))}}function _h(t,i,e,n){if(!(null==i||0>e)){var o=Qh(t,i);if(null!==(o=tl(t,o))){if(Wh(o),0!=(16777216&(o=o.copy()).l)){var r=t.ih();null!==r&&Uh(r,!0)}"object"==typeof i&&(null===t.ge&&(t.ge=new dt),t.ge.add(i,o)),r=e+Jh(t),t.Gb(r,o),n&&(o.ub=i,$h(t,r,e),o.ub=null),o.data=i}}}function $h(t,i,e){for(t=t.O;i<t.length;){var n=t.M(i);if(n instanceof Ch){var o=i,r=e;n.type===Ch.TableRow?n.row=o:n.type===Ch.TableColumn&&(n.column=o),n.itemIndex=r}i++,e++}}function Qh(t,i){if(null===i)return"";if("function"==typeof(t=t.itemCategoryProperty))t=t(i);else{if("string"!=typeof t||"object"!=typeof i)return"";if(""===t)return"";t=Rd(i,t)}return void 0===t?"":"string"==typeof t?t:void w("Panel.getCategoryForItemData found a non-string category for "+i+": "+t)}function tl(t,i){var e=t.itemTemplateMap,n=null;return null!==e&&(n=e.I(i)),null===n&&(null!==e&&(n=e.I("")),null===n&&(nl||(nl=!0,S('No item template Panel found for category "'+i+'" on '+t),S(" Using default item template."),t=new Ch,(i=new Nl).bind(new Gd("text","",D)),t.add(i),ol=t),n=ol)),n}function il(t,i,e){var n=i.enabledChanged;if(null!==n&&n(i,e),i instanceof Ch){n=(i=i.O.s).length;for(var o=0;o<n;o++){var r=i[o];e&&r instanceof Ch&&!r.isEnabled||il(t,r,e)}}}function el(t,i){i.name=t,rl.add(t,i)}Ia.className="Brush",Ia.Solid=Za=new V(Ia,"Solid",0),Ia.Linear=_a=new V(Ia,"Linear",1),Ia.Radial=$a=new V(Ia,"Radial",2),Ia.Pattern=Qa=new V(Ia,"Pattern",4),Ia.Lab=th=new V(Ia,"Lab",5),Ia.HSL=ih=new V(Ia,"HSL",6),Ia.randomColor=function(t,i){void 0===t&&(t=128),void 0===i&&(i=Math.max(t,255));var e=Math.abs(i-t);i=Math.floor(t+Math.random()*e).toString(16);var n=Math.floor(t+Math.random()*e).toString(16);return t=Math.floor(t+Math.random()*e).toString(16),2>i.length&&(i="0"+i),2>n.length&&(n="0"+n),2>t.length&&(t="0"+t),"#"+i+n+t},Ia.isValidColor=function(t){if("black"===t)return!0;if(""===t)return!1;uh||(Ja(),uh=!0);var i=rh;if(null===i)return!0;i.fillStyle="#000000";var e=i.fillStyle;return i.fillStyle=t,i.fillStyle!==e||(i.fillStyle="#FFFFFF",e=i.fillStyle,i.fillStyle=t,i.fillStyle!==e)},Ia.lighten=function(t){return za(t)},Ia.lightenBy=za,Ia.darken=function(t){return Ra(t)},Ia.darkenBy=Ra,Ia.mix=Ea,Ia.isDark=Va,ch.prototype.measure=function(){},ch.prototype.Yz=function(t,i,e,n,o){t.measure(i,e,n,o)},ch.prototype.arrange=function(){},ch.prototype.Ly=function(t,i,e,n,o,r){t.arrange(i,e,n,o,r)},ch.prototype.iA=function(t){t.Uj()},ch.prototype.gc=function(){},f.Object.defineProperties(ch.prototype,{name:{get:function(){return this.xa},set:function(t){this.xa=t}},classType:{get:function(){return Ch}}}),ch.prototype.remeasureObject=ch.prototype.iA,ch.prototype.arrangeElement=ch.prototype.Ly,ch.prototype.measureElement=ch.prototype.Yz,ch.className="PanelLayout",c(fh,ch),fh.prototype.measure=function(t,i,e,n,o,r,s){var a=n.length;t=Dh(t);for(var h=0;h<a;h++){var l=n[h];if(l.visible||l===t){var u=l.margin,c=u.right+u.left;u=u.top+u.bottom,l.measure(i,e,r,s);var f=l.measuredBounds;c=Math.max(f.width+c,0),u=Math.max(f.height+u,0),f=l.position.x;var d=l.position.y;isFinite(f)||(f=0),isFinite(d)||(d=0),l instanceof pl&&l.isGeometryPositioned&&(f-=l=l.strokeWidth/2,d-=l),Gt(o,f,d,c,u)}}},fh.prototype.arrange=function(t,i,e){var n=i.length,o=t.padding;for(t=e.x-o.left,e=e.y-o.top,o=0;o<n;o++){var r=i[o],s=r.measuredBounds,a=r.margin,h=r.position.x,l=r.position.y;if(h=isNaN(h)?-t:h-t,l=isNaN(l)?-e:l-e,r instanceof pl&&r.isGeometryPositioned){var u=r.strokeWidth/2;h-=u,l-=u}r.visible&&r.arrange(h+a.left,l+a.top,s.width,s.height)}},c(dh,ch),dh.prototype.measure=function(t,i,e,n,o,r,s){var a=n.length;i=A(),r=Dh(t);for(var h=0;h<a;h++){var l=n[h];if(l.visible||l===r){var u=Ks(l,!1);if(u!==fs&&u!==ps)i.push(l);else{l.measure(1/0,e,0,s),u=l.margin,l=l.measuredBounds;var c=Math.max(l.height+u.top+u.bottom,0);o.width+=Math.max(l.width+u.right+u.left,0),o.height=Math.max(o.height,c)}}}for(n=i.length,t.desiredSize.height?e=Math.min(t.desiredSize.height,t.maxSize.height):0!==o.height&&(e=Math.min(o.height,t.maxSize.height)),t=0;t<n;t++)((h=i[t]).visible||h===r)&&(a=(u=h.margin).right+u.left,u=u.top+u.bottom,h.measure(1/0,e,0,s),h=h.measuredBounds,u=Math.max(h.height+u,0),o.width+=Math.max(h.width+a,0),o.height=Math.max(o.height,u));j(i)},dh.prototype.arrange=function(t,i,e){for(var n=i.length,o=t.padding,r=o.top,s=t.isOpposite,a=s?e.width:o.left,h=0;h<n;h++){var l=r,u=i[h];if(u.visible){var c=u.measuredBounds,f=u.margin,d=f.top+f.bottom,p=r+o.bottom,g=c.height,m=Ks(u,!1);(isNaN(u.desiredSize.height)&&m===cs||m===gs)&&(g=Math.max(e.height-d-p,0)),d=g+d+p,(p=u.alignment).Xb()&&(p=t.defaultAlignment),p.sb()||(p=oi),s&&(a-=c.width+f.left+f.right),u.arrange(a+p.offsetX+f.left,l+p.offsetY+f.top+(e.height*p.y-d*p.y),c.width,g),s||(a+=c.width+f.left+f.right)}}},c(ph,ch),ph.prototype.measure=function(t,i,e,n,o,r){var s=n.length;e=A();for(var a=Dh(t),h=0;h<s;h++){var l=n[h];if(l.visible||l===a){var u=Ks(l,!1);if(u!==fs&&u!==gs)e.push(l);else{var c=l.margin;u=c.right+c.left,c=c.top+c.bottom,l.measure(i,1/0,r,0),l=l.measuredBounds,Ot(o,Math.max(o.width,Math.max(l.width+u,0)),o.height+Math.max(l.height+c,0))}}}if(0!==(n=e.length)){for(t.desiredSize.width?i=Math.min(t.desiredSize.width,t.maxSize.width):0!==o.width&&(i=Math.min(o.width,t.maxSize.width)),t=0;t<n;t++)((h=e[t]).visible||h===a)&&(s=(l=h.margin).right+l.left,l=l.top+l.bottom,h.measure(i,1/0,r,0),h=h.measuredBounds,l=Math.max(h.height+l,0),o.width=Math.max(o.width,Math.max(h.width+s,0)),o.height+=l);j(e)}},ph.prototype.arrange=function(t,i,e){for(var n=i.length,o=t.padding,r=o.left,s=t.isOpposite,a=s?e.height:o.top,h=0;h<n;h++){var l=r,u=i[h];if(u.visible){var c=u.measuredBounds,f=u.margin,d=f.left+f.right,p=r+o.right,g=c.width,m=Ks(u,!1);(isNaN(u.desiredSize.width)&&m===cs||m===ps)&&(g=Math.max(e.width-d-p,0)),d=g+d+p,(p=u.alignment).Xb()&&(p=t.defaultAlignment),p.sb()||(p=oi),s&&(a-=c.height+f.bottom+f.top),u.arrange(l+p.offsetX+f.left+(e.width*p.x-d*p.x),a+p.offsetY+f.top,g,c.height),s||(a+=c.height+f.bottom+f.top)}}},c(gh,ch),gh.prototype.measure=function(t,i,e,n,o,r,s){var a=n.length,h=t.Pb(),l=h.margin,u=l.right+l.left,c=l.top+l.bottom;h.measure(i,e,r,s);var f=h.measuredBounds;r=f.width,s=f.height;var d=Math.max(r+u,0),p=Math.max(s+c,0),g=t.isClipping,m=Bt.allocAt(-l.left,-l.top,d,p),y=Bt.allocAt(0,0,r,s);mh(h,y,!0),r=y.width,s=y.height;for(var v=!0,x=Dh(t),b=0;b<a;b++){var w=n[b];f=i;var k=e;if(w!==h&&(w.visible||w===x)){var M=(l=w.margin).left,S=l.top;switch(d=l.right+l.left,p=l.top+l.bottom,l=Ks(w,!1)){case cs:f=r,k=s,S=M=p=d=0;break;case ps:f=r,M=d=0;break;case gs:k=s,S=p=0}w.measure(f,k,0,0),f=w.measuredBounds,d=Math.max(f.width+d,0),p=Math.max(f.height+p,0),(l=w.alignment).Xb()&&(l=t.defaultAlignment),l.sb()||(l=oi);var P=w.alignmentFocus;if(P.Xb()&&(P=oi),k=null,w instanceof Ch&&""!==w.$e&&((k=w.fb(w.$e))===w&&(k=null)),M=y.x-M,S=y.y-S,null!==k){for(w.arrange(0,0,f.width,f.height),f=k.actualBounds,f=pt.allocAt(f.x+(P.x*f.width-P.offsetX),f.y+(P.y*f.height-P.offsetY)),k=k.panel;k!==w;)k.transform.Ga(f),k=k.panel;M+=l.x*r+l.offsetX-f.x,S+=l.y*s+l.offsetY-f.y,pt.free(f)}else M+=l.x*r+l.offsetX-(P.x*f.width+P.offsetX),S+=l.y*s+l.offsetY-(P.y*f.height+P.offsetY);v?(v=!1,o.h(M,S,d,p)):Gt(o,M,S,d,p)}}switch(v?o.assign(m):g?o.Uu(y.x,y.y,y.width,y.height):Gt(o,m.x,m.y,m.width,m.height),Bt.free(m),Bt.free(y),(l=h.stretch)===ms&&(l=Ks(h,!1)),l){case fs:return;case cs:if(!isFinite(i)&&!isFinite(e))return;break;case ps:if(!isFinite(i))return;break;case gs:if(!isFinite(e))return}for(r=(f=h.measuredBounds).width,s=f.height,d=Math.max(r+u,0),p=Math.max(s+c,0),l=h.margin,mh(h,y=Bt.allocAt(-l.left,-l.top,d,p),!0),r=y.width,s=y.height,i=0;i<a;i++)(e=n[i])===h||!e.visible&&e!==x||(d=(l=e.margin).right+l.left,p=l.top+l.bottom,f=e.measuredBounds,d=Math.max(f.width+d,0),p=Math.max(f.height+p,0),(u=e.alignment).Xb()&&(u=t.defaultAlignment),u.sb()||(u=oi),(e=e.alignmentFocus).Xb()&&(e=oi),v?(v=!1,o.h(u.x*r+u.offsetX-(e.x*f.width+e.offsetX)-l.left,u.y*s+u.offsetY-(e.y*f.height+e.offsetY)-l.top,d,p)):Gt(o,u.x*r+u.offsetX-(e.x*f.width+e.offsetX)-l.left,u.y*s+u.offsetY-(e.y*f.height+e.offsetY)-l.top,d,p));v?o.assign(m):g?o.Uu(y.x,y.y,y.width,y.height):Gt(o,m.x,m.y,m.width,m.height),Bt.free(y)},gh.prototype.arrange=function(t,i,e){var n=i.length,o=t.Pb(),r=o.measuredBounds,s=r.width,a=r.height,h=t.padding;r=h.left,h=h.top;var l=r-e.x,u=h-e.y;for(o.arrange(l,u,s,a),mh(o,s=Bt.allocAt(0,0,s,a),!1),a=0;a<n;a++){var c=i[a];if(c!==o){var f=(l=c.measuredBounds).width,d=l.height;(u=c.alignment).Xb()&&(u=t.defaultAlignment),u.sb()||(u=oi);var p=c.alignmentFocus;if(p.Xb()&&(p=oi),l=null,c instanceof Ch&&""!==c.$e&&((l=c.fb(c.$e))===c&&(l=null)),null!==l){var g=l.actualBounds;for(p=pt.allocAt(g.x+(p.x*g.width-p.offsetX),g.y+(p.y*g.height-p.offsetY)),l=l.panel;l!==c;)l.transform.Ga(p),l=l.panel;l=u.x*s.width+u.offsetX-p.x,u=u.y*s.height+u.offsetY-p.y,pt.free(p)}else l=u.x*s.width+u.offsetX-(p.x*f+p.offsetX),u=u.y*s.height+u.offsetY-(p.y*d+p.offsetY);l+=s.x-e.x,u+=s.y-e.y,c.visible&&c.arrange(r+l,h+u,f,d)}}Bt.free(s)},c(yh,ch),yh.prototype.measure=function(t,i,e,n,o,r,s){var a=n.length,h=t.Pb(),l=h.margin,u=i,c=e,f=l.right+l.left,d=l.top+l.bottom;h.measure(i,e,r,s),l=h.measuredBounds;var p=0,g=null;h instanceof pl&&(p=(g=h).strokeWidth*g.scale);var m=Math.max(l.width+f,0);l=Math.max(l.height+d,0);var y=Gh(h),v=y.x*m+y.offsetX;y=y.y*l+y.offsetY;var x=Xh(h),b=x.x*m+x.offsetX;for(x=x.y*l+x.offsetY,isFinite(i)&&(u=Math.max(Math.abs(v-b)-p,0)),isFinite(e)&&(c=Math.max(Math.abs(y-x)-p,0)),(p=At.alloc()).h(0,0),t=Dh(t),x=0;x<a;x++)(y=n[x])===h||!y.visible&&y!==t||(m=(l=y.margin).right+l.left,v=l.top+l.bottom,y.measure(u,c,0,0),l=y.measuredBounds,m=Math.max(l.width+m,0),l=Math.max(l.height+v,0),p.h(Math.max(m,p.width),Math.max(l,p.height)));if(1===a)o.width=m,o.height=l,At.free(p);else{switch(y=Gh(h),a=n=0,(x=Xh(h)).x!==y.x&&x.y!==y.y&&(n=p.width/Math.abs(x.x-y.x),a=p.height/Math.abs(x.y-y.y)),At.free(p),p=0,null!==g&&(p=g.strokeWidth*g.scale,yl(g)===ds&&(n=a=Math.max(n,a))),n+=Math.abs(y.offsetX)+Math.abs(x.offsetX)+p,a+=Math.abs(y.offsetY)+Math.abs(x.offsetY)+p,(g=h.stretch)===ms&&(g=Ks(h,!1)),g){case fs:s=r=0;break;case cs:isFinite(i)&&(n=i),isFinite(e)&&(a=e);break;case ps:isFinite(i)&&(n=i),s=0;break;case gs:r=0,isFinite(e)&&(a=e)}h.Uj(),h.measure(n,a,r,s),o.width=h.measuredBounds.width+f,o.height=h.measuredBounds.height+d}},yh.prototype.arrange=function(t,i){var e=i.length,n=t.Pb(),o=n.measuredBounds,r=Bt.alloc();r.h(0,0,1,1);var s=n.margin,a=s.left;s=s.top;var h=t.padding,l=h.left;h=h.top,n.arrange(l+a,h+s,o.width,o.height);var u=Gh(n),c=Xh(n),f=u.y*o.height+u.offsetY,d=c.x*o.width+c.offsetX;for(c=c.y*o.height+c.offsetY,r.x=u.x*o.width+u.offsetX,r.y=f,Gt(r,d,c,0,0),r.x+=a+l,r.y+=s+h,o=0;o<e;o++)(a=i[o])!==n&&(l=a.measuredBounds,s=a.margin,h=Math.max(l.width+s.right+s.left,0),u=Math.max(l.height+s.top+s.bottom,0),(f=a.alignment).Xb()&&(f=t.defaultAlignment),f.sb()||(f=oi),h=r.width*f.x+f.offsetX-h*f.x+s.left+r.x,s=r.height*f.y+f.offsetY-u*f.y+s.top+r.y,a.visible&&(Xt(r.x,r.y,r.width,r.height,h,s,l.width,l.height)?a.arrange(h,s,l.width,l.height):a.arrange(h,s,l.width,l.height,new Bt(r.x,r.y,r.width,r.height))));Bt.free(r)},c(vh,ch),vh.prototype.measure=function(t,i,e,n,o){for(var r=n.length,s=A(),a=A(),h=0;h<r;h++){var l=n[h],u=l instanceof Ch?l:null;if(null!==u&&Vh(u)&&l.visible){a.push(u);for(var c=u.O.s,f=c.length,d=0;d<f;d++){var p=c[d];u.type===Ch.TableRow?p.row=l.row:u.type===Ch.TableColumn&&(p.column=l.column),s.push(p)}}else s.push(l)}0===(r=s.length)&&(t.Fb(0),t.Eb(0));for(var g=[],m=0;m<r;m++){var y=s[m];y.visible&&(ea(y,!0),oa(y,!0),g[y.row]||(g[y.row]=[]),g[y.row][y.column]||(g[y.row][y.column]=[]),g[y.row][y.column].push(y))}j(s);var v=A(),x=A(),b=A(),w={count:0},k={count:0},M=i,S=e,P=t.rowDefs,N=t.colDefs,C=null;r=P.length;for(var T=0;T<r;T++)void 0!==(C=P[T])&&(C.actual=0);r=N.length;for(var L=0;L<r;L++)void 0!==(C=N[L])&&(C.actual=0);for(var F=g.length,D=0,B=0;B<F;B++)g[B]&&(D=Math.max(D,g[B].length));var O=Math.min(t.topIndex,F-1),I=Math.min(t.leftIndex,D-1),z=0;F=g.length;for(var R=Dh(t),E=0;E<F;E++)if(g[E]){D=g[E].length;var V=t.Fb(E);V.actual=0;for(var Y=V.oc=0;Y<D;Y++)if(g[E][Y]){var G=t.Eb(Y);void 0===v[Y]&&(G.actual=0,G.oc=0,v[Y]=!0);for(var X=g[E][Y],U=X.length,q=0;q<U;q++){var H=X[q];if(H.visible||H===R){var K=1<H.rowSpan||1<H.columnSpan;K&&(E<O||Y<I||x.push(H));var W=H.margin,J=W.right+W.left,Z=W.top+W.bottom,_=Ws(H,V,G,!1),$=H.desiredSize,Q=!isNaN($.height),tt=!isNaN($.width)&&Q;if(K||_===fs||tt||E<O||Y<I||(void 0!==w[Y]||_!==cs&&_!==ps||(w[Y]=-1,w.count++),void 0!==k[E]||_!==cs&&_!==gs||(k[E]=-1,k.count++),b.push(H)),H.measure(1/0,1/0,0,0),!(E<O||Y<I)){var it=H.measuredBounds,et=Math.max(it.width+J,0),nt=Math.max(it.height+Z,0);if(1===H.rowSpan&&(_===fs||_===ps)){var ot=(C=t.Fb(E)).Wc();(z=Math.max(nt-C.actual,0))+ot>S&&(z=Math.max(S-ot,0));var rt=0===C.oa;C.oc=C.oc+z,C.actual=C.oa+z,S=Math.max(S-(z+(rt?ot:0)),0)}if(1===H.columnSpan&&(_===fs||_===gs)){var st=(C=t.Eb(Y)).Wc();(z=Math.max(et-C.actual,0))+st>M&&(z=Math.max(M-st,0));var at=0===C.oa;C.oc=C.oc+z,C.actual=C.oa+z,M=Math.max(M-(z+(at?st:0)),0)}K&&H.Uj()}}}}}j(v);var ht=0,lt=0;r=t.columnCount;for(var ut=0;ut<r;ut++){var ct=N[ut];void 0!==ct&&(ht+=isNaN(ct.Hc)?ct.oc:ct.Hc,0!==ct.oc&&(ht+=ct.Wc()))}r=t.rowCount;for(var ft=0;ft<r;ft++){var dt=P[ft];void 0!==dt&&(lt+=isNaN(dt.Hc)?dt.oc:dt.Hc,0!==dt.oc&&(lt+=dt.Wc()))}M=Math.max(i-ht,0);var pt=S=Math.max(e-lt,0),gt=M;r=b.length;for(var mt=0;mt<r;mt++){var yt=b[mt],vt=t.Fb(yt.row),xt=t.Eb(yt.column),bt=yt.measuredBounds,wt=yt.margin,kt=wt.right+wt.left,Mt=wt.top+wt.bottom;w[yt.column]=0===xt.oc&&void 0!==w[yt.column]?Math.max(bt.width+kt,w[yt.column]):null,k[yt.row]=0===vt.oc&&void 0!==k[yt.row]?Math.max(bt.height+Mt,k[yt.row]):null}var St,Pt=0,Nt=0;for(St in k)"count"!==St&&(Pt+=k[St]);for(St in w)"count"!==St&&(Nt+=w[St]);for(var Ct=At.alloc(),Tt=0;Tt<r;Tt++){var Lt=b[Tt];if(Lt.visible||Lt===R){var jt=t.Fb(Lt.row),Ft=t.Eb(Lt.column),Dt=0;isFinite(Ft.width)?Dt=Ft.width:(Dt=isFinite(M)&&null!==w[Lt.column]?0===Nt?Ft.actual+M:w[Lt.column]/Nt*gt:null!==w[Lt.column]?M:Ft.actual||M,Dt=Math.max(0,Dt-Ft.Wc()));var Bt=0;switch(isFinite(jt.height)?Bt=jt.height:(Bt=isFinite(S)&&null!==k[Lt.row]?0===Pt?jt.actual+S:k[Lt.row]/Pt*pt:null!==k[Lt.row]?S:jt.actual||S,Bt=Math.max(0,Bt-jt.Wc())),Ct.h(Math.max(Ft.minimum,Math.min(Dt,Ft.maximum)),Math.max(jt.minimum,Math.min(Bt,jt.maximum))),_=Ws(Lt,jt,Ft,!1)){case ps:Ct.height=Math.max(Ct.height,jt.actual+S);break;case gs:Ct.width=Math.max(Ct.width,Ft.actual+M)}var Ot=Lt.margin,It=Ot.right+Ot.left,zt=Ot.top+Ot.bottom;Lt.Uj(),Lt.measure(Ct.width,Ct.height,Ft.minimum,jt.minimum);var Rt=Lt.measuredBounds,Et=Math.max(Rt.width+It,0),Vt=Math.max(Rt.height+zt,0);isFinite(M)&&(Et=Math.min(Et,Ct.width)),isFinite(S)&&(Vt=Math.min(Vt,Ct.height));var Yt=0;Yt=jt.actual,jt.actual=Math.max(jt.actual,Vt),jt.oc=Math.max(jt.oc,Vt),z=jt.actual-Yt,S=Math.max(S-z,0),null===k[Lt.row]&&(pt=Math.max(pt-z,0)),Yt=Ft.actual,Ft.actual=Math.max(Ft.actual,Et),Ft.oc=Math.max(Ft.oc,Et),z=Ft.actual-Yt,M=Math.max(M-z,0),null===w[Lt.column]&&(gt=Math.max(gt-z,0))}}j(b);var Gt=At.alloc(),Xt=A(),Ut=A();if(0!==(r=x.length))for(var qt=0;qt<F;qt++)if(g[qt]){D=g[qt].length;var Ht=t.Fb(qt);Xt[qt]=Ht.actual;for(var Kt=0;Kt<D;Kt++)if(g[qt][Kt]){var Wt=t.Eb(Kt);Ut[Kt]=Wt.actual}}for(var Jt=0;Jt<r;Jt++){var Zt=x[Jt];if(Zt.visible||Zt===R){var _t=t.Fb(Zt.row),$t=t.Eb(Zt.column);switch(Ct.h(Math.max($t.minimum,Math.min(i,$t.maximum)),Math.max(_t.minimum,Math.min(e,_t.maximum))),_=Ws(Zt,_t,$t,!1)){case cs:0!==Ut[$t.index]&&(Ct.width=Math.min(Ct.width,Ut[$t.index])),0!==Xt[_t.index]&&(Ct.height=Math.min(Ct.height,Xt[_t.index]));break;case ps:0!==Ut[$t.index]&&(Ct.width=Math.min(Ct.width,Ut[$t.index]));break;case gs:0!==Xt[_t.index]&&(Ct.height=Math.min(Ct.height,Xt[_t.index]))}isFinite($t.width)&&(Ct.width=$t.width),isFinite(_t.height)&&(Ct.height=_t.height),Gt.h(0,0);for(var Qt=$t.minimum,ti=_t.minimum,ii=1;ii<Zt.rowSpan&&!(Zt.row+ii>=t.rowCount);ii++)C=t.Fb(Zt.row+ii),z=0,z=_===cs||_===gs?Math.max(C.minimum,0===Xt[Zt.row+ii]?C.maximum:Math.min(Xt[Zt.row+ii],C.maximum)):Math.max(C.minimum,isNaN(C.Hc)?C.maximum:Math.min(C.Hc,C.maximum)),Gt.height+=z,ti+=C.minimum;for(var ei=1;ei<Zt.columnSpan&&!(Zt.column+ei>=t.columnCount);ei++)C=t.Eb(Zt.column+ei),z=0,z=_===cs||_===ps?Math.max(C.minimum,0===Ut[Zt.column+ei]?C.maximum:Math.min(Ut[Zt.column+ei],C.maximum)):Math.max(C.minimum,isNaN(C.Hc)?C.maximum:Math.min(C.Hc,C.maximum)),Gt.width+=z,Qt+=C.minimum;Ct.width+=Gt.width,Ct.height+=Gt.height;var ni=Zt.margin,oi=ni.right+ni.left,ri=ni.top+ni.bottom;Zt.measure(Ct.width,Ct.height,Qt,ti);for(var si=Zt.measuredBounds,ai=Math.max(si.width+oi,0),hi=Math.max(si.height+ri,0),li=0,ui=0;ui<Zt.rowSpan&&!(Zt.row+ui>=t.rowCount);ui++)li+=(C=t.Fb(Zt.row+ui)).total||0;if(li<hi){var ci=hi-li,fi=hi-li;if(null!==Zt.spanAllocation)for(var di=Zt.spanAllocation,pi=0;pi<Zt.rowSpan&&!(0>=ci)&&!(Zt.row+pi>=t.rowCount);pi++){var gi=(C=t.Fb(Zt.row+pi)).oa||0,mi=di(Zt,C,fi);C.actual=Math.min(C.maximum,gi+mi),C.oa!==gi&&(ci-=C.oa-gi)}for(;0<ci;){var yi=C.oa||0;if(isNaN(C.height)&&C.maximum>yi&&(C.actual=Math.min(C.maximum,yi+ci),C.oa!==yi&&(ci-=C.oa-yi)),0===C.index)break;C=t.Fb(C.index-1)}}for(var vi=0,xi=0;xi<Zt.columnSpan&&!(Zt.column+xi>=t.columnCount);xi++)vi+=(C=t.Eb(Zt.column+xi)).total||0;if(vi<ai){var bi=ai-vi,wi=ai-vi;if(null!==Zt.spanAllocation)for(var ki=Zt.spanAllocation,Mi=0;Mi<Zt.columnSpan&&!(0>=bi)&&!(Zt.column+Mi>=t.columnCount);Mi++){var Si=(C=t.Eb(Zt.column+Mi)).oa||0,Pi=ki(Zt,C,wi);C.actual=Math.min(C.maximum,Si+Pi),C.oa!==Si&&(bi-=C.oa-Si)}for(;0<bi;){var Ni=C.oa||0;if(isNaN(C.width)&&C.maximum>Ni&&(C.actual=Math.min(C.maximum,Ni+bi),C.oa!==Ni&&(bi-=C.oa-Ni)),0===C.index)break;C=t.Eb(C.index-1)}}}}j(x),At.free(Gt),At.free(Ct),void 0!==Xt&&j(Xt),void 0!==Ut&&j(Ut);var Ci=0,Ti=0,Li=t.desiredSize,Ai=t.maxSize;_=Ks(t,!0);var ji=lt=ht=0,Fi=0;r=t.columnCount;for(var Di=0;Di<r;Di++)void 0!==N[Di]&&(C=t.Eb(Di),isFinite(C.width)?(ji+=C.width,ji+=C.Wc()):ul(C)===fl?(ji+=C.oa,ji+=C.Wc()):0!==C.oa&&(ht+=C.oa,ht+=C.Wc()));Ci=isFinite(Li.width)?Math.min(Li.width,Ai.width):_!==fs&&isFinite(i)?i:ht,Ci=Math.max(Ci,t.minSize.width),Ci=Math.max(Ci-ji,0);for(var Bi=0===ht?1:Math.max(Ci/ht,1),Oi=0;Oi<r;Oi++)void 0!==N[Oi]&&(C=t.Eb(Oi),isFinite(C.width)||ul(C)===fl||(C.actual=C.oa*Bi),C.position=o.width,0!==C.oa&&(o.width+=C.oa,o.width+=C.Wc()));r=t.rowCount;for(var Ii=0;Ii<r;Ii++)void 0!==P[Ii]&&(C=t.Fb(Ii),isFinite(C.height)?(Fi+=C.height,Fi+=C.Wc()):ul(C)===fl?(Fi+=C.oa,Fi+=C.Wc()):0!==C.oa&&(lt+=C.oa,lt+=C.Wc()));Ti=isFinite(Li.height)?Math.min(Li.height,Ai.height):_!==fs&&isFinite(e)?e:lt,Ti=Math.max(Ti,t.minSize.height),Ti=Math.max(Ti-Fi,0);for(var zi=0===lt?1:Math.max(Ti/lt,1),Ri=0;Ri<r;Ri++)void 0!==P[Ri]&&(C=t.Fb(Ri),isFinite(C.height)||ul(C)===fl||(C.actual=C.oa*zi),C.position=o.height,0!==C.oa&&(o.height+=C.oa,o.height+=C.Wc()));r=a.length;for(var Ei=0;Ei<r;Ei++){var Vi=a[Ei],Yi=0,Gi=0;Vi.type===Ch.TableRow?(Yi=o.width,Gi=(C=t.Fb(Vi.row)).actual):(Yi=(C=t.Eb(Vi.column)).actual,Gi=o.height),Vi.measuredBounds.h(0,0,Yi,Gi),ea(Vi,!1)}j(a),t.inRowsCols=g},vh.prototype.arrange=function(t,i,e){var n=i.length,o=t.padding,r=o.left;o=o.top;var s=t.inRowsCols;if(null!==s){for(var a,h,l=s.length,u=0,c=0;c<l;c++)s[c]&&(u=Math.max(u,s[c].length));h=t.rowDefs,a=t.colDefs;var f=c=0,d=Math.min(t.topIndex,l-1);if(0<h.length){for(;d!==l&&(void 0===h[d]||0===h[d].oa);)d++;c=-h[d=Math.max(Math.min(d,l-1),0)].position}var p=Math.min(t.leftIndex,u-1);if(0<a.length){for(;p!==u&&(void 0===a[p]||0===a[p].oa);)p++;f=-a[p=Math.max(Math.min(p,u-1),0)].position}for(var g=0,m=0;g!==l&&void 0===h[g];)g++;for(;m!==l&&void 0===a[m];)m++;u=t.part,t.Fb(g),t.Eb(m);for(var y=0;y<i.length;y++){var v=i[y];if(v instanceof Ch&&v.visible&&Vh(v)){if(v.type===Ch.TableRow){a=t.Fb(v.row);var x=t.Eb(m)}else a=t.Fb(g),x=t.Eb(v.column);h=a.position+c+o,0!==a.oa&&(h+=a.Io(Math.max(g,d))),a=x.position+f+r,0!==x.oa&&(a+=x.Io(Math.max(m,p))),x=v.measuredBounds,v.Uk(),v.actualBounds.ka();var b=v.actualBounds,w=Bt.allocAt(b.x,b.y,b.width,b.height);b.x=v.type===Ch.TableRow?r:a,b.y=v.type===Ch.TableColumn?o:h,b.width=x.width,b.height=x.height,v.actualBounds.freeze(),oa(v,!1),Rt(w,b)||null===u||(u.oh(),v.Pn(u)),Bt.free(w)}}for(y=At.alloc(),v=0;v<l;v++)if(s[v])for(u=s[v].length,h=(x=t.Fb(v)).position+c+o,0!==x.oa&&(h+=x.Io(Math.max(g,d))),b=0;b<u;b++)if(s[v][b]){a=(w=t.Eb(b)).position+f+r,0!==w.oa&&(a+=w.Io(Math.max(m,p)));for(var k=s[v][b],M=k.length,S=0;S<M;S++){var P=k[S],N=P.measuredBounds;y.h(0,0);for(var C=1;C<P.rowSpan&&!(v+C>=t.rowCount);C++){var T=t.Fb(v+C);0!==T.oa&&(y.height+=T.total)}for(C=1;C<P.columnSpan&&!(b+C>=t.columnCount);C++)0!==(T=t.Eb(b+C)).oa&&(y.width+=T.total);var L=w.oa+y.width,A=x.oa+y.height;C=a,T=h;var j=L,F=A,D=a,B=h,O=L,I=A;a+L>e.width&&(O=Math.max(e.width-a,0)),h+A>e.height&&(I=Math.max(e.height-h,0));var z=P.alignment;if(z.Xb()){(z=t.defaultAlignment).sb()||(z=oi);var R=z.x,E=z.y,V=z.offsetX;z=z.offsetY;var Y=w.alignment,G=x.alignment;Y.sb()&&(R=Y.x,V=Y.offsetX),G.sb()&&(E=G.y,z=G.offsetY)}else R=z.x,E=z.y,V=z.offsetX,z=z.offsetY;(isNaN(R)||isNaN(E))&&(E=R=.5,z=V=0),Y=N.width,G=N.height;var X=P.margin,U=X.left+X.right,q=X.top+X.bottom,H=Ws(P,x,w,!1);!isNaN(P.desiredSize.width)||H!==cs&&H!==ps||(Y=Math.max(L-U,0)),!isNaN(P.desiredSize.height)||H!==cs&&H!==gs||(G=Math.max(A-q,0)),L=P.maxSize,A=P.minSize,Y=Math.min(L.width,Y),G=Math.min(L.height,G),Y=Math.max(A.width,Y),L=(G=Math.max(A.height,G))+q,C+=j*R-(Y+U)*R+V+X.left,T+=F*E-L*E+z+X.top,P.visible&&(Xt(D,B,O,I,C,T,N.width,N.height)?P.arrange(C,T,Y,G):P.arrange(C,T,Y,G,new Bt(D,B,O,I)))}}for(At.free(y),t=0;t<n;t++)null!==(r=(e=i[t])instanceof Ch?e:null)&&Vh(r)&&(r=e.actualBounds,e.naturalBounds.ka(),e.naturalBounds.h(0,0,r.width,r.height),e.naturalBounds.freeze())}},c(xh,ch),xh.prototype.measure=function(){},xh.prototype.arrange=function(){},c(bh,ch),bh.prototype.measure=function(){},bh.prototype.arrange=function(){},c(wh,ch),wh.prototype.measure=function(t,i,e,n,o,r,s){1<n.length&&w("Viewbox Panel cannot contain more than one GraphObject."),(n=n[0]).Ca=1,n.Uj(),n.measure(1/0,1/0,r,s);var a=n.measuredBounds,h=n.margin,l=h.right+h.left;if(h=h.top+h.bottom,isFinite(i)||isFinite(e)){var u=n.scale,c=a.width;a=a.height;var f=Math.max(i-l,0),d=Math.max(e-h,0),p=1;t.viewboxStretch===ds?0!==c&&0!==a&&(p=Math.min(f/c,d/a)):0!==c&&0!==a&&(p=Math.max(f/c,d/a)),0===p&&(p=1e-4),n.Ca*=p,u!==n.scale&&(ea(n,!0),n.measure(1/0,1/0,r,s))}a=n.measuredBounds,o.width=isFinite(i)?i:Math.max(a.width+l,0),o.height=isFinite(e)?e:Math.max(a.height+h,0)},wh.prototype.arrange=function(t,i,e){var n=(i=i[0]).measuredBounds,o=i.margin,r=Math.max(n.width+(o.right+o.left),0);o=Math.max(n.height+(o.top+o.bottom),0);var s=i.alignment;s.Xb()&&(s=t.defaultAlignment),s.sb()||(s=oi),i.arrange(e.width*s.x-r*s.x+s.offsetX,e.height*s.y-o*s.y+s.offsetY,n.width,n.height)},c(kh,ch),kh.prototype.measure=function(){},kh.prototype.arrange=function(){},kh.prototype.gc=function(t,i,e){0>=(e=t.Df()*e.scale)&&(e=1);var n=t.gridCellSize,o=n.width;n=n.height;var r=t.naturalBounds,s=t.actualBounds,a=r.width,h=r.height,l=Math.ceil(a/o),u=Math.ceil(h/n),c=t.gridOrigin,f=c.x;c=c.y,i.save(),i.beginPath(),i.rect(0,0,a,h),i.clip(),i.Se();for(var d=[],p=t.O.s,g=p.length,m=0;m<g;m++){var y=p[m],v=[];if(d.push(v),y.visible){var x=y.interval;if(!(0>x)){y=Fh(y.figure);for(var b=0;b<g;b++)if(b!==m){var w=p[b];w.visible&&Fh(w.figure)===y&&((w=w.interval)>x&&v.push(w))}}}}for(g=(p=t.O.s).length,m=0;m<g;m++){var k=p[m];if(k.visible&&(v=k.interval||1,!(2>o*(y=Math.abs(v))*e))){if(x=k.segmentIndex,isFinite(x)&&!isNaN(x)||(x=0),0>x&&(x=y-Math.min(-x,y)),x=Math.round(x%y),b=1,1!==(y=k.opacity)){if(0===y)continue;b=i.globalAlpha,i.globalAlpha=b*y}w=d[m];var M=!1,S=k.strokeDashArray;if(null!==S&&(M=!0,i.js(S,k.strokeDashOffset)),"LineV"===k.figure&&null!==k.stroke&&0<k.strokeWidth){for(i.lineWidth=k.strokeWidth,Us(t,i,k.stroke,!1,!1,r,s),i.beginPath(),S=k=Math.floor((f-o)/o);S<=k+l;S++){var P=S*o+f;0<=P&&P<=a&&Mh(S,v,x,w)&&(i.moveTo(P,0),i.lineTo(P,h))}i.stroke(),i.Se()}else if("LineH"===k.figure&&null!==k.stroke&&0<k.strokeWidth){for(i.lineWidth=k.strokeWidth,Us(t,i,k.stroke,!1,!1,r,s),i.beginPath(),S=k=Math.floor((c-n)/n);S<=k+u;S++)0<=(P=S*n+c)&&P<=h&&Mh(S,v,x,w)&&(i.moveTo(0,P),i.lineTo(a,P));i.stroke(),i.Se()}else if("BarV"===k.figure&&null!==k.fill)for(Us(t,i,k.fill,!0,!1,r,s),k=k.width,isNaN(k)&&(k=o),P=S=Math.floor((f-o)/o);P<=S+l;P++){var N=P*o+f;0<=N+k&&N<=a&&Mh(P,v,x,w)&&i.fillRect(N,0,k,h)}else if("BarH"===k.figure&&null!==k.fill)for(Us(t,i,k.fill,!0,!1,r,s),k=k.height,isNaN(k)&&(k=n),P=S=Math.floor((c-n)/n);P<=S+u;P++)0<=(N=P*n+c)+k&&N<=h&&Mh(P,v,x,w)&&i.fillRect(0,N,a,k);M&&i.fs(),1!==y&&(i.globalAlpha=b)}}i.restore(),i.Vc(!1)},c(Sh,ch),Sh.prototype.measure=function(t,i,e,n,o){var r=n.length;if(t instanceof Ku||t instanceof wc){var s=null,a=null;if(t instanceof wc&&(s=t),t instanceof Ku&&(s=(a=t).adornedPart,null===t.j&&(t.j=[])),s instanceof wc){var h=s;if(0===r)Ot(t.naturalBounds,0,0),t.measuredBounds.h(0,0,0,0);else{var l=t instanceof Ku?null:s.path;i=s.routeBounds,(e=t.jg).h(0,0,i.width,i.height);var u=h.points,c=s.pointsCount;null!==a?a.Ul(!1):null!==s&&s.Ul(!1),a=i.width;var f=i.height,d=t.j;if(d.length=0,null!==l){Ph(t,a,f,l);var p=l.measuredBounds;e.ed(p),d.push(p)}p=Yi.alloc();for(var g=pt.alloc(),m=pt.alloc(),y=0;y<r;y++){var v=n[y];if(v!==l)if(v.isPanelMain&&v instanceof pl){Ph(t,a,f,v);var x=v.measuredBounds;e.ed(x),d.push(x)}else if(2>c)v.measure(1/0,1/0,0,0),x=v.measuredBounds,e.ed(x),d.push(x);else{var b=v.segmentIndex,w=v.segmentFraction,k=v.alignmentFocus;k.Mc()&&(k=oi);var M=v.segmentOrientation,S=v.segmentOffset;if(isNaN(b)){var P=h.ua;x=A(),P.Qu(w,x);var N=pt.allocAt(x[0],x[1]);if(N.add(h.i(0)),P.type===Ui.j?N.offset(-P.startX,-P.startY):null!==(P=P.figures.first())&&N.offset(-P.startX,-P.startY),P=x[2],M!==Wc){var C=h.computeAngle(v,M,P);v.Kb=C}C=N.x-i.x;var T=N.y-i.y;pt.free(N),j(x)}else if(b<-c||b>=c)x=pt.alloc(),h.vg(),h.computeMidPoint(x),P=h.midAngle,M!==Wc&&(C=h.computeAngle(v,M,P),v.Kb=C),C=x.x-i.x,T=x.y-i.y,pt.free(x);else{if(C=0,0<=b?(T=u.M(b),x=b<c-1?u.M(b+1):T):(C=c+b,T=u.M(C),x=0<C?u.M(C-1):T),T.Xa(x)){0<=b?(P=0<b?u.M(b-1):T,C=b<c-2?u.M(b+2):x):(P=C<c-1?u.M(C+1):T,C=1<C?u.M(C-2):x),N=P.Bf(T);var L=x.Bf(C);P=N>L+10?0<=b?P.ab(T):T.ab(P):L>N+10?0<=b?x.ab(C):C.ab(x):0<=b?P.ab(C):C.ab(P)}else P=0<=b?T.ab(x):x.ab(T);M!==Wc&&(C=h.computeAngle(v,M,P),v.Kb=C),C=T.x+(x.x-T.x)*w-i.x,T=T.y+(x.y-T.y)*w-i.y}v.measure(1/0,1/0,0,0),x=v.measuredBounds,N=v.naturalBounds;var F=0;v instanceof pl&&(F=v.strokeWidth),L=N.width+F;var D=N.height+F;p.reset(),p.translate(-x.x,-x.y),p.scale(v.scale,v.scale),p.rotate(M===Wc?v.angle:P,L/2,D/2),M!==nf&&M!==af||p.rotate(90,L/2,D/2),M!==of&&M!==hf||p.rotate(-90,L/2,D/2),M===lf&&(45<P&&135>P||225<P&&315>P)&&p.rotate(-P,L/2,D/2),N=new Bt(0,0,L,D),g.xi(N,k),p.Ga(g),k=-g.x+F/2*v.scale,v=-g.y+F/2*v.scale,m.assign(S),F=isNaN(S.x);var B=isNaN(S.y);if(F||B){L=L/2+3,D=D/2+3;var O=45<=P&&135>=P,I=225<=P&&315>=P;M===Wc&&(O||I)?(m.x=B?L:S.y,m.y=F?D:S.x,O?0<=b||isNaN(b)&&.5>w||!F||(m.y=-D):I&&((0<=b||isNaN(b)&&.5>w)&&F&&(m.y=-D),B&&(m.x=-L))):(F&&(m.x=0<=b||isNaN(b)&&.5>w?L:-L),B&&(m.y=-D),m.rotate(P))}else m.rotate(P);C+=m.x,T+=m.y,N.set(x),N.h(C+k,T+v,x.width,x.height),d.push(N),e.ed(N)}}if(null!==s)for(n=s.labelNodes;n.next();)n.value.measure(1/0,1/0);t.jg=e,t.position.h(i.x+e.x,i.y+e.y),Ot(o,e.width||0,e.height||0),Yi.free(p),pt.free(g),pt.free(m)}}}},Sh.prototype.arrange=function(t,i){var e=i.length;if(t instanceof Ku||t instanceof wc){var n=t,o=null;t instanceof Ku&&(n=(o=t).adornedPart);var r=t instanceof Ku?null:n.path,s=t.j;if(0!==s.length){var a=0;if(null!==r&&a<s.length){var h=s[a];a++,r.arrange(h.x-t.jg.x,h.y-t.jg.y,h.width,h.height)}for(h=0;h<e;h++){var l=i[h];if(l!==r&&a<s.length){var u=s[a];a++,l.arrange(u.x-t.jg.x,u.y-t.jg.y,u.width,u.height)}}}if(2<=(e=(i=n.points).count)&&t instanceof wc)for(r=t.labelNodes;r.next();){var c=t;a=(s=r.value).segmentIndex,h=s.segmentFraction;var f=s.alignmentFocus;if(l=s.segmentOrientation,u=s.segmentOffset,isNaN(a)){var d=c.ua,p=A();d.Qu(h,p);var g=pt.allocAt(p[0],p[1]);g.add(c.i(0)),d.type===Ui.j||(d=d.figures.first()),g.offset(-d.startX,-d.startY),d=p[2],l!==Wc&&(c=c.computeAngle(s,l,d),s.angle=c),c=g.x;var m=g.y;pt.free(g),j(p)}else if(a<-e||a>=e)m=p=pt.alloc(),(d=c).vg(),d.computeMidPoint(m),d=c.midAngle,l!==Wc&&(c=c.computeAngle(s,l,d),s.angle=c),c=p.x,m=p.y,pt.free(p);else{if(g=0,0<=a?(p=i.s[a],m=a<e-1?i.s[a+1]:p):(g=e+a,p=i.s[g],m=0<g?i.s[g-1]:p),p.Xa(m)){0<=a?(d=0<a?i.s[a-1]:p,g=a<e-2?i.s[a+2]:m):(d=g<e-1?i.s[g+1]:p,g=1<g?i.s[g-2]:m);var y=d.Bf(p),v=m.Bf(g);d=y>v+10?0<=a?d.ab(p):p.ab(d):v>y+10?0<=a?m.ab(g):g.ab(m):0<=a?d.ab(g):g.ab(d)}else d=0<=a?p.ab(m):m.ab(p);l!==Wc&&(c=c.computeAngle(s,l,d),s.angle=c),c=p.x+(m.x-p.x)*h,m=p.y+(m.y-p.y)*h}if(f.ys())s.location=new pt(c,m);else{f.Mc()&&(f=oi),(p=Yi.alloc()).reset(),p.scale(s.scale,s.scale),p.rotate(s.angle,0,0);var x=s.naturalBounds;g=Bt.allocAt(0,0,x.width,x.height),(y=pt.alloc()).xi(g,f),p.Ga(y),f=-y.x,v=-y.y;var b=x.width,w=x.height;(x=pt.alloc()).assign(u);var k=isNaN(u.x),M=isNaN(u.y);if(k||M){b=b/2+3,w=w/2+3;var S=45<=d&&135>=d,P=225<=d&&315>=d;l===Wc&&(S||P)?(x.x=M?b:u.y,x.y=k?w:u.x,S?0<=a||isNaN(a)&&.5>h||!k||(x.y=-w):P&&((0<=a||isNaN(a)&&.5>h)&&k&&(x.y=-w),M&&(x.x=-b))):(k&&(x.x=0<=a||isNaN(a)&&.5>h?b:-b),M&&(x.y=-w),x.rotate(d))}else x.rotate(d);c+=x.x,m+=x.y,p.pp(g),f+=g.x,v+=g.y,a=pt.allocAt(c+f,m+v),s.move(a),pt.free(a),pt.free(x),pt.free(y),Bt.free(g),Yi.free(p)}}null!==o?o.Ul(!1):n.Ul(!1),n=Tu(t),t.location.h(t.position.x+n.x,t.position.y+n.y),pt.free(n)}},c(Nh,ch),Nh.prototype.measure=function(t,i,e,n,o,r,s){var a=t.Pb();t.graduatedBounds=[];var h=a.margin,l=h.right+h.left,u=h.top+h.bottom;a.measure(i,e,r,s);var c=a.measuredBounds,f=new Bt(-h.left,-h.top,Math.max(c.width+l,0),Math.max(c.height+u,0));t.graduatedBounds.push(f),o.assign(f);for(var d=a.geometry,p=a.strokeWidth,g=d.flattenedSegments,m=d.flattenedLengths,y=d.flattenedTotalLength,v=g.length,x=0,b=0,w=A(),k=0;k<v;k++){var M=g[k],S=[];b=x=0;for(var P=M.length,N=0;N<P;N+=2){var C=M[N],T=M[N+1];if(0!==N){var L=180*Math.atan2(T-b,C-x)/Math.PI;0>L&&(L+=360),S.push(L)}x=C,b=T}w.push(S)}if(null===t.graduatedIntervals){for(var F=[],D=t.O.s,B=D.length,O=0;O<B;O++){var I=D[O],z=[];if(F.push(z),I.visible){var R=I.interval;if(!(0>R))for(var E=0;E<B;E++)if(E!==O){var V=D[E];if(V.visible&&I.constructor===V.constructor){var Y=V.interval;Y>R&&z.push(Y)}}}}t.graduatedIntervals=F}var G=t.graduatedIntervals,X=t.O.s,U=X.length,q=0,H=0,K=y;t.graduatedMarks=[];for(var W,J=0;J<U;J++){var Z=X[J];if(W=[],Z.visible&&Z!==a){var _=Math.abs(Z.interval),$=t.graduatedTickUnit;if(!(2>$*_*y/t.graduatedRange&&null===Z.graduatedSkip)){var Q=m[0][0],tt=0,it=0;H=y*Z.graduatedStart-1e-4,K=y*Z.graduatedEnd+1e-4;var et=$*_,nt=t.graduatedTickBase;if(nt<t.graduatedMin){var ot=(t.graduatedMin-nt)/et;nt+=(ot=0==ot%1?ot:Math.floor(ot+1))*et}else nt>t.graduatedMin+et&&(nt-=Math.floor((nt-t.graduatedMin)/et)*et);for(var rt=G[J],st=nt,at=1e-6*t.graduatedMax,ht=1;nt<=t.graduatedMax+at;ht++){t:{for(var lt=rt.length,ut=0;ut<lt;ut++){var ct=(nt-t.graduatedTickBase)%(rt[ut]*t.graduatedTickUnit),ft=1e-6*t.graduatedTickUnit;if(ct<ft&&ct>-ft){var dt=!1;break t}}dt=!0}if(dt&&(nt>t.graduatedMax&&(nt=t.graduatedMax),null===Z.graduatedSkip||Z instanceof Nl&&!Z.graduatedSkip(nt,Z)||Z instanceof pl&&!Z.graduatedSkip(nt,Z))&&((q=(nt-t.graduatedMin)*y/t.graduatedRange)>y&&(q=y),H<=q&&q<=K)){for(var gt=w[tt][it],mt=m[tt][it];tt<m.length;){for(;q>Q&&it<m[tt].length-1;)it++,gt=w[tt][it],Q+=mt=m[tt][it];if(q<=Q)break;it=0,gt=w[++tt][it],Q+=mt=m[tt][it]}var yt=g[tt],vt=yt[2*it],xt=yt[2*it+1],bt=(q-(Q-mt))/mt,wt=new pt(vt+(yt[2*it+2]-vt)*bt+p/2-d.bounds.x,xt+(yt[2*it+3]-xt)*bt+p/2-d.bounds.y);wt.scale(a.scale,a.scale);t:{var kt=gt,Mt=w[tt];if(!(.5005>bt&&.4995<bt)){var St=kt;if(.5>bt?0<it?St=Mt[it-1]:Xi.$(yt[0],yt[yt.length-2])&&Xi.$(yt[1],yt[yt.length-1])&&(St=Mt[Mt.length-1]):.5<bt&&(it+1<Mt.length?St=Mt[it+1]:Xi.$(yt[0],yt[yt.length-2])&&Xi.$(yt[1],yt[yt.length-1])&&(St=Mt[0])),kt!==St){var Pt=Math.abs(kt-St);if(180<Pt&&(kt<St?kt+=360:St+=360,Pt=Math.abs(kt-St)),5e-4>bt||.9995<bt){gt=(kt+St)/2%360;break t}if(10>Pt){var Nt=1-Math.abs(.5-bt);gt=(kt*Nt+St*(1-Nt))%360;break t}}}gt=kt}if(Z instanceof Nl){var Ct="";null!==Z.graduatedFunction?Ct=null!=(Ct=Z.graduatedFunction(nt,Z))?Ct.toString():"":Ct=(+nt.toFixed(2)).toString(),""!==Ct&&W.push({$l:wt,angle:gt,text:Ct})}else W.push({$l:wt,angle:gt})}nt=st+ht*et}}}t.graduatedMarks.push(W)}j(w);var Tt=t.graduatedMarks;if(null!==Tt)for(var Lt=n.length,At=0;At<Lt;At++){var jt=n[At],Ft=Tt[At];if(jt.visible&&jt!==a&&0!==Ft.length){if(jt instanceof pl){var Dt=t,Ot=o,It=jt.alignmentFocus;It.Mc()&&(It=ii);var zt=jt.angle;jt.Kb=0,jt.measure(1/0,1/0,0,0),jt.Kb=zt;var Rt=jt.measuredBounds,Et=Rt.width,Vt=Rt.height,Yt=Bt.allocAt(0,0,Et,Vt),Xt=pt.alloc();Xt.xi(Yt,It),Bt.free(Yt);for(var Ut=-Xt.x,qt=-Xt.y,Ht=new Bt,Kt=Ft.length,Wt=0;Wt<Kt;Wt++)for(var Jt=Ft[Wt],Zt=Jt.$l.x,_t=Jt.$l.y,$t=Jt.angle,Qt=0;4>Qt;Qt++){switch(Qt){case 0:Xt.h(Ut,qt);break;case 1:Xt.h(Ut+Et,qt);break;case 2:Xt.h(Ut,qt+Vt);break;case 3:Xt.h(Ut+Et,qt+Vt)}Xt.rotate($t+jt.angle),Xt.offset(Zt,_t),0===Wt&&0===Qt?Ht.h(Xt.x,Xt.y,0,0):Ht.Ye(Xt),Xt.offset(-Zt,-_t),Xt.rotate(-$t-jt.angle)}pt.free(Xt),null!==Dt.graduatedBounds&&Dt.graduatedBounds.push(Ht),Gt(Ot,Ht.x,Ht.y,Ht.width,Ht.height)}else if(jt instanceof Nl){var ti=t,ei=o;null===ti.temporaryTextBlock&&(ti.temporaryTextBlock=new Nl);var ni=ti.temporaryTextBlock;Tl(ni,jt);var oi=jt.alignmentFocus;oi.Mc()&&(oi=ii);for(var ri=jt.segmentOrientation,si=jt.segmentOffset,ai=new Bt,hi=0,li=0,ui=0,ci=0,fi=0,di=Ft.length,pi=0;pi<di;pi++){var gi=Ft[pi];hi=gi.$l.x,li=gi.$l.y,ui=gi.angle,fi=ci=jt.angle,ri!==Wc&&(fi=ri===ef||ri===sf?ui+jt.angle:ui,ci=wc.computeAngle(ri,fi)),ni.Kb=ci,ni.text=gi.text||"",ni.measure(1/0,1/0,0,0);var mi=ni.measuredBounds,yi=ni.naturalBounds,vi=yi.width,xi=yi.height,bi=Yi.alloc();bi.reset(),bi.translate(-mi.x,-mi.y),bi.scale(ni.scale,ni.scale),bi.rotate(fi,vi/2,xi/2),ri!==nf&&ri!==af||bi.rotate(90,vi/2,xi/2),ri!==of&&ri!==hf||bi.rotate(-90,vi/2,xi/2),ri===lf&&(45<ui&&135>ui||225<ui&&315>ui)&&bi.rotate(-ui,vi/2,xi/2);var wi=Bt.allocAt(0,0,vi,xi),ki=pt.alloc();ki.xi(wi,oi),bi.Ga(ki);var Mi=-ki.x,Si=-ki.y,Pi=pt.alloc();Pi.assign(si),isNaN(Pi.x)&&(Pi.x=vi/2+3),isNaN(Pi.y)&&(Pi.y=-(xi/2+3)),Pi.rotate(ui);var Ni=new Bt(hi+=Pi.x+Mi,li+=Pi.y+Si,mi.width,mi.height),Ci=new Bt(mi.x,mi.y,mi.width,mi.height),Ti=new Bt(yi.x,yi.y,yi.width,yi.height);gi.Sz=ci,gi.lineCount=ni.lineCount,gi.lines=[ni.Cb,ni.Ih,ni.df,ni.Le,ni.Qc,ni.Qb,ni.ze],gi.actualBounds=Ni,gi.measuredBounds=Ci,gi.naturalBounds=Ti,0===pi?ai.assign(Ni):ai.ed(Ni),pt.free(Pi),pt.free(ki),Bt.free(wi),Yi.free(bi)}null!==ti.graduatedBounds&&ti.graduatedBounds.push(ai),Gt(ei,ai.x,ai.y,ai.width,ai.height)}ea(jt,!1)}}},Nh.prototype.arrange=function(t,i,e){if(null!==t.graduatedBounds){var n=t.Pb(),o=t.graduatedMarks;if(null!==o){var r=t.graduatedBounds,s=0,a=r[s];s++,null!==n&&n.arrange(a.x-e.x,a.y-e.y,a.width,a.height);for(var h=i.length,l=0;l<h;l++){var u=i[l];a=o[l],u.visible&&u!==n&&0!==a.length&&(a=r[s],s++,u.arrange(a.x-e.x,a.y-e.y,a.width,a.height))}t.graduatedBounds=null}}},Nh.prototype.gc=function(t,i,e){var n=e.$i;e.$i=!0;var o=t.naturalBounds,r=o.width,s=o.height;o=i instanceof va,i.save(),i.beginPath(),i.rect(-1,-1,r+1,s+1),i.clip(),i.Se(),(r=t.Pb()).gc(i,e),0>=(s=t.Df()*e.scale)&&(s=1);for(var a=r.actualBounds,h=t.O.s,l=t.graduatedMarks,u=h.length,c=0;c<u;c++){var f=h[c],d=l[c],p=d.length;if(f.visible&&f!==r&&0!==d.length)if(f instanceof pl){if(!(2>t.graduatedTickUnit*f.interval*r.geometry.flattenedTotalLength/t.graduatedRange*s&&null===f.graduatedSkip)){var g=f.measuredBounds,m=f.strokeWidth*f.scale,y=f.alignmentFocus;y.Mc()&&(y=ii);for(var v=0;v<p;v++){var x=d[v].$l,b=d[v].angle,w=y,k=f.Ab;k.reset(),k.translate(x.x+a.x,x.y+a.y),k.rotate(b+f.angle,0,0),k.translate(-g.width*w.x+w.offsetX+m/2,-g.height*w.y+w.offsetY+m/2),k.scale(f.scale,f.scale),Qs(f,!1),f.wh.set(f.Ab),f.Kk=f.scale,ta(f,!1),f.gc(i,e),o&&(t.svg.appendChild(f.svg),f.svg=null),f.Ab.reset()}}}else if(f instanceof Nl)for(null===t.temporaryTextBlock&&(t.temporaryTextBlock=new Nl),Tl(g=t.temporaryTextBlock,f),m=0;m<p;m++)(y=d[m]).actualBounds&&y.measuredBounds&&y.naturalBounds&&(g.ec=y.text||"",g.Kb=y.Sz||0,g.Gc=y.lineCount||0,void 0!==(v=y.lines)&&(g.Cb=v[0],g.Ih=v[1],g.df=v[2],g.Le=v[3],g.Qc=v[4],g.Qb=v[5],g.ze=v[6]),y.naturalBounds&&(g.dc=y.naturalBounds),y.actualBounds&&(v=y.actualBounds,g.arrange(v.x,v.y,v.width,v.height)),v=y.actualBounds,g.arrange(v.x,v.y,v.width,v.height),x=y.measuredBounds,y=y.naturalBounds,(b=g.Ab).reset(),b.translate(v.x+a.x,v.y+a.y),b.translate(-x.x,-x.y),g.no(b,y.x,y.y,y.width,y.height),Qs(g,!1),g.wh.set(g.Ab),g.Kk=g.scale,ta(g,!1),g.Ng=f.part,g.Me=f.panel,g.gc(i,e),g.Me=null,g.Ng=null,o&&(t.svg.appendChild(g.svg),g.svg=null))}e.$i=n,i.restore(),i.Vc(!0)},c(Ch,Ds),Ch.prototype.cloneProtected=function(t){Ds.prototype.cloneProtected.call(this,t),t.na=this.na,t.yb=this.yb.J(),t.Tm=this.Tm.J(),t.Uf=this.Uf,t.$e=this.$e,t.jg.assign(this.jg),null!==this.T&&(t.T=this.T.copy(t)),t.xo=this.xo,t.jn=this.jn.J(),t.kn=this.kn.J(),null!==this.ra&&(t.ra=this.ra.copy()),t.ub=this.ub,t.zn=this.zn,t.Hh=this.Hh},Ch.prototype.Af=function(t){Ds.prototype.Af.call(this,t),t.O=this.O;for(var i=t.O.s,e=i.length,n=0;n<e;n++)i[n].Me=t;t.$g=null},Ch.prototype.copy=function(){var t=Ds.prototype.copy.call(this);if(null!==t){for(var i=this.O.s,e=i.length,n=0;n<e;n++){var o=i[n].copy();o.wi(t),o.Ng=null;var r=t.O,s=r.count;if(r.Gb(s,o),null!==(r=t.part)){r.Rh=null,null!==o.portId&&r instanceof Ju&&(r.Te=!0);var a=t.diagram;null!==a&&a.undoManager.isUndoingRedoing||r.cb(de,"elements",t,null,o,null,s)}}return t}return null},(i=Ch.prototype).toString=function(){return"Panel("+this.type.name+")#"+it(this)},i.Pn=function(t){Ds.prototype.Pn.call(this,t);for(var i=this.O.s,e=i.length,n=0;n<e;n++)i[n].Pn(t)},i.hh=function(t,i){if(this.na===Ch.Grid)t.yc(),this.na.gc(this,t,i);else if(this.na===Ch.Graduated)t.yc(),this.na.gc(this,t,i);else{if(this.na===Ch.Table)if(t.yc(),t instanceof va){var e=t.yd;t.yd=Ta(t,"gojs-ts"),Th(this,t),t.nh.pop(),t.yd=e}else Th(this,t);(e=this.isClipping&&this.na===Ch.Spot)&&t.save();for(var n=this.Pb(),o=this.O.s,r=o.length,s=0;s<r;s++){var a=o[s];e&&a===n&&(t.clipInsteadOfFill=!0),a.gc(t,i),e&&a===n&&(t.clipInsteadOfFill=!1)}e&&(t.restore(),t.Vc(!0))}},i.lv=function(){for(var t=this.O.s,i=t.length,e=0;e<i;e++)t[e].lv();this.Uc=!0},i.kk=function(t,i,e){if(!Ds.prototype.kk.call(this,t,i,e))return!1;if(this.type===Ch.Table)null!==(e=0!==(e=this.svg.getElementsByClassName("gojs-ts")).length?e[0]:null)&&(e.innerHTML=""),t.yd=e,Th(this,t),t.yd=null;else if(this.na===Ch.Grid||this.na===Ch.Graduated)return this.svg.innerHTML="",this.svg.remove(),!1;for(var n=(e=this.O.s).length,o=0;o<n;o++)e[o].gc(t,i);return!0},i.nk=function(){return!0},i.$o=function(t,i,e,n){if(!this.isClipping)if(this.Dd()&&null!==t.bk){t=t.bk,i=this.O.s;for(var o=0,r=0,s=0;s<i.length;s++)if(i[s].Ed()){var a=i[s].actualBounds;o=0===s?a.x:Math.min(a.x,o),r=0===s?a.y:Math.min(a.y,r)}n.setAttributeNS(null,"clip-path","path('M "+(t.x-e.x-o)+","+(t.y-e.y-r)+" l "+t.width+" 0 l 0 "+t.height+" l -"+t.width+" 0 z')")}else Ds.prototype.$o.call(this,t,i,e,n)},i.Sj=function(t,i,e,n,o){var r=this.se(),s=this.transform,a=1/(s.m11*s.m22-s.m12*s.m21),h=s.m22*a,l=-s.m12*a,u=-s.m21*a,c=s.m11*a,f=a*(s.m21*s.dy-s.m22*s.dx),d=a*(s.m12*s.dx-s.m11*s.dy);if(null!==this.areaBackground)return s=this.actualBounds,Xi.Ff(s.left,s.top,s.right,s.bottom,t,i,e,n,o);if(null!==this.background)return r=t*h+i*u+f,a=t*l+i*c+d,t=e*h+n*u+f,h=e*l+n*c+d,o.h(0,0),e=this.naturalBounds,r=Xi.Ff(0,0,e.width,e.height,r,a,t,h,o),o.transform(s),r;r||(h=1,u=l=0,c=1,d=f=0),a=t*h+i*u+f,t=t*l+i*c+d,h=e*h+n*u+f,e=e*l+n*c+d,o.h(h,e),n=(h-a)*(h-a)+(e-t)*(e-t),l=!1,d=(c=this.O.s).length,u=pt.alloc(),f=null,i=1/0;var p=null,g=this.isClipping&&this.na===Ch.Spot;g&&(p=pt.alloc(),(l=(f=this.Pb()).Sj(a,t,h,e,p))&&(i=(a-p.x)*(a-p.x)+(t-p.y)*(t-p.y)));for(var m=0;m<d;m++){var y=c[m];y.visible&&y!==f&&y.Sj(a,t,h,e,u)&&(l=!0,(y=(a-u.x)*(a-u.x)+(t-u.y)*(t-u.y))<n&&(n=y,o.set(u)))}return g&&(i>n&&o.set(p),pt.free(p)),pt.free(u),r&&o.transform(s),l},i.Gj=function(){for(var t=this.O.s,i=t.length,e=0;e<i;e++)t[e].Gj();Ds.prototype.Gj.call(this)},i.v=function(t){if(!ia(this)){Ds.prototype.v.call(this,t),t=null,this.na!==Ch.Auto&&this.na!==Ch.Link||(t=this.Pb());for(var i=this.O.s,e=i.length,n=0;n<e;n++){var o=i[n];if((o===t||o.isPanelMain)&&o.v(!0),!o.desiredSize.w()){var r=Ks(o,!1);(o instanceof bc||o instanceof Ch||o instanceof Nl||r!==fs)&&o.v(!0)}}}},i.Uj=function(){if(!ia(this)){ea(this,!0),oa(this,!0);for(var t=this.O.s,i=t.length,e=0;e<i;e++)t[e].Uj()}},i.Uk=function(){if(0!=(2048&this.l)==!1){Qs(this,!0),ta(this,!0);for(var t=this.O.s,i=t.length,e=0;e<i;e++)t[e].Wu()}},i.Wu=function(){ta(this,!0);for(var t=this.O.s,i=t.length,e=0;e<i;e++)t[e].Wu()},i.Wl=function(t,i,e,n){var o=this.jg;o.h(0,0,0,0);var r=this.desiredSize,s=this.minSize;void 0===e&&(e=s.width,n=s.height),e=Math.max(e,s.width),n=Math.max(n,s.height);var a=this.maxSize;isNaN(r.width)||(t=Math.min(r.width,a.width)),isNaN(r.height)||(i=Math.min(r.height,a.height)),t=Math.max(e,t),i=Math.max(n,i);var h=this.yb;t=Math.max(t-h.left-h.right,0),i=Math.max(i-h.top-h.bottom,0);var l=this.O.s;0!==l.length&&this.na.measure(this,t,i,l,o,e,n),t=o.width+h.left+h.right,h=o.height+h.top+h.bottom,isFinite(r.width)&&(t=r.width),isFinite(r.height)&&(h=r.height),t=Math.min(a.width,t),h=Math.min(a.height,h),t=Math.max(s.width,t),h=Math.max(s.height,h),Ot(o,t=Math.max(e,t),h=Math.max(n,h)),Ot(this.naturalBounds,t,h),this.Ge(0,0,t,h)},i.Pb=function(){if(null===this.$g){var t=this.O.s,i=t.length;if(0===i)return null;for(var e=0;e<i;e++){var n=t[e];if(!0===n.isPanelMain)return this.$g=n}this.$g=t[0]}return this.$g},i.eh=function(t,i,e,n){var o=this.O.s;if(this.actualBounds.h(t,i,e,n),0!==o.length){if(!this.desiredSize.w()){t=Ks(this,!0);var r=this.measuredBounds;i=r.width,r=r.height;var s=this.Kg,a=s.left+s.right;switch(s=s.top+s.bottom,i===e&&r===n&&(t=fs),t){case fs:(i>e||r>n)&&(this.v(),this.measure(i>e?e:i,r>n?n:r,0,0));break;case cs:this.v(!0),this.measure(e+a,n+s,0,0);break;case ps:this.v(!0),this.measure(e+a,r+s,0,0);break;case gs:this.v(!0),this.measure(i+a,n+s,0,0)}}this.na.arrange(this,o,this.jg)}},i.gh=function(t){var i=this.naturalBounds,e=Dh(this);if(Xt(0,0,i.width,i.height,t.x,t.y)){for(var n=(i=this.O.s).length,o=pt.allocAt(0,0);n--;){var r=i[n];if((r.visible||r===e)&&(vt(o.set(t),r.transform),r.ca(o)))return pt.free(o),!0}return pt.free(o),null!==this.Ma||null!==this.areaBackground}return!1},i.ks=function(t){if(this.bindingId===t)return this;for(var i=this.O.s,e=i.length,n=0;n<e;n++){var o=i[n].ks(t);if(null!==o)return o}return null},i.qm=function(t,i){if(i(this,t),t instanceof Ch)for(var e=(t=t.O.s).length,n=0;n<e;n++)this.qm(t[n],i)},i.Nl=function(t){return Rh(this,this,t)},i.fb=function(t){if(this.name===t)return this;var i=this.O.s,e=i.length;null===this.Hh&&null===this.itemTemplateMap||(e=Jh(this));for(var n=0;n<e;n++){var o=i[n];if(o instanceof Ch){var r=o.fb(t);if(null!==r)return r}if(o.name===t)return o}return null},i.se=function(){return!(this.type===Ch.TableRow||this.type===Ch.TableColumn)},i.ic=function(t,i,e){if(!1===this.pickable)return null;if(void 0===i&&(i=null),void 0===e&&(e=null),na(this))return null;var n=this.naturalBounds,o=1/this.Df(),r=this.se(),s=r?t:vt(pt.allocAt(t.x,t.y),this.transform),a=this.diagram,h=10,l=5;if(null!==a&&(l=(h=a.Ql("extraTouchArea"))/2),Xt(-l*o,-l*o,n.width+h*o,n.height+h*o,s.x,s.y)){if(!this.isAtomic){var u=(o=this.O.s).length;if(a=pt.alloc(),l=(h=this.isClipping&&this.na===Ch.Spot)?this.Pb():null,h&&(l.se()?vt(a.set(t),l.transform):a.set(t),!l.ca(a)))return pt.free(a),r||pt.free(s),null;for(var c=Dh(this);u--;){var f=o[u];if((f.visible||f===c)&&(f.se()?vt(a.set(t),f.transform):a.set(t),!h||f!==l)){var d=null;if(f instanceof Ch?d=f.ic(a,i,e):!0===f.pickable&&f.ca(a)&&(d=f),null!==d&&(null!==i&&(d=i(d)),null!==d&&(null===e||e(d))))return pt.free(a),r||pt.free(s),d}}pt.free(a)}return null===this.background&&null===this.areaBackground?(r||pt.free(s),null):(t=Xt(0,0,n.width,n.height,s.x,s.y)?this:null,r||pt.free(s),t)}return r||pt.free(s),null},i.ji=function(t,i,e,n){if(!1===this.pickable)return!1;void 0===i&&(i=null),void 0===e&&(e=null);var o=this.naturalBounds,r=this.se(),s=r?t:vt(pt.allocAt(t.x,t.y),this.transform);if(o=Xt(0,0,o.width,o.height,s.x,s.y),Vh(this)||o){if(!this.isAtomic){for(var a=this.O.s,h=a.length,l=pt.alloc(),u=Dh(this);h--;){var c=a[h];if(c.visible||c===u){c.se()?vt(l.set(t),c.transform):l.set(t);var f=c;(null!==(c=c instanceof Ch?c:null)?c.ji(l,i,e,n):f.ca(l))&&!1!==f.pickable&&(null!==i&&(f=i(f)),null===f||null!==e&&!e(f)||n.add(f))}}pt.free(l)}return r||pt.free(s),o&&(null!==this.background||null!==this.areaBackground)}return r||pt.free(s),!1},i.Cf=function(t,i,e,n,o,r){if(!1===this.pickable)return!1;void 0===i&&(i=null),void 0===e&&(e=null);var s=r;if(void 0===r&&(s=Yi.alloc()).reset(),s.multiply(this.transform),this.fh(t,s))return Yh(this,i,e,o),void 0===r&&Yi.free(s),!0;if(this.Yc(t,s)){if(!this.isAtomic)for(var a=Dh(this),h=this.O.s,l=h.length;l--;){var u=h[l];if(u.visible||u===a){var c=u.actualBounds,f=this.naturalBounds;c.x>f.width||c.y>f.height||0>c.x+c.width||0>c.y+c.height||(c=u,u=u instanceof Ch?u:null,(f=Yi.alloc()).set(s),(null!==u?u.Cf(t,i,e,n,o,f):Is(c,t,n,f))&&(null!==i&&(c=i(c)),null===c||null!==e&&!e(c)||o.add(c)),Yi.free(f))}}return void 0===r&&Yi.free(s),n}return void 0===r&&Yi.free(s),!1},i.og=function(t,i,e,n,o,r){if(!1===this.pickable)return!1;void 0===e&&(e=null),void 0===n&&(n=null);var s=this.naturalBounds,a=this.se(),h=a?t:vt(pt.allocAt(t.x,t.y),this.transform),l=a?i:vt(pt.allocAt(i.x,i.y),this.transform),u=h.Bf(l),c=0<h.x&&h.x<s.width&&0<h.y&&h.y<s.height||xt(h.x,h.y,0,0,0,s.height)<=u||xt(h.x,h.y,0,s.height,s.width,s.height)<=u||xt(h.x,h.y,s.width,s.height,s.width,0)<=u||xt(h.x,h.y,s.width,0,0,0)<=u;if(s=h.zd(0,0)<=u&&h.zd(0,s.height)<=u&&h.zd(s.width,0)<=u&&h.zd(s.width,s.height)<=u,a||(pt.free(h),pt.free(l)),c){if(!this.isAtomic){h=pt.alloc(),l=pt.alloc(),u=Dh(this);for(var f=this.O.s,d=f.length;d--;){var p=f[d];if(p.visible||p===u){var g=p.actualBounds,m=this.naturalBounds;a&&(g.x>m.width||g.y>m.height||0>g.x+g.width||0>g.y+g.height)||(p.se()?(g=p.transform,vt(h.set(t),g),vt(l.set(i),g)):(h.set(t),l.set(i)),g=p,(null!==(p=p instanceof Ch?p:null)?p.og(h,l,e,n,o,r):g.tx(h,l,o))&&(null!==e&&(g=e(g)),null===g||null!==n&&!n(g)||r.add(g)))}}pt.free(h),pt.free(l)}return o?c:s}return!1},i.add=function(t){for(var i=[],e=0;e<arguments.length;++e)i[e]=arguments[e];for(e=0;e<i.length;e++)this.Gb(this.O.count,i[e]);return this},i.M=function(t){return this.O.M(t)},i.Gb=function(t,i){i instanceof ku&&w("Cannot add a Part to a Panel: "+i+"; use a Panel instead"),(this===i||this.rg(i))&&(this===i&&w("Cannot make a Panel contain itself: "+this.toString()),w("Cannot make a Panel indirectly contain itself: "+this.toString()+" already contains "+i.toString()));var e=i.panel;if(null!==e&&e!==this&&w("Cannot add a GraphObject that already belongs to another Panel to this Panel: "+i.toString()+", already contained by "+e.toString()+", cannot be shared by this Panel: "+this.toString()),this.na!==Ch.Grid||i instanceof pl||w("Can only add Shapes to a Grid Panel, not: "+i),this.na!==Ch.Graduated||i instanceof pl||i instanceof Nl||w("Can only add Shapes or TextBlocks to a Graduated Panel, not: "+i),i.wi(this),i.Ng=null,null!==this.itemArray){var n=i.data;null!==n&&"object"==typeof n&&(null===this.ge&&(this.ge=new dt),this.ge.add(n,i))}var o=this.O;if(n=-1,e===this){for(var r=-1,s=this.O.s,a=s.length,h=0;h<a;h++)if(s[h]===i){r=h;break}if(-1!==r){if(r===t||r+1>=o.count&&t>=o.count)return;o.mb(r),n=r}else w("element "+i.toString()+" has panel "+e.toString()+" but is not contained by it.")}(0>t||t>o.count)&&(t=o.count),o.Gb(t,i),(0===t||i.isPanelMain)&&(this.$g=null),ia(this)||this.v(),i.v(!1),(null!==i.portId||i instanceof Ch&&!0===i.Te)&&(this.Te=!0),this.graduatedIntervals=null,this.If()||il(this,i,!1),null!==(e=this.part)&&(e.Rh=null,e.ag=NaN,this.Te&&e instanceof Ju&&(e.Te=!0),e.Te&&e instanceof Ju&&(e.wc=null),null!==(o=this.diagram)&&o.undoManager.isUndoingRedoing||(-1!==n&&e.cb(pe,"elements",this,i,null,n,null),e.cb(de,"elements",this,null,i,null,t)))},i.remove=function(t){for(var i=this.O.s,e=i.length,n=-1,o=0;o<e;o++)if(i[o]===t){n=o;break}-1!==n&&this.pc(n,!0)},i.mb=function(t){0<=t&&this.pc(t,!0)},i.pc=function(t,i){var e=this.O,n=e.M(t);if(n.Ng=null,n.wi(null),null!==this.ge){var o=n.data;"object"==typeof o&&this.ge.remove(o)}e.mb(t),ea(this,!1),this.v(),this.$g===n&&(this.$g=null),this.graduatedIntervals=null;var r=this.part;null!==r&&(r.Rh=null,r.ag=NaN,r.Wb(),r instanceof Ju&&(n instanceof Ch?n.qm(n,(function(t,e){ac(r,e,i)})):ac(r,n,i)),null!==(e=this.diagram)&&e.undoManager.isUndoingRedoing||r.cb(pe,"elements",this,n,null,t,null))},i.Fb=function(t){0>t&&M(t,">= 0",Ch,"getRowDefinition:idx"),t=Math.round(t);var i=this.rowDefs;if(void 0===i[t]){var e=new hl;e.wi(this),e.isRow=!0,e.index=t,i[t]=e,this.cb(de,"rowdefs",this,null,e,null,t)}return i[t]},i.oA=function(t){if(0>t&&M(t,">= 0",Ch,"removeRowDefinition:idx"),0!==this.rowCount){t=Math.round(t);var i=this.rowDefs,e=i[t];if(e){i[t]=void 0;for(var n=i.length-1;0<=n&&void 0===i[n--];)i.length--;this.cb(pe,"rowdefs",this,e,null,t,null),this.v()}}},i.Eb=function(t){0>t&&M(t,">= 0",Ch,"getColumnDefinition:idx"),t=Math.round(t);var i=this.colDefs;if(void 0===i[t]){var e=new hl;e.wi(this),e.isRow=!1,e.index=t,i[t]=e,this.cb(de,"coldefs",this,null,e,null,t)}return i[t]},i.jA=function(t){if(0>t&&M(t,">= 0",Ch,"removeColumnDefinition:idx"),0!==this.columnCount){t=Math.round(t);var i=this.colDefs,e=i[t];if(e){i[t]=void 0;for(var n=i.length-1;0<=n&&void 0===i[n--];)i.length--;this.cb(pe,"coldefs",this,e,null,t,null),this.v()}}},i.Gy=function(t){var i=null;return t.isRow?i=this.Fb(t.index):t.isRow||(i=this.Eb(t.index)),i&&ll(i,t),this},i.Hy=function(t,i){return(t=this.Fb(t))&&ll(t,new hl(i)),this},i.By=function(t,i){return(t=this.Eb(t))&&ll(t,new hl(i)),this},i.nz=function(t){if(0>t||this.type!==Ch.Table||0===this.rowCount)return-1;for(var i=0,e=this.rowDefs,n=e.length,o=this.topIndex;o<n;o++){var r=e[o];if(void 0!==r&&t<(i+=r.total))break}return o},i.fz=function(t){if(0>t||this.type!==Ch.Table||0===this.columnCount)return-1;for(var i=0,e=this.colDefs,n=e.length,o=this.leftIndex;o<n;o++){var r=e[o];if(void 0!==r&&t<(i+=r.total))break}return o},i.Fz=function(t,i){if(void 0===i&&(i=new pt(NaN,NaN)),this.type!==Ch.Graduated)return i.h(NaN,NaN),i;t=Math.min(Math.max(t,this.graduatedMin),this.graduatedMax);var e=this.Pb();return e.geometry.Pu((t-this.graduatedMin)/this.graduatedRange,i),e.transform.Ga(i)},i.Gz=function(t){if(this.type!==Ch.Graduated)return NaN;var i=this.Pb();return i.transform.Cd(t),i.geometry.xx(t)*this.graduatedRange+this.graduatedMin},i.Uy=function(t){void 0===t&&(t=!1);var i=this.copy();return Ih(i,(function(t){t instanceof Ch&&(t.allBindings=null,t.ub=null);var i=t.localBindings;null!==i&&(t.localBindings=null,i.each((function(i){t.bind(i.copy())}))),null!==(i=t.animationTriggers)&&(t.animationTriggers=null,i.each((function(i){t.Jv(i.value.copy())})))})),t&&Wh(i),i},i.La=function(t){var i=this.allBindings;if(null!==i)for(void 0===t&&(t=""),i=i.iterator;i.next();){var e=i.value,n=e.sourceProperty;if((""===t||""===n||n===t)&&(n=e.targetProperty,null!==e.converter||""!==n)){n=this.data;var o=e.sourceName;if(null!==o){if(""===o)n=this;else if("/"===o)n=this;else if("."===o)n=this;else if(".."===o)n=this;else if(null===(n=this.fb(o)))continue}else if(e.isToModel){if(null===(n=this.diagram))continue;n=n.model.modelData}var r=this,s=e.Ai;if(-1!==s){if(null===(r=this.ks(s)))continue}else null!==e.xd&&(r=e.xd);if("/"===o?n=r.part:"."===o?n=r:".."===o&&(n=r.panel),0!==(o=e.to)){if(!(r instanceof Ch))continue;1===o?r=r.Eb(e.wl):2===o&&(r=r.Fb(e.wl))}void 0!==r&&e.Mv(r,n)}}},i.sx=function(t){return null==t||null===this.ge?null:this.ge.I(t)},i.mv=function(){for(var t=Jh(this);this.O.length>t;)this.pc(this.O.length-1,!1);Zh(this,this.itemArray)},f.Object.defineProperties(Ch.prototype,{type:{get:function(){return this.na},set:function(t){var i=this.na;i!==t&&(this.na=t,this.isAtomic=this.na===Ch.Grid,this.v(),this.g("type",i,t))}},elements:{get:function(){return this.O.iterator}},naturalBounds:{get:function(){return this.dc}},padding:{get:function(){return this.yb},set:function(t){"number"==typeof t?(0>t&&M(t,">= 0",Ch,"padding"),t=new Wt(t)):(0>t.left&&M(t.left,">= 0",Ch,"padding:value.left"),0>t.right&&M(t.right,">= 0",Ch,"padding:value.right"),0>t.top&&M(t.top,">= 0",Ch,"padding:value.top"),0>t.bottom&&M(t.bottom,">= 0",Ch,"padding:value.bottom"));var i=this.yb;i.D(t)||(this.yb=t=t.J(),this.v(),this.g("padding",i,t))}},defaultAlignment:{get:function(){return this.Tm},set:function(t){var i=this.Tm;i.D(t)||(this.Tm=t=t.J(),this.v(),this.g("defaultAlignment",i,t))}},defaultStretch:{get:function(){return this.Uf},set:function(t){var i=this.Uf;i!==t&&(this.Uf=t,this.v(),this.g("defaultStretch",i,t))}},defaultSeparatorPadding:{get:function(){return null!==this.T?this.T.Qp:_t},set:function(t){"number"==typeof t&&(t=new Wt(t));var i=this.defaultSeparatorPadding;i.D(t)||(t=t.J(),null===this.T&&(this.T=new al),this.T.Qp=t,this.v(),this.g("defaultSeparatorPadding",i,t))}},defaultRowSeparatorStroke:{get:function(){return null!==this.T?this.T.ia:null},set:function(t){var i=this.defaultRowSeparatorStroke;i!==t&&(null===t||"string"==typeof t||t instanceof Ia)&&(t instanceof Ia&&t.freeze(),null===this.T&&(this.T=new al),this.T.ia=t,this.N(),this.g("defaultRowSeparatorStroke",i,t))}},defaultRowSeparatorStrokeWidth:{get:function(){return null!==this.T?this.T.Ha:1},set:function(t){var i=this.defaultRowSeparatorStrokeWidth;i!==t&&isFinite(t)&&0<=t&&(null===this.T&&(this.T=new al),this.T.Ha=t,this.v(),this.g("defaultRowSeparatorStrokeWidth",i,t))}},defaultRowSeparatorDashArray:{get:function(){return null!==this.T?this.T.V:null},set:function(t){var i=this.defaultRowSeparatorDashArray;if(i!==t){if(null!==t){for(var e=t.length,n=0,o=0;o<e;o++){var r=t[o];"number"==typeof r&&0<=r&&isFinite(r)||w("defaultRowSeparatorDashArray value "+r+" at index "+o+" must be a positive number or zero."),n+=r}if(0===n){if(null===i)return;t=null}}null===this.T&&(this.T=new al),this.T.V=t,this.N(),this.g("defaultRowSeparatorDashArray",i,t)}}},defaultColumnSeparatorStroke:{get:function(){return null!==this.T?this.T.u:null},set:function(t){var i=this.defaultColumnSeparatorStroke;i!==t&&(null===t||"string"==typeof t||t instanceof Ia)&&(t instanceof Ia&&t.freeze(),null===this.T&&(this.T=new al),this.T.u=t,this.N(),this.g("defaultColumnSeparatorStroke",i,t))}},defaultColumnSeparatorStrokeWidth:{get:function(){return null!==this.T?this.T.F:1},set:function(t){var i=this.defaultColumnSeparatorStrokeWidth;i!==t&&isFinite(t)&&0<=t&&(null===this.T&&(this.T=new al),this.T.F=t,this.v(),this.g("defaultColumnSeparatorStrokeWidth",i,t))}},defaultColumnSeparatorDashArray:{get:function(){return null!==this.T?this.T.o:null},set:function(t){var i=this.defaultColumnSeparatorDashArray;if(i!==t){if(null!==t){for(var e=t.length,n=0,o=0;o<e;o++){var r=t[o];"number"==typeof r&&0<=r&&isFinite(r)||w("defaultColumnSeparatorDashArray value "+r+" at index "+o+" must be a positive number or zero."),n+=r}if(0===n){if(null===i)return;t=null}}null===this.T&&(this.T=new al),this.T.o=t,this.N(),this.g("defaultColumnSeparatorDashArray",i,t)}}},inRowsCols:{get:function(){return null!==this.T?this.T.nb:null},set:function(t){null===this.T&&(this.T=new al),this.T.nb=t}},viewboxStretch:{get:function(){return this.xo},set:function(t){var i=this.xo;i!==t&&(this.xo=t,this.v(),this.g("viewboxStretch",i,t))}},gridCellSize:{get:function(){return this.jn},set:function(t){var i=this.jn;if(!i.D(t)){t.w()&&0!==t.width&&0!==t.height||w("Invalid Panel.gridCellSize: "+t),this.jn=t.J();var e=this.diagram;null!==e&&this===e.grid&&yr(e),this.N(),this.g("gridCellSize",i,t)}}},gridOrigin:{get:function(){return this.kn},set:function(t){var i=this.kn;if(!i.D(t)){t.w()||w("Invalid Panel.gridOrigin: "+t),this.kn=t.J();var e=this.diagram;null!==e&&this===e.grid&&yr(e),this.N(),this.g("gridOrigin",i,t)}}},graduatedMin:{get:function(){return null!==this.ra?this.ra.lq:0},set:function(t){var i=this.graduatedMin;i!==t&&(null===this.ra&&(this.ra=new sl),this.ra.lq=t,this.v(),this.g("graduatedMin",i,t),_s(this)&&(null!==(t=this.part)&&Os(this,t,"graduatedRange")))}},graduatedMax:{get:function(){return null!==this.ra?this.ra.F:100},set:function(t){var i=this.graduatedMax;i!==t&&(null===this.ra&&(this.ra=new sl),this.ra.F=t,this.v(),this.g("graduatedMax",i,t),_s(this)&&(null!==(t=this.part)&&Os(this,t,"graduatedRange")))}},graduatedRange:{get:function(){return this.graduatedMax-this.graduatedMin}},graduatedTickUnit:{get:function(){return null!==this.ra?this.ra.ia:10},set:function(t){var i=this.graduatedTickUnit;i!==t&&0<t&&(null===this.ra&&(this.ra=new sl),this.ra.ia=t,this.v(),this.g("graduatedTickUnit",i,t))}},graduatedTickBase:{get:function(){return null!==this.ra?this.ra.V:0},set:function(t){var i=this.graduatedTickBase;i!==t&&(null===this.ra&&(this.ra=new sl),this.ra.V=t,this.v(),this.g("graduatedTickBase",i,t))}},graduatedMarks:{get:function(){return null!==this.ra?this.ra.u:null},set:function(t){null!==this.ra?this.ra.u=t:null!==t&&(this.ra=new sl,this.ra.u=t)}},graduatedBounds:{get:function(){return null!==this.ra?this.ra.j:null},set:function(t){null!==this.ra?this.ra.j=t:null!==t&&(this.ra=new sl,this.ra.j=t)}},graduatedIntervals:{get:function(){return null!==this.ra?this.ra.o:null},set:function(t){null!==this.ra?this.ra.o=t:null!==t&&(this.ra=new sl,this.ra.o=t)}},temporaryTextBlock:{get:function(){return null!==this.ra?this.ra.Zh:null},set:function(t){null!==this.ra?this.ra.Zh=t:null!==t&&(this.ra=new sl,this.ra.Zh=t)}},panelLayoutState:{get:function(){return this.F},set:function(t){this.F=t}},Te:{get:function(){return 0!=(8388608&this.l)},set:function(t){0!=(8388608&this.l)!==t&&(this.l^=8388608)}},rowDefs:{get:function(){return null===this.T&&(this.T=new al),this.T.Pc}},rowCount:{get:function(){return null===this.T?0:this.rowDefs.length}},colDefs:{get:function(){return null===this.T&&(this.T=new al),this.T.Oc}},columnCount:{get:function(){return null===this.T?0:this.colDefs.length}},rowSizing:{get:function(){return null!==this.T?this.T.ob:dl},set:function(t){var i=this.rowSizing;i!==t&&(null===this.T&&(this.T=new al),this.T.ob=t,this.v(),this.g("rowSizing",i,t))}},columnSizing:{get:function(){return null!==this.T?this.T.j:dl},set:function(t){var i=this.columnSizing;i!==t&&(null===this.T&&(this.T=new al),this.T.j=t,this.v(),this.g("columnSizing",i,t))}},topIndex:{get:function(){return null!==this.T?this.T.Hb:0},set:function(t){var i=this.topIndex;i!==t&&((!isFinite(t)||0>t)&&w("Panel.topIndex must be greater than zero and a real number, not: "+t),null===this.T&&(this.T=new al),this.T.Hb=t,this.v(),this.g("topIndex",i,t))}},leftIndex:{get:function(){return null!==this.T?this.T.hb:0},set:function(t){var i=this.leftIndex;i!==t&&((!isFinite(t)||0>t)&&w("Panel.leftIndex must be greater than zero and a real number, not: "+t),null===this.T&&(this.T=new al),this.T.hb=t,this.v(),this.g("leftIndex",i,t))}},data:{get:function(){return this.ub},set:function(t){var i=this.ub;if(i!==t){var e=this instanceof ku&&!(this instanceof Ku);Wh(this),this.ub=t;var n=this.diagram;null!==n&&(e?(e=n.partManager,this instanceof wc?(null!==i&&e.bf.remove(i),null!==t&&e.bf.add(t,this)):this instanceof ku&&(null!==i&&e.cf.remove(i),null!==t&&e.cf.add(t,this))):null!==(e=this.panel)&&null!==e.ge&&(null!==i&&e.ge.remove(i),null!==t&&e.ge.add(t,this))),this.g("data",i,t),null!==n&&n.undoManager.isUndoingRedoing||null!==t&&this.La()}}},itemIndex:{get:function(){return this.zn},set:function(t){var i=this.zn;i!==t&&(this.zn=t,this.g("itemIndex",i,t))}},allBindings:{get:function(){return null!==this.A?this.A.nb:null},set:function(t){this.localBindings!==t&&(null===this.A&&(this.A=new fa),this.A.nb=t)}},itemArray:{get:function(){return this.Hh},set:function(t){var i=this.Hh;if(i!==t||null!==t&&function(t,i){for(var e=(t=t.O.s).length,n=i.length,o=0,r=null;o<e&&!((r=t[o])instanceof Ch&&null!==r.data);)r=t[++o];if(e-o!==n)return!0;if(null===r)return 0<n;for(var s=0;o<e&&s<n;){if(!((r=t[o])instanceof Ch)||r.data!==i[s])return!0;o++,s++}return!1}(this,t)){var e=this.diagram;i!==t&&(null!==e&&null!==i&&rd(e.partManager,this,e),this.Hh=t,null!==e&&null!==t&&od(e.partManager,this)),this.g("itemArray",i,t),null!==e&&e.undoManager.isUndoingRedoing||Zh(this,t)}}},itemTemplate:{get:function(){return null===this.itemTemplateMap?null:this.itemTemplateMap.I("")},set:function(t){if(null===this.itemTemplateMap){if(null===t)return;this.itemTemplateMap=new dt}var i=this.itemTemplateMap.I("");i!==t&&((t instanceof ku||t.isPanelMain)&&w("Panel.itemTemplate must not be a Part or be Panel.isPanelMain: "+t),this.itemTemplateMap.add("",t),this.g("itemTemplate",i,t),null!==(t=this.diagram)&&t.undoManager.isUndoingRedoing||this.mv())}},itemTemplateMap:{get:function(){return null!==this.A?this.A.Pc:null},set:function(t){var i=this.itemTemplateMap;if(i!==t){for(var e=t.iterator;e.next(););Bs(this),this.A.Pc=t,this.g("itemTemplateMap",i,t),null!==(t=this.diagram)&&t.undoManager.isUndoingRedoing||this.mv()}}},itemCategoryProperty:{get:function(){return null!==this.A?this.A.Oc:"category"},set:function(t){var i=this.itemCategoryProperty;i!==t&&(Bs(this),this.A.Oc=t,this.g("itemCategoryProperty",i,t))}},isAtomic:{get:function(){return 0!=(1048576&this.l)},set:function(t){var i=0!=(1048576&this.l);i!==t&&(this.l^=1048576,this.g("isAtomic",i,t))}},isClipping:{get:function(){return 0!=(2097152&this.l)},set:function(t){var i=0!=(2097152&this.l);i!==t&&(this.l^=2097152,this instanceof gc&&(this.tb=null),this.v(),this.g("isClipping",i,t))}},isOpposite:{get:function(){return 0!=(33554432&this.l)},set:function(t){var i=0!=(33554432&this.l);i!==t&&(this.l^=33554432,this.v(),this.g("isOpposite",i,t))}},isEnabled:{get:function(){return 0!=(4194304&this.l)},set:function(t){var i=0!=(4194304&this.l);if(i!==t){var e=null===this.panel||this.panel.If();this.l^=4194304,this.g("isEnabled",i,t),null!==(i=this.diagram)&&i.undoManager.isUndoingRedoing||e&&il(this,this,t)}}},alignmentFocusName:{get:function(){return this.$e},set:function(t){var i=this.$e;i!==t&&(this.$e=t,this.v(),this.g("alignmentFocusName",i,t))}}}),f.Object.defineProperties(Ch,{Position:{get:function(){return rl.I("Position")}},Horizontal:{get:function(){return rl.I("Horizontal")}},Vertical:{get:function(){return rl.I("Vertical")}},Spot:{get:function(){return rl.I("Spot")}},Auto:{get:function(){return rl.I("Auto")}},Table:{get:function(){return rl.I("Table")}},Viewbox:{get:function(){return rl.I("Viewbox")}},TableRow:{get:function(){return rl.I("TableRow")}},TableColumn:{get:function(){return rl.I("TableColumn")}},Link:{get:function(){return rl.I("Link")}},Grid:{get:function(){return rl.I("Grid")}},Graduated:{get:function(){return rl.I("Graduated")}}}),Ch.prototype.rebuildItemElements=Ch.prototype.mv,Ch.prototype.findItemPanelForData=Ch.prototype.sx,Ch.prototype.updateTargetBindings=Ch.prototype.La,Ch.prototype.copyTemplate=Ch.prototype.Uy,Ch.prototype.graduatedValueForPoint=Ch.prototype.Gz,Ch.prototype.graduatedPointForValue=Ch.prototype.Fz,Ch.prototype.findColumnForLocalX=Ch.prototype.fz,Ch.prototype.findRowForLocalY=Ch.prototype.nz,Ch.prototype.addColumnDefinition=Ch.prototype.By,Ch.prototype.addRowDefinition=Ch.prototype.Hy,Ch.prototype.addRowColumnDefinition=Ch.prototype.Gy,Ch.prototype.removeColumnDefinition=Ch.prototype.jA,Ch.prototype.getColumnDefinition=Ch.prototype.Eb,Ch.prototype.removeRowDefinition=Ch.prototype.oA,Ch.prototype.getRowDefinition=Ch.prototype.Fb,Ch.prototype.removeAt=Ch.prototype.mb,Ch.prototype.remove=Ch.prototype.remove,Ch.prototype.insertAt=Ch.prototype.Gb,Ch.prototype.elt=Ch.prototype.M,Ch.prototype.add=Ch.prototype.add,Ch.prototype.findObject=Ch.prototype.fb,Ch.prototype.findInVisualTree=Ch.prototype.Nl,Ch.prototype.walkVisualTreeFrom=Ch.prototype.qm,Ch.prototype.findMainElement=Ch.prototype.Pb;var nl=!1,ol=null,rl=new dt;function sl(){this.lq=0,this.F=100,this.ia=10,this.V=0,this.Zh=this.o=this.j=this.u=null}function al(){this.Pc=[],this.Oc=[],this.j=this.ob=dl,this.hb=this.Hb=0,this.Qp=_t,this.Ha=1,this.V=this.ia=null,this.F=1,this.nb=this.o=this.u=null}function hl(t){Q(this),this.Me=null,this.uq=!0,this.Za=0,this.Hc=NaN,this.jj=0,this.hj=1/0,this.Jb=Si,this.pa=this.oc=this.oa=0,this.be=null,this.oo=cl,this.hg=ms,this.lo=this.dg=null,this.mo=NaN,this.Ma=this.tj=null,this.Pm=!1,t&&(Object.assign(this,t),void 0!==t.column?(this.isRow=!1,this.index=t.column):void 0!==t.row&&(this.isRow=!0,this.index=t.row))}function ll(t,i){i.isRow?t.height=i.height:t.width=i.width,t.minimum=i.minimum,t.maximum=i.maximum,t.alignment=i.alignment,t.stretch=i.stretch,t.sizing=i.sizing,t.dg=null===i.separatorPadding?null:i.separatorPadding.J(),t.separatorStroke=i.separatorStroke,t.separatorStrokeWidth=i.separatorStrokeWidth,t.tj=null,i.separatorDashArray&&(t.tj=C(i.separatorDashArray)),t.background=i.background,t.coversSeparators=i.coversSeparators,t.be=i.be}function ul(t){if(t.sizing===cl){var i=t.Me;return t.isRow?i.rowSizing:i.columnSizing}return t.sizing}Ch.className="Panel",Ch.definePanelLayout=el,el("Position",new fh),el("Vertical",new ph),el("Auto",new yh),el("Link",new Sh),sl.prototype.copy=function(){var t=new sl;return t.lq=this.lq,t.F=this.F,t.ia=this.ia,t.V=this.V,t.u=this.u,t.j=this.j,t.o=this.o,t.Zh=this.Zh,t},sl.className="GradPanelSettings",al.prototype.copy=function(t){for(var i=new al,e=this.Pc,n=e.length,o=i.Pc,r=0;r<n;r++)if(void 0!==e[r]){var s=e[r].copy();s.wi(t),o[r]=s}for(n=(e=this.Oc).length,o=i.Oc,r=0;r<n;r++)void 0!==e[r]&&((s=e[r].copy()).wi(t),o[r]=s);return i.ob=this.ob,i.j=this.j,i.Hb=this.Hb,i.hb=this.hb,i.Qp=this.Qp.J(),i.Ha=this.Ha,i.ia=this.ia,i.V=this.V,i.F=this.F,i.u=this.u,i.o=this.o,i.nb=this.nb,i},al.className="TablePanelSettings",hl.prototype.copy=function(){var t=new hl;return t.uq=this.uq,t.Za=this.Za,t.Hc=this.Hc,t.jj=this.jj,t.hj=this.hj,t.Jb=this.Jb,t.oa=this.oa,t.oc=this.oc,t.pa=this.pa,t.hg=this.hg,t.oo=this.oo,null===this.dg?t.dg=null:t.dg=this.dg.J(),t.lo=this.lo,t.mo=this.mo,t.tj=null,null!==this.tj&&(t.separatorDashArray=C(this.separatorDashArray)),t.Ma=this.Ma,t.Pm=this.Pm,t.be=this.be,t},(i=hl.prototype).qb=function(t){t.classType===hl&&(this.sizing=t)},i.toString=function(){return"RowColumnDefinition "+(this.isRow?"(Row ":"(Column ")+this.index+") #"+it(this)},i.wi=function(t){this.Me=t},i.Io=function(t){var i=0,e=this.Me;if(this.index!==t&&(null===(t=this.separatorStroke)&&null!==e&&(t=this.isRow?e.defaultRowSeparatorStroke:e.defaultColumnSeparatorStroke),null!==t&&(i=this.separatorStrokeWidth,isNaN(i)&&(i=null!==e?this.isRow?e.defaultRowSeparatorStrokeWidth:e.defaultColumnSeparatorStrokeWidth:0))),null===(t=this.dg)){if(null===e)return i;t=e.defaultSeparatorPadding}return i+(this.isRow?t.top:t.left)},i.Wc=function(){var t=0,i=this.Me,e=0,n=this.isRow;if(null!==i&&i.type===Ch.Table)for(var o=n?i.rowDefs.length:i.colDefs.length,r=0;r<o;r++){var s=n?i.rowDefs[r]:i.colDefs[r];if(void 0!==s&&0!==s.oa){e=s.index;break}}if(this.index!==e&&(null===(e=this.separatorStroke)&&null!==i&&(e=n?i.defaultRowSeparatorStroke:i.defaultColumnSeparatorStroke),null!==e&&(t=this.separatorStrokeWidth,isNaN(t)&&(t=null!==i?n?i.defaultRowSeparatorStrokeWidth:i.defaultColumnSeparatorStrokeWidth:0))),null===(n=this.dg)){if(null===i)return t;n=i.defaultSeparatorPadding}return t+(this.isRow?n.top+n.bottom:n.left+n.right)},i.Ob=function(t,i,e){var n=this.Me;if(null!==n&&(n.cb(fe,t,this,i,e,void 0,void 0),null!==this.be&&(null!==(i=n.diagram)&&!i.skipsModelSourceBindings&&(null!==(n=n.ih())&&null!==(i=n.data)))))for(e=this.be.iterator;e.next();)e.value.sp(this,i,t,n)},i.bind=function(t,i,e,n){var o=null;return(o="string"==typeof t?new Gd(t,i,e,n):t).xd=this,null!==(t=this.panel)&&(null!==(i=t.ih())&&Kh(i)&&w("Cannot add a Binding to a RowColumnDefinition that is already frozen: "+o+" on "+t)),null===this.be&&(this.be=new Z),this.be.add(o),this},f.Object.defineProperties(hl.prototype,{panel:{get:function(){return this.Me}},isRow:{get:function(){return this.uq},set:function(t){this.uq=t}},index:{get:function(){return this.Za},set:function(t){this.Za=t}},height:{get:function(){return this.Hc},set:function(t){var i=this.Hc;i!==t&&(0>t&&M(t,">= 0",hl,"height"),this.Hc=t,this.actual=this.oa,null!==this.panel&&this.panel.v(),this.Ob("height",i,t))}},width:{get:function(){return this.Hc},set:function(t){var i=this.Hc;i!==t&&(0>t&&M(t,">= 0",hl,"width"),this.Hc=t,this.actual=this.oa,null!==this.panel&&this.panel.v(),this.Ob("width",i,t))}},minimum:{get:function(){return this.jj},set:function(t){var i=this.jj;i!==t&&((0>t||!isFinite(t))&&M(t,">= 0",hl,"minimum"),this.jj=t,this.actual=this.oa,null!==this.panel&&this.panel.v(),this.Ob("minimum",i,t))}},maximum:{get:function(){return this.hj},set:function(t){var i=this.hj;i!==t&&(0>t&&M(t,">= 0",hl,"maximum"),this.hj=t,this.actual=this.oa,null!==this.panel&&this.panel.v(),this.Ob("maximum",i,t))}},alignment:{get:function(){return this.Jb},set:function(t){var i=this.Jb;i.D(t)||(this.Jb=t.J(),null!==this.panel&&this.panel.v(),this.Ob("alignment",i,t))}},stretch:{get:function(){return this.hg},set:function(t){var i=this.hg;i!==t&&(this.hg=t,null!==this.panel&&this.panel.v(),this.Ob("stretch",i,t))}},separatorPadding:{get:function(){return this.dg},set:function(t){"number"==typeof t&&(t=new Wt(t));var i=this.dg;null!==t&&null!==i&&i.D(t)||(null!==t&&(t=t.J()),this.dg=t,null!==this.panel&&this.panel.v(),this.Ob("separatorPadding",i,t))}},separatorStroke:{get:function(){return this.lo},set:function(t){var i=this.lo;i!==t&&(null!==t&&Wa(t,"RowColumnDefinition.separatorStroke"),t instanceof Ia&&t.freeze(),this.lo=t,null!==this.panel&&this.panel.v(),this.Ob("separatorStroke",i,t))}},separatorStrokeWidth:{get:function(){return this.mo},set:function(t){var i=this.mo;i!==t&&(this.mo=t,null!==this.panel&&this.panel.v(),this.Ob("separatorStrokeWidth",i,t))}},separatorDashArray:{get:function(){return this.tj},set:function(t){var i=this.tj;if(i!==t){if(null!==t){for(var e=t.length,n=0,o=0;o<e;o++){var r=t[o];"number"==typeof r&&0<=r&&isFinite(r)||w("separatorDashArray value "+r+" at index "+o+" must be a positive number or zero."),n+=r}if(0===n){if(null===i)return;t=null}}this.tj=t,null!==this.panel&&this.panel.N(),this.Ob("separatorDashArray",i,t)}}},background:{get:function(){return this.Ma},set:function(t){var i=this.Ma;i!==t&&(null!==t&&Wa(t,"RowColumnDefinition.background"),t instanceof Ia&&t.freeze(),this.Ma=t,null!==this.panel&&this.panel.N(),this.Ob("background",i,t))}},coversSeparators:{get:function(){return this.Pm},set:function(t){var i=this.Pm;i!==t&&(this.Pm=t,null!==this.panel&&this.panel.N(),this.Ob("coversSeparators",i,t))}},sizing:{get:function(){return this.oo},set:function(t){var i=this.oo;i!==t&&(this.oo=t,null!==this.panel&&this.panel.v(),this.Ob("sizing",i,t))}},actual:{get:function(){return this.oa},set:function(t){this.oa=isNaN(this.Hc)?Math.max(Math.min(this.hj,t),this.jj):Math.max(Math.min(this.hj,this.Hc),this.jj)}},measured:{get:function(){return this.oc},set:function(t){this.oc=t}},total:{get:function(){return this.oa+this.Wc()}},position:{get:function(){return this.pa},set:function(t){this.pa=t}}}),hl.prototype.computeEffectiveSpacing=hl.prototype.Wc,hl.prototype.computeEffectiveSpacingTop=hl.prototype.Io;var cl=new V(hl,"Default",0),fl=new V(hl,"None",1),dl=new V(hl,"ProportionalExtra",2);function pl(t,i){Ds.call(this),this.Rd=this.ua=null,this.an="None",this.xc=this.Ui="black",this.ig=1,this.Na=this.Yg=null,this.Vn=this.Un=NaN,this.fa=null,"string"==typeof t?this.figure=t:t&&Object.assign(this,t),i&&Object.assign(this,i)}function gl(t){null===t.Na?t.Na=new Pl:t.Na.nc&&(t.Na=t.Na.copy())}function ml(t,i,e,n){var o=e.length;if(!(4>o)){var r=n.measuredBounds,s=Math.max(1,r.width);r=r.height;for(var a,h,l,u,c,f,d=e[0],p=e[1],g=0,m=A(),y=2;y<o;y+=2)0===(l=(a=e[y])-d)&&(l=.001),u=(d=(h=e[y+1])-p)/l,c=Math.atan2(d,l),f=Math.sqrt(l*l+d*d),m.push([l,c,u,f]),g+=f,d=a,p=h;d=e[0],p=e[1],l=n.measuredBounds.width,n instanceof pl&&(l-=n.strokeWidth),1>l&&(l=1),o=e=l,h=0!==(a=s/2),l=(f=m[y=0])[0],c=f[1],u=f[2],f=f[3];for(var v=0;.1<=g;){if(0===v&&(h?(o=e,o-=a,g-=a,h=!1):o=e,0===o&&(o=1)),o>g)return void j(m);o>f?(v=o-f,o=f):v=0;var x=Math.sqrt(o*o/(1+u*u));if(0>l&&(x=-x),d+=x,p+=u*x,t.translate(d,p),t.rotate(c),t.translate(-s/2,-r/2),0===v&&n.hh(t,i),t.translate(s/2,r/2),t.rotate(-c),t.translate(-d,-p),g-=o,f-=o,0!==v){if(++y===m.length)return void j(m);l=(f=m[y])[0],c=f[1],u=f[2],f=f[3],o=v}}j(m)}}function yl(t){var i=t.geometryStretch;return null!==t.Rd?i===ms?cs:i:i===ms?Sl[t.figure].defaultStretch:i}function vl(t,i,e,n,o){return(i=(t=e.x-t)*t+(i=e.y-i)*i)<n?(o.x=e.x,o.y=e.y,i):n}function xl(t,i,e,n,o,r,s,a,h){if(Xi.$(t,e)&&Xi.$(i,n)||Xi.$(o,s)&&Xi.$(r,a))return!1;var l=!1,u=(o-s)*(i-n)-(r-a)*(t-e);return 0!==u&&(h.x=((o*a-r*s)*(t-e)-(o-s)*(t*n-i*e))/u,h.y=((o*a-r*s)*(i-n)-(r-a)*(t*n-i*e))/u,(t>e?t-e:e-t)<(i>n?i-n:n-i)?(t=i<n?i:n,i=i<n?n:i,(h.y>t||Xi.$(h.y,t))&&(h.y<i||Xi.$(h.y,i))&&(l=!0)):(i=t<e?t:e,t=t<e?e:t,(h.x>i||Xi.$(h.x,i))&&(h.x<t||Xi.$(h.x,t))&&(l=!0)),l)}function bl(t,i,e,n){if(!t.rs(i,e,n))return!1;t=i.x,i=i.y;var o=e.x,r=e.y;return e=n.x,n=n.y,t===o?(i<r?(t=i,i=r):t=r,n>=t&&n<=i):(t<o?(n=t,t=o):n=o,e>=n&&e<=t)}function wl(t){var i=t.diagram;null!==i&&i.undoManager.isUndoingRedoing||(t.segmentOrientation=ef,"None"!==t.toArrow?(t.segmentIndex=-1,t.alignmentFocus=ji):"None"!==t.fromArrow&&(t.segmentIndex=0,t.alignmentFocus=new Ii(1-ji.x,ji.y)))}function kl(t){var i=Ml[t];if(void 0===i){var e=t.toLowerCase();if("none"===e)return"None";if(void 0===(i=Ml[e])){var n,o=null;for(n in Xi.um)if(n.toLowerCase()===e){o=n;break}if(null!==o)return t=Ui.parse(Xi.um[o],!1),Ml[o]=t,e!==o&&(Ml[e]=o),o}}return"string"==typeof i?i:i instanceof Ui?t:null}hl.className="RowColumnDefinition",hl.Default=cl,hl.None=fl,hl.ProportionalExtra=dl,c(pl,Ds),pl.prototype.cloneProtected=function(t){Ds.prototype.cloneProtected.call(this,t),t.ua=this.ua,t.Rd=this.Rd,t.an=this.an,t.Ui=this.Ui,t.xc=this.xc,t.ig=this.ig,null!==this.Yg&&(t.Yg=C(this.Yg)),null!==this.Na&&(t.Na=this.Na.nc?this.Na:this.Na.copy()),t.Un=this.Un,t.Vn=this.Vn,null!==this.fa&&(t.fa=this.fa.copy())},(i=pl.prototype).th=function(){Ds.prototype.th.call(this),null!==this.Na&&(this.Na.nc=!0)},i.qb=function(t){t===fs||t===ds||t===ys||t===ms?this.geometryStretch=t:Ds.prototype.qb.call(this,t)},i.toString=function(){return"Shape("+("None"!==this.figure?this.figure:"None"!==this.toArrow?this.toArrow:this.fromArrow)+")#"+it(this)},i.hh=function(t,i){var e=this.xc,n=this.Ui;if(null!==e||null!==n){var o=this.ua;if(null!==o){t.yc();var r=this.actualBounds,s=this.naturalBounds;null!==n&&Us(this,t,n,!0,!1,s,r);var a=this.part,h=this.ig;if(null===e||0!==h||null===a||!this.isPanelMain&&a.Pb()!==this||(h=a.type===Ch.Link&&a instanceof Ku&&"Selection"===a.category&&a.adornedObject instanceof pl&&a.adornedPart.Pb()===a.adornedObject?a.adornedObject.strokeWidth:0),0===h&&(e=null),null!==e&&0!==h&&(Us(this,t,e,!1,!1,s,r),t.lineWidth=h,t.lineJoin=this.strokeJoin,t.lineCap=this.strokeCap,t.miterLimit=this.strokeMiterLimit),r=!1,a&&i.Gf("drawShadows")&&(r=a.isShadowed),!1===t.Il&&(r=!1),a=!0,null===e||null!==n&&"transparent"!==n||(a=!1),s=!1,null!==(h=this.strokeDashArray)&&(s=!0,t.js(h,this.strokeDashOffset)),o.type===Ui.j)t.beginPath(),t.moveTo(o.startX,o.startY),t.lineTo(o.endX,o.endY),null!==e&&t.jk(),t.Se();else if(o.type===Ui.u){var l=o.startX;h=o.startY;var u=o.endX,c=o.endY;o=Math.min(l,u);var f=Math.min(h,c);l=Math.abs(u-l),h=Math.abs(c-h),t.beginPath(),t.rect(o,f,l,h),null!==n&&t.ng(n),null!==e&&(a&&r&&La(t),t.jk(),a&&r&&Aa(t)),t.Se()}else if(o.type===Ui.F)l=o.startX,h=o.startY,u=o.endX,c=o.endY,o=Math.abs(u-l)/2,f=Math.abs(c-h)/2,l=Math.min(l,u)+o,h=Math.min(h,c)+f,t.beginPath(),t.moveTo(l,h-f),t.bezierCurveTo(l+Xi.wg*o,h-f,l+o,h-Xi.wg*f,l+o,h),t.bezierCurveTo(l+o,h+Xi.wg*f,l+Xi.wg*o,h+f,l,h+f),t.bezierCurveTo(l-Xi.wg*o,h+f,l-o,h+Xi.wg*f,l-o,h),t.bezierCurveTo(l-o,h-Xi.wg*f,l-Xi.wg*o,h-f,l,h-f),t.closePath(),null!==n&&t.ng(n),null!==e&&(a&&r&&La(t),t.jk(),a&&r&&Aa(t)),t.Se();else if(o.type===Ui.o)for(h=(o=o.figures).length,f=0;f<h;f++){l=o.s[f],t.beginPath(),t.moveTo(l.startX,l.startY),c=(u=l.segments.s).length;for(var d=null,p=0;p<c;p++){var g=u[p];switch(g.type){case ee:t.moveTo(g.endX,g.endY);break;case ne:t.lineTo(g.endX,g.endY);break;case oe:t.bezierCurveTo(g.point1X,g.point1Y,g.point2X,g.point2Y,g.endX,g.endY);break;case re:t.quadraticCurveTo(g.point1X,g.point1Y,g.endX,g.endY);break;case se:if(g.radiusX===g.radiusY){var m=Math.PI/180;t.arc(g.point1X,g.point1Y,g.radiusX,g.startAngle*m,(g.startAngle+g.sweepAngle)*m,0>g.sweepAngle,null!==d?d.endX:l.startX,null!==d?d.endY:l.startY)}else if(0===(m=(d=te(g,l)).length))t.lineTo(g.centerX,g.centerY);else for(var y=0;y<m;y++){var v=d[y];0===y&&t.lineTo(v[0],v[1]),t.bezierCurveTo(v[2],v[3],v[4],v[5],v[6],v[7])}break;case ae:if(y=m=0,null!==d&&d.type===se){if(0===(v=(d=te(d,l)).length)){t.lineTo(g.endX,g.endY);break}null!==(d=d[v-1]||null)&&(m=d[6],y=d[7])}else m=null!==d?d.endX:l.startX,y=null!==d?d.endY:l.startY;if(0===(m=(d=ie(g,l,m,y)).length)){t.lineTo(g.endX,g.endY);break}for(y=0;y<m;y++)v=d[y],t.bezierCurveTo(v[2],v[3],v[4],v[5],v[6],v[7]);break;default:w("Segment not of valid type: "+g.type)}g.isClosed&&t.closePath(),d=g}u=l.isFilled,r?l.isShadowed?(!0===u&&"transparent"!==n&&null!==n&&t.ng(n,l.isEvenOdd),null!==e&&(u&&a&&La(t),t.jk(),u&&a&&Aa(t))):(La(t),u&&"transparent"!==n&&null!==n&&t.ng(n,l.isEvenOdd),null!==e&&t.jk(),Aa(t)):(u&&null!==n&&t.ng(n,l.isEvenOdd),null!==e&&t.jk()),t.Se(f)}if(s&&t.fs(),null!==this.pathPattern){if((e=this.pathPattern).measure(1/0,1/0),n=e.measuredBounds,e.arrange(0,0,n.width,n.height),r=this.geometry,t.save(),t.beginPath(),n=A(),r.type===Ui.j)n.push(r.startX),n.push(r.startY),n.push(r.endX),n.push(r.endY),ml(t,i,n,e);else if(r.type===Ui.o)for(r=r.figures.iterator;r.next();){for(a=r.value,n.length=0,n.push(a.startX),n.push(a.startY),h=s=a.startX,f=o=a.startY,u=(l=a.segments.s).length,c=0;c<u;c++){switch((p=l[c]).type){case ee:ml(t,i,n,e),n.length=0,n.push(p.endX),n.push(p.endY),h=s=p.endX,f=o=p.endY;break;case ne:n.push(p.endX),n.push(p.endY),s=p.endX,o=p.endY;break;case oe:Xi.Qe(s,o,p.point1X,p.point1Y,p.point2X,p.point2Y,p.endX,p.endY,.5,n),s=p.endX,o=p.endY;break;case re:Xi.ep(s,o,p.point1X,p.point1Y,p.endX,p.endY,.5,n),s=p.endX,o=p.endY;break;case se:if(0===(d=(g=te(p,a)).length)){n.push(p.centerX),n.push(p.centerY),s=p.centerX,o=p.centerY;break}for(m=0;m<d;m++)y=g[m],Xi.Qe(s,o,y[2],y[3],y[4],y[5],y[6],y[7],.5,n),s=y[6],o=y[7];break;case ae:if(0===(d=(g=ie(p,a,s,o)).length)){n.push(p.endX),n.push(p.endY),s=p.endX,o=p.endY;break}for(m=0;m<d;m++)y=g[m],Xi.Qe(s,o,y[2],y[3],y[4],y[5],y[6],y[7],.5,n),s=y[6],o=y[7];break;default:w("Segment not of valid type: "+p.type)}p.isClosed&&(n.push(h),n.push(f),ml(t,i,n,e))}ml(t,i,n,e)}else if(r.type===Ui.u)n.push(r.startX),n.push(r.startY),n.push(r.endX),n.push(r.startY),n.push(r.endX),n.push(r.endY),n.push(r.startX),n.push(r.endY),n.push(r.startX),n.push(r.startY),ml(t,i,n,e);else if(r.type===Ui.F){if((o=new $i).startX=r.endX,o.startY=(r.startY+r.endY)/2,(s=new Qi(se)).startAngle=0,s.sweepAngle=360,s.centerX=(r.startX+r.endX)/2,s.centerY=(r.startY+r.endY)/2,s.radiusX=Math.abs(r.startX-r.endX)/2,s.radiusY=Math.abs(r.startY-r.endY)/2,o.add(s),0===(a=(r=te(s,o)).length))n.push(s.centerX),n.push(s.centerY);else for(s=o.startX,o=o.startY,h=0;h<a;h++)f=r[h],Xi.Qe(s,o,f[2],f[3],f[4],f[5],f[6],f[7],.5,n),s=f[6],o=f[7];ml(t,i,n,e)}j(n),t.restore(),t.Vc(!1)}}}},i.kk=function(t,i,e){return!(!Ds.prototype.kk.call(this,t,i,e)||null===this.xc&&null===this.Ui||null===this.ua||null!==this.pathPattern||this.geometry.figures.length!==this.svg.getElementsByTagName("path").length)&&(t.Hl=this.svg,this.hh(t,i),t.Hl=null,!0)},i.nk=function(t){return null!==this.geometry&&1<this.geometry.figures.length||null!==this.pathPattern||Ds.prototype.nk.call(this,t)},i.Dv=function(t,i){if("g"!==t.nodeName)t.setAttributeNS(null,"filter",i);else{t=t.getElementsByTagName("path");for(var e=0;e<t.length;e++)t[e].setAttributeNS(null,"filter",i)}},i.ga=function(t,i){if(void 0===i&&(i=new pt),t instanceof Ii){t.Mc()&&w("getDocumentPoint Spot must be a real, specific Spot, not: "+t.toString());var e=this.naturalBounds,n=this.strokeWidth;i.h(t.x*(e.width+n)-n/2+e.x+t.offsetX,t.y*(e.height+n)-n/2+e.y+t.offsetY)}else i.set(t);return this.oe.Ga(i),i},i.mi=function(t){void 0===t&&(t=new Bt);var i=this.naturalBounds,e=this.oe;i=Bt.allocAt(i.x,i.y,i.width,i.height);var n=this.strokeWidth;return i.Bc(n/2,n/2),n=pt.allocAt(i.x,i.y).transform(e),t.h(n.x,n.y,0,0),n.h(i.right,i.y).transform(e),Gt(t,n.x,n.y,0,0),n.h(i.right,i.bottom).transform(e),Gt(t,n.x,n.y,0,0),n.h(i.x,i.bottom).transform(e),Gt(t,n.x,n.y,0,0),Bt.free(i),pt.free(n),t},i.gh=function(t,i){var e=this.geometry;if(null===e||null===this.fill&&null===this.stroke)return!1;var n=e.bounds,o=this.strokeWidth/2;e.type!==Ui.j||i||(o+=2);var r=Bt.alloc();if(r.assign(n),r.Bc(o+2,o+2),!r.ca(t))return Bt.free(r),!1;if(n=o+1e-4,e.type===Ui.j)return null!==this.stroke&&(n=(e.endX-e.startX)*(t.x-e.startX)+(e.endY-e.startY)*(t.y-e.startY),!(0>(e.startX-e.endX)*(t.x-e.endX)+(e.startY-e.endY)*(t.y-e.endY)||0>n)&&(Bt.free(r),Xi.Yb(e.startX,e.startY,e.endX,e.endY,o,t.x,t.y)));if(e.type===Ui.u){i=e.startX;var s=e.startY,a=e.endX;if(e=e.endY,r.x=Math.min(i,a),r.y=Math.min(s,e),r.width=Math.abs(a-i),r.height=Math.abs(e-s),null===this.fill){if(r.Bc(-n,-n),r.ca(t))return Bt.free(r),!1;r.Bc(n,n)}return null!==this.stroke&&r.Bc(o,o),t=r.ca(t),Bt.free(r),t}if(e.type===Ui.F){s=e.startX,o=e.startY,a=e.endX;var h=e.endY;if(e=Math.min(s,a),i=Math.min(o,h),s=Math.abs(a-s)/2,o=Math.abs(h-o)/2,e=t.x-(e+s),i=t.y-(i+o),null===this.fill){if(o-=n,0>=(s-=n)||0>=o||1>=e*e/(s*s)+i*i/(o*o))return Bt.free(r),!1;s+=n,o+=n}return null!==this.stroke&&(s+=n,o+=n),Bt.free(r),!(0>=s||0>=o)&&1>=e*e/(s*s)+i*i/(o*o)}if(e.type===Ui.o)return Bt.free(r),null===this.fill?Ji(e,t.x,t.y,o):Ki(e,t,o,1<this.strokeWidth,i);w("Unknown Geometry type: "+e.type)},i.Wl=function(t,i,e,n){var o=this.desiredSize,r=this.ig;if(t=Math.max(t,0),i=Math.max(i,0),null!==this.Rd)var s=this.geometry.bounds;else{var a=this.figure,h=Sl[a];if(void 0===h){var l=Xi.Ze[a];"string"==typeof l&&(l=Xi.Ze[l]),"function"==typeof l?(h=l(null,100,100),Sl[a]=h):w("Unsupported Figure: "+a)}s=h.bounds}a=s.width,h=s.height,l=s.width;var u=s.height;switch(Ks(this,!0)){case fs:n=e=0;break;case cs:l=Math.max(t-r,0),u=Math.max(i-r,0);break;case ps:l=Math.max(t-r,0),n=0;break;case gs:e=0,u=Math.max(i-r,0)}isFinite(o.width)&&(l=o.width),isFinite(o.height)&&(u=o.height);var c=this.maxSize,f=this.minSize;switch(e=Math.max(e-r,f.width),n=Math.max(n-r,f.height),l=Math.min(c.width,l),u=Math.min(c.height,u),l=isFinite(l)?Math.max(e,l):Math.max(a,e),u=isFinite(u)?Math.max(n,u):Math.max(h,n),e=yl(this)){case fs:break;case cs:a=l,h=u;break;case ds:e=Math.min(l/a,u/h),isFinite(e)||(e=1),a*=e,h*=e;break;default:w(e+" is not a valid geometryStretch.")}null!==this.Rd?(0===a&&(a=.001),0===h&&(h=.001),n=a/(s=(e=null!==this.Rd?this.Rd:this.ua).bounds).width,s=h/s.height,isFinite(n)||(n=1),isFinite(s)||(s=1),this.ua=1===n&&1===s?e:e.copy().scale(n,s)):null!==this.ua&&Xi.$(this.ua.Sk,t-r)&&Xi.$(this.ua.Rk,i-r)||(this.ua=pl.makeGeometry(this,a,h)),s=this.ua.bounds,1/0===t||1/0===i?this.Ge(s.x-r/2,s.y-r/2,0===t&&0===a?0:s.width+r,0===i&&0===h?0:s.height+r):this.Ge(-r/2,-r/2,l+r,u+r),o.w()?(l=o.width,u=o.height,l=Math.min(c.width,l),u=Math.min(c.height,u),l=Math.max(f.width,l),u=Math.max(f.height,u),this.dc.h(0,0,l,u)):this.dc.assign(s)},i.eh=function(t,i,e,n){zs(this,t,i,e,n)},i.rs=function(t,i,e){return this.Sj(t.x,t.y,i.x,i.y,e)},i.Sj=function(t,i,e,n,o){var r=this.transform,s=1/(r.m11*r.m22-r.m12*r.m21),a=r.m22*s,h=-r.m12*s,l=-r.m21*s,u=r.m11*s,c=s*(r.m21*r.dy-r.m22*r.dx),f=s*(r.m12*r.dx-r.m11*r.dy);r=t*a+i*l+c,s=t*h+i*u+f,a=e*a+n*l+c,h=e*h+n*u+f,c=this.ig/2,null===(l=this.ua)&&(this.measure(1/0,1/0),l=this.ua);var d=l.bounds;if(u=!1,l.type===Ui.j)if(1.5>=this.strokeWidth)u=Xi.Ve(l.startX,l.startY,l.endX,l.endY,r,s,a,h,o);else{if(l.startX===l.endX?(n=c,u=0):(i=(l.endY-l.startY)/(l.endX-l.startX),n=(u=c/Math.sqrt(1+i*i))*i),i=A(),t=new pt,Xi.Ve(l.startX+n,l.startY+u,l.endX+n,l.endY+u,r,s,a,h,t)&&i.push(t),t=new pt,Xi.Ve(l.startX-n,l.startY-u,l.endX-n,l.endY-u,r,s,a,h,t)&&i.push(t),t=new pt,Xi.Ve(l.startX+n,l.startY+u,l.startX-n,l.startY-u,r,s,a,h,t)&&i.push(t),t=new pt,Xi.Ve(l.endX+n,l.endY+u,l.endX-n,l.endY-u,r,s,a,h,t)&&i.push(t),0===(a=i.length))return j(i),!1;for(u=!0,h=1/0,n=0;n<a;n++)(e=((t=i[n]).x-r)*(t.x-r)+(t.y-s)*(t.y-s))<h&&(h=e,o.x=t.x,o.y=t.y);j(i)}else if(l.type===Ui.u)u=Xi.Ff(d.x-c,d.y-c,d.x+d.width+c,d.y+d.height+c,r,s,a,h,o);else if(l.type===Ui.F){t:if(0===(i=Bt.allocAt(d.x,d.y,d.width,d.height).Bc(c,c)).width)u=Xi.Ve(i.x,i.y,i.x,i.y+i.height,r,s,a,h,o);else if(0===i.height)u=Xi.Ve(i.x,i.y,i.x+i.width,i.y,r,s,a,h,o);else{if(t=i.width/2,l=i.height/2,n=i.x+t,u=i.y+l,e=9999,r!==a&&(e=(s-h)/(r-a)),9999>Math.abs(e)){if(0>t*t*e*e+l*l-(h=s-u-e*(r-n))*h){o.x=NaN,o.y=NaN,u=!1;break t}a=(-t*t*e*h+t*l*(c=Math.sqrt(t*t*e*e+l*l-h*h)))/(l*l+t*t*e*e)+n,t=(-t*t*e*h-t*l*c)/(l*l+t*t*e*e)+n,l=e*(a-n)+h+u,h=e*(t-n)+h+u,Math.abs((r-a)*(r-a))+Math.abs((s-l)*(s-l))<Math.abs((r-t)*(r-t))+Math.abs((s-h)*(s-h))?(o.x=a,o.y=l):(o.x=t,o.y=h)}else{if(a=l*l,0>(a-=a/(t*t)*(h=r-n)*h)){o.x=NaN,o.y=NaN,u=!1;break t}a=u+(h=Math.sqrt(a)),h=u-h,Math.abs(a-s)<Math.abs(h-s)?(o.x=r,o.y=a):(o.x=r,o.y=h)}u=!0}Bt.free(i)}else if(l.type===Ui.o){f=pt.alloc();var p=a-r,g=h-s,m=p*p+g*g,y=r,v=s;if(0<m&&d.contains(y,v)&&(f.x=y,f.y=v,this.ca(f)))for(0!==p&&.5>Math.abs(p)?(g*=.5/p,p=.5):0!==g&&.5>Math.abs(g)&&(p*=.5/g,g=.5),y-=p,v-=g;d.contains(y,v);)y-=p,v-=g;for(o.x=a,o.y=h,g=0;g<l.figures.count;g++)for(var x=l.figures.s[g],b=x.isFilled?y:r,k=x.isFilled?v:s,M=x.segments,S=d=x.startX,P=p=x.startY,N=0;N<M.count;N++){var C=M.s[N],T=C.type,L=C.endX,F=C.endY,D=!1;switch(T){case ee:S=L,P=F;break;case ne:D=xl(d,p,L,F,b,k,a,h,f);break;case oe:D=Xi.Eo(d,p,C.point1X,C.point1Y,C.point2X,C.point2Y,L,F,b,k,a,h,.6,f);break;case re:D=Xi.Eo(d,p,d+2/3*(C.point1X-d),p+2/3*(C.point1Y-p),L+2/3*(C.point1X-L),F+2/3*(C.point1Y-F),L,F,b,k,a,h,.6,f);break;case se:case ae:var B=(T=C.type===se?te(C,x):ie(C,x,d,p)).length;if(0===B){D=xl(d,p,C.type===se?C.centerX:C.endX,C.type===se?C.centerY:C.endY,b,k,a,h,f);break}for(F=null,L=0;L<B;L++){if(F=T[L],0===L&&xl(d,p,F[0],F[1],b,k,a,h,f)){var O=vl(b,k,f,m,o);O<m&&(m=O,u=!0)}Xi.Eo(F[0],F[1],F[2],F[3],F[4],F[5],F[6],F[7],b,k,a,h,.6,f)&&((O=vl(b,k,f,m,o))<m&&(m=O,u=!0))}L=F[6],F=F[7];break;default:w("Unknown Segment type: "+T)}d=L,p=F,D&&((D=vl(b,k,f,m,o))<m&&(m=D,u=!0)),C.isClosed&&(xl(d,p,L=S,F=P,b,k,a,h,f)&&((C=vl(b,k,f,m,o))<m&&(m=C,u=!0)))}r=e-t,s=n-i,0!==(a=Math.sqrt(r*r+s*s))&&(r/=a,s/=a),o.x-=r*c,o.y-=s*c,pt.free(f)}else w("Unknown Geometry type: "+l.type);return!!u&&(this.transform.Ga(o),!0)},i.fh=function(t,i){if(void 0===i)return t.Re(this.actualBounds);var e=this.ua;null===e&&(this.measure(1/0,1/0),e=this.ua),e=e.bounds;var n=this.strokeWidth/2,o=!1,r=pt.alloc();return r.h(e.x-n,e.y-n),t.ca(i.Ga(r))&&(r.h(e.x-n,e.bottom+n),t.ca(i.Ga(r))&&(r.h(e.right+n,e.bottom+n),t.ca(i.Ga(r))&&(r.h(e.right+n,e.y-n),t.ca(i.Ga(r))&&(o=!0)))),pt.free(r),o},i.Yc=function(t,i){if(this.fh(t,i)||void 0===i&&(i=this.transform,t.Re(this.actualBounds)))return!0;var e=Yi.alloc();e.set(i),e.Vj();var n=t.left,o=t.right,r=t.top;t=t.bottom;var s=pt.alloc();if(s.h(n,r),e.Ga(s),this.gh(s,!0))return pt.free(s),!0;if(s.h(o,r),e.Ga(s),this.gh(s,!0))return pt.free(s),!0;if(s.h(n,t),e.Ga(s),this.gh(s,!0))return pt.free(s),!0;if(s.h(o,t),e.Ga(s),this.gh(s,!0))return pt.free(s),!0;var a=pt.alloc(),h=pt.alloc();return e.set(i),e.bv(this.transform),e.Vj(),a.x=o,a.y=r,a.transform(e),s.x=n,s.y=r,s.transform(e),i=!1,bl(this,s,a,h)?i=!0:(s.x=o,s.y=t,s.transform(e),bl(this,s,a,h)?i=!0:(a.x=n,a.y=t,a.transform(e),bl(this,s,a,h)?i=!0:(s.x=n,s.y=r,s.transform(e),bl(this,s,a,h)&&(i=!0)))),pt.free(s),Yi.free(e),pt.free(a),pt.free(h),i},i.tx=function(t,i,e){function n(t,i){for(var e=t.length,n=0;n<e;n+=2)if(i.zd(t[n],t[n+1])>o)return!0;return!1}if(e&&null!==this.fill&&this.gh(t,!0))return!0;var o=t.Bf(i),r=o;if(1.5<this.strokeWidth&&(o=this.strokeWidth/2+Math.sqrt(o),o*=o),null===(i=this.ua)&&(this.measure(1/0,1/0),null===(i=this.ua)))return!1;if(!e){var s=i.bounds,a=s.x,h=s.y,l=s.x+s.width;if(s=s.y+s.height,bt(t.x,t.y,a,h)<=o&&bt(t.x,t.y,l,h)<=o&&bt(t.x,t.y,a,s)<=o&&bt(t.x,t.y,l,s)<=o)return!0}if(a=i.startX,h=i.startY,l=i.endX,s=i.endY,i.type===Ui.j){if(e=(a-l)*(t.x-l)+(h-s)*(t.y-s),xt(t.x,t.y,a,h,l,s)<=(0<=(l-a)*(t.x-a)+(s-h)*(t.y-h)&&0<=e?o:r))return!0}else{if(i.type===Ui.u)return i=!1,e&&(i=xt(t.x,t.y,a,h,a,s)<=o||xt(t.x,t.y,a,h,l,h)<=o||xt(t.x,t.y,l,h,l,s)<=o||xt(t.x,t.y,a,s,l,s)<=o),i;if(i.type===Ui.F){i=t.x-(a+l)/2,r=t.y-(h+s)/2;var u=Math.abs(l-a)/2,c=Math.abs(s-h)/2;if(0===u||0===c)return xt(t.x,t.y,a,h,l,s)<=o;if(!e)return!(bt(i,r,-u,0)>=o||bt(i,r,0,-c)>=o||bt(i,r,0,c)>=o||bt(i,r,u,0)>=o);if((t=Xi.$y(u,c,i,r))*t<=o)return!0}else if(i.type===Ui.o){if(r=(l=i.bounds).x,a=l.y,h=l.x+l.width,l=l.y+l.height,t.x>h&&t.x<r&&t.y>l&&t.y<a&&xt(t.x,t.y,r,a,r,l)>o&&xt(t.x,t.y,r,a,h,a)>o&&xt(t.x,t.y,h,l,r,l)>o&&xt(t.x,t.y,h,l,h,a)>o)return!1;if(r=Math.sqrt(o),!e){for(e=i.figures,i=0;i<e.count;i++){if(s=(r=e.s[i]).startX,u=r.startY,t.zd(s,u)>o)return!1;for(h=(a=r.segments.s).length,l=0;l<h;l++)switch(c=a[l],c.type){case ee:case ne:if(s=c.endX,u=c.endY,t.zd(s,u)>o)return!1;break;case oe:var f=A();if(Xi.Qe(s,u,c.point1X,c.point1Y,c.point2X,c.point2Y,c.endX,c.endY,.8,f),s=n(f,t),j(f),s)return!1;if(s=c.endX,u=c.endY,t.zd(s,u)>o)return!1;break;case re:if(f=A(),Xi.ep(s,u,c.point1X,c.point1Y,c.endX,c.endY,.8,f),s=n(f,t),j(f),s)return!1;if(s=c.endX,u=c.endY,t.zd(s,u)>o)return!1;break;case se:case ae:var d=(f=c.type===se?te(c,r):ie(c,r,s,u)).length;if(0===d){if(s=c.type===se?c.centerX:c.endX,u=c.type===se?c.centerY:c.endY,t.zd(s,u)>o)return!1;break}c=null;for(var p=A(),g=0;g<d;g++)if(c=f[g],p.length=0,Xi.Qe(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],.8,p),n(p,t))return j(p),!1;j(p),null!==c&&(s=c[6],u=c[7]);break;default:w("Unknown Segment type: "+c.type)}}return!0}if(null===this.fill?Ji(i,t.x,t.y,r):Ki(i,t,r,!0,!1))return!0}}return!1},i.qc=function(){this.ua=null},i.kq=function(){return this.ig},pl.makeGeometry=function(t,i,e){if("None"!==t.toArrow)var n=Ml[t.toArrow];else"None"!==t.fromArrow?n=Ml[t.fromArrow]:("string"==typeof(n=Xi.Ze[t.figure])&&(n=Xi.Ze[n]),void 0===n&&w("Unknown Shape.figure: "+t.figure),(n=n(t,i,e)).Sk=i,n.Rk=e);if(null===n){var o=Xi.Ze.Rectangle;"function"==typeof o&&(n=o(t,i,e))}return n},f.Object.defineProperties(pl.prototype,{geometry:{get:function(){return null!==this.ua?this.ua:this.Rd},set:function(t){var i=this.ua,e=this.Rd;if(i!==t){this.Rd=this.ua=null!==t?t.freeze():null;var n=this.part;null!==n&&(n.ag=NaN),this.v(),this.g("geometry",i||e,t),_s(this)&&(null!==(t=this.part)&&Os(this,t,"geometryString"))}}},geometryString:{get:function(){return null===this.geometry?"":this.geometry.toString()},set:function(t){var i=(t=Ui.parse(t)).normalize();this.geometry=t,this.position=t=pt.allocAt(-i.x,-i.y),pt.free(t)}},isGeometryPositioned:{get:function(){return 0!=(1048576&this.l)},set:function(t){var i=0!=(1048576&this.l);i!==t&&(this.l^=1048576,this.v(),this.g("isGeometryPositioned",i,t))}},fill:{get:function(){return this.Ui},set:function(t){var i=this.Ui;i!==t&&(null!==t&&Wa(t,"Shape.fill"),t instanceof Ia&&t.freeze(),this.Ui=t,this.N(),this.g("fill",i,t))}},stroke:{get:function(){return this.xc},set:function(t){var i=this.xc;i!==t&&(null!==t&&Wa(t,"Shape.stroke"),t instanceof Ia&&t.freeze(),this.xc=t,this.N(),this.g("stroke",i,t))}},strokeWidth:{get:function(){return this.ig},set:function(t){var i=this.ig;if(i!==t)if(0<=t){this.ig=t,this.v();var e=this.part;null!==e&&(e.ag=NaN),this.g("strokeWidth",i,t)}else M(t,"value >= 0",pl,"strokeWidth:value")}},strokeCap:{get:function(){return null!==this.Na?this.Na.Hr:"butt"},set:function(t){var i=this.strokeCap;i!==t&&("string"!=typeof t||"butt"!==t&&"round"!==t&&"square"!==t?M(t,'"butt", "round", or "square"',pl,"strokeCap"):(gl(this),this.Na.Hr=t,this.N(),this.g("strokeCap",i,t)))}},strokeJoin:{get:function(){return null!==this.Na?this.Na.Ir:"miter"},set:function(t){var i=this.strokeJoin;i!==t&&("string"!=typeof t||"miter"!==t&&"bevel"!==t&&"round"!==t?M(t,'"miter", "bevel", or "round"',pl,"strokeJoin"):(gl(this),this.Na.Ir=t,this.N(),this.g("strokeJoin",i,t)))}},strokeMiterLimit:{get:function(){return null!==this.Na?this.Na.Jr:10},set:function(t){var i=this.strokeMiterLimit;if(i!==t&&1<=t){gl(this),this.Na.Jr=t,this.N();var e=this.part;null!==e&&(e.ag=NaN),this.g("strokeMiterLimit",i,t)}}},strokeDashArray:{get:function(){return this.Yg},set:function(t){var i=this.Yg;if(i!==t){if(null!==t){for(var e=t.length,n=0,o=0;o<e;o++){var r=t[o];0<=r&&isFinite(r)||w("strokeDashArray:value "+r+" at index "+o+" must be a positive number or zero."),n+=r}if(0===n){if(null===i)return;t=null}}this.Yg=t,this.N(),this.g("strokeDashArray",i,t)}}},strokeDashOffset:{get:function(){return null!==this.Na?this.Na.uj:0},set:function(t){var i=this.strokeDashOffset;i!==t&&0<=t&&(gl(this),this.Na.uj=t,this.N(),this.g("strokeDashOffset",i,t))}},figure:{get:function(){return this.an},set:function(t){var i=this.an;if(i!==t){var e=Xi.Ze[t];"function"==typeof e?e=t:(e=Xi.Ze[t.toLowerCase()])||w("Unknown Shape.figure: "+t),i!==e&&(null!==(t=this.part)&&(t.ag=NaN),this.an=e,this.Rd=null,this.qc(),this.v(),this.g("figure",i,e))}}},toArrow:{get:function(){return null!==this.Ua?this.Ua.V:"None"},set:function(t){var i=this.toArrow;if(!0===t?t="Standard":!1===t&&(t=""),i!==t){var e=kl(t);null===e?w("Unknown Shape.toArrow: "+t):i!==e&&(null===this.Ua&&(this.Ua=new da),this.Ua.V=e,this.Rd=null,this.qc(),this.v(),wl(this),this.g("toArrow",i,e))}}},fromArrow:{get:function(){return null!==this.Ua?this.Ua.j:"None"},set:function(t){var i=this.fromArrow;if(!0===t?t="Standard":!1===t&&(t=""),i!==t){var e=kl(t);null===e?w("Unknown Shape.fromArrow: "+t):i!==e&&(null===this.Ua&&(this.Ua=new da),this.Ua.j=e,this.Rd=null,this.qc(),this.v(),wl(this),this.g("fromArrow",i,e))}}},spot1:{get:function(){return null!==this.Na?this.Na.fg:Si},set:function(t){var i=this.spot1;i.D(t)||(t=t.J(),gl(this),this.Na.fg=t,this.v(),this.g("spot1",i,t))}},spot2:{get:function(){return null!==this.Na?this.Na.gg:Si},set:function(t){var i=this.spot2;i.D(t)||(t=t.J(),gl(this),this.Na.gg=t,this.v(),this.g("spot2",i,t))}},parameter1:{get:function(){return this.Un},set:function(t){var i=this.Un;i!==t&&(this.Un=t,this.qc(),this.v(),this.g("parameter1",i,t))}},parameter2:{get:function(){return this.Vn},set:function(t){var i=this.Vn;i!==t&&(this.Vn=t,this.qc(),this.v(),this.g("parameter2",i,t))}},naturalBounds:{get:function(){return this.dc}},pathPattern:{get:function(){return null!==this.Na?this.Na.br:null},set:function(t){var i=this.pathPattern;i!==t&&(gl(this),this.Na.br=t,this.N(),this.g("pathPattern",i,t))}},geometryStretch:{get:function(){return null!==this.Na?this.Na.jq:ms},set:function(t){var i=this.geometryStretch;i!==t&&(gl(this),this.Na.jq=t,this.v(),this.g("geometryStretch",i,t))}},interval:{get:function(){return null!==this.fa?this.fa.Tk:1},set:function(t){var i=this.interval;if(i!==(t=Math.round(t))&&0!==t&&isFinite(t)){null===this.fa&&(this.fa=new nu),this.fa.Tk=t;var e=this.diagram;null!==e&&this.panel===e.grid&&yr(e),this.v(),null!==(e=this.panel)&&(e.graduatedIntervals=null),this.g("interval",i,t)}}},graduatedStart:{get:function(){return null!==this.fa?this.fa.u:0},set:function(t){var i=this.graduatedStart;i!==t&&(0>t?t=0:1<t&&(t=1),null===this.fa&&(this.fa=new nu),this.fa.u=t,this.v(),this.g("graduatedStart",i,t))}},graduatedEnd:{get:function(){return null!==this.fa?this.fa.j:1},set:function(t){var i=this.graduatedEnd;i!==t&&(0>t?t=0:1<t&&(t=1),null===this.fa&&(this.fa=new nu),this.fa.j=t,this.v(),this.g("graduatedEnd",i,t))}},graduatedSkip:{get:function(){return null!==this.fa?this.fa.o:null},set:function(t){var i=this.graduatedSkip;i!==t&&(null===this.fa&&(this.fa=new nu),this.fa.o=t,this.v(),this.g("graduatedSkip",i,t))}}}),pl.prototype.intersectsRect=pl.prototype.Yc,pl.prototype.containedInRect=pl.prototype.fh,pl.prototype.getNearestIntersectionPoint=pl.prototype.rs,pl.prototype.getDocumentBounds=pl.prototype.mi,pl.prototype.getDocumentPoint=pl.prototype.ga;var Ml=new X,Sl=new X;function Pl(){this.nc=!1,this.Hr="butt",this.Ir="miter",this.Jr=10,this.uj=0,this.br=null,this.jq=ms,this.gg=this.fg=Si}function Nl(t,i){return Ds.call(this),iu||(tu=Vr?new Fa(null).context:null,iu=!0),this.l|=2097152,this.ec="",this.xc="black",this.Ae="13px sans-serif",this.Lq=this.Cb=this.Gc=0,this.da=this.fa=this.Gm=null,this.Ih=0,this.df=null,this.Le=0,this.ze=this.Qb=this.Qc=null,"string"==typeof t?this.text=t:t&&Object.assign(this,t),i&&Object.assign(this,i),this}function Cl(t){null===t.da?t.da=new eu:t.da.nc&&(t.da=t.da.copy())}function Tl(t,i){t.l=6144|i.l,t.pb=i.opacity,t.Ma=i.background,t.areaBackground=i.areaBackground,t.jd=i.desiredSize.J(),t.minSize=i.minSize.J(),t.maxSize=i.maxSize.J(),null!==i.Lb?t.Lb=i.Lb.copy():t.Lb=null,t.Ca=i.scale,t.Kb=i.angle,t.stretch=i.stretch,t.Kg=i.margin.J(),t.Jb=i.alignment.J(),t.sk=i.alignmentFocus.J(),t.segmentFraction=i.segmentFraction,t.segmentOffset=i.segmentOffset.J(),t.segmentOrientation=i.segmentOrientation,null!==i.tb&&(t.tb=i.tb.copy()),t.shadowVisible=i.shadowVisible,t.ec=i.ec,t.xc=i.xc,t.Ae=i.Ae,null!==t.fa&&(t.fa=i.fa.copy()),null!==i.da&&(t.da=i.da.nc?i.da:i.da.copy()),t.Ih=i.Ih}function Ll(t,i,e){null===t.ze?(t.ze=i,t.Cb=e):(null!==t.Qb&&null!==t.Qc||(t.Qb=[],t.Qc=[],t.Qb.push(t.ze),t.Qc.push(t.Cb)),t.Qb.push(i),t.Qc.push(e),t.Qb.length>t.maxLines&&(t.l|=16777216))}function Al(t,i,e,n){var o=t.formatting===ql;o&&(i=i.trim());var r=0,s=t.Ae,a=t.spacingAbove+t.spacingBelow;a=Math.max(0,Dl(t)+a);var h=t.overflow===Ul?Bl(s):0;if(t.Gc>=t.maxLines)null!==n&&n.h(0,a);else if(s=i,t.wrap===El){t.Le=1;var l=Fl(i);if(0===h||l<=e)t.Cb=Math.max(t.Cb,l),Ll(t,i,t.Cb),null!==n&&n.h(l,a);else{for(l=Fl((r=jl(t,s))+(i=jl(t,s=s.substr(r.length))));0<i.length&&l<=e;)l=(r+=i)+(i=jl(t,s=s.substr(i.length))),o&&(l=l.trim()),l=Fl(l);for(o&&(i=i.trim()),r+=i,e=Math.max(1,e-h);Fl(r)>e&&1<r.length;)r=r.substr(0,r.length-1);t.l|=16777216;var u=Fl(r+=$l);t.Cb=u,Ll(t,r,u),null!==n&&n.h(u,a)}}else{for(h=0,0===s.length&&(h=1,Ll(t,s,0));0<s.length;){for(i=jl(t,s),s=s.substr(i.length);Fl(i)>e;){var c=1;for(l=Fl(i.substr(0,c)),u=0;l<=e;)c++,u=l,l=Fl(i.substr(0,c));if(1===c){var f=l;r=Math.max(r,l)}else f=u,r=Math.max(r,u);if(1>--c&&(c=1),Ll(t,i.substr(0,c),f),h++,i=i.substr(c),t.Gc+h>t.maxLines)break}for(l=Fl(i+(u=jl(t,s)));0<u.length&&l<=e;)l=(i+=u)+(u=jl(t,s=s.substr(u.length))),o&&(l=l.trim()),l=Fl(l);if(o&&(i=i.trim()),""!==i&&("­"===i[i.length-1]&&(i=i.substring(0,i.length-1)+""),0===u.length?(c=l,r=Math.max(r,l)):(c=u=Fl(i),r=Math.max(r,u)),Ll(t,i,c),h++,t.Gc+h>t.maxLines))break}t.Le=Math.min(t.maxLines,h),t.Cb=Math.max(t.Cb,r),null!==n&&n.h(t.Cb,a*t.Le)}}function jl(t,i){if(t.wrap===Gl)return i.substr(0,1);for(var e=i.length,n=0,o=Kl;n<e&&!o.test(i.charAt(n));)n++;for(t.formatting===Hl&&(e=Math.min(e,n+1));n<e&&o.test(i.charAt(n));)n++;return n>=i.length?i:i.substr(0,n)}function Fl(t){return null===tu?8*t.length:tu.measureText(t).width}function Dl(t){if(null!==t.df)return t.df;var i=t.Ae;if(null===tu){var e=16;return t.df=e}return void 0!==Wl[i]&&5e3>Jl?e=Wl[i]:(e=1.3*tu.measureText("M").width,Wl[i]=e,Jl++),t.df=e}function Bl(t){if(null===tu)return 6;if(void 0!==Zl[t]&&5e3>_l)var i=Zl[t];else i=tu.measureText($l).width,Zl[t]=i,_l++;return i}function Ol(t,i){var e=t.ec.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),n=t.spacingAbove+t.spacingBelow;if(n=Math.max(0,Dl(t)+n),0===e.length)return t.Cb=0,t.Gc=1,n;if(!t.isMultiline){var o=e.indexOf("\n",0);0<=o&&(e=e.substr(0,o))}o=0;for(var r,s=t.Gc=0,a=!1;!a;){if(-1===(r=e.indexOf("\n",s))&&(r=e.length,a=!0),s<=r){if(s=e.substr(s,r-s),t.wrap!==El){t.Le=0;var h=At.alloc();Al(t,s,i,h),o+=h.height,At.free(h),t.Gc+=t.Le}else Al(t,s,i,null),o+=n,t.Gc++;t.Gc===t.maxLines&&(a=!0)}s=r+1}return t.Lq=o}pl.className="Shape",pl.getFigureGenerators=function(){var t,i=new dt;for(t in Xi.Ze)t!==t.toLowerCase()&&i.add(t,Xi.Ze[t]);return i.freeze(),i},pl.defineFigureGenerator=function(t,i){var e=t.toLowerCase(),n=Xi.Ze;n[t]=i,n[e]=t},pl.getArrowheadGeometries=function(){var t=new dt;for(n in Xi.um)if(void 0===Ml[n]){var i=Ui.parse(Xi.um[n],!1);Ml[n]=i,(i=n.toLowerCase())!==n&&(Ml[i]=n)}for(var e in Ml)if(e!==e.toLowerCase()){var n=Ml[e];n instanceof Ui&&t.add(e,n)}return t.freeze(),t},pl.defineArrowheadGeometry=function(t,i){var e=null;e="string"==typeof i?Ui.parse(i,!1):i,"none"!==(i=t.toLowerCase())&&t!==i||w("Shape.defineArrowheadGeometry name must not be empty or None or all-lower-case: "+t);var n=Ml;n[t]=e,n[i]=t},Pl.prototype.copy=function(){var t=new Pl;return t.Hr=this.Hr,t.Ir=this.Ir,t.Jr=this.Jr,t.uj=this.uj,t.br=this.br,t.jq=this.jq,t.fg=this.fg.J(),t.gg=this.gg.J(),t},c(Nl,Ds),Nl.prototype.cloneProtected=function(t){Ds.prototype.cloneProtected.call(this,t),t.ec=this.ec,t.xc=this.xc,t.Ae=this.Ae,t.Gc=this.Gc,t.Cb=this.Cb,t.Lq=this.Lq,t.Gm=this.Gm,null!==this.fa&&(t.fa=this.fa.copy()),null!==this.da&&(t.da=this.da.nc?this.da:this.da.copy()),t.Ih=this.Ih,t.df=this.df,t.Le=this.Le,t.Qc=this.Qc,t.Qb=this.Qb,t.ze=this.ze},(i=Nl.prototype).th=function(){Ds.prototype.th.call(this),null!==this.da&&(this.da.nc=!0)},i.qb=function(t){t.classType===Nl?this.wrap=t:Ds.prototype.qb.call(this,t)},i.toString=function(){return 22<this.ec.length?'TextBlock("'+this.ec.substring(0,20)+'"...)':'TextBlock("'+this.ec+'")'},i.v=function(){Ds.prototype.v.call(this)},i.hh=function(t,i){if(null!==this.xc&&0!==this.ec.length&&null!==this.Ae){var e=this.naturalBounds,n=this.actualBounds,o=e.width,r=e.height,s=Dl(this),a=t.textAlign=this.textAlign,h=i.tn;"start"===a?a=h?"right":"left":"end"===a&&(a=h?"left":"right"),h=this.isUnderline;var l=this.isStrikethrough;Us(this,t,this.xc,!0,!1,e,n),(h||l)&&Us(this,t,this.xc,!1,!1,e,n),n=0,e=!1;var u=this.oe,c=u.dx-(s*u.m21+u.dx);u=u.dy-(s*u.m22+u.dy);var f=i.scale;switch(8>(c*c+u*u)*f*f&&(e=!0),i.ib!==t&&(e=!1),i.ib instanceof va&&(e=!1),!1===i.Gf("textGreeking")&&(e=!1),i=this.spacingAbove,c=this.spacingBelow,this.flip){case xs:t.translate(o,0),t.scale(-1,1);break;case vs:t.translate(0,r),t.scale(1,-1);break;case bs:t.translate(o,r),t.scale(-1,-1)}if(t.yc(),r>(f=(i+s+c)*(u=this.Gc))&&(n=(n=this.verticalAlignment).y*r-n.y*f+n.offsetY),1===u&&null!==this.ze)(c=this.Cb)>o&&(c=o),this.Oj(this.ze,t,0,n+i,o,s,c,e,a,h,l);else if(null!==this.Qc&&null!==this.Qb)for(f=0;f<u;f++){var d=this.Qc[f];d>o&&(d=o),n+=i,this.Oj(this.Qb[f],t,0,n,o,s,d,e,a,h,l),n+=s+c}switch(this.flip){case xs:t.scale(-1,1),t.translate(-o,0);break;case vs:t.scale(1,-1),t.translate(0,-r);break;case bs:t.scale(-1,-1),t.translate(-o,-r)}}},i.Oj=function(t,i,e,n,o,r,s,a,h,l,u){var c=0;if(a)"left"===h?c=0:"right"===h?c=o-s:"center"===h&&(c=(o-s)/2),i.fillRect(e+c,n+.25*r,s,1);else{if("left"===h?c=0:"right"===h?c=o:"center"===h&&(c=o/2),o=null!==zl?zl(this,r):.75*r,i.fillText(t,e+c,n+o),0===(t=r/20|0)&&(t=1),"right"===h?c-=s:"center"===h&&(c-=s/2),l){h=e+c,l=n+(a=null!==Rl?Rl(this,r):.8*r),o=e+c+s,a=n+a;var f=t;i.beginPath(),i.lineWidth=f,i.moveTo(h,l),i.lineTo(o,a),i.stroke(),i.Se(),i instanceof va&&i.ad.classList.add("gojs-td")}u&&(u=n+r-r/2.2|0,0!=t%2&&(u+=.5),n=e+c,r=u,e=e+c+s,s=u,c=t,i.beginPath(),i.lineWidth=c,i.moveTo(n,r),i.lineTo(e,s),i.stroke(),i.Se(),i instanceof va&&i.ad.classList.add("gojs-td"))}},i.kk=function(t,i,e){if(!Ds.prototype.kk.call(this,t,i,e))return!1;if(Us(this,t,this.xc,!0,!1,this.naturalBounds,this.actualBounds),e){if(0===this.svg.getElementsByTagName("text").length)return!0;for(i=this.svg.getElementsByClassName("gojs-td"),e=0;e<i.length;e++)Sa(t,i[e],!1)}else(i=this.svg).innerHTML=this.text,Sa(t,i,!0);return!0},i.nk=function(t){return!!(1<this.lineCount||this.isUnderline||this.isStrikethrough)||Ds.prototype.nk.call(this,t)},i.Dv=function(t,i){if("g"!==t.nodeName)t.setAttributeNS(null,"filter",i);else{t=t.getElementsByTagName("text");for(var e=0;e<t.length;e++)t[e].setAttributeNS(null,"filter",i)}},i.Wl=function(t,i,e,n){var o=this.Gc;this.Ih=t,this.l&=-16777217;var r,s=this.Ae;if(null!==tu&&Ql!==s&&(Ql=tu.font=s),this.Cb=this.Le=0,this.ze=this.Qb=this.Qc=this.df=null,isNaN(this.desiredSize.width)){if(0===(s=this.ec.replace(/\r\n/g,"\n").replace(/\r/g,"\n")).length)s=8;else if(this.isMultiline){for(var a=r=0,h=!1;!h;){var l=s.indexOf("\n",a);-1===l&&(l=s.length,h=!0),a=s.substr(a,l-a),this.formatting===ql&&(a=a.trim()),r=Math.max(r,Fl(a)),a=l+1}s=r}else 0<=(r=s.indexOf("\n",0))&&(s=s.substr(0,r)),s=Fl(s);s=Math.min(s,t/this.scale)}else s=this.desiredSize.width;if(null!==this.panel&&(s=Math.min(s,this.panel.maxSize.width)),r=Ol(this,s),h=r=isNaN(this.desiredSize.height)?Math.min(r,i/this.scale):this.desiredSize.height,0!==this.Cb&&null!==this.Qc&&null!==this.Qb&&this.overflow===Ul&&(i=this.Ae,i=this.overflow===Ul?Bl(i):0,l=this.spacingAbove+this.spacingBelow,l=Math.max(0,Dl(this)+l),!((h=Math.min(this.maxLines-1,Math.max(Math.floor(h/l+.01)-1,0)))+1>=this.Qb.length))){for(this.l|=16777216,l=this.Qb[h],i=Math.max(1,t-i);Fl(l)>i&&1<l.length;)l=l.substr(0,l.length-1);i=Fl(l+=$l),this.Qb[h]=l,this.Qb=this.Qb.slice(0,h+1),this.Qc[h]=i,this.Qc=this.Qc.slice(0,h+1),this.Le=this.Qb.length,this.Cb=Math.max(this.Cb,i),this.Gc=this.Le,1===this.Gc&&(this.ze=this.Qb[0])}(this.wrap===Vl||isNaN(this.desiredSize.width))&&(s=isNaN(t)?this.Cb:Math.min(t,this.Cb)),s=Math.max(e,s),r=Math.max(n,r),Ot(this.dc,s,r),this.Ge(0,0,s,r),null!==this.svg&&o!==this.Gc&&(this.Uc=!0)},i.eh=function(t,i,e,n){zs(this,t,i,e,n)},f.Object.defineProperties(Nl.prototype,{font:{get:function(){return this.Ae},set:function(t){var i=this.Ae;i!==t&&(this.Ae=t,this.df=null,this.v(),this.g("font",i,t))}},text:{get:function(){return this.ec},set:function(t){var i=this.ec;i!==(t=null!=t?t.toString():"")&&(this.ec=t,this.v(),this.g("text",i,t),this.Uc=!0)}},textAlign:{get:function(){return null!==this.da?this.da.Or:"start"},set:function(t){var i=this.textAlign;i===t||"start"!==t&&"end"!==t&&"left"!==t&&"right"!==t&&"center"!==t||(Cl(this),this.da.Or=t,this.N(),this.g("textAlign",i,t))}},flip:{get:function(){return null!==this.da?this.da.Xf:fs},set:function(t){var i=this.flip;i!==t&&(Cl(this),this.da.Xf=t,this.N(),this.g("flip",i,t))}},verticalAlignment:{get:function(){return null!==this.da?this.da.Yr:Ci},set:function(t){var i=this.verticalAlignment;i.D(t)||(t=t.J(),Cl(this),this.da.Yr=t,Hs(this),this.g("verticalAlignment",i,t))}},naturalBounds:{get:function(){if(!this.dc.w()){var t=At.alloc();Al(this,this.ec,999999,t);var i=t.width;At.free(t),t=Ol(this,i);var e=this.desiredSize;isNaN(e.width)||(i=e.width),isNaN(e.height)||(t=e.height),Ot(this.dc,i,t)}return this.dc}},isMultiline:{get:function(){return 0!=(2097152&this.l)},set:function(t){var i=0!=(2097152&this.l);i!==t&&(this.l^=2097152,this.v(),this.g("isMultiline",i,t))}},isUnderline:{get:function(){return 0!=(4194304&this.l)},set:function(t){var i=0!=(4194304&this.l);i!==t&&(this.l^=4194304,this.Uc=!0,this.N(),this.g("isUnderline",i,t))}},isStrikethrough:{get:function(){return 0!=(8388608&this.l)},set:function(t){var i=0!=(8388608&this.l);i!==t&&(this.l^=8388608,this.Uc=!0,this.N(),this.g("isStrikethrough",i,t))}},wrap:{get:function(){return null!==this.da?this.da.$r:Yl},set:function(t){var i=this.wrap;i!==t&&(Cl(this),this.da.$r=t,this.v(),this.g("wrap",i,t))}},overflow:{get:function(){return null!==this.da?this.da.$q:Xl},set:function(t){var i=this.overflow;i!==t&&(Cl(this),this.da.$q=t,this.v(),this.g("overflow",i,t))}},isOverflowed:{get:function(){return 0!=(16777216&this.l)}},stroke:{get:function(){return this.xc},set:function(t){var i=this.xc;i!==t&&(null!==t&&Wa(t,"TextBlock.stroke"),t instanceof Ia&&t.freeze(),this.xc=t,this.N(),this.g("stroke",i,t))}},lineCount:{get:function(){return this.Gc}},lineHeight:{get:function(){return Dl(this)}},editable:{get:function(){return 0!=(1048576&this.l)},set:function(t){var i=0!=(1048576&this.l);i!==t&&(this.l^=1048576,this.g("editable",i,t))}},textEditor:{get:function(){return null!==this.da?this.da.Qr:null},set:function(t){var i=this.textEditor;i!==t&&(Cl(this),this.da.Qr=t,this.g("textEditor",i,t))}},errorFunction:{get:function(){return null!==this.da?this.da.Hd:null},set:function(t){var i=this.errorFunction;i!==t&&(Cl(this),this.da.Hd=t,this.g("errorFunction",i,t))}},interval:{get:function(){return null!==this.fa?this.fa.Tk:1},set:function(t){var i=this.interval;if(i!==(t=Math.round(t))&&0!==t&&isFinite(t)){null===this.fa&&(this.fa=new nu),this.fa.Tk=t,this.v();var e=this.panel;null!==e&&(e.graduatedIntervals=null),this.g("interval",i,t)}}},graduatedStart:{get:function(){return null!==this.fa?this.fa.u:0},set:function(t){var i=this.graduatedStart;i!==t&&(0>t?t=0:1<t&&(t=1),null===this.fa&&(this.fa=new nu),this.fa.u=t,this.v(),this.g("graduatedStart",i,t))}},graduatedEnd:{get:function(){return null!==this.fa?this.fa.j:1},set:function(t){var i=this.graduatedEnd;i!==t&&(0>t?t=0:1<t&&(t=1),null===this.fa&&(this.fa=new nu),this.fa.j=t,this.v(),this.g("graduatedEnd",i,t))}},graduatedFunction:{get:function(){return null!==this.fa?this.fa.F:null},set:function(t){var i=this.graduatedFunction;i!==t&&(null===this.fa&&(this.fa=new nu),this.fa.F=t,this.v(),this.g("graduatedFunction",i,t))}},graduatedSkip:{get:function(){return null!==this.fa?this.fa.o:null},set:function(t){var i=this.graduatedSkip;i!==t&&(null===this.fa&&(this.fa=new nu),this.fa.o=t,this.v(),this.g("graduatedSkip",i,t))}},textValidation:{get:function(){return null!==this.da?this.da.vj:null},set:function(t){var i=this.textValidation;i!==t&&(Cl(this),this.da.vj=t,this.g("textValidation",i,t))}},textEdited:{get:function(){return null!==this.da?this.da.Pr:null},set:function(t){var i=this.textEdited;i!==t&&(Cl(this),this.da.Pr=t,this.g("textEdited",i,t))}},spacingAbove:{get:function(){return null!==this.da?this.da.Dr:0},set:function(t){var i=this.spacingAbove;i!==t&&(Cl(this),this.da.Dr=t,this.v(),this.g("spacingAbove",i,t))}},spacingBelow:{get:function(){return null!==this.da?this.da.Er:0},set:function(t){var i=this.spacingBelow;i!==t&&(Cl(this),this.da.Er=t,this.v(),this.g("spacingBelow",i,t))}},formatting:{get:function(){return null!==this.da?this.da.gq:ql},set:function(t){var i=this.formatting;i!==t&&(Cl(this),this.da.gq=t,this.v(),this.g("formatting",i,t))}},maxLines:{get:function(){return null!==this.da?this.da.Jq:1/0},set:function(t){var i=this.maxLines;i!==t&&(0>=(t=Math.floor(t))&&M(t,"> 0",Nl,"maxLines"),Cl(this),this.da.Jq=t,this.v(),this.g("maxLines",i,t))}},metrics:{get:function(){return{arrSize:null!==this.Qc?this.Qc:[this.Cb],arrText:null!==this.Qb?this.Qb:[this.ze],maxLineWidth:this.Cb,fontHeight:this.df}}},choices:{get:function(){return this.Gm},set:function(t){var i=this.Gm;i!==t&&(this.Gm=t,this.g("choices",i,t))}}});var Il,zl=null,Rl=null,El=new V(Nl,"None",0),Vl=new V(Nl,"WrapFit",1),Yl=new V(Nl,"WrapDesiredSize",2),Gl=new V(Nl,"WrapBreakAll",3),Xl=new V(Nl,"OverflowClip",0),Ul=new V(Nl,"OverflowEllipsis",1),ql=new V(Nl,"FormatTrim",0),Hl=new V(Nl,"FormatNone",0),Kl=/[ \u200b\u00ad]/,Wl=new X,Jl=0,Zl=new X,_l=0,$l="...",Ql="",tu=null,iu=!1;function eu(){this.nc=!1,this.Hd=null,this.Xf=fs,this.gq=ql,this.Jq=1/0,this.$q=Xl,this.Er=this.Dr=0,this.Or="start",this.vj=this.Qr=this.Pr=null,this.Yr=Ci,this.$r=Yl}function nu(){this.Tk=1,this.u=0,this.j=1,this.o=this.F=null}function ou(t,i){Ds.call(this),this.Eg=null,this.qo="",this.Xg=Ht,this.Nk=cs,this.Zg=this.Hd=null,this.Mk=oi,this.Xf=fs,this.vl=null,this.qn=!1,this.en=!0,this.al=!1,this.bt=this.rl=null,"string"==typeof t?this.source=t:t&&Object.assign(this,t),i&&Object.assign(this,i)}function ru(t){void 0===t&&(t=""),""!==t?Il[t]&&(delete Il[t],au--):(Il=new X,au=0)}function su(t,i){i.qy||(i.Fq=function(e){i.sq=!0,i.ln=!1;var n=i.Bg.copy();if(null!=n){for(n=n.iterator;n.next();){var o=n.value;o.N();var r=i.getAttribute("src")||"",s=o.Og.I(r);if(null!==s)for(var a=s.length,h=0;h<a;h++)r=s[h],o.Xn.add(r),r.Uc=!0,o.$b(),i.hn&&(void 0===i.eu&&(i.eu=e),null!==r.Zg&&r.Zg(r,e))}i.Bg.clear()}t.desiredSize.w()||(ea(t,!1),t.v())},i.Yp=function(t){i.ln=t;var e=i.Bg.copy();if(null!=e){for(e=e.iterator;e.next();){var n=e.value,o=i.getAttribute("src")||"",r=n.Og.I(o);if(null!==r){n=r.length,o=A();for(var s=0;s<n;s++)o.push(r[s]);if(i.hn)for(s=0;s<n;s++)null!==(r=o[s]).Hd&&r.Hd(r,t);j(o)}}i.Bg.clear()}},i.addEventListener("load",i.Fq),i.addEventListener("error",i.Yp),i.qy=!0)}Nl.className="TextBlock",eu.prototype.copy=function(){var t=new eu;return t.Hd=this.Hd,t.Xf=this.Xf,t.gq=this.gq,t.Jq=this.Jq,t.$q=this.$q,t.Dr=this.Dr,t.Er=this.Er,t.Or=this.Or,t.Pr=this.Pr,t.Qr=this.Qr,t.vj=this.vj,t.Yr=this.Yr,t.$r=this.$r,t},Nl.getEllipsis=function(){return $l},Nl.setEllipsis=function(t){$l=t,Zl=new X,_l=0},Nl.getBaseline=function(){return zl},Nl.setBaseline=function(t){zl=t},Nl.getUnderline=function(){return Rl},Nl.setUnderline=function(t){Rl=t},Nl.isValidFont=function(t){if(iu||(tu=Vr?new Fa(null).context:null,iu=!0),null===tu)return!0;var i=tu.font;if(t===i||"10px sans-serif"===t)return!0;tu.font="10px sans-serif",tu.font=t;var e=tu.font;if("10px sans-serif"!==e)return tu.font=i,!0;tu.font="19px serif";var n=tu.font;return tu.font=t,e=tu.font,tu.font=i,e!==n},Nl.FormatNone=Hl,Nl.FormatTrim=ql,Nl.None=El,Nl.OverflowClip=Xl,Nl.OverflowEllipsis=Ul,Nl.WrapBreakAll=Gl,Nl.WrapDesiredSize=Yl,Nl.WrapFit=Vl,nu.prototype.copy=function(){var t=new nu;return t.Tk=this.Tk,t.u=this.u,t.j=this.j,t.F=this.F,t.o=this.o,t},nu.className="GradElementSettings",c(ou,Ds),ou.prototype.cloneProtected=function(t){Ds.prototype.cloneProtected.call(this,t),t.qo=this.qo,t.element=this.Eg,t.Xg=this.Xg.J(),t.Nk=this.Nk,t.Xf=this.Xf,t.Hd=this.Hd,t.Zg=this.Zg,t.Mk=this.Mk.J(),t.en=this.en,t.rl=this.rl},ou.prototype.qb=function(t){t===fs||t===ds||t===ys?this.imageStretch=t:Ds.prototype.qb.call(this,t)},ou.prototype.toString=function(){return"Picture("+this.source+")#"+it(this)},ou.prototype.hA=function(){if(""!==this.source){ru(this.source);var t=this.source;this.source="",this.source=t}},ou.prototype.redraw=function(){this.N(),this.Uc=!0},ou.prototype.hh=function(t,i){var e=this.Eg;if(null!==e){var n=e.getAttribute("src");if(!(e instanceof HTMLImageElement&&(null===n||""===n)||e.ln instanceof Event&&t instanceof Da)){var o=t instanceof va;n=this.naturalBounds;var r=0,s=0,a=this.qn,h=a?+e.width:e.naturalWidth;if(a=a?+e.height:e.naturalHeight,void 0===h&&e.videoWidth&&(h=e.videoWidth),void 0===a&&e.videoHeight&&(a=e.videoHeight),h=h||n.width,a=a||n.height,0!==h&&0!==a){var l=h,u=a;this.sourceRect.w()&&(r=this.Xg.x,s=this.Xg.y,h=this.Xg.width,a=this.Xg.height);var c=h,f=a,d=this.Nk,p=this.Mk;switch(d){case fs:if(this.sourceRect.w())break;c>=n.width&&(r=r+p.offsetX+(c*p.x-n.width*p.x)),f>=n.height&&(s=s+p.offsetY+(f*p.y-n.height*p.y)),h=Math.min(n.width,c),a=Math.min(n.height,f);break;case cs:c=n.width,f=n.height;break;case ds:case ys:d===ds?(c*=d=Math.min(n.height/f,n.width/c),f*=d):d===ys&&(f*=d=Math.max(n.height/f,n.width/c),(c*=d)>=n.width&&(r=(r+p.offsetX+(c*p.x-n.width*p.x)/c)*h),f>=n.height&&(s=(s+p.offsetY+(f*p.y-n.height*p.y)/f)*a),h*=1/(c/n.width),a*=1/(f/n.height),c=n.width,f=n.height)}var g=c*(d=this.Df()*i.scale)*f*d,m=h*a/g,y=e.__goCache;d=null;var v=hu;if(!o){if(e.sq&&void 0!==y&&4<g&&m>v*v)for(null===y.gi&&(uu(y,4,l,u,e),uu(y,16,l,u,e)),l=(o=y.gi).length,u=0;u<l&&o[u].ratio*o[u].ratio<m;u++)d=o[u];if(!i.Xm){if(null===this.vl)if(null===this.Eg)this.vl=!1;else{o=new Fa(null).context;try{o.drawImage(this.Eg,0,0)}catch(t){this.en=!1}try{o.getImageData(0,0,1,1).data[3]&&(this.vl=!1),this.vl=!1}catch(t){this.vl=!0}}if(this.vl)return}}switch(o=c<n.width?p.offsetX+(n.width*p.x-c*p.x):0,p=f<n.height?p.offsetY+(n.height*p.y-f*p.y):0,this.flip){case xs:t.translate(Math.min(n.width,c),0),t.scale(-1,1);break;case vs:t.translate(0,Math.min(n.height,f)),t.scale(1,-1);break;case bs:t.translate(Math.min(n.width,c),Math.min(n.height,f)),t.scale(-1,-1)}if(t.yc(),i.Gf("pictureRatioOptimization")&&!i.$i&&void 0!==y&&null!==d&&1!==d.ratio){t.save(),i=d.ratio;try{t.drawImage(d.source,r/i,s/i,Math.min(d.source.width,h/i),Math.min(d.source.height,a/i),o,p,Math.min(n.width,c),Math.min(n.height,f)),t instanceof va&&(this.bt=[r/i,s/i,Math.min(d.source.width,h/i),Math.min(d.source.height,a/i),o,p,Math.min(n.width,c),Math.min(n.height,f)])}catch(t){this.en=!1}t.restore()}else try{t.drawImage(e,r,s,h,a,o,p,Math.min(n.width,c),Math.min(n.height,f)),t instanceof va&&(this.bt=[r,s,h,a,o,p,Math.min(n.width,c),Math.min(n.height,f)])}catch(t){this.en=!1}switch(this.flip){case xs:t.scale(-1,1),t.translate(-Math.min(n.width,c),0);break;case vs:t.scale(1,-1),t.translate(0,-Math.min(n.height,f));break;case bs:t.scale(-1,-1),t.translate(-Math.min(n.width,c),-Math.min(n.height,f))}}}}},ou.prototype.Wl=function(t,i,e,n){var o=this.desiredSize,r=Ks(this,!0),s=this.Eg,a=this.qn,h=0,l=0;(a||!this.al&&s&&s.complete)&&(this.al=!0),null===s?(isFinite(o.width)||(t=0),isFinite(o.height)||(i=0)):(h=a?+s.width:s.naturalWidth,l=a?+s.height:s.naturalHeight),isFinite(o.width)||r===cs||r===ps?(isFinite(t)||(this.sourceRect.w()?t=this.sourceRect.width:null!==s&&(t=h)),e=0):null!==s&&!1!==this.al&&(t=this.sourceRect.w()?this.sourceRect.width:h),isFinite(o.height)||r===cs||r===gs?(isFinite(i)||(this.sourceRect.w()?i=this.sourceRect.height:null!==s&&(i=l)),n=0):null!==s&&!1!==this.al&&(i=this.sourceRect.w()?this.sourceRect.height:l),isFinite(o.width)&&(t=o.width),isFinite(o.height)&&(i=o.height),o=this.maxSize,r=this.minSize,e=Math.max(e||0,r.width),n=Math.max(n||0,r.height),t=Math.min(o.width,t),i=Math.min(o.height,i),t=Math.max(e,t),i=Math.max(n,i),null===s||s.complete||(isFinite(t)||(t=0),isFinite(i)||(i=0)),Ot(this.dc,t,i),this.Ge(0,0,t,i)},ou.prototype.eh=function(t,i,e,n){zs(this,t,i,e,n)},f.Object.defineProperties(ou.prototype,{element:{get:function(){return this.Eg},set:function(t){var i=this.Eg;if(this.Uc=!0,i!==t){this.qn=t instanceof HTMLCanvasElement;var e=t instanceof HTMLImageElement;null===t||e||t instanceof HTMLVideoElement||this.qn||w("Picture.element must be an instance of Image, Canvas, or Video, not: "+t);var n=this.diagram;null!==n&&wr(n,this),this.Eg=t,null!==t&&e&&void 0===t.Bg&&(t.Bg=new $),null!==n&&e&&br(n,this),null!==t&&(this.qn||!0===t.complete?(t.hn&&(t.ln instanceof Event&&null!==this.Hd?this.Hd(this,t.ln):!0===t.sq&&!t.ln&&null!==this.Zg&&t.eu&&this.Zg(this,t.eu)),t.sq=!0,this.desiredSize.w()||(ea(this,!1),this.v())):e&&su(this,t)),this.g("element",i,t),this.N()}}},source:{get:function(){return this.qo},set:function(t){var i=this.qo;if(i!==t){this.Uc=!0,this.qo=t;var e=Il;if(Vr){var n=null;if(void 0!==e[t])n=e[t];else if(""!==t){30<au&&(ru(),e=Il),(n=b("img")).hn=!0,su(this,n);var o=this.rl;null!==o&&(n.crossOrigin=o(this)),n.src=t,e[t]=n,au++}this.element=n,null!==n&&void 0===n.__goCache&&(n.__goCache=new lu),this.v(),this.N()}this.g("source",i,t)}}},sourceCrossOrigin:{get:function(){return this.rl},set:function(t){if(this.rl!==t&&(this.rl=t,null!==this.element)){var i=this.element.getAttribute("src");null===t&&"string"==typeof i?this.element.crossOrigin=null:null!==t&&(this.element.crossOrigin=t(this)),this.element.src=i}}},sourceRect:{get:function(){return this.Xg},set:function(t){var i=this.Xg;i.D(t)||(this.Xg=t=t.J(),this.N(),this.g("sourceRect",i,t))}},imageStretch:{get:function(){return this.Nk},set:function(t){var i=this.Nk;i!==t&&(this.Nk=t,this.N(),this.g("imageStretch",i,t))}},flip:{get:function(){return this.Xf},set:function(t){var i=this.Xf;i!==t&&(this.Xf=t,this.N(),this.g("flip",i,t))}},imageAlignment:{get:function(){return this.Mk},set:function(t){var i=this.Mk;i.D(t)||(this.Mk=t=t.J(),this.N(),this.g("imageAlignment",i,t))}},errorFunction:{get:function(){return this.Hd},set:function(t){var i=this.Hd;i!==t&&(this.Hd=t,this.g("errorFunction",i,t))}},successFunction:{get:function(){return this.Zg},set:function(t){var i=this.Zg;i!==t&&(this.Zg=t,this.g("successFunction",i,t))}},naturalBounds:{get:function(){return this.dc}}}),ou.prototype.redraw=ou.prototype.redraw,ou.prototype.reloadSource=ou.prototype.hA;var au=0,hu=4;function lu(){this.gi=null}function uu(t,i,e,n,o){null===t.gi&&(t.gi=[]);var r=new Fa(null),s=r.context,a=1/i;r.width=e/i,r.height=n/i,0!==r.width&&0!==r.height&&(i=new cu(r.Oa,i),e=1,0<t.gi.length&&(o=(e=t.gi[t.gi.length-1]).source,e=e.ratio),s.setTransform(a*e,0,0,a*e,0,0),s.yc(),s.drawImage(o,0,0),t.gi.push(i))}function cu(t,i){this.source=t,this.ratio=i}function fu(){this.os=new Ui,this.mc=null}function du(t,i,e,n,o,r){t.mc=new $i,t.mc.startX=i,t.mc.startY=e,t.mc.isFilled=n,t.mc.isEvenOdd=r||!1,t.os.figures.add(t.mc),void 0!==o&&(t.mc.isShadowed=o)}function pu(t){var i=t.mc.segments.length;0<i&&t.mc.segments.M(i-1).close()}function gu(t,i,e,n,o,r,s){var a;void 0===a&&(a=!1);var h=new Qi(oe);h.point1X=i,h.point1Y=e,h.point2X=n,h.point2Y=o,h.endX=r,h.endY=s,a&&h.close(),t.mc.segments.add(h)}function mu(t,i,e,n,o){var r;void 0===r&&(r=!1);var s=new Qi(re);s.point1X=i,s.point1Y=e,s.endX=n,s.endY=o,r&&s.close(),t.mc.segments.add(s)}function yu(t,i,e,n,o,r,s,a){var h;void 0===h&&(h=!1),i=new Qi(ae,s,a,i,e,n,o,r),h&&i.close(),t.mc.segments.add(i)}function vu(t){var i=xu;return null!==i?(xu=null,i.reset(t),i):((i=new fu).reset(t),i)}ou.className="Picture",Il=new X,ou.clearCache=ru,lu.className="PictureCacheArray",cu.className="PictureCacheInstance",fu.prototype.reset=function(t){null!==t?(t.ka(),this.os=t,t.figures.clear()):this.os=new Ui,this.mc=null},fu.prototype.moveTo=function(t,i,e){void 0===e&&(e=!1);var n=new Qi(ee);n.endX=t,n.endY=i,e&&n.close(),this.mc.segments.add(n)},fu.prototype.lineTo=function(t,i,e){void 0===e&&(e=!1);var n=new Qi(ne);n.endX=t,n.endY=i,e&&n.close(),this.mc.segments.add(n)},fu.prototype.arcTo=function(t,i,e,n,o,r,s){void 0===r&&(r=0),void 0===s&&(s=!1);var a=new Qi(se);a.startAngle=t,a.sweepAngle=i,a.centerX=e,a.centerY=n,a.radiusX=o,a.radiusY=0!==r?r:o,s&&a.close(),this.mc.segments.add(a)};var xu=null;function bu(t,i){var e=t.toLowerCase(),n=Xi.Ze;n[t]=i,n[e]=t}function wu(){this.nc=!1,this.tr=this.Kp=this.zq=null,this.vr="",this.fr=this.oq=this.ur=null,this.hr="",this.gr=Tt,this.ir=null,this.jr="",this.lr=Si,this.Gq="",this.Hq=ti,this.Pq=nt,this.Kq=ot,this.Up=null,this.Cq=127,this.zr=rt,this.yr="gray",this.Vg=4}function ku(t,i){void 0===t||t instanceof ch||"string"==typeof t?Ch.call(this,t):(Ch.call(this),t&&(i=t)),this.G=2408959,this.Tf="",this.P=null,this.Jg="",this.Qf=this.Ug=null,this.ec="",this.Ah=this.Ig=null,this.ke=new pt(NaN,NaN).freeze(),this.nf=null,this.Ao=NaN,this.vw=-1,this.py=new Bt,this.Rh=null,this.ag=NaN,i&&Object.assign(this,i)}function Mu(t){null===t.P?t.P=new wu:t.P.nc&&(t.P=t.P.copy())}function Su(t){0!=(16384&t.G)!=!1&&(t.updateAdornments(),t.G&=-16385)}function Pu(t){if(!1===Iu(t)){zu(t,!0),t.Uk();var i=t.diagram;null!==i&&(i.De.add(t),i.$b())}}function Nu(t){if(t.G|=2097152,!1!==Iu(t)){var i=t.position,e=t.location;e.w()&&i.w()||ju(t,i,e),e=t.Ib;var n=Bt.alloc().assign(e);e.ka(),e.x=i.x,e.y=i.y,e.freeze(),t.Xl(n,e),Bt.free(n),zu(t,!1)}}function Cu(t,i,e,n){void 0===n&&(n=new pt),e=e.Mc()?oi:e;var o=i.naturalBounds;if(n.h(o.width*e.x+e.offsetX,o.height*e.y+e.offsetY),null===i||i===t)return n;for(i.transform.Ga(n),i=i.panel;null!==i&&i!==t;)i.transform.Ga(n),i=i.panel;return null!==t.Lb&&t.Lb.Ga(n),n.offset(-t.uc.x,-t.uc.y),n}function Tu(t){var i=pt.alloc(),e=t.locationObject,n=e.naturalBounds,o=e instanceof pl?e.strokeWidth:0;if(i.yi(0,0,n.width+o,n.height+o,t.locationSpot),e!==t)for(i.offset(-o/2,-o/2),e.transform.Ga(i),e=e.panel;null!==e&&e!==t;)e.transform.Ga(i),e=e.panel;return null!==t.Lb&&t.Lb.Ga(i),i.offset(-t.uc.x,-t.uc.y),i}function Lu(t,i){var e=t.py;isNaN(t.ag)&&(t.ag=Eh(t));var n=t.ag,o=2*n;if(!t.isShadowed)return e.h(i.x-1-n,i.y-1-n,i.width+2+o,i.height+2+o),e;n=i.x,o=i.y;var r=i.width;i=i.height;var s=t.shadowBlur;return r+=s,i+=s,n-=s/2,o-=s/2,0<(t=t.shadowOffset).x?r+=t.x:(n+=t.x,r-=t.x),0<t.y?i+=t.y:(o+=t.y,i-=t.y),e.h(n-1,o-1,r+2,i+2),e}function Au(t,i,e,n,o){null===i||t instanceof Ku||(i=i.animationManager).zb&&Jn(i,t,new pt(n,o),e)}function ju(t,i,e){var n=Tu(t),o=t.diagram,r=e.w(),s=i.w();r&&s?0!=(2097152&t.G)?Fu(t,i,e,o,n):Du(t,i,e,o,n):r?Fu(t,i,e,o,n):s&&Du(t,i,e,o,n),t.G|=2097152,pt.free(n),t.Uk()}function Fu(t,i,e,n,o){var r=i.x,s=i.y;i.h(e.x-o.x,e.y-o.y),null!==n&&((n=(e=n.animationManager).defaultAnimation.isAnimating)||!e.zb||t instanceof Ku||Jn(e,t,new pt(r,s),i),n||i.x===r&&i.y===s||t.g("position",new pt(r,s),i.copy()))}function Du(t,i,e,n,o){var r=e.copy();e.h(i.x+o.x,i.y+o.y),e.D(r)||null===n||t.g("location",r,e.copy())}function Bu(t,i,e){Ru(t,!1),t instanceof Ju&&Br(e,t),t.layer.isTemporary||i||e.Ya(),i=t.Ib;var n=e.viewportBounds;n.w()?Eu(t)?(Yt(i,n)||t.Fd(!1),t.updateAdornments()):t.isVisible()&&i.Yc(n)?(t.Fd(!0),t.updateAdornments()):t.Wb():e.vd=!0}function Ou(t,i,e,n){i.constructor===t.constructor||Hu||(Hu=!0,S('Should not change the class of the Part when changing category from "'+e+'" to "'+n+'"'),S(" Old class: "+F(t.constructor)+", new class: "+F(i.constructor)+", part: "+t.toString())),t.Ej();var o=t.data;e=t.layerName;var r=t.isSelected,s=t.isHighlighted,a=!0,h=!0,l=!1;t instanceof Ju&&(a=t.isTreeLeaf,h=t.isTreeExpanded,l=t.wasTreeExpanded),i.Af(t),i.cloneProtected(t),t.Tf=n,null!==t.svg&&(t.svg.remove(),t.svg=null,t.Uc=!0),t.v(),t.N(),n=!0,null!==(i=t.diagram)&&(n=i.skipsUndoManager,i.skipsUndoManager=!0),t.ub=o,t.G=r?4096|t.G:-4097&t.G,t.G=s?524288|t.G:-524289&t.G,t instanceof Ju&&(t.U=a?4|t.U:-5&t.U,t.U=h?1|t.U:-2&t.U,t.U=l?2|t.U:-3&t.U),null!==o&&t.La(),(o=t.layerName)!==e&&(t.Jg=e,t.layerName=o),null!==i&&(i.skipsUndoManager=n),t.Zc()&&t.C(64)}function Iu(t){return 0!=(32768&t.G)}function zu(t,i){t.G=i?32768|t.G:-32769&t.G}function Ru(t,i){t.G=i?65536|t.G:-65537&t.G}function Eu(t){return 0!=(131072&t.G)}function Vu(t,i){t.G=i?1048576|t.G:-1048577&t.G}function Yu(t,i){var e=i.containingGroup;return null!==e?1+Yu(t,e):i instanceof Ju&&null!==(i=i.labeledLink)?Yu(t,i):0}function Gu(t,i){var e=i.containingGroup;return null!==e||i instanceof Ju&&null!==(e=i.labeledLink)?Gu(t,e):i}function Xu(t,i,e){if(i===e||null===e)return!1;var n=i.containingGroup;return!(null===n||n!==e&&!Xu(t,n,e))||i instanceof Ju&&null!==(i=i.labeledLink)&&Xu(t,i,e)}function Uu(t){return!!t.isVisible()&&(null===(t=t.layer)||!t.isTemporary)}function qu(t,i,e,n,o,r){if(void 0===r&&(r=null),!(t.contains(i)||null!==r&&!r(i)||i instanceof Ku))if(t.add(i),i instanceof Ju){if(e&&i instanceof gc)for(var s=i.memberParts;s.next();)qu(t,s.value,e,n,o,r);if(!1!==o)for(s=i.linksConnected;s.next();){var a=s.value;if(!t.contains(a)){var h=a.fromNode,l=a.toNode;h=null===h||t.contains(h),l=null===l||t.contains(l),(o?h&&l:h||l)&&qu(t,a,e,n,o,r)}}if(1<n)for(i=i.Ou();i.next();)qu(t,i.value,e,n-1,o,r)}else if(i instanceof wc)for(i=i.labelNodes;i.next();)qu(t,i.value,e,n,o,r)}fu.className="StreamGeometryContext",bu("Rectangle",(function(t,i,e){t="r"+i+","+e;var n=Xi.Mf[t];return void 0!==n||((n=new Ui(Ui.u)).endX=i,n.endY=e,Xi.Nf<Xi.vm&&(Xi.Mf[t]=n,Xi.Nf++)),n})),bu("Square",(function(t,i,e){t="s"+i+","+e;var n=Xi.Mf[t];return void 0!==n||((n=new Ui(Ui.u)).endX=i,n.endY=e,n.defaultStretch=ds,Xi.Nf<Xi.vm&&(Xi.Mf[t]=n,Xi.Nf++)),n})),bu("RoundedRectangle",(function(t,i,e){t=t?t.parameter1:NaN,(isNaN(t)||0>t)&&(t=5),t=Math.min(t,i/3);var n="rr"+i+","+e+","+(t=Math.min(t,e/3)),o=Xi.Mf[n];if(void 0!==o)return o;var r=t*Xi.wg;return o=(new Ui).add(new $i(t,0,!0).add(new Qi(ne,i-t,0)).add(new Qi(oe,i,t,i-r,0,i,r)).add(new Qi(ne,i,e-t)).add(new Qi(oe,i-t,e,i,e-r,i-r,e)).add(new Qi(ne,t,e)).add(new Qi(oe,0,e-t,r,e,0,e-r)).add(new Qi(ne,0,t)).add(new Qi(oe,t,0,0,r,r,0).close())),1<r&&(o.spot1=new Ii(0,0,r,r),o.spot2=new Ii(1,1,-r,-r)),Xi.Nf<Xi.vm&&(Xi.Mf[n]=o,Xi.Nf++),o})),bu("Border","RoundedRectangle"),bu("Ellipse",(function(t,i,e){t="e"+i+","+e;var n=Xi.Mf[t];return void 0!==n||((n=new Ui(Ui.F)).endX=i,n.endY=e,n.spot1=Di,n.spot2=Bi,Xi.Nf<Xi.vm&&(Xi.Mf[t]=n,Xi.Nf++)),n})),bu("Circle",(function(t,i,e){t="c"+i+","+e;var n=Xi.Mf[t];return void 0!==n||((n=new Ui(Ui.F)).endX=i,n.endY=e,n.spot1=Di,n.spot2=Bi,n.defaultStretch=ds,Xi.Nf<Xi.vm&&(Xi.Mf[t]=n,Xi.Nf++)),n})),bu("TriangleRight",(function(t,i,e){return(new Ui).add(new $i(0,0).add(new Qi(ne,i,.5*e)).add(new Qi(ne,0,e).close())).pm(0,.25,.5,.75)})),bu("TriangleDown",(function(t,i,e){return(new Ui).add(new $i(0,0).add(new Qi(ne,i,0)).add(new Qi(ne,.5*i,e).close())).pm(.25,0,.75,.5)})),bu("TriangleLeft",(function(t,i,e){return(new Ui).add(new $i(i,e).add(new Qi(ne,0,.5*e)).add(new Qi(ne,i,0).close())).pm(.5,.25,1,.75)})),bu("TriangleUp",(function(t,i,e){return(new Ui).add(new $i(i,e).add(new Qi(ne,0,e)).add(new Qi(ne,.5*i,0).close())).pm(.25,.5,.75,1)})),bu("Triangle","TriangleUp"),bu("Diamond",(function(t,i,e){return(new Ui).add(new $i(.5*i,0).add(new Qi(ne,0,.5*e)).add(new Qi(ne,.5*i,e)).add(new Qi(ne,i,.5*e).close())).pm(.25,.25,.75,.75)})),bu("LineH",(function(t,i,e){return(t=new Ui(Ui.j)).startX=0,t.startY=e/2,t.endX=i,t.endY=e/2,t})),bu("LineV",(function(t,i,e){return(t=new Ui(Ui.j)).startX=i/2,t.startY=0,t.endX=i/2,t.endY=e,t})),bu("None","Rectangle"),bu("BarH","Rectangle"),bu("BarV","Rectangle"),bu("MinusLine","LineH"),bu("PlusLine",(function(t,i,e){return(new Ui).add(new $i(0,e/2,!1).add(new Qi(ne,i,e/2)).add(new Qi(ee,i/2,0)).add(new Qi(ne,i/2,e)))})),bu("XLine",(function(t,i,e){return(new Ui).add(new $i(0,e,!1).add(new Qi(ne,i,0)).add(new Qi(ee,0,0)).add(new Qi(ne,i,e)))})),bu("LineRight",(function(t,i,e){return(new Ui).add(new $i(.25*i,0,!1).add(new Qi(ne,.75*i,.5*e)).add(new Qi(ne,.25*i,e)))})),bu("LineDown",(function(t,i,e){return(new Ui).add(new $i(0,.25*e,!1).add(new Qi(ne,.5*i,.75*e)).add(new Qi(ne,i,.25*e)))})),bu("LineLeft",(function(t,i,e){return(new Ui).add(new $i(.75*i,0,!1).add(new Qi(ne,.25*i,.5*e)).add(new Qi(ne,.75*i,e)))})),bu("LineUp",(function(t,i,e){return(new Ui).add(new $i(0,.75*e,!1).add(new Qi(ne,.5*i,.25*e)).add(new Qi(ne,i,.75*e)))})),Xi.um={"":"",Standard:"F1 m 0,0 l 8,4 -8,4 2,-4 z",Backward:"F1 m 8,0 l -2,4 2,4 -8,-4 z",Triangle:"F1 m 0,0 l 8,4.62 -8,4.62 z",BackwardTriangle:"F1 m 8,4 l 0,4 -8,-4 8,-4 0,4 z",Boomerang:"F1 m 0,0 l 8,4 -8,4 4,-4 -4,-4 z",BackwardBoomerang:"F1 m 8,0 l -8,4 8,4 -4,-4 4,-4 z",SidewaysV:"m 0,0 l 8,4 -8,4 0,-1 6,-3 -6,-3 0,-1 z",BackwardV:"m 8,0 l -8,4 8,4 0,-1 -6,-3 6,-3 0,-1 z",OpenTriangle:"m 0,0 l 8,4 -8,4",BackwardOpenTriangle:"m 8,0 l -8,4 8,4",OpenTriangleLine:"m 0,0 l 8,4 -8,4 m 8.5,0 l 0,-8",BackwardOpenTriangleLine:"m 8,0 l -8,4 8,4 m -8.5,0 l 0,-8",OpenTriangleTop:"m 0,0 l 8,4 m 0,4",BackwardOpenTriangleTop:"m 8,0 l -8,4 m 0,4",OpenTriangleBottom:"m 0,8 l 8,-4",BackwardOpenTriangleBottom:"m 0,4 l 8,4",HalfTriangleTop:"F1 m 0,0 l 0,4 8,0 z m 0,8",BackwardHalfTriangleTop:"F1 m 8,0 l 0,4 -8,0 z m 0,8",HalfTriangleBottom:"F1 m 0,4 l 0,4 8,-4 z",BackwardHalfTriangleBottom:"F1 m 8,4 l 0,4 -8,-4 z",ForwardSemiCircle:"m 4,0 b 270 180 0 4 4",BackwardSemiCircle:"m 4,8 b 90 180 0 -4 4",Feather:"m 0,0 l 3,4 -3,4",BackwardFeather:"m 3,0 l -3,4 3,4",DoubleFeathers:"m 0,0 l 3,4 -3,4 m 3,-8 l 3,4 -3,4",BackwardDoubleFeathers:"m 3,0 l -3,4 3,4 m 3,-8 l -3,4 3,4",TripleFeathers:"m 0,0 l 3,4 -3,4 m 3,-8 l 3,4 -3,4 m 3,-8 l 3,4 -3,4",BackwardTripleFeathers:"m 3,0 l -3,4 3,4 m 3,-8 l -3,4 3,4 m 3,-8 l -3,4 3,4",ForwardSlash:"m 0,8 l 5,-8",BackSlash:"m 0,0 l 5,8",DoubleForwardSlash:"m 0,8 l 4,-8 m -2,8 l 4,-8",DoubleBackSlash:"m 0,0 l 4,8 m -2,-8 l 4,8",TripleForwardSlash:"m 0,8 l 4,-8 m -2,8 l 4,-8 m -2,8 l 4,-8",TripleBackSlash:"m 0,0 l 4,8 m -2,-8 l 4,8 m -2,-8 l 4,8",Fork:"m 0,4 l 8,0 m -8,0 l 8,-4 m -8,4 l 8,4",BackwardFork:"m 8,4 l -8,0 m 8,0 l -8,-4 m 8,4 l -8,4",LineFork:"m 0,0 l 0,8 m 0,-4 l 8,0 m -8,0 l 8,-4 m -8,4 l 8,4",BackwardLineFork:"m 8,4 l -8,0 m 8,0 l -8,-4 m 8,4 l -8,4 m 8,-8 l 0,8",CircleFork:"F1 m 6,4 b 0 360 -3 0 3 z m 0,0 l 6,0 m -6,0 l 6,-4 m -6,4 l 6,4",BackwardCircleFork:"F1 m 0,4 l 6,0 m -6,-4 l 6,4 m -6,4 l 6,-4 m 6,0 b 0 360 -3 0 3",CircleLineFork:"F1 m 6,4 b 0 360 -3 0 3 z m 1,-4 l 0,8 m 0,-4 l 6,0 m -6,0 l 6,-4 m -6,4 l 6,4",BackwardCircleLineFork:"F1 m 0,4 l 6,0 m -6,-4 l 6,4 m -6,4 l 6,-4 m 0,-4 l 0,8 m 7,-4 b 0 360 -3 0 3",Circle:"F1 m 8,4 b 0 360 -4 0 4 z",Block:"F1 m 0,0 l 0,8 8,0 0,-8 z",StretchedDiamond:"F1 m 0,3 l 5,-3 5,3 -5,3 -5,-3 z",Diamond:"F1 m 0,4 l 4,-4 4,4 -4,4 -4,-4 z",Chevron:"F1 m 0,0 l 5,0 3,4 -3,4 -5,0 3,-4 -3,-4 z",StretchedChevron:"F1 m 0,0 l 8,0 3,4 -3,4 -8,0 3,-4 -3,-4 z",NormalArrow:"F1 m 0,2 l 4,0 0,-2 4,4 -4,4 0,-2 -4,0 z",X:"m 0,0 l 8,8 m 0,-8 l -8,8",TailedNormalArrow:"F1 m 0,0 l 2,0 1,2 3,0 0,-2 2,4 -2,4 0,-2 -3,0 -1,2 -2,0 1,-4 -1,-4 z",DoubleTriangle:"F1 m 0,0 l 4,4 -4,4 0,-8 z m 4,0 l 4,4 -4,4 0,-8 z",BigEndArrow:"F1 m 0,0 l 5,2 0,-2 3,4 -3,4 0,-2 -5,2 0,-8 z",ConcaveTailArrow:"F1 m 0,2 h 4 v -2 l 4,4 -4,4 v -2 h -4 l 2,-2 -2,-2 z",RoundedTriangle:"F1 m 0,1 a 1,1 0 0 1 1,-1 l 7,3 a 0.5,1 0 0 1 0,2 l -7,3 a 1,1 0 0 1 -1,-1 l 0,-6 z",SimpleArrow:"F1 m 1,2 l -1,-2 2,0 1,2 -1,2 -2,0 1,-2 5,0 0,-2 2,2 -2,2 0,-2 z",AccelerationArrow:"F1 m 0,0 l 0,8 0.2,0 0,-8 -0.2,0 z m 2,0 l 0,8 1,0 0,-8 -1,0 z m 3,0 l 2,0 2,4 -2,4 -2,0 0,-8 z",BoxArrow:"F1 m 0,0 l 4,0 0,2 2,0 0,-2 2,4 -2,4 0,-2 -2,0 0,2 -4,0 0,-8 z",TriangleLine:"F1 m 8,4 l -8,-4 0,8 8,-4 z m 0.5,4 l 0,-8",CircleEndedArrow:"F1 m 10,4 l -2,-3 0,2 -2,0 0,2 2,0 0,2 2,-3 z m -4,0 b 0 360 -3 0 3 z",DynamicWidthArrow:"F1 m 0,3 l 2,0 2,-1 2,-2 2,4 -2,4 -2,-2 -2,-1 -2,0 0,-2 z",EquilibriumArrow:"m 0,3 l 8,0 -3,-3 m 3,5 l -8,0 3,3",FastForward:"F1 m 0,0 l 3.5,4 0,-4 3.5,4 0,-4 1,0 0,8 -1,0 0,-4 -3.5,4 0,-4 -3.5,4 0,-8 z",Kite:"F1 m 0,4 l 2,-4 6,4 -6,4 -2,-4 z",HalfArrowTop:"F1 m 0,0 l 4,4 4,0 -8,-4 z m 0,8",HalfArrowBottom:"F1 m 0,8 l 4,-4 4,0 -8,4 z",OpposingDirectionDoubleArrow:"F1 m 0,4 l 2,-4 0,2 4,0 0,-2 2,4 -2,4 0,-2 -4,0 0,2 -2,-4 z",PartialDoubleTriangle:"F1 m 0,0 4,3 0,-3 4,4 -4,4 0,-3 -4,3 0,-8 z",LineCircle:"F1 m 0,0 l 0,8 m 7 -4 b 0 360 -3 0 3 z",DoubleLineCircle:"F1 m 0,0 l 0,8 m 2,-8 l 0,8 m 7 -4 b 0 360 -3 0 3 z",TripleLineCircle:"F1 m 0,0 l 0,8 m 2,-8 l 0,8 m 2,-8 l 0,8 m 7 -4 b 0 360 -3 0 3 z",CircleLine:"F1 m 6 4 b 0 360 -3 0 3 z m 1,-4 l 0,8",DiamondCircle:"F1 m 8,4 l -4,4 -4,-4 4,-4 4,4 m 8,0 b 0 360 -4 0 4 z",PlusCircle:"F1 m 8,4 b 0 360 -4 0 4 l -8 0 z m -4 -4 l 0 8",OpenRightTriangleTop:"m 8,0 l 0,4 -8,0 m 0,4",OpenRightTriangleBottom:"m 8,8 l 0,-4 -8,0",Line:"m 0,0 l 0,8",DoubleLine:"m 0,0 l 0,8 m 2,0 l 0,-8",TripleLine:"m 0,0 l 0,8 m 2,0 l 0,-8 m 2,0 l 0,8",PentagonArrow:"F1 m 8,4 l -4,-4 -4,0 0,8 4,0 4,-4 z"},wu.prototype.copy=function(){var t=new wu;return t.zq=this.zq,t.Kp=this.Kp,t.tr=this.tr,t.vr=this.vr,t.ur=this.ur,t.oq=this.oq,t.fr=this.fr,t.hr=this.hr,t.gr=this.gr.J(),t.ir=this.ir,t.jr=this.jr,t.lr=this.lr.J(),t.Gq=this.Gq,t.Hq=this.Hq.J(),t.Pq=this.Pq.J(),t.Kq=this.Kq.J(),t.Up=this.Up,t.Cq=this.Cq,t.zr=this.zr.J(),t.yr=this.yr,t.Vg=this.Vg,t},c(ku,Ch),ku.prototype.cloneProtected=function(t){Ch.prototype.cloneProtected.call(this,t),t.G=-4097&this.G|49152,t.Tf=this.Tf,null!==this.P&&(t.P=this.P.nc?this.P:this.P.copy()),t.Jg=this.Jg,t.Qf=null,t.ec=this.ec,t.ke.assign(this.ke),t.Ao=this.Ao},(i=ku.prototype).Af=function(t){Ch.prototype.Af.call(this,t),t.oh(),t.Ug=null,t.nf=null,t.Rh=null},i.toString=function(){var t=F(this.constructor)+"#"+it(this);return null!==this.data&&(t+="("+D(this.data)+")"),t},i.th=function(){Ch.prototype.th.call(this),null!==this.P&&(this.P.nc=!0)},i.gk=function(t,i,e,n,o,r,s){var a=this.diagram;null!==a&&(t===de&&"elements"===i?o instanceof Ch?Bh(o,(function(t){od(a.partManager,t),xr(a,t)})):br(a,o):t===pe&&"elements"===i&&(o instanceof Ch?Bh(o,(function(t){rd(a.partManager,t,a)})):wr(a,o)),a.cb(t,i,e,n,o,r,s))},i.La=function(t){if(Ch.prototype.La.call(this,t),null!==this.data){for(var i=this.O.s,e=i.length,n=0;n<e;n++){var o=i[n];o instanceof Ch&&Bh(o,(function(t){null!==t.data&&t.La()}))}for(i=this.adornments;i.next();)i.value.La(t)}},ku.prototype.updateRelationshipsFromData=function(){var t;null!==this.data&&(null===(t=this.diagram)||void 0===t||t.partManager.updateRelationshipsFromData(this))},ku.prototype.Pj=function(t){var i=this.Qf;return null===i?null:i.I(t)},ku.prototype.bh=function(t,i){if(null!==i){var e=null,n=this.Qf;if(null!==n&&(e=n.I(t)),e!==i){if(null!==e){var o=e.diagram;null!==o&&o.remove(e)}null===n&&(this.Qf=n=new dt),i.Tf!==t&&(i.category=t),n.add(t,i),null!==(t=this.diagram)&&(t.add(i),null!==(t=i.adornedObject)&&(null!==(t=t.ih())&&(i.data=t.data)))}}},ku.prototype.Jf=function(t){var i=this.Qf;if(null!==i){var e=i.I(t);if(null!==e){var n=e.diagram;null!==n&&n.remove(e)}i.remove(t),0===i.count&&(this.Qf=null)}},ku.prototype.Ej=function(){var t=this.Qf;if(null!==t){var i=A();for(t=t.iterator;t.next();)i.push(t.key);t=i.length;for(var e=0;e<t;e++)this.Jf(i[e]);j(i)}},ku.prototype.updateAdornments=function(){var t=this.diagram;if(null!==t){for(var i=this.adornments;i.next();){var e=i.value;e.v(),e.placeholder&&e.placeholder.v()}t:{if(this.isSelected&&this.selectionAdorned&&(null!==(i=this.selectionObject)&&this.actualBounds.w()&&this.isVisible()&&i.Ed()&&i.actualBounds.w())){if(null===(e=this.Pj("Selection"))){if(null===(e=this.selectionAdornmentTemplate)&&(e=this.ph()?t.linkSelectionAdornmentTemplate:this instanceof gc?t.groupSelectionAdornmentTemplate:t.nodeSelectionAdornmentTemplate),!(e instanceof Ku))break t;Wh(e),null!==(e=e.copy())&&(this.ph()&&this.selectionObject===this.path&&(e.type=Ch.Link),e.adornedObject=i)}if(null!==e){e.type===Ch.Link&&e.v(),this.bh("Selection",e);break t}}this.Jf("Selection")}for(function(t,i){i.toolManager.mouseDownTools.each((function(i){i.isEnabled&&i.updateAdornments(t)})),i.toolManager.updateAdornments(t)}(this,t),i=this.adornments;i.next();)i.value.La()}},ku.prototype.Wb=function(){var t=this.diagram;null!==t&&(t.vd=!0,0!=(16384&this.G)!=!0&&(this.G|=16384))},ku.prototype.Ge=function(t,i,e,n){var o=this.uc;o.h(t,i,e,n),null===this.Lb&&(this.Lb=new Yi);var r=this.Lb;r.reset(),this.no(r,t,i,e,n),this.Lb=r,r.ws()||r.pp(o)},ku.prototype.no=function(t,i,e,n,o){if(1!==this.Ca&&t.scale(this.Ca),0!==this.Kb){var r=oi;this.locationSpot.sb()&&(r=this.locationSpot);var s=pt.alloc();if(this.locationObject!==this)for(e=(i=this.locationObject).naturalBounds,s.yi(e.x,e.y,e.width,e.height,r),null!==i.Lb&&i.Lb.Ga(s),s.offset(-i.measuredBounds.x,-i.measuredBounds.y),r=i.panel;null!==r&&r!==this;)null!==r.Lb&&r.Lb.Ga(s),s.offset(-r.measuredBounds.x,-r.measuredBounds.y),r=r.panel;else s.yi(i,e,n,o,r);t.rotate(this.Kb,s.x,s.y),pt.free(s)}},ku.prototype.move=function(t,i){!0===i?this.location=t:this.position=t},ku.prototype.moveTo=function(t,i,e){t=pt.allocAt(t,i),this.move(t,e),pt.free(t)},ku.prototype.isVisible=function(){if(!this.visible)return!1;var t=this.layer;if(null!==t){if(!t.visible)return!1;if(null!==(t=t.diagram)&&t.animationManager.fv(this))return!0}return!!(null===(t=this.containingGroup)||t.isSubGraphExpanded&&t.isVisible())},ku.prototype.Zb=function(t){var i=this.diagram;t?(this.C(4),this.Wb(),null!==i&&i.De.add(this)):(this.C(8),this.Ej()),this.oh(),null!==i&&(i.Ya(),i.N())},ku.prototype.fb=function(t){if(this.name===t)return this;var i=this.Rh;if(null===i&&(this.Rh=i=new dt),null!==i.I(t))return i.I(t);var e=Ch.prototype.fb.call(this,t);return null!==e?(i.set(t,e),e):(i.set(t,null),null)},ku.prototype.mi=function(t){return void 0===t&&(t=new Bt),t.assign(this.actualBounds)},ku.prototype.Va=function(){this.measure(1/0,1/0),this.arrange()},ku.prototype.arrange=function(){if(!1===na(this))Nu(this);else{oa(this,!1);var t=this.Ib,i=Bt.alloc();i.assign(t);var e=Eu(this);this.eh(0,0,this.uc.width,this.uc.height);var n=this.position;ju(this,n,this.location),t.ka(),t.x=n.x,t.y=n.y,t.freeze(),this.Xl(i,t),i.D(t)?this.Fd(e):!this.Zc()||Xi.B(i.width,t.width)&&Xi.B(i.height,t.height)||0<=this.vw&&this.C(16),Bt.free(i),zu(this,!1)}},(i=ku.prototype).Xl=function(t,i){var e=this.diagram;if(null!==e){var n=!1;if(!1===e.Zi&&t.w()){var o=Bt.alloc();o.assign(e.documentBounds),o.Fv(e.padding),t.x>o.x&&t.y>o.y&&t.right<o.right&&t.bottom<o.bottom&&i.x>o.x&&i.y>o.y&&i.right<o.right&&i.bottom<o.bottom&&(n=!0),Bt.free(o)}0!=(65536&this.G)!=!0&&t.D(i)||Bu(this,n,e),e.N(),!t.w()&&!i.w()||Rt(t,i)||(this instanceof Ju&&!e.undoManager.isUndoingRedoing&&this.Bd(),this.oh())}},i.zv=function(t,i,e){if(this.ph()||!t.w())return!1;var n=this.diagram;return null!==n&&Au(this,n,t,i,e),this.pa=t,this.G&=-2097153,!this.ke.w()||null!==n&&!n.animationManager.isTicking&&n.undoManager.isUndoingRedoing||(n=this.ke,this.ke=new pt(n.x+(t.x-i),n.y+(t.y-e)),this.g("location",n,this.ke.copy())),!1===Iu(this)&&!1===na(this)&&(Pu(this),Nu(this)),!0},i.mm=function(t,i,e){var n=this.ke,o=this.pa;if(e){if(n.x===t&&n.y===i)return;Iu(this)||na(this)?o.h(NaN,NaN):o.h(o.x+t-n.x,o.y+i-n.y),n.h(t,i)}else{if(o.x===t&&o.y===i)return;n.h(n.x+t-o.x,n.y+i-o.y),o.h(t,i)}Pu(this)},i.Av=function(){this.G&=-2097153,Pu(this)},i.si=function(){return!0},i.Zc=function(){return!0},i.ph=function(){return!1},i.Dd=function(){return!0},ku.prototype.canCopy=function(){if(!this.copyable)return!1;var t=this.layer;return null===t||!!t.allowCopy&&(null===(t=t.diagram)||!!t.allowCopy)},ku.prototype.canDelete=function(){if(!this.deletable)return!1;var t=this.layer;return null===t||!!t.allowDelete&&(null===(t=t.diagram)||!!t.allowDelete)},ku.prototype.canEdit=function(){if(!this.textEditable)return!1;var t=this.layer;return null===t||!!t.allowTextEdit&&(null===(t=t.diagram)||!!t.allowTextEdit)},ku.prototype.canGroup=function(){if(!this.groupable)return!1;var t=this.layer;return null===t||!!t.allowGroup&&(null===(t=t.diagram)||!!t.allowGroup)},ku.prototype.canMove=function(){if(!this.movable)return!1;var t=this.layer;return null===t||!!t.allowMove&&(null===(t=t.diagram)||!!t.allowMove)},ku.prototype.canReshape=function(){if(!this.reshapable)return!1;var t=this.layer;return null===t||!!t.allowReshape&&(null===(t=t.diagram)||!!t.allowReshape)},ku.prototype.canResize=function(){if(!this.resizable)return!1;var t=this.layer;return null===t||!!t.allowResize&&(null===(t=t.diagram)||!!t.allowResize)},ku.prototype.canRotate=function(){if(!this.rotatable)return!1;var t=this.layer;return null===t||!!t.allowRotate&&(null===(t=t.diagram)||!!t.allowRotate)},ku.prototype.canSelect=function(){if(!this.selectable)return!1;var t=this.layer;return null===t||!!t.allowSelect&&(null===(t=t.diagram)||!!t.allowSelect)},(i=ku.prototype).Fd=function(t){this.G=t?131072|this.G:-131073&this.G},i.oh=function(){var t=this.containingGroup;null!==t&&(t.v(),null!==t.placeholder&&t.placeholder.v(),t.Bd())},i.N=function(){var t=this.diagram;null!==t&&!na(this)&&!Iu(this)&&this.isVisible()&&this.Ib.w()&&t.N(Lu(this,this.Ib))},i.v=function(){Ch.prototype.v.call(this);var t=this.diagram;null!==t&&(t.De.add(this),this instanceof Ju&&null!==this.labeledLink&&Hs(this.labeledLink),t.$b(!0))},i.Vo=function(t){t||null!==(t=this.Ah)&&mc(t,this)},i.Wo=function(t){t||null!==(t=this.Ah)&&yc(t,this)},i.Lj=function(){var t=this.data;if(null!==t){var i=this.diagram;null!==i&&(null!==(i=i.model)&&i.cm(t))}},i.oz=function(){return Yu(this,this)},i.sz=function(){return Gu(this,this)},i.Td=function(t){return t instanceof gc&&Xu(this,this,t)},i.px=function(t){if(null===t)return null;if(this===t)return this.containingGroup;for(var i=this;null!==i;){if(i instanceof gc&&Vu(i,!0),i instanceof Ju){var e=i.labeledLink;null!==e&&(i=e)}i=i.containingGroup}for(e=null,i=t;null!==i;){if(0!=(1048576&i.G)){e=i;break}i instanceof Ju&&(null!==(t=i.labeledLink)&&(i=t)),i=i.containingGroup}for(i=this;null!==i;)i instanceof gc&&Vu(i,!1),i instanceof Ju&&(null!==(t=i.labeledLink)&&(i=t)),i=i.containingGroup;return e},ku.prototype.canLayout=function(){if(!this.isLayoutPositioned||!this.isVisible())return!1;var t=this.layer;return!(null!==t&&t.isTemporary||this instanceof Ju&&this.isLinkLabel)},ku.prototype.C=function(t){if(void 0===t&&(t=16777215),this.isLayoutPositioned&&0!=(t&this.layoutConditions)){var i=this.layer;null!==i&&i.isTemporary||this instanceof Ju&&this.isLinkLabel?i=!1:i=null===(i=this.diagram)||!i.undoManager.isUndoingRedoing}else i=!1;if(i)if(null!==(i=this.Ah)){var e=i.layout;null!==e?e.C():i.C(t)}else null!==(t=this.diagram)&&(null!==(t=t.layout)&&t.C())},f.Object.defineProperties(ku.prototype,{key:{get:function(){var t=this.diagram;if(null!==t)return t.model.wa(this.data)}},adornments:{get:function(){return null===this.Qf?H:this.Qf.iteratorValues}},layer:{get:function(){return this.Ig}},diagram:{get:function(){var t=this.Ig;return null==t?null:t.diagram}},layerName:{get:function(){return this.Jg},set:function(t){var i=this.Jg;if(i!==t){var e=this.diagram;if((null===e||null!==e.Qj(t)&&!e.partManager.addsToTemporaryLayer)&&(this.Jg=t,null!==e&&e.Ya(),this.g("layerName",i,t),null!==(i=this.layer)&&i.name!==t&&(null!==(e=i.diagram)&&(null!==(t=e.Qj(t))&&t!==i)))){var n=i.pc(-1,this,!0);if(0<=n&&e.cb(pe,"parts",i,this,null,n,!0),n=t.oi(99999999,this,!0),i.visible!==t.visible&&this.Zb(t.visible),0<=n&&e.cb(de,"parts",t,null,this,!0,n),null!==(n=this.layerChanged)){var o=e.aa;e.aa=!0,n(this,i,t),e.aa=o}}}}},layerChanged:{get:function(){return null!==this.P?this.P.zq:null},set:function(t){var i=this.layerChanged;i!==t&&(Mu(this),this.P.zq=t,this.g("layerChanged",i,t))}},zOrder:{get:function(){return this.Ao},set:function(t){var i=this.Ao;if(i!==t){this.Ao=t;var e=this.layer;null!==e&&Co(e,-1,this),this.g("zOrder",i,t),null!==(t=this.diagram)&&t.N()}}},locationObject:{get:function(){if(null===this.nf){var t=this.locationObjectName;""!==t?(t=this.fb(t),this.nf=null!==t?t:this):this instanceof Ku&&this.type!==Ch.Link&&null!==this.placeholder?this.nf=this.placeholder:this.nf=this}return this.nf.visible?this.nf:this}},minLocation:{get:function(){return null!==this.P?this.P.Pq:nt},set:function(t){var i=this.minLocation;i.D(t)||(t=t.J(),Mu(this),this.P.Pq=t,this.g("minLocation",i,t))}},maxLocation:{get:function(){return null!==this.P?this.P.Kq:ot},set:function(t){var i=this.maxLocation;i.D(t)||(t=t.J(),Mu(this),this.P.Kq=t,this.g("maxLocation",i,t))}},locationObjectName:{get:function(){return null!==this.P?this.P.Gq:""},set:function(t){var i=this.locationObjectName;i!==t&&(Mu(this),this.P.Gq=t,this.nf=null,this.v(),this.g("locationObjectName",i,t))}},locationSpot:{get:function(){return null!==this.P?this.P.Hq:ti},set:function(t){var i=this.locationSpot;i.D(t)||(t=t.J(),Mu(this),this.P.Hq=t,this.v(),this.g("locationSpot",i,t))}},location:{get:function(){return this.ke},set:function(t){var i=t.x,e=t.y,n=this.ke;if(!(n.x===i||isNaN(n.x)&&isNaN(i))||!(n.y===e||isNaN(n.y)&&isNaN(e))){if(i=t=t.copy(),this.ph())i=!1;else{if(this.ke=i,this.G|=2097152,!1===na(this)&&(Pu(this),(e=this.pa).w())){var o=this.diagram;if(null===o||o.animationManager.isTicking||!o.undoManager.isUndoingRedoing){var r=e.copy();e.h(e.x+(i.x-n.x),e.y+(i.y-n.y)),Au(this,o,e,r.x,r.y),this.g("position",r,e.copy())}}i=!0}i&&this.g("location",n,t.copy())}}},category:{get:function(){return this.Tf},set:function(t){var i=this.Tf;if(i!==t){null!==this.svg&&(this.svg.remove(),this.Uc=!0);var e=this.diagram,n=this.data,o=null;if(null!==e&&null!==n&&!(this instanceof Ku)){var r=e.model.undoManager;r.isEnabled&&!r.isUndoingRedoing&&(o=this.clone()).O.addAll(this.O)}this.Tf=t,this.g("category",i,t),null===e||null===n||this instanceof Ku?this instanceof Ku&&(null!==(o=this.adornedPart)&&(null!==(t=o.Qf)&&t.remove(i),o.bh(this.category,this))):(r=e.model).undoManager.isUndoingRedoing||(this.ph()?(e.partManager.setLinkCategoryForData(n,t),null!==(e=e.partManager.findLinkTemplateForCategory(t))&&(Wh(e),null!==(e=e.copy())&&Ou(this,e,i,t))):(null!==r&&r.jm(n,t),null!==(e=id(e.partManager,n,t))&&(Wh(e),null===(e=e.copy())||e instanceof wc||(n=this.location.copy(),Ou(this,e,i,t),this.location.w()||(this.location=n)))),null!==o&&((i=this.clone()).O.addAll(this.O),this.g("self",o,i)))}}},self:{get:function(){return this},set:function(t){Ou(this,t,this.category,t.category)}},copyable:{get:function(){return 0!=(1&this.G)},set:function(t){var i=0!=(1&this.G);i!==t&&(this.G^=1,this.g("copyable",i,t))}},deletable:{get:function(){return 0!=(2&this.G)},set:function(t){var i=0!=(2&this.G);i!==t&&(this.G^=2,this.g("deletable",i,t))}},textEditable:{get:function(){return 0!=(4&this.G)},set:function(t){var i=0!=(4&this.G);i!==t&&(this.G^=4,this.g("textEditable",i,t),this.Wb())}},groupable:{get:function(){return 0!=(8&this.G)},set:function(t){var i=0!=(8&this.G);i!==t&&(this.G^=8,this.g("groupable",i,t))}},movable:{get:function(){return 0!=(16&this.G)},set:function(t){var i=0!=(16&this.G);i!==t&&(this.G^=16,this.g("movable",i,t))}},selectionAdorned:{get:function(){return 0!=(32&this.G)},set:function(t){var i=0!=(32&this.G);i!==t&&(this.G^=32,this.g("selectionAdorned",i,t),this.Wb())}},isInDocumentBounds:{get:function(){return 0!=(64&this.G)},set:function(t){var i=0!=(64&this.G);if(i!==t){this.G^=64;var e=this.diagram;null!==e&&e.Ya(),this.g("isInDocumentBounds",i,t)}}},isLayoutPositioned:{get:function(){return 0!=(128&this.G)},set:function(t){var i=0!=(128&this.G);i!==t&&(this.G^=128,this.g("isLayoutPositioned",i,t),this.C(t?4:8))}},selectable:{get:function(){return 0!=(256&this.G)},set:function(t){var i=0!=(256&this.G);i!==t&&(this.G^=256,this.g("selectable",i,t),this.Wb())}},reshapable:{get:function(){return 0!=(512&this.G)},set:function(t){var i=0!=(512&this.G);i!==t&&(this.G^=512,this.g("reshapable",i,t),this.Wb())}},resizable:{get:function(){return 0!=(1024&this.G)},set:function(t){var i=0!=(1024&this.G);i!==t&&(this.G^=1024,this.g("resizable",i,t),this.Wb())}},rotatable:{get:function(){return 0!=(2048&this.G)},set:function(t){var i=0!=(2048&this.G);i!==t&&(this.G^=2048,this.g("rotatable",i,t),this.Wb())}},isSelected:{get:function(){return 0!=(4096&this.G)},set:function(t){var i=0!=(4096&this.G);if(i!==t){var e=this.diagram;if(!t||this.canSelect()&&!(null!==e&&e.selection.count>=e.maxSelectionCount)){this.G^=4096;var n=!1;if(null!==e){n=e.skipsUndoManager,e.skipsUndoManager=!0;var o=e.selection;o.ka(),t?o.add(this):o.remove(this),o.freeze()}this.g("isSelected",i,t),this.Wb(),null!==(t=this.selectionChanged)&&t(this),null!==e&&(e.$b(),e.skipsUndoManager=n)}}}},isHighlighted:{get:function(){return 0!=(524288&this.G)},set:function(t){var i=0!=(524288&this.G);if(i!==t){this.G^=524288;var e=this.diagram;null!==e&&((e=e.highlighteds).ka(),t?e.add(this):e.remove(this),e.freeze()),this.g("isHighlighted",i,t),this.N(),null!==(t=this.highlightedChanged)&&t(this)}}},isShadowed:{get:function(){return 0!=(8192&this.G)},set:function(t){var i=0!=(8192&this.G);i!==t&&(this.G^=8192,this.Uc=!0,this.g("isShadowed",i,t),this.N())}},isAnimated:{get:function(){return 0!=(262144&this.G)},set:function(t){var i=0!=(262144&this.G);i!==t&&(this.G^=262144,this.g("isAnimated",i,t))}},highlightedChanged:{get:function(){return null!==this.P?this.P.oq:null},set:function(t){var i=this.highlightedChanged;i!==t&&(Mu(this),this.P.oq=t,this.g("highlightedChanged",i,t))}},selectionObjectName:{get:function(){return null!==this.P?this.P.vr:""},set:function(t){var i=this.selectionObjectName;i!==t&&(Mu(this),this.P.vr=t,this.Ug=null,this.g("selectionObjectName",i,t))}},selectionAdornmentTemplate:{get:function(){return null!==this.P?this.P.tr:null},set:function(t){var i=this.selectionAdornmentTemplate;i!==t&&(Mu(this),this.P.tr=t,this.g("selectionAdornmentTemplate",i,t))}},selectionObject:{get:function(){if(null===this.Ug){var t=this.selectionObjectName;null!==t&&""!==t?(t=this.fb(t),this.Ug=null!==t?t:this):this instanceof wc?(t=this.path,this.Ug=null!==t?t:this):this.Ug=this}return this.Ug}},selectionChanged:{get:function(){return null!==this.P?this.P.ur:null},set:function(t){var i=this.selectionChanged;i!==t&&(Mu(this),this.P.ur=t,this.g("selectionChanged",i,t))}},resizeAdornmentTemplate:{get:function(){return null!==this.P?this.P.fr:null},set:function(t){var i=this.resizeAdornmentTemplate;i!==t&&(Mu(this),this.P.fr=t,this.g("resizeAdornmentTemplate",i,t))}},resizeObjectName:{get:function(){return null!==this.P?this.P.hr:""},set:function(t){var i=this.resizeObjectName;i!==t&&(Mu(this),this.P.hr=t,this.g("resizeObjectName",i,t))}},resizeObject:{get:function(){var t=this.resizeObjectName;return""!==t&&null!==(t=this.fb(t))?t:this}},resizeCellSize:{get:function(){return null!==this.P?this.P.gr:Tt},set:function(t){var i=this.resizeCellSize;i.D(t)||(t=t.J(),Mu(this),this.P.gr=t,this.g("resizeCellSize",i,t))}},rotateAdornmentTemplate:{get:function(){return null!==this.P?this.P.ir:null},set:function(t){var i=this.rotateAdornmentTemplate;i!==t&&(Mu(this),this.P.ir=t,this.g("rotateAdornmentTemplate",i,t))}},rotateObjectName:{get:function(){return null!==this.P?this.P.jr:""},set:function(t){var i=this.rotateObjectName;i!==t&&(Mu(this),this.P.jr=t,this.g("rotateObjectName",i,t))}},rotateObject:{get:function(){var t=this.rotateObjectName;return""!==t&&null!==(t=this.fb(t))?t:this}},rotationSpot:{get:function(){return null!==this.P?this.P.lr:Si},set:function(t){var i=this.rotationSpot;i.D(t)||(t=t.J(),Mu(this),this.P.lr=t,this.g("rotationSpot",i,t))}},text:{get:function(){return this.ec},set:function(t){var i=this.ec;i!==t&&(this.ec=t,this.g("text",i,t))}},containingGroup:{get:function(){return this.Ah},set:function(t){if(this.Zc()){var i=this.Ah;if(i!==t){null===t||this!==t&&!t.Td(this)||(this===t&&w("Cannot make a Group a member of itself: "+this.toString()),w("Cannot make a Group indirectly contain itself: "+this.toString()+" already contains "+t.toString())),this.C(2);var e=this.diagram;if(null!==i?yc(i,this):this instanceof gc&&null!==e&&e.ai.remove(this),this.Ah=t,null!==t?mc(t,this):this instanceof gc&&null!==e&&e.ai.add(this),this.C(1),null!==e&&e.aa){var n=this.data,o=e.model;if(null!==n&&o.Xj()){var r=o.wa(null!==t?t.data:null);o.mp(n,r)}}if(null!==(n=this.containingGroupChanged)&&(o=!0,null!==e&&(o=e.aa,e.aa=!0),n(this,i,t),null!==e&&(e.aa=o)),this instanceof gc)for(qu(e=new $,this,!0,0,!0),e=e.iterator;e.next();)if((n=e.value)instanceof Ju)for(n=n.linksConnected;n.next();)kc(n.value);if(this instanceof Ju){for(e=this.linksConnected;e.next();)kc(e.value);null!==(e=this.labeledLink)&&kc(e)}this.g("containingGroup",i,t),null!==t&&(null!==(i=t.layer)&&Co(i,-1,t))}}else w("cannot set the Part.containingGroup of a Link or Adornment")}},containingGroupChanged:{get:function(){return null!==this.P?this.P.Kp:null},set:function(t){var i=this.containingGroupChanged;i!==t&&(Mu(this),this.P.Kp=t,this.g("containingGroupChanged",i,t))}},isTopLevel:{get:function(){return!(null!==this.containingGroup||this instanceof Ju&&null!==this.labeledLink)}},layoutConditions:{get:function(){return null!==this.P?this.P.Cq:127},set:function(t){var i=this.layoutConditions;i!==t&&(Mu(this),this.P.Cq=t,this.g("layoutConditions",i,t))}},dragComputation:{get:function(){return null!==this.P?this.P.Up:null},set:function(t){var i=this.dragComputation;i!==t&&(Mu(this),this.P.Up=t,this.g("dragComputation",i,t))}},shadowOffset:{get:function(){return null!==this.P?this.P.zr:rt},set:function(t){var i=this.shadowOffset;i.D(t)||(t=t.J(),Mu(this),this.P.zr=t,this.N(),this.g("shadowOffset",i,t))}},shadowColor:{get:function(){return null!==this.P?this.P.yr:"gray"},set:function(t){var i=this.shadowColor;i!==t&&(Mu(this),this.P.yr=t,this.N(),this.g("shadowColor",i,t))}},shadowBlur:{get:function(){return null!==this.P?this.P.Vg:4},set:function(t){var i=this.shadowBlur;i!==t&&(Mu(this),this.P.Vg=t,this.N(),this.g("shadowBlur",i,t))}}}),ku.prototype.invalidateLayout=ku.prototype.C,ku.prototype.findCommonContainingGroup=ku.prototype.px,ku.prototype.isMemberOf=ku.prototype.Td,ku.prototype.findTopLevelPart=ku.prototype.sz,ku.prototype.findSubGraphLevel=ku.prototype.oz,ku.prototype.ensureBounds=ku.prototype.Va,ku.prototype.getDocumentBounds=ku.prototype.mi,ku.prototype.findObject=ku.prototype.fb,ku.prototype.moveTo=ku.prototype.moveTo,ku.prototype.invalidateAdornments=ku.prototype.Wb,ku.prototype.clearAdornments=ku.prototype.Ej,ku.prototype.removeAdornment=ku.prototype.Jf,ku.prototype.addAdornment=ku.prototype.bh,ku.prototype.findAdornment=ku.prototype.Pj,ku.prototype.updateTargetBindings=ku.prototype.La;var Hu=!1;function Ku(t,i){void 0===t||t instanceof ch||"string"==typeof t?ku.call(this,t):(ku.call(this),t&&(i=t)),this.G&=-257,this.Jg="Adornment",this.ue=null,this.Aw=0,this.Uw=!1,this.j=this.$a=null,i&&Object.assign(this,i)}function Wu(){this.nc=!1,this.Vr=this.gj=this.Eq=this.Dq=null,this.yp=$t,this.er=dc,this.Kr=this.ij=this.Nq=this.Mq=null}function Ju(t,i){void 0===t||t instanceof ch||"string"==typeof t?ku.call(this,t):(ku.call(this),t&&(i=t)),this.U=13,this.Ba=null,this.jb=new Z,this.wc=this.af=this.Yk=null,this.ci=!1,i&&Object.assign(this,i)}function Zu(t){null===t.Ba?t.Ba=new Wu:t.Ba.nc&&(t.Ba=t.Ba.copy())}function _u(t,i){null!==i&&(null===t.af&&(t.af=new $),t.af.add(i))}function $u(t,i,e,n){if(null===i||null===t.af)return null;for(var o=t.af.iterator;o.next();){var r=o.value;if(r.Ds===t&&r.cv===i&&r.Ox===e&&r.Px===n||r.Ds===i&&r.cv===t&&r.Ox===n&&r.Px===e)return r}return null}function Qu(t,i){for(t=t.linksConnected;t.next();){var e=t.value;e.fromPort!==i&&e.toPort!==i||(tc(e.fromPort),tc(e.toPort),e.bb())}}function tc(t){if(null!==t){var i=t.Zn;null!==i&&i.Sl(),null===(i=(t=t.part).containingGroup)||t.isVisible()||tc(i.port)}}function ic(t,i,e,n){if(null!==i&&!e.has(i)){e.add(i);var o=!0,r=t.diagram;null!==r&&(o=r.isTreePathToChildren),i.linksConnected.each((function(r){r.isTreeLink?(o?r.fromNode===i:r.toNode===i)&&ic(t,o?r.toNode:r.fromNode,e,n):n.add(r)}))}}function ec(t,i,e){tc(e);var n=t.jb.contains(i);if(n||t.jb.add(i),!n||i.fromNode===i.toNode){var o=t.linkConnected;if(null!==o){var r=!0,s=t.diagram;null!==s&&(r=s.aa,s.aa=!0),o(t,i,e),null!==s&&(s.aa=r)}}!n&&i.isTreeLink&&(e=i.fromNode,i=i.toNode,null!==e&&null!==i&&e!==i&&(n=!0,null!==(t=t.diagram)&&(n=t.isTreePathToChildren),r=n?e:i,(o=n?i:e).ci||(o.ci=r),!r.isTreeLeaf||null!==t&&t.undoManager.isUndoingRedoing||(n?e===r&&(r.isTreeLeaf=!1):i===r&&(r.isTreeLeaf=!1))))}function nc(t,i,e){tc(e);var n=t.jb.remove(i),o=null;if(n||i.toNode===i.fromNode){var r=t.linkDisconnected;if(o=t.diagram,null!==r){var s=!0;null!==o&&(s=o.aa,o.aa=!0),r(t,i,e),null!==o&&(o.aa=s)}}n&&i.isTreeLink&&(e=!0,null!==o&&(e=o.isTreePathToChildren),t=e?i.toNode:i.fromNode,i=e?i.fromNode:i.toNode,null!==t&&(t.ci=!1),null===i||i.isTreeLeaf||(0===i.jb.count?(i.ci=null,null!==o&&o.undoManager.isUndoingRedoing||(i.isTreeLeaf=!0)):oc(i)))}function oc(t){if(t.ci=!1,0!==t.jb.count){var i=!0,e=t.diagram;if(null===e||!e.undoManager.isUndoingRedoing){for(null!==e&&(i=e.isTreePathToChildren),e=t.jb.iterator;e.next();){var n=e.value;if(n.isTreeLink)if(i){if(n.fromNode===t)return void(t.isTreeLeaf=!1)}else if(n.toNode===t)return void(t.isTreeLeaf=!1)}t.isTreeLeaf=!0}}}function rc(t){null===t.wc?t.wc=new dt:t.wc.clear(),t.qm(t,(function(t,i){sc(t,i)})),0===t.wc.count&&t.wc.add("",t)}function sc(t,i){var e=i.portId;null!==e&&null!==t.wc&&t.wc.add(e,i)}function ac(t,i,e){var n=i.portId;if(null!==n&&(null!==t.wc&&t.wc.remove(n),null!==(i=t.diagram)&&e)){for(e=null,t=t.findLinksConnected(n);t.next();)n=t.value,null===e&&(e=A()),e.push(n);if(null!==e){for(t=0;t<e.length;t++)i.remove(e[t]);j(e)}}}function hc(t,i){return null===(i=i.pg())?0:1+hc(t,i)}function lc(t,i,e,n,o,r,s){if(1<n)for(var a=e?t.Mo():t.Sd();a.next();){var h=a.value;h.isTreeLink&&(null===(h=h.To(t))||h===t||i.contains(h)||(i.add(h),lc(h,i,e,n-1,o,r,s)))}else uc(t,i,e,o,r,s)}function uc(t,i,e,n,o,r){for(var s=o===t||t.isTreeExpanded,a=e?t.Mo():t.Sd(),h={};a.next();){var l=a.value;if(l.isTreeLink&&(null!==(l=l.To(t))&&l!==t)){var u=i.contains(l);if(u||i.add(l),s){var c=e?l.Oo():l.Po();h.uv=t,c.all(function(t){return function(i){return i===t.uv||!i.isTreeExpanded}}(h))&&n.Aj(l,o),l.oh(),l.Zb(!1)}l.isTreeExpanded&&(l.wasTreeExpanded=l.isTreeExpanded,u||uc(l,i,e,n,o,r))}h={uv:h.uv}}t.isTreeExpanded=!1}function cc(t,i,e,n,o,r,s){for(var a=r!==t&&t.isTreeExpanded,h=e?t.Mo():t.Sd(),l={};h.next();){var u=h.value;if(u.isTreeLink&&(a||u.fd||u.bb(),null!==(u=u.To(t))&&u!==t&&!i.contains(u))){if(i.add(u),!a){u.Zb(!0),u.oh();var c=e?u.Oo():u.Po();l.vv=t,c.all(function(t){return function(i){return i===t.vv||!i.isTreeExpanded}}(l))&&o.Cj(u,r)}(2<n||u.wasTreeExpanded)&&(u.wasTreeExpanded=!1,cc(u,i,e,n-1,o,r,s))}l={vv:l.vv}}t.isTreeExpanded=!0}ku.className="Part",ku.LayoutNone=0,ku.LayoutAdded=1,ku.LayoutRemoved=2,ku.LayoutShown=4,ku.LayoutHidden=8,ku.LayoutNodeSized=16,ku.LayoutGroupLayout=32,ku.LayoutNodeReplaced=64,ku.LayoutStandard=127,ku.LayoutAll=16777215,c(Ku,ku),Ku.prototype.toString=function(){var t=this.adornedPart;return"Adornment("+this.category+")"+(null!==t?t.toString():"")},Ku.prototype.updateRelationshipsFromData=function(){},Ku.prototype.Ul=function(t){var i=this.adornedObject,e=null==i?void 0:i.part;if(e instanceof wc&&i instanceof pl){i=e.path,e.Ul(t),t=i.geometry,i=(e=this.O.s).length;for(var n=0;n<i;n++){var o=e[n];o.isPanelMain&&o instanceof pl&&(o.ua=t)}}},Ku.prototype.si=function(){var t=this.ue;return null===t||(null===(t=t.part)||!na(t))},Ku.prototype.Zc=function(){return!1},Ku.prototype.gk=function(t,i,e,n,o,r,s){if(t===de&&"elements"===i){if(o instanceof bc)null===this.$a&&(this.$a=o);else if(o instanceof Ch){var a=o.Nl((function(t){return t instanceof bc}));a instanceof bc&&null===this.$a&&(this.$a=a)}}else t===pe&&"elements"===i&&null!==this.$a&&(n===this.$a||n instanceof Ch&&this.$a.rg(n))&&(this.$a=null);ku.prototype.gk.call(this,t,i,e,n,o,r,s)},Ku.prototype.updateAdornments=function(){},Ku.prototype.Lj=function(){},f.Object.defineProperties(Ku.prototype,{placeholder:{get:function(){return this.$a}},adornedObject:{get:function(){return this.ue},set:function(t){var i=this.adornedPart,e=null;null!==t&&(e=t.part),null===i||null!==t&&i===e||i.Jf(this.category),this.ue=t,null!==e&&e.bh(this.category,this)}},adornedPart:{get:function(){var t=this.ue;return null!==t?t.part:null}},containingGroup:{get:function(){return null}}}),Ku.className="Adornment",Wu.prototype.copy=function(){var t=new Wu;return t.Dq=this.Dq,t.Eq=this.Eq,t.gj=this.gj,t.Vr=this.Vr,t.yp=this.yp.J(),t.er=this.er,t.Mq=this.Mq,t.Nq=this.Nq,t.ij=this.ij,t.Kr=this.Kr,t},c(Ju,ku),Ju.prototype.cloneProtected=function(t){ku.prototype.cloneProtected.call(this,t),t.U=this.U,null!==this.Ba&&(t.Ba=this.Ba.nc?this.Ba:this.Ba.copy())},(i=Ju.prototype).Af=function(t){ku.prototype.Af.call(this,t),t.Bd(),t.af=this.af,t.wc=null},i.th=function(){ku.prototype.th.call(this),null!==this.Ba&&(this.Ba.nc=!0)},i.Lz=function(t,i,e){null==i&&(i=""),null==e&&(e=""),null!==(t=$u(this,t,i,e))&&t.Sl()},i.gk=function(t,i,e,n,o,r,s){(t===de&&"elements"===i||t===pe&&"elements"===i)&&(this.wc=null),ku.prototype.gk.call(this,t,i,e,n,o,r,s)},i.Bd=function(t){for(var i=this.linksConnected;i.next();){var e=i.value;void 0!==t&&t.contains(e)||(tc(e.fromPort),tc(e.toPort),e.bb())}},i.si=function(){return!0},Ju.prototype.getAvoidableRect=function(t){return t.set(this.actualBounds),t.Co(this.avoidableMargin),t},Ju.prototype.findVisibleNode=function(){for(var t=this;null!==t&&!t.isVisible();)t=t.containingGroup;return t},Ju.prototype.isVisible=function(){if(!ku.prototype.isVisible.call(this))return!1;var t=!0,i=ts,e=this.diagram;if(null!==e&&(t=e.isTreePathToChildren,i=e.treeCollapsePolicy),i===ts){if(null!==(t=this.pg())&&!t.isTreeExpanded)return!1}else if(i===is){if(0<(t=t?this.Oo():this.Po()).count&&t.all((function(t){return!t.isTreeExpanded})))return!1}else if(i===es&&(0<(t=t?this.Oo():this.Po()).count&&t.any((function(t){return!t.isTreeExpanded}))))return!1;return null===(t=this.labeledLink)||t.isVisible()},Ju.prototype.Zb=function(t){ku.prototype.Zb.call(this,t);for(var i=this.linksConnected;i.next();){var e=i.value;if(t&&null!==this.containingGroup){var n=e.To(this);null===n||n.Td(this.containingGroup)||e.bb()}e.Zb(t)}},Ju.prototype.qx=function(){var t=new $,i=new $;return ic(this,this,t,i),i.iterator},Ju.prototype.findLinksConnected=function(t){if(void 0===t&&(t=null),null===t)return this.jb.iterator;var i=new W(this.jb),e=this;return i.predicate=function(i){return i.fromNode===e&&i.fromPortId===t||i.toNode===e&&i.toPortId===t},i},(i=Ju.prototype).Mo=function(t){void 0===t&&(t=null);var i=new W(this.jb),e=this;return i.predicate=function(i){return i.fromNode===e&&(null===t||i.fromPortId===t)},i},i.Sd=function(t){void 0===t&&(t=null);var i=new W(this.jb),e=this;return i.predicate=function(i){return i.toNode===e&&(null===t||i.toPortId===t)},i},i.Mu=function(t){void 0===t&&(t=null);for(var i=null,e=null,n=this.jb.iterator;n.next();){var o=n.value;o.fromNode===this?null!==t&&o.fromPortId!==t||(o=o.toNode,null!==i?i.add(o):null!==e&&e!==o?((i=new $).add(e),i.add(o)):e=o):o.toNode!==this||null!==t&&o.toPortId!==t||(o=o.fromNode,null!==i?i.add(o):null!==e&&e!==o?((i=new $).add(e),i.add(o)):e=o)}return null!==i?i.iterator:null!==e?new K(e):H},i.Po=function(t){void 0===t&&(t=null);for(var i=null,e=null,n=this.jb.iterator;n.next();){var o=n.value;o.fromNode!==this||null!==t&&o.fromPortId!==t||(o=o.toNode,null!==i?i.add(o):null!==e&&e!==o?((i=new $).add(e),i.add(o)):e=o)}return null!==i?i.iterator:null!==e?new K(e):H},i.Oo=function(t){void 0===t&&(t=null);for(var i=null,e=null,n=this.jb.iterator;n.next();){var o=n.value;o.toNode!==this||null!==t&&o.toPortId!==t||(o=o.fromNode,null!==i?i.add(o):null!==e&&e!==o?((i=new $).add(e),i.add(o)):e=o)}return null!==i?i.iterator:null!==e?new K(e):H},i.jz=function(t,i,e){void 0===i&&(i=null),void 0===e&&(e=null);var n=new W(this.jb),o=this;return n.predicate=function(n){return!(n.fromNode!==o||n.toNode!==t||null!==i&&n.fromPortId!==i||null!==e&&n.toPortId!==e)||!(n.fromNode!==t||n.toNode!==o||null!==e&&n.fromPortId!==e||null!==i&&n.toPortId!==i)},n},i.kz=function(t,i,e){void 0===i&&(i=null),void 0===e&&(e=null);var n=new W(this.jb),o=this;return n.predicate=function(n){return!(n.fromNode!==o||n.toNode!==t||null!==i&&n.fromPortId!==i||null!==e&&n.toPortId!==e)},n},Ju.prototype.updateRelationshipsFromData=function(){var t=this.diagram;null!==t&&t.partManager.updateRelationshipsFromData(this)},(i=Ju.prototype).Vo=function(t){ku.prototype.Vo.call(this,t),t||(oc(this),null!==(t=this.Yk)&&Mc(t,this))},i.Wo=function(t){ku.prototype.Wo.call(this,t),t||null!==(t=this.Yk)&&null!==t.wd&&(t.wd.remove(this),t.v())},i.Lj=function(){if(0<this.jb.count){var t=this.diagram;if(null!==t)for(var i=null===t.commandHandler||t.commandHandler.deletesConnectedLinks,e=this.jb.copy().iterator;e.next();){var n=e.value;i?t.remove(n):(n.fromNode===this&&(n.fromNode=null),n.toNode===this&&(n.toNode=null))}}this.labeledLink=null,ku.prototype.Lj.call(this)},i.ns=function(t){if(null===this.wc){if(""===t&&!1===this.Te)return this;rc(this)}var i=this.wc.I(t);return null!==i||""!==t&&null!==(i=this.wc.I(""))?i:this},i.Nz=function(t){if(null===t||t===this)return!1;var i=!0,e=this.diagram;if(null!==e&&(i=e.isTreePathToChildren),e=this,i)for(;e!==t;){i=null;for(var n=e.jb.iterator;n.next();){var o=n.value;if(o.isTreeLink&&((i=o.fromNode)!==e&&i!==this))break}if(i===this||null===i||i===e)return!1;e=i}else for(;e!==t;){for(i=null,n=e.jb.iterator;n.next()&&(!(o=n.value).isTreeLink||((i=o.toNode)===e||i===this)););if(i===this||null===i||i===e)return!1;e=i}return!0},i.xz=function(){var t=!0,i=this.diagram;if(null!==i&&(t=i.isTreePathToChildren),i=this,t)for(;;){t=null;for(var e=i.jb.iterator;e.next();){var n=e.value;if(n.isTreeLink&&((t=n.fromNode)!==i&&t!==this))break}if(t===this)return this;if(null===t||t===i)return i;i=t}else for(;;){for(t=null,e=i.jb.iterator;e.next()&&(!(n=e.value).isTreeLink||((t=n.toNode)===i||t===this)););if(t===this)return this;if(null===t||t===i)return i;i=t}},i.gz=function(t){if(null===t)return null;if(this===t)return this;for(var i=this;null!==i;)Vu(i,!0),i=i.pg();var e=null;for(i=t;null!==i;){if(0!=(1048576&i.G)){e=i;break}i=i.pg()}for(i=this;null!==i;)Vu(i,!1),i=i.pg();return e},i.kh=function(){var t=!0,i=this.diagram;if(null!==i&&(t=i.isTreePathToChildren),i=this.jb.iterator,t){for(;i.next();)if((t=i.value).isTreeLink&&t.fromNode!==this)return t}else for(;i.next();)if((t=i.value).isTreeLink&&t.toNode!==this)return t;return null},i.pg=function(){var t=this.ci;if(null===t)return null;if(t instanceof Ju)return t;t=null===(t=this.diagram)||t.isTreePathToChildren;for(var i=this.jb.iterator;i.next();){var e=i.value;if(e.isTreeLink&&(e=t?e.fromNode:e.toNode)!==this)return this.ci=e}return this.ci=null},i.vz=function(){var t=new $;return function t(i,e){e.add(i);var n=i.kh();null!==n&&(e.add(n),null!==(i=i.pg())&&t(i,e))}(this,t),t},i.uz=function(){return hc(this,this)},i.Qo=function(){var t=!0,i=this.diagram;null!==i&&(t=i.isTreePathToChildren),i=new W(this.jb);var e=this;return i.predicate=t?function(t){return!(!t.isTreeLink||t.fromNode!==e)}:function(t){return!(!t.isTreeLink||t.toNode!==e)},i},i.Ou=function(){var t=!0,i=this.diagram;null!==i&&(t=i.isTreePathToChildren);var e=i=null,n=this.jb.iterator;if(t)for(;n.next();)(t=n.value).isTreeLink&&t.fromNode===this&&(t=t.toNode,null!==i?i.add(t):null!==e&&e!==t?((i=new Z).add(e),i.add(t)):e=t);else for(;n.next();)(t=n.value).isTreeLink&&t.toNode===this&&(t=t.fromNode,null!==i?i.add(t):null!==e&&e!==t?((i=new Z).add(e),i.add(t)):e=t);return null!==i?i.iterator:null!==e?new K(e):H},i.wz=function(t){void 0===t&&(t=1/0);var i=new $;return qu(i,this,!1,t,!0),i},Ju.prototype.collapseTree=function(t){void 0===t&&(t=1),1>t&&(t=1);var i=this.diagram;if(null!==i&&!i.Ue){i.Ue=!0;var e=new $;e.add(this),lc(this,e,i.isTreePathToChildren,t,i,this,i.treeCollapsePolicy===ts),i.Ue=!1}},Ju.prototype.expandTree=function(t){void 0===t&&(t=2),2>t&&(t=2);var i=this.diagram;if(null!==i&&!i.Ue){i.Ue=!0;var e=new $;e.add(this),cc(this,e,i.isTreePathToChildren,t,i,this,i.treeCollapsePolicy===ts),i.Ue=!1}},f.Object.defineProperties(Ju.prototype,{portSpreading:{get:function(){return null!==this.Ba?this.Ba.er:dc},set:function(t){var i=this.portSpreading;i!==t&&(Zu(this),this.Ba.er=t,this.g("portSpreading",i,t),null!==(t=this.diagram)&&t.undoManager.isUndoingRedoing||this.Bd())}},avoidable:{get:function(){return 0!=(8&this.U)},set:function(t){var i=0!=(8&this.U);if(i!==t){this.U^=8;var e=this.diagram;null!==e&&Br(e,this),this.g("avoidable",i,t)}}},avoidableMargin:{get:function(){return null!==this.Ba?this.Ba.yp:$t},set:function(t){"number"==typeof t&&(t=new Wt(t));var i=this.avoidableMargin;if(!i.D(t)){t=t.J(),Zu(this),this.Ba.yp=t;var e=this.diagram;null!==e&&Br(e,this),this.g("avoidableMargin",i,t)}}},linksConnected:{get:function(){return this.jb.iterator}},linkConnected:{get:function(){return null!==this.Ba?this.Ba.Dq:null},set:function(t){var i=this.linkConnected;i!==t&&(Zu(this),this.Ba.Dq=t,this.g("linkConnected",i,t))}},linkDisconnected:{get:function(){return null!==this.Ba?this.Ba.Eq:null},set:function(t){var i=this.linkDisconnected;i!==t&&(Zu(this),this.Ba.Eq=t,this.g("linkDisconnected",i,t))}},linkValidation:{get:function(){return null!==this.Ba?this.Ba.gj:null},set:function(t){var i=this.linkValidation;i!==t&&(Zu(this),this.Ba.gj=t,this.g("linkValidation",i,t))}},isLinkLabel:{get:function(){return null!==this.Yk}},labeledLink:{get:function(){return this.Yk},set:function(t){var i=this.Yk;if(i!==t){var e=this.diagram,n=this.data;if(null!==i){if(null!==i.wd&&(i.wd.remove(this),i.v()),null!==e&&null!==n&&!e.undoManager.isUndoingRedoing){var o=i.data,r=e.model;if(null!==o&&r.ri()){var s=r.wa(n);void 0!==s&&r.Qx(o,s)}}this.containingGroup=null}this.Yk=t,null!==t&&(Mc(t,this),null===e||null===n||e.undoManager.isUndoingRedoing||(o=t.data,e=e.model,null!==o&&e.ri()&&(void 0!==(n=e.wa(n))&&e.Bu(o,n))),this.containingGroup=t.containingGroup),Hs(this),this.g("labeledLink",i,t)}}},port:{get:function(){return this.ns("")}},ports:{get:function(){return null===this.wc&&rc(this),this.wc.iteratorValues}},isTreeExpanded:{get:function(){return 0!=(1&this.U)},set:function(t){var i=0!=(1&this.U);if(i!==t){this.U^=1;var e=this.diagram;if(this.g("isTreeExpanded",i,t),null!==(i=this.treeExpandedChanged)){var n=!0;null!==e&&(n=e.aa,e.aa=!0),i(this),null!==e&&(e.aa=n)}null!==e&&e.undoManager.isUndoingRedoing?this.Zb(t):t?this.expandTree():this.collapseTree()}}},wasTreeExpanded:{get:function(){return 0!=(2&this.U)},set:function(t){var i=0!=(2&this.U);i!==t&&(this.U^=2,this.g("wasTreeExpanded",i,t))}},treeExpandedChanged:{get:function(){return null!==this.Ba?this.Ba.Vr:null},set:function(t){var i=this.treeExpandedChanged;i!==t&&(Zu(this),this.Ba.Vr=t,this.g("treeExpandedChanged",i,t))}},isTreeLeaf:{get:function(){return 0!=(4&this.U)},set:function(t){var i=0!=(4&this.U);i!==t&&(this.U^=4,this.g("isTreeLeaf",i,t))}}}),Ju.prototype.expandTree=Ju.prototype.expandTree,Ju.prototype.collapseTree=Ju.prototype.collapseTree,Ju.prototype.findTreeParts=Ju.prototype.wz,Ju.prototype.findTreeChildrenNodes=Ju.prototype.Ou,Ju.prototype.findTreeChildrenLinks=Ju.prototype.Qo,Ju.prototype.findTreeLevel=Ju.prototype.uz,Ju.prototype.findTreeParentChain=Ju.prototype.vz,Ju.prototype.findTreeParentNode=Ju.prototype.pg,Ju.prototype.findTreeParentLink=Ju.prototype.kh,Ju.prototype.findCommonTreeParent=Ju.prototype.gz,Ju.prototype.findTreeRoot=Ju.prototype.xz,Ju.prototype.isInTreeOf=Ju.prototype.Nz,Ju.prototype.findPort=Ju.prototype.ns,Ju.prototype.findLinksTo=Ju.prototype.kz,Ju.prototype.findLinksBetween=Ju.prototype.jz,Ju.prototype.findNodesInto=Ju.prototype.Oo,Ju.prototype.findNodesOutOf=Ju.prototype.Po,Ju.prototype.findNodesConnected=Ju.prototype.Mu,Ju.prototype.findLinksInto=Ju.prototype.Sd,Ju.prototype.findLinksOutOf=Ju.prototype.Mo,Ju.prototype.findExternalTreeLinksConnected=Ju.prototype.qx,Ju.prototype.invalidateConnectedLinks=Ju.prototype.Bd,Ju.prototype.invalidateLinkBundle=Ju.prototype.Lz;var fc=new V(Ju,"SpreadingNone",10),dc=new V(Ju,"SpreadingEvenly",11),pc=new V(Ju,"SpreadingPacked",12);function gc(t,i){void 0===t||t instanceof ch||"string"==typeof t?Ju.call(this,t):(Ju.call(this),t&&(i=t)),this.U|=4608,this.Gn=new $,this.$a=null,this.Sc=new Ff,this.Sc.group=this,this.gl=new $,this.tb=this.$p=null,i&&Object.assign(this,i)}function mc(t,i){if(t.Gn.add(i)){i instanceof gc&&t.gl.add(i);var e=t.memberAdded;if(null!==e){var n=!0,o=t.diagram;null!==o&&(n=o.aa,o.aa=!0),e(t,i),null!==o&&(o.aa=n)}t.isVisible()&&t.isSubGraphExpanded||i.Zb(!1)}i instanceof wc&&!t.computesBoundsIncludingLinks||(null===(i=t.$a)&&(i=t),i.v())}function yc(t,i){if(t.Gn.remove(i)){i instanceof gc&&t.gl.remove(i);var e=t.memberRemoved;if(null!==e){var n=!0,o=t.diagram;null!==o&&(n=o.aa,o.aa=!0),e(t,i),null!==o&&(o.aa=n)}t.isVisible()&&t.isSubGraphExpanded||i.Zb(!0)}i instanceof wc&&!t.computesBoundsIncludingLinks||(null===(i=t.$a)&&(i=t),i.v())}function vc(t,i,e,n){for(var o=t.memberParts;o.next();){var r=o.value;if(r.Zb(!1),r instanceof gc&&r.isSubGraphExpanded&&(r.wasSubGraphExpanded=r.isSubGraphExpanded,vc(r,i,e,n)),r instanceof Ju)r.Bd(i),e.Aj(r,n);else if(r instanceof wc)for(r=r.labelNodes;r.next();)r.value.Bd(i)}t.isSubGraphExpanded=!1}function xc(t,i,e,n){for(var o=t.memberParts;o.next();){var r=o.value;if(r.Zb(!0),r instanceof gc&&r.wasSubGraphExpanded&&(r.wasSubGraphExpanded=!1,xc(r,i,e,n)),r instanceof Ju)r.Bd(i),e.Cj(r,n);else if(r instanceof wc)for(r=r.labelNodes;r.next();)r.value.Bd(i)}t.isSubGraphExpanded=!0}function bc(t){Ds.call(this),this.yb=_t,this.ko=new Bt(NaN,NaN,NaN,NaN),t&&Object.assign(this,t)}function wc(t){ku.call(this,Ch.Link),this.Qa=8,this.ef=null,this.ff="",this.uf=this.gn=null,this.vf="",this.uo=null,this.qk=Wc,this.Om=0,this.Qm=Wc,this.Rm=NaN,this.qj=Uc,this.po=.5,this.wd=null,this.Nb=(new Z).freeze(),this.Tg=this.Mg=null,this.ml=new Bt,this.ua=new Ui,this.u=this.o=this.Sf=this.Wf=null,this.su=new pt,this.cq=this.Mw=this.Lw=null,this.vt=NaN,this.ba=null,this.j=[],t&&Object.assign(this,t)}function kc(t){var i=t.fromNode,e=t.toNode,n=null;if(n=null!==i?null!==e?i.px(e):i.containingGroup:null!==e?e.containingGroup:null,i=n,(e=t.Ah)!==i){null!==e&&yc(e,t),t.Ah=i,null!==i&&mc(i,t);var o=t.containingGroupChanged;if(null!==o){var r=!0,s=t.diagram;null!==s&&(r=s.aa,s.aa=!0),o(t,e,i),null!==s&&(s.aa=r)}!t.fd||t.Lw!==e&&t.Mw!==e||t.bb()}if(t.isLabeledLink)for(t=t.labelNodes;t.next();)t.value.containingGroup=n}function Mc(t,i){null===t.wd&&(t.wd=new $),t.wd.add(i),t.v()}function Sc(t,i,e){if(0!==i||0!==e)if(0===t.pointsCount)t.defaultFromPoint&&t.defaultFromPoint.offset(i,e),t.defaultToPoint&&t.defaultToPoint.offset(i,e);else{for(var n=t.fd,o=new Z,r=t.Nb.iterator;r.next();){var s=r.value;o.add(new pt(s.x+i,s.y+e).freeze())}o.freeze(),r=t.Nb,t.Nb=o,s=t.diagram,isNaN(i)||isNaN(e)||null!==s&&s.animationManager.zb?t.v():(t.ke.h(t.ke.x+i,t.ke.y+e),t.pa.h(t.pa.x+i,t.pa.y+e),Hs(t)),n?Pc(t):(t.defaultFromPoint&&(t.defaultFromPoint=t.i(0)),t.defaultToPoint&&(t.defaultToPoint=t.i(t.pointsCount-1))),null!==s&&s.animationManager.zb&&Qn(s.animationManager,t,o),t.g("points",r,o)}}function Pc(t){0===t.Nb.count?t.fd=!1:(t.fd=!0,t.cq=null,t.vt=NaN,t.defaultFromPoint=t.i(0),t.defaultToPoint=t.i(t.pointsCount-1),Rc(t,!1))}function Nc(t,i){return Math.abs(i.x-t.x)>Math.abs(i.y-t.y)?(i.x>=t.x?i.x=t.x+9e9:i.x=t.x-9e9,i.y=t.y):(i.y>=t.y?i.y=t.y+9e9:i.y=t.y-9e9,i.x=t.x),i}function Cc(t,i){var e=i.Zn;return null===e&&((e=new Tf).port=i,e.node=i.part,i.Zn=e),Af(e,t)}function Tc(t){return t===Qt||.5===t.x&&.5===t.y}function Lc(t){return.5===t.x&&.5===t.y?t:oi}function Ac(t){if(null===t.diagram||!t.isAvoiding||!Ar(t.diagram))return!1;var i=t.points.s,e=i.length;if(4>e)return!1;t=jr(t.diagram,!0,t.containingGroup,null);for(var n=1;n<e-2;n++){var o=i[n],r=i[n+1];if(!t.Yj(Math.min(o.x,r.x),Math.min(o.y,r.y),Math.abs(o.x-r.x),Math.abs(o.y-r.y)))return!0}return!1}function jc(t,i,e,n,o,r,s){var a=i.Ho,h=i.Go,l=mf(i,e,n),u=e,c=n;for(0===o?u+=a:90===o?c+=h:180===o?u-=a:c-=h,o!==s&&l>Sf&&mf(i,u,c)!==l-1&&(mf(i,e-a,n)===l-1?(o=180,u=e-a,c=n):mf(i,e+a,n)===l-1?(o=0,u=e+a,c=n):mf(i,e,n-h)===l-1?(o=270,u=e,c=n-h):mf(i,e,n+h)===l-1&&(o=90,u=e,c=n+h));l>Sf&&mf(i,u,c)===l-1;)e=u,n=c,0===o?u+=a:90===o?c+=h:180===o?u-=a:c-=h,--l;r?l>Sf&&(180===o||0===o?e=Math.floor(e/a)*a+a/2:90!==o&&270!==o||(n=Math.floor(n/h)*h+h/2)):(e=Math.floor(e/a)*a+a/2,n=Math.floor(n/h)*h+h/2),l>Sf&&(r=o,s=e,u=n,0===o?(r=90,u+=h):90===o?(r=180,s-=a):180===o?(r=270,u-=h):270===o&&(r=0,s+=a),mf(i,s,u)===l-1?jc(t,i,s,u,r,!1,r):(s=e,u=n,0===o?(r=270,u-=h):90===o?(r=0,s+=a):180===o?(r=90,u+=h):270===o&&(r=180,s-=a),mf(i,s,u)===l-1&&jc(t,i,s,u,r,!1,r))),t.yf(e,n)}function Fc(t,i,e,n){return t=e-t,isNaN(t)||1/0===t||-1/0===t?NaN:(0>t&&(t=-t),i=n-i,isNaN(i)||1/0===i||-1/0===i?NaN:(0>i&&(i=-i),Xi.$(t,0)?i:Xi.$(i,0)?t:Math.sqrt(t*t+i*i)))}function Dc(t,i,e,n){var o=t.pointsCount;if(2>o)return i;if(e){var r=t.i(1);if(e=r.x-n.x,r=r.y-n.y,0===(n=Fc(i.x,i.y,e,r)))return i;o=2===o?.5*n:n,(t=t.computeShortLength(!0))>o&&(t=o),o=t*(r-i.y)/n,i.x+=t*(e-i.x)/n,i.y+=o}else{if(e=(r=t.i(o-2)).x-n.x,r=r.y-n.y,0===(n=Fc(i.x,i.y,e,r)))return i;o=2===o?.5*n:n,(t=t.computeShortLength(!1))>o&&(t=o),o=t*(i.y-r)/n,i.x-=t*(i.x-e)/n,i.y-=o}return i}function Bc(t,i,e,n){for(var o=t.pointsCount,r=i;Xi.$(i.x,r.x)&&Xi.$(i.y,r.y);){if(e>=o)return o-1;r=t.i(e++)}if(!Xi.$(i.x,r.x)&&!Xi.$(i.y,r.y))return e-1;for(var s=r;Xi.$(i.x,r.x)&&Xi.$(r.x,s.x)&&(!n||(i.y>=r.y?r.y>=s.y:r.y<=s.y))||Xi.$(i.y,r.y)&&Xi.$(r.y,s.y)&&(!n||(i.x>=r.x?r.x>=s.x:r.x<=s.x));){if(e>=o)return o-1;s=t.i(e++)}return e-2}function Oc(t,i,e,n,o,r,s){if(!s&&zc(t)){var a=(s=t.computeJumpLength())/2,h=[],l=0;if(t.isVisible()&&(l=function(t,i,e,n){var o=t.diagram;if(null===o||i.D(e))return 0;for(o=o.layers;o.next();){var r=o.value;if(null!==r&&r.visible)for(var s=(r=r.Pa.s).length,a=0;a<s;a++){var h=r[a];if(h instanceof wc){if(h===t)return 0<n.length&&n.sort((function(t,i){return t-i})),n.length;if(h.isVisible()&&zc(h)){var l=h.routeBounds;l.w()&&t.routeBounds.Yc(l)&&!t.usesSamePort(h)&&(null!==(l=h.path)&&l.Ed()&&Ic(i,e,n,h))}}}}return 0<n.length&&n.sort((function(t,i){return t-i})),n.length}(t,o,r,h)),0<l)if(Xi.B(o.y,r.y))if(o.x<r.x)for(var u=0;u<l;){var c=Math.max(o.x,Math.min(h[u++]-a,r.x-s));i.lineTo(c+e,r.y+n);for(var f=c+e,d=Math.min(c+s,r.x);u<l&&(c=h[u])<d+s;)u++,d=Math.min(c+a,r.x);c=r.y-s+n,d+=e;var p=r.y+n;t.curve===Zc?du(i,d,p,!1):gu(i,f,c,d,c,d,p)}else for(--l;0<=l;){for(u=Math.min(o.x,Math.max(h[l--]+a,r.x+s)),i.lineTo(u+e,r.y+n),f=u+e,c=Math.max(u-s,r.x);0<=l&&(u=h[l])>c-s;)l--,c=Math.max(u-a,r.x);u=r.y-s+n,c+=e,d=r.y+n,t.curve===Zc?du(i,c,d,!1):gu(i,f,u,c,u,c,d)}else if(Xi.B(o.x,r.x))if(o.y<r.y)for(u=0;u<l;){for(c=Math.max(o.y,Math.min(h[u++]-a,r.y-s)),i.lineTo(r.x+e,c+n),f=c+n,c=Math.min(c+s,r.y);u<l&&(d=h[u])<c+s;)u++,c=Math.min(d+a,r.y);d=r.x-s+e,p=r.x+e,c+=n,t.curve===Zc?du(i,p,c,!1):gu(i,d,f,d,c,p,c)}else for(--l;0<=l;){for(u=Math.min(o.y,Math.max(h[l--]+a,r.y+s)),i.lineTo(r.x+e,u+n),f=u+n,u=Math.max(u-s,r.y);0<=l&&(c=h[l])>u-s;)l--,u=Math.max(c-a,r.y);c=r.x-s+e,d=r.x+e,u+=n,t.curve===Zc?du(i,d,u,!1):gu(i,c,f,c,u,d,u)}}i.lineTo(r.x+e,r.y+n)}function Ic(t,i,e,n){for(var o=Xi.B(t.y,i.y),r=n.pointsCount,s=n.i(0),a=pt.alloc(),h=1;h<r;h++){var l=n.i(h);if(h<r-1){var u=n.i(h+1);if(s.y===l.y&&l.y===u.y){if(l.x>s.x&&u.x>=l.x||l.x<s.x&&u.x<=l.x)continue}else if(s.x===l.x&&l.x===u.x&&(l.y>s.y&&u.y>=l.y||l.y<s.y&&u.y<=l.y))continue}t:{u=t.x;var c=t.y,f=i.x,d=i.y,p=s.x;s=s.y;var g=l.x,m=l.y;if(Xi.B(u,f)){if(!Xi.B(c,d)&&Xi.B(s,m)&&Math.min(c,d)<s&&Math.max(c,d)>s&&Math.min(p,g)<u&&Math.max(p,g)>u&&!Xi.B(p,g)){a.x=u,a.y=s,u=!0;break t}}else if(Xi.B(c,d)&&Xi.B(p,g)&&Math.min(u,f)<p&&Math.max(u,f)>p&&Math.min(s,m)<c&&Math.max(s,m)>c&&!Xi.B(s,m)){a.x=p,a.y=c,u=!0;break t}a.x=0,a.y=0,u=!1}u&&(o?e.push(a.x):e.push(a.y)),s=l}pt.free(a)}function zc(t){return(t=t.curve)===_c||t===Zc}function Rc(t,i){(i||zc(t))&&(null===(i=t.diagram)||i.animationManager.isTicking||i.Eh.contains(t)||0===t.ml.width&&0===t.ml.height||i.Eh.add(t,t.ml.copy()))}function Ec(t,i,e){if(null!==i&&i.lk&&i.fd&&zc(i)){var n=i.routeBounds;n.w()&&(t.routeBounds.Yc(n)||e.Yc(n))&&(t.usesSamePort(i)||i.qc())}}function Vc(t){var i=t.ef;if(null!==i){var e=t.uf;if(null!==e&&isNaN(t.curviness)){for(var n=t.ff,o=t.vf,r=t=null,s=i.jb.s,a=s.length,h=0;h<a;h++){var l=s[h];(l.ef===i&&l.ff===n&&l.uf===e&&l.vf===o||l.ef===e&&l.ff===o&&l.uf===i&&l.vf===n)&&(null===r?r=l:(null===t&&(t=[]).push(r),t.push(l)))}if(null!==t){for(null===(r=$u(i,e,n,o))&&(_u(i,r=new df(i,n,e,o)),_u(e,r)),r.links=t,i=0;i<t.length;i++)t[i].Sf=r;r.Sl()}}}}function Yc(t){var i=t.Sf;null!==i&&isNaN(t.curviness)&&(t.Sf=null,0<=(t=i.links.indexOf(t))&&(L(i.links,t),i.Sl()))}Ju.className="Node",Ju.SpreadingNone=fc,Ju.SpreadingEvenly=dc,Ju.SpreadingPacked=pc,c(gc,Ju),gc.prototype.cloneProtected=function(t){Ju.prototype.cloneProtected.call(this,t),this.U=-32769&this.U;var i=t.Nl((function(t){return t instanceof bc}));t.$a=i instanceof bc?i:null,null!==this.Sc?(t.Sc=this.Sc.copy(),t.Sc.group=t):(null!==t.Sc&&(t.Sc.group=null),t.Sc=null),null!==this.tb&&(t.tb=this.tb.copy())},(i=gc.prototype).Af=function(t){Ju.prototype.Af.call(this,t);var i=t.Rj();for(t=t.memberParts;t.next();){var e=t.value;if(e.v(),e.C(8),e.Ej(),e instanceof Ju)e.Bd(i);else if(e instanceof wc)for(e=e.labelNodes;e.next();)e.value.Bd(i)}},i.gk=function(t,i,e,n,o,r,s){if(t===de&&"elements"===i){if(o instanceof bc)null===this.$a?this.$a=o:this.$a!==o&&w("Cannot insert a second Placeholder into the visual tree of a Group.");else if(o instanceof Ch){var a=o.Nl((function(t){return t instanceof bc}));a instanceof bc&&(null===this.$a?this.$a=a:this.$a!==a&&w("Cannot insert a second Placeholder into the visual tree of a Group."))}}else t===pe&&"elements"===i&&null!==this.$a&&(n===this.$a||n instanceof Ch&&this.$a.rg(n))&&(this.$a=null);Ju.prototype.gk.call(this,t,i,e,n,o,r,s)},i.Xl=function(t,i){Ju.prototype.Xl.call(this,t,i),this.isClipping&&this.type!==Ch.Spot&&this.isSubGraphExpanded&&((t=this.resizeObject)instanceof Ch&&(t=t.Pb()),null===this.tb&&(this.tb=new Bt),t.mi(this.tb),t instanceof pl&&this.tb.Bc(-t.strokeWidth,-t.strokeWidth))},i.eh=function(t,i,e,n){this.nf=this.$a,Ju.prototype.eh.call(this,t,i,e,n)},i.Va=function(){var t=this;t.isSubGraphExpanded&&this.memberParts.each((function(i){!t.computesBoundsIncludingLinks&&i instanceof wc||i.Va()})),Ju.prototype.Va.call(this)},i.si=function(){if(!Ju.prototype.si.call(this))return!1;for(var t=this.memberParts;t.next();){var i=t.value;if(i instanceof Ju){if(i.isVisible()&&na(i))return!1}else if(i instanceof wc&&i.isVisible()&&na(i)&&i.fromNode!==this&&i.toNode!==this)return!1}return!0},i.Lj=function(){if(0<this.Gn.count){var t=this.diagram;if(null!==t)for(var i=this.Gn.copy().iterator;i.next();)t.remove(i.value)}Ju.prototype.Lj.call(this)},gc.prototype.canAddMembers=function(t){var i=this.diagram;if(null===i)return!1;for(i=i.commandHandler,t=Fs(t).iterator;t.next();)if(!i.isValidMember(this,t.value))return!1;return!0},gc.prototype.addMembers=function(t,i){var e=this.diagram;if(null===e)return!1;e=e.commandHandler;var n=!0;for(t=Fs(t).iterator;t.next();){var o=t.value;!i||e.isValidMember(this,o)?o.containingGroup=this:n=!1}return n},gc.prototype.canUngroup=function(){if(!this.ungroupable)return!1;var t=this.layer;return!(null===t||!t.allowUngroup)&&!(null!==(t=t.diagram)&&!t.allowUngroup)},(i=gc.prototype).Bd=function(t){var i=0!=(65536&this.U);if(Ju.prototype.Bd.call(this,t),!i)for(0!=(65536&this.U)!=!0&&(this.U=65536^this.U),i=this.Lu();i.next();){var e=i.value;if(void 0===t||!t.contains(e)){var n=e.fromNode;null!==n&&n!==this&&n.Td(this)&&!n.isVisible()?(tc(e.fromPort),tc(e.toPort),e.bb()):null!==(n=e.toNode)&&n!==this&&n.Td(this)&&!n.isVisible()&&(tc(e.fromPort),tc(e.toPort),e.bb())}}},i.Lu=function(){var t=null!==this.diagram&&this.diagram.Pw;if(t&&null!==this.$p)return this.$p.iterator;var i=this.Rj();i.add(this);for(var e=new $,n=i.iterator;n.next();){var o=n.value;if(o instanceof Ju)for(o=o.linksConnected;o.next();){var r=o.value;i.contains(r)||e.add(r)}}return t&&(this.$p=e),e.iterator},i.iz=function(){var t=this.Rj();t.add(this);for(var i=new $,e=t.iterator;e.next();){var n=e.value;if(n instanceof Ju)for(n=n.linksConnected;n.next();){var o=n.value,r=o.fromNode;null===r||t.contains(r)&&r!==this||i.add(r),null===(o=o.toNode)||t.contains(o)&&o!==this||i.add(o)}}return i.iterator},i.hz=function(){var t=new $;return function t(i,e){null!==i&&(e.add(i),t(i.containingGroup,e))}(this,t),t},i.Rj=function(){var t=new $;return qu(t,this,!0,0,!0),t.remove(this),t},i.Zb=function(t){Ju.prototype.Zb.call(this,t);for(var i=this.memberParts;i.next();)i.value.Zb(t)},gc.prototype.collapseSubGraph=function(){var t=this.diagram;null===t||t.Ue||(t.Ue=!0,vc(this,this.Rj(),t,this),t.Ue=!1)},gc.prototype.expandSubGraph=function(){var t=this.diagram;null===t||t.Ue||(t.Ue=!0,xc(this,this.Rj(),t,this),t.Ue=!1)},gc.prototype.move=function(t,i){void 0===i&&(i=!1);var e=i?this.location:this.position,n=e.x;e=e.y;var o=t.x,r=t.y;if(!(n===o||isNaN(n)&&isNaN(o))||!(e===r||isNaN(e)&&isNaN(r))){for(n=o-(isNaN(n)?0:n),e=r-(isNaN(e)?0:e),r=pt.alloc(),Ju.prototype.move.call(this,t,i),t=new $,i=this.Rj().iterator;i.next();)(o=i.value)instanceof wc&&(o.suspendsRouting&&t.add(o),o.fd||o.fromNode!==this&&o.toNode!==this)&&(o.suspendsRouting=!0);for(i.reset();i.next();)if(!((o=i.value).ph()||o instanceof Ju&&o.isLinkLabel)){var s=o.position,a=o.location;s.w()?(r.x=s.x+n,r.y=s.y+e,o.position=r):a.w()&&(r.x=a.x+n,r.y=a.y+e,o.location=r)}for(i.reset();i.next();)(o=i.value)instanceof wc&&(o.suspendsRouting=t.contains(o),o.fd||o.fromNode!==this&&o.toNode!==this)&&(s=o.position,r.x=s.x+n,r.y=s.y+e,r.w()?o.move(r):o.bb(),Ac(o)&&o.bb());pt.free(r)}},f.Object.defineProperties(gc.prototype,{placeholder:{get:function(){return this.$a}},computesBoundsAfterDrag:{get:function(){return 0!=(2048&this.U)},set:function(t){var i=0!=(2048&this.U);i!==t&&(this.U^=2048,this.g("computesBoundsAfterDrag",i,t))}},computesBoundsIncludingLinks:{get:function(){return 0!=(4096&this.U)},set:function(t){var i=0!=(4096&this.U);i!==t&&(this.U^=4096,this.g("computesBoundsIncludingLinks",i,t))}},computesBoundsIncludingLocation:{get:function(){return 0!=(8192&this.U)},set:function(t){var i=0!=(8192&this.U);i!==t&&(this.U^=8192,this.g("computesBoundsIncludingLocation",i,t))}},handlesDragDropForMembers:{get:function(){return 0!=(16384&this.U)},set:function(t){var i=0!=(16384&this.U);i!==t&&(this.U^=16384,this.g("handlesDragDropForMembers",i,t))}},memberParts:{get:function(){return this.Gn.iterator}},layout:{get:function(){return this.Sc},set:function(t){var i=this.Sc;if(i!==t){null!==t&&null!==t.diagram&&t.diagram.layout===t&&w("A layout cannot be both the Diagram.layout and a Group.layout: "+t),null!==i&&(i.diagram=null,i.group=null),this.Sc=t;var e=this.diagram;null!==t&&(t.diagram=e,t.group=this),null!==e&&(e.xh=!0),this.g("layout",i,t),null!==e&&e.$b()}}},memberAdded:{get:function(){return null!==this.Ba?this.Ba.Mq:null},set:function(t){var i=this.memberAdded;i!==t&&(Zu(this),this.Ba.Mq=t,this.g("memberAdded",i,t))}},memberRemoved:{get:function(){return null!==this.Ba?this.Ba.Nq:null},set:function(t){var i=this.memberRemoved;i!==t&&(Zu(this),this.Ba.Nq=t,this.g("memberRemoved",i,t))}},memberValidation:{get:function(){return null!==this.Ba?this.Ba.ij:null},set:function(t){var i=this.memberValidation;i!==t&&(Zu(this),this.Ba.ij=t,this.g("memberValidation",i,t))}},ungroupable:{get:function(){return 0!=(256&this.U)},set:function(t){var i=0!=(256&this.U);i!==t&&(this.U^=256,this.g("ungroupable",i,t))}},isSubGraphExpanded:{get:function(){return 0!=(512&this.U)},set:function(t){var i=0!=(512&this.U);if(i!==t){this.U^=512;var e=this.diagram;if(this.g("isSubGraphExpanded",i,t),null!==(i=this.subGraphExpandedChanged)){var n=!0;null!==e&&(n=e.aa,e.aa=!0),i(this),null!==e&&(e.aa=n)}null!==e&&e.undoManager.isUndoingRedoing?(null!==this.$a&&this.$a.v(),this.memberParts.each((function(t){t.updateAdornments()}))):t?this.expandSubGraph():this.collapseSubGraph()}}},wasSubGraphExpanded:{get:function(){return 0!=(1024&this.U)},set:function(t){var i=0!=(1024&this.U);i!==t&&(this.U^=1024,this.g("wasSubGraphExpanded",i,t))}},subGraphExpandedChanged:{get:function(){return null!==this.Ba?this.Ba.Kr:null},set:function(t){var i=this.subGraphExpandedChanged;i!==t&&(Zu(this),this.Ba.Kr=t,this.g("subGraphExpandedChanged",i,t))}},rh:{get:function(){return 0!=(32768&this.U)},set:function(t){0!=(32768&this.U)!==t&&(this.U^=32768)}}}),gc.prototype.expandSubGraph=gc.prototype.expandSubGraph,gc.prototype.collapseSubGraph=gc.prototype.collapseSubGraph,gc.prototype.findSubGraphParts=gc.prototype.Rj,gc.prototype.findContainingGroupChain=gc.prototype.hz,gc.prototype.findExternalNodesConnected=gc.prototype.iz,gc.prototype.findExternalLinksConnected=gc.prototype.Lu,gc.prototype.ensureBounds=gc.prototype.Va,gc.className="Group",c(bc,Ds),bc.prototype.cloneProtected=function(t){Ds.prototype.cloneProtected.call(this,t),t.yb=this.yb.J(),t.ko=this.ko.copy()},bc.prototype.gh=function(t){if(null===this.background&&null===this.areaBackground)return!1;var i=this.naturalBounds;return Xt(0,0,i.width,i.height,t.x,t.y)},bc.prototype.Wl=function(){var t=this.part;if(null!==t&&(t instanceof gc||t instanceof Ku)||w("Placeholder is not inside a Group or Adornment."),t instanceof gc){var i=this.computeBorder(this.ko),e=this.minSize,n=this.dc;for(Ot(n,(isFinite(e.width)?Math.max(e.width,i.width):i.width)||0,(isFinite(e.height)?Math.max(e.height,i.height):i.height)||0),this.Ge(0,0,n.width,n.height),n=t.memberParts,e=!1;n.next();)if(n.value.isVisible()){e=!0;break}n=t.diagram,!e||null===n||n.animationManager.Xu(t)||isNaN(i.x)||isNaN(i.y)||((e=pt.alloc()).xi(i,t.locationSpot),e.D(t.location)||(t.location=e),pt.free(e))}else{i=this.dc,n=(e=this.yb).left+e.right;var o=e.top+e.bottom,r=t.adornedObject;t.angle=r.li();var s=0;r instanceof pl&&(s=r.strokeWidth);var a=r.Df(),h=r.naturalBounds,l=(h.width+s)*a;s=(h.height+s)*a,t.type!==Ch.Link&&(a=r.ga("Selection"===t.category?ti:t.locationSpot,pt.alloc()),t.location=a,pt.free(a)),isNaN(l)||isNaN(s)?(t=r.ga(ti,pt.alloc()),(l=Bt.allocAt(t.x,t.y,0,0)).Ye(r.ga(hi,t)),l.Ye(r.ga(ei,t)),l.Ye(r.ga(si,t)),Ot(i,l.width+n||0,l.height+o||0),this.Ge(-e.left,-e.top,i.width,i.height),pt.free(t),Bt.free(l)):(Ot(i,l+n||0,s+o||0),this.Ge(-e.left,-e.top,i.width,i.height))}},bc.prototype.eh=function(t,i,e,n){this.actualBounds.h(t,i,e,n)},bc.prototype.computeBorder=function(t){var i=this.part,e=i.diagram,n=null===e||!e.animationManager.isAnimating;if(null!==e&&i instanceof gc&&!i.layer.isTemporary&&i.computesBoundsAfterDrag&&this.ko.w()){var o=e.toolManager.findTool("Dragging");if(o===e.currentTool&&null!==(e=o.computeBorder(i,this.ko,t)))return e}e=Bt.alloc(),o=this.computeMemberBounds(e);var r=this.yb;return i instanceof gc&&!i.isSubGraphExpanded?t.h(o.x-r.left,o.y-r.top,0,0):t.h(o.x-r.left,o.y-r.top,Math.max(o.width+r.left+r.right,0),Math.max(o.height+r.top+r.bottom,0)),Bt.free(e),n&&i instanceof gc&&i.computesBoundsIncludingLocation&&i.location.w()&&t.Ye(i.location),t},bc.prototype.computeMemberBounds=function(t){if(!(this.part instanceof gc))return t.h(0,0,0,0),t;for(var i=this.part,e=1/0,n=1/0,o=-1/0,r=-1/0,s=i.memberParts;s.next();){var a=s.value;if(a.isVisible()){if(a instanceof wc){if(!i.computesBoundsIncludingLinks)continue;if(ia(a))continue;if(a.fromNode===i||a.toNode===i)continue}(a=a.actualBounds).left<e&&(e=a.left),a.top<n&&(n=a.top),a.right>o&&(o=a.right),a.bottom>r&&(r=a.bottom)}}return isFinite(e)&&isFinite(n)?t.h(e,n,o-e,r-n):(i=i.location,t.h(i.x,i.y,0,0)),t},f.Object.defineProperties(bc.prototype,{padding:{get:function(){return this.yb},set:function(t){"number"==typeof t&&(t=new Wt(t));var i=this.yb;i.D(t)||(this.yb=t=t.J(),this.g("padding",i,t),this.v())}}}),bc.className="Placeholder",c(wc,ku),wc.prototype.cloneProtected=function(t){ku.prototype.cloneProtected.call(this,t),t.Qa=-113&this.Qa,t.ff=this.ff,t.gn=this.gn,t.vf=this.vf,t.uo=this.uo,t.qk=this.qk,t.Om=this.Om,t.Qm=this.Qm,t.Rm=this.Rm,t.qj=this.qj,t.po=this.po,null!==this.ba&&(t.ba=this.ba.copy())},(i=wc.prototype).Af=function(t){ku.prototype.Af.call(this,t),this.ff=t.ff,this.vf=t.vf,t.Mg=null,t.bb(),t.Sf=this.Sf;var i=t.fromPort;null!==i&&tc(i),null!==(t=t.toPort)&&tc(t)},i.qb=function(t){t.classType===wc?2==(2&t.value)?this.routing=t:t===Jc||t===Zc||t===_c?this.curve=t:t===$c||t===Qc||t===tf?this.adjusting=t:t!==Uc&&t!==Wc&&w("Unknown Link enum value for a Link property: "+t):ku.prototype.qb.call(this,t)},i.Xc=function(){null===this.ba&&(this.ba=new pa)},i.si=function(){var t=this.fromNode;if(null!==t){var i=t.findVisibleNode();if(null!==i&&(t=i),na(t)||Iu(t))return!1}return null===(t=this.toNode)||(null!==(i=t.findVisibleNode())&&(t=i),!na(t)&&!Iu(t))},i.zv=function(){return!1},i.Av=function(){},i.Zc=function(){return!1},wc.prototype.computeAngle=function(t,i,e){return wc.computeAngle(i,e)},wc.computeAngle=function(t,i){switch(t){default:case Wc:t=0;break;case ef:t=i;break;case nf:t=i+90;break;case of:t=i-90;break;case rf:t=i+180;break;case sf:90<(t=Xi.bp(i))&&270>t&&(t-=180);break;case af:90<(t=Xi.bp(i+90))&&270>t&&(t-=180);break;case hf:90<(t=Xi.bp(i-90))&&270>t&&(t-=180);break;case lf:if(45<(t=Xi.bp(i))&&135>t||225<t&&315>t)return 0;90<t&&270>t&&(t-=180)}return Xi.bp(t)},(i=wc.prototype).oh=function(){var t=this.containingGroup;null!==t&&this.fromNode!==t&&this.toNode!==t&&t.computesBoundsIncludingLinks&&ku.prototype.oh.call(this)},i.To=function(t){var i=this.fromNode;return t===i?this.toNode:i},i.Cz=function(t){var i=this.fromPort;return t===i?this.toPort:i},i.Vo=function(t){if(ku.prototype.Vo.call(this,t),zc(this)&&this.Xo(this.actualBounds),!t){var i=null;null!==(t=this.ef)&&ec(t,this,i=this.fromPort);var e=this.uf;if(null!==e){var n=this.toPort;e===t&&n===i||ec(e,this,n)}Vc(this)}},i.Wo=function(t){if(ku.prototype.Wo.call(this,t),zc(this)&&this.Xo(this.actualBounds),!t){var i=null;null!==(t=this.ef)&&nc(t,this,i=this.fromPort);var e=this.uf;if(null!==e){var n=this.toPort;e===t&&n===i||nc(e,this,n)}Yc(this)}},i.Lj=function(){if(this.fd=!0,null!==this.wd){var t=this.diagram;if(null!==t)for(var i=this.wd.copy().iterator;i.next();)t.remove(i.value)}null!==this.data&&(null!==(t=this.diagram)&&t.partManager.removeDataForLink(this))},wc.prototype.updateRelationshipsFromData=function(){if(null!==this.data){var t=this.diagram;null!==t&&t.partManager.updateRelationshipsFromData(this)}},wc.prototype.move=function(t,i){var e=i?this.location:this.position,n=e.x;isNaN(n)&&(n=0);var o=e.y;for(isNaN(o)&&(o=0),n=t.x-n,o=t.y-o,!0===i?ku.prototype.move.call(this,t,!1):(t=pt.allocAt(e.x+n,e.y+o),ku.prototype.move.call(this,t,!1),pt.free(t)),Sc(this,n,o),t=this.labelNodes;t.next();)e=(i=t.value).position,i.moveTo(e.x+n,e.y+o)},wc.prototype.canRelinkFrom=function(){if(!this.relinkableFrom)return!1;var t=this.layer;return null===t||!!t.allowRelink&&!(null!==(t=t.diagram)&&!t.allowRelink)},wc.prototype.canRelinkTo=function(){if(!this.relinkableTo)return!1;var t=this.layer;return null===t||!!t.allowRelink&&!(null!==(t=t.diagram)&&!t.allowRelink)},wc.prototype.computeMidPoint=function(t){var i=this.pointsCount;if(0===i)return t.assign(st),t;if(1===i)return t.assign(this.i(0)),t;if(2===i){var e=this.i(0),n=this.i(1);return t.h((e.x+n.x)/2,(e.y+n.y)/2),t}if(this.isOrthogonal&&(15<=this.computeCorner()||this.computeCurve()===Jc))return this.ua.Pu(.5,t),t.add(this.i(0)),e=this.ua.figures.first(),t.offset(-e.startX,-e.startY),t;if(this.computeCurve()===Jc){if(3===i){e=this.i(0),n=this.i(1);var o=this.i(2);return Xi.ax(e.x,e.y,n.x,n.y,n.x,n.y,o.x,o.y,t),t}if(e=3*((n=(i-1)/3|0)/2|0),1==n%2){n=this.i(e),o=this.i(e+1);var r=this.i(e+2);e=this.i(e+3),Xi.ax(n.x,n.y,o.x,o.y,r.x,r.y,e.x,e.y,t)}else t.assign(this.i(e));return t}var s=this.flattenedLengths;for(e=this.flattenedTotalLength,o=r=n=0;n<e/2&&r<i&&!(n+(o=s[r])>e/2);)n+=o,r++;return i=this.i(r),r=this.i(r+1),1>Math.abs(i.x-r.x)?i.y>r.y?t.h(i.x,i.y-(e/2-n)):t.h(i.x,i.y+(e/2-n)):1>Math.abs(i.y-r.y)?i.x>r.x?t.h(i.x-(e/2-n),i.y):t.h(i.x+(e/2-n),i.y):(e=(e/2-n)/o,t.h(i.x+e*(r.x-i.x),i.y+e*(r.y-i.y))),t},wc.prototype.computeMidAngle=function(){var t=this.pointsCount;if(2>t)return NaN;if(2===t)return this.i(0).ab(this.i(1));if(this.isOrthogonal&&(15<=this.computeCorner()||this.computeCurve()===Jc))return this.ua.wx(.5);if(this.computeCurve()===Jc&&4<=t){var i=(t-1)/3|0,e=3*(i/2|0);if(1==i%2){e=Math.floor(e),t=this.i(e),i=this.i(e+1);var n=this.i(e+2);return e=this.i(e+3),Xi.My(t.x,t.y,i.x,i.y,n.x,n.y,e.x,e.y)}if(0<e&&e+1<t)return this.i(e-1).ab(this.i(e+1))}i=this.flattenedLengths,n=this.flattenedTotalLength;var o,r=0;for(e=0;r<n/2&&e<t&&!(r+(o=i[e])>n/2);)r+=o,e++;if(i=this.i(e),n=this.i(e+1),1>Math.abs(i.x-n.x)&&1>Math.abs(i.y-n.y)){if(0<e&&e+2<t)return this.i(e-1).ab(this.i(e+2))}else{if(1>Math.abs(i.x-n.x))return i.y>n.y?270:90;if(1>Math.abs(i.y-n.y))return i.x>n.x?180:0}return i.ab(n)},(i=wc.prototype).i=function(t){return this.Nb.s[t]},i.dd=function(t,i){this.Nb.cd(t,i)},i.L=function(t,i,e){this.Nb.cd(t,new pt(i,e))},i.Kz=function(t,i){this.Nb.Gb(t,i)},i.m=function(t,i,e){this.Nb.Gb(t,new pt(i,e))},i.ne=function(t){this.Nb.add(t)},i.yf=function(t,i){this.Nb.add(new pt(t,i))},i.pv=function(t){this.Nb.mb(t)},i.Fj=function(){this.Nb.clear()},i.uh=function(){null===this.Mg&&(this.Mg=this.Nb,this.Nb=this.Nb.copy())},i.zf=function(){if(null!==this.Mg){for(var t=this.Mg,i=this.Nb,e=1/0,n=1/0,o=t.s,r=o.length,s=0;s<r;s++){var a=o[s];e=Math.min(a.x,e),n=Math.min(a.y,n)}a=s=1/0;for(var h=i.s,l=h.length,u=0;u<l;u++){var c=h[u];s=Math.min(c.x,s),a=Math.min(c.y,a),c.freeze()}if(i.freeze(),l===r){for(r=0;r<l;r++)if(u=o[r],c=h[r],u.x-e!=c.x-s||u.y-n!=c.y-a){this.qc();break}}else this.qc();this.Mg=null,null!==(e=this.diagram)&&e.animationManager.zb&&Qn(e.animationManager,this,i),Pc(this),this.g("points",t,i)}},i.rv=function(){null!==this.Mg&&(this.Nb=this.Mg,this.Mg=null)},i.bb=function(){if(!this.suspendsRouting){var t=this.diagram;if(t){if(t.As.contains(this)||t.undoManager.isUndoingRedoing)return;if((t=t.animationManager).isTicking&&!t.isAnimating)return;null===this.Tg||t.isTicking||(this.Tg=null)}null!==(t=this.path)&&(this.fd=!1,this.v(),t.v())}},i.vg=function(){if(!this.fd&&!this.computingPoints){var t=!0;try{this.computingPoints=!0,this.uh(),t=this.computePoints()}catch(t){this.computingPoints=!1,this.rv()}finally{this.computingPoints=!1,t?this.zf():this.rv()}}},wc.prototype.computePoints=function(){if(null===this.diagram)return!1;var t=this.fromNode,i=null;if(null===t?(Gc||((Gc=new Ju).desiredSize=kt,Gc.Va()),this.defaultFromPoint&&(Gc.location=this.defaultFromPoint,Gc.Va(),i=t=Gc)):i=this.fromPort,null!==i&&!t.isVisible()){var e=t.findVisibleNode();null!==e&&e!==t?(t=e,i=e.port):t=e}if(this.Lw=t,null===t||!t.location.w())return!1;for(;!(null===i||i.actualBounds.w()&&i.Ed());)i=i.panel;if(null===i)return!1;var n=this.toNode,o=null;if(null===n?(Xc||((Xc=new Ju).desiredSize=kt,Xc.Va()),this.defaultToPoint&&(Xc.location=this.defaultToPoint,Xc.Va(),o=n=Xc)):o=this.toPort,null===o||n.isVisible()||(null!==(e=n.findVisibleNode())&&e!==n?(n=e,o=e.port):n=e),this.Mw=n,null===n||!n.location.w())return!1;for(;!(null===o||o.actualBounds.w()&&o.Ed());)o=o.panel;if(null===o)return!1;var r=this.pointsCount,s=this.computeSpot(!0,i);e=this.computeSpot(!1,o);var a=Tc(s),h=Tc(e),l=i===o&&null!==i,u=this.isOrthogonal,c=this.curve===Jc;this.Wf=!(!l||u)&&(c=!0);var f=this.computeAdjusting()===Wc||l;if(!u&&!l&&a&&h){if(a=!1,!f&&3<=r&&(f=this.getLinkPoint(t,i,s,!0,!1,n,o),h=this.getLinkPoint(n,o,e,!1,!1,t,i),a=this.adjustPoints(0,f,r-1,h))&&(f=this.getLinkPoint(t,i,s,!0,!1,n,o),h=this.getLinkPoint(n,o,e,!1,!1,t,i),this.adjustPoints(0,f,r-1,h)),!a)if(this.Fj(),c){r=this.getLinkPoint(t,i,s,!0,!1,n,o),a=(f=this.getLinkPoint(n,o,e,!1,!1,t,i)).x-r.x,h=f.y-r.y,l=this.computeCurviness(),c=u=0;var d=r.x+a/3,p=r.y+h/3,g=d,m=p;Xi.B(h,0)?m=0<a?m-l:m+l:(u=-a/h,c=Math.sqrt(l*l/(u*u+1)),0>l&&(c=-c),m=u*((g=(0>h?-1:1)*c+d)-d)+p);var y=d=r.x+2*a/3,v=p=r.y+2*h/3;Xi.B(h,0)?v=0<a?v-l:v+l:v=u*((y=(0>h?-1:1)*c+d)-d)+p,this.Fj(),this.ne(r),this.yf(g,m),this.yf(y,v),this.ne(f),this.dd(0,this.getLinkPoint(t,i,s,!0,!1,n,o)),this.dd(3,this.getLinkPoint(n,o,e,!1,!1,t,i))}else r=n,f=o,n=this.getLinkPoint(t,i,s,!0,!1,r,f),o=this.getLinkPoint(r,f,e,!1,!1,t,i),this.hasCurviness()?(f=o.x-n.x,e=o.y-n.y,s=this.computeCurviness(),r=t=n.x+f/2,a=i=n.y+e/2,Xi.B(e,0)?a=0<f?a-s:a+s:(f=-f/e,r=Math.sqrt(s*s/(f*f+1)),0>s&&(r=-r),a=f*((r=(0>e?-1:1)*r+t)-t)+i),this.ne(n),this.yf(r,a),this.ne(o)):(this.ne(n),this.ne(o),a=Bt.alloc(),i.mi(a),h=a.ca(o),f.mi(a),l=a.ca(n),(h||l)&&(s=i.ga(Lc(s),new pt),this.dd(0,this.getLinkPointFromPoint(t,i,s,o,!0,s)),e=f.ga(Lc(e),new pt),this.dd(1,this.getLinkPointFromPoint(r,f,e,n,!1,e))),Bt.free(a))}else{c=this.isAvoiding,f&&(u&&c||l)&&this.Fj();var x=l?this.computeCurviness():0;c=this.getLinkPoint(t,i,s,!0,u,n,o),d=g=p=0,(u||!a||l)&&(m=this.computeEndSegmentLength(t,i,s,!0),d=this.getLinkDirection(t,i,c,s,!0,u,n,o),l&&(a||s.D(e)||!u&&1===s.x+e.x&&1===s.y+e.y)&&(d-=u?90:30,0>x&&(d-=180)),0>d?d+=360:360<=d&&(d-=360),l&&(m+=Math.abs(x)*(u?1:2)),0===d?p=m:90===d?g=m:180===d?p=-m:270===d?g=-m:(p=m*Math.cos(d*Math.PI/180),g=m*Math.sin(d*Math.PI/180)),s.Mc()&&l&&(m=i.ga(oi,pt.alloc()),y=pt.allocAt(m.x+1e3*p,m.y+1e3*g),this.getLinkPointFromPoint(t,i,m,y,!0,c),pt.free(m),pt.free(y))),m=this.getLinkPoint(n,o,e,!1,u,t,i);var b=v=y=0;if(u||!h||l){var w=this.computeEndSegmentLength(n,o,e,!1);b=this.getLinkDirection(n,o,m,e,!1,u,t,i),l&&(h||s.D(e)||!u&&1===s.x+e.x&&1===s.y+e.y)&&(b+=u?0:30,0>x&&(b+=180)),0>b?b+=360:360<=b&&(b-=360),l&&(w+=Math.abs(x)*(u?1:2)),0===b?y=w:90===b?v=w:180===b?y=-w:270===b?v=-w:(y=w*Math.cos(b*Math.PI/180),v=w*Math.sin(b*Math.PI/180)),e.Mc()&&l&&(e=o.ga(oi,pt.alloc()),s=pt.allocAt(e.x+1e3*y,e.y+1e3*v),this.getLinkPointFromPoint(n,o,e,s,!1,m),pt.free(e),pt.free(s))}e=c,(u||!a||l)&&(e=new pt(c.x+p,c.y+g)),s=m,(u||!h||l)&&(s=new pt(m.x+y,m.y+v)),!f&&!u&&a&&3<r&&this.adjustPoints(0,c,r-2,s)?this.dd(r-1,m):!f&&!u&&h&&3<r&&this.adjustPoints(1,e,r-1,m)?this.dd(0,c):!f&&(u?6<=r:4<r)&&this.adjustPoints(1,e,r-2,s)?(this.dd(0,c),this.dd(r-1,m)):(this.Fj(),this.ne(c),(u||!a||l)&&this.ne(e),u&&this.addOrthoPoints(e,d,s,b,t,n),(u||!h||l)&&this.ne(s),this.ne(m))}return!0},wc.prototype.getLinkPointFromPoint=function(t,i,e,n,o,r){if(void 0===r&&(r=new pt),null===t||null===i)return r.assign(e),r;if(t.isVisible()||null!==(o=t.findVisibleNode())&&o!==t&&(i=o.port),t=null,null===(o=i.panel)||o.se()||(o=o.panel),null===o){o=n.x,n=n.y;var s=e.x;e=e.y}else{o=1/((t=o.oe).m11*t.m22-t.m12*t.m21),s=t.m22*o;var a=-t.m12*o,h=-t.m21*o,l=t.m11*o,u=o*(t.m21*t.dy-t.m22*t.dx),c=o*(t.m12*t.dx-t.m11*t.dy);o=n.x*s+n.y*h+u,n=n.x*a+n.y*l+c,s=e.x*s+e.y*h+u,e=e.x*a+e.y*l+c}return i.Sj(o,n,s,e,r),null!==t&&r.transform(t),r},wc.prototype.getLinkPoint=function(t,i,e,n,o,r,s,a){if(void 0===a&&(a=new pt),e.sb()&&!Tc(e))return i.ga(e,a),a;if(e.$c()){var h=Cc(this,i);if(null!==h){if(a.assign(h.Zo),o&&this.routing===Kc){var l=Cc(this,s);if(null!==l&&h.Gl<l.Gl){h=pt.alloc(),l=pt.alloc();var u=new Bt(i.ga(ti,h),i.ga(hi,l)),c=this.computeSpot(!n,s);t=this.getLinkPoint(r,s,c,!n,o,t,i,l),(e.Hf(ui)||e.Hf(ci))&&t.y>=u.y&&t.y<=u.y+u.height?a.y=t.y:(e.Hf(li)||e.Hf(fi))&&t.x>=u.x&&t.x<=u.x+u.width&&(a.x=t.x),pt.free(h),pt.free(l)}}return a}}return e=i.ga(Lc(e),pt.alloc()),this.pointsCount>(o?6:2)?(s=n?this.i(1):this.i(this.pointsCount-2),o&&(s=Nc(e,s.copy()))):(h=this.computeSpot(!n,s),r=pt.alloc(),s=s.ga(Lc(h),r),o&&(s=Nc(e,s)),pt.free(r)),this.getLinkPointFromPoint(t,i,e,s,n,a),pt.free(e),a},wc.prototype.getLinkDirection=function(t,i,e,n,o,r,s,a){t:if(n.sb())var h=n.x>n.y?n.x>1-n.y?0:n.x<1-n.y?270:315:n.x<n.y?n.x>1-n.y?90:n.x<1-n.y?180:135:.5>n.x?225:.5<n.x?45:0;else{if(n.$c()&&null!==(h=Cc(this,i)))switch(h.Nc){case 1:h=270;break t;case 2:h=180;break t;default:case 4:h=0;break t;case 8:h=90;break t}h=i.ga(oi,pt.alloc()),this.pointsCount>(r?6:2)?(a=o?this.i(1):this.i(this.pointsCount-2),a=r?Nc(h,a.copy()):e):(e=pt.alloc(),a=a.ga(oi,e),pt.free(e)),e=Math.abs(a.x-h.x)>Math.abs(a.y-h.y)?a.x>=h.x?0:180:a.y>=h.y?90:270,pt.free(h),h=e}return n.Mc()&&s.Td(t)&&(360<=(h+=180)&&(h-=360)),Tc(n)||0===(t=i.li())||(45<=t&&135>t?h+=90:135<=t&&225>t?h+=180:225<=t&&315>t&&(h+=270),360<=h&&(h-=360)),h},wc.prototype.computeEndSegmentLength=function(t,i,e,n){return null!==i&&e.$c()&&null!==(t=Cc(this,i))?t.Ju:(t=n?this.fromEndSegmentLength:this.toEndSegmentLength,null!==i&&isNaN(t)&&(t=n?i.fromEndSegmentLength:i.toEndSegmentLength),isNaN(t)&&(t=10),t)},wc.prototype.computeSpot=function(t,i){return void 0===i&&(i=null),t?null===(t=i||this.fromPort)?t=oi:((i=this.fromSpot).Xb()&&(i=t.fromSpot),t=i===Si?Qt:i):null===(t=i||this.toPort)?t=oi:((i=this.toSpot).Xb()&&(i=t.toSpot),t=i===Si?Qt:i),t},wc.prototype.computeOtherPoint=function(t,i){return this.computeAdjusting()!==Wc&&4<this.pointsCount?this.computeMidPoint(new pt):null!==(t=null!==(t=i.Zn)?Af(t,this):null)?t.Zo:i.ga(oi)},wc.prototype.computeShortLength=function(t){if(t){if(t=this.fromShortLength,isNaN(t)){var i=this.fromPort;null!==i&&(t=i.fromShortLength)}return isNaN(t)?0:t}return t=this.toShortLength,isNaN(t)&&(null!==(i=this.toPort)&&(t=i.toShortLength)),isNaN(t)?0:t},wc.prototype.Cf=function(t,i,e,n,o,r){if(!1===this.pickable)return!1;void 0===i&&(i=null),void 0===e&&(e=null);var s=r;if(void 0===r&&(s=Yi.alloc()).reset(),s.multiply(this.transform),this.fh(t,s))return Yh(this,i,e,o),void 0===r&&Yi.free(s),!0;if(this.Yc(t,s)){var a=!1;if(!this.isAtomic)for(var h=this.O.s,l=h.length;l--;){var u=h[l];if(u.visible||u===this.locationObject){var c=u.actualBounds,f=this.naturalBounds;if(!(c.x>f.width||c.y>f.height||0>c.x+c.width||0>c.y+c.height)){if((c=Yi.alloc()).set(s),u instanceof Ch)a=u.Cf(t,i,e,n,o,c);else if(this.path===u){if(u instanceof pl)if(a=t,f=n,!1===u.pickable)a=!1;else if(c.multiply(u.transform),f)t:{var d=a,p=c;if(u.fh(d,p))a=!0;else{if(void 0===p&&(p=u.transform,d.Re(u.actualBounds))){a=!0;break t}a=d.left,f=d.right;var g=d.top;d=d.bottom;var m=pt.alloc(),y=pt.alloc(),v=pt.alloc(),x=Yi.alloc();x.set(p),x.bv(u.transform),x.Vj(),y.x=f,y.y=g,y.transform(x),m.x=a,m.y=g,m.transform(x),p=!1,bl(u,m,y,v)?p=!0:(m.x=f,m.y=d,m.transform(x),bl(u,m,y,v)?p=!0:(y.x=a,y.y=d,y.transform(x),bl(u,m,y,v)?p=!0:(m.x=a,m.y=g,m.transform(x),bl(u,m,y,v)&&(p=!0)))),Yi.free(x),pt.free(m),pt.free(y),pt.free(v),a=p}}else a=u.fh(a,c)}else a=Is(u,t,n,c);a&&(f=u,null!==i&&(f=i(u)),f&&(null===e||e(f))&&o.add(f)),Yi.free(c)}}}return void 0===r&&Yi.free(s),a||null!==this.background||null!==this.areaBackground}return void 0===r&&Yi.free(s),!1},wc.prototype.computeCurve=function(){if(null===this.Wf){var t=this.fromPort,i=this.isOrthogonal;this.Wf=null!==t&&t===this.toPort&&!i}return this.Wf?Jc:this.curve},wc.prototype.computeCorner=function(){if(this.curve===Jc)return 0;var t=this.corner;return(isNaN(t)||0>t)&&(t=10),t},wc.prototype.findMidLabel=function(){for(var t=this.path,i=this.O.s,e=i.length,n=0;n<e;n++){var o=i[n];if(o!==t&&!o.isPanelMain&&(-1/0===o.segmentIndex||isNaN(o.segmentIndex)))return o}for(t=this.labelNodes;t.next();)if(-1/0===(i=t.value).segmentIndex||isNaN(i.segmentIndex))return i;return null},wc.prototype.computeSpacing=function(){if(!this.isVisible())return 0;var t=cf;t=Math.max(t,this.computeThickness());var i=this.fromPort,e=this.toPort;if(null!==i&&null!==e){var n=this.findMidLabel();if(null!==n){var o=n.naturalBounds,r=n.margin,s=isNaN(o.width)?30:o.width*n.scale+r.left+r.right;o=isNaN(o.height)?14:o.height*n.scale+r.top+r.bottom,(n=n.segmentOrientation)===ef||n===sf||n===rf?t=Math.max(t,o):n===of||n===hf||n===nf||n===af?t=Math.max(t,s):(i=i.ga(oi).ab(e.ga(oi))/180*Math.PI,t=Math.max(t,Math.abs(Math.sin(i)*s)+Math.abs(Math.cos(i)*o)+1)),this.curve===Jc&&(t*=1.333)}}return t},wc.prototype.arrangeBundledLinks=function(t,i){if(i)for(i=0;i<t.length;i++){var e=t[i];e.computeAdjusting()===Wc&&e.bb()}},wc.prototype.computeCurviness=function(){var t=this.curviness;if(isNaN(t)){t=uf;var i=this.Sf;if(null!==i){for(var e=A(),n=0,o=i.links,r=0;r<o.length;r++){var s=o[r].computeSpacing();e.push(s),n+=s}for(n=-n/2,r=0;r<o.length;r++){if(o[r]===this){t=n+e[r]/2;break}n+=e[r]}i.Ds===this.fromNode&&(t=-t),j(e)}}return t},wc.prototype.computeThickness=function(){if(!this.isVisible())return 0;var t=this.path;return null!==t?Math.max(t.strokeWidth,1):1},wc.prototype.hasCurviness=function(){return!isNaN(this.curviness)||null!==this.Sf},wc.prototype.adjustPoints=function(t,i,e,n){var o=this.computeAdjusting();if(this.isOrthogonal){if(o===Qc)return!1;o===tf&&(o=$c)}switch(o){case Qc:var r=this.i(t),s=this.i(e);if(!r.Xa(i)||!s.Xa(n)){o=r.x,r=r.y;var a=s.x-o,h=s.y-r,l=Math.sqrt(a*a+h*h);if(!Xi.$(l,0)){if(Xi.$(a,0))var u=0>h?-Math.PI/2:Math.PI/2;else u=Math.atan(h/Math.abs(a)),0>a&&(u=Math.PI-u);s=i.x;var c=i.y;a=n.x-s;var f=n.y-c;for(h=Math.sqrt(a*a+f*f),Xi.$(a,0)?f=0>f?-Math.PI/2:Math.PI/2:(f=Math.atan(f/Math.abs(a)),0>a&&(f=Math.PI-f)),l=h/l,u=f-u,this.dd(t,i),t+=1;t<e;t++)a=(i=this.i(t)).x-o,h=i.y-r,i=Math.sqrt(a*a+h*h),Xi.$(i,0)||(Xi.$(a,0)?h=0>h?-Math.PI/2:Math.PI/2:(h=Math.atan(h/Math.abs(a)),0>a&&(h=Math.PI-h)),a=h+u,i*=l,this.L(t,s+i*Math.cos(a),c+i*Math.sin(a)));this.dd(e,n)}}return!0;case tf:if(r=this.i(t),c=this.i(e),!r.Xa(i)||!c.Xa(n)){o=r.x,r=r.y,l=((s=c.x)-o)*(s-o)+((c=c.y)-r)*(c-r),a=i.x,u=i.y,h=n.x,f=n.y;var d=1;if(0!=h-a){var p=(f-u)/(h-a);d=Math.sqrt(1+1/(p*p))}else p=9e9;for(this.dd(t,i),t+=1;t<e;t++){var g=(i=this.i(t)).x,m=i.y,y=.5;0!==l&&(y=((o-g)*(o-s)+(r-m)*(r-c))/l);var v=o+y*(s-o),x=r+y*(c-r);i=Math.sqrt((g-v)*(g-v)+(m-x)*(m-x)),m<p*(g-v)+x&&(i=-i),0<p&&(i=-i),g=a+y*(h-a),y=u+y*(f-u),0!==p?(i=g+i/d,this.L(t,i,y-(i-g)/p)):this.L(t,g,y+i)}this.dd(e,n)}return!0;case $c:return this.isOrthogonal&&(o=this.i(t),r=this.i(t+1),s=this.i(t+2),c=a=r.x,l=u=r.y,Xi.B(o.y,r.y)?Xi.B(r.x,s.x)?u=i.y:Xi.B(r.y,s.y)&&(a=i.x):Xi.B(o.x,r.x)&&(Xi.B(r.y,s.y)?a=i.x:Xi.B(r.x,s.x)&&(u=i.y)),this.L(t+1,a,u),o=this.i(e),r=this.i(e-1),s=this.i(e-2),h=a=r.x,f=u=r.y,Xi.B(o.y,r.y)?Xi.B(r.x,s.x)?u=n.y:Xi.B(r.y,s.y)&&(a=n.x):Xi.B(o.x,r.x)&&(Xi.B(r.y,s.y)?a=n.x:Xi.B(r.x,s.x)&&(u=n.y)),this.L(e-1,a,u),Ac(this))?(this.L(t+1,c,l),this.L(e-1,h,f),e=!1):(this.dd(t,i),this.dd(e,n),e=!0),e;default:return!1}},wc.prototype.addOrthoPoints=function(t,i,e,n,o,r){0>i?i+=360:360<=i&&(i-=360),0>n?n+=360:360<=n&&(n-=360);var s=n;i=315<=i||45>i?0:45<=i&&135>i?90:135<=i&&225>i?180:270,n=315<=n||45>n?0:45<=n&&135>n?90:135<=n&&225>n?180:270;var a=o.actualBounds.copy(),h=r.actualBounds.copy();if(a.w()&&h.w()){a.Bc(ff,ff),h.Bc(ff,ff),a.Ye(t),h.Ye(e);var l=pt.alloc(),u=pt.alloc();0===i?e.x>t.x||270===n&&e.y<t.y&&h.right>t.x||90===n&&e.y>t.y&&h.right>t.x?(l.h(e.x,t.y),u.h(e.x,(t.y+e.y)/2),180===n?(l.x=this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!1),u.x=l.x,u.y=e.y):270===n&&e.y<t.y||90===n&&e.y>t.y?(l.x=t.x<h.left?this.computeMidOrthoPosition(t.x,t.y,h.left,e.y,!1):t.x<h.right&&(270===n&&t.y<h.top||90===n&&t.y>h.bottom)?this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!1):h.right,u.x=l.x,u.y=e.y):0===n&&t.x<h.left&&t.y>h.top&&t.y<h.bottom&&(l.x=t.x,l.y=t.y<e.y?Math.min(e.y,h.top):Math.max(e.y,h.bottom),u.y=l.y)):(l.h(t.x,e.y),u.h((t.x+e.x)/2,e.y),(180===n||90===n&&e.y<a.top||270===n&&e.y>a.bottom)&&(180===n&&(h.ca(t)||a.ca(e))?l.y=this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!0):e.y<t.y&&(180===n||90===n)?l.y=this.computeMidOrthoPosition(t.x,a.top,e.x,Math.max(e.y,h.bottom),!0):e.y>t.y&&(180===n||270===n)&&(l.y=this.computeMidOrthoPosition(t.x,a.bottom,e.x,Math.min(e.y,h.top),!0)),u.x=e.x,u.y=l.y),l.y>a.top&&l.y<a.bottom&&(e.x>=a.left&&e.x<=t.x||t.x<=h.right&&t.x>=e.x?90!==n&&270!==n||(l.h(Math.max((t.x+e.x)/2,t.x),t.y),u.h(l.x,e.y)):(l.y=270===n||(0===n||180===n)&&e.y<t.y?Math.min(e.y,0===n?a.top:Math.min(a.top,h.top)):Math.max(e.y,0===n?a.bottom:Math.max(a.bottom,h.bottom)),u.x=e.x,u.y=l.y))):180===i?e.x<t.x||270===n&&e.y<t.y&&h.left<t.x||90===n&&e.y>t.y&&h.left<t.x?(l.h(e.x,t.y),u.h(e.x,(t.y+e.y)/2),0===n?(l.x=this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!1),u.x=l.x,u.y=e.y):270===n&&e.y<t.y||90===n&&e.y>t.y?(l.x=t.x>h.right?this.computeMidOrthoPosition(t.x,t.y,h.right,e.y,!1):t.x>h.left&&(270===n&&t.y<h.top||90===n&&t.y>h.bottom)?this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!1):h.left,u.x=l.x,u.y=e.y):180===n&&t.x>h.right&&t.y>h.top&&t.y<h.bottom&&(l.x=t.x,l.y=t.y<e.y?Math.min(e.y,h.top):Math.max(e.y,h.bottom),u.y=l.y)):(l.h(t.x,e.y),u.h((t.x+e.x)/2,e.y),(0===n||90===n&&e.y<a.top||270===n&&e.y>a.bottom)&&(0===n&&(h.ca(t)||a.ca(e))?l.y=this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!0):e.y<t.y&&(0===n||90===n)?l.y=this.computeMidOrthoPosition(t.x,a.top,e.x,Math.max(e.y,h.bottom),!0):e.y>t.y&&(0===n||270===n)&&(l.y=this.computeMidOrthoPosition(t.x,a.bottom,e.x,Math.min(e.y,h.top),!0)),u.x=e.x,u.y=l.y),l.y>a.top&&l.y<a.bottom&&(e.x<=a.right&&e.x>=t.x||t.x>=h.left&&t.x<=e.x?90!==n&&270!==n||(l.h(Math.min((t.x+e.x)/2,t.x),t.y),u.h(l.x,e.y)):(l.y=270===n||(0===n||180===n)&&e.y<t.y?Math.min(e.y,180===n?a.top:Math.min(a.top,h.top)):Math.max(e.y,180===n?a.bottom:Math.max(a.bottom,h.bottom)),u.x=e.x,u.y=l.y))):90===i?e.y>t.y||180===n&&e.x<t.x&&h.bottom>t.y||0===n&&e.x>t.x&&h.bottom>t.y?(l.h(t.x,e.y),u.h((t.x+e.x)/2,e.y),270===n?(l.y=this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!0),u.x=e.x,u.y=l.y):180===n&&e.x<t.x||0===n&&e.x>t.x?(l.y=t.y<h.top?this.computeMidOrthoPosition(t.x,t.y,e.x,h.top,!0):t.y<h.bottom&&(180===n&&t.x<h.left||0===n&&t.x>h.right)?this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!0):h.bottom,u.x=e.x,u.y=l.y):90===n&&t.y<h.top&&t.x>h.left&&t.x<h.right&&(l.x=t.x<e.x?Math.min(e.x,h.left):Math.max(e.x,h.right),l.y=t.y,u.x=l.x)):(l.h(e.x,t.y),u.h(e.x,(t.y+e.y)/2),(270===n||0===n&&e.x<a.left||180===n&&e.x>a.right)&&(270===n&&(h.ca(t)||a.ca(e))?l.x=this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!1):e.x<t.x&&(270===n||0===n)?l.x=this.computeMidOrthoPosition(a.left,t.y,Math.max(e.x,h.right),e.y,!1):e.x>t.x&&(270===n||180===n)&&(l.x=this.computeMidOrthoPosition(a.right,t.y,Math.min(e.x,h.left),e.y,!1)),u.x=l.x,u.y=e.y),l.x>a.left&&l.x<a.right&&(e.y>=a.top&&e.y<=t.y||t.y<=h.bottom&&t.y>=e.y?0!==n&&180!==n||(l.h(t.x,Math.max((t.y+e.y)/2,t.y)),u.h(e.x,l.y)):(l.x=180===n||(90===n||270===n)&&e.x<t.x?Math.min(e.x,90===n?a.left:Math.min(a.left,h.left)):Math.max(e.x,90===n?a.right:Math.max(a.right,h.right)),u.x=l.x,u.y=e.y))):e.y<t.y||180===n&&e.x<t.x&&h.top<t.y||0===n&&e.x>t.x&&h.top<t.y?(l.h(t.x,e.y),u.h((t.x+e.x)/2,e.y),90===n?(l.y=this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!0),u.x=e.x,u.y=l.y):180===n&&e.x<t.x||0===n&&e.x>=t.x?(l.y=t.y>h.bottom?this.computeMidOrthoPosition(t.x,t.y,e.x,h.bottom,!0):t.y>h.top&&(180===n&&t.x<h.left||0===n&&t.x>h.right)?this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!0):h.top,u.x=e.x,u.y=l.y):270===n&&t.y>h.bottom&&t.x>h.left&&t.x<h.right&&(l.x=t.x<e.x?Math.min(e.x,h.left):Math.max(e.x,h.right),l.y=t.y,u.x=l.x)):(l.h(e.x,t.y),u.h(e.x,(t.y+e.y)/2),(90===n||0===n&&e.x<a.left||180===n&&e.x>a.right)&&(90===n&&(h.ca(t)||a.ca(e))?l.x=this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!1):e.x<t.x&&(90===n||0===n)?l.x=this.computeMidOrthoPosition(a.left,t.y,Math.max(e.x,h.right),e.y,!1):e.x>t.x&&(90===n||180===n)&&(l.x=this.computeMidOrthoPosition(a.right,t.y,Math.min(e.x,h.left),e.y,!1)),u.x=l.x,u.y=e.y),l.x>a.left&&l.x<a.right&&(e.y<=a.bottom&&e.y>=t.y||t.y>=h.top&&t.y<=e.y?0!==n&&180!==n||(l.h(t.x,Math.min((t.y+e.y)/2,t.y)),u.h(e.x,l.y)):(l.x=180===n||(90===n||270===n)&&e.x<t.x?Math.min(e.x,270===n?a.left:Math.min(a.left,h.left)):Math.max(e.x,270===n?a.right:Math.max(a.right,h.right)),u.x=l.x,u.y=e.y)));var c=e;if(this.isAvoiding){var f=this.diagram;if(null===f||o===r||this.layer.isTemporary||!Ar(f)||a.ca(c)&&!r.Td(o)||h.ca(t)&&!o.Td(r))i=!1;else{var d=jr(f,!0,this.containingGroup,null);if(17!==this.segmentIndex&&d.Yj(Math.min(t.x,l.x),Math.min(t.y,l.y),Math.abs(t.x-l.x),Math.abs(t.y-l.y))&&d.Yj(Math.min(l.x,u.x),Math.min(l.y,u.y),Math.abs(l.x-u.x),Math.abs(l.y-u.y))&&d.Yj(Math.min(u.x,c.x),Math.min(u.y,c.y),Math.abs(u.x-c.x),Math.abs(u.y-c.y)))i=!1;else{o=t,r=c;var p=e=null;if(f.isVirtualized){(f=d.bounds.copy()).Bc(-d.Ho,-d.Go);var g=pt.alloc();gf(d,t.x,t.y)||(Xi.Ff(f.x,f.y,f.x+f.width,f.y+f.height,t.x,t.y,l.x,l.y,g)?(e=t=g.copy(),i=g.ab(l)):Xi.Ff(f.x,f.y,f.x+f.width,f.y+f.height,l.x,l.y,u.x,u.y,g)?(e=t=g.copy(),i=g.ab(u)):Xi.Ff(f.x,f.y,f.x+f.width,f.y+f.height,u.x,u.y,c.x,c.y,g)&&(e=t=g.copy(),i=g.ab(c))),gf(d,c.x,c.y)||(Xi.Ff(f.x,f.y,f.x+f.width,f.y+f.height,c.x,c.y,u.x,u.y,g)?(p=c=g.copy(),n=u.ab(g)):Xi.Ff(f.x,f.y,f.x+f.width,f.y+f.height,u.x,u.y,l.x,l.y,g)?(p=c=g.copy(),n=l.ab(g)):Xi.Ff(f.x,f.y,f.x+f.width,f.y+f.height,l.x,l.y,t.x,t.y,g)&&(p=c=g.copy(),n=t.ab(g))),pt.free(g)}(a=a.copy().ed(h)).Bc(d.Ho*d.Os,d.Go*d.Os),wf(d,t,i,c,n,a,!0),h=mf(d,c.x,c.y),!d.abort&&h>=Pf&&(yf(d),a.Bc(d.Ho*d.Hx,d.Go*d.Ix),wf(d,t,i,c,n,a,!1),h=mf(d,c.x,c.y)),!d.abort&&h<Pf&&mf(d,c.x,c.y)!==Mf?(jc(this,d,c.x,c.y,n,!0,s),a=this.i(2),4>this.pointsCount?(0===i||180===i?(a.x=t.x,a.y=c.y):(a.x=c.x,a.y=t.y),this.L(2,a.x,a.y),this.m(3,a.x,a.y)):(s=this.i(3),0===i||180===i?Xi.B(a.x,s.x)?(a=0===i?Math.max(a.x,t.x):Math.min(a.x,t.x),this.L(2,a,t.y),this.L(3,a,s.y)):Xi.B(a.y,s.y)?(Math.abs(t.y-a.y)<=d.Go/2&&(this.L(2,a.x,t.y),this.L(3,s.x,t.y)),this.m(2,a.x,t.y)):this.L(2,t.x,a.y):90!==i&&270!==i||(Xi.B(a.y,s.y)?(a=90===i?Math.max(a.y,t.y):Math.min(a.y,t.y),this.L(2,t.x,a),this.L(3,s.x,a)):Xi.B(a.x,s.x)?(Math.abs(t.x-a.x)<=d.Ho/2&&(this.L(2,t.x,a.y),this.L(3,t.x,s.y)),this.m(2,t.x,a.y)):this.L(2,a.x,t.y))),null!==e&&(t=this.i(1),s=this.i(2),t.x!==s.x&&t.y!==s.y?0===i||180===i?this.m(2,t.x,s.y):this.m(2,s.x,t.y):0===i||180===i?this.m(2,o.x,e.y):this.m(2,e.x,o.y)),null!==p&&(0===n||180===n?this.yf(r.x,p.y):this.yf(p.x,r.y)),i=!0):i=!1}}}else i=!1;i||(this.ne(l.copy()),this.ne(u.copy())),pt.free(l),pt.free(u)}},wc.prototype.computeMidOrthoPosition=function(t,i,e,n,o){var r=0;return!this.hasCurviness()||this.computeSpot(!0,this.fromPort).$c()||this.computeSpot(!1,this.toPort).$c()||(r=this.computeCurviness()),o?(i+n)/2+r:(t+e)/2+r},wc.prototype.ez=function(t){var i=t.x;t=t.y;for(var e=this.i(0),n=this.i(1),o=xt(i,t,e.x,e.y,n.x,n.y),r=0,s=1;s<this.pointsCount-1;s++){e=this.i(s+1);var a=xt(i,t,n.x,n.y,e.x,e.y);n=e,a<o&&(r=s,o=a)}return r},wc.prototype.qc=function(){this.lk=!1,this.v()},wc.prototype.Ul=function(t){if(!t){if(!1===this.fd)return;if(t=this.Pb(),this.lk&&(null===t||null!==t.geometry))return}if(2>this.pointsCount?this.lk=!0:this.ua=this.makeGeometry(),null!==(t=this.path)){t.ua=this.ua;for(var i=this.O.s,e=i.length,n=0;n<e;n++){var o=i[n];o!==t&&o.isPanelMain&&o instanceof pl&&(o.ua=this.ua)}}},wc.prototype.makeGeometry=function(){var t=this.ua,i=this.pointsCount,e=!1,n=this.diagram;null!==n&&zc(this)&&n.Eh.contains(this)&&(0!==this.ml.width||0!==this.ml.height)&&(n.animationManager.isAnimating||n.currentTool!==n.toolManager)&&(e=!0);var o=this.i(0).copy(),r=o.copy();n=this.Nb.s;var s=this.computeCurve();if(s===Jc&&3<=i&&!Xi.$(this.smoothness,0))if(3===i){var a=this.i(1);n=Math.min(o.x,a.x);var h=Math.min(o.y,a.y);a=this.i(2),n=Math.min(n,a.x),h=Math.min(h,a.y)}else{if(this.isOrthogonal)for(h=0;h<i;h++)a=n[h],r.x=Math.min(a.x,r.x),r.y=Math.min(a.y,r.y);else for(n=3;n<i;n+=3)n+3>=i&&(n=i-1),h=this.i(n),r.x=Math.min(h.x,r.x),r.y=Math.min(h.y,r.y);n=r.x,h=r.y}else{for(h=0;h<i;h++)a=n[h],r.x=Math.min(a.x,r.x),r.y=Math.min(a.y,r.y);n=r.x,h=r.y}if(n-=this.su.x,h-=this.su.y,o.x-=n,o.y-=h,2!==i||zc(this)){if(t.type=Ui.o,a=vu(t),0!==this.computeShortLength(!0)&&(o=Dc(this,o,!0,r)),du(a,o.x,o.y,!1),s===Jc&&3<=i&&!Xi.$(this.smoothness,0))if(3===i)i=(e=this.i(1)).x-n,e=e.y-h,(o=this.i(2).copy()).x-=n,o.y-=h,0!==this.computeShortLength(!1)&&(o=Dc(this,o,!1,r)),gu(a,i,e,i,e,o.x,o.y);else if(this.isOrthogonal){i=pt.allocAt(n,h),(e=pt.alloc()).assign(this.i(1)),r=pt.allocAt(n,h),o=pt.allocAt(n,h),s=this.i(0);for(var l,u=this.smoothness/3,c=1;c<this.pointsCount-1;c++){var f=s,d=l=this.i(c),p=this.i(Bc(this,l,c,!1));if(!(Xi.$(f.x,d.x)&&Xi.$(d.x,p.x)||Xi.$(f.y,d.y)&&Xi.$(d.y,p.y))){var g=u;isNaN(g)&&(g=this.smoothness/3);var m=f.x;f=f.y;var y=d.x;d=d.y;var v=p.x;p=p.y;var x=g*Fc(m,f,y,d);g*=Fc(y,d,v,p),Xi.$(f,d)&&Xi.$(y,v)&&(y>m?p>d?(r.x=y-x,r.y=d-x,o.x=y+g,o.y=d+g):(r.x=y-x,r.y=d+x,o.x=y+g,o.y=d-g):p>d?(r.x=y+x,r.y=d-x,o.x=y-g,o.y=d+g):(r.x=y+x,r.y=d+x,o.x=y-g,o.y=d-g)),Xi.$(m,y)&&Xi.$(d,p)&&(d>f?(v>y?(r.x=y-x,r.y=d-x,o.x=y+g):(r.x=y+x,r.y=d-x,o.x=y-g),o.y=d+g):(v>y?(r.x=y-x,r.y=d+x,o.x=y+g):(r.x=y+x,r.y=d+x,o.x=y-g),o.y=d-g)),(Xi.$(m,y)&&Xi.$(y,v)||Xi.$(f,d)&&Xi.$(d,p))&&(m=.5*(m+v),f=.5*(f+p),r.x=m,r.y=f,o.x=m,o.y=f),(1===c||2===c&&Xi.$(s.x,this.i(0).x)&&Xi.$(s.y,this.i(0).y))&&(e.x=.5*(s.x+l.x),e.y=.5*(s.y+l.y)),gu(a,e.x-n,e.y-h,r.x-n,r.y-h,l.x-n,l.y-h),i.set(r),e.set(o),s=l}}l=s.x,s=s.y,u=this.i(this.pointsCount-1),0!==this.computeShortLength(!1)&&(u=Dc(this,u.copy(),!1,et)),l=.5*(l+u.x),s=.5*(s+u.y),gu(a,o.x-n,o.y-h,l-n,s-h,u.x-n,u.y-h),pt.free(i),pt.free(e),pt.free(r),pt.free(o)}else for(e=3;e<i;e+=3)r=this.i(e-2),e+3>=i&&(e=i-1),o=this.i(e-1),s=this.i(e),e===i-1&&0!==this.computeShortLength(!1)&&(s=Dc(this,s.copy(),!1,et)),gu(a,r.x-n,r.y-h,o.x-n,o.y-h,s.x-n,s.y-h);else{for((r=pt.alloc()).assign(this.i(0)),(o=pt.alloc()).assign(r),s=this.computeCorner(),c=1,l=0;c<i;){if(c=Bc(this,r,c,1<c),u=this.i(c),c>=i-1){if(r.D(u)){if(0===l)for(c=1;c<i;)o.assign(r),Oc(this,a,-n,-h,r,u=this.i(c++),e),r.assign(u)}else 0!==this.computeShortLength(!1)&&(u=Dc(this,u.copy(),!1,et)),Oc(this,a,-n,-h,r,u,e);break}if(l=Bc(this,u,c+1,c<i-3),c=-n,m=-h,f=u,y=this.i(l),g=e,Xi.B(r.y,f.y)&&Xi.B(f.x,y.x))if(p=Math.min(s,Math.abs(f.x-o.x)/2),p=x=Math.min(p,Math.abs(y.y-f.y)/2),Xi.B(p,0))Oc(this,a,c,m,r,f,g),r.assign(f);else{var b=f.x,w=f.y;d=b,v=w,b=f.x>r.x?f.x-p:f.x+p,v=y.y>f.y?f.y+x:f.y-x,Oc(this,a,c,m,r,y=pt.allocAt(b,w),g),pt.free(y),mu(a,f.x+c,f.y+m,d+c,v+m),r.h(d,v)}else Xi.B(r.x,f.x)&&Xi.B(f.y,y.y)?(p=Math.min(s,Math.abs(f.y-o.y)/2),p=x=Math.min(p,Math.abs(y.x-f.x)/2),Xi.B(x,0)?(Oc(this,a,c,m,r,f,g),r.assign(f)):(d=b=f.x,v=w=f.y,w=f.y>r.y?f.y-p:f.y+p,d=y.x>f.x?f.x+x:f.x-x,Oc(this,a,c,m,r,y=pt.allocAt(b,w),g),pt.free(y),mu(a,f.x+c,f.y+m,d+c,v+m),r.h(d,v))):(Oc(this,a,c,m,r,f,g),r.assign(f));o.assign(u),c=l}pt.free(r)}xu=a}else(a=this.i(1).copy()).x-=n,a.y-=h,0!==this.computeShortLength(!0)&&(o=Dc(this,o,!0,r)),0!==this.computeShortLength(!1)&&(a=Dc(this,a,!1,r)),t.type=Ui.j,t.startX=o.x,t.startY=o.y,t.endX=a.x,t.endY=a.y;return this.lk=!0,t},wc.prototype.computeJumpLength=function(){return 10},wc.prototype.Xo=function(t){var i=this.layer;if(null!==i&&i.visible&&!i.isTemporary){var e=i.diagram;if(null!==e&&!e.animationManager.isTicking){var n=!1;for(e=e.layers;e.next();){var o=e.value;if(o.visible)if(o===i){n=!0;for(var r=!1,s=(o=o.Pa.s).length,a=0;a<s;a++){var h=o[a];h instanceof wc&&(h===this?r=!0:r&&Ec(this,h,t))}}else if(n)for(o=(r=o.Pa.s).length,s=0;s<o;s++)(a=r[s])instanceof wc&&Ec(this,a,t)}}}},wc.prototype.usesSamePort=function(t){var i=this.pointsCount,e=t.pointsCount;if(0<i&&0<e){var n=this.i(0),o=t.i(0);if(n.Xa(o))return!0;if(i=this.i(i-1),t=t.i(e-1),i.Xa(t)||n.Xa(t)||i.Xa(o))return!0}else if(this.fromNode===t.fromNode||this.toNode===t.toNode||this.fromNode===t.toNode||this.toNode===t.fromNode)return!0;return!1},wc.prototype.isVisible=function(){if(!ku.prototype.isVisible.call(this))return!1;var t=this.containingGroup,i=!0,e=this.diagram;if(null!==e&&(i=e.isTreePathToChildren),null!==(e=this.fromNode)){if(this.isTreeLink&&i&&!e.isTreeExpanded)return!1;if(e===t)return!0;for(var n=e;null!==n;){if(n.labeledLink===this)return!0;n=n.containingGroup}if(null===(e=e.findVisibleNode())||e===t)return!1}if(null!==(e=this.toNode)){if(this.isTreeLink&&!i&&!e.isTreeExpanded)return!1;if(e===t)return!0;for(i=e;null!==i;){if(i.labeledLink===this)return!0;i=i.containingGroup}if(null===(i=e.findVisibleNode())||i===t)return!1}return!0},wc.prototype.Zb=function(t){if(ku.prototype.Zb.call(this,t),t&&Rc(this,!1),null!==this.Sf&&this.Sf.Sl(),null!==this.wd)for(var i=this.wd.iterator;i.next();)i.value.Zb(t)},wc.prototype.computeAdjusting=function(){return this.isAvoiding&&null!==this.diagram&&this.diagram.animationManager.defaultAnimation.isAnimating?$c:this.qk},wc.prototype.ph=function(){return!0},f.Object.defineProperties(wc.prototype,{fromNode:{get:function(){return this.ef},set:function(t){var i=this.ef;if(i!==t){var e=this.fromPort;null!==i&&(this.uf!==i&&nc(i,this,e),Yc(this),this.C(2)),this.ef=t,null!==t&&this.Zb(t.isVisible()),this.Wf=null,this.bb();var n=this.diagram;null!==n&&n.aa&&n.partManager.setFromNodeForLink(this,t,i);var o=this.fromPort,r=this.fromPortChanged;if(null!==r){var s=!0;null!==n&&(s=n.aa,n.aa=!0),r(this,e,o),null!==n&&(n.aa=s)}null!==t&&(this.uf!==t&&ec(t,this,o),Vc(this),this.C(1)),this.g("fromNode",i,t),kc(this)}}},fromPortId:{get:function(){return this.ff},set:function(t){var i=this.ff;if(i!==t){var e=this.fromPort;null!==e&&tc(e),Yc(this),this.ff=t;var n=this.fromPort;null!==n&&tc(n);var o=this.diagram;if(null!==o){var r=this.data,s=o.model;null!==r&&s.ri()&&s.xv(r,t)}e!==n&&(this.Wf=null,this.bb(),null!==(r=this.fromPortChanged)&&(s=!0,null!==o&&(s=o.aa,o.aa=!0),r(this,e,n),null!==o&&(o.aa=s))),Vc(this),this.g("fromPortId",i,t)}}},fromPort:{get:function(){var t=this.ef;return null===t?null:t.ns(this.ff)}},fromPortChanged:{get:function(){return this.gn},set:function(t){var i=this.gn;i!==t&&(this.gn=t,this.g("fromPortChanged",i,t))}},toNode:{get:function(){return this.uf},set:function(t){var i=this.uf;if(i!==t){var e=this.toPort;null!==i&&(this.ef!==i&&nc(i,this,e),Yc(this),this.C(2)),this.uf=t,null!==t&&this.Zb(t.isVisible()),this.Wf=null,this.bb();var n=this.diagram;null!==n&&n.aa&&n.partManager.setToNodeForLink(this,t,i);var o=this.toPort,r=this.toPortChanged;if(null!==r){var s=!0;null!==n&&(s=n.aa,n.aa=!0),r(this,e,o),null!==n&&(n.aa=s)}null!==t&&(this.ef!==t&&ec(t,this,o),Vc(this),this.C(1)),this.g("toNode",i,t),kc(this)}}},toPortId:{get:function(){return this.vf},set:function(t){var i=this.vf;if(i!==t){var e=this.toPort;null!==e&&tc(e),Yc(this),this.vf=t;var n=this.toPort;null!==n&&tc(n);var o=this.diagram;if(null!==o){var r=this.data,s=o.model;null!==r&&s.ri()&&s.Cv(r,t)}e!==n&&(this.Wf=null,this.bb(),null!==(r=this.toPortChanged)&&(s=!0,null!==o&&(s=o.aa,o.aa=!0),r(this,e,n),null!==o&&(o.aa=s))),Vc(this),this.g("toPortId",i,t)}}},toPort:{get:function(){var t=this.uf;return null===t?null:t.ns(this.vf)}},toPortChanged:{get:function(){return this.uo},set:function(t){var i=this.uo;i!==t&&(this.uo=t,this.g("toPortChanged",i,t))}},fromSpot:{get:function(){return null!==this.ba?this.ba.Xi:Si},set:function(t){var i=this.fromSpot;i.D(t)||(t=t.J(),this.Xc(),this.ba.Xi=t,this.g("fromSpot",i,t),(i.$c()||t.$c())&&null!==this.fromNode&&tc(this.fromPort),this.bb())}},fromEndSegmentLength:{get:function(){return null!==this.ba?this.ba.Vi:NaN},set:function(t){var i=this.fromEndSegmentLength;i!==t&&(0>t&&M(t,">= 0",wc,"fromEndSegmentLength"),this.Xc(),this.ba.Vi=t,this.g("fromEndSegmentLength",i,t),this.bb())}},fromShortLength:{get:function(){return null!==this.ba?this.ba.Wi:NaN},set:function(t){var i=this.fromShortLength;i!==t&&(this.Xc(),this.ba.Wi=t,this.qc(),this.g("fromShortLength",i,t))}},toSpot:{get:function(){return null!==this.ba?this.ba.yj:Si},set:function(t){var i=this.toSpot;i.D(t)||(t=t.J(),this.Xc(),this.ba.yj=t,this.g("toSpot",i,t),(i.$c()||t.$c())&&null!==this.toNode&&tc(this.toPort),this.bb())}},toEndSegmentLength:{get:function(){return null!==this.ba?this.ba.wj:NaN},set:function(t){var i=this.toEndSegmentLength;i!==t&&(0>t&&M(t,">= 0",wc,"toEndSegmentLength"),this.Xc(),this.ba.wj=t,this.g("toEndSegmentLength",i,t),this.bb())}},toShortLength:{get:function(){return null!==this.ba?this.ba.xj:NaN},set:function(t){var i=this.toShortLength;i!==t&&(this.Xc(),this.ba.xj=t,this.qc(),this.g("toShortLength",i,t))}},isLabeledLink:{get:function(){return null!==this.wd&&0<this.wd.count}},labelNodes:{get:function(){return null===this.wd?H:this.wd.iterator}},relinkableFrom:{get:function(){return 0!=(1&this.Qa)},set:function(t){var i=0!=(1&this.Qa);i!==t&&(this.Qa^=1,this.g("relinkableFrom",i,t),this.Wb())}},relinkableTo:{get:function(){return 0!=(2&this.Qa)},set:function(t){var i=0!=(2&this.Qa);i!==t&&(this.Qa^=2,this.g("relinkableTo",i,t),this.Wb())}},resegmentable:{get:function(){return 0!=(4&this.Qa)},set:function(t){var i=0!=(4&this.Qa);i!==t&&(this.Qa^=4,this.g("resegmentable",i,t),this.Wb())}},isTreeLink:{get:function(){return 0!=(8&this.Qa)},set:function(t){var i=0!=(8&this.Qa);i!==t&&(this.Qa^=8,this.g("isTreeLink",i,t),null!==this.fromNode&&oc(this.fromNode),null!==this.toNode&&oc(this.toNode))}},path:{get:function(){var t=this.Pb();return t instanceof pl?t:null}},routeBounds:{get:function(){this.vg();var t=this.ml,i=1/0,e=1/0,n=this.pointsCount;if(0===n)t.h(NaN,NaN,0,0);else{if(1===n)n=this.i(0),i=Math.min(n.x,i),e=Math.min(n.y,e),t.h(n.x,n.y,0,0);else if(2===n){n=this.i(0);var o=this.i(1);i=Math.min(n.x,o.x),e=Math.min(n.y,o.y),t.h(n.x,n.y,0,0),t.Ye(o)}else if(this.computeCurve()===Jc&&3<=n&&!this.isOrthogonal)if(i=(o=this.i(0)).x,e=o.y,t.h(i,e,0,0),3===n){n=this.i(1),i=Math.min(n.x,i),e=Math.min(n.y,e);var r=this.i(2);i=Math.min(r.x,i),e=Math.min(r.y,e),Xi.Dl(o.x,o.y,n.x,n.y,n.x,n.y,r.x,r.y,.5,t)}else for(r=3;r<n;r+=3){var s=this.i(r-2);r+3>=n&&(r=n-1);var a=this.i(r-1),h=this.i(r);Xi.Dl(o.x,o.y,s.x,s.y,a.x,a.y,h.x,h.y,.5,t),i=Math.min(h.x,i),e=Math.min(h.y,e),o=h}else for(o=this.i(0),r=this.i(1),i=Math.min(o.x,r.x),e=Math.min(o.y,r.y),t.h(o.x,o.y,0,0),t.Ye(r),o=2;o<n;o++)r=this.i(o),i=Math.min(r.x,i),e=Math.min(r.y,e),t.Ye(r);this.su.h(i-t.x,e-t.y)}return t}},midPoint:{get:function(){return this.vg(),this.computeMidPoint(new pt)}},midAngle:{get:function(){return this.vg(),this.computeMidAngle()}},flattenedLengths:{get:function(){if(null===this.cq){this.fd||Pc(this);for(var t=this.cq=[],i=this.pointsCount,e=0;e<i-1;e++){var n=this.i(e),o=this.i(e+1);Xi.$(n.x,o.x)?0>(n=o.y-n.y)&&(n=-n):Xi.$(n.y,o.y)?0>(n=o.x-n.x)&&(n=-n):n=Math.sqrt(n.Bf(o)),t.push(n)}}return this.cq}},flattenedTotalLength:{get:function(){var t=this.vt;if(isNaN(t)){for(var i=this.flattenedLengths,e=i.length,n=t=0;n<e;n++)t+=i[n];this.vt=t}return t}},points:{get:function(){return this.Nb},set:function(t){var i=this.Nb;if(i!==t){var e=null;if(Array.isArray(t)){var n=0==t.length%2;if(n)for(var o=0;o<t.length;o++)if("number"!=typeof t[o]||isNaN(t[o])){n=!1;break}if(n)for(e=new Z,n=0;n<t.length/2;n++)o=new pt(t[2*n],t[2*n+1]).freeze(),e.add(o);else{for(n=!0,o=0;o<t.length;o++){var r=t[o];if(!P(r)||"number"!=typeof r.x||isNaN(r.x)||"number"!=typeof r.y||isNaN(r.y)){n=!1;break}}if(n)for(e=new Z,n=0;n<t.length;n++)o=t[n],e.add(new pt(o.x,o.y).freeze())}}else if(t instanceof Z)for(e=t.copy(),t=e.iterator;t.next();)t.value.freeze();else w("Link.points value is not an instance of List or Array: "+t);e.freeze(),this.Nb=e,this.qc(),Pc(this),null!==(t=this.diagram)&&(t.pi||t.undoManager.isUndoingRedoing||t.As.add(this),t.animationManager.zb&&Qn(t.animationManager,this,e)),this.g("points",i,e)}}},pointsCount:{get:function(){return this.Nb.count}},fd:{get:function(){return 0!=(16&this.Qa)},set:function(t){0!=(16&this.Qa)!==t&&(this.Qa^=16)}},suspendsRouting:{get:function(){return 0!=(32&this.Qa)},set:function(t){0!=(32&this.Qa)!==t&&(this.Qa^=32)}},computingPoints:{get:function(){return 0!=(64&this.Qa)},set:function(t){0!=(64&this.Qa)!==t&&(this.Qa^=64)}},defaultFromPoint:{get:function(){return this.o},set:function(t){this.o=t.copy()}},defaultToPoint:{get:function(){return this.u},set:function(t){this.u=t.copy()}},isOrthogonal:{get:function(){return 2==(2&this.qj.value)}},isAvoiding:{get:function(){return 4==(4&this.qj.value)}},lk:{get:function(){return 0!=(128&this.Qa)},set:function(t){0!=(128&this.Qa)!==t&&(this.Qa^=128)}},geometry:{get:function(){if(!this.lk){if(this.vg(),2>this.pointsCount)return this.lk=!0,this.ua;this.ua=this.makeGeometry()}return this.ua}},firstPickIndex:{get:function(){return 2>=this.pointsCount?0:this.isOrthogonal||!Tc(this.computeSpot(!0))?1:0}},lastPickIndex:{get:function(){var t=this.pointsCount;return 0===t?0:2>=t?t-1:this.isOrthogonal||!Tc(this.computeSpot(!1))?t-2:t-1}},adjusting:{get:function(){return this.qk},set:function(t){var i=this.qk;i!==t&&(this.qk=t,this.g("adjusting",i,t))}},corner:{get:function(){return this.Om},set:function(t){var i=this.Om;i!==t&&(this.Om=t,this.qc(),this.g("corner",i,t))}},curve:{get:function(){return this.Qm},set:function(t){var i=this.Qm;i!==t&&(this.Qm=t,this.bb(),this.qc(),Rc(this,i===Zc||i===_c||t===Zc||t===_c),this.g("curve",i,t))}},curviness:{get:function(){return this.Rm},set:function(t){var i=this.Rm;i!==t&&(this.Rm=t,this.bb(),this.qc(),this.g("curviness",i,t))}},routing:{get:function(){return this.qj},set:function(t){var i=this.qj;i!==t&&(this.qj=t,this.Wf=null,this.bb(),Rc(this,2==(2&i.value)||2==(2&t.value)),this.g("routing",i,t))}},smoothness:{get:function(){return this.po},set:function(t){var i=this.po;i!==t&&(this.po=t,this.qc(),this.g("smoothness",i,t))}},key:{get:function(){var t=this.diagram;if(null!==t&&t.model.ri())return t.model.Ac(this.data)}}}),wc.prototype.invalidateOtherJumpOvers=wc.prototype.Xo,wc.prototype.findClosestSegment=wc.prototype.ez,wc.prototype.updateRoute=wc.prototype.vg,wc.prototype.invalidateRoute=wc.prototype.bb,wc.prototype.rollbackRoute=wc.prototype.rv,wc.prototype.commitRoute=wc.prototype.zf,wc.prototype.startRoute=wc.prototype.uh,wc.prototype.clearPoints=wc.prototype.Fj,wc.prototype.removePoint=wc.prototype.pv,wc.prototype.addPointAt=wc.prototype.yf,wc.prototype.addPoint=wc.prototype.ne,wc.prototype.insertPointAt=wc.prototype.m,wc.prototype.insertPoint=wc.prototype.Kz,wc.prototype.setPointAt=wc.prototype.L,wc.prototype.setPoint=wc.prototype.dd,wc.prototype.getPoint=wc.prototype.i,wc.prototype.getOtherPort=wc.prototype.Cz,wc.prototype.getOtherNode=wc.prototype.To;var Gc=null,Xc=null,Uc=new V(wc,"Normal",1),qc=new V(wc,"Orthogonal",2),Hc=new V(wc,"AvoidsNodes",6),Kc=new V(wc,"AvoidsNodesStraight",7),Wc=new V(wc,"None",0),Jc=new V(wc,"Bezier",9),Zc=new V(wc,"JumpGap",10),_c=new V(wc,"JumpOver",11),$c=new V(wc,"End",17),Qc=new V(wc,"Scale",18),tf=new V(wc,"Stretch",19),ef=new V(wc,"OrientAlong",21),nf=new V(wc,"OrientPlus90",22),of=new V(wc,"OrientMinus90",23),rf=new V(wc,"OrientOpposite",24),sf=new V(wc,"OrientUpright",25),af=new V(wc,"OrientPlus90Upright",26),hf=new V(wc,"OrientMinus90Upright",27),lf=new V(wc,"OrientUpright45",28),uf=16,cf=14,ff=8;function df(t,i,e,n){Q(this),this.Fe=this.qq=!1,this.Ds=t,this.Ox=i,this.cv=e,this.Px=n,this.links=[]}function pf(t){Q(this),this.Yx=this.group=null,this.vs=!0,this.abort=!1,this.Od=this.Nd=1,this.Fn=this.En=-1,this.rc=t.width,this.sc=t.height,this.ac=null,this.ei=this.di=0,this.Os=11,this.Ix=this.Hx=22}function gf(t,i,e){return t.Nd<=i&&i<=t.En&&t.Od<=e&&e<=t.Fn}function mf(t,i,e){return gf(t,i,e)?(i-=t.Nd,i/=t.rc,e-=t.Od,e/=t.sc,t.ac[0|i][0|e]):Nf}function yf(t){if(null!==t.ac)for(var i=0;i<=t.di;i++)for(var e=t.ac[i],n=0;n<=t.ei;n++)e[n]>=Sf&&(e[n]=Nf)}function vf(t,i,e,n,o,r,s,a,h){if(!(i<r||i>s||e<a||e>h)){var l=0|i,u=0|e,c=t.ac[l][u];if(c>=Sf&&c<Pf)for(o?u+=n:l+=n,c+=1;r<=l&&l<=s&&a<=u&&u<=h&&!(c>=t.ac[l][u]);)t.ac[l][u]=c,c+=1,o?u+=n:l+=n;if(l=o?u:l,o)if(0<n)for(e+=n;e<l;e+=n)vf(t,i,e,1,!o,r,s,a,h),vf(t,i,e,-1,!o,r,s,a,h);else for(e+=n;e>l;e+=n)vf(t,i,e,1,!o,r,s,a,h),vf(t,i,e,-1,!o,r,s,a,h);else if(0<n)for(i+=n;i<l;i+=n)vf(t,i,e,1,!o,r,s,a,h),vf(t,i,e,-1,!o,r,s,a,h);else for(i+=n;i>l;i+=n)vf(t,i,e,1,!o,r,s,a,h),vf(t,i,e,-1,!o,r,s,a,h)}}function xf(t,i,e,n,o,r,s,a,h){i|=0,e|=0;var l=Mf,u=Sf;for(t.ac[i][e]=u;l===Mf&&i>r&&i<s&&e>a&&e<h;)u+=1,t.ac[i][e]=u,o?e+=n:i+=n,l=t.ac[i][e]}function bf(t,i,e,n,o,r,s,a,h){i|=0,e|=0;var l=Mf,u=Pf;for(t.ac[i][e]=u;l===Mf&&i>r&&i<s&&e>a&&e<h;)t.ac[i][e]=u,o?e+=n:i+=n,l=t.ac[i][e]}function wf(t,i,e,n,o,r,s){if(null!==t.ac){t.abort=!1;var a=i.x,h=i.y;if(gf(t,a,h)){a-=t.Nd,a/=t.rc,h-=t.Od,h/=t.sc;var l=n.x,u=n.y;if(gf(t,l,u))if(l-=t.Nd,l/=t.rc,u-=t.Od,u/=t.sc,1>=Math.abs(a-l)&&1>=Math.abs(h-u))t.abort=!0;else{var c=r.x;n=r.y,i=r.x+r.width;var f=r.y+r.height;c-=t.Nd,c/=t.rc,n-=t.Od,n/=t.sc,i-=t.Nd,i/=t.rc,f-=t.Od,f/=t.sc,r=Math.max(0,Math.min(t.di,0|c)),i=Math.min(t.di,Math.max(0,0|i)),c=Math.max(0,Math.min(t.ei,0|n)),f=Math.min(t.ei,Math.max(0,0|f)),h|=0,l|=0,u|=0;var d=0===e||90===e?1:-1;if(e=90===e||270===e,(n=t.ac)[a|=0][h]===Mf?(xf(t,a,h,d,e,r,i,c,f),xf(t,a,h,1,!e,r,i,c,f),xf(t,a,h,-1,!e,r,i,c,f)):xf(t,a,h,d,e,a,h,a,h),n[l][u]===Mf?(bf(t,l,u,0===o||90===o?1:-1,90===o||270===o,r,i,c,f),bf(t,l,u,1,!(90===o||270===o),r,i,c,f),bf(t,l,u,-1,!(90===o||270===o),r,i,c,f)):bf(t,l,u,d,e,l,u,l,u),e=A(),s&&kf(t,l,u,o,a,h,e))for(e[0]===l&&e[1]===u||(e.unshift(u),e.unshift(l)),e[e.length-2]===a&&e[e.length-1]===h||(e.push(a),e.push(h)),t=Sf,o=e[e.length-2],s=e[e.length-1],n[o][s]=t++,r=e.length-4;0<=r;r-=2)for(o=e[r+2],s=e[r+3],i=e[r],l=e[r+1];i>o?o++:i<o?o--:l>s?s++:l<s&&s--,n[o][s]=t++,o!==i||s!==l;);else vf(t,a,h,1,!1,r,i,c,f),vf(t,a,h,-1,!1,r,i,c,f),vf(t,a,h,1,!0,r,i,c,f),vf(t,a,h,-1,!0,r,i,c,f);j(e)}}}}function kf(t,i,e,n,o,r,s){for(var a=t.ac,h=i,l=e;;){if(h===o&&l===r)return!0;var u=h,c=l;if(0===n){if(!(u<o))break;u++}else if(90===n){if(!(c<r))break;c++}else if(180===n){if(!(u>o))break;u--}else{if(!(c>r))break;c--}var f=a[u][c];if(0===f||f===Cf)break;h=u,l=c}for(;;){if(u=n,c=h,f=l,0===n?f<r?(u=90,f++):f>r&&(u=270,f--):90===n?c<o?(u=0,c++):c>o&&(u=180,c--):180===n?f<r?(u=90,f++):f>r&&(u=270,f--):c<o?(u=0,c++):c>o&&(u=180,c--),c=a[c][f],u!==n&&0!==c&&c!==Cf){if(s.push(h),s.push(l),kf(t,h,l,u,o,r,s))return!0;s.pop(),s.pop()}if(a[h][l]=Cf,0===n){if(h===i)return!1;h--}else if(90===n){if(l===e)return!1;l--}else if(180===n){if(h===i)return!1;h++}else{if(l===e)return!1;l++}}}wc.className="Link",wc.Normal=Uc,wc.Orthogonal=qc,wc.AvoidsNodes=Hc,wc.AvoidsNodesStraight=Kc,wc.None=Wc,wc.Bezier=Jc,wc.JumpGap=Zc,wc.JumpOver=_c,wc.End=$c,wc.Scale=Qc,wc.Stretch=tf,wc.OrientAlong=ef,wc.OrientPlus90=nf,wc.OrientMinus90=of,wc.OrientOpposite=rf,wc.OrientUpright=sf,wc.OrientPlus90Upright=af,wc.OrientMinus90Upright=hf,wc.OrientUpright45=lf,wc.EndSegmentStep=8,wc.CurvinessStart=uf,wc.SpacingMin=cf,wc.OrthoShortCut=ff,df.prototype.Sl=function(){if(!this.qq){var t=this.links;0<t.length&&(null!==(t=t[0].diagram)&&(t.ow.add(this),this.Fe=t.undoManager.isUndoingRedoing))}this.qq=!0},df.prototype.Nv=function(){if(this.qq){this.qq=!1;var t=this.links;if(0<t.length){var i=t[0],e=i.diagram;e=null===e||e.pi&&!this.Fe,this.Fe=!1,i.arrangeBundledLinks(t,e),1===t.length&&(i.Sf=null,t.length=0)}0===t.length&&(t=this.Ds,null!==this&&null!==t.af&&t.af.remove(this),t=this.cv,null!==this&&null!==t.af&&t.af.remove(this))}},df.className="LinkBundle",pf.prototype.initialize=function(t){if(!(0>=t.width||0>=t.height)){var i=t.y,e=t.x+t.width,n=t.y+t.height;if(this.Nd=Math.floor((t.x-this.rc)/this.rc)*this.rc,this.Od=Math.floor((i-this.sc)/this.sc)*this.sc,this.En=Math.ceil((e+2*this.rc)/this.rc)*this.rc,this.Fn=Math.ceil((n+2*this.sc)/this.sc)*this.sc,t=1+(0|Math.ceil((this.En-this.Nd)/this.rc)),i=1+(0|Math.ceil((this.Fn-this.Od)/this.sc)),null===this.ac||this.di<t-1||this.ei<i-1){for(e=[],n=0;n<=t;n++)e[n]=new Uint32Array(i);this.ac=e,this.di=t-1,this.ei=i-1}if(t=Nf,null!==this.ac)for(i=0;i<=this.di;i++)if((e=this.ac[i]).fill)e.fill(t);else for(n=0;n<=this.ei;n++)e[n]=t}},pf.prototype.Yj=function(t,i,e,n){if(t>this.En||t+e<this.Nd||i>this.Fn||i+n<this.Od)return!0;t=(t-this.Nd)/this.rc|0,i=(i-this.Od)/this.sc|0,e=Math.max(0,e)/this.rc+1|0;var o=Math.max(0,n)/this.sc+1|0;if(0>t&&(e+=t,t=0),0>i&&(o+=i,i=0),0>e||0>o)return!0;for(n=0|Math.min(t+e-1,this.di),e=0|Math.min(i+o-1,this.ei);t<=n;t++){o=this.ac[t];for(var r=i;r<=e;r++)if(o[r]===Mf)return!1}return!0},f.Object.defineProperties(pf.prototype,{bounds:{get:function(){return new Bt(this.Nd,this.Od,this.En-this.Nd,this.Fn-this.Od)}},Ho:{get:function(){return this.rc},set:function(t){0<t&&t!==this.rc&&(this.rc=t,this.initialize(this.bounds))}},Go:{get:function(){return this.sc},set:function(t){0<t&&t!==this.sc&&(this.sc=t,this.initialize(this.bounds))}}});var Mf=0,Sf=1,Pf=999999,Nf=Pf+1,Cf=Pf+2;function Tf(){Q(this),this.port=this.node=null,this.pe=[],this.ap=!1}function Lf(t,i,e,n){switch(i=i.offsetY){case 8:return 90;case 2:return 180;case 1:return 270;case 4:return 0}switch(i){case 9:return 180<e?270:90;case 6:return 90<e&&270>=e?180:0}switch(t=180*Math.atan2(t.height,t.width)/Math.PI,i){case 3:return e>t&&e<=180+t?180:270;case 5:return e>180-t&&e<=360-t?270:0;case 12:return e>t&&e<=180+t?90:0;case 10:return e>180-t&&e<=360-t?180:90;case 7:return 90<e&&e<=180+t?180:e>180+t&&e<=360-t?270:0;case 13:return 180<e&&e<=360-t?270:e>t&&180>=e?90:0;case 14:return e>t&&e<=180-t?90:e>180-t&&270>=e?180:0;case 11:return e>180-t&&e<=180+t?180:e>180+t?270:90}return n&&15!==i&&(0>(e-=15)&&(e+=360)),e>t&&e<180-t?90:e>=180-t&&e<=180+t?180:e>180+t&&e<360-t?270:0}function Af(t,i){var e=t.pe;if(0===e.length){t:if(!t.ap){e=t.ap,t.ap=!0;var n=null,o=t.node,r=o instanceof gc?o:null;if(null===r||r.isSubGraphExpanded)var s=o.isTreeExpanded?o.findLinksConnected(t.port.portId):o.qx();else{if(!r.actualBounds.w()){t.ap=e;break t}s=(n=r).Lu()}r=t.pe.length=0;var a=t.port.ga(ti,pt.alloc()),h=t.port.ga(hi,pt.alloc());for((o=Bt.allocAt(a.x,a.y,0,0)).Ye(h),pt.free(a),pt.free(h),a=pt.allocAt(o.x+o.width/2,o.y+o.height/2),h=t.port.li(),s=s.iterator;s.next();){var l=s.value;if(l.isVisible()&&l.fromPort!==l.toPort){var u=l.fromPort===t.port||null!==l.fromNode&&l.fromNode.Td(n),c=l.computeSpot(u,t.port);if(c.$c()&&null!==(u=u?l.toPort:l.fromPort)){var f=u.part;if(null!==f){var d=f.findVisibleNode();null!==d&&d!==f&&(u=(f=d).port),u=l.computeOtherPoint(f,u),f=a.ab(u),0>(f-=h)?f+=360:360<=f&&(f-=360),0===(c=Lf(o,c,f,l.isOrthogonal))?(c=4,180<f&&(f-=360)):90===c?(c=8,270<f&&(f-=360)):180===c?c=2:(c=1,90>f&&(f+=360)),void 0===(d=t.pe[r])?(d=new jf(l,f,c),t.pe[r]=d):(d.link=l,d.angle=f,d.Nc=c),d.hv.set(u),r++}}}}for(pt.free(a),t.pe.sort(Tf.prototype.j),h=t.pe.length,n=-1,r=a=0;r<h;r++)void 0!==(s=t.pe[r])&&(s.Nc!==n&&(n=s.Nc,a=0),s.Uo=a,a++);for(n=-1,a=0,r=h-1;0<=r;r--)void 0!==(h=t.pe[r])&&(h.Nc!==n&&(n=h.Nc,a=h.Uo+1),h.Gl=a);if(r=t.pe,c=t.port,n=t.node.portSpreading,a=pt.alloc(),h=pt.alloc(),s=pt.alloc(),l=pt.alloc(),c.ga(ti,a),c.ga(ei,h),c.ga(hi,s),c.ga(si,l),d=f=u=c=0,n===pc)for(var p=0;p<r.length;p++){var g=r[p];if(null!==g){var m=g.link.computeThickness();switch(g.Nc){case 8:f+=m;break;case 2:d+=m;break;case 1:c+=m;break;default:u+=m}}}var y=p=0,v=1,x=g=0;for(m=0;m<r.length;m++){var b=r[m];if(null!==b){if(p!==b.Nc){switch(p=b.Nc){case 8:var w=s;y=l;break;case 2:w=l,y=a;break;case 1:w=a,y=h;break;default:w=h,y=s}switch(g=y.x-w.x,x=y.y-w.y,p){case 8:f>Math.abs(g)?(v=Math.abs(g)/f,f=Math.abs(g)):v=1;break;case 2:d>Math.abs(x)?(v=Math.abs(x)/d,d=Math.abs(x)):v=1;break;case 1:c>Math.abs(g)?(v=Math.abs(g)/c,c=Math.abs(g)):v=1;break;default:u>Math.abs(x)?(v=Math.abs(x)/u,u=Math.abs(x)):v=1}y=0}var k=b.Zo;if(n===pc){switch(b=b.link.computeThickness(),b*=v,k.set(w),p){case 8:k.x=w.x+g/2+f/2-y-b/2;break;case 2:k.y=w.y+x/2+d/2-y-b/2;break;case 1:k.x=w.x+g/2-c/2+y+b/2;break;default:k.y=w.y+x/2-u/2+y+b/2}y+=b}else{var M=.5;n===dc&&(M=(b.Uo+1)/(b.Gl+1)),k.x=w.x+g*M,k.y=w.y+x*M}}}for(pt.free(a),pt.free(h),pt.free(s),pt.free(l),w=t.pe,r=0;r<w.length;r++)null!==(n=w[r])&&(n.Ju=t.computeEndSegmentLength(n));t.ap=e,Bt.free(o)}e=t.pe}for(t=0;t<e.length;t++)if(null!==(o=e[t])&&o.link===i)return o;return null}function jf(t,i,e){this.link=t,this.angle=i,this.Nc=e,this.hv=new pt,this.Gl=this.Uo=0,this.Zo=new pt,this.Ju=0}function Ff(t){Q(this),this.o=this.H=null,this.Gh=this.sn=!0,this.yn=!1,this.Am=new pt(0,0).freeze(),this.vn=!0,this.Em=this.un=null,this.xn=!1,this.j=null,t&&Object.assign(this,t)}function Df(t,i,e,n,o,r,s,a){for(e=e.iterator;e.next();){var h=e.value;n&&!h.isTopLevel||null!==o&&!o(h)||!h.canLayout()||(r&&h instanceof Ju?h.isLinkLabel||(h instanceof gc&&null===h.layout?Df(t,i,h.memberParts,!1,o,r,s,a):(Bf(h),i.add(h))):s&&h instanceof wc?i.add(h):!a||!h.Zc()||h instanceof Ju||(Bf(h),i.add(h)))}}function Bf(t){var i=t.actualBounds;(0===i.width||0===i.height||isNaN(i.width)||isNaN(i.height))&&t.Va()}function Of(t){Q(this),this.Sc=t,this.wf=new $,this.ye=new $,this.Es=new dt,this.zs=new dt}function If(t,i){if(null===i)return!1;var e=t.wf.remove(i);return e&&(null!==(i=i.node)&&t.Es.remove(i)),e}function zf(t,i){if(null!==i){t.ye.add(i);var e=i.link;null!==e&&null===t.Lo(e)&&t.zs.add(e,i),i.network=t}}function Rf(t,i){null!==i&&t.ye.remove(i)&&(null!==(i=i.link)&&t.zs.remove(i))}function Ef(t,i,e){if(null!==e&&e.network!==i){If(t,e),i.dh(e);for(var n=e.sourceEdges;n.next();){var o=n.value;o.network!==i&&(Rf(t,o),zf(i,o),Ef(t,i,o.fromVertex))}for(n=e.destinationEdges;n.next();)(e=n.value).network!==i&&(Rf(t,e),zf(i,e),Ef(t,i,e.toVertex))}}function Vf(t){Q(this),this.ob=t,this.j=new Bt(0,0,10,10).freeze(),this.o=new pt(5,5).freeze(),this.Sh=this.ub=null,this.tg=new Z,this.mg=new Z}function Yf(t,i){return t=t.Sh,i=i.Sh,t?i?(t=t.text)<(i=i.text)?-1:t>i?1:0:1:null!==i?-1:0}function Gf(t){Q(this),this.nb=t,this.qd=this.kd=this.$k=this.ub=null}function Xf(t){Ff.call(this),this.isViewportSized=!0,this.yo=this.zo=NaN,this.yg=new At(NaN,NaN).freeze(),this.tf=new At(10,10).freeze(),this.Jb=Hf,this.Rb=Kf,this.nd=_f,this.hd=Uf,t&&Object.assign(this,t)}function Uf(t,i){return(t=t.text)<(i=i.text)?-1:t>i?1:0}pf.className="PositionArray",Tf.prototype.toString=function(){for(var t=this.pe,i=this.node.toString()+" "+t.length.toString()+":",e=0;e<t.length;e++){var n=t[e];null!==n&&(i+="\n "+n.toString())}return i},Tf.prototype.Sl=function(){this.pe.length=0},Tf.prototype.j=function(t,i){return t===i?0:null===t?-1:null===i?1:t.Nc<i.Nc?-1:t.Nc>i.Nc?1:t.angle<i.angle?-1:t.angle>i.angle?1:0},Tf.prototype.computeEndSegmentLength=function(t){var i=t.link,e=i.computeEndSegmentLength(this.node,this.port,Qt,i.fromPort===this.port),n=t.Uo;if(0>n)return e;var o=t.Gl;if(1>=o||!i.isOrthogonal)return e;i=t.hv;var r=t.Zo;return 2!==t.Nc&&8!==t.Nc||(n=o-1-n),((t=2===t.Nc||4===t.Nc)?i.y<r.y:i.x<r.x)?e+8*n:(t?i.y===r.y:i.x===r.x)?e:e+8*(o-1-n)},Tf.className="Knot",jf.prototype.toString=function(){return this.link.toString()+" "+this.angle.toString()+" "+this.Nc.toString()+":"+this.Uo.toString()+"/"+this.Gl.toString()+" "+this.Zo.toString()+" "+this.Ju.toString()+" "+this.hv.toString()},jf.className="LinkInfo",Ff.prototype.cloneProtected=function(t){t.sn=this.sn,t.Gh=this.Gh,t.yn=this.yn,t.Am.assign(this.Am),t.vn=this.vn,t.un=this.un,t.Em=this.Em,t.xn=!0},Ff.prototype.copy=function(){var t=new this.constructor;return this.cloneProtected(t),t},Ff.prototype.qb=function(){},Ff.prototype.toString=function(){var t=F(this.constructor);return t+="(",null!==this.group&&(t+=" in "+this.group),null!==this.diagram&&(t+=" for "+this.diagram),t+")"},Ff.prototype.C=function(){if(this.isValidLayout){var t=this.diagram;if(null!==t&&!t.undoManager.isUndoingRedoing){var i=t.animationManager;!i.isTicking&&(i.defaultAnimation.isAnimating&&i.Cc(),this.isOngoing&&t.pi||this.isInitial&&!t.pi)&&(this.isValidLayout=!1,t.$b())}}},Ff.prototype.createNetwork=function(){return new Of(this)},Ff.prototype.makeNetwork=function(t){var i=this.createNetwork();return t instanceof To?(i.lg(t.nodes,!0),i.lg(t.links,!0)):t instanceof gc?i.lg(t.memberParts):i.lg(t.iterator),i},Ff.prototype.updateParts=function(){this.isValidLayout=!0;var t=this.diagram;if(null===t&&null!==this.network)for(var i=this.network.vertexes.iterator;i.next();){var e=i.value.node;if(null!==e&&null!==(t=e.diagram))break}try{null!==t&&t.Ea("Layout"),this.commitLayout()}finally{null!==t&&t.eb("Layout")}},Ff.prototype.commitLayout=function(){if(null!==this.network){for(var t=this.network.vertexes.iterator;t.next();)t.value.commit();if(this.isRouting)for(t=this.network.edges.iterator;t.next();)t.value.commit()}},Ff.prototype.doLayout=function(t){var i=new $;t instanceof To?(Df(this,i,t.nodes,!0,this.rh,!0,!1,!0),Df(this,i,t.parts,!0,this.rh,!0,!1,!0)):t instanceof gc?Df(this,i,t.memberParts,!1,this.rh,!0,!1,!0):i.addAll(t.iterator),0<i.count&&(null!==(t=this.diagram)&&t.Ea("Layout"),this.doMinimalNoNetworkLayout(i),null!==t&&t.eb("Layout")),this.isValidLayout=!0},Ff.prototype.doMinimalNoNetworkLayout=function(t){var i=Math.ceil(Math.sqrt(t.count));this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin);var e=this.arrangementOrigin.x,n=e,o=this.arrangementOrigin.y,r=0,s=0;for(t=t.iterator;t.next();){var a=t.value;Bf(a);var h=a.measuredBounds,l=h.width;h=h.height,a.moveTo(n,o),a instanceof gc&&(a.rh=!1),n+=Math.max(l,50)+20,s=Math.max(s,Math.max(h,50)),r>=i-1?(r=0,n=e,o+=s+20,s=0):r++}},Ff.prototype.doMinimalNetworkLayout=function(){var t=Math.ceil(Math.sqrt(this.network.vertexes.count));this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin);for(var i=this.arrangementOrigin.x,e=i,n=this.arrangementOrigin.y,o=0,r=0,s=this.network.vertexes.iterator;s.next();){var a=s.value.node;if(!(null===a||a instanceof wc)&&(Bf(a),this.rh(a))){var h=a.measuredBounds,l=h.width;h=h.height,a.moveTo(e,n),a instanceof gc&&(a.rh=!1),e+=Math.max(l,50)+20,r=Math.max(r,Math.max(h,50)),o>=t-1?(o=0,e=i,n+=r+20,r=0):o++}}},Ff.prototype.rh=function(t){return!(t.location.w()&&!(t instanceof gc&&t.rh))},Ff.prototype.ni=function(t,i){var e=this.boundsComputation;return null!==e?(i||(i=new Bt),e(t,this,i)):i?(i.set(t.actualBounds),i):t.actualBounds},Ff.prototype.ex=function(t){var i=new $;return t instanceof To?(Df(this,i,t.nodes,!0,null,!0,!0,!0),Df(this,i,t.links,!0,null,!0,!0,!0),Df(this,i,t.parts,!0,null,!0,!0,!0)):Df(this,i,t instanceof gc?t.memberParts:t.iterator,!1,null,!0,!0,!0),i},Ff.prototype.initialOrigin=function(t){var i=this.group;if(null!==i){var e=i.position.copy();return(isNaN(e.x)||isNaN(e.y))&&e.set(t),null!==(i=i.placeholder)&&(e=i.ga(ti),(isNaN(e.x)||isNaN(e.y))&&e.set(t),t=i.padding,e.x+=t.left,e.y+=t.top),e}return t},f.Object.defineProperties(Ff.prototype,{diagram:{get:function(){return this.H},set:function(t){this.H=t}},group:{get:function(){return this.o},set:function(t){this.o!==t&&(this.o=t,null!==t&&(this.H=t.diagram))}},isOngoing:{get:function(){return this.sn},set:function(t){this.sn!==t&&(this.sn=t)}},isInitial:{get:function(){return this.Gh},set:function(t){this.Gh=t,t||(this.xn=!0)}},isViewportSized:{get:function(){return this.yn},set:function(t){this.yn!==t&&(this.yn=t)&&this.C()}},isRouting:{get:function(){return this.vn},set:function(t){this.vn!==t&&(this.vn=t)}},isRealtime:{get:function(){return this.un},set:function(t){this.un!==t&&(this.un=t)}},isValidLayout:{get:function(){return this.xn},set:function(t){this.xn!==t&&(this.xn=t,t||null!==(t=this.diagram)&&(t.xh=!0))}},network:{get:function(){return this.j},set:function(t){this.j!==t&&(this.j=t,null!==t&&(t.layout=this))}},boundsComputation:{get:function(){return this.Em},set:function(t){this.Em!==t&&(this.Em=t,this.C())}},arrangementOrigin:{get:function(){return this.Am},set:function(t){this.Am.D(t)||(this.Am.assign(t),this.C())}}}),Ff.prototype.collectParts=Ff.prototype.ex,Ff.prototype.getLayoutBounds=Ff.prototype.ni,Ff.prototype.invalidateLayout=Ff.prototype.C,Ff.className="Layout",Of.prototype.clear=function(){if(this.wf)for(var t=this.wf.iterator;t.next();)t.value.clear();if(this.ye)for(t=this.ye.iterator;t.next();)t.value.clear();this.wf=new $,this.ye=new $,this.Es=new dt,this.zs=new dt},Of.prototype.toString=function(t){void 0===t&&(t=0);var i="LayoutNetwork"+(null!==this.layout?"("+this.layout.toString()+")":"");if(0>=t)return i;if(i+=" vertexes: "+this.wf.count+" edges: "+this.ye.count,1<t){for(var e=this.wf.iterator;e.next();)i+="\n "+e.value.toString(t-1);for(e=this.ye.iterator;e.next();)i+="\n "+e.value.toString(t-1)}return i},Of.prototype.createVertex=function(){return new Vf(this)},Of.prototype.createEdge=function(){return new Gf(this)},Of.prototype.lg=function(t,i,e){if(null!==t){for(void 0===i&&(i=!1),void 0===e&&(e=null),null===e&&(e=function(t){if(t instanceof Ju)return!t.isLinkLabel;if(t instanceof wc){var i=t.fromNode;return null!==i&&!i.isLinkLabel&&(null!==(t=t.toNode)&&!t.isLinkLabel)}return!1}),t=t.iterator;t.next();){var n=t.value;if(n instanceof Ju&&(!i||n.isTopLevel)&&n.canLayout()&&e(n))if(n instanceof gc&&null===n.layout)this.lg(n.memberParts,!1);else if(null===this.ki(n)){var o=this.createVertex();o.node=n,this.dh(o)}}for(t.reset();t.next();)if((n=t.value)instanceof wc&&(!i||n.isTopLevel)&&n.canLayout()&&e(n)&&null===this.Lo(n)){var r=n.fromNode;o=n.toNode,null!==r&&null!==o&&r!==o&&(r=this.findGroupVertex(r),o=this.findGroupVertex(o),null!==r&&null!==o&&this.Zj(r,o,n))}}},Of.prototype.findGroupVertex=function(t){if(null===t)return null;var i=t.findVisibleNode();if(null===i)return null;if(null!==(t=this.ki(i)))return t;for(i=i.containingGroup;null!==i;){if(null!==(t=this.ki(i)))return t;i=i.containingGroup}return null},(i=Of.prototype).dh=function(t){if(null!==t){this.wf.add(t);var i=t.node;null!==i&&this.Es.add(i,t),t.network=this}},i.Bl=function(t){if(null===t)return null;var i=this.ki(t);return null===i&&((i=this.createVertex()).node=t,this.dh(i)),i},i.Iu=function(t){if(null!==t&&If(this,t)){for(var i=t.tg,e=i.count-1;0<=e;e--){var n=i.M(e);this.Mj(n)}for(t=(i=t.mg).count-1;0<=t;t--)e=i.M(t),this.Mj(e)}},i.Zy=function(t){null!==t&&(null!==(t=this.ki(t))&&this.Iu(t))},i.ki=function(t){return null===t?null:this.Es.I(t)},i.Bo=function(t){if(null!==t){zf(this,t);var i=t.toVertex;null!==i&&i.Cl(t),null!==(i=t.fromVertex)&&i.zl(t)}},i.Dy=function(t){if(null===t)return null;var i=t.fromNode,e=t.toNode,n=this.Lo(t);return null===n?((n=this.createEdge()).link=t,null!==i&&(n.fromVertex=this.Bl(i)),null!==e&&(n.toVertex=this.Bl(e)),this.Bo(n)):(n.fromVertex=null!==i?this.Bl(i):null,n.toVertex=null!==e?this.Bl(e):null),n},i.Mj=function(t){if(null!==t){var i=t.toVertex;null!==i&&i.Kl(t),null!==(i=t.fromVertex)&&i.Jl(t),Rf(this,t)}},i.Yy=function(t){null!==t&&(null!==(t=this.Lo(t))&&this.Mj(t))},i.Lo=function(t){return null===t?null:this.zs.I(t)},i.Zj=function(t,i,e){if(null===t||null===i)return null;if(t.network===this&&i.network===this){var n=this.createEdge();return n.link=e,n.fromVertex=t,n.toVertex=i,this.Bo(n),n}return null},i.gm=function(t){if(null!==t){var i=t.fromVertex,e=t.toVertex;null!==i&&null!==e&&(i.Jl(t),e.Kl(t),t.gm(),i.Cl(t),e.zl(t))}},i.Ko=function(){for(var t=A(),i=this.ye.iterator;i.next();){var e=i.value;e.fromVertex===e.toVertex&&t.push(e)}for(i=t.length,e=0;e<i;e++)this.Mj(t[e]);j(t)},Of.prototype.deleteArtificialVertexes=function(){for(var t=A(),i=this.wf.iterator;i.next();){var e=i.value;null===e.node&&null===e.data&&t.push(e)}for(e=t.length,i=0;i<e;i++)this.Iu(t[i]);for(i=A(),e=this.ye.iterator;e.next();){var n=e.value;null===n.link&&null===n.data&&i.push(n)}for(e=i.length,n=0;n<e;n++)this.Mj(i[n]);j(t),j(i)},Of.prototype.Zx=function(t){void 0===t&&(t=!0),t&&(this.deleteArtificialVertexes(),function(t){for(var i=A(),e=t.ye.iterator;e.next();){var n=e.value;null!==n.fromVertex&&null!==n.toVertex||i.push(n)}for(e=i.length,n=0;n<e;n++)t.Mj(i[n]);j(i)}(this),this.Ko()),t=new Z;for(var i=!0;i;){i=!1;for(var e=this.wf.iterator;e.next();){var n=e.value;if(0<n.tg.count||0<n.mg.count){i=this.layout.createNetwork(),t.add(i),Ef(this,i,n),i=!0;break}}}return t.sort((function(t,i){return null===t||null===i||t===i?0:i.vertexes.count-t.vertexes.count})),t},Of.prototype.dz=function(){for(var t=new $,i=this.wf.iterator;i.next();)t.add(i.value.node);for(i=this.ye.iterator;i.next();)t.add(i.value.link);return t},f.Object.defineProperties(Of.prototype,{layout:{get:function(){return this.Sc},set:function(t){null!==t&&(this.Sc=t)}},vertexes:{get:function(){return this.wf}},edges:{get:function(){return this.ye}}}),Of.prototype.findAllParts=Of.prototype.dz,Of.prototype.splitIntoSubNetworks=Of.prototype.Zx,Of.prototype.deleteSelfEdges=Of.prototype.Ko,Of.prototype.reverseEdge=Of.prototype.gm,Of.prototype.linkVertexes=Of.prototype.Zj,Of.prototype.findEdge=Of.prototype.Lo,Of.prototype.deleteLink=Of.prototype.Yy,Of.prototype.deleteEdge=Of.prototype.Mj,Of.prototype.addLink=Of.prototype.Dy,Of.prototype.addEdge=Of.prototype.Bo,Of.prototype.findVertex=Of.prototype.ki,Of.prototype.deleteNode=Of.prototype.Zy,Of.prototype.deleteVertex=Of.prototype.Iu,Of.prototype.addNode=Of.prototype.Bl,Of.prototype.addVertex=Of.prototype.dh,Of.prototype.addParts=Of.prototype.lg,Of.className="LayoutNetwork",Vf.prototype.clear=function(){this.Sh=this.ub=null,this.tg=new Z,this.mg=new Z},Vf.prototype.toString=function(t){void 0===t&&(t=0);var i="LayoutVertex#"+it(this);if(0<t&&(i+=null!==this.node?"("+this.node.toString()+")":"",1<t)){t="";for(var e=!0,n=this.tg.iterator;n.next();){var o=n.value;e?e=!1:t+=",",t+=o.toString(0)}for(o="",e=!0,n=this.mg.iterator;n.next();){e?e=!1:o+=",",o+=n.value.toString(0)}i+=" sources: "+t+" destinations: "+o}return i},Vf.prototype.commit=function(){var t=this.ub;if(null!==t){var i=this.bounds,e=t.bounds;P(e)?(e.x=i.x,e.y=i.y,e.width=i.width,e.height=i.height):t.bounds=i.copy()}else if(null!==(t=this.node)){if(i=this.bounds,!(t instanceof gc)){e=Bt.alloc(),t.Va();var n=this.network.layout.ni(t,e),o=t.locationObject.ga(oi);if(n.w()&&o.w())return t.moveTo(i.x+this.focusX-(o.x-n.x),i.y+this.focusY-(o.y-n.y)),void Bt.free(e);Bt.free(e)}t.moveTo(i.x,i.y)}},Vf.prototype.Cl=function(t){null!==t&&(this.tg.contains(t)||this.tg.add(t))},Vf.prototype.Kl=function(t){null!==t&&this.tg.remove(t)},Vf.prototype.zl=function(t){null!==t&&(this.mg.contains(t)||this.mg.add(t))},Vf.prototype.Jl=function(t){null!==t&&this.mg.remove(t)},f.Object.defineProperties(Vf.prototype,{sourceEdgesArrayAccess:{get:function(){return this.tg._dataArray}},destinationEdgesArrayAccess:{get:function(){return this.mg._dataArray}},data:{get:function(){return this.ub},set:function(t){if(this.ub=t,null!==t&&t.bounds){var i=t.bounds;t=i.x;var e=i.y,n=i.width;i=i.height,this.o.h(n/2,i/2),this.j.h(t,e,n,i)}}},node:{get:function(){return this.Sh},set:function(t){if(this.Sh!==t){this.Sh=t,t.Va();var i=this.network.layout,e=Bt.alloc(),n=i.ni(t,e);i=n.x;var o=n.y,r=n.width;if(n=n.height,isNaN(i)&&(i=0),isNaN(o)&&(o=0),this.j.h(i,o,r,n),Bt.free(e),!(t instanceof gc)&&(t=t.locationObject.ga(oi)).w())return void this.o.h(t.x-i,t.y-o);this.o.h(r/2,n/2)}}},bounds:{get:function(){return this.j},set:function(t){this.j.D(t)||this.j.assign(t)}},focus:{get:function(){return this.o},set:function(t){this.o.D(t)||this.o.assign(t)}},centerX:{get:function(){return this.j.x+this.o.x},set:function(t){var i=this.j;i.x+this.o.x!==t&&(i.ka(),i.x=t-this.o.x,i.freeze())}},centerY:{get:function(){return this.j.y+this.o.y},set:function(t){var i=this.j;i.y+this.o.y!==t&&(i.ka(),i.y=t-this.o.y,i.freeze())}},focusX:{get:function(){return this.o.x},set:function(t){var i=this.o;i.x!==t&&(i.ka(),i.x=t,i.freeze())}},focusY:{get:function(){return this.o.y},set:function(t){var i=this.o;i.y!==t&&(i.ka(),i.y=t,i.freeze())}},x:{get:function(){return this.j.x},set:function(t){var i=this.j;i.x!==t&&(i.ka(),i.x=t,i.freeze())}},y:{get:function(){return this.j.y},set:function(t){var i=this.j;i.y!==t&&(i.ka(),i.y=t,i.freeze())}},width:{get:function(){return this.j.width},set:function(t){var i=this.j;i.width!==t&&(i.ka(),i.width=t,i.freeze())}},height:{get:function(){return this.j.height},set:function(t){var i=this.j;i.height!==t&&(i.ka(),i.height=t,i.freeze())}},network:{get:function(){return this.ob},set:function(t){this.ob=t}},sourceVertexes:{get:function(){for(var t=new $,i=this.sourceEdges;i.next();)t.add(i.value.fromVertex);return t.iterator}},destinationVertexes:{get:function(){for(var t=new $,i=this.destinationEdges;i.next();)t.add(i.value.toVertex);return t.iterator}},vertexes:{get:function(){for(var t=new $,i=this.sourceEdges;i.next();)t.add(i.value.fromVertex);for(i=this.destinationEdges;i.next();)t.add(i.value.toVertex);return t.iterator}},sourceEdges:{get:function(){return this.tg.iterator}},destinationEdges:{get:function(){return this.mg.iterator}},edges:{get:function(){for(var t=new Z,i=this.sourceEdges;i.next();)t.add(i.value);for(i=this.destinationEdges;i.next();)t.add(i.value);return t.iterator}},edgesCount:{get:function(){return this.tg.count+this.mg.count}}}),Vf.prototype.deleteDestinationEdge=Vf.prototype.Jl,Vf.prototype.addDestinationEdge=Vf.prototype.zl,Vf.prototype.deleteSourceEdge=Vf.prototype.Kl,Vf.prototype.addSourceEdge=Vf.prototype.Cl,Vf.className="LayoutVertex",Vf.standardComparer=Yf,Vf.smartComparer=function(t,i){if(null!==t){if(null!==i){t=t.Sh;var e=i.Sh;if(null!==t){if(null!==e){for(i=t.text.toLocaleLowerCase().split(/([+-]?[.]?\d+(?:\.\d*)?(?:e[+-]?\d+)?)/),t=e.text.toLocaleLowerCase().split(/([+-]?[.]?\d+(?:\.\d*)?(?:e[+-]?\d+)?)/),e=0;e<i.length;e++)if(""!==t[e]&&void 0!==t[e]){var n=parseFloat(i[e]),o=parseFloat(t[e]);if(isNaN(n)){if(!isNaN(o))return 1;if(0!==i[e].localeCompare(t[e]))return i[e].localeCompare(t[e])}else{if(isNaN(o))return-1;if(0!=n-o)return n-o}}else if(""!==i[e])return 1;return""!==t[e]&&void 0!==t[e]?-1:0}return 1}return null!==e?-1:0}return 1}return null!==i?-1:0},Gf.prototype.clear=function(){this.qd=this.kd=this.$k=this.ub=null},Gf.prototype.toString=function(t){void 0===t&&(t=0);var i="LayoutEdge#"+it(this);return 0<t&&(i+=null!==this.$k?"("+this.$k.toString()+")":"",1<t&&(i+=" "+(this.kd?this.kd.toString():"null")+" --\x3e "+(this.qd?this.qd.toString():"null"))),i},Gf.prototype.gm=function(){var t=this.kd;this.kd=this.qd,this.qd=t},Gf.prototype.commit=function(){},Gf.prototype.Ax=function(t){return this.qd===t?this.kd:this.kd===t?this.qd:null},f.Object.defineProperties(Gf.prototype,{network:{get:function(){return this.nb},set:function(t){this.nb=t}},data:{get:function(){return this.ub},set:function(t){this.ub!==t&&(this.ub=t)}},link:{get:function(){return this.$k},set:function(t){this.$k!==t&&(this.$k=t)}},fromVertex:{get:function(){return this.kd},set:function(t){this.kd!==t&&(this.kd=t)}},toVertex:{get:function(){return this.qd},set:function(t){this.qd!==t&&(this.qd=t)}}}),Gf.prototype.getOtherVertex=Gf.prototype.Ax,Gf.className="LayoutEdge",c(Xf,Ff),Xf.prototype.cloneProtected=function(t){Ff.prototype.cloneProtected.call(this,t),t.zo=this.zo,t.yo=this.yo,t.yg.assign(this.yg),t.tf.assign(this.tf),t.Jb=this.Jb,t.Rb=this.Rb,t.nd=this.nd,t.hd=this.hd},Xf.prototype.qb=function(t){t.classType===Xf?t===_f||t===$f||t===Jf||t===Zf?this.sorting=t:t===Kf||t===Wf?this.arrangement=t:t===Hf||t===qf?this.alignment=t:w("Unknown enum value: "+t):Ff.prototype.qb.call(this,t)},Xf.prototype.doLayout=function(t){this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin);var i=this.ex(t);t=this.diagram;for(var e=i.copy().iterator;e.next();){var n=e.value;if(!n.ph()||null===n.fromNode&&null===n.toNode){if(n.Va(),n instanceof gc)for(n=n.memberParts;n.next();)i.remove(n.value)}else i.remove(n)}var o=i.Fa();if(0!==o.length){switch(this.sorting){case Zf:o.reverse();break;case _f:o.sort(this.comparer);break;case $f:o.sort(this.comparer),o.reverse()}var r=this.wrappingColumn;isNaN(r)&&(r=0);var s=this.wrappingWidth;switch(isNaN(s)&&null!==t?(i=t.padding,s=Math.max(t.viewportBounds.width-i.left-i.right,0)):s=Math.max(this.wrappingWidth,0),0>=r&&0>=s&&(r=1),i=this.spacing.width,isFinite(i)||(i=0),e=this.spacing.height,isFinite(e)||(e=0),null!==t&&t.Ea("Layout"),n=[],this.alignment){case qf:var a=i,h=e,l=Bt.alloc(),u=Math.max(this.cellSize.width,1);if(!isFinite(u))for(var c=u=0;c<o.length;c++){var f=this.ni(o[c],l);u=Math.max(u,f.width)}if(u=Math.max(u+a,1),c=Math.max(this.cellSize.height,1),!isFinite(c))for(f=c=0;f<o.length;f++){var d=this.ni(o[f],l);c=Math.max(c,d.height)}c=Math.max(c+h,1),f=this.arrangement;for(var p=d=this.arrangementOrigin.x,g=this.arrangementOrigin.y,m=0,y=0,v=0;v<o.length;v++){var x=o[v],b=this.ni(x,l),w=Math.ceil((b.width+a)/u)*u,k=Math.ceil((b.height+h)/c)*c;if(f===Wf)var M=Math.abs(p-b.width);else M=p+b.width;if((0<r&&m>r-1||0<s&&0<m&&M-d>s)&&(n.push(new Bt(0,g,s+a,y)),m=0,p=d,g+=y,y=0),y=Math.max(y,k),f===Wf)b=-b.width;else b=0;if(x.moveTo(p+b,g),f===Wf)p-=w;else p+=w;m++}n.push(new Bt(0,g,s+a,y)),Bt.free(l);break;case Hf:for(h=s,u=r,c=i,f=e,s=Bt.alloc(),d=Math.max(this.cellSize.width,1),r=g=l=0,a=pt.alloc(),p=0;p<o.length;p++)y=o[p],m=this.ni(y,s),y=Cu(y,y.locationObject,y.locationSpot,a),l=Math.max(l,y.x),g=Math.max(g,m.width-y.x),r=Math.max(r,y.y);if((p=this.arrangement)===Wf)l+=c;else g+=c;d=isFinite(d)?Math.max(d+c,1):Math.max(l+g,1);var S=y=this.arrangementOrigin.x;for(v=this.arrangementOrigin.y,g=0,h>=l&&(h-=l),l=x=0,w=Math.max(this.cellSize.height,1),b=r=0,k=!0,m=pt.alloc(),M=0;M<o.length;M++){var P=o[M],N=this.ni(P,s),C=Cu(P,P.locationObject,P.locationSpot,a);if(0<g)if(p===Wf)S=(S-y-(N.width-C.x))/d,S=(S=Xi.$(Math.round(S),S)?Math.round(S):Math.floor(S))*d+y;else S=(S-y+C.x)/d,S=(S=Xi.$(Math.round(S),S)?Math.round(S):Math.ceil(S))*d+y;else if(p===Wf)x=S+C.x+N.width;else x=S-C.x;if(p===Wf)var T=-(S+C.x)+x;else T=S+N.width-C.x-x;if(0<u&&g>u-1||0<h&&0<g&&T>h){for(n.push(new Bt(0,k?v-r:v,h+c,b+r+f)),S=0;S<g&&M!==g;S++){var L=Cu(T=o[M-g+S],T.locationObject,T.locationSpot,m);T.moveTo(T.position.x,T.position.y+r-L.y)}b+=f,v=k?v+b:v+(b+r),g=b=r=0,S=y,k=!1}if(S===y&&(l=p===Wf?Math.max(l,N.width-C.x):Math.min(l,-C.x)),r=Math.max(r,C.y),b=Math.max(b,N.height-C.y),isFinite(w)&&(b=Math.max(b,Math.max(N.height,w)-C.y)),k?P.moveTo(S-C.x,v-C.y):P.moveTo(S-C.x,v),p===Wf)S-=C.x+c;else S+=N.width-C.x+c;g++}if(n.push(new Bt(0,v,h+c,(k?b:b+r)+f)),o.length!==g)for(h=0;h<g;h++)c=Cu(u=o[o.length-g+h],u.locationObject,u.locationSpot,a),u.moveTo(u.position.x,u.position.y+r-c.y);if(pt.free(a),pt.free(m),p===Wf)for(o=0;o<n.length;o++)(r=n[o]).width+=l,r.x-=l;else for(o=0;o<n.length;o++)(r=n[o]).x>l&&(r.width+=r.x-l,r.x=l);Bt.free(s)}for(a=r=s=o=0;a<n.length;a++)h=n[a],o=Math.min(o,h.x),s=Math.min(s,h.y),r=Math.max(r,h.x+h.width);this.arrangement===Wf?this.commitLayers(n,new pt(o+i/2-(r+o),s-e/2)):this.commitLayers(n,new pt(o-i/2,s-e/2)),null!==t&&t.eb("Layout"),this.isValidLayout=!0}},Xf.prototype.commitLayers=function(){},f.Object.defineProperties(Xf.prototype,{wrappingWidth:{get:function(){return this.zo},set:function(t){this.zo!==t&&(0<t||isNaN(t))&&(this.zo=t,this.isViewportSized=isNaN(t),this.C())}},wrappingColumn:{get:function(){return this.yo},set:function(t){this.yo!==t&&(0<t||isNaN(t))&&(this.yo=t,this.C())}},cellSize:{get:function(){return this.yg},set:function(t){this.yg.D(t)||(this.yg.assign(t),this.C())}},spacing:{get:function(){return this.tf},set:function(t){this.tf.D(t)||(this.tf.assign(t),this.C())}},alignment:{get:function(){return this.Jb},set:function(t){this.Jb===t||t!==Hf&&t!==qf||(this.Jb=t,this.C())}},arrangement:{get:function(){return this.Rb},set:function(t){this.Rb===t||t!==Kf&&t!==Wf||(this.Rb=t,this.C())}},sorting:{get:function(){return this.nd},set:function(t){this.nd===t||t!==Jf&&t!==Zf&&t!==_f&&t!==$f||(this.nd=t,this.C())}},comparer:{get:function(){return this.hd},set:function(t){this.hd!==t&&(this.hd=t,this.C())}}});var qf=new V(Xf,"Position",0),Hf=new V(Xf,"Location",1),Kf=new V(Xf,"LeftToRight",2),Wf=new V(Xf,"RightToLeft",3),Jf=new V(Xf,"Forward",4),Zf=new V(Xf,"Reverse",5),_f=new V(Xf,"Ascending",6),$f=new V(Xf,"Descending",7);function Qf(){this.On=new $,this.Dn=new $,this.Pa=new $,this.cf=new dt,this.bf=new dt,this.aj=new dt,this.H=null,this.tp=!1}function td(t,i,e){if(null!=i&&!t.diagram.undoManager.isUndoingRedoing&&!t.cf.contains(i)){void 0===e&&(e=!0);t:{if(null!=i&&!t.H.undoManager.isUndoingRedoing&&!t.cf.contains(i)){var n=t.Ro(i),o=id(t,i,n);if(null!==o&&(Wh(o),null!==(o=o.copy()))){var r=t.diagram.skipsModelSourceBindings;t.diagram.skipsModelSourceBindings=!0,o.Tf=n,o.ub=i,t.tp&&(o.Jg="Tool"),t.diagram.add(o),o.ub=null,o.data=i,t.diagram.skipsModelSourceBindings=r,n=o;break t}}n=null}null!==n&&e&&t.resolveReferencesForData(i)}}function id(t,i,e){var n=(t=t.H).model;return n.Xj()&&n.Yu(i)?null===(i=t.groupTemplateMap.I(e))&&(null===(i=t.groupTemplateMap.I(""))&&(hd||(hd=!0,S('No Group template found for category "'+e+'"'),S(" Using default group template")),i=t.ly)):null===(i=t.nodeTemplateMap.I(e))&&(null===(i=t.nodeTemplateMap.I(""))&&(ad||(ad=!0,S('No Node template found for category "'+e+'"'),S(" Using default node template")),i=t.ny)),i}function ed(t,i,e){for(var n in e){var o=i[n],r=e[n];if(N(r)){if(!N(o)||o.length<r.length)return!1;for(var s=0;s<o.length;s++){var a=r[s];if(void 0!==a&&!nd(t,o[s],a))return!1}}else if(!nd(t,o,r))return!1}return!0}function nd(t,i,e){if("function"==typeof e){if(!e(i))return!1}else if(e instanceof RegExp){if(!i||!e.test(i.toString()))return!1}else if(P(i)&&P(e)){if(!ed(t,i,e))return!1}else if(i!==e)return!1;return!0}function od(t,i){var e=i.Hh;if(N(e)){var n=t.aj.I(e);if(null===n)(n=[]).push(i),t.aj.add(e,n);else{for(t=0;t<n.length;t++)if(n[t]===i)return;n.push(i)}}}function rd(t,i,e){Bh(i,(function(t){for(var i=(t=t.O.s).length,n=0;n<i;n++)wr(e,t[n])}));var n=i.Hh;if(N(n)){var o=t.aj.I(n);if(null!==o)for(var r=0;r<o.length;r++)if(o[r]===i){o.splice(r,1),0===o.length&&t.aj.remove(n);break}}}function sd(t,i,e,n,o){if(null===i||o&&!i.canCopy())return null;if(n.contains(i))return n.I(i);var r=t.copyPartData(i,e);if(!(r instanceof ku))return null;if(r.isSelected=!1,r.isHighlighted=!1,n.add(i,r),i instanceof Ju){for(var s=i.linksConnected;s.next();){var a=s.value;if(a.fromNode===i){var h=n.I(a);null!==h&&(h.fromNode=r)}a.toNode===i&&(null!==(a=n.I(a))&&(a.toNode=r))}if(i instanceof gc&&r instanceof gc)for(i=i.memberParts;i.next();)(s=sd(t,i.value,e,n,o))instanceof wc||null===s||(s.containingGroup=r)}else if(i instanceof wc&&r instanceof wc)for(null!==(s=i.fromNode)&&(null!==(s=n.I(s))&&(r.fromNode=s)),null!==(s=i.toNode)&&(null!==(s=n.I(s))&&(r.toNode=s)),i=i.labelNodes;i.next();)null!==(s=sd(t,i.value,e,n,o))&&s instanceof Ju&&(s.labeledLink=r);return r}Xf.className="GridLayout",Xf.standardComparer=Uf,Xf.smartComparer=function(t,i){if(null!==t){if(null!==i){t=t.text.toLocaleLowerCase().split(/([+-]?[.]?\d+(?:\.\d*)?(?:e[+-]?\d+)?)/),i=i.text.toLocaleLowerCase().split(/([+-]?[.]?\d+(?:\.\d*)?(?:e[+-]?\d+)?)/);for(var e=0;e<t.length;e++)if(""!==i[e]&&void 0!==i[e]){var n=parseFloat(t[e]),o=parseFloat(i[e]);if(isNaN(n)){if(!isNaN(o))return 1;if(0!==t[e].localeCompare(i[e]))return t[e].localeCompare(i[e])}else{if(isNaN(o))return-1;if(0!=n-o)return n-o}}else if(""!==t[e])return 1;return""!==i[e]&&void 0!==i[e]?-1:0}return 1}return null!==i?-1:0},Xf.Position=qf,Xf.Location=Hf,Xf.LeftToRight=Kf,Xf.RightToLeft=Wf,Xf.Forward=Jf,Xf.Reverse=Zf,Xf.Ascending=_f,Xf.Descending=$f,(i=Qf.prototype).clear=function(){this.On.clear(),this.Dn.clear(),this.Pa.clear(),this.cf.clear(),this.bf.clear(),this.aj.clear()},i.Xe=function(t){this.H=t},i.oi=function(t){if(t instanceof Ju){if(this.On.add(t),t instanceof gc){var i=t.containingGroup;null===i?this.H.ai.add(t):i.gl.add(t),null!==(i=t.layout)&&(i.diagram=this.H)}}else t instanceof wc?this.Dn.add(t):t instanceof Ku||this.Pa.add(t);null===(i=t.data)||t instanceof Ku||(t instanceof wc?this.bf.add(i,t):this.cf.add(i,t))},i.pc=function(t){if(t.Ej(),t instanceof Ju){if(this.On.remove(t),t instanceof gc){var i=t.containingGroup;null===i?this.H.ai.remove(t):i.gl.remove(t),null!==(i=t.layout)&&(i.diagram=null)}}else t instanceof wc?this.Dn.remove(t):t instanceof Ku||this.Pa.remove(t);null===(i=t.data)||t instanceof Ku||(t instanceof wc?this.bf.remove(i):this.cf.remove(i))},i.Wd=function(){var t=this.H;if(null!==t){for(var i=t.nodeTemplateMap.iterator;i.next();){var e=i.value,n=i.key;(!e.Zc()||e instanceof gc)&&w('Invalid node template in Diagram.nodeTemplateMap: template for "'+n+'" must be a Node or a simple Part, not a Group or Link: '+e)}for(i=t.groupTemplateMap.iterator;i.next();)e=i.value,n=i.key,e instanceof gc||w('Invalid group template in Diagram.groupTemplateMap: template for "'+n+'" must be a Group, not a normal Node or Link: '+e);for(i=t.linkTemplateMap.iterator;i.next();)e=i.value,n=i.key,e instanceof wc||w('Invalid link template in Diagram.linkTemplateMap: template for "'+n+'" must be a Link, not a normal Node or simple Part: '+e);for(i=A(),e=t.selection.iterator;e.next();)(n=e.value.data)&&i.push(n);for(e=A(),t=t.highlighteds.iterator;t.next();)(n=t.value.data)&&e.push(n);for(t=A(),n=this.nodes.iterator;n.next();){var o=n.value;null!==o.data&&(t.push(o.data),t.push(o.location))}for(n=this.links.iterator;n.next();)null!==(o=n.value).data&&(t.push(o.data),t.push(o.location));for(n=this.parts.iterator;n.next();)null!==(o=n.value).data&&(t.push(o.data),t.push(o.location));for(this.removeAllModeledParts(),this.addAllModeledParts(),n=0;n<i.length;n++)null!==(o=this.Lc(i[n]))&&(o.isSelected=!0);for(n=0;n<e.length;n++)null!==(o=this.Lc(e[n]))&&(o.isHighlighted=!0);for(n=0;n<t.length;n+=2)null!==(o=this.Lc(t[n]))&&(o.location=t[n+1]);j(i),j(e),j(t)}},Qf.prototype.addAllModeledParts=function(){this.addModeledParts(this.diagram.model.nodeDataArray)},Qf.prototype.addModeledParts=function(t,i){var e=this,n=this.diagram.model;t.forEach((function(t){n.lb(t)&&td(e,t,!1)})),t.forEach((function(t){n.lb(t)&&e.resolveReferencesForData(t)})),!1!==i&&Sr(this.diagram,!1)},Qf.prototype.insertLink=function(){return null},Qf.prototype.resolveReferencesForData=function(){},Qf.prototype.Ro=function(t){return this.H.model.Ro(t)},Qf.prototype.getLinkCategoryForData=function(){return""},Qf.prototype.setLinkCategoryForData=function(){},Qf.prototype.setFromNodeForLink=function(){},Qf.prototype.setToNodeForLink=function(){},Qf.prototype.findLinkTemplateForCategory=function(t){var i=this.H,e=i.linkTemplateMap.I(t);return null===e&&(null===(e=i.linkTemplateMap.I(""))&&(ld||(ld=!0,S('No Link template found for category "'+t+'"'),S(" Using default link template")),e=i.my)),e},Qf.prototype.removeAllModeledParts=function(){this.Gs(this.diagram.model.nodeDataArray)},Qf.prototype.Gs=function(t){var i=this;t.forEach((function(t){i.ip(t)}))},Qf.prototype.ip=function(t){null!==(t=this.Lc(t))&&(ar(this.diagram,t,!1),this.unresolveReferencesForPart(t))},Qf.prototype.unresolveReferencesForPart=function(){},Qf.prototype.removeDataForLink=function(){},Qf.prototype.findPartForKey=function(t){return null==t?null:null!==(t=this.H.model.hc(t))?this.cf.I(t):null},Qf.prototype.Vb=function(t){return null==t||null===(t=this.H.model.hc(t))?null:(t=this.cf.I(t))instanceof Ju?t:null},Qf.prototype.findLinkForKey=function(){return null},(i=Qf.prototype).Lc=function(t){if(null===t)return null;var i=this.cf.I(t);return null!==i?i:i=this.bf.I(t)},i.ii=function(t){return null===t?null:(t=this.cf.I(t))instanceof Ju?t:null},i.Kc=function(t){return null===t?null:this.bf.I(t)},i.ms=function(t){for(var i=0;i<arguments.length;++i);i=new $;for(var e=this.On.iterator;e.next();){var n=e.value,o=n.data;if(null!==o)for(var r=0;r<arguments.length;r++){var s=arguments[r];if(P(s)&&ed(this,o,s)){i.add(n);break}}}return i.iterator},i.ls=function(t){for(var i=0;i<arguments.length;++i);i=new $;for(var e=this.Dn.iterator;e.next();){var n=e.value,o=n.data;if(null!==o)for(var r=0;r<arguments.length;r++){var s=arguments[r];if(P(s)&&ed(this,o,s)){i.add(n);break}}}return i.iterator},Qf.prototype.doModelChanged=function(t){if(this.H){var i=this.H;if(t.model===i.model){var e=t.change;if(i.doModelChanged(t),i.aa){i.aa=!1;try{var n=t.modelChange;if(""!==n)if(e===fe){if("nodeCategory"===n){var o=this.Lc(t.object),r=t.newValue;null!==o&&"string"==typeof r&&(o.category=r)}else"nodeDataArray"===n&&(this.Gs(t.oldValue),this.addModeledParts(t.newValue));i.isModified=!0}else if(e===de){var s=t.newValue;"nodeDataArray"===n&&P(s)&&td(this,s),i.isModified=!0}else if(e===pe){var a=t.oldValue;"nodeDataArray"===n&&P(a)&&this.ip(a),i.isModified=!0}else e===ce&&("SourceChanged"===n?null!==t.object?this.updateDataBindings(t.object,t.propertyName):(this.rp(),this.updateAllTargetBindings()):"ModelDisplaced"===n&&this.Wd());else if(e===fe){var h=t.propertyName,l=t.object;l===i.model?"nodeKeyProperty"!==h&&"nodeCategoryProperty"!==h||i.undoManager.isUndoingRedoing||this.Wd():this.updateDataBindings(l,h),i.isModified=!0}else if(e===de||e===pe){var u=t.change===de,c=u?t.newParam:t.oldParam,f=u?t.newValue:t.oldValue,d=this.aj.I(t.object);if(Array.isArray(d))for(t=0;t<d.length;t++){var p=d[t];if(u)_h(p,f,c,!0);else if(!(0>c)){var g=c+Jh(p);p.pc(g,!0),$h(p,g,c)}}i.isModified=!0}}finally{i.aa=!0}}}}},Qf.prototype.updateAllTargetBindings=function(t){void 0===t&&(t="");for(var i=this.parts.iterator;i.next();)i.value.La(t);for(i=this.nodes.iterator;i.next();)i.value.La(t);for(i=this.links.iterator;i.next();)i.value.La(t)},Qf.prototype.rp=function(){for(var t=this.H.model,i=new $,e=t.nodeDataArray,n=0;n<e.length;n++)i.add(e[n]);var o=[];for(this.nodes.each((function(t){null===t.data||i.contains(t.data)||o.push(t.data)})),this.parts.each((function(t){null===t.data||i.contains(t.data)||o.push(t.data)})),o.forEach((function(i){Ad(t,i,!1)})),n=0;n<e.length;n++){var r=e[n];null===this.Lc(r)&&Ld(t,r,!1)}for(this.refreshDataBoundLinks(),e=this.parts.iterator;e.next();)e.value.updateRelationshipsFromData();for(e=this.nodes.iterator;e.next();)e.value.updateRelationshipsFromData();for(e=this.links.iterator;e.next();)e.value.updateRelationshipsFromData()},Qf.prototype.refreshDataBoundLinks=function(){},Qf.prototype.updateRelationshipsFromData=function(){},Qf.prototype.updateDataBindings=function(t,i){if("string"==typeof i){var e=this.Lc(t);if(null!==e)e.La(i);else{e=null;for(var n=this.aj.iterator;n.next();){for(var o=n.value,r=0;r<o.length;r++){var s=o[r].sx(t);null!==s&&(null===e&&(e=A()),e.push(s))}if(null!==e)break}if(null!==e){for(n=0;n<e.length;n++)e[n].La(i);j(e)}}t===this.diagram.model.modelData&&this.updateAllTargetBindings(i)}},Qf.prototype.Kj=function(t,i,e){void 0===e&&(e=!1);var n=new dt;if(N(t))for(var o=0;o<t.length;o++)sd(this,t[o],i,n,e);else for(t=t.iterator;t.next();)sd(this,t.value,i,n,e);if(null!==i){e=i.model,t=null!==(t=i.toolManager.findTool("Dragging"))?t.dragOptions.dragsLink:i.Wm.dragsLink,o=new $;for(var r=new dt,s=n.iterator;s.next();){var a=s.value;if(a instanceof wc)t||null!==a.fromNode&&null!==a.toNode||o.add(a);else if(a instanceof Ju&&null!==a.data&&e.Tl()){var h=a,l=(a=s.key).pg();null!==l&&(null!==(l=n.I(l))?(e.qe(h.data,e.wa(l.data)),h=i.Kc(h.data),null!==(a=a.kh())&&null!==h&&r.add(a,h)):e.qe(h.data,void 0))}}if(0<o.count&&i.Is(o,!1),0<r.count)for(e=r.iterator;e.next();)n.add(e.key,e.value)}if(null!==i&&null!==this.H&&null!==(e=(i=i.model).afterCopyFunction)){var u=new dt;n.each((function(t){null!==t.key.data&&u.add(t.key.data,t.value.data)})),e(u,i,this.H.model)}for(i=n.iterator;i.next();)i.value.La();return n},Qf.prototype.copyPartData=function(t,i){var e=null,n=t.data;if(null!==n&&null!==i){var o=i.model;t instanceof wc||P(n=o.copyNodeData(n))&&(o.xf(n),e=i.Lc(n))}else Wh(t),null!==(e=t.copy())&&(o=this.H,null!==i?i.add(e):null!==n&&null!==o&&null!==o.commandHandler&&o.commandHandler.copiesClipboardData&&(i=o.model,o=null,e instanceof wc||(o=i.copyNodeData(n)),P(o)&&(e.data=o)));return e},f.Object.defineProperties(Qf.prototype,{nodes:{get:function(){return this.On}},links:{get:function(){return this.Dn}},parts:{get:function(){return this.Pa}},diagram:{get:function(){return this.H}},addsToTemporaryLayer:{get:function(){return this.tp},set:function(t){this.tp=t}}}),Qf.prototype.updateAllRelationshipsFromData=Qf.prototype.rp,Qf.prototype.findLinksByExample=Qf.prototype.ls,Qf.prototype.findNodesByExample=Qf.prototype.ms,Qf.prototype.findLinkForData=Qf.prototype.Kc,Qf.prototype.findNodeForData=Qf.prototype.ii,Qf.prototype.findPartForData=Qf.prototype.Lc,Qf.prototype.findNodeForKey=Qf.prototype.Vb,Qf.prototype.removeModeledPart=Qf.prototype.ip,Qf.prototype.removeModeledParts=Qf.prototype.Gs,Qf.prototype.rebuildParts=Qf.prototype.Wd;var ad=!1,hd=!1,ld=!1;function ud(t){Qf.apply(this,arguments)}function cd(t,i){i.forEach((function(i){fd(t,i)})),Sr(t.diagram,!1)}function fd(t,i){if(null!=i&&!t.diagram.undoManager.isUndoingRedoing&&!t.bf.contains(i)){var e=t.getLinkCategoryForData(i),n=t.findLinkTemplateForCategory(e);if(null!==n){Wh(n);var o=n.copy();if(null!==o){n=t.diagram.skipsModelSourceBindings,t.diagram.skipsModelSourceBindings=!0,o.Tf=e,o.ub=i;var r=_d(e=t.diagram.model,i,!0);""!==r&&(o.fromPortId=r),void 0!==(r=Jd(e,i,!0))&&((r=t.Vb(r))instanceof Ju&&(o.fromNode=r)),""!==(r=_d(e,i,!1))&&(o.toPortId=r),void 0!==(r=Jd(e,i,!1))&&((r=t.Vb(r))instanceof Ju&&(o.toNode=r)),e=e.Ef(i),Array.isArray(e)&&e.forEach((function(i){null!==(i=t.Vb(i))&&(i.labeledLink=o)})),t.tp&&(o.Jg="Tool"),t.diagram.add(o),o.ub=null,o.data=i,t.diagram.skipsModelSourceBindings=n}}}}function dd(t,i){i.forEach((function(i){t.ip(i)}))}function pd(){Qf.apply(this,arguments),this.Sg=null}function gd(t,i,e){if(null!==i&&null!==e&&null===e.kh()){var n=t.diagram.toolManager.findTool("Linking"),o=i,r=e;if(t.diagram.isTreePathToChildren||(o=e,r=i),(null===n||!Ze(n,o,r,null,!0))&&(i=t.getLinkCategoryForData(e.data),null!==(n=t.findLinkTemplateForCategory(i))&&(Wh(n),null!==(n=n.copy())))){var s=t.diagram.skipsModelSourceBindings;t.diagram.skipsModelSourceBindings=!0,n.Tf=i,n.ub=e.data,n.fromNode=o,n.toNode=r,t.diagram.add(n),n.ub=null,n.data=e.data,t.diagram.skipsModelSourceBindings=s}}}function md(t,i){this.kl=new $,this.il=new $,this.Wv=',\n "insertedNodeKeys": ',this.jy=',\n "modifiedNodeData": ',this.Yv=',\n "removedNodeKeys": ',this.vh=null,Q(this),this.Sm=this.xa="",this.Gg=!1,this.j={},this.Tc=[],this.kb=new dt,this.Th="key",this.Bk=this.bl=null,this.Jm=this.Km=!1,this.Mm=!0,this.xm=null,this.lj="category",this.Vf=new dt,this.Lt=new Z,this.Wg=!1,this.o=null,this.undoManager=new me,void 0!==t&&(N(t)?this.nodeDataArray=t:i=t),i&&(Object.assign(this,i),t=i.Changed)&&(delete this.Changed,this.Pe(t))}function yd(t,i,e,n,o,r){function s(t,e){a?(void 0===t.__gohashid&&r.push(t),n.set(t,e)):(t=at++,n.set(t,e),o.set(t,i))}if(!P(i))return i;r||(r=[]);var a=Object.isExtensible(i);if(n||(n=new dt),a){var h=n.get(i);if(h)return h}else for(o||(o=new dt),h=o.iterator;h.next();){var l=h.key;if(h.value===i&&(l=n.get(l)))return l}if(Array.isArray(i)){s(i,h=[]);for(var u=0;u<i.length;u++)h.push(yd(t,i[u],!1,n,o,r))}else if(i instanceof pt||i instanceof At||i instanceof Bt||i instanceof Wt||i instanceof Ii)h=i.copy(),s(i,h);else{if(i instanceof Ia||i instanceof Ui||i instanceof V)return i;if(i instanceof Z)h=(new Z).addAll(yd(t,i.Fa(),!1,n,o,r)),s(i,h);else if(i instanceof $)h=(new $).addAll(yd(t,i.Fa(),!1,n,o,r)),s(i,h);else if(i instanceof dt)h=(new dt).addAll(yd(t,i.Fa(),!1,n,o,r)),s(i,h);else if(i instanceof Date)h=new Date(i.getTime()),s(i,h);else if(i instanceof RegExp)h=new RegExp(i),s(i,h),h.lastIndex=i.lastIndex;else if("function"==typeof i.copy)h=i.copy(),s(i,h);else for(u in s(i,h={}),i)"__gohashid"!==u&&(h[u]=yd(t,i[u],!1,n,o,r))}return e&&r.forEach((function(t){delete t.__gohashid})),h}function vd(t,i){P(i=i.modelData)&&(t.dm(i),t.modelData=i)}function xd(t,i){function e(t,i){if((i=i.part)&&t!==(i=i.data)){var e=n.get(t);null===e?((e=new $).add(i),n.add(t,e)):e.add(i)}}var n=t.vh;null===n&&(n=new dt,i.changes.each((function(t){if(null!==t.diagram){var i=t.change;i===fe?(t=t.object.panel)&&(i=t.data)&&e(i,t):i!==de&&i!==pe||(i=(t=t.object).itemArray)&&e(i,t)}})),t.vh=n)}function bd(t,i){for(var e=new $,n=0;n<t.nodeDataArray.length;n++){var o=t.nodeDataArray[n];wd(t,i,o,o,e)}return e}function wd(t,i,e,n,o){if(Array.isArray(e))for(var r=0;r<e.length;r++){var s=e[r];if(s===i)return o.add(n),!0;if(wd(t,i,s,n,o))return!0}else if(P(e)&&Object.getPrototypeOf(e)===Object.prototype)for(r in e){if((s=e[r])===i)return o.add(n),!0;if(wd(t,i,s,n,o))return!0}return!1}function kd(t,i,e){void 0===e&&(e=!1);var n=i.length;if(0>=n)return"[]";var o=new G;o.add("["),e&&1<n&&o.add("\n");for(var r=0;r<n;r++){var s=i[r];void 0!==s&&(0<r&&(o.add(","),e&&o.add("\n")),o.add(t.sm(s)))}return e&&1<n&&o.add("\n"),o.add("]"),o.toString()}function Md(t,i){return void 0===i||"__gohashid"===t||"_"===t[0]||"function"==typeof i}function Sd(t){return isNaN(t)?"NaN":1/0===t?"9e9999":-1/0===t?"-9e9999":t}function Pd(t,i){var e=i;if(e instanceof pt)i={class:"go.Point",x:Sd(e.x),y:Sd(e.y)};else if(e instanceof At)i={class:"go.Size",width:Sd(e.width),height:Sd(e.height)};else if(e instanceof Bt)i={class:"go.Rect",x:Sd(e.x),y:Sd(e.y),width:Sd(e.width),height:Sd(e.height)};else if(e instanceof Wt)i={class:"go.Margin",top:Sd(e.top),right:Sd(e.right),bottom:Sd(e.bottom),left:Sd(e.left)};else if(e instanceof Ii)i=e.sb()?{class:"go.Spot",x:Sd(e.x),y:Sd(e.y),offsetX:Sd(e.offsetX),offsetY:Sd(e.offsetY)}:{class:"go.Spot",enum:e.toString()};else if(e instanceof Ia){if(i={class:"go.Brush",type:e.type.name},e.type===Za?i.color=e.color:e.type!==_a&&e.type!==$a||(i.start=e.start,i.end=e.end,e.type===$a&&(0!==e.startRadius&&(i.startRadius=Sd(e.startRadius)),isNaN(e.endRadius)||(i.endRadius=Sd(e.endRadius)))),null!==e.colorStops){var n={};for(e=e.colorStops.iterator;e.next();)n[e.key]=e.value;i.colorStops=n}}else e instanceof Ui?(i={class:"go.Geometry",type:e.type.name},0!==e.startX&&(i.startX=Sd(e.startX)),0!==e.startY&&(i.startY=Sd(e.startY)),0!==e.endX&&(i.endX=Sd(e.endX)),0!==e.endY&&(i.endY=Sd(e.endY)),e.spot1.D(ti)||(i.spot1=e.spot1),e.spot2.D(hi)||(i.spot2=e.spot2),e.type===Ui.o&&(i.path=Ui.ia(e))):e instanceof V&&(i={class:"go.EnumValue",classType:Id(t,e.classType),name:e.name});for(var o in n="{",e=!0,i){var r=Rd(i,o);if(!Md(o,r))if(e?e=!1:n+=",",n+=t.quote(o)+":","points"===o&&r instanceof Z){var s="[";for(r=r.iterator;r.next();){var a=r.value;1<s.length&&(s+=","),s+=t.sm(a.x),s+=",",s+=t.sm(a.y)}n+=s+="]"}else n+=t.sm(r)}return n+"}"}function Nd(t){return"number"==typeof t?t:"NaN"===t?NaN:"9e9999"===t?1/0:"-9e9999"===t?-1/0:parseFloat(t)}function Cd(t,i,e,n,o,r,s,a,h){void 0===a&&(a=null),void 0===h&&(h=null);var l=new ue;l.model=t,l.change=e,l.modelChange=i,l.propertyName=n,l.object=o,l.oldValue=r,l.oldParam=a,l.newValue=s,l.newParam=h,t.ds(l)}function Td(t){return"number"==typeof t||"string"==typeof t}function Ld(t,i,e){var n=t.wa(i);void 0!==n&&t.kb.I(n)===i||(t.$u(i),void 0===(n=t.wa(i))&&w("Model.makeNodeDataKeyUnique failed on "+i+". Data not added to Model."),t.kb.add(n,i),n=null,e&&(n=t.Tc.length,T(t.Tc,n,i)),Cd(t,"nodeDataArray",de,"nodeDataArray",t,null,i,null,n),t.fm(i),t.em(i))}function Ad(t,i,e){var n=t.wa(i);if(void 0!==n&&t.kb.remove(n),n=null,e){t:if(e=t.Tc,Array.isArray(e))n=e.indexOf(i);else{n=e.length;for(var o=0;o<n;o++)if(e[o]===i){n=o;break t}n=-1}if(0>n)return;L(t.Tc,n)}Cd(t,"nodeDataArray",pe,"nodeDataArray",t,i,null,n,null),t.qp(i)}function jd(t,i,e){if(void 0!==i){var n=t.Vf.I(i);null===n&&(n=new $,t.Vf.add(i,n)),n.add(e)}}function Fd(t,i,e){if(void 0!==i){var n=t.Vf.I(i);n instanceof $&&(null==e?t.Vf.remove(i):(n.remove(e),0===n.count&&t.Vf.remove(i)))}}function Dd(t,i){return void 0===i?null:(t=t.Vf.I(i))instanceof $?t:null}function Bd(t,i,e){if(t.copiesArrays&&Array.isArray(i)){var n=[];for(e=0;e<i.length;e++){var o=Bd(t,i[e],t.copiesArrayObjects);n.push(o)}return Q(n),n}if(e&&P(i)){for(n in e=(e=i.constructor)?new e:{},o=t.copiesKey||"string"!=typeof t.nodeKeyProperty?null:t.nodeKeyProperty,i)if("__gohashid"===n)e.__gohashid=void 0;else if(n===o)e[o]=void 0;else{var r=Rd(i,n),s=Id(t,r);"GraphObject"===s||"Diagram"===s||"Layer"===s||"RowColumnDefinition"===s||"AnimationManager"===s||"Tool"===s||"CommandHandler"===s||"Layout"===s||"InputEvent"===s||"DiagramEvent"===s||r instanceof md||r instanceof me||r instanceof ge||r instanceof ue||(r=Bd(t,r,!1)),Ed(e,n,r)}return Q(e),e}return i instanceof pt||i instanceof At||i instanceof Bt||i instanceof Ii||i instanceof Wt?i.copy():i}function Od(){return new md}function Id(t,i){if("function"==typeof i){if(i.className)return i.className;if(i.name)return i.name}else if("object"==typeof i&&null!==i&&i.constructor)return Id(t,i.constructor);return typeof i}function zd(t){return Yd[t]?Yd[t]:void 0!==m.go&&m.go[t]?m.go[t]:null}function Rd(t,i){if(!t||!i)return null;try{if("function"==typeof i)var e=i(t);else"function"==typeof t.getAttribute?null===(e=t.getAttribute(i))&&(e=void 0):e=t[i]}catch(t){}return e}function Ed(t,i,e){if(t&&i)try{"function"==typeof i?i(t,e):"function"==typeof t.setAttribute?t.setAttribute(i,e):t[i]=e}catch(t){}}Qf.className="PartManager",c(ud,Qf),ud.prototype.addAllModeledParts=function(){var t=this.diagram.model;this.addModeledParts(t.nodeDataArray),cd(this,t.linkDataArray)},ud.prototype.addModeledParts=function(t){for(Qf.prototype.addModeledParts.call(this,t,!1),t=this.links.iterator;t.next();)kc(t.value);Sr(this.diagram,!1)},ud.prototype.removeAllModeledParts=function(){var t=this.diagram.model;dd(this,t.linkDataArray),this.Gs(t.nodeDataArray)},ud.prototype.getLinkCategoryForData=function(t){return this.diagram.model.ps(t)},ud.prototype.setLinkCategoryForData=function(t,i){return this.diagram.model.lp(t,i)},ud.prototype.setFromNodeForLink=function(t,i){var e=this.diagram.model;e.wv(t.data,e.wa(null!==i?i.data:null))},ud.prototype.setToNodeForLink=function(t,i){var e=this.diagram.model;e.Bv(t.data,e.wa(null!==i?i.data:null))},ud.prototype.removeDataForLink=function(t){this.diagram.model.bm(t.data)},ud.prototype.findPartForKey=function(t){var i=Qf.prototype.findPartForKey.call(this,t);return null===i&&null!==(t=this.diagram.model.jh(t))?this.bf.I(t):i},ud.prototype.findLinkForKey=function(t){return null==t?null:null!==(t=this.diagram.model.jh(t))?this.bf.I(t):null},ud.prototype.doModelChanged=function(t){var i=this;if(Qf.prototype.doModelChanged.call(this,t),this.diagram){var e=this.diagram;if(t.model===e.model){var n=t.change;if(e.aa){e.aa=!1;try{var o=t.modelChange;if(""!==o){if(n===fe){if("linkFromKey"===o){var r=this.Kc(t.object);if(null!==r){var s=this.Vb(t.newValue);r.fromNode=s}}else if("linkToKey"===o){var a=this.Kc(t.object);if(null!==a){var h=this.Vb(t.newValue);a.toNode=h}}else if("linkFromPortId"===o){var l=this.Kc(t.object);if(null!==l){var u=t.newValue;"string"==typeof u&&(l.fromPortId=u)}}else if("linkToPortId"===o){var c=this.Kc(t.object);if(null!==c){var f=t.newValue;"string"==typeof f&&(c.toPortId=f)}}else if("nodeGroupKey"===o){var d=this.Lc(t.object);if(null!==d){var p=t.newValue;if(void 0!==p){var g=this.Vb(p);d.containingGroup=g instanceof gc?g:null}else d.containingGroup=null}}else if("linkLabelKeys"===o){var m=this.Kc(t.object);if(null!==m){var y=t.oldValue,v=t.newValue;Array.isArray(y)&&y.forEach((function(t){0<=v.indexOf(t)||null!==(t=i.Vb(t))&&(t.labeledLink=null)})),Array.isArray(v)&&v.forEach((function(t){null!==(t=i.Vb(t))&&(t.labeledLink=m)}))}}else if("linkCategory"===o){var x=this.Kc(t.object),b=t.newValue;null!==x&&"string"==typeof b&&(x.category=b)}else"linkDataArray"===o&&(dd(this,t.oldValue),cd(this,t.newValue));e.isModified=!0}else if(n===de){var w=t.newValue;if("linkDataArray"===o&&"object"==typeof w&&null!==w)fd(this,w);else if("linkLabelKeys"===o&&Td(w)){var k=this.Kc(t.object),M=this.Vb(w);null!==k&&null!==M&&(M.labeledLink=k)}e.isModified=!0}else if(n===pe){var S=t.oldValue;if("linkDataArray"===o&&"object"==typeof S&&null!==S)this.ip(S);else if("linkLabelKeys"===o&&Td(S)){var P=this.Vb(S);null!==P&&(P.labeledLink=null)}e.isModified=!0}}else if(n===fe){var N=t.propertyName;t.object!==e.model||"linkFromKeyProperty"!==N&&"linkToKeyProperty"!==N&&"linkFromPortIdProperty"!==N&&"linkToPortIdProperty"!==N&&"linkLabelKeysProperty"!==N&&"nodeIsGroupProperty"!==N&&"nodeGroupKeyProperty"!==N&&"linkCategoryProperty"!==N||e.undoManager.isUndoingRedoing||this.Wd(),e.isModified=!0}}finally{e.aa=!0}}}}},ud.prototype.refreshDataBoundLinks=function(){var t=this,i=this.diagram.model,e=new $,n=i.linkDataArray;n.forEach((function(t){e.add(t)}));var o=[];this.links.each((function(t){null===t.data||e.contains(t.data)||o.push(t.data)})),o.forEach((function(t){tp(i,t,!1)})),n.forEach((function(e){null===t.Kc(e)&&Qd(i,e,!1)}))},ud.prototype.updateRelationshipsFromData=function(t){var i=t.data;if(null!==i){var e=t.diagram;if(null!==e){var n=e.model;if(t instanceof wc){var o=Jd(n,i,!0);if(o=e.Vb(o),t.fromNode=o,o=Jd(n,i,!1),o=e.Vb(o),t.toNode=o,0<(i=n.Ef(i)).length||0<t.labelNodes.count){if(1===i.length&&1===t.labelNodes.count){o=i[0];var r=t.labelNodes.first();if(n.wa(r.data)===o)return}o=(new $).addAll(i);var s=new $;t.labelNodes.each((function(t){null!==t.data&&(void 0!==(t=n.wa(t.data))&&s.add(t))})),(i=s.copy()).hp(o),(o=o.copy()).hp(s),(0<i.count||0<o.count)&&(i.each((function(i){null!==(i=e.Vb(i))&&i.labeledLink===t&&(i.labeledLink=null)})),o.each((function(i){null!==(i=e.Vb(i))&&i.labeledLink!==t&&(i.labeledLink=t)})))}}else!(t instanceof Ku)&&(i=n.lh(i),null===(i=e.findPartForKey(i))||i instanceof gc)&&(t.containingGroup=i)}}},ud.prototype.resolveReferencesForData=function(t){var i=this.diagram.model,e=i.wa(t);if(void 0!==e){var n=Dd(i,e),o=this.Lc(t);if(null!==n&&null!==o){n=n.iterator;for(var r={};n.next();){var s=n.value;i.lb(s)?o instanceof gc&&i.lh(s)===e&&(null!==(s=this.Lc(s))&&(s.containingGroup=o)):(r.link=this.Kc(s),null!==r.link&&o instanceof Ju&&(Jd(i,s,!0)===e&&(r.link.fromNode=o),Jd(i,s,!1)===e&&(r.link.toNode=o),s=i.Ef(s),Array.isArray(s)&&s.some(function(t){return function(i){return i===e&&(o.labeledLink=t.link,!0)}}(r)))),r={link:r.link}}Fd(i,e)}void 0!==(t=i.lh(t))&&((t=this.Vb(t))instanceof gc&&(o.containingGroup=t))}},ud.prototype.unresolveReferencesForPart=function(t){var i=this.diagram.model;if(t instanceof Ju){var e=i.wa(t.data);if(void 0!==e){for(var n=t.linksConnected;n.next();)jd(i,e,n.value.data);if(t.isLinkLabel&&(null!==(n=t.labeledLink)&&jd(i,e,n.data)),t instanceof gc)for(t=t.memberParts;t.next();)n=t.value.data,i.lb(n)&&jd(i,e,n)}}},ud.prototype.copyPartData=function(t,i){var e=Qf.prototype.copyPartData.call(this,t,i);if(t instanceof wc)if(null!==(t=t.data)&&null!==i){var n=i.model;"object"==typeof(t=n.Jo(t))&&null!==t&&(n.fi(t),e=i.Kc(t))}else null!==e&&(i=this.diagram,null!==t&&null!==i&&null!==i.commandHandler&&i.commandHandler.copiesClipboardData&&("object"==typeof(i=i.model.Jo(t))&&null!==i&&(e.data=i)));return e},ud.prototype.insertLink=function(t,i,e,n){var o=this.diagram,r=o.model,s=o.toolManager.findTool("Linking"),a="";if(null!==t&&(null===i&&(i=t),null===(a=i.portId)&&(a="")),i="",null!==e&&(null===n&&(n=e),null===(i=n.portId)&&(i="")),(n=s.archetypeLinkData)instanceof wc){if(Wh(n),null!==(r=n.copy()))return r.fromNode=t,r.fromPortId=a,r.toNode=e,r.toPortId=i,o.add(r),(t=s.archetypeLabelNodeData)instanceof Ju&&(Wh(t),null!==(t=t.copy())&&(t.labeledLink=r,o.add(t))),r}else if(null!==n&&("object"==typeof(n=r.Jo(n))&&null!==n))return null!==t&&Zd(r,n,r.wa(t.data),!0),$d(r,n,a,!0),null!==e&&Zd(r,n,r.wa(e.data),!1),$d(r,n,i,!1),r.fi(n),null===(t=s.archetypeLabelNodeData)||t instanceof Ju||"object"==typeof(t=r.copyNodeData(t))&&null!==t&&(r.xf(t),void 0!==(t=r.wa(t))&&r.Bu(n,t)),o.Kc(n);return null},ud.prototype.findLinkForKey=ud.prototype.findLinkForKey,ud.prototype.findPartForKey=ud.prototype.findPartForKey,ud.prototype.removeAllModeledParts=ud.prototype.removeAllModeledParts,ud.prototype.addModeledParts=ud.prototype.addModeledParts,ud.prototype.addAllModeledParts=ud.prototype.addAllModeledParts,ud.className="GraphLinksPartManager",c(pd,Qf),pd.prototype.getLinkCategoryForData=function(t){return this.diagram.model.ss(t)},pd.prototype.setLinkCategoryForData=function(t,i){this.diagram.model.Ms(t,i)},pd.prototype.setFromNodeForLink=function(t,i,e){var n=this.diagram.model;if(void 0===e&&(e=null),i=null!==i?i.data:null,this.diagram.isTreePathToChildren)n.qe(t.data,n.wa(i));else{var o=this.Sg;this.Sg=t,null!==e&&n.qe(e.data,void 0),n.qe(i,n.wa(null!==t.toNode?t.toNode.data:null)),this.Sg=o}},pd.prototype.setToNodeForLink=function(t,i,e){var n=this.diagram.model;if(void 0===e&&(e=null),i=null!==i?i.data:null,this.diagram.isTreePathToChildren){var o=this.Sg;this.Sg=t,null!==e&&n.qe(e.data,void 0),n.qe(i,n.wa(null!==t.fromNode?t.fromNode.data:null)),this.Sg=o}else n.qe(t.data,n.wa(i))},pd.prototype.removeDataForLink=function(t){this.diagram.model.qe(t.data,void 0)},pd.prototype.findLinkForKey=function(t){return null==t?null:null!==(t=this.diagram.model.hc(t))?this.bf.I(t):null},pd.prototype.doModelChanged=function(t){if(Qf.prototype.doModelChanged.call(this,t),this.diagram){var i=this.diagram;if(t.model===i.model){var e=t.change;if(i.aa){i.aa=!1;try{var n=t.modelChange;if(""!==n){if(e===fe){if("nodeParentKey"===n){var o=t.object,r=this.Vb(t.newValue),s=this.ii(o);if(null!==this.Sg)null!==r&&(this.Sg.data=o,this.Sg.category=this.getLinkCategoryForData(o));else if(null!==s){var a=s.kh();null!==a?null===r?i.remove(a):i.isTreePathToChildren?a.fromNode=r:a.toNode=r:gd(this,r,s)}}else if("parentLinkCategory"===n){var h=this.ii(t.object),l=t.newValue;if(null!==h&&"string"==typeof l){var u=h.kh();null!==u&&(u.category=l)}}i.isModified=!0}}else if(e===fe){var c=t.propertyName;t.object===i.model&&"nodeParentKeyProperty"===c&&(i.undoManager.isUndoingRedoing||this.Wd()),i.isModified=!0}}finally{i.aa=!0}}}}},pd.prototype.updateRelationshipsFromData=function(t){var i=t.data;if(null!==i){var e=t.diagram;if(null!==e){var n=e.model;t instanceof Ju&&(i=n.mh(i),(i=e.Vb(i))!==(n=t.pg())&&(n=t.kh(),null!==i?null!==n?e.isTreePathToChildren?n.fromNode=i:n.toNode=i:gd(this,i,t):null!==n&&ar(e,n,!1)))}}},pd.prototype.updateDataBindings=function(t,i){Qf.prototype.updateDataBindings.call(this,t,i),"string"==typeof i&&null!==this.Lc(t)&&(null!==(t=this.Kc(t))&&t.La(i))},pd.prototype.resolveReferencesForData=function(t){var i=this.diagram.model,e=i.wa(t);if(void 0!==e){var n=Dd(i,e),o=this.Lc(t);if(null!==n&&null!==o){for(n=n.iterator;n.next();){var r=n.value;i.lb(r)&&o instanceof Ju&&i.mh(r)===e&&gd(this,o,this.ii(r))}Fd(i,e)}void 0!==(t=i.mh(t))&&o instanceof Ju&&gd(this,t=this.Vb(t),o)}},pd.prototype.unresolveReferencesForPart=function(t){var i=this.diagram.model;if(t instanceof Ju){var e=i.wa(t.data),n=this.Kc(t.data);if(null!==n){n.isSelected=!1,n.isHighlighted=!1;var o=n.layer;if(null!==o){var r=o.pc(-1,n,!1);0<=r&&this.diagram.cb(pe,"parts",o,n,null,r,null),null!==(r=n.layerChanged)&&r(n,o,null)}}for(n=this.diagram.isTreePathToChildren,t=t.linksConnected;t.next();)o=t.value,o=(n?o.toNode:o.fromNode).data,i.lb(o)&&jd(i,e,o)}},pd.prototype.insertLink=function(t,i,e){i=this.diagram.model;var n=t,o=e;return this.diagram.isTreePathToChildren||(n=e,o=t),null!==n&&null!==o?(i.qe(o.data,i.wa(n.data)),o.kh()):null},pd.prototype.findLinkForKey=pd.prototype.findLinkForKey,pd.className="TreePartManager",md.prototype.cloneProtected=function(t){t.xa=this.xa,t.Sm=this.Sm,t.Gg=this.Gg,t.Th=this.Th,t.bl=this.bl,t.Bk=this.Bk,t.Km=this.Km,t.Jm=this.Jm,t.Mm=this.Mm,t.xm=this.xm,t.lj=this.lj},md.prototype.copy=function(){var t=new this.constructor;return this.cloneProtected(t),t},md.prototype.clear=function(){this.Tc=[],this.kb.clear(),this.Vf.clear(),this.undoManager.clear()},md.prototype.toString=function(t){if(void 0===t&&(t=0),1<t)return this.np();var i=(""!==this.name?this.name:"")+" Model";if(0<t){i+="\n node data:";for(var e=(t=this.nodeDataArray).length,n=0;n<e;n++){var o=t[n];i+=" "+this.wa(o)+":"+D(o)}}return i},md.prototype.xA=function(t){t.change!==ce&&w("Model.toIncrementalData argument is not a Transaction ChangedEvent:"+t.toString());var i=t.object;return t.isTransactionFinished&&i instanceof ge?(xd(this,i),t=this.Qv(i,"FinishedUndo"===t.propertyName),this.vh=null,t):null},md.prototype.Qv=function(t,i){var e=this,n=!1,o=new $,r=new $,s=new $,a=this.vh;t.changes.each((function(t){t.model===e&&("nodeDataArray"===t.modelChange?t.change===de?o.add(t.newValue):t.change===pe&&s.add(t.oldValue):e.lb(t.object)?r.add(t.object):t.change!==fe||e.modelData!==t.object&&"modelData"!==t.propertyName?null!==t.object&&(a&&a.contains(t.object)?a.get(t.object).each((function(t){e.lb(t)&&r.add(t)})):t.object instanceof md||e.ri()&&e.Jc(t.object)||bd(e,t.object).each((function(t){r.add(t)}))):n=!0)}));var h=this.il;h.clear(),o.each((function(t){h.add(e.wa(t)),i||r.add(t)}));var l=this.kl;l.clear(),s.each((function(t){l.add(e.wa(t)),i&&r.add(t)})),t=e.cloneDeep(r.Fa());var u=null;return n&&(null===u&&(u={}),u.modelData=this.cloneDeep(this.modelData)),0<h.count&&(null===u&&(u={}),i?u.removedNodeKeys=h.Fa():u.insertedNodeKeys=h.Fa()),0<t.length&&(null===u&&(u={}),u.modifiedNodeData=t),0<l.count&&(null===u&&(u={}),i?u.insertedNodeKeys=l.Fa():u.removedNodeKeys=l.Fa()),l.clear(),h.clear(),u},md.prototype.cloneDeep=function(t){return yd(this,t,!0)},(i=md.prototype).quote=function(t){return JSON.stringify(t).replace(/[\u007F-\uFFFF]/g,(function(t){return"\\u"+("0000"+t.charCodeAt(0).toString(16)).substr(-4)}))},i.rm=function(){var t="";return""!==this.name&&(t+=',\n "name": '+this.quote(this.name)),""!==this.dataFormat&&(t+=',\n "dataFormat": '+this.quote(this.dataFormat)),this.isReadOnly&&(t+=',\n "isReadOnly": '+this.isReadOnly),"key"!==this.nodeKeyProperty&&"string"==typeof this.nodeKeyProperty&&(t+=',\n "nodeKeyProperty": '+this.quote(this.nodeKeyProperty)),this.copiesArrays&&(t+=',\n "copiesArrays": true'),this.copiesArrayObjects&&(t+=',\n "copiesArrayObjects": true'),this.copiesKey||(t+=',\n "copiesKey": false'),"category"!==this.nodeCategoryProperty&&"string"==typeof this.nodeCategoryProperty&&(t+=',\n "nodeCategoryProperty": '+this.quote(this.nodeCategoryProperty)),t},i.gp=function(t){t.name&&(this.name=t.name),t.dataFormat&&(this.dataFormat=t.dataFormat),t.isReadOnly&&(this.isReadOnly=!0),t.nodeKeyProperty&&(this.nodeKeyProperty=t.nodeKeyProperty),t.copiesArrays&&(this.copiesArrays=!0),t.copiesArrayObjects&&(this.copiesArrayObjects=!0),!1===t.copiesKey&&(this.copiesKey=!1),t.nodeCategoryProperty&&(this.nodeCategoryProperty=t.nodeCategoryProperty)},i.Rv=function(){var t,i=this.modelData,e=!1;for(t in i)if(!Md(t,i[t])){e=!0;break}return i="",e&&(i=',\n "modelData": '+Pd(this,this.modelData)),i+',\n "nodeDataArray": '+kd(this,this.nodeDataArray,!0)},i.kv=function(t){vd(this,t),N(t=t.nodeDataArray)&&(this.dm(t),this.nodeDataArray=t)},i.Pv=function(t,i){var e=this,n=!1,o=new $,r=new $,s=new $,a=this.vh;t.changes.each((function(t){t.model===e&&("nodeDataArray"===t.modelChange?t.change===de?o.add(t.newValue):t.change===pe&&s.add(t.oldValue):e.lb(t.object)?r.add(t.object):t.change!==fe||e.modelData!==t.object&&"modelData"!==t.propertyName?null!==t.object&&(a&&a.contains(t.object)?a.get(t.object).each((function(t){e.lb(t)&&r.add(t)})):t.object instanceof md||e.ri()&&e.Jc(t.object)||bd(e,t.object).each((function(t){r.add(t)}))):n=!0)}));var h=this.il;h.clear(),o.each((function(t){h.add(e.wa(t)),i||r.add(t)}));var l=this.kl;return l.clear(),s.each((function(t){l.add(e.wa(t)),i&&r.add(t)})),t="",n&&(t+=',\n "modelData": '+Pd(this,this.modelData)),0<h.count&&(t+=(i?this.Yv:this.Wv)+kd(this,h.Fa(),!0)),0<r.count&&(t+=this.jy+kd(this,r.Fa(),!0)),0<l.count&&(t+=(i?this.Wv:this.Yv)+kd(this,l.Fa(),!0)),l.clear(),h.clear(),t},i.fp=function(t){(void 0!==t.name&&t.name!==this.name||void 0!==t.dataFormat&&t.dataFormat!==this.dataFormat||void 0!==t.isReadOnly&&t.isReadOnly!==this.isReadOnly||void 0!==t.nodeKeyProperty&&t.nodeKeyProperty!==this.nodeKeyProperty||void 0!==t.copiesArrays&&t.copiesArrays!==this.copiesArrays||void 0!==t.copiesArrayObjects&&t.copiesArrayObjects!==this.copiesArrayObjects||void 0!==t.copiesKey&&t.copiesKey!==this.copiesKey||void 0!==t.nodeCategoryProperty&&t.nodeCategoryProperty!==this.nodeCategoryProperty)&&w("applyIncrementalJson cannot change Model properties"),vd(this,t);var i=t.insertedNodeKeys,e=t.modifiedNodeData,n=new dt;if(Array.isArray(e))for(var o=0;o<e.length;o++){var r=e[o],s=this.wa(r);null!=s&&n.set(s,r)}if(Array.isArray(i))for(o=i.length,r=0;r<o;r++){s=i[r];var a=this.hc(s);null===a&&(a=(a=n.get(s))?a:this.copyNodeData({}),this.km(a,s),this.xf(a))}if(Array.isArray(e))for(i=e.length,n=0;n<i;n++)if(o=e[n],r=this.wa(o),null!==(r=this.hc(r))){for(var h in o)"__gohashid"===h||h===this.nodeKeyProperty||this.Wj()&&h===this.nodeIsGroupProperty||this.setDataProperty(r,h,o[h]);this.lm(o,r)}if(t=t.removedNodeKeys,Array.isArray(t))for(e=t.length,h=0;h<e;h++)null!==(i=this.hc(t[h]))&&this.cm(i)},i.$x=function(t,i){t.change!==ce&&w("Model.toIncrementalJson argument is not a Transaction ChangedEvent:"+t.toString());var e=t.object;return t.isTransactionFinished&&e instanceof ge?(void 0===i&&(i=Id(this,this)),xd(this,e),t=this.Pv(e,"FinishedUndo"===t.propertyName),this.vh=null,"2"===i?'{ "incremental": 2'+t+"}":'{ "class": '+this.quote(i)+', "incremental": 1'+this.rm()+t+"}"):'{ "incremental": 0 }'},i.yA=function(t,i){return this.$x(t,i)},i.np=function(t){return void 0===t&&(t=Id(this,this)),'{ "class": '+this.quote(t)+this.rm()+this.Rv()+"}"},i.toJSON=function(t){return this.np(t)},i.Zw=function(t){var i=null;if("string"==typeof t)try{i=m.JSON.parse(t)}catch(t){}else"object"==typeof t?i=t:w("Unable to modify a Model from: "+t);var e=i.incremental;"number"!=typeof e&&w("Unable to apply non-incremental changes to Model: "+t),0!==e&&(this.Ea("applyIncrementalJson"),this.fp(i),this.eb("applyIncrementalJson"))},i.Ky=function(t){return this.Zw(t)},md.constructGraphLinksModel=function(){return new md},(i=md.prototype).dm=function(t){if(N(t))for(var i=t.length,e=0;e<i;e++){var n=t[e];if(P(n)){var o=e;n=this.dm(n),Array.isArray(t)?t[o]=n:w("Cannot replace an object in an HTMLCollection or NodeList at "+o)}}else if(P(t)){for(i in t)if(P(e=t[i])&&(e=this.dm(e),t[i]=e,"points"===i&&Array.isArray(e))){for(o=0==e.length%2,n=0;n<e.length;n++)if("number"!=typeof e[n]){o=!1;break}if(o){for(o=new Z,n=0;n<e.length/2;n++)o.add(new pt(e[2*n],e[2*n+1]));o.freeze(),t[i]=o}}return function(t){if("object"!=typeof t)return t;var i=t.class||"";if("NaN"===i)return NaN;if("Date"===i)return new Date(t.value);if(0!==i.indexOf("go."))return t;i=i.substr(3);var e=t;if("Point"===i)e=new pt(Nd(t.x),Nd(t.y));else if("Size"===i)e=new At(Nd(t.width),Nd(t.height));else if("Rect"===i)e=new Bt(Nd(t.x),Nd(t.y),Nd(t.width),Nd(t.height));else if("Margin"===i)e=new Wt(Nd(t.top),Nd(t.right),Nd(t.bottom),Nd(t.left));else if("Spot"===i)e="string"==typeof t.enum?Ri(t.enum):new Ii(Nd(t.x),Nd(t.y),Nd(t.offsetX),Nd(t.offsetY));else if("Brush"===i){if((e=new Ia).type=Y(Ia,t.type),"string"==typeof t.color&&(e.color=t.color),t.start instanceof Ii&&(e.start=t.start),t.end instanceof Ii&&(e.end=t.end),"number"==typeof t.startRadius&&(e.startRadius=Nd(t.startRadius)),"number"==typeof t.endRadius&&(e.endRadius=Nd(t.endRadius)),P(t=t.colorStops))for(var n in t)e.addColorStop(parseFloat(n),t[n])}else"Geometry"===i?(e=null,e="string"==typeof t.path?Ui.parse(t.path):new Ui,e.type=Y(Ui,t.type),"number"==typeof t.startX&&(e.startX=Nd(t.startX)),"number"==typeof t.startY&&(e.startY=Nd(t.startY)),"number"==typeof t.endX&&(e.endX=Nd(t.endX)),"number"==typeof t.endY&&(e.endY=Nd(t.endY)),t.spot1 instanceof Ii&&(e.spot1=t.spot1),t.spot2 instanceof Ii&&(e.spot2=t.spot2)):"EnumValue"===i&&(n=t.classType,0===n.indexOf("go.")&&(n=n.substr(3)),n=zd(n),"function"==typeof n&&(e=Y(n,t.name)));return e}(t)}return t},i.sm=function(t){return void 0===t?"undefined":null===t?"null":!0===t?"true":!1===t?"false":"string"==typeof t?this.quote(t):"number"==typeof t?1/0===t?"9e9999":-1/0===t?"-9e9999":isNaN(t)?'{"class":"NaN"}':t.toString():t instanceof Date?'{"class":"Date", "value":"'+t.toJSON()+'"}':t instanceof Number?this.sm(t.valueOf()):N(t)?kd(this,t):P(t)?Pd(this,t):"function"==typeof t?"null":t.toString()},i.Pe=function(t){return this.Lt.add(t),this},i.ik=function(t){this.Lt.remove(t)},i.ds=function(t){this.skipsUndoManager||this.undoManager.Tu(t);for(var i=this.Lt,e=i.length,n=0;n<e;n++)i.M(n)(t)},i.cb=function(t,i,e,n,o,r,s){Cd(this,"",t,i,e,n,o,r,s)},i.g=function(t,i,e,n,o){Cd(this,"",fe,t,this,i,e,n,o)},i.Fs=function(t,i,e,n,o,r){Cd(this,"",fe,i,t,e,n,o,r)},md.prototype.changeState=function(t,i){if(null!==t&&t.model===this)if(t.change===fe){var e=t.object,n=t.propertyName,o=t.I(i);n===this.nodeKeyProperty&&this.lb(e)&&(void 0!==(i=t.I(!i))&&this.kb.remove(i),void 0!==o&&this.kb.add(o,e)),Ed(e,n,o)}else t.change===de?(e=t.newParam,"nodeDataArray"===t.modelChange?P(t=t.newValue)&&"number"==typeof e&&(n=this.wa(t),i?(this.Tc[e]===t&&L(this.Tc,e),void 0!==n&&this.kb.remove(n)):(this.Tc[e]!==t&&T(this.Tc,e,t),void 0!==n&&this.kb.add(n,t))):""===t.modelChange?((n=t.object)&&!N(n)&&t.propertyName&&(n=Rd(t.object,t.propertyName)),N(n)&&"number"==typeof e&&(t=t.newValue,i?L(n,e):T(n,e,t))):w("unknown ChangedEvent.Insert modelChange: "+t.toString())):t.change===pe?(e=t.oldParam,"nodeDataArray"===t.modelChange?P(t=t.oldValue)&&"number"==typeof e&&(n=this.wa(t),i?(this.Tc[e]!==t&&T(this.Tc,e,t),void 0!==n&&this.kb.add(n,t)):(this.Tc[e]===t&&L(this.Tc,e),void 0!==n&&this.kb.remove(n))):""===t.modelChange?((n=t.object)&&!N(n)&&t.propertyName&&(n=Rd(t.object,t.propertyName)),N(n)&&"number"==typeof e&&(t=t.oldValue,i?T(n,e,t):L(n,e))):w("unknown ChangedEvent.Remove modelChange: "+t.toString())):t.change!==ce&&w("unknown ChangedEvent: "+t.toString())},md.prototype.Ea=function(t){return this.undoManager.Ea(t)},md.prototype.eb=function(t){return this.undoManager.eb(t)},md.prototype.Kf=function(){return this.undoManager.Kf()},md.prototype.commit=function(t,i){void 0===i&&(i="");var e=this.skipsUndoManager;null===i&&(this.skipsUndoManager=!0,i=""),this.undoManager.Ea(i);var n=!1;try{t(this),n=!0}finally{n?this.undoManager.eb(i):this.undoManager.Kf(),this.skipsUndoManager=e}},(i=md.prototype).La=function(t,i){void 0===i&&(i=""),Cd(this,"SourceChanged",ce,i,t,null,null)},i.wa=function(t){if(null!==t){var i=this.Th;if(""!==i&&void 0!==(i=Rd(t,i))){if(Td(i))return i;w("Key value for node data "+t+" is not a number or a string: "+i)}}},i.km=function(t,i){if(null!==t){var e=this.Th;if(""!==e)if(this.lb(t)){var n=Rd(t,e);n!==i&&null===this.hc(i)&&(Ed(t,e,i),void 0!==n&&this.kb.remove(n),this.kb.add(i,t),Cd(this,"nodeKey",fe,e,t,n,i),"string"==typeof e&&this.La(t,e),this.jp(n,i))}else Ed(t,e,i)}},i.lb=function(t){var i=this.wa(t);return void 0!==i&&this.kb.I(i)===t},i.hc=function(t){return null===t&&w("Model.findNodeDataForKey:key must not be null"),void 0!==t&&Td(t)?this.kb.I(t):null},i.$u=function(t){if(null!==t){var i=this.Th;if(""!==i){var e=this.wa(t);if(void 0===e||this.kb.contains(e)){var n=this.bl;if(null!==n&&(null!=(e=n(this,t))&&!this.kb.contains(e)))return void Ed(t,i,e);if("string"==typeof e){for(n=2;this.kb.contains(e+n);)n++;Ed(t,i,e+n)}else if(void 0===e||"number"==typeof e){for(e=-this.kb.count-1;this.kb.contains(e);)e--;Ed(t,i,e)}}}}},i.xf=function(t){null!==t&&(tt(t),this.lb(t)||Ld(this,t,!0))},i.Fy=function(t){if(N(t))for(var i=t.length,e=0;e<i;e++)this.xf(t[e]);else for(t=t.iterator;t.next();)this.xf(t.value)},i.cm=function(t){null!==t&&Ad(this,t,!0)},i.nA=function(t){if(N(t))for(var i=t.length,e=0;e<i;e++)this.cm(t[e]);else for(t=t.iterator;t.next();)this.cm(t.value)},i.$z=function(t){if(t!==this.nodeDataArray&&N(t)){var i=this.kl;i.clear(),i.addAll(this.kb.iteratorKeys);var e=this.il;e.clear();for(var n=t.length,o=0;o<n;o++){var r=t[o],s=this.wa(r);if(void 0!==s){e.add(s);var a=this.hc(s);a!==r&&(null!==a?(this.Do(a,r),this.lm(r,a)):(r=this.cloneDeep(r),this.km(r,s),this.xf(r)))}else s=this.cloneDeep(r),this.xf(s),e.add(this.wa(s))}for(t=i.iterator;t.next();)n=t.value,e.contains(n)||(n=this.hc(n))&&this.cm(n);i.clear(),e.clear()}},i.jp=function(t,i){void 0!==i&&((t=Dd(this,t))instanceof $&&this.Vf.add(i,t))},i.Lv=function(){},i.fm=function(){},i.em=function(){},i.qp=function(){},i.Qy=function(t){void 0===t?this.Vf.clear():this.Vf.remove(t)},md.prototype.copyNodeData=function(t){if(null===t)return null;var i=this.Bk;return P(t=null!==i?i(t,this):Bd(this,t,!0))&&Q(t),t},md.prototype.setDataProperty=function(t,i,e){if(this.lb(t)){if(i===this.nodeKeyProperty)return void this.km(t,e);if(i===this.nodeCategoryProperty)return void this.jm(t,e)}else!Vd&&t instanceof Ds&&(Vd=!0,S('Model.setDataProperty is modifying a GraphObject, "'+t.toString()+'"'),S(" Is that really your intent?"));var n=Rd(t,i);n!==e&&(Ed(t,i,e),this.Fs(t,i,n,e))},(i=md.prototype).set=function(t,i,e){this.setDataProperty(t,i,e)},i.Do=function(t,i){if(i){var e,n=this.lb(t);for(e in i)"__gohashid"===e||n&&e===this.nodeKeyProperty||this.setDataProperty(t,e,i[e])}},i.Ay=function(t,i){this.ts(t,-1,i)},i.ts=function(t,i,e){0>i&&(i=t.length),T(t,i,e),Cd(this,"",de,"",t,null,e,null,i)},i.ov=function(t,i){void 0===i&&(i=-1),t===this.Tc&&w("Model.removeArrayItem should not be called on the Model.nodeDataArray"),-1===i&&(i=t.length-1);var e=t[i];L(t,i),Cd(this,"",pe,"",t,e,null,i,null)},i.Ro=function(t){if(null===t)return"";var i=this.lj;return""===i||void 0===(i=Rd(t,i))?"":"string"==typeof i?i:void w("getCategoryForNodeData found a non-string category for "+t+": "+i)},i.jm=function(t,i){if(null!==t){var e=this.lj;if(""!==e)if(this.lb(t)){var n=Rd(t,e);void 0===n&&(n=""),n!==i&&(Ed(t,e,i),Cd(this,"nodeCategory",fe,e,t,n,i))}else Ed(t,e,i)}},i.lm=function(t,i){this.jm(i,this.Ro(t))},i.Tl=function(){return!1},i.Wj=function(){return!1},i.ri=function(){return!1},i.xs=function(){return!1},i.Xj=function(){return!1},f.Object.defineProperties(md.prototype,{name:{get:function(){return this.xa},set:function(t){var i=this.xa;i!==t&&(this.xa=t,this.g("name",i,t))}},dataFormat:{get:function(){return this.Sm},set:function(t){var i=this.Sm;i!==t&&(this.Sm=t,this.g("dataFormat",i,t))}},isReadOnly:{get:function(){return this.Gg},set:function(t){var i=this.Gg;i!==t&&(this.Gg=t,this.g("isReadOnly",i,t))}},modelData:{get:function(){return this.j},set:function(t){var i=this.j;i!==t&&(this.j=t,this.g("modelData",i,t),this.La(t))}},undoManager:{get:function(){return this.o},set:function(t){var i=this.o;i!==t&&(null!==i&&i.Rx(this),this.o=t,null!==t&&t.Xw(this))}},skipsUndoManager:{get:function(){return this.Wg},set:function(t){this.Wg=t}},nodeKeyProperty:{get:function(){return this.Th},set:function(t){var i=this.Th;i!==t&&(""===t&&w("Model.nodeKeyProperty may not be the empty string"),0<this.kb.count&&w("Cannot set Model.nodeKeyProperty when there is existing node data"),this.Th=t,this.g("nodeKeyProperty",i,t))}},makeUniqueKeyFunction:{get:function(){return this.bl},set:function(t){var i=this.bl;i!==t&&(this.bl=t,this.g("makeUniqueKeyFunction",i,t))}},nodeDataArray:{get:function(){return this.Tc},set:function(t){var i=this.Tc;if(i!==t){this.kb.clear(),this.Lv();for(var e=t.length,n=0;n<e;n++){var o=t[n];P(o)||w("Model.nodeDataArray must only contain Objects, not: "+o),tt(o)}for(this.Tc=t,n=new Z,o=0;o<e;o++){var r=t[o],s=this.wa(r);void 0===s||null!==this.kb.I(s)?n.add(r):this.kb.add(s,r)}for(n=n.iterator;n.next();)o=n.value,this.$u(o),void 0!==(r=this.wa(o))&&this.kb.add(r,o);for(Cd(this,"nodeDataArray",fe,"nodeDataArray",this,i,t),i=0;i<e;i++)n=t[i],this.fm(n),this.em(n);Array.isArray(t)||(this.isReadOnly=!0)}}},copyNodeDataFunction:{get:function(){return this.Bk},set:function(t){var i=this.Bk;i!==t&&(this.Bk=t,this.g("copyNodeDataFunction",i,t))}},copiesArrays:{get:function(){return this.Km},set:function(t){var i=this.Km;i!==t&&(this.Km=t,this.g("copiesArrays",i,t))}},copiesArrayObjects:{get:function(){return this.Jm},set:function(t){var i=this.Jm;i!==t&&(this.Jm=t,this.g("copiesArrayObjects",i,t))}},copiesKey:{get:function(){return this.Mm},set:function(t){var i=this.Mm;i!==t&&(this.Mm=t,this.g("copiesKey",i,t))}},afterCopyFunction:{get:function(){return this.xm},set:function(t){var i=this.xm;i!==t&&(this.xm=t,this.g("afterCopyFunction",i,t))}},nodeCategoryProperty:{get:function(){return this.lj},set:function(t){var i=this.lj;i!==t&&(this.lj=t,this.g("nodeCategoryProperty",i,t))}},type:{get:function(){return"Model"}}}),md.prototype.setCategoryForNodeData=md.prototype.jm,md.prototype.getCategoryForNodeData=md.prototype.Ro,md.prototype.removeArrayItem=md.prototype.ov,md.prototype.insertArrayItem=md.prototype.ts,md.prototype.addArrayItem=md.prototype.Ay,md.prototype.assignAllDataProperties=md.prototype.Do,md.prototype.set=md.prototype.set,md.prototype.clearUnresolvedReferences=md.prototype.Qy,md.prototype.mergeNodeDataArray=md.prototype.$z,md.prototype.removeNodeDataCollection=md.prototype.nA,md.prototype.removeNodeData=md.prototype.cm,md.prototype.addNodeDataCollection=md.prototype.Fy,md.prototype.addNodeData=md.prototype.xf,md.prototype.makeNodeDataKeyUnique=md.prototype.$u,md.prototype.findNodeDataForKey=md.prototype.hc,md.prototype.containsNodeData=md.prototype.lb,md.prototype.setKeyForNodeData=md.prototype.km,md.prototype.getKeyForNodeData=md.prototype.wa,md.prototype.updateTargetBindings=md.prototype.La,md.prototype.commit=md.prototype.commit,md.prototype.rollbackTransaction=md.prototype.Kf,md.prototype.commitTransaction=md.prototype.eb,md.prototype.startTransaction=md.prototype.Ea,md.prototype.raiseDataChanged=md.prototype.Fs,md.prototype.raiseChanged=md.prototype.g,md.prototype.raiseChangedEvent=md.prototype.cb,md.prototype.removeChangedListener=md.prototype.ik,md.prototype.addChangedListener=md.prototype.Pe,md.prototype.writeJsonValue=md.prototype.sm,md.prototype.replaceJsonObjects=md.prototype.dm,md.prototype.applyIncrementalJSON=md.prototype.Ky,md.prototype.applyIncrementalJson=md.prototype.Zw,md.prototype.toJSON=md.prototype.toJSON,md.prototype.toJson=md.prototype.np,md.prototype.toIncrementalJSON=md.prototype.yA,md.prototype.toIncrementalJson=md.prototype.$x,md.prototype.toIncrementalData=md.prototype.xA,md.prototype.clear=md.prototype.clear;var Vd=!1,Yd={};function Gd(t,i,e,n){Q(this),this._isFrozen=!1,void 0===t&&(t=""),void 0===i&&(i=t),void 0===e&&(e=null),this.j=-1,this.xd=null,this.xl=t,this.wl=this.to=0,this.Cr=null,this.wn=!1,this.sl=i,this.Im=e,void 0===n?(this.el=qd,this.wk=null):(this.el=Hd,this.wk=n),this.st=new $}function Xd(t,i,e){return null===(t=t.sourceName)||""===t?i:"/"===t?e.part:"."===t?e:".."===t?e.panel:i.fb(t)}md.className="Model",md.fromJSON=md.fromJson=function(t,i){void 0===i&&(i=null);var e=null;if("string"==typeof t)try{e=m.JSON.parse(t)}catch(t){}else"object"==typeof t?e=t:w("Unable to construct a Model from: "+t);if(null===i){t=null;var n=e.class;if("string"==typeof n)try{var o=null;0===n.indexOf("go.")?o=zd(n=n.substr(3)):null===(o=zd(n))&&(o=m[n]),"function"==typeof o&&(t=new o)}catch(t){}null===t||t instanceof md?i=t:w("Unable to construct a Model of declared class: "+e.class)}return null===i&&(i=md.constructGraphLinksModel()),i.gp(e),i.kv(e),i},md.safePropertyValue=Rd,md.safePropertySet=Ed,Yd.Brush=Ia,Yd.ChangedEvent=ue,Yd.Geometry=Ui,Yd.Margin=Wt,Yd.Panel=Ch,Yd.Point=pt,Yd.Rect=Bt,Yd.Size=At,Yd.Spot=Ii,Yd.Transaction=ge,Yd.UndoManager=me,Gd.prototype.copy=function(){var t=new Gd;return t.xl=this.xl,t.to=this.to,t.wl=this.wl,t.Cr=this.Cr,t.wn=this.wn,t.sl=this.sl,t.Im=this.Im,t.el=this.el,t.wk=this.wk,t},(i=Gd.prototype).qb=function(t){t.classType===Gd&&(this.mode=t)},i.toString=function(){return"Binding("+this.targetProperty+":"+this.sourceProperty+(-1!==this.Ai?" "+this.Ai:"")+" "+this.mode.name+")"},i.freeze=function(){return this._isFrozen=!0,this},i.ka=function(){return this._isFrozen=!1,this},i.Kx=function(t){return void 0===t&&(t=null),this.mode=Hd,this.backConverter=t,this},i.cp=function(t){return void 0===t&&(t=""),this.sourceName=t,this.isToModel=!1,this},i.dA=function(){return this.sourceName=null,this.isToModel=!0,this},i.Mv=function(t,i,e){var n=this.sl;if(void 0===e||""===n||n===e){e=this.xl;var o=this.Im;if(null===o&&""===e)S("Binding error: target property is the empty string: "+this.toString());else{var r=i;if(""!==n&&(r=Rd(i,n)),void 0!==r)if(null===o)""!==e&&Ed(t,e,r);else try{if(""!==e)Ed(t,e,o(r,t));else o(r,t)}catch(t){}}}},i.sp=function(t,i,e,n){if(this.el===Hd){var o=this.xl;if(void 0===e||o===e){e=this.sl;var r=this.wk,s=t;if(""!==o&&(s=Rd(t,o)),void 0!==s&&!this.st.contains(t))try{this.st.add(t);var a=null!==n?n.diagram:null,h=null!==a?a.model:null;if(null===r){if(""!==e)null!==h?h.setDataProperty(i,e,s):Ed(i,e,s);else if(null!==h&&null!==n&&0<=n.itemIndex&&null!==n.panel&&Array.isArray(n.panel.itemArray)){var l=n.itemIndex,u=n.panel.itemArray;h.ov(u,l),h.ts(u,l,s)}}else try{if(""!==e){var c=r(s,i,h);null!==h?h.setDataProperty(i,e,c):Ed(i,e,c)}else{var f=r(s,i,h);if(void 0!==f&&null!==h&&null!==n&&0<=n.itemIndex&&null!==n.panel&&Array.isArray(n.panel.itemArray)){var d=n.itemIndex,p=n.panel.itemArray;h.ov(p,d),h.ts(p,d,f)}}}catch(t){}}finally{this.st.remove(t)}}}},f.Object.defineProperties(Gd.prototype,{Ai:{get:function(){return this.j},set:function(t){this._isFrozen&&k(this),this.j=t}},targetProperty:{get:function(){return this.xl},set:function(t){this._isFrozen&&k(this),this.xl=t}},sourceName:{get:function(){return this.Cr},set:function(t){this._isFrozen&&k(this),this.Cr=t,null!==t&&(this.wn=!1)}},isToModel:{get:function(){return this.wn},set:function(t){this._isFrozen&&k(this),this.wn=t}},sourceProperty:{get:function(){return this.sl},set:function(t){this._isFrozen&&k(this),this.sl=t}},converter:{get:function(){return this.Im},set:function(t){this._isFrozen&&k(this),this.Im=t}},backConverter:{get:function(){return this.wk},set:function(t){this._isFrozen&&k(this),this.wk=t}},mode:{get:function(){return this.el},set:function(t){this._isFrozen&&k(this),this.el=t}}}),Gd.prototype.updateSource=Gd.prototype.sp,Gd.prototype.updateTarget=Gd.prototype.Mv,Gd.prototype.ofModel=Gd.prototype.dA,Gd.prototype.ofObject=Gd.prototype.cp,Gd.prototype.makeTwoWay=Gd.prototype.Kx;var Ud="Binding",qd=new V(Gd,"OneWay",1),Hd=new V(Gd,"TwoWay",2);function Kd(t,i,e){md.call(this),this.Vv=',\n "insertedLinkKeys": ',this.iy=',\n "modifiedLinkData": ',this.Xv=',\n "removedLinkKeys": ',this.md=[],this.$f=new $,this.wb=new dt,this.Jh="",this.Ri=this.Ak=this.cl=null,this.lf="from",this.mf="to",this.fj=this.ej="",this.dj="category",this.je="",this.jl="isGroup",this.Je="group",this.Lm=!1,void 0!==i&&(this.linkDataArray=i),void 0!==t&&(N(t)?this.nodeDataArray=t:e=t),e&&(Object.assign(this,e),t=e.Changed)&&(delete this.Changed,this.Pe(t))}function Wd(t,i){for(var e=new $,n=0;n<t.linkDataArray.length;n++){var o=t.linkDataArray[n];wd(t,i,o,o,e)}return e}function Jd(t,i,e){if(null!==i&&(""!==(t=e?t.lf:t.mf)&&void 0!==(t=Rd(i,t)))){if(Td(t))return t;w((e?"FromKey":"ToKey")+" value for link data "+i+" is not a number or a string: "+t)}}function Zd(t,i,e,n){if(null===e&&(e=void 0),null!==i){var o=n?t.lf:t.mf;if(""!==o)if(e=t.Vl(e),t.Jc(i)){var r=Rd(i,o);r!==e&&(Fd(t,r,i),Ed(i,o,e),null===t.hc(e)&&jd(t,e,i),Cd(t,n?"linkFromKey":"linkToKey",fe,o,i,r,e),"string"==typeof o&&t.La(i,o))}else Ed(i,o,e)}}function _d(t,i,e){return null===i||""===(t=e?t.ej:t.fj)||void 0===(i=Rd(i,t))?"":i}function $d(t,i,e,n){if(null!==i){var o=n?t.ej:t.fj;if(""!==o)if(t.Jc(i)){var r=Rd(i,o);void 0===r&&(r=""),r!==e&&(Ed(i,o,e),Cd(t,n?"linkFromPortId":"linkToPortId",fe,o,i,r,e),"string"==typeof o&&t.La(i,o))}else Ed(i,o,e)}}function Qd(t,i,e){if(""!==t.linkKeyProperty){var n=t.Ac(i);if(void 0!==n&&t.wb.I(n)===i)return;t.Bs(i),void 0===(n=t.Ac(i))&&w("GraphLinksModel.makeLinkDataKeyUnique failed on "+i+". Data not added to model."),t.wb.add(n,i)}t.$f.add(i),n=null,e&&(n=t.md.length,t.md.splice(n,0,i)),Cd(t,"linkDataArray",de,"linkDataArray",t,null,i,null,n),ip(t,i)}function tp(t,i,e){t.$f.remove(i);var n=t.Ac(i);if(void 0!==n&&t.wb.remove(n),n=null,e){if(0>(n=t.md.indexOf(i)))return;t.md.splice(n,1)}if(Cd(t,"linkDataArray",pe,"linkDataArray",t,i,null,n,null),Fd(t,e=Jd(t,i,!0),i),Fd(t,e=Jd(t,i,!1),i),n=t.Ef(i),Array.isArray(n))for(var o=n.length,r=0;r<o;r++)Fd(t,e=n[r],i)}function ip(t,i){var e=Jd(t,i,!0);e=t.Vl(e),null===t.hc(e)&&jd(t,e,i),e=Jd(t,i,!1),e=t.Vl(e),null===t.hc(e)&&jd(t,e,i);var n=t.Ef(i);if(Array.isArray(n))for(var o=n.length,r=0;r<o;r++)e=n[r],null===t.hc(e)&&jd(t,e,i)}function ep(t,i,e){t.lp(e,t.ps(i)),t.wv(e,t.yx(i)),t.Bv(e,t.Bx(i)),t.Ls(e,t.Ef(i)),t.xv(e,t.zx(i)),t.Cv(e,t.Cx(i))}Gd.className="Binding",Gd.parseEnum=function(t,i){return function(e){return null===(e=Y(t,e))?i:e}},Gd.toString=D,Gd.OneWay=qd,Gd.TwoWay=Hd,c(Kd,md),Kd.constructGraphLinksModel=md.constructGraphLinksModel,Kd.prototype.cloneProtected=function(t){md.prototype.cloneProtected.call(this,t),t.Jh=this.Jh,t.cl=this.cl,t.Ak=this.Ak,t.lf=this.lf,t.mf=this.mf,t.ej=this.ej,t.fj=this.fj,t.dj=this.dj,t.je=this.je,t.jl=this.jl,t.Je=this.Je,t.Lm=this.Lm},(i=Kd.prototype).clear=function(){md.prototype.clear.call(this),this.md=[],this.wb.clear(),this.$f.clear()},i.toString=function(t){if(void 0===t&&(t=0),2<=t)return this.np();var i=(""!==this.name?this.name:"")+" GraphLinksModel";if(0<t){i+="\n node data:";var e,n=(t=this.nodeDataArray).length;for(e=0;e<n;e++){var o=t[e];i+=" "+this.wa(o)+":"+D(o)}for(i+="\n link data:",n=(t=this.linkDataArray).length,e=0;e<n;e++)i+=" "+Jd(this,o=t[e],!0)+"--\x3e"+Jd(this,o,!1)}return i},i.Qv=function(t,i){""===this.linkKeyProperty&&w("GraphLinksModel.linkKeyProperty must not be an empty string for .toIncrementalData() to succeed.");var e=md.prototype.Qv.call(this,t,i),n=this,o=new $,r=new $,s=new $,a=this.vh;t.changes.each((function(t){t.model===n&&("linkDataArray"===t.modelChange?t.change===de?o.add(t.newValue):t.change===pe&&s.add(t.oldValue):n.Jc(t.object)?r.add(t.object):null!==t.object&&(null!==t.object&&a&&a.contains(t.object)?a.get(t.object).each((function(t){n.Jc(t)&&r.add(t)})):t.object instanceof md||n.lb(t.object)||Wd(n,t.object).each((function(t){r.add(t)}))))}));var h=this.il;h.clear(),o.each((function(t){h.add(n.Ac(t)),i||r.add(t)}));var l=this.kl;return l.clear(),s.each((function(t){l.add(n.Ac(t)),i&&r.add(t)})),t=n.cloneDeep(r.Fa()),0<h.count&&(null===e&&(e={}),i?e.removedLinkKeys=h.Fa():e.insertedLinkKeys=h.Fa()),0<t.length&&(null===e&&(e={}),e.modifiedLinkData=t),0<l.count&&(null===e&&(e={}),i?e.insertedLinkKeys=l.Fa():e.removedLinkKeys=l.Fa()),l.clear(),h.clear(),e},i.rm=function(){var t=md.prototype.rm.call(this),i="";return"category"!==this.linkCategoryProperty&&"string"==typeof this.linkCategoryProperty&&(i+=',\n "linkCategoryProperty": '+this.quote(this.linkCategoryProperty)),""!==this.linkKeyProperty&&"string"==typeof this.linkKeyProperty&&(i+=',\n "linkKeyProperty": '+this.quote(this.linkKeyProperty)),"from"!==this.linkFromKeyProperty&&"string"==typeof this.linkFromKeyProperty&&(i+=',\n "linkFromKeyProperty": '+this.quote(this.linkFromKeyProperty)),"to"!==this.linkToKeyProperty&&"string"==typeof this.linkToKeyProperty&&(i+=',\n "linkToKeyProperty": '+this.quote(this.linkToKeyProperty)),""!==this.linkFromPortIdProperty&&"string"==typeof this.linkFromPortIdProperty&&(i+=',\n "linkFromPortIdProperty": '+this.quote(this.linkFromPortIdProperty)),""!==this.linkToPortIdProperty&&"string"==typeof this.linkToPortIdProperty&&(i+=',\n "linkToPortIdProperty": '+this.quote(this.linkToPortIdProperty)),""!==this.linkLabelKeysProperty&&"string"==typeof this.linkLabelKeysProperty&&(i+=',\n "linkLabelKeysProperty": '+this.quote(this.linkLabelKeysProperty)),"isGroup"!==this.nodeIsGroupProperty&&"string"==typeof this.nodeIsGroupProperty&&(i+=',\n "nodeIsGroupProperty": '+this.quote(this.nodeIsGroupProperty)),"group"!==this.nodeGroupKeyProperty&&"string"==typeof this.nodeGroupKeyProperty&&(i+=',\n "nodeGroupKeyProperty": '+this.quote(this.nodeGroupKeyProperty)),t+i},i.gp=function(t){md.prototype.gp.call(this,t),t.linkKeyProperty&&(this.linkKeyProperty=t.linkKeyProperty),t.linkFromKeyProperty&&(this.linkFromKeyProperty=t.linkFromKeyProperty),t.linkToKeyProperty&&(this.linkToKeyProperty=t.linkToKeyProperty),t.linkFromPortIdProperty&&(this.linkFromPortIdProperty=t.linkFromPortIdProperty),t.linkToPortIdProperty&&(this.linkToPortIdProperty=t.linkToPortIdProperty),t.linkCategoryProperty&&(this.linkCategoryProperty=t.linkCategoryProperty),t.linkLabelKeysProperty&&(this.linkLabelKeysProperty=t.linkLabelKeysProperty),t.nodeIsGroupProperty&&(this.nodeIsGroupProperty=t.nodeIsGroupProperty),t.nodeGroupKeyProperty&&(this.nodeGroupKeyProperty=t.nodeGroupKeyProperty)},i.Rv=function(){return md.prototype.Rv.call(this)+(',\n "linkDataArray": '+kd(this,this.linkDataArray,!0))},i.kv=function(t){md.prototype.kv.call(this,t),t=t.linkDataArray,Array.isArray(t)&&(this.dm(t),this.linkDataArray=t)},i.Pv=function(t,i){""===this.linkKeyProperty&&w("GraphLinksModel.linkKeyProperty must not be an empty string for .toIncrementalJson() to succeed.");var e=md.prototype.Pv.call(this,t,i),n=this,o=new $,r=new $,s=new $,a=this.vh;t.changes.each((function(t){t.model===n&&("linkDataArray"===t.modelChange?t.change===de?o.add(t.newValue):t.change===pe&&s.add(t.oldValue):n.Jc(t.object)?r.add(t.object):null!==t.object&&(null!==t.object&&a&&a.contains(t.object)?a.get(t.object).each((function(t){n.Jc(t)&&r.add(t)})):t.object instanceof md||n.lb(t.object)||Wd(n,t.object).each((function(t){r.add(t)}))))}));var h=this.il;h.clear(),o.each((function(t){h.add(n.Ac(t)),i||r.add(t)}));var l=this.kl;return l.clear(),s.each((function(t){l.add(n.Ac(t)),i&&r.add(t)})),t=e,0<h.count&&(t+=(i?this.Xv:this.Vv)+kd(this,h.Fa(),!0)),0<r.count&&(t+=this.iy+kd(this,r.Fa(),!0)),0<l.count&&(t+=(i?this.Vv:this.Xv)+kd(this,l.Fa(),!0)),l.clear(),h.clear(),t},i.fp=function(t){(void 0!==t.linkCategoryProperty&&t.linkCategoryProperty!==this.linkCategoryProperty||void 0!==t.linkKeyProperty&&t.linkKeyProperty!==this.linkKeyProperty||void 0!==t.linkFromKeyProperty&&t.linkFromKeyProperty!==this.linkFromKeyProperty||void 0!==t.linkToKeyProperty&&t.linkToKeyProperty!==this.linkToKeyProperty||void 0!==t.linkFromPortIdProperty&&t.linkFromPortIdProperty!==this.linkFromPortIdProperty||void 0!==t.linkToPortIdProperty&&t.linkToPortIdProperty!==this.linkToPortIdProperty||void 0!==t.linkLabelKeysProperty&&t.linkLabelKeysProperty!==this.linkLabelKeysProperty||void 0!==t.nodeIsGroupProperty&&t.nodeIsGroupProperty!==this.nodeIsGroupProperty||void 0!==t.nodeGroupKeyProperty&&t.nodeGroupKeyProperty!==this.nodeGroupKeyProperty)&&w("applyIncrementalJson cannot change Model properties"),md.prototype.fp.call(this,t);var i=t.insertedLinkKeys;if(Array.isArray(i))for(var e=i.length,n=0;n<e;n++){var o=i[n],r=this.jh(o);null===r&&(r=this.Jo({}),this.Ks(r,o),this.fi(r))}if(i=t.modifiedLinkData,Array.isArray(i))for(e=i.length,n=0;n<e;n++)if(o=i[n],r=this.Ac(o),null!==(r=this.jh(r))){for(var s in o)"__gohashid"!==s&&s!==this.linkKeyProperty&&this.setDataProperty(r,s,o[s]);ep(this,o,r)}if(t=t.removedLinkKeys,Array.isArray(t))for(s=t.length,i=0;i<s;i++)null!==(e=this.jh(t[i]))&&this.bm(e)},Kd.prototype.changeState=function(t,i){if(null!==t&&t.model===this){if(t.change===fe){var e=t.object,n=t.propertyName;if(n===this.linkKeyProperty&&this.Jc(e)){var o=t.I(i);return void 0!==(i=t.I(!i))&&this.wb.remove(i),void 0!==o&&this.wb.add(o,e),void Ed(e,n,o)}}else if(t.change===de){if(e=t.newParam,"linkDataArray"===t.modelChange)return void(P(t=t.newValue)&&"number"==typeof e&&(n=this.Ac(t),i?(this.$f.remove(t),this.md[e]===t&&this.md.splice(e,1),void 0!==n&&this.wb.remove(n)):(this.$f.add(t),this.md[e]!==t&&this.md.splice(e,0,t),void 0!==n&&this.wb.add(n,t))));if("linkLabelKeys"===t.modelChange)return n=this.Ef(t.object),void(Array.isArray(n)&&"number"==typeof e&&(i?(e=n.indexOf(t.newValue),0<=e&&n.splice(e,1)):0>n.indexOf(t.newValue)&&n.splice(e,0,t.newValue)))}else if(t.change===pe){if(e=t.oldParam,"linkDataArray"===t.modelChange)return void(P(t=t.oldValue)&&"number"==typeof e&&(n=this.Ac(t),i?(this.$f.add(t),this.md[e]!==t&&this.md.splice(e,0,t),void 0!==n&&this.wb.add(n,t)):(this.$f.remove(t),this.md[e]===t&&this.md.splice(e,1),void 0!==n&&this.wb.remove(n))));if("linkLabelKeys"===t.modelChange)return n=this.Ef(t.object),void(Array.isArray(n)&&"number"==typeof e&&(i?0>n.indexOf(t.newValue)&&n.splice(e,0,t.newValue):(e=n.indexOf(t.newValue),0<=e&&n.splice(e,1))))}md.prototype.changeState.call(this,t,i)}},(i=Kd.prototype).Vl=function(t){if(void 0!==t){var i=this.Ri;if(null!==i){var e=this.hc(t);null===e&&(Ed(e=this.copyNodeData(i),this.nodeKeyProperty,t),this.xf(e))}return t}},i.yx=function(t){return Jd(this,t,!0)},i.wv=function(t,i){Zd(this,t,i,!0)},i.Bx=function(t){return Jd(this,t,!1)},i.Bv=function(t,i){Zd(this,t,i,!1)},i.zx=function(t){return _d(this,t,!0)},i.xv=function(t,i){$d(this,t,i,!0)},i.Cx=function(t){return _d(this,t,!1)},i.Cv=function(t,i){$d(this,t,i,!1)},i.Ef=function(t){if(null===t)return np;var i=this.je;return""===i||void 0===(t=Rd(t,i))?np:t},i.Ls=function(t,i){if(null!==t){var e=this.je;if(""!==e)if(this.Jc(t)){var n=Rd(t,e);if(void 0===n&&(n=np),n!==i){if(Array.isArray(n))for(var o=n.length,r=0;r<o;r++)Fd(this,n[r],t);for(Ed(t,e,i),o=i.length,r=0;r<o;r++){var s=i[r];null===this.hc(s)&&jd(this,s,t)}Cd(this,"linkLabelKeys",fe,e,t,n,i),"string"==typeof e&&this.La(t,e)}}else Ed(t,e,i)}},i.Bu=function(t,i){if(null!=i&&null!==t){var e=this.je;if(""!==e){var n=Rd(t,e);if(void 0===n)(e=[]).push(i),this.Ls(t,e);else if(Array.isArray(n)){var o=n.indexOf(i);0<=o||(o=n.length,n.push(i),this.Jc(t)&&(null===this.hc(i)&&jd(this,i,t),Cd(this,"linkLabelKeys",de,e,t,null,i,null,o)))}else w(e+" property is not an Array; cannot addLabelKeyForLinkData: "+t)}}},i.Qx=function(t,i){if(null!=i&&null!==t){var e=this.je;if(""!==e){var n=Rd(t,e);if(Array.isArray(n)){var o=n.indexOf(i);0>o||(n.splice(o,1),this.Jc(t)&&(Fd(this,i,t),Cd(this,"linkLabelKeys",pe,e,t,i,null,o,null)))}else void 0!==n&&w(e+" property is not an Array; cannot removeLabelKeyforLinkData: "+t)}}},i.Ac=function(t){if(null!==t){var i=this.Jh;if(""!==i&&void 0!==(i=Rd(t,i))){if(Td(i))return i;w("Key value for link data "+t+" is not a number or a string: "+i)}}},i.Ks=function(t,i){if(null!==t){var e=this.Jh;if(""!==e)if(this.Jc(t)){var n=Rd(t,e);n!==i&&null===this.jh(i)&&(Ed(t,e,i),void 0!==n&&this.wb.remove(n),this.wb.add(i,t),Cd(this,"linkKey",fe,e,t,n,i),"string"==typeof e&&this.La(t,e))}else Ed(t,e,i)}},i.jh=function(t){return null===t&&w("GraphLinksModel.findLinkDataForKey:key must not be null"),void 0!==t&&Td(t)?this.wb.I(t):null},i.Bs=function(t){if(null!==t){var i=this.Jh;if(""!==i){var e=this.Ac(t);if(void 0===e||this.wb.contains(e)){var n=this.cl;if(null!==n&&(null!=(e=n(this,t))&&!this.wb.contains(e)))return void Ed(t,i,e);if("string"==typeof e){for(n=2;this.wb.contains(e+n);)n++;Ed(t,i,e+n)}else if(void 0===e||"number"==typeof e){for(e=-this.wb.count-1;this.wb.contains(e);)e--;Ed(t,i,e)}}}}},i.Jc=function(t){return null!==t&&this.$f.contains(t)},i.fi=function(t){null!==t&&(tt(t),this.Jc(t)||Qd(this,t,!0))},i.Ey=function(t){if(Array.isArray(t))for(var i=t.length,e=0;e<i;e++)this.fi(t[e]);else for(t=t.iterator;t.next();)this.fi(t.value)},i.bm=function(t){null!==t&&tp(this,t,!0)},i.lA=function(t){if(Array.isArray(t))for(var i=t.length,e=0;e<i;e++)this.bm(t[e]);else for(t=t.iterator;t.next();)this.bm(t.value)},i.Zz=function(t){if(""===this.linkKeyProperty&&w("GraphLinksModel.linkKeyProperty must not be an empty string for .mergeLinkDataArray() to succeed."),t!==this.linkDataArray&&N(t)){var i=this.kl;i.clear(),i.addAll(this.wb.iteratorKeys);var e=this.il;e.clear();for(var n=t.length,o=0;o<n;o++){var r=t[o],s=this.Ac(r);if(void 0!==s){e.add(s);var a=this.jh(s);a!==r&&(null!==a?(this.Do(a,r),ep(this,r,a)):(r=this.cloneDeep(r),this.Ks(r,s),this.fi(r)))}else s=this.cloneDeep(r),this.fi(s),e.add(this.Ac(s))}for(t=i.iterator;t.next();)n=t.value,e.contains(n)||(n=this.jh(n))&&this.bm(n);i.clear(),e.clear()}},i.Jo=function(t){if(null===t)return null;var i=this.Ak;return P(t=null!==i?i(t,this):Bd(this,t,!0))&&(Q(t),""!==this.lf&&Ed(t,this.lf,void 0),""!==this.mf&&Ed(t,this.mf,void 0),""!==this.je&&Ed(t,this.je,[])),t},i.Yu=function(t){if(null===t)return!1;var i=this.jl;return""!==i&&!!Rd(t,i)},i.lh=function(t){if(null!==t){var i=this.Je;if(""!==i&&void 0!==(i=Rd(t,i))){if(Td(i))return i;w("GroupKey value for node data "+t+" is not a number or a string: "+i)}}},i.mp=function(t,i){if(null===i&&(i=void 0),null!==t){var e=this.Je;if(""!==e)if(this.lb(t)){var n=Rd(t,e);n!==i&&(Fd(this,n,t),Ed(t,e,i),null===this.hc(i)&&jd(this,i,t),Cd(this,"nodeGroupKey",fe,e,t,n,i),"string"==typeof e&&this.La(t,e))}else Ed(t,e,i)}},Kd.prototype.copyNodeData=function(t){return null===t?null:(t=md.prototype.copyNodeData.call(this,t),this.Ij||""===this.Je||void 0===Rd(t,this.Je)||Ed(t,this.Je,void 0),t)},Kd.prototype.setDataProperty=function(t,i,e){if(this.lb(t)){if(i===this.nodeKeyProperty)return void this.km(t,e);if(i===this.nodeCategoryProperty)return void this.jm(t,e);if(i===this.nodeGroupKeyProperty)return void this.mp(t,e)}else if(this.Jc(t)){if(i===this.linkFromKeyProperty)return void Zd(this,t,e,!0);if(i===this.linkToKeyProperty)return void Zd(this,t,e,!1);if(i===this.linkFromPortIdProperty)return void $d(this,t,e,!0);if(i===this.linkToPortIdProperty)return void $d(this,t,e,!1);if(i===this.linkKeyProperty)return void this.Ks(t,e);if(i===this.linkCategoryProperty)return void this.lp(t,e);if(i===this.linkLabelKeysProperty)return void this.Ls(t,e)}var n=Rd(t,i);n!==e&&(Ed(t,i,e),this.Fs(t,i,n,e))},(i=Kd.prototype).Do=function(t,i){if(i){var e,n=this.lb(t),o=this.Jc(t);for(e in i)"__gohashid"===e||n&&e===this.nodeKeyProperty||n&&e===this.nodeIsGroupProperty&&Rd(t,e)===i[e]||o&&e===this.linkKeyProperty||this.setDataProperty(t,e,i[e])}},i.jp=function(t,i){md.prototype.jp.call(this,t,i);for(var e=this.kb.iterator;e.next();)this.qv(e.value,t,i);for(e=this.$f.iterator;e.next();){var n=e.value,o=t,r=i;if(Jd(this,n,!0)===o){var s=this.lf;Ed(n,s,r),Cd(this,"linkFromKey",fe,s,n,o,r),"string"==typeof s&&this.La(n,s)}if(Jd(this,n,!1)===o&&(Ed(n,s=this.mf,r),Cd(this,"linkToKey",fe,s,n,o,r),"string"==typeof s&&this.La(n,s)),s=this.Ef(n),Array.isArray(s))for(var a=s.length,h=this.je,l=0;l<a;l++)s[l]===o&&(s[l]=r,Cd(this,"linkLabelKeys",de,h,n,o,r,l,l))}},i.qv=function(t,i,e){if(this.lh(t)===i){var n=this.Je;Ed(t,n,e),Cd(this,"nodeGroupKey",fe,n,t,i,e),"string"==typeof n&&this.La(t,n)}},i.Lv=function(){md.prototype.Lv.call(this);for(var t=this.linkDataArray,i=t.length,e=0;e<i;e++)ip(this,t[e])},i.fm=function(t){md.prototype.fm.call(this,t);var i=Dd(this,t=this.wa(t));if(null!==i){var e=A();for(i=i.iterator;i.next();){var n=i.value;if(this.lb(n)){if(this.lh(n)===t){var o=this.Je;Cd(this,"nodeGroupKey",fe,o,n,t,t),"string"==typeof o&&this.La(n,o),e.push(n)}}else if(Jd(this,n,!0)===t&&(o=this.lf,Cd(this,"linkFromKey",fe,o,n,t,t),"string"==typeof o&&this.La(n,o),e.push(n)),Jd(this,n,!1)===t&&(o=this.mf,Cd(this,"linkToKey",fe,o,n,t,t),"string"==typeof o&&this.La(n,o),e.push(n)),o=this.Ef(n),Array.isArray(o))for(var r=o.length,s=this.je,a=0;a<r;a++)o[a]===t&&(Cd(this,"linkLabelKeys",de,s,n,t,t,a,a),e.push(n))}for(i=0;i<e.length;i++)Fd(this,t,e[i]);j(e)}},i.em=function(t){md.prototype.em.call(this,t);var i=this.lh(t);null===this.hc(i)&&jd(this,i,t)},i.qp=function(t){md.prototype.qp.call(this,t),Fd(this,this.lh(t),t)},i.ps=function(t){if(null===t)return"";var i=this.dj;return""===i||void 0===(i=Rd(t,i))?"":"string"==typeof i?i:void w("getCategoryForLinkData found a non-string category for "+t+": "+i)},Kd.prototype.getLinkCategoryForData=function(t){return this.ps(t)},Kd.prototype.lp=function(t,i){if(null!==t){var e=this.dj;if(""!==e)if(this.Jc(t)){var n=Rd(t,e);void 0===n&&(n=""),n!==i&&(Ed(t,e,i),Cd(this,"linkCategory",fe,e,t,n,i),"string"==typeof e&&this.La(t,e))}else Ed(t,e,i)}},Kd.prototype.setLinkCategoryForData=function(t,i){this.lp(t,i)},(i=Kd.prototype).lm=function(t,i){md.prototype.lm.call(this,t,i),this.mp(i,this.lh(t))},i.Wj=function(){return!0},i.ri=function(){return!0},i.xs=function(){return!0},i.Xj=function(){return!0},f.Object.defineProperties(Kd.prototype,{archetypeNodeData:{get:function(){return this.Ri},set:function(t){var i=this.Ri;i!==t&&(this.Ri=t,this.g("archetypeNodeData",i,t))}},linkFromKeyProperty:{get:function(){return this.lf},set:function(t){var i=this.lf;i!==t&&(this.lf=t,this.g("linkFromKeyProperty",i,t))}},linkToKeyProperty:{get:function(){return this.mf},set:function(t){var i=this.mf;i!==t&&(this.mf=t,this.g("linkToKeyProperty",i,t))}},linkFromPortIdProperty:{get:function(){return this.ej},set:function(t){var i=this.ej;i!==t&&(this.ej=t,this.g("linkFromPortIdProperty",i,t))}},linkToPortIdProperty:{get:function(){return this.fj},set:function(t){var i=this.fj;i!==t&&(this.fj=t,this.g("linkToPortIdProperty",i,t))}},linkLabelKeysProperty:{get:function(){return this.je},set:function(t){var i=this.je;i!==t&&(this.je=t,this.g("linkLabelKeysProperty",i,t))}},linkDataArray:{get:function(){return this.md},set:function(t){var i=this.md;if(i!==t){this.wb.clear();for(var e=t.length,n=0;n<e;n++){var o=t[n];P(o)||w("GraphLinksModel.linkDataArray must only contain Objects, not: "+o),tt(o)}if(this.md=t,""!==this.linkKeyProperty){for(n=new Z,o=0;o<e;o++){var r=t[o],s=this.Ac(r);void 0===s||null!==this.wb.I(s)?n.add(r):this.wb.add(s,r)}for(n=n.iterator;n.next();)o=n.value,this.Bs(o),void 0!==(r=this.Ac(o))&&this.wb.add(r,o)}for(n=new $,o=0;o<e;o++)n.add(t[o]);for(this.$f=n,Cd(this,"linkDataArray",fe,"linkDataArray",this,i,t),i=0;i<e;i++)ip(this,t[i])}}},linkKeyProperty:{get:function(){return this.Jh},set:function(t){var i=this.Jh;if(i!==t){this.Jh=t,this.wb.clear();for(var e=this.linkDataArray.length,n=0;n<e;n++){var o=this.linkDataArray[n],r=this.Ac(o);void 0===r&&(this.Bs(o),r=this.Ac(o)),void 0!==r&&this.wb.add(r,o)}this.g("linkKeyProperty",i,t)}}},makeUniqueLinkKeyFunction:{get:function(){return this.cl},set:function(t){var i=this.cl;i!==t&&(this.cl=t,this.g("makeUniqueLinkKeyFunction",i,t))}},copyLinkDataFunction:{get:function(){return this.Ak},set:function(t){var i=this.Ak;i!==t&&(this.Ak=t,this.g("copyLinkDataFunction",i,t))}},nodeIsGroupProperty:{get:function(){return this.jl},set:function(t){var i=this.jl;i!==t&&(this.jl=t,this.g("nodeIsGroupProperty",i,t))}},nodeGroupKeyProperty:{get:function(){return this.Je},set:function(t){var i=this.Je;i!==t&&(this.Je=t,this.g("nodeGroupKeyProperty",i,t))}},Ij:{get:function(){return this.Lm},set:function(t){this.Lm!==t&&(this.Lm=t)}},linkCategoryProperty:{get:function(){return this.dj},set:function(t){var i=this.dj;i!==t&&(this.dj=t,this.g("linkCategoryProperty",i,t))}},type:{get:function(){return"GraphLinksModel"}}}),Kd.prototype.setCategoryForLinkData=Kd.prototype.lp,Kd.prototype.getCategoryForLinkData=Kd.prototype.ps,Kd.prototype.assignAllDataProperties=Kd.prototype.Do,Kd.prototype.setGroupKeyForNodeData=Kd.prototype.mp,Kd.prototype.getGroupKeyForNodeData=Kd.prototype.lh,Kd.prototype.isGroupForNodeData=Kd.prototype.Yu,Kd.prototype.copyLinkData=Kd.prototype.Jo,Kd.prototype.mergeLinkDataArray=Kd.prototype.Zz,Kd.prototype.removeLinkDataCollection=Kd.prototype.lA,Kd.prototype.removeLinkData=Kd.prototype.bm,Kd.prototype.addLinkDataCollection=Kd.prototype.Ey,Kd.prototype.addLinkData=Kd.prototype.fi,Kd.prototype.containsLinkData=Kd.prototype.Jc,Kd.prototype.makeLinkDataKeyUnique=Kd.prototype.Bs,Kd.prototype.findLinkDataForKey=Kd.prototype.jh,Kd.prototype.setKeyForLinkData=Kd.prototype.Ks,Kd.prototype.getKeyForLinkData=Kd.prototype.Ac,Kd.prototype.removeLabelKeyForLinkData=Kd.prototype.Qx,Kd.prototype.addLabelKeyForLinkData=Kd.prototype.Bu,Kd.prototype.setLabelKeysForLinkData=Kd.prototype.Ls,Kd.prototype.getLabelKeysForLinkData=Kd.prototype.Ef,Kd.prototype.setToPortIdForLinkData=Kd.prototype.Cv,Kd.prototype.getToPortIdForLinkData=Kd.prototype.Cx,Kd.prototype.setFromPortIdForLinkData=Kd.prototype.xv,Kd.prototype.getFromPortIdForLinkData=Kd.prototype.zx,Kd.prototype.setToKeyForLinkData=Kd.prototype.Bv,Kd.prototype.getToKeyForLinkData=Kd.prototype.Bx,Kd.prototype.setFromKeyForLinkData=Kd.prototype.wv,Kd.prototype.getFromKeyForLinkData=Kd.prototype.yx,Kd.prototype.clear=Kd.prototype.clear;var np=Object.freeze([]);function op(t,i){md.call(this),this.Ke="parent",this.Nm=!1,this.nj="parentLinkCategory",void 0!==t&&(N(t)?this.nodeDataArray=t:i=t),i&&(Object.assign(this,i),t=i.Changed)&&(delete this.Changed,this.Pe(t))}function rp(t){Ff.call(this),this.lw=this.Zm=this.lc=0,this.Wp=360,this.kw=yp,this.Ti=0,this.Zv=new pt,this.Jp=this.me=0,this.Xr=new Fp,this.gt=this.mj=0,this.ty=600,this.eo=NaN,this.Cm=1,this.ro=0,this.ul=360,this.Rb=yp,this.K=wp,this.nd=Lp,this.hd=Yf,this.tf=6,this.Nn=Ap,t&&Object.assign(this,t)}function sp(t,i,e,n,o){var r=t.Wp,s=t.lc;t=t.me,n=n*Math.PI/180,e=e*Math.PI/180;for(var a=i.length,h=0;h<a;h++){var l=n+(o===wp?h*e/(360<=r?a:a-1):-h*e/a),u=i.M(h),c=s*Math.tan(l)/t;c=Math.sqrt((s*s+t*t*c*c)/(1+c*c)),u.centerX=c*Math.cos(l),u.centerY=c*Math.sin(l),u.actualAngle=180*l/Math.PI}}function ap(t,i,e,n){var o=t.lc,r=t.me,s=t.Ti;e=e*Math.PI/180;for(var a=i.length,h=0;h<a;h++){var l=i.M(h),u=i.M(h===a-1?0:h+1),c=r*Math.sin(e);l.centerX=o*Math.cos(e),l.centerY=c,l.actualAngle=180*e/Math.PI,isNaN(l.diameter)&&Op(l,0),isNaN(u.diameter)&&Op(u,0),l=mp(t,o,r,n===wp?e:-e,(l.diameter+u.diameter)/2+s),e+=n===wp?l:-l}}function hp(t,i,e,n){var o=t.lc,r=t.me,s=t.Jp;e=e*Math.PI/180;for(var a=i.length,h=0;h<a;h++){var l=i.M(h);l.centerX=o*Math.cos(e),l.centerY=r*Math.sin(e),l.actualAngle=180*e/Math.PI,l=mp(t,o,r,n===wp?e:-e,s),e+=n===wp?l:-l}}function lp(t,i,e,n,o){var r=t.Wp;if(t.mj=0,t.Xr=new Fp,360>e){for(r=n+(o===wp?r:-r);0>r;)r+=360;180<(r%=360)&&(r-=360),r*=Math.PI/180,t.gt=r,cp(t,i,e,n,o)}else up(t,i,e,n,o);t.Xr.commit(i)}function up(t,i,e,n,o){var r=t.lc,s=t.Ti,a=t.Zm,h=r*Math.cos(n*Math.PI/180),l=t.me*Math.sin(n*Math.PI/180),u=i.Fa();if(3===u.length)u[0].centerX=r,u[0].centerY=0,u[1].centerX=u[0].centerX-u[0].width/2-u[1].width/2-s,u[1].y=u[0].y,u[2].centerX=(u[0].centerX+u[1].centerX)/2,u[2].y=u[0].y-u[2].height-s;else if(4===u.length)u[0].centerX=r,u[0].centerY=0,u[2].centerX=-u[0].centerX,u[2].centerY=u[0].centerY,u[1].centerX=0,u[1].y=Math.min(u[0].y,u[2].y)-u[1].height-s,u[3].centerX=0,u[3].y=Math.max(u[0].y+u[0].height+s,u[2].y+u[2].height+s);else{r=pt.alloc();for(var c=0;c<u.length&&(u[c].centerX=h,u[c].centerY=l,!(c>=u.length-1));c++)fp(t,h,l,u,c,o,r)||dp(t,h,l,u,c,o,r),h=r.x,l=r.y;if(pt.free(r),t.mj++,!(23<t.mj)){h=u[0].centerX,l=u[0].centerY,r=u[u.length-1].centerX,c=u[u.length-1].centerY;var f=Math.abs(h-r)-((u[0].width+u[u.length-1].width)/2+s),d=Math.abs(l-c)-((u[0].height+u[u.length-1].height)/2+s);s=0,1>Math.abs(d)?Math.abs(h-r)<(u[0].width+u[u.length-1].width)/2&&(s=0):s=0<d?d:1>Math.abs(f)?0:f,h=Math.abs(r)>Math.abs(c)?0<r!=l>c:0<c!=h<r,(h=o===wp?h:!h)&&(s=-Math.abs(s),s=Math.min(s,-u[u.length-1].width),s=Math.min(s,-u[u.length-1].height)),t.Xr.compare(s,u),1<Math.abs(s)&&(t.lc=8>t.mj?t.lc-s/(2*Math.PI):5>u.length&&10<s?t.lc/2:t.lc-(0<s?1.7:-2.3),t.me=t.lc*a,up(t,i,e,n,o))}}}function cp(t,i,e,n,o){for(var r=t.lc,s=t.me,a=t.Zm,h=r*Math.cos(n*Math.PI/180),l=s*Math.sin(n*Math.PI/180),u=pt.alloc(),c=i.Fa(),f=0;f<c.length&&(c[f].centerX=h,c[f].centerY=l,!(f>=c.length-1));f++)fp(t,h,l,c,f,o,u)||dp(t,h,l,c,f,o,u),h=u.x,l=u.y;if(pt.free(u),t.mj++,!(23<t.mj)){if(h=Math.atan2(l,h),h=o===wp?t.gt-h:h-t.gt,r=(h=Math.abs(h)<Math.abs(h-2*Math.PI)?h:h-2*Math.PI)*(r+s)/2,s=t.Xr,Math.abs(r)<Math.abs(s.Pl))for(s.Pl=r,s.mk=[],s.tm=[],h=0;h<c.length;h++)s.mk[h]=c[h].bounds.x,s.tm[h]=c[h].bounds.y;1<Math.abs(r)&&(t.lc=8>t.mj?t.lc-r/(2*Math.PI):t.lc-(0<r?1.7:-2.3),t.me=t.lc*a,cp(t,i,e,n,o))}}function fp(t,i,e,n,o,r,s){var a=t.lc,h=t.me,l=0;t=(n[o].width+n[o+1].width)/2+t.Ti;var u=!1;if(0<=e!=(r===wp)){if((r=i+t)>a){if((r=i-t)<-a)return s.x=r,s.y=l,!1;u=!0}}else if((r=i-t)<-a){if((r=i+t)>a)return s.x=r,s.y=l,!1;u=!0}return l=Math.sqrt(1-Math.min(1,r*r/(a*a)))*h,0>e!==u&&(l=-l),Math.abs(e-l)>(n[o].height+n[o+1].height)/2?(s.x=r,s.y=l,!1):(s.x=r,s.y=l,!0)}function dp(t,i,e,n,o,r,s){var a=t.lc,h=t.me,l=0;if(t=(n[o].height+n[o+1].height)/2+t.Ti,n=!1,0<=i!=(r===wp)){if((r=e-t)<-h){if((r=e+t)>h)return s.x=l,void(s.y=r);n=!0}}else if((r=e+t)>h){if((r=e-t)<-h)return s.x=l,void(s.y=r);n=!0}l=Math.sqrt(1-Math.min(1,r*r/(h*h)))*a,0>i!==n&&(l=-l),s.x=l,s.y=r}function pp(t,i,e,n,o){var r=t.ty;if(.001>Math.abs(t.Zm-1))return void 0!==n&&void 0!==o?o*i:2*Math.PI*i;t=i>e?Math.sqrt(i*i-e*e)/i:Math.sqrt(e*e-i*i)/e;for(var s=0,a=void 0!==n&&void 0!==o?o/(r+1):Math.PI/(2*(r+1)),h=0,l=0;l<=r;l++){h=void 0!==n&&void 0!==o?n+l*o/r:l*Math.PI/(2*r);var u=Math.sin(h);s+=Math.sqrt(1-t*t*u*u)*a}return void 0!==n&&void 0!==o?(i>e?i:e)*s:4*(i>e?i:e)*s}function gp(t,i,e,n,o){return i/(void 0!==n&&void 0!==o?pp(t,1,e,n,o):pp(t,1,e))}function mp(t,i,e,n,o){if(.001>Math.abs(t.Zm-1))return o/i;var r=i>e?Math.sqrt(i*i-e*e)/i:Math.sqrt(e*e-i*i)/e,s=0;t=2*Math.PI/(700*t.network.vertexes.count),i>e&&(n+=Math.PI/2);for(var a=0;;a++){var h=Math.sin(n+a*t);if((s+=(i>e?i:e)*Math.sqrt(1-r*r*h*h)*t)>=o)return a*t}}Kd.className="GraphLinksModel",Yd.GraphLinksModel=Kd,md.constructGraphLinksModel=md.constructGraphLinksModel=function(){return new Kd},md.initDiagramModel=Od=function(){return new Kd},c(op,md),op.constructGraphLinksModel=md.constructGraphLinksModel,op.prototype.cloneProtected=function(t){md.prototype.cloneProtected.call(this,t),t.Ke=this.Ke,t.Nm=this.Nm,t.nj=this.nj},(i=op.prototype).toString=function(t){if(void 0===t&&(t=0),2<=t)return this.np();var i=(""!==this.name?this.name:"")+" TreeModel";if(0<t){i+="\n node data:";for(var e=(t=this.nodeDataArray).length,n=0;n<e;n++){var o=t[n];i+=" "+this.wa(o)+":"+D(o)}}return i},i.rm=function(){var t=md.prototype.rm.call(this),i="";return"parent"!==this.nodeParentKeyProperty&&"string"==typeof this.nodeParentKeyProperty&&(i+=',\n "nodeParentKeyProperty": '+this.quote(this.nodeParentKeyProperty)),t+i},i.gp=function(t){md.prototype.gp.call(this,t),t.nodeParentKeyProperty&&(this.nodeParentKeyProperty=t.nodeParentKeyProperty)},i.fp=function(t){void 0!==t.nodeParentKeyProperty&&t.nodeParentKeyProperty!==this.nodeParentKeyProperty&&w("applyIncrementalJson cannot change Model properties"),md.prototype.fp.call(this,t)},i.Vl=function(t){return t},i.mh=function(t){if(null!==t){var i=this.Ke;if(""!==i&&void 0!==(i=Rd(t,i))){if(Td(i))return i;w("ParentKey value for node data "+t+" is not a number or a string: "+i)}}},i.qe=function(t,i){if(null===i&&(i=void 0),null!==t){var e=this.Ke;if(""!==e)if(i=this.Vl(i),this.lb(t)){var n=Rd(t,e);n!==i&&(Fd(this,n,t),Ed(t,e,i),null===this.hc(i)&&jd(this,i,t),Cd(this,"nodeParentKey",fe,e,t,n,i),"string"==typeof e&&this.La(t,e))}else Ed(t,e,i)}},i.ss=function(t){if(null===t)return"";var i=this.nj;return""===i||void 0===(i=Rd(t,i))?"":"string"==typeof i?i:(w("getParentLinkCategoryForNodeData found a non-string category for "+t+": "+i),"")},op.prototype.getLinkCategoryForData=function(t){return this.ss(t)},op.prototype.Ms=function(t,i){if(null!==t){var e=this.nj;if(""!==e)if(this.lb(t)){var n=Rd(t,e);void 0===n&&(n=""),n!==i&&(Ed(t,e,i),Cd(this,"parentLinkCategory",fe,e,t,n,i),"string"==typeof e&&this.La(t,e))}else Ed(t,e,i)}},op.prototype.setLinkCategoryForData=function(t,i){this.Ms(t,i)},op.prototype.copyNodeData=function(t){return null===t?null:(t=md.prototype.copyNodeData.call(this,t),this.Jj||""===this.Ke||void 0===Rd(t,this.Ke)||Ed(t,this.Ke,void 0),t)},op.prototype.setDataProperty=function(t,i,e){if(this.lb(t)){if(i===this.nodeKeyProperty)return void this.km(t,e);if(i===this.nodeCategoryProperty)return void this.jm(t,e);if(i===this.nodeParentKeyProperty)return void this.qe(t,e)}var n=Rd(t,i);n!==e&&(Ed(t,i,e),this.Fs(t,i,n,e))},(i=op.prototype).jp=function(t,i){md.prototype.jp.call(this,t,i);for(var e=this.kb.iterator;e.next();)this.qv(e.value,t,i)},i.qv=function(t,i,e){if(this.mh(t)===i){var n=this.Ke;Ed(t,n,e),Cd(this,"nodeParentKey",fe,n,t,i,e),"string"==typeof n&&this.La(t,n)}},i.fm=function(t){md.prototype.fm.call(this,t);var i=Dd(this,t=this.wa(t));if(null!==i){var e=A();for(i=i.iterator;i.next();){var n=i.value;if(this.lb(n)&&this.mh(n)===t){var o=this.Ke;Cd(this,"nodeParentKey",fe,o,n,t,t),"string"==typeof o&&this.La(n,o),e.push(n)}}for(i=0;i<e.length;i++)Fd(this,t,e[i]);j(e)}},i.em=function(t){md.prototype.em.call(this,t);var i=this.mh(t);i=this.Vl(i),null===this.hc(i)&&jd(this,i,t)},i.qp=function(t){md.prototype.qp.call(this,t),Fd(this,this.mh(t),t)},i.lm=function(t,i){md.prototype.lm.call(this,t,i),this.Ms(i,this.ss(t)),this.qe(i,this.mh(t))},i.Tl=function(){return!0},i.xs=function(){return!0},f.Object.defineProperties(op.prototype,{nodeParentKeyProperty:{get:function(){return this.Ke},set:function(t){var i=this.Ke;i!==t&&(this.Ke=t,this.g("nodeParentKeyProperty",i,t))}},Jj:{get:function(){return this.Nm},set:function(t){this.Nm!==t&&(this.Nm=t)}},parentLinkCategoryProperty:{get:function(){return this.nj},set:function(t){var i=this.nj;i!==t&&(this.nj=t,this.g("parentLinkCategoryProperty",i,t))}},linkCategoryProperty:{get:function(){return this.parentLinkCategoryProperty},set:function(t){this.parentLinkCategoryProperty=t}},type:{get:function(){return"TreeModel"}}}),op.prototype.setParentLinkCategoryForNodeData=op.prototype.Ms,op.prototype.getParentLinkCategoryForNodeData=op.prototype.ss,op.prototype.setParentKeyForNodeData=op.prototype.qe,op.prototype.getParentKeyForNodeData=op.prototype.mh,op.className="TreeModel",Yd.TreeModel=op,c(rp,Ff),rp.prototype.cloneProtected=function(t){Ff.prototype.cloneProtected.call(this,t),t.eo=this.eo,t.Cm=this.Cm,t.ro=this.ro,t.ul=this.ul,t.Rb=this.Rb,t.K=this.K,t.nd=this.nd,t.hd=this.hd,t.tf=this.tf,t.Nn=this.Nn},rp.prototype.qb=function(t){t.classType===rp?t===Cp||t===Tp||t===Pp||t===Np||t===Lp?this.sorting=t:t===Mp||t===Sp||t===wp||t===kp?this.direction=t:t===xp||t===vp||t===yp||t===bp?this.arrangement=t:t!==jp&&t!==Ap||(this.nodeDiameterFormula=t):Ff.prototype.qb.call(this,t)},rp.prototype.createNetwork=function(){return new Dp(this)},rp.prototype.doLayout=function(t){if(null===this.network&&(this.network=this.makeNetwork(t)),this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin),1>=(t=this.network.vertexes).count)1===t.count&&((t=t.first()).centerX=0,t.centerY=0);else{var i=new Z;i.addAll(t.iterator),t=new Z;var e,n,o=new Z,r=this.sort(i),s=this.Jp,a=this.arrangement,h=this.nodeDiameterFormula,l=this.radius;(!isFinite(l)||0>=l)&&(l=NaN);var u=this.aspectRatio;(!isFinite(u)||0>=u)&&(u=1);var c=this.startAngle;isFinite(c)||(c=0);var f=this.sweepAngle;if((!isFinite(f)||360<f||1>f)&&(f=360),i=this.spacing,isFinite(i)||(i=NaN),a===bp&&h===jp?a=yp:a===bp&&h!==jp&&(a=this.arrangement),(this.direction===Mp||this.direction===Sp)&&this.sorting!==Lp){for(h=0;!(h>=r.length)&&(t.add(r.M(h)),!(h+1>=r.length));h+=2)o.add(r.M(h+1));this.direction===Mp?(this.arrangement===bp&&t.reverse(),(r=new Z).addAll(t),r.addAll(o)):(this.arrangement===bp&&o.reverse(),(r=new Z).addAll(o),r.addAll(t))}h=r.length;for(var d=n=e=0;d<r.length;d++){var p=c+f*n*(this.direction===wp?1:-1)/h,g=r.M(d).diameter;isNaN(g)&&(g=Op(r.M(d),p)),360>f&&(0===d||d===r.length-1)&&(g/=2),e+=g,n++}if(isNaN(l)||a===bp){if(isNaN(i)&&(i=6),a!==yp&&a!==bp){for(n=-1/0,s=0;s<h;s++)d=r.M(s),e=r.M(s===h-1?0:s+1),isNaN(d.diameter)&&Op(d,0),isNaN(e.diameter)&&Op(e,0),n=Math.max(n,(d.diameter+e.diameter)/2);s=n+i,l=a===xp?(n+i)/(2*Math.PI/h):gp(this,s*(360<=f?h:h-1),u,c*Math.PI/180,f*Math.PI/180)}else l=gp(this,e+(360<=f?h:h-1)*(a!==bp?i:1.6*i),u,c*Math.PI/180,f*Math.PI/180);n=l*u}else if(d=pp(this,l,n=l*u,c*Math.PI/180,f*Math.PI/180),isNaN(i))a!==yp&&a!==bp||(i=(d-e)/(360<=f?h:h-1));else if(a===yp||a===bp)(d=(d-e)/(360<=f?h:h-1))<i?n=(l=gp(this,e+i*(360<=f?h:h-1),u,c*Math.PI/180,f*Math.PI/180))*u:i=d;else{for(s=-1/0,e=0;e<h;e++)p=r.M(e),g=r.M(e===h-1?0:e+1),isNaN(p.diameter)&&Op(p,0),isNaN(g.diameter)&&Op(g,0),s=Math.max(s,(p.diameter+g.diameter)/2);(e=gp(this,(s+=i)*(360<=f?h:h-1),u,c*Math.PI/180,f*Math.PI/180))>l?n=(l=e)*u:s=d/(360<=f?h:h-1)}if(this.kw=a,this.lc=l,this.Zm=u,this.lw=c,this.Wp=f,this.Ti=i,this.me=n,this.Jp=s,i=r,r=this.kw,a=this.lc,l=this.lw,u=this.Wp,c=this.Ti,f=this.me,h=this.Jp,this.direction!==Mp&&this.direction!==Sp||r!==bp)if(this.direction===Mp||this.direction===Sp){switch(s=0,r){case vp:s=180*mp(this,a,f,l,h)/Math.PI;break;case yp:h=i=0,null!==(s=t.first())&&(i=Op(s,Math.PI/2)),null!==(s=o.first())&&(h=Op(s,Math.PI/2)),s=180*mp(this,a,f,l,c+(i+h)/2)/Math.PI;break;case xp:s=u/i.length}if(this.direction===Mp){switch(r){case vp:hp(this,t,l,kp);break;case yp:ap(this,t,l,kp);break;case xp:sp(this,t,u/2,l,kp)}switch(r){case vp:hp(this,o,l+s,wp);break;case yp:ap(this,o,l+s,wp);break;case xp:sp(this,o,u/2,l+s,wp)}}else{switch(r){case vp:hp(this,o,l,kp);break;case yp:ap(this,o,l,kp);break;case xp:sp(this,o,u/2,l,kp)}switch(r){case vp:hp(this,t,l+s,wp);break;case yp:ap(this,t,l+s,wp);break;case xp:sp(this,t,u/2,l+s,wp)}}}else switch(r){case vp:hp(this,i,l,this.direction);break;case yp:ap(this,i,l,this.direction);break;case xp:sp(this,i,u,l,this.direction);break;case bp:lp(this,i,u,l,this.direction)}else lp(this,i,u,l-u/2,wp)}this.updateParts(),this.network=null,this.isValidLayout=!0},rp.prototype.commitLayout=function(){this.commitNodes(),this.isRouting&&this.commitLinks()},rp.prototype.commitNodes=function(){var t=null!==this.group&&null!==this.group.placeholder&&this.group.isSubGraphExpanded,i=t?this.group.location.copy():null,e=this.actualCenter;t?e=new pt(0,0):(e.x=this.arrangementOrigin.x+this.lc,e.y=this.arrangementOrigin.y+this.me);for(var n=this.network.vertexes.iterator;n.next();){var o=n.value;o.x+=e.x,o.y+=e.y,o.commit()}t&&(this.group.Va(),t=this.group.position.copy(),e=this.group.location.copy(),i=i.re(e.re(t)),this.group.move(i),this.Zv=i.re(t))},rp.prototype.commitLinks=function(){for(var t=this.network.edges.iterator;t.next();)t.value.commit()},rp.prototype.sort=function(t){switch(this.sorting){case Pp:break;case Np:t.reverse();break;case Cp:t.sort(this.comparer);break;case Tp:t.sort(this.comparer),t.reverse();break;case Lp:return this.ak(function(t){for(var i=[],e=0;e<t.length;e++)i.push(0);e=new Z;for(var n=0;n<t.length;n++){var o=-1,r=-1;if(0===n)for(var s=0;s<t.length;s++){var a=t.M(s).edgesCount;a>o&&(o=a,r=s)}else for(s=0;s<t.length;s++)(a=i[s])>o&&(o=a,r=s);for(e.add(t.M(r)),i[r]=-1,s=(r=t.M(r)).sourceEdges;s.next();)0>(o=t.indexOf(s.value.fromVertex))||0<=i[o]&&i[o]++;for(r=r.destinationEdges;r.next();)0>(o=t.indexOf(r.value.toVertex))||0<=i[o]&&i[o]++}return e}(t));default:w("Invalid sorting type.")}return t},rp.prototype.ak=function(t){for(var i=[],e=0;e<t.length;e++){var n=t.M(e);i[e]=[];for(var o,r=n.destinationEdges;r.next();)(o=t.indexOf(r.value.toVertex))!==e&&0>i[e].indexOf(o)&&i[e].push(o);for(n=n.sourceEdges;n.next();)(o=t.indexOf(n.value.fromVertex))!==e&&0>i[e].indexOf(o)&&i[e].push(o)}for(r=[],e=0;e<i.length;e++)r[e]=0;e=[];var s=[],a=[];n=[],o=new Z;for(var h=0,l=0;l<i.length;l++){var u=i[l].length;if(1===u)n.push(l);else if(0===u)o.add(t.M(l));else{if(0===h)e.push(l);else{for(var c=u=1/0,f=-1,d=[],p=0;p<e.length;p++)0>i[e[p]].indexOf(e[p===e.length-1?0:p+1])&&d.push(p===e.length-1?0:p+1);if(0===d.length)for(p=0;p<e.length;p++)d.push(p);for(p=0;p<d.length;p++){for(var g=d[p],m=i[l],y=0,v=0;v<s.length;v++){var x=r[s[v]],b=r[a[v]];if(x<b){var w=x;x=b}else w=b;if(w<g&&g<=x)for(b=0;b<m.length;b++){var k=m[b];0>e.indexOf(k)||w<r[k]&&r[k]<x||w===r[k]||x===r[k]||y++}else for(b=0;b<m.length;b++)k=m[b],0>e.indexOf(k)||w<r[k]&&r[k]<x&&w!==r[k]&&x!==r[k]&&y++}for(m=y,v=y=0;v<i[l].length;v++)0<=(w=e.indexOf(i[l][v]))&&(y+=(w=Math.abs(g-(w>=g?w+1:w)))<e.length+1-w?w:e.length+1-w);for(v=0;v<s.length;v++)(w=r[s[v]])>=g&&w++,(x=r[a[v]])>=g&&x++,w>x&&(b=x,x=w,w=b),x-w<(e.length+2)/2==(w<g&&g<=x)&&y++;(m<u||m===u&&y<c)&&(u=m,c=y,f=g)}for(e.splice(f,0,l),u=0;u<e.length;u++)r[e[u]]=u;for(u=0;u<i[l].length;u++)c=i[l][u],0<=e.indexOf(c)&&(s.push(l),a.push(c))}h++}}for(s=e.length;;){for(r=!0,a=0;a<n.length;a++)if(l=i[h=n[a]][0],0<=(u=e.indexOf(l))){for(f=c=0;f<i[l].length;f++)0>(d=e.indexOf(i[l][f]))||d===u||(c+=d<u!=(p=d>u?d-u:u-d)>s-p?1:-1);e.splice(0>c?u:u+1,0,h),n.splice(a,1),a--}else r=!1;if(r)break;e.push(n[0]),n.splice(0,1)}for(i=0;i<e.length;i++)o.add(t.M(e[i]));return o},f.Object.defineProperties(rp.prototype,{radius:{get:function(){return this.eo},set:function(t){this.eo!==t&&(0<t||isNaN(t))&&(this.eo=t,this.C())}},aspectRatio:{get:function(){return this.Cm},set:function(t){this.Cm!==t&&0<t&&(this.Cm=t,this.C())}},startAngle:{get:function(){return this.ro},set:function(t){this.ro!==t&&(this.ro=t,this.C())}},sweepAngle:{get:function(){return this.ul},set:function(t){this.ul!==t&&(this.ul=0<t&&360>=t?t:360,this.C())}},arrangement:{get:function(){return this.Rb},set:function(t){this.Rb===t||t!==bp&&t!==yp&&t!==vp&&t!==xp||(this.Rb=t,this.C())}},direction:{get:function(){return this.K},set:function(t){this.K===t||t!==wp&&t!==kp&&t!==Mp&&t!==Sp||(this.K=t,this.C())}},sorting:{get:function(){return this.nd},set:function(t){this.nd===t||t!==Pp&&t!==Np&&t!==Cp&&!Tp&&t!==Lp||(this.nd=t,this.C())}},comparer:{get:function(){return this.hd},set:function(t){this.hd!==t&&(this.hd=t,this.C())}},spacing:{get:function(){return this.tf},set:function(t){this.tf!==t&&(this.tf=t,this.C())}},nodeDiameterFormula:{get:function(){return this.Nn},set:function(t){this.Nn===t||t!==Ap&&t!==jp||(this.Nn=t,this.C())}},actualXRadius:{get:function(){return this.lc}},actualYRadius:{get:function(){return this.me}},actualSpacing:{get:function(){return this.Ti}},actualCenter:{get:function(){return this.Zv}}});var yp=new V(rp,"ConstantSpacing",0),vp=new V(rp,"ConstantDistance",1),xp=new V(rp,"ConstantAngle",2),bp=new V(rp,"Packed",3),wp=new V(rp,"Clockwise",4),kp=new V(rp,"Counterclockwise",5),Mp=new V(rp,"BidirectionalLeft",6),Sp=new V(rp,"BidirectionalRight",7),Pp=new V(rp,"Forwards",8),Np=new V(rp,"Reverse",9),Cp=new V(rp,"Ascending",10),Tp=new V(rp,"Descending",11),Lp=new V(rp,"Optimized",12),Ap=new V(rp,"Pythagorean",13),jp=new V(rp,"Circular",14);function Fp(){this.Pl=-1/0,this.tm=this.mk=null}function Dp(t){Of.call(this,t)}function Bp(t){Vf.call(this,t),this.u=this.Si=NaN}function Op(t,i){var e=t.network;if(null===e)return NaN;if(null===(e=e.layout))return NaN;if(e.arrangement===bp)if(e.nodeDiameterFormula===jp)t.Si=Math.max(t.width,t.height);else{if(e=Math.abs(Math.sin(i)),i=Math.abs(Math.cos(i)),0===e)return t.width;if(0===i)return t.height;t.Si=Math.min(t.height/e,t.width/i)}else t.Si=e.nodeDiameterFormula===jp?Math.max(t.width,t.height):Math.sqrt(t.width*t.width+t.height*t.height);return t.Si}function Ip(t){Gf.call(this,t)}function zp(t){Ff.call(this),this.ah=null,this.An=0,this.$d=new At(100,100).freeze(),this.Bm=!1,this.sf=!0,this.td=!1,this.dl=100,this.$m=1,this.Zf=1e3,this.In=10,this.fo=Math,this.Hk=.05,this.Gk=50,this.Ek=150,this.Fk=0,this.Vm=10,this.Um=5,t&&Object.assign(this,t)}function Rp(t,i,e){if(function(t,i){if(10<i||3>t.network.vertexes.count)return!1;for(t.ah=t.network.vertexes.Fa(),(t=t.ah).sort((function(t,i){return null===t||null===i||t===i?0:i.Vd-t.Vd})),i=t.length-1;0<=i&&1>=t[i].Vd;)i--;return 1<t.length-i}(t,i)){var n=t.Zf;t.Zf*=1+1/(i+1);var o=function(t,i){for(var e=t.network,n=new qp(t),o=0;o<t.ah.length;o++){var r=t.ah[o];if(!(1<r.Vd))break;n.dh(r);var s=new Up;s.Rs=r.Vd,s.Ss=r.width,s.Qs=r.height,s.Sv=r.focus.x,s.Tv=r.focus.y,null===r.We&&(r.We=new Z),r.We.add(s),r.sv=r.We.count-1}for(r=e.edges.iterator;r.next();){var a=r.value;o=a.fromVertex,s=a.toVertex,o.network===n&&s.network===n?n.Bo(a):o.network===n?(null===(a=o.Hj)&&(a=new Z,o.Hj=a),a.add(s),o.Vd--,o.sh+=s.sh):s.network===n&&(null===(a=s.Hj)&&(a=new Z,s.Hj=a),a.add(o),s.Vd--,s.sh+=o.sh)}for(o=n.edges.iterator;o.next();)(r=o.value).length*=Math.max(1,Xi.sqrt((r.fromVertex.sh+r.toVertex.sh)/(4*i+1)));for(i=n.vertexes.iterator;i.next();){var h=(o=i.value).Hj;if(null!==h&&0<h.count&&!(0>=(s=o.We.M(o.We.count-1).Rs-o.Vd))){for(var l=a=0,u=h.count-s;u<h.count;u++){var c=h.M(u),f=null;for(r=c.edges.iterator;r.next();){var d=r.value;if(d.Ax(c)===o){f=d;break}}null!==f&&(l+=f.length,a+=c.width*c.height)}r=o.centerX,h=o.centerY,u=o.width,c=o.height,f=o.focus,1>(d=u*c)&&(d=1),s=((a=Xi.sqrt((a+d+l*l*4/(s*s))/d))-1)*u/2,a=(a-1)*c/2,o.bounds=new Bt(r-f.x-s,h-f.y-a,u+2*s,c+2*a),o.focus=new pt(f.x+s,f.y+a)}}return t.network=n,e}(t,i),r=Math.max(0,Math.max(Math.min(t.network.vertexes.count,e*(i+1)/11),10));for(t.maxIterations+=r,Rp(t,i+1,e),Gp(t,r),function(t,i){for(var e=t.network.vertexes.iterator;e.next();){var n=e.value;if(n.network=i,null!==n.We){var o=n.We.M(n.sv);n.Vd=o.Rs;var r=o.Sv,s=o.Tv;n.bounds=new Bt(n.centerX-r,n.centerY-s,o.Ss,o.Qs),n.focus=new pt(r,s),n.sv--}}for(e=t.network.edges.iterator;e.next();)e.value.network=i;t.network=i}(t,o),(i=o.vertexes.Fa()).sort((function(t,i){return null===t||null===i||t===i?0:i.Vd-t.Vd})),e=0;e<i.length;e++)Ep(t,i[e]);t.Zf=n}}function Ep(t,i){var e=i.Hj;if(null!==e&&0!==e.count){var n=i.centerX,o=i.centerY,r=i.width,s=i.height;null!==i.We&&0<i.We.count&&(r=(s=i.We.M(0)).Ss,s=s.Qs),r=Xi.sqrt(r*r+s*s)/2;for(var a=!1,h=s=0,l=0,u=i.vertexes.iterator;u.next();){var c=u.value;1>=c.Vd?h++:(a=!0,l++,s+=Math.atan2(i.centerY-c.centerY,i.centerX-c.centerX))}if(0!==h)for(0<l&&(s/=l),l=i=0,i=a?2*Math.PI/(h+1):2*Math.PI/h,0==h%2&&(l=i/2),1<e.count&&e.sort((function(t,i){return null===t||null===i||t===i?0:i.width*i.height-t.width*t.height})),a=0==h%2?0:1,e=e.iterator;e.next();)if(!(1<(h=e.value).Vd||t.isFixed(h))){for(u=null,c=h.edges.iterator;c.next();){u=c.value;break}c=h.width;var f=h.height;c=Xi.sqrt(c*c+f*f)/2,u=r+u.length+c,c=s+(i*(a/2>>1)+l)*(0==a%2?1:-1),h.centerX=n+u*Math.cos(c),h.centerY=o+u*Math.sin(c),a++}}}function Vp(t,i,e,n,o,r,s){var a=9e19,h=-1,l=0;t:for(;l<i;l++){var u=t[l],c=u.x-e,f=u.y-n;if((c=c*c+f*f)<a){for(f=l-1;0<=f;f--)if(t[f].y>u.y&&t[f].x-u.x<o+s.width)continue t;for(f=l+1;f<i;f++)if(t[f].x>u.x&&t[f].y-u.y<r+s.height)continue t;h=l,a=c}}return h}function Yp(t,i){var e=t.bounds,n=e.x;t=e.y;var o=e.width;e=e.height;var r=i.bounds,s=r.x;i=r.y;var a=r.width;return r=r.height,n+o<s?t>i+r?(e=n+o-s,t=t-i-r,Xi.sqrt(e*e+t*t)):t+e<i?(n=n+o-s,t=t+e-i,Xi.sqrt(n*n+t*t)):s-(n+o):n>s+a?t>i+r?(e=n-s-a,t=t-i-r,Xi.sqrt(e*e+t*t)):t+e<i?(n=n-s-a,t=t+e-i,Xi.sqrt(n*n+t*t)):n-(s+a):t>i+r?t-(i+r):t+e<i?i-(t+e):.1}function Gp(t,i){for(t.ah=null,i=t.An+i;t.An<i&&(t.An++,Xp(t)););t.ah=null}function Xp(t){null===t.ah&&(t.ah=t.network.vertexes.Fa());var i=t.ah;if(0>=i.length)return!1;var e=i[0];e.forceX=0,e.forceY=0;for(var n=e.centerX,o=n,r=e=e.centerY,s=1;s<i.length;s++){var a=i[s];a.forceX=0,a.forceY=0;var h=a.centerX;a=a.centerY,n=Math.min(n,h),o=Math.max(o,h),e=Math.min(e,a),r=Math.max(r,a)}(o=o-n>r-e)?i.sort((function(t,i){return null===t||null===i||t===i?0:t.centerX-i.centerX})):i.sort((function(t,i){return null===t||null===i||t===i?0:t.centerY-i.centerY})),e=t.Zf;var l=n=a=0;for(r=0;r<i.length;r++){n=(s=i[r]).bounds,a=s.focus,h=n.x+a.x;var u=n.y+a.y;n=s.charge*t.electricalFieldX(h,u),l=s.charge*t.electricalFieldY(h,u),n+=s.mass*t.gravitationalFieldX(h,u),l+=s.mass*t.gravitationalFieldY(h,u),s.forceX+=n,s.forceY+=l;for(var c=r+1;c<i.length;c++){var f=i[c];if(f!==s){n=f.bounds,a=f.focus,l=n.x+a.x;var d=n.y+a.y;if(h-l>e||l-h>e){if(o)break}else if(u-d>e||d-u>e){if(!o)break}else{var p=Yp(s,f);1>p?(null===(n=t.randomNumberGenerator)&&(t.randomNumberGenerator=n=new Wp),p=n.random(),a=n.random(),h>l?n=(1+(n=Math.abs(f.bounds.right-s.bounds.x)))*p:h<l?n=-(1+(n=Math.abs(f.bounds.x-s.bounds.right)))*p:n=(1+(n=Math.max(f.width,s.width)))*p-n/2,u>d?l=(1+(l=Math.abs(f.bounds.bottom-s.bounds.y)))*a:h<l?l=-(1+(l=Math.abs(f.bounds.y-s.bounds.bottom)))*a:l=(1+(l=Math.max(f.height,s.height)))*a-l/2):(n=(l-h)/p*(a=-s.charge*f.charge/(p*p)),l=(d-u)/p*a),s.forceX+=n,s.forceY+=l,f.forceX-=n,f.forceY-=l}}}}for(o=t.network.edges.iterator;o.next();)e=(a=o.value).fromVertex,r=a.toVertex,s=e.bounds,h=e.focus,n=s.x+h.x,s=s.y+h.y,u=r.bounds,c=r.focus,h=u.x+c.x,u=u.y+c.y,1>(c=Yp(e,r))?(null===(c=t.randomNumberGenerator)&&(t.randomNumberGenerator=c=new Wp),a=c.random(),c=c.random(),n=(n>h?1:-1)*(1+(r.width>e.width?r.width:e.width))*a,l=(s>u?1:-1)*(1+(r.height>e.height?r.height:e.height))*c):(n=(h-n)/c*(a=a.stiffness*(c-a.length)),l=(u-s)/c*a),e.forceX+=n,e.forceY+=l,r.forceX-=n,r.forceY-=l;for(o=n=0;o<i.length;o++)e=i[o],t.isFixed(e)?t.moveFixedVertex(e):n=Math.max(n,t.moveVertex(e)||0);return n>t.epsilonDistance*t.epsilonDistance}function Up(){this.Tv=this.Sv=this.Qs=this.Ss=this.Rs=0}function qp(t){Of.call(this,t)}function Hp(t){Vf.call(this,t),this.ia=!1,this.Ha=this.u=NaN,this.sh=this.Vd=this.V=this.F=0,this.We=this.Hj=null,this.sv=0}function Kp(t){Gf.call(this,t),this.j=this.o=NaN}function Wp(){var t=0;void 0===t&&(t=42),this.seed=t,this.ay=48271,this.ey=2147483647,this.Q=44488.07041494893,this.gy=3399,this.by=1/2147483647,this.random()}function Jp(t){Ff.call(this),this.kc=this.ie=25,this.K=0,this.Dk=Fg,this.Zk=Og,this.Qk=Rg,this.bj=4,this.rk=Gg,this.bg=15,this.sf=!0,this.Cn=4,this.Ra=this.Iq=this.Ia=-1,this.Md=this.Hn=0,this.Ta=this.Kd=this.Ld=this.he=this.tc=null,this.Kn=0,this.Jn=this.kj=null,this.le=0,this.fl=null,this.Rf=new pt,this.He=[],this.He.length=100,this.xw=this.ve=0,t&&Object.assign(this,t)}function Zp(t){var i=t.fromVertex.node||t.fromVertex.data;return t=t.toVertex.node||t.toVertex.data,null===i&&null===t?8:null===i||null===t?4:1}function _p(t){null===t.kj&&(t.kj=[]);for(var i=0,e=t.network.vertexes.iterator;e.next();){var n=e.value;t.kj[i]=n.layer,i++,t.kj[i]=n.column,i++,t.kj[i]=n.index,i++}return t.kj}function $p(t,i){var e=0;for(t=t.network.vertexes.iterator;t.next();){var n=t.value;n.layer=i[e],e++,n.column=i[e],e++,n.index=i[e],e++}}function Qp(t,i,e){var n=Ag(t,i),o=t.tc[i];(null===t.Jn||t.Jn.length<o*o)&&(t.Jn=[]);for(var r=t.Jn,s=0;s<o;s++){var a,h=0,l=n[s],u=l.near;if(null!==u&&u.layer===l.layer)if((l=u.index)>s)for(var c=s+1;c<l;c++){var f=n[c];f.near===u&&f.Dj===u.Dj||h++}else for(c=s-1;c>l;c--)(f=n[c]).near===u&&f.Dj===u.Dj||h++;if(0<=e)for(l=n[s].sourceEdgesArrayAccess,u=0;u<l.length;u++){var d=l[u];if(d.valid&&d.fromVertex.layer!==i)for(f=d.fromVertex.index,c=d.portToPos,d=d.portFromPos,a=u+1;a<l.length;a++){var p=l[a];if(p.valid&&p.fromVertex.layer!==i){var g=p.fromVertex.index,m=p.portToPos;p=p.portFromPos,c<m&&(f>g||f===g&&d>p)&&h++,m<c&&(g>f||g===f&&p>d)&&h++}}}if(0>=e)for(l=n[s].destinationEdgesArrayAccess,u=0;u<l.length;u++)if((d=l[u]).valid&&d.toVertex.layer!==i)for(f=d.toVertex.index,c=d.portToPos,d=d.portFromPos,a=u+1;a<l.length;a++)(p=l[a]).valid&&p.toVertex.layer!==i&&(g=p.toVertex.index,m=p.portToPos,d<(p=p.portFromPos)&&(f>g||f===g&&c>m)&&h++,p<d&&(g>f||g===f&&m>c)&&h++);for(r[s*o+s]=h,l=s+1;l<o;l++){var y=0,v=0;if(0<=e){h=n[s].sourceEdgesArrayAccess;var x=n[l].sourceEdgesArrayAccess;for(u=0;u<h.length;u++)if((d=h[u]).valid&&d.fromVertex.layer!==i)for(f=d.fromVertex.index,d=d.portFromPos,a=0;a<x.length;a++)(p=x[a]).valid&&p.fromVertex.layer!==i&&(g=p.fromVertex.index,p=p.portFromPos,(f<g||f===g&&d<p)&&v++,(g<f||g===f&&p<d)&&y++)}if(0>=e)for(h=n[s].destinationEdgesArrayAccess,x=n[l].destinationEdgesArrayAccess,u=0;u<h.length;u++)if((d=h[u]).valid&&d.toVertex.layer!==i)for(f=d.toVertex.index,c=d.portToPos,a=0;a<x.length;a++)(p=x[a]).valid&&p.toVertex.layer!==i&&(g=p.toVertex.index,m=p.portToPos,(f<g||f===g&&c<m)&&v++,(g<f||g===f&&m<c)&&y++);r[s*o+l]=y,r[l*o+s]=v}}return jg(t,i,n),r}function tg(t){for(var i=0,e=0;e<=t.Ia;e++){for(var n=t,o=e,r=Ag(n,o),s=n.tc[o],a=0,h=0;h<s;h++){var l=r[h].destinationEdgesArrayAccess;if(null!==l)for(var u=0;u<l.length;u++){var c=l[u];if(c.valid&&c.toVertex.layer!==o){var f=c.fromVertex.column+c.portFromColOffset,d=c.toVertex.column+c.portToColOffset;a+=(Math.abs(f-d)+1)*Zp(c)}}}jg(n,o,r),i+=a}return i}function ig(t,i,e){for(var n=Ag(t,i),o=t.tc[i],r=[],s=0;s<o;s++){var a=n[s],h=null;0>=e&&(h=a.sourceEdgesArrayAccess);var l=null;0<=e&&(l=a.destinationEdgesArrayAccess);var u=0,c=0,f=a.near;if(null!==f&&f.layer===a.layer&&(u+=f.column-1,c++),null!==h)for(f=0;f<h.length;f++){var d=(a=h[f]).fromVertex;a.valid&&!a.rev&&d.layer!==i&&(u+=d.column,c++)}if(null!==l)for(h=0;h<l.length;h++)f=(a=l[h]).toVertex,a.valid&&!a.rev&&f.layer!==i&&(u+=f.column,c++);r[s]=0===c?-1:u/c}return jg(t,i,n),r}function eg(t,i,e){for(var n=Ag(t,i),o=t.tc[i],r=[],s=0;s<o;s++){var a=n[s],h=null;0>=e&&(h=a.sourceEdgesArrayAccess);var l=null;0<=e&&(l=a.destinationEdgesArrayAccess);var u=0,c=[],f=a.near;if(null!==f&&f.layer===a.layer&&(c[u]=f.column-1,u++),a=void 0,null!==h)for(f=0;f<h.length;f++){var d=(a=h[f]).fromVertex;a.valid&&!a.rev&&d.layer!==i&&(c[u]=d.column+a.portFromColOffset,u++)}if(null!==l)for(h=0;h<l.length;h++)f=(a=l[h]).toVertex,a.valid&&!a.rev&&f.layer!==i&&(c[u]=f.column+a.portToColOffset,u++);0===u?r[s]=-1:(c.sort((function(t,i){return t-i})),l=u>>1,r[s]=0!=(1&u)?c[l]:c[l-1]+c[l]>>1)}return jg(t,i,n),r}function ng(t,i,e,n,o,r){if(i.component===n){if(i.component=e,o)for(var s=i.destinationEdges;s.next();){var a=s.value,h=a.toVertex,l=i.layer-h.layer;l===(a=t.linkMinLength(a))&&ng(t,h,e,n,o,r)}if(r)for(s=i.sourceEdges;s.next();)(l=(h=(a=s.value).fromVertex).layer-i.layer)===(a=t.linkMinLength(a))&&ng(t,h,e,n,o,r)}}function og(t,i,e,n,o,r){if(i.component===n){if(i.component=e,o)for(var s=i.destinationEdges;s.next();)og(t,s.value.toVertex,e,n,o,r);if(r)for(i=i.sourceEdges;i.next();)og(t,i.value.fromVertex,e,n,o,r)}}function rg(t){for(t=t.vertexes.iterator;t.next();){var i=t.value;if(i.valid)return i}return null}function sg(t){for(t=t.vertexes.iterator;t.next();){var i=t.value;if(i.valid){for(var e=!0,n=i.destinationEdges;n.next();)if(n.value.toVertex.valid){e=!1;break}if(e)return i}}return null}function ag(t){for(t=t.vertexes.iterator;t.next();){var i=t.value;if(i.valid){for(var e=!0,n=i.sourceEdges;n.next();)if(n.value.fromVertex.valid){e=!1;break}if(e)return i}}return null}function hg(t,i){i.Ll=t.Kn,t.Kn++;for(var e=i.destinationEdges;e.next();){var n=e.value,o=n.toVertex;-1===o.Ll&&(n.forest=!0,hg(t,o))}i.finish=t.Kn,t.Kn++}function lg(t){for(var i=t.network.vertexes.iterator;i.next();){var e=ug(t,i.value);t.Ia=Math.max(e,t.Ia)}}function ug(t,i){var e=0;if(-1===i.layer){for(var n=i.destinationEdges;n.next();){var o=n.value,r=o.toVertex;o=t.linkMinLength(o),e=Math.max(e,ug(t,r)+o)}i.layer=e}else e=i.layer;return e}function cg(t,i){var e=0;if(-1===i.layer){for(var n=i.sourceEdges;n.next();){var o=n.value,r=o.fromVertex;o=t.linkMinLength(o),e=Math.max(e,cg(t,r)+o)}i.layer=e}else e=i.layer;return e}function fg(t,i){if(!i.valid){i.valid=!0;for(var e=i.destinationEdges;e.next();)fg(t,e.value.toVertex);for(e=t.network.vertexes.iterator;e.next();)e.value.component=-1;for(var n=i.sourceEdgesArrayAccess,o=n.length,r=0;r<o;r++){var s=n[r],a=s.fromVertex,h=s.toVertex;s=t.linkMinLength(s),a.layer-h.layer>s&&ng(t,a,0,-1,!0,!1)}for(ng(t,i,1,-1,!0,!0);0!==i.component;){for(r=0,n=1/0,a=0,h=null,s=t.network.vertexes.iterator;s.next();){var l=s.value;if(1===l.component){var u=0,c=!1,f=l.sourceEdgesArrayAccess;o=f.length;for(var d=0;d<o;d++){var p=f[d],g=p.fromVertex;u+=1,1!==g.component&&(r+=1,g=g.layer-l.layer,p=t.linkMinLength(p),n=Math.min(n,g-p))}for(o=(f=l.destinationEdgesArrayAccess).length,d=0;d<o;d++)--u,1!==(p=f[d].toVertex).component?--r:c=!0;(null===h||u<a)&&!c&&(h=l,a=u)}}if(0<r){for(e.reset();e.next();)1===(o=e.value).component&&(o.layer+=n);i.component=0}else h.component=0}for(e=t.network.vertexes.iterator;e.next();)e.value.component=-1;for(ng(t,i,1,-1,!0,!1);0!==i.component;){for(n=0,o=1/0,r=0,a=null,h=t.network.vertexes.iterator;h.next();)if(1===(s=h.value).component){for(l=0,u=!1,c=(f=s.sourceEdgesArrayAccess).length,d=0;d<c;d++)l+=1,1!==(p=f[d].fromVertex).component?n+=1:u=!0;for(c=(f=s.destinationEdgesArrayAccess).length,d=0;d<c;d++)--l,1!==(g=(p=f[d]).toVertex).component&&(--n,g=s.layer-g.layer,p=t.linkMinLength(p),o=Math.min(o,g-p));(null===a||l>r)&&!u&&(a=s,r=l)}if(0>n){for(e.reset();e.next();)1===(n=e.value).component&&(n.layer-=o);i.component=0}else a.component=0}}}function dg(t,i,e){return 90===t.K?e&&!i.rev||!e&&i.rev?270:90:180===t.K?e&&!i.rev||!e&&i.rev?0:180:270===t.K?e&&!i.rev||!e&&i.rev?90:270:e&&!i.rev||!e&&i.rev?180:0}function pg(t,i){var e=i.layer;for(i.index=t.tc[e],t.tc[e]++,i=i.destinationEdgesArrayAccess,e=!0;e;){e=!1;for(var n=0;n<i.length-1;n++){var o=i[n],r=i[n+1];o.portFromColOffset>r.portFromColOffset&&(e=!0,i[n]=r,i[n+1]=o)}}for(e=0;e<i.length;e++)(n=i[e]).valid&&(-1===(n=n.toVertex).index&&pg(t,n))}function gg(t,i){var e=i.layer;i.index=t.tc[e],t.tc[e]++,i=i.sourceEdgesArrayAccess;for(var n=!0;n;)for(n=!1,e=0;e<i.length-1;e++){var o=i[e],r=i[e+1];o.portToColOffset>r.portToColOffset&&(n=!0,i[e]=r,i[e+1]=o)}for(e=0;e<i.length;e++)(n=i[e]).valid&&(-1===(n=n.fromVertex).index&&gg(t,n))}function mg(t,i,e){var n=Ag(t,i),o=t.tc[i],r=eg(t,i,e),s=ig(t,i,e);for(e=0;e<o;e++)-1===s[e]&&(s[e]=n[e].column),-1===r[e]&&(r[e]=n[e].column);for(var a,h=!0;h;)for(h=!1,e=0;e<o-1;e++)(r[e+1]<r[e]||r[e+1]===r[e]&&s[e+1]<s[e])&&(h=!0,a=r[e],r[e]=r[e+1],r[e+1]=a,a=s[e],s[e]=s[e+1],s[e+1]=a,a=n[e],n[e]=n[e+1],n[e+1]=a);for(e=r=0;e<o;e++)(a=n[e]).index=e,r+=t.nodeMinColumnSpace(a,!0),a.column=r,r+=1,r+=t.nodeMinColumnSpace(a,!1);jg(t,i,n)}function yg(t,i,e){var n,o=Ag(t,i),r=t.tc[i];e=Qp(t,i,e);var s=[];for(n=0;n<r;n++)s[n]=-1;var a=[];for(n=0;n<r;n++)a[n]=-1;for(var h=!1,l=!0;l;)for(l=!1,n=0;n<r-1;n++){var u=e[o[n].index*r+o[n+1].index],c=e[o[n+1].index*r+o[n].index],f=0,d=0,p=o[n].column,g=o[n+1].column,m=t.nodeMinColumnSpace(o[n],!0),y=t.nodeMinColumnSpace(o[n],!1),v=t.nodeMinColumnSpace(o[n+1],!0),x=t.nodeMinColumnSpace(o[n+1],!1);m=p-m+v,y=g-y+x;var b=o[n].sourceEdges.iterator;for(b.reset();b.next();)if(x=(v=b.value).fromVertex,v.valid&&x.layer===i){for(v=0;o[v]!==x;)v++;v<n&&(f+=2*(n-v),d+=2*(n+1-v)),v===n+1&&(f+=1),v>n+1&&(f+=4*(v-n),d+=4*(v-(n+1)))}for((b=o[n].destinationEdges.iterator).reset();b.next();)if(x=(v=b.value).toVertex,v.valid&&x.layer===i){for(v=0;o[v]!==x;)v++;v===n+1&&(d+=1)}for((b=o[n+1].sourceEdges.iterator).reset();b.next();)if(x=(v=b.value).fromVertex,v.valid&&x.layer===i){for(v=0;o[v]!==x;)v++;v<n&&(f+=2*(n+1-v),d+=2*(n-v)),v===n&&(d+=1),v>n+1&&(f+=4*(v-(n+1)),d+=4*(v-n))}for((b=o[n+1].destinationEdges.iterator).reset();b.next();)if(x=(v=b.value).toVertex,v.valid&&x.layer===i){for(v=0;o[v]!==x;)v++;v===n&&(f+=1)}v=x=0,b=s[o[n].index];var w=a[o[n].index],k=s[o[n+1].index],M=a[o[n+1].index];-1!==b&&(x+=Math.abs(b-p),v+=Math.abs(b-y)),-1!==w&&(x+=Math.abs(w-p),v+=Math.abs(w-y)),-1!==k&&(x+=Math.abs(k-g),v+=Math.abs(k-m)),-1!==M&&(x+=Math.abs(M-g),v+=Math.abs(M-m)),(d<f-.5||d===f&&c<u-.5||d===f&&c===u&&v<x-.5)&&(l=h=!0,o[n].column=y,o[n+1].column=m,u=o[n],o[n]=o[n+1],o[n+1]=u)}for(n=0;n<r;n++)o[n].index=n;return jg(t,i,o),h}function vg(t,i,e){for(var n=!1;xg(t,i,e);)n=!0;return n}function xg(t,i,e){var n,o=Ag(t,i),r=t.tc[i],s=ig(t,i,-1);if(0<e)for(n=0;n<r;n++)s[n]=-1;var a=ig(t,i,1);if(0>e)for(n=0;n<r;n++)a[n]=-1;for(var h=!1,l=!0;l;)for(l=!1,n=0;n<r;n++){var u=o[n].column,c=t.nodeMinColumnSpace(o[n],!0),f=t.nodeMinColumnSpace(o[n],!1),d=0;d=0>n-1||u-o[n-1].column-1>c+t.nodeMinColumnSpace(o[n-1],!1)?u-1:u,c=n+1>=r||o[n+1].column-u-1>f+t.nodeMinColumnSpace(o[n+1],!0)?u+1:u;var p=f=0,g=0;if(0>=e)for(var m=o[n].sourceEdges.iterator;m.next();){var y=m.value,v=y.fromVertex;if(y.valid&&v.layer!==i){var x=Zp(y),b=y.portFromColOffset;y=y.portToColOffset,v=v.column,f+=(Math.abs(u+y-(v+b))+1)*x,p+=(Math.abs(d+y-(v+b))+1)*x,g+=(Math.abs(c+y-(v+b))+1)*x}}if(0<=e)for(m=o[n].destinationEdges.iterator;m.next();)v=(y=m.value).toVertex,y.valid&&v.layer!==i&&(x=Zp(y),b=y.portFromColOffset,y=y.portToColOffset,v=v.column,f+=(Math.abs(u+b-(v+y))+1)*x,p+=(Math.abs(d+b-(v+y))+1)*x,g+=(Math.abs(c+b-(v+y))+1)*x);y=b=x=0,m=s[o[n].index],v=a[o[n].index],-1!==m&&(x+=Math.abs(m-u),b+=Math.abs(m-d),y+=Math.abs(m-c)),-1!==v&&(x+=Math.abs(v-u),b+=Math.abs(v-d),y+=Math.abs(v-c)),p<f||p===f&&b<x?(l=h=!0,o[n].column=d):(g<f||g===f&&y<x)&&(l=h=!0,o[n].column=c)}return jg(t,i,o),t.normalize(),h}function bg(t,i,e){var n=Ag(t,i),o=t.tc[i],r=eg(t,i,e),s=[];for(e=0;e<o;e++)s[e]=r[e];for(r=!0;r;)for(r=!1,e=0;e<o;e++){var a=n[e].column,h=t.nodeMinColumnSpace(n[e],!0),l=t.nodeMinColumnSpace(n[e],!1),u=0;if(-1===s[e])if(0===e&&e===o-1)u=a;else if(0===e){var c=n[e+1].column;u=c-a===l+t.nodeMinColumnSpace(n[e+1],!0)?a-1:a}else e===o-1?u=a-(c=n[e-1].column)===h+t.nodeMinColumnSpace(n[e-1],!1)?a+1:a:u=((h=(c=n[e-1].column)+t.nodeMinColumnSpace(n[e-1],!1)+h+1)+(l=(c=n[e+1].column)-t.nodeMinColumnSpace(n[e+1],!0)-l-1))/2|0;else 0===e&&e===o-1?u=s[e]:0===e?(l=(c=n[e+1].column)-t.nodeMinColumnSpace(n[e+1],!0)-l-1,u=Math.min(s[e],l)):e===o-1?(h=(c=n[e-1].column)+t.nodeMinColumnSpace(n[e-1],!1)+h+1,u=Math.max(s[e],h)):(h=(c=n[e-1].column)+t.nodeMinColumnSpace(n[e-1],!1)+h+1,l=(c=n[e+1].column)-t.nodeMinColumnSpace(n[e+1],!0)-l-1,h<s[e]&&s[e]<l?u=s[e]:h>=s[e]?u=h:l<=s[e]&&(u=l));u!==a&&(r=!0,n[e].column=u)}jg(t,i,n),t.normalize()}function wg(t,i){for(var e=!0,n=t.network.vertexes.iterator;n.next();){var o=n.value,r=t.nodeMinColumnSpace(o,!0),s=t.nodeMinColumnSpace(o,!1);if(o.column-r<=i&&o.column+s>=i){e=!1;break}}if(t=!1,e)for(n.reset();n.next();)(e=n.value).column>i&&(--e.column,t=!0);return t}function kg(t,i){var e,n=i+1,o=[],r=[];for(e=0;e<=t.Ia;e++)o[e]=!1,r[e]=!1;for(var s=t.network.vertexes.iterator;s.next();){var a=(e=s.value).column-t.nodeMinColumnSpace(e,!0),h=e.column+t.nodeMinColumnSpace(e,!1);a<=i&&h>=i&&(o[e.layer]=!0),a<=n&&h>=n&&(r[e.layer]=!0)}for(a=!0,n=!1,e=0;e<=t.Ia;e++)a=a&&!(o[e]&&r[e]);if(a)for(s.reset();s.next();)(t=s.value).column>i&&(--t.column,n=!0);return n}function Mg(t,i){for(var e=0;e<=t.Ra;e++)for(;wg(t,e););for(t.normalize(),e=0;e<t.Ra;e++)for(;kg(t,e););var n;if(t.normalize(),0<i)for(e=0;e<=t.Ra;e++){var o=_p(t),r=tg(t);for(n=r+1;r<n;){n=r,Sg(t,e,1);var s=tg(t);s>r?$p(t,o):s<r&&(r=s,o=_p(t))}}if(0>i)for(e=t.Ra;0<=e;e--)for(o=_p(t),n=(r=tg(t))+1;r<n;)n=r,Sg(t,e,-1),(s=tg(t))>r?$p(t,o):s<r&&(r=s,o=_p(t));t.normalize()}function Sg(t,i,e){t.le=0;for(var n=t.network.vertexes.iterator;n.next();)n.value.component=-1;if(0<e)for(n.reset();n.next();){var o=n.value;o.column-t.nodeMinColumnSpace(o,!0)<=i&&(o.component=t.le)}if(0>e)for(n.reset();n.next();)(o=n.value).column+t.nodeMinColumnSpace(o,!1)>=i&&(o.component=t.le);for(t.le++,n.reset();n.next();)-1===(i=n.value).component&&(og(t,i,t.le,-1,!0,!0),t.le++);var r;for(i=[],r=0;r<t.le*t.le;r++)i[r]=!1;for(o=[],r=0;r<(t.Ia+1)*(t.Ra+1);r++)o[r]=-1;for(n.reset();n.next();)for(var s=(r=n.value).layer,a=Math.max(0,r.column-t.nodeMinColumnSpace(r,!0)),h=Math.min(t.Ra,r.column+t.nodeMinColumnSpace(r,!1));a<=h;a++)o[s*(t.Ra+1)+a]=r.component;for(r=0;r<=t.Ia;r++){if(0<e)for(s=0;s<t.Ra;s++)-1!==o[r*(t.Ra+1)+s]&&-1!==o[r*(t.Ra+1)+s+1]&&o[r*(t.Ra+1)+s]!==o[r*(t.Ra+1)+s+1]&&(i[o[r*(t.Ra+1)+s]*t.le+o[r*(t.Ra+1)+s+1]]=!0);if(0>e)for(s=t.Ra;0<s;s--)-1!==o[r*(t.Ra+1)+s]&&-1!==o[r*(t.Ra+1)+s-1]&&o[r*(t.Ra+1)+s]!==o[r*(t.Ra+1)+s-1]&&(i[o[r*(t.Ra+1)+s]*t.le+o[r*(t.Ra+1)+s-1]]=!0)}for(o=[],r=0;r<t.le;r++)o[r]=!0;for((s=[]).push(0);0!==s.length;)if(h=s[s.length-1],s.pop(),o[h])for(o[h]=!1,r=0;r<t.le;r++)i[h*t.le+r]&&s.splice(0,0,r);if(0<e)for(n.reset();n.next();)o[(t=n.value).component]&&--t.column;if(0>e)for(n.reset();n.next();)o[(e=n.value).component]&&(e.column+=1)}function Pg(t,i,e,n){for(var r=90===t.K||270===t.K,s=o(i),a=s.next();!a.done;a=s.next()){var h=o(a.value);for(a=h.next();!a.done;a=h.next())(a=a.value).sd=a,a.shift=1/0,a.zc=NaN,a.qg=0}for(a=90===t.K||270===t.K,h=(s=o(i)).next();!h.done;h=s.next())for(var l=(h=o(h.value)).next();!l.done;l=h.next())if((l=l.value).root===l){for(var u=0,c=l;c.align!==l;){var f=c.align,d=a?c.width:c.height,p=a?f.width:f.height;if(e){var g=Jg(c,f),m=g.portFromPos,y=g.portToPos;null!==g.link&&(c.node&&c.node!==g.link.fromNode&&(m=a?c.focusX:c.focusY),f.node&&f.node!==g.link.toNode&&(y=a?f.focusX:f.focusY))}else m=(g=Jg(f,c)).portToPos,y=g.portFromPos,null!==g.link&&(c.node&&c.node!==g.link.toNode&&(m=a?c.focusX:c.focusY),f.node&&f.node!==g.link.fromNode&&(y=a?f.focusX:f.focusY));d=n?c.qg+(d-m)-(p-y):c.qg+m-y,f.qg=d,u=Math.min(u,d),c=c.align}c=l;do{c.qg=c.qg-u,c=c.align}while(c!==l)}for(a=(e=o(i)).next();!a.done;a=e.next())for(a=(s=o(a.value)).next();!a.done;a=s.next())(a=a.value).root===a&&Ng(t,a,i);for(e=0;e<i.length;e++)if(!(0>=i[e].length)&&(a=i[e][0]).sd===a){1/0===a.sd.shift&&(a.sd.shift=0),a=e,h=0;do{for(s=i[a][h];s.align!==s.root;)a++,0<(s=s.align).vi&&((h=Cg(s,i)).sd.shift=Math.min(h.sd.shift,s.sd.shift+s.zc+s.qg-(h.zc+h.qg+(r?h.width:h.height)+t.columnSpacing)));h=s.vi+1}while(a<i.length&&h<i[a].length&&s.sd===i[a][h].sd)}for(t=new dt,a=(i=o(i)).next();!a.done;a=i.next())for(a=(e=o(a.value)).next();!a.done;a=e.next())(a=a.value).zc=a.zc+a.sd.shift+a.qg,s=r?a.width:a.height,t.add(a,n?-a.zc-s:a.zc);return t}function Ng(t,i,e){if(isNaN(i.zc)){i.zc=0;var n=i;do{if(0<n.vi){var o=Cg(n,e),r=o.root;Ng(t,r,e),i.sd===i&&(i.sd=r.sd);var s=90===t.K||270===t.K?o.width:o.height;i.sd===r.sd&&(i.zc=Math.max(i.zc,r.zc+o.qg+s-n.qg+t.columnSpacing))}n=n.align}while(n!==i);for(;n.align!==i;)(n=n.align).zc=i.zc,n.sd=i.sd}}function Cg(t,i){var e=t.Tz;return 1>(t=t.vi)&&w("Could not determine previous vertex in layer"),i[e][t-1]}function Tg(t,i,e,n,o){if(!i||0===i.count)return e[o]=0,n[o]=0,1/0;var r=1/0,s=-1/0;return i.each((function(i){var e=i.key;i=i.value,e=90===t.K||270===t.K?e.width:e.height,i<r&&(r=i),i+e>s&&(s=i+e)})),e[o]=r,n[o]=s,s-r}function Lg(t,i){return 270===t.K?i?Li:Fi:90===t.K?i?Fi:Li:180===t.K?i?Ai:ji:i?ji:Ai}function Ag(t,i){var e=t.tc[i];if(e>=t.He.length){for(var n=[],o=0;o<t.He.length;o++)n[o]=t.He[o];t.He=n}for(void 0===t.He[e]||null===t.He[e]?n=[]:(n=t.He[e],t.He[e]=null),t=t.fl[i],i=0;i<t.length;i++)n[(e=t[i]).index]=e;return n}function jg(t,i,e){t.He[t.tc[i]]=e}rp.className="CircularLayout",rp.ConstantSpacing=yp,rp.ConstantDistance=vp,rp.ConstantAngle=xp,rp.Packed=bp,rp.Clockwise=wp,rp.Counterclockwise=kp,rp.BidirectionalLeft=Mp,rp.BidirectionalRight=Sp,rp.Forwards=Pp,rp.Reverse=Np,rp.Ascending=Cp,rp.Descending=Tp,rp.Optimized=Lp,rp.Pythagorean=Ap,rp.Circular=jp,Fp.prototype.compare=function(t,i){if(0<t&&0>this.Pl||Math.abs(t)<Math.abs(this.Pl)&&!(0>t&&0<this.Pl))for(this.Pl=t,this.mk=[],this.tm=[],t=0;t<i.length;t++)this.mk[t]=i[t].bounds.x,this.tm[t]=i[t].bounds.y},Fp.prototype.commit=function(t){if(null!==this.mk&&null!==this.tm)for(var i=0;i<this.mk.length;i++){var e=t.M(i);e.x=this.mk[i],e.y=this.tm[i]}},Fp.className="VertexArrangement",c(Dp,Of),Dp.prototype.createVertex=function(){return new Bp(this)},Dp.prototype.createEdge=function(){return new Ip(this)},Dp.className="CircularNetwork",c(Bp,Vf),f.Object.defineProperties(Bp.prototype,{diameter:{get:function(){return this.Si},set:function(t){this.Si!==t&&(this.Si=t)}},actualAngle:{get:function(){return this.u},set:function(t){this.u!==t&&(this.u=t)}}}),Bp.className="CircularVertex",c(Ip,Gf),Ip.className="CircularEdge",c(zp,Ff),zp.prototype.cloneProtected=function(t){Ff.prototype.cloneProtected.call(this,t),t.$d.assign(this.$d),t.Bm=this.Bm,t.sf=this.sf,t.td=this.td,t.dl=this.dl,t.$m=this.$m,t.Zf=this.Zf,t.In=this.In,t.fo=this.fo,t.Hk=this.Hk,t.Gk=this.Gk,t.Ek=this.Ek,t.Fk=this.Fk,t.Vm=this.Vm,t.Um=this.Um},zp.prototype.createNetwork=function(){return new qp(this)},zp.prototype.doLayout=function(t){if(null===this.network&&(this.network=this.makeNetwork(t)),t=this.maxIterations,0<this.network.vertexes.count){this.network.Ko();for(var i=this.network.vertexes.iterator;i.next();){var e=i.value;e.charge=this.electricalCharge(e),e.mass=this.gravitationalMass(e)}for(i=this.network.edges.iterator;i.next();)(e=i.value).stiffness=this.springStiffness(e),e.length=this.springLength(e);if(this.Cu(),this.An=0,this.needsClusterLayout()){for(var n=(e=(i=this.network).Zx()).iterator;n.next();){this.network=n.value;for(var o=this.network.vertexes.iterator;o.next();){var r=o.value;r.Vd=r.vertexes.count,r.sh=1,r.Hj=null,r.We=null}Rp(this,0,t)}this.network=i;var s=n=e.iterator;n=this.arrangementSpacing;var a=s.count,h=!0;r=o=0;for(var l=A(),u=0;u<a+i.vertexes.count+2;u++)l[u]=null;a=0,s.reset();for(var c=Bt.alloc();s.next();)if(u=s.value,this.computeBounds(u,c),h)h=!1,o=c.x+c.width/2,r=c.y+c.height/2,l[0]=new pt(c.x+c.width+n.width,c.y),l[1]=new pt(c.x,c.y+c.height+n.height),a=2;else{var f=Vp(l,a,o,r,c.width,c.height,n),d=l[f],p=new pt(d.x+c.width+n.width,d.y),g=new pt(d.x,d.y+c.height+n.height);for(f+1<a&&l.splice(f+1,0,null),l[f]=p,l[f+1]=g,a++,f=d.x-c.x,d=d.y-c.y,u=u.vertexes.iterator;u.next();)(p=u.value).centerX+=f,p.centerY+=d}for(Bt.free(c),u=i.vertexes.iterator;u.next();)f=(s=u.value).bounds,2>a?(o=f.x+f.width/2,r=f.y+f.height/2,l[0]=new pt(f.x+f.width+n.width,f.y),l[1]=new pt(f.x,f.y+f.height+n.height),a=2):(d=new pt((c=l[h=Vp(l,a,o,r,f.width,f.height,n)]).x+f.width+n.width,c.y),f=new pt(c.x,c.y+f.height+n.height),h+1<a&&l.splice(h+1,0,null),l[h]=d,l[h+1]=f,a++,s.centerX=c.x+s.width/2,s.centerY=c.y+s.height/2);for(j(l),n=e.iterator;n.next();){for(o=(e=n.value).vertexes.iterator;o.next();)i.dh(o.value);for(e=e.edges.iterator;e.next();)i.Bo(e.value)}}Gp(this,t),this.updateParts()}this.dl=t,this.network=null,this.isValidLayout=!0},zp.prototype.needsClusterLayout=function(){if(3>this.network.vertexes.count)return!1;for(var t=0,i=0,e=this.network.vertexes.first().bounds,n=this.network.vertexes.iterator;n.next();){if(n.value.bounds.Yc(e)&&2<++t)return!0;if(10<i)break;i++}return!1},zp.prototype.computeBounds=function(t,i){var e=!0;for(t=t.vertexes.iterator;t.next();){var n=t.value;e?(e=!1,i.set(n.bounds)):i.ed(n.bounds)}return i},zp.prototype.Cu=function(){if(this.comments)for(var t=this.network.vertexes.iterator;t.next();)this.addComments(t.value)},zp.prototype.addComments=function(t){var i=t.node;if(null!==i)for(i=i.Mu();i.next();){var e=i.value;if("Comment"===e.category&&e.isVisible()){var n=this.network.ki(e);null===n&&(n=this.network.Bl(e)),n.charge=this.defaultCommentElectricalCharge,e=null;for(var o=n.destinationEdges;o.next();){var r=o.value;if(r.toVertex===t){e=r;break}}if(null===e)for(o=n.sourceEdges;o.next();)if((r=o.value).fromVertex===t){e=r;break}null===e&&(e=this.network.Zj(t,n,null)),e.length=this.defaultCommentSpringLength}}},zp.prototype.moveVertex=function(t){var i=t.forceX,e=t.forceY,n=this.moveLimit;return i<-n?i=-n:i>n&&(i=n),e<-n?e=-n:e>n&&(e=n),t.centerX+=i,t.centerY+=e,i*i+e*e},zp.prototype.moveFixedVertex=function(){},zp.prototype.commitLayout=function(){this.yv(),this.commitNodes(),this.isRouting&&this.commitLinks()},zp.prototype.yv=function(){if(this.setsPortSpots)for(var t=this.network.edges.iterator;t.next();){var i=t.value.link;null!==i&&(i.fromSpot=Si,i.toSpot=Si)}},zp.prototype.commitNodes=function(){var t=0,i=0;if(this.arrangesToOrigin){var e=Bt.alloc();this.computeBounds(this.network,e),t=(i=this.arrangementOrigin).x-e.x,i=i.y-e.y,Bt.free(e)}e=Bt.alloc();for(var n=this.network.vertexes.iterator;n.next();){var o=n.value;0===t&&0===i||(e.assign(o.bounds),e.x+=t,e.y+=i,o.bounds=e),o.commit()}Bt.free(e)},zp.prototype.commitLinks=function(){for(var t=this.network.edges.iterator;t.next();)t.value.commit()},zp.prototype.springStiffness=function(t){return t=t.stiffness,isNaN(t)?this.Hk:t},zp.prototype.springLength=function(t){return t=t.length,isNaN(t)?this.Gk:t},zp.prototype.electricalCharge=function(t){return t=t.charge,isNaN(t)?this.Ek:t},zp.prototype.electricalFieldX=function(){return 0},zp.prototype.electricalFieldY=function(){return 0},zp.prototype.gravitationalMass=function(t){return t=t.mass,isNaN(t)?this.Fk:t},zp.prototype.gravitationalFieldX=function(){return 0},zp.prototype.gravitationalFieldY=function(){return 0},zp.prototype.isFixed=function(t){return t.isFixed},f.Object.defineProperties(zp.prototype,{currentIteration:{get:function(){return this.An}},arrangementSpacing:{get:function(){return this.$d},set:function(t){this.$d.D(t)||(this.$d.assign(t),this.C())}},arrangesToOrigin:{get:function(){return this.Bm},set:function(t){this.Bm!==t&&(this.Bm=t,this.C())}},setsPortSpots:{get:function(){return this.sf},set:function(t){this.sf!==t&&(this.sf=t,this.C())}},comments:{get:function(){return this.td},set:function(t){this.td!==t&&(this.td=t,this.C())}},maxIterations:{get:function(){return this.dl},set:function(t){this.dl!==t&&0<=t&&(this.dl=t,this.C())}},epsilonDistance:{get:function(){return this.$m},set:function(t){this.$m!==t&&0<t&&(this.$m=t,this.C())}},infinityDistance:{get:function(){return this.Zf},set:function(t){this.Zf!==t&&1<t&&(this.Zf=t,this.C())}},moveLimit:{get:function(){return this.In},set:function(t){this.In!==t&&1<t&&(this.In=t,this.C())}},randomNumberGenerator:{get:function(){return this.fo},set:function(t){this.fo!==t&&(null!==t&&"function"!=typeof t.random&&w('ForceDirectedLayout.randomNumberGenerator must have a "random()" function on it: '+t),this.fo=t)}},defaultSpringStiffness:{get:function(){return this.Hk},set:function(t){this.Hk!==t&&(this.Hk=t,this.C())}},defaultSpringLength:{get:function(){return this.Gk},set:function(t){this.Gk!==t&&(this.Gk=t,this.C())}},defaultElectricalCharge:{get:function(){return this.Ek},set:function(t){this.Ek!==t&&(this.Ek=t,this.C())}},defaultGravitationalMass:{get:function(){return this.Fk},set:function(t){this.Fk!==t&&(this.Fk=t,this.C())}},defaultCommentSpringLength:{get:function(){return this.Vm},set:function(t){this.Vm!==t&&(this.Vm=t,this.C())}},defaultCommentElectricalCharge:{get:function(){return this.Um},set:function(t){this.Um!==t&&(this.Um=t,this.C())}}}),zp.className="ForceDirectedLayout",Up.className="ForceDirectedSubnet",c(qp,Of),qp.prototype.createVertex=function(){return new Hp(this)},qp.prototype.createEdge=function(){return new Kp(this)},qp.className="ForceDirectedNetwork",c(Hp,Vf),f.Object.defineProperties(Hp.prototype,{isFixed:{get:function(){return this.ia},set:function(t){this.ia!==t&&(this.ia=t)}},charge:{get:function(){return this.u},set:function(t){this.u!==t&&(this.u=t)}},mass:{get:function(){return this.Ha},set:function(t){this.Ha!==t&&(this.Ha=t)}},forceX:{get:function(){return this.F},set:function(t){this.F!==t&&(this.F=t)}},forceY:{get:function(){return this.V},set:function(t){this.V!==t&&(this.V=t)}}}),Hp.className="ForceDirectedVertex",c(Kp,Gf),f.Object.defineProperties(Kp.prototype,{stiffness:{get:function(){return this.o},set:function(t){this.o!==t&&(this.o=t)}},length:{get:function(){return this.j},set:function(t){this.j!==t&&(this.j=t)}}}),Kp.className="ForceDirectedEdge",Wp.prototype.random=function(){var t=this.seed%this.Q*this.ay-this.seed/this.Q*this.gy;return this.seed=0<t?t:t+this.ey,this.seed*this.by},Wp.className="RandomNumberGenerator",c(Jp,Ff),Jp.prototype.cloneProtected=function(t){Ff.prototype.cloneProtected.call(this,t),t.ie=this.ie,t.kc=this.kc,t.K=this.K,t.Dk=this.Dk,t.Zk=this.Zk,t.Qk=this.Qk,t.bj=this.bj,t.rk=this.rk,t.bg=this.bg,t.sf=this.sf,t.Cn=this.Cn,t.ve=this.ve},Jp.prototype.qb=function(t){t.classType===Jp?0===t.name.indexOf("Aggressive")?this.aggressiveOption=t:0===t.name.indexOf("Cycle")?this.cycleRemoveOption=t:0===t.name.indexOf("Init")?this.initializeOption=t:0===t.name.indexOf("Layer")?this.layeringOption=t:w("Unknown enum value: "+t):Ff.prototype.qb.call(this,t)},Jp.prototype.createNetwork=function(){return new Hg(this)},Jp.prototype.doLayout=function(t){for(null===this.network&&(this.network=this.makeNetwork(t)),this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin),this.Iq=-1,this.Md=this.Hn=0,this.fl=this.Jn=this.kj=null,t=0;t<this.He.length;t++)this.He[t]=null;if(0<this.network.vertexes.count){for(this.network.Ko(),this.cycleRemoveOption!==Bg&&this.removeCycles(),t=this.network.vertexes.iterator;t.next();)t.value.layer=-1;for(this.Ia=-1,this.assignLayers(),t.reset();t.next();)this.Ia=Math.max(this.Ia,t.value.layer);this.cycleRemoveOption===Bg&&this.removeCycles();for(var i=[],e=(t=this.network).edges.iterator;e.next();){var n=e.value;n.valid=!1,i.push(n)}for(e=0;e<i.length;e++){var o=(n=i[e]).fromVertex,r=n.toVertex;if(!(n.valid||(null===o.node&&null===o.data||null===r.node&&null===r.data)&&o.layer===r.layer)){var s=0,a=0,h=0,l=0;if(null!==n.link){if(null===(a=n.link))continue;var u=o.node;if(s=r.node,null===u||null===s)continue;var c=a.fromNode;h=a.toNode;for(var f=a.fromPort;null!==f&&!f.Ed();)f=f.panel;for(a=a.toPort;null!==a&&!a.Ed();)a=a.panel;if(n.rev){l=c;var d=f;c=h,f=a,h=l,a=d}var p=o.focus;l=r.focus;var g=n.rev?r.bounds:o.bounds;d=pt.alloc(),u!==c?g.w()&&c.isVisible()?c.actualBounds.w()?(Cu(c,f,oi,d),d.x+=c.actualBounds.x-g.x,d.y+=c.actualBounds.y-g.y):(Cu(c,f,oi,d),d.w()||d.assign(p)):d.assign(p):g.w()?(Cu(c,f,oi,d),d.w()||d.assign(p)):d.assign(p),c=n.rev?o.bounds:r.bounds,u=pt.alloc(),s!==h?c.w()&&h.isVisible()?h.actualBounds.w()?(Cu(h,a,oi,u),u.x+=h.actualBounds.x-c.x,u.y+=h.actualBounds.y-c.y):(Cu(h,a,oi,u),u.w()||u.assign(l)):u.assign(l):c.w()?(Cu(h,a,oi,u),u.w()||u.assign(l)):u.assign(l),90===this.K||270===this.K?(s=Math.round((d.x-p.x)/this.kc),h=d.x,a=Math.round((u.x-l.x)/this.kc),l=u.x):(s=Math.round((d.y-p.y)/this.kc),h=d.y,a=Math.round((u.y-l.y)/this.kc),l=u.y),pt.free(d),pt.free(u),n.portFromColOffset=s,n.portFromPos=h,n.portToColOffset=a,n.portToPos=l}else n.portFromColOffset=0,n.portFromPos=0,n.portToColOffset=0,n.portToPos=0;if(d=o.layer,u=r.layer,c=0,null!==(g=n.link)){var m=g.fromPort,y=g.toPort;if(null!==m&&null!==y){var v=g.fromNode;if(f=g.toNode,null!==v&&null!==f){var x=Lg(this,!0),b=Lg(this,!1),w=this.setsPortSpots?x:g.computeSpot(!0,m);p=this.setsPortSpots?b:g.computeSpot(!1,y);var k=g.isOrthogonal;w.$c()&&w.Hf(b)&&p.$c()&&p.Hf(x)?c=0:(x=g.getLinkPoint(v,m,w,!0,k,f,y,pt.alloc()),b=g.getLinkDirection(v,m,x,w,!0,k,f,y),pt.free(x),w.ys()||b!==dg(this,n,!0)?this.setsPortSpots&&null!==v&&1===v.ports.count&&n.rev&&(c+=1):c+=1,w=g.getLinkPoint(f,y,p,!1,k,v,m,pt.alloc()),g=g.getLinkDirection(f,y,w,p,!1,k,v,m),pt.free(w),p.ys()||g!==dg(this,n,!1)?this.setsPortSpots&&null!==f&&1===f.ports.count&&n.rev&&(c+=2):c+=2)}}}if(c=1===(f=c)||3===f,(f=2===f||3===f)&&((p=t.createVertex()).node=null,p.Dj=1,p.layer=d,p.near=o,t.dh(p),(o=t.Zj(o,p,n.link)).valid=!1,o.rev=n.rev,o.portFromColOffset=s,o.portToColOffset=0,o.portFromPos=h,o.portToPos=0,o=p),g=1,c&&g--,d-u>g&&0<d){for(n.valid=!1,(p=t.createVertex()).node=null,p.Dj=2,p.layer=d-1,t.dh(p),(o=t.Zj(o,p,n.link)).valid=!0,o.rev=n.rev,o.portFromColOffset=f?0:s,o.portToColOffset=0,o.portFromPos=f?0:h,o.portToPos=0,o=p,d--;d-u>g&&0<d;)(p=t.createVertex()).node=null,p.Dj=3,p.layer=d-1,t.dh(p),(o=t.Zj(o,p,n.link)).valid=!0,o.rev=n.rev,o.portFromColOffset=0,o.portToColOffset=0,o.portFromPos=0,o.portToPos=0,o=p,d--;(o=t.Zj(p,r,n.link)).valid=!c,c&&(p.near=r),o.rev=n.rev,o.portFromColOffset=0,o.portToColOffset=a,o.portFromPos=0,o.portToPos=l}else n.valid=!0}}for(t=this.tc=[],i=0;i<=this.Ia;i++)t[i]=0;for(i=this.network.vertexes.iterator;i.next();)i.value.index=-1;for(this.initializeIndices(),this.Iq=-1,e=this.Md=this.Hn=0;e<=this.Ia;e++)t[e]>t[this.Md]&&(this.Iq=t[e]-1,this.Md=e),t[e]<t[this.Hn]&&(this.Hn=e);for(this.fl=[],e=0;e<t.length;e++)this.fl[e]=[];for(i.reset();i.next();)t=i.value,this.fl[t.layer][t.index]=t;for(this.Ra=-1,t=0;t<=this.Ia;t++){for(i=Ag(this,t),e=0,n=this.tc[t],r=0;r<n;r++)o=i[r],e+=this.nodeMinColumnSpace(o,!0),o.column=e,e+=1,e+=this.nodeMinColumnSpace(o,!1);this.Ra=Math.max(this.Ra,e-1),jg(this,t,i)}this.reduceCrossings(),this.straightenAndPack(),this.updateParts()}this.network=null,this.isValidLayout=!0},Jp.prototype.linkMinLength=function(){return 1},Jp.prototype.nodeMinLayerSpace=function(t,i){return null===t.node&&null===t.data?0:90===this.K||270===this.K?i?t.focus.y+10:t.bounds.height-t.focus.y+10:i?t.focus.x+10:t.bounds.width-t.focus.x+10},Jp.prototype.nodeMinColumnSpace=function(t,i){if(null===t.node&&null===t.data)return 0;var e=i?t.ev:t.dv;return null!==e?e:90===(e=this.K)||270===e?i?t.ev=t.focus.x/this.kc+1|0:t.dv=(t.bounds.width-t.focus.x)/this.kc+1|0:i?t.ev=t.focus.y/this.kc+1|0:t.dv=(t.bounds.height-t.focus.y)/this.kc+1|0},Jp.prototype.countCrossings=function(){for(var t=0,i=0;i<=this.Ia;i++)for(var e=Qp(this,i,1),n=this.tc[i],o=0;o<n;o++)for(var r=o;r<n;r++)t+=e[o*n+r];return t},Jp.prototype.normalize=function(){var t=1/0;this.Ra=-1;for(var i=this.network.vertexes.iterator;i.next();){var e=i.value;t=Math.min(t,e.column-this.nodeMinColumnSpace(e,!0)),this.Ra=Math.max(this.Ra,e.column+this.nodeMinColumnSpace(e,!1))}for(i.reset();i.next();)i.value.column-=t;this.Ra-=t},Jp.prototype.removeCycles=function(){for(var t=this.network.edges.iterator;t.next();)t.value.rev=!1;switch(this.Dk){default:case Dg:var i=0,e=(t=this.network).vertexes.count-1,n=[];n.length=e+1;for(var o=t.vertexes.iterator;o.next();)o.value.valid=!0;for(;null!==rg(t);){for(o=sg(t);null!==o;)n[e]=o,e--,o.valid=!1,o=sg(t);for(o=ag(t);null!==o;)n[i]=o,i++,o.valid=!1,o=ag(t);o=null;for(var r=0,s=this.network.vertexes.iterator;s.next();){var a=s.value;if(a.valid){for(var h=0,l=a.destinationEdges;l.next();)l.value.toVertex.valid&&h++;l=0;for(var u=a.sourceEdges;u.next();)u.value.fromVertex.valid&&l++;(null===o||r<h-l)&&(o=a,r=h-l)}}null!==o&&(n[i]=o,i++,o.valid=!1)}for(i=0;i<t.vertexes.count;i++)n[i].index=i;for(n=t.edges.iterator;n.next();)(i=n.value).fromVertex.index>i.toVertex.index&&(t.gm(i),i.rev=!0);break;case Fg:for(n=this.network.vertexes.iterator;n.next();)(t=n.value).Ll=-1,t.finish=-1;for(t=this.network.edges.iterator;t.next();)t.value.forest=!1;for(this.Kn=0,n.reset();n.next();)0===(i=n.value).sourceEdges.count&&hg(this,i);for(n.reset();n.next();)-1===(i=n.value).Ll&&hg(this,i);for(t.reset();t.next();)(n=t.value).forest||(e=(i=n.fromVertex).finish,r=(o=n.toVertex).finish,o.Ll<i.Ll&&e<r&&(this.network.gm(n),n.rev=!0));break;case Bg:for(i=(t=this.network).vertexes.iterator,n=1/0;i.next();)n=Math.min(n,i.value.layer);if(1/0>n){if(0>n)for(i.reset();i.next();)i.value.layer-=n;for(n=[],i.reset();i.next();)void 0===(o=n[(e=i.value).layer])?n[e.layer]=[e]:o.push(e);for(e=i=0;e<n.length;e++)if((o=n[e])&&0!==o.length){if(0<e)for(r=0;r<o.length;r++)o[r].layer-=i}else i++;for(n=t.edges.iterator;n.next();)(i=n.value).fromVertex.layer<i.toVertex.layer&&(t.gm(i),i.rev=!0)}}},Jp.prototype.assignLayers=function(){switch(this.Zk){case Ig:lg(this);break;case zg:for(var t,i=this.network.vertexes.iterator;i.next();)t=cg(this,i.value),this.Ia=Math.max(t,this.Ia);for(i.reset();i.next();)(t=i.value).layer=this.Ia-t.layer;break;default:for(lg(this),i=this.network.vertexes.iterator;i.next();)i.value.valid=!1;for(i.reset();i.next();)0===(t=i.value).sourceEdges.count&&fg(this,t);for(t=1/0,i.reset();i.next();)t=Math.min(t,i.value.layer);for(this.Ia=-1,i.reset();i.next();){var e=i.value;e.layer-=t,this.Ia=Math.max(this.Ia,e.layer)}}},Jp.prototype.initializeIndices=function(){switch(this.Qk){default:case Vg:for(var t=this.network.vertexes.iterator;t.next();){var i=t.value,e=i.layer;i.index=this.tc[e],this.tc[e]++}break;case Rg:for(t=this.network.vertexes.iterator,i=this.Ia;0<=i;i--)for(t.reset();t.next();)(e=t.value).layer===i&&-1===e.index&&pg(this,e);break;case Eg:for(t=this.network.vertexes.iterator,i=0;i<=this.Ia;i++)for(t.reset();t.next();)(e=t.value).layer===i&&-1===e.index&&gg(this,e)}},Jp.prototype.reduceCrossings=function(){var t,i,e,n,o,r=this.countCrossings(),s=_p(this);for(t=0;t<this.bj;t++){for(i=0;i<=this.Ia;i++)mg(this,i,1),yg(this,i,1);var a=this.countCrossings();for(a<r&&(r=a,s=_p(this)),i=this.Ia;0<=i;i--)mg(this,i,-1),yg(this,i,-1);(a=this.countCrossings())<r&&(r=a,s=_p(this))}for($p(this,s),t=0;t<this.bj;t++){for(i=0;i<=this.Ia;i++)mg(this,i,0),yg(this,i,0);for((a=this.countCrossings())<r&&(r=a,s=_p(this)),i=this.Ia;0<=i;i--)mg(this,i,0),yg(this,i,0);(a=this.countCrossings())<r&&(r=a,s=_p(this))}switch($p(this,s),this.rk){case Yg:break;case Xg:for(o=r+1;(i=this.countCrossings())<o;)for(o=i,t=this.Ia;0<=t;t--)for(n=0;n<=t;n++){for(e=!0;e;)for(e=!1,i=t;i>=n;i--)e=yg(this,i,-1)||e;for((a=this.countCrossings())>=r?$p(this,s):(r=a,s=_p(this)),e=!0;e;)for(e=!1,i=t;i>=n;i--)e=yg(this,i,1)||e;for((a=this.countCrossings())>=r?$p(this,s):(r=a,s=_p(this)),e=!0;e;)for(e=!1,i=n;i<=t;i++)e=yg(this,i,1)||e;for(a>=r?$p(this,s):(r=a,s=_p(this)),e=!0;e;)for(e=!1,i=n;i<=t;i++)e=yg(this,i,-1)||e;for(a>=r?$p(this,s):(r=a,s=_p(this)),e=!0;e;)for(e=!1,i=t;i>=n;i--)e=yg(this,i,0)||e;for(a>=r?$p(this,s):(r=a,s=_p(this)),e=!0;e;)for(e=!1,i=n;i<=t;i++)e=yg(this,i,0)||e;a>=r?$p(this,s):(r=a,s=_p(this))}break;default:for(t=this.Ia,n=0,o=r+1;(i=this.countCrossings())<o;){for(o=i,e=!0;e;)for(e=!1,i=t;i>=n;i--)e=yg(this,i,-1)||e;for((a=this.countCrossings())>=r?$p(this,s):(r=a,s=_p(this)),e=!0;e;)for(e=!1,i=t;i>=n;i--)e=yg(this,i,1)||e;for((a=this.countCrossings())>=r?$p(this,s):(r=a,s=_p(this)),e=!0;e;)for(e=!1,i=n;i<=t;i++)e=yg(this,i,1)||e;for(a>=r?$p(this,s):(r=a,s=_p(this)),e=!0;e;)for(e=!1,i=n;i<=t;i++)e=yg(this,i,-1)||e;for(a>=r?$p(this,s):(r=a,s=_p(this)),e=!0;e;)for(e=!1,i=t;i>=n;i--)e=yg(this,i,0)||e;for(a>=r?$p(this,s):(r=a,s=_p(this)),e=!0;e;)for(e=!1,i=n;i<=t;i++)e=yg(this,i,0)||e;a>=r?$p(this,s):(r=a,s=_p(this))}}$p(this,s)},Jp.prototype.straightenAndPack=function(){if(0===this.ve){var t=0!=(1&this.bg),i=0!=(this.bg&Ug);if(1e3<this.network.edges.count&&i&&(t=!1),t){var e=[];for(i=0;i<=this.Ia;i++)e[i]=0;for(var n,r=this.network.vertexes.iterator;r.next();){var s=r.value;i=s.layer,n=s.column,s=this.nodeMinColumnSpace(s,!1),e[i]=Math.max(e[i],n+s)}for(r.reset();r.next();)i=(s=r.value).layer,n=s.column,s.column=(8*(this.Ra-e[i])>>1)+8*n;this.Ra*=8}if(0!=(2&this.bg))for(e=!0;e;){for(e=!1,i=this.Md+1;i<=this.Ia;i++)e=vg(this,i,1)||e;for(i=this.Md-1;0<=i;i--)e=vg(this,i,-1)||e;e=vg(this,this.Md,0)||e}if(0!=(4&this.bg)){for(i=this.Md+1;i<=this.Ia;i++)bg(this,i,1);for(i=this.Md-1;0<=i;i--)bg(this,i,-1);bg(this,this.Md,0)}if(t&&(Mg(this,-1),Mg(this,1)),0!=(2&this.bg))for(e=!0;e;){for(e=!1,e=vg(this,this.Md,0)||e,i=this.Md+1;i<=this.Ia;i++)e=vg(this,i,0)||e;for(i=this.Md-1;0<=i;i--)e=vg(this,i,0)||e}}else!function(t){for(var i=A(),e=t.fl.length,n=0;n<=e;n++)i[n]=[];for(n=t.network.vertexes.iterator;n.next();){var r=n.value;i[e-r.layer][r.index]=r}e=new $,function(t,i){for(var e=t.length,n=1;n<e-1;n++)for(var r=0,s=0,a=t[n],h=t[n+1],l=0;s<h.length;l++){var u=h[l];t:{if(null===u.node){var c=Zg(u);if(0<c.length){c=null===c[0].node;break t}}c=!1}var f=c;if(l===h.length-1||f){for(c=a.length-1,f&&(c=Zg(u)[0].index);s<=l;){if(!(u=h[s]).bo){f=[];for(var d=o(u.sourceEdgesArrayAccess),p=d.next();!p.done;p=d.next())(p=p.value).valid&&f.push(p);u.bo=f}for(f=(u=o(u.bo)).next();!f.done;f=u.next())((d=(f=f.value).fromVertex.index)<r||d>c)&&i.add(f);s++}r=c}}}(i,e);var s=null,a=null,h=null,l=null,u=0!=(1&t.ve),c=0!=(2&t.ve),f=0!=(4&t.ve),d=0!=(8&t.ve);for(u&&(t.verticalAlignment(i,e,!0),s=Pg(t,i,!0,!1)),i.reverse(),f&&(t.verticalAlignment(i,e,!1),h=Pg(t,i,!1,!1)),n=o(i),r=n.next();!r.done;r=n.next())r.value.reverse();d&&(t.verticalAlignment(i,e,!1),l=Pg(t,i,!1,!0)),i.reverse(),c&&(t.verticalAlignment(i,e,!0),a=Pg(t,i,!0,!0)),j(i),t.u(s,a,h,l),t.network.vertexes.each((function(t){var i=A();u&&i.push(s.get(t)),c&&i.push(a.get(t)),f&&i.push(h.get(t)),d&&i.push(l.get(t)),i.sort((function(t,i){return t-i}));var e=i.length;e=(i[Math.floor((e-1)/2)]+i[Math.ceil((e-1)/2)])/2,j(i),t.zc=e}))}(this)},Jp.prototype.verticalAlignment=function(t,i,e){!function(t){for(var i=0;i<t.length;i++)for(var e=t[i],n=0;n<e.length;n++){var o=e[n];o.root=o,o.align=o,o.Tz=i,o.vi=n}}(t);for(var n=(t=o(t)).next();!n.done;n=t.next())for(var r=-1,s=(n=o(n.value)).next();!s.done;s=n.next()){s=s.value;var a=e?Zg(s):_g(s),h=a.length;if(0<h){a.sort((function(t,i){return t.vi-i.vi}));var l=(h-1)/2;for(h=Math.floor(l),l=Math.ceil(l);h<=l;h++)if(s.align===s){var u,c=a[h];u=e?Jg(c,s):Jg(s,c),!i.contains(u)&&r<c.vi&&(c.align=s,s.root=c.root,s.align=c.root,r=c.vi)}}}},Jp.prototype.u=function(t){for(var i=[],e=0;e<arguments.length;++e)i[e]=arguments[e];e=-1;for(var n=A(),o=A(),r=1/0,s=0;4>s;s++)if(i[s]){var a=Tg(this,i[s],n,o,s);a<r&&(e=s,r=a)}for(r={},s=0;4>s;r={delta:r.delta},s++)i[s]&&(r.delta=0===s||2===s?n[e]-n[s]:o[e]-o[s],0!==r.delta&&i[s].each(function(t){return function(i){i.value+=t.delta}}(r)));j(n),j(o)},Jp.prototype.commitLayout=function(){if(this.setsPortSpots)for(var t=Lg(this,!0),i=Lg(this,!1),e=this.network.edges.iterator;e.next();){var n=e.value.link;null!==n&&(n.fromSpot=t,n.toSpot=i)}this.commitNodes(),this.Gu(),this.isRouting&&this.commitLinks()},Jp.prototype.commitNodes=function(){this.he=[],this.Ld=[],this.Kd=[],this.Ta=[];for(var t=0;t<=this.Ia;t++)this.he[t]=0,this.Ld[t]=0,this.Kd[t]=0,this.Ta[t]=0;for(t=this.network.vertexes.iterator;t.next();){var i=t.value,e=i.layer;this.he[e]=Math.max(this.he[e],this.nodeMinLayerSpace(i,!0)),this.Ld[e]=Math.max(this.Ld[e],this.nodeMinLayerSpace(i,!1))}i=0,e=this.ie;for(var n=0;n<=this.Ia;n++){var o=e;0>=this.he[n]+this.Ld[n]&&(o=0),0<n&&(i+=o/2),90===this.K||0===this.K?(i+=this.Ld[n],this.Kd[n]=i,i+=this.he[n]):(i+=this.he[n],this.Kd[n]=i,i+=this.Ld[n]),n<this.Ia&&(i+=o/2),this.Ta[n]=i}for(e=i,i=this.arrangementOrigin,n=0;n<=this.Ia;n++)270===this.K?this.Kd[n]=i.y+this.Kd[n]:90===this.K?(this.Kd[n]=i.y+e-this.Kd[n],this.Ta[n]=e-this.Ta[n]):180===this.K?this.Kd[n]=i.x+this.Kd[n]:(this.Kd[n]=i.x+e-this.Kd[n],this.Ta[n]=e-this.Ta[n]);e=0!==this.ve,t.reset(),n=270===this.K||90===this.K;for(var r=1/0,s=o=1/0,a=-1/0;t.next();){var h=t.value,l=h.layer,u=0|h.column;n?(s=i.x+this.kc*u,l=this.Kd[l]):(s=this.Kd[l],l=i.y+this.kc*u),h.centerX=s,h.centerY=l,e&&isFinite(h.zc)&&(n?h.node?h.x=i.x+h.zc:h.centerX=i.x+h.zc:h.node?h.y=i.y+h.zc:h.centerY=i.y+h.zc),r=Math.min(h.x,r),o=Math.min(h.y,o),n?(s=r,a=Math.max(a,h.bounds.right)):(s=o,a=Math.max(a,h.bounds.bottom))}for(this.xw=a-s,r=i.x-r,i=i.y-o,this.Rf=new pt(e&&n?0:r,e&&!n?0:i),t.reset();t.next();)(e=t.value).x+=r,e.y+=i,e.commit()},Jp.prototype.Gu=function(){for(var t=0,i=this.ie,e=0;e<=this.Ia;e++)t+=this.he[e],t+=this.Ld[e];t+=this.Ia*i,i=[],e=0!==this.ve?this.xw:this.kc*this.Ra;for(var n=this.maxLayer;0<=n;n--)270===this.K?0===n?i.push(new Bt(0,0,e,Math.abs(this.Ta[0]))):i.push(new Bt(0,this.Ta[n-1],e,Math.abs(this.Ta[n-1]-this.Ta[n]))):90===this.K?0===n?i.push(new Bt(0,this.Ta[0],e,Math.abs(this.Ta[0]-t))):i.push(new Bt(0,this.Ta[n],e,Math.abs(this.Ta[n-1]-this.Ta[n]))):180===this.K?0===n?i.push(new Bt(0,0,Math.abs(this.Ta[0]),e)):i.push(new Bt(this.Ta[n-1],0,Math.abs(this.Ta[n-1]-this.Ta[n]),e)):0===n?i.push(new Bt(this.Ta[0],0,Math.abs(this.Ta[0]-t),e)):i.push(new Bt(this.Ta[n],0,Math.abs(this.Ta[n-1]-this.Ta[n]),e));this.commitLayers(i,this.Rf)},Jp.prototype.commitLayers=function(){},Jp.prototype.commitLinks=function(){for(var t,i=this.network.edges.iterator;i.next();)null!==(t=i.value.link)&&(t.uh(),t.Fj(),t.zf());for(i.reset();i.next();)null!==(t=i.value.link)&&t.vg();for(i.reset();i.next();){var e=i.value;if(null!==(t=e.link)){t.uh();var n=t,o=n.fromNode,r=n.toNode,s=n.fromPort,a=n.toPort;if(null!==o){var h=o.findVisibleNode();null!==h&&h!==o&&(o=h,s=h.port)}null!==r&&(null!==(h=r.findVisibleNode())&&h!==r&&(r=h,a=h.port));var l=t.computeSpot(!0,s);h=t.computeSpot(!1,a);var u=e.fromVertex,c=e.toVertex;if(e.valid)t.curve===Jc&&4===t.pointsCount&&(u.column===c.column&&0===this.alignOption?(e=t.getLinkPoint(o,s,l,!0,!1,r,a),a=t.getLinkPoint(r,a,h,!1,!1,o,s),e.w()||e.set(o.actualBounds.center),a.w()||a.set(r.actualBounds.center),t.Fj(),t.yf(e.x,e.y),t.yf((2*e.x+a.x)/3,(2*e.y+a.y)/3),t.yf((e.x+2*a.x)/3,(e.y+2*a.y)/3),t.yf(a.x,a.y)):(e=n=!1,null!==s&&l===Qt&&(n=!0),null!==a&&h===Qt&&(e=!0),(n||e)&&(h=null,n&&((h=t.getLinkPointFromPoint(o,s,s.ga(oi),t.i(3),!0)).w()||h.set(o.actualBounds.center),t.L(0,h.x,h.y)),o=null,e&&((o=t.getLinkPointFromPoint(r,a,a.ga(oi),t.i(0),!1)).w()||o.set(r.actualBounds.center),t.L(3,o.x,o.y)),h&&(r=t.i(2),t.L(1,(2*h.x+r.x)/3,(2*h.y+r.y)/3)),o&&(r=t.i(1),t.L(2,(2*o.x+r.x)/3,(2*o.y+r.y)/3))))),t.zf();else if(u.layer===c.layer)t.zf();else{var f=!1,d=!1,p=this.ie,g=t.firstPickIndex+1;if(t.isOrthogonal){d=!0;var m=t.pointsCount;4<m&&t.points.removeRange(2,m-3)}else if(t.curve===Jc)f=!0,4<(m=t.pointsCount)&&t.points.removeRange(2,m-3),4===m&&(g=2);else{m=t.pointsCount;var y=l===Qt,v=h===Qt;2<m&&y&&v?t.points.removeRange(1,m-2):3<m&&y&&!v?t.points.removeRange(1,m-3):3<m&&!y&&v?t.points.removeRange(2,m-2):4<m&&!y&&!v&&t.points.removeRange(2,m-3)}if(e.rev){for(;null!==c&&u!==c;){var x=m=null;for(y=c.sourceEdges.iterator;y.next()&&((v=y.value).link!==e.link||(m=v.fromVertex,x=v.toVertex,null!==m.node)););if(null===m)break;if(m!==u){y=t.i(g-1).x,v=t.i(g-1).y;var b=m.centerX,w=m.centerY;if(d)180===this.K||0===this.K?g===t.firstPickIndex+1?(t.m(g++,y,v),t.m(g++,y,w)):(null!==x?x.centerY:v)!==w&&(x=this.Ta[m.layer-1]+this.Rf.x,t.m(g++,x,v),t.m(g++,x,w)):g===t.firstPickIndex+1?(t.m(g++,y,v),t.m(g++,b,v)):(null!==x?x.centerX:y)!==b&&(x=this.Ta[m.layer-1]+this.Rf.y,t.m(g++,y,x),t.m(g++,b,x));else if(g===t.firstPickIndex+1){x=Math.max(10,this.he[c.layer]);var k=Math.max(10,this.Ld[c.layer]);if(f)180===this.K?b<=c.bounds.x?(c=c.bounds.x,t.m(g++,c-x,w),t.m(g++,c,w),t.m(g++,c+k,w)):(t.m(g++,b-x,w),t.m(g++,b,w),t.m(g++,b+k,w)):90===this.K?w>=c.bounds.bottom?(c=c.bounds.y+c.bounds.height,t.m(g++,b,c+k),t.m(g++,b,c),t.m(g++,b,c-x)):(t.m(g++,b,w+k),t.m(g++,b,w),t.m(g++,b,w-x)):270===this.K?w<=c.bounds.y?(c=c.bounds.y,t.m(g++,b,c-x),t.m(g++,b,c),t.m(g++,b,c+k)):(t.m(g++,b,w-x),t.m(g++,b,w),t.m(g++,b,w+k)):0===this.K&&(b>=c.bounds.right?(c=c.bounds.x+c.bounds.width,t.m(g++,c+k,w),t.m(g++,c,w),t.m(g++,c-x,w)):(t.m(g++,b+k,w),t.m(g++,b,w),t.m(g++,b-x,w)));else{t.m(g++,y,v);var M=0;180===this.K||0===this.K?((180===this.K?b>=c.bounds.right:b<=c.bounds.x)&&(M=(0===this.K?-x:k)/2),t.m(g++,y+M,w)):((270===this.K?w>=c.bounds.bottom:w<=c.bounds.y)&&(M=(90===this.K?-x:k)/2),t.m(g++,b,v+M)),t.m(g++,b,w)}}else x=Math.max(10,this.he[m.layer]),k=Math.max(10,this.Ld[m.layer]),f?180===this.K?(t.m(g++,b-x-p,w),t.m(g++,Math.min(b-x+p/2,b),w),t.m(g++,b,w),t.m(g++,b,w),t.m(g++,Math.max(b+k-p/2,b),w),t.m(g++,b+k+p,w)):90===this.K?(t.m(g++,b,w+k+p),t.m(g++,b,Math.max(w+k-p/2,w)),t.m(g++,b,w),t.m(g++,b,w),t.m(g++,b,Math.min(w-x+p/2,w)),t.m(g++,b,w-x-p)):270===this.K?(t.m(g++,b,w-x-p),t.m(g++,b,Math.min(w-x+p/2,w)),t.m(g++,b,w),t.m(g++,b,w),t.m(g++,b,Math.max(w+k-p/2,w)),t.m(g++,b,w+k+p)):(t.m(g++,b+k+p,w),t.m(g++,Math.max(b+k-p/2,b),w),t.m(g++,b,w),t.m(g++,b,w),t.m(g++,Math.min(b-x+p/2,b),w),t.m(g++,b-x-p,w)):t.m(g++,b,w)}c=m}(null===a||l!==Qt||d)&&(y=t.i(g-1).x,v=t.i(g-1).y,b=t.i(g).x,w=t.i(g).y,d?(p=this.Ld[u.layer],180===this.K||0===this.K?((d=v)>=u.bounds.y&&d<=u.bounds.bottom&&(180===this.K?b>=u.bounds.x:b<=u.bounds.right)&&(c=u.centerX+(180===this.K?-p:p),d=d<u.bounds.y+u.bounds.height/2?u.bounds.y-this.kc/2:u.bounds.bottom+this.kc/2,t.m(g++,c,v),t.m(g++,c,d)),t.m(g++,b,d)):((d=y)>=u.bounds.x&&d<=u.bounds.right&&(270===this.K?w>=u.bounds.y:w<=u.bounds.bottom)&&(c=u.centerY+(270===this.K?-p:p),d=d<u.bounds.x+u.bounds.width/2?u.bounds.x-this.kc/2:u.bounds.right+this.kc/2,t.m(g++,y,c),t.m(g++,d,c)),t.m(g++,d,w)),t.m(g++,b,w)):f?(x=Math.max(10,this.he[u.layer]),k=Math.max(10,this.Ld[u.layer]),180===this.K&&b>=u.bounds.x?(c=u.bounds.x+u.bounds.width,t.L(g-2,c,v),t.L(g-1,c+k,v)):90===this.K&&w<=u.bounds.bottom?(c=u.bounds.y,t.L(g-2,y,c),t.L(g-1,y,c-x)):270===this.K&&w>=u.bounds.y?(c=u.bounds.y+u.bounds.height,t.L(g-2,y,c),t.L(g-1,y,c+k)):0===this.K&&b<=u.bounds.right&&(c=u.bounds.x,t.L(g-2,c,v),t.L(g-1,c-x,v))):(x=Math.max(10,this.he[u.layer]),k=Math.max(10,this.Ld[u.layer]),d=0,180===this.K||0===this.K?((180===this.K?b<=u.bounds.x:b>=u.bounds.right)&&(d=(0===this.K?k:-x)/2),t.m(g++,b+d,v)):((270===this.K?w<=u.bounds.y:w>=u.bounds.bottom)&&(d=(90===this.K?k:-x)/2),t.m(g++,y,w+d)),t.m(g++,b,w)))}else{for(;null!==u&&u!==c;){for(x=m=null,u=u.destinationEdges.iterator;u.next()&&((y=u.value).link!==e.link||(m=y.toVertex,null!==(x=y.fromVertex).node&&(x=null),null!==m.node)););if(null===m)break;m!==c&&(y=t.i(g-1).x,v=t.i(g-1).y,b=m.centerX,w=m.centerY,d?180===this.K||0===this.K?(null!==x?x.centerY:v)!==w&&(x=this.Ta[m.layer]+this.Rf.x,g===t.firstPickIndex+1&&(x=0===this.K?Math.max(x,y):Math.min(x,y)),t.m(g++,x,v),t.m(g++,x,w)):(null!==x?x.centerX:y)!==b&&(x=this.Ta[m.layer]+this.Rf.y,g===t.firstPickIndex+1&&(x=90===this.K?Math.max(x,v):Math.min(x,v)),t.m(g++,y,x),t.m(g++,b,x)):(x=Math.max(10,this.he[m.layer]),k=Math.max(10,this.Ld[m.layer]),f?180===this.K?(t.m(g++,b+k+p,w),t.m(g++,Math.max(b+k-p/2,b),w),t.m(g++,b,w),t.m(g++,b,w),t.m(g++,Math.min(b-x+p/2,b),w),t.m(g++,b-x-p,w)):90===this.K?(t.m(g++,b,w-x-p),t.m(g++,b,Math.min(w-x+p/2,w)),t.m(g++,b,w),t.m(g++,b,w),t.m(g++,b,Math.max(w+k-p/2,w)),t.m(g++,b,w+k+p)):270===this.K?(t.m(g++,b,w+k+p),t.m(g++,b,Math.max(w+k-p/2,w)),t.m(g++,b,w),t.m(g++,b,w),t.m(g++,b,Math.min(w-x+p/2,w)),t.m(g++,b,w-x-p)):(t.m(g++,b-x-p,w),t.m(g++,Math.min(b-x+p/2,b),w),t.m(g++,b,w),t.m(g++,b,w),t.m(g++,Math.max(b+k-p/2,b),w),t.m(g++,b+k+p,w)):180===this.K?(t.m(g++,b+k,w),t.m(g++,b-x,w)):90===this.K?(t.m(g++,b,w-x),t.m(g++,b,w+k)):270===this.K?(t.m(g++,b,w+k),t.m(g++,b,w-x)):(t.m(g++,b-x,w),t.m(g++,b+k,w)))),u=m}d&&(y=t.i(g-1).x,v=t.i(g-1).y,b=t.i(g).x,w=t.i(g).y,180===this.K||0===this.K?v!==w&&(x=0===this.K?Math.min(Math.max((b+y)/2,this.Ta[c.layer]+this.Rf.x),b):Math.max(Math.min((b+y)/2,this.Ta[c.layer]+this.Rf.x),b),t.m(g++,x,v),t.m(g++,x,w)):y!==b&&(x=90===this.K?Math.min(Math.max((w+v)/2,this.Ta[c.layer]+this.Rf.y),w):Math.max(Math.min((w+v)/2,this.Ta[c.layer]+this.Rf.y),w),t.m(g++,y,x),t.m(g++,b,x)))}null!==n&&f&&4<=t.pointsCount&&(null!==s&&(s=l===Qt?t.getLinkPointFromPoint(o,s,s.ga(oi),t.i(3),!0):t.i(0),l===Qt&&(l=t.i(2),n=t.i(3),90===this.direction||270===this.direction?(t.L(1,(s.x+l.x)/2,l.y),t.L(2,n.x,(l.y+n.y)/2)):(t.L(1,l.x,(s.y+l.y)/2),t.L(2,(l.x+n.x)/2,n.y))),s.w()||s.set(o.actualBounds.center),t.L(0,s.x,s.y)),null!==a&&(o=h===Qt?t.getLinkPointFromPoint(r,a,a.ga(oi),t.i(t.pointsCount-4),!1):t.i(t.pointsCount-1),h===Qt&&(a=t.i(t.pointsCount-3),h=t.i(t.pointsCount-4),90===this.direction||270===this.direction?(t.L(t.pointsCount-2,(o.x+a.x)/2,a.y),t.L(t.pointsCount-2,h.x,(a.y+h.y)/2)):(t.L(t.pointsCount-2,a.x,(o.y+a.y)/2),t.L(t.pointsCount-3,(a.x+h.x)/2,h.y))),o.w()||o.set(r.actualBounds.center),t.L(t.pointsCount-1,o.x,o.y))),t.zf(),e.commit()}}}this.avoidOrthogonalOverlaps()},Jp.prototype.avoidOrthogonalOverlaps=function(){if(!(0>=this.linkSpacing)){for(var t=new Z,i=this.network.edges.iterator;i.next();){var e=i.value.link;null!==e&&e.isOrthogonal&&!t.contains(e)&&t.add(e)}if(0<t.count)if(90===this.K||270===this.K){for(i=0,e=[],t=t.iterator;t.next();){var n=t.value;if(null!==n&&n.isOrthogonal)for(var o=2;o<n.pointsCount-3;o++){var r=n.i(o),s=n.i(o+1);if(this.B(r.y,s.y)&&!this.B(r.x,s.x)){var a=new qg;a.layer=Math.floor(r.y/2);var h=n.i(0),l=n.i(n.pointsCount-1);if(a.first=h.x*h.x+h.y,a.jc=l.x*l.x+l.y,a.rd=Math.min(r.x,s.x),a.Ic=Math.max(r.x,s.x),a.index=o,a.link=n,o+2<n.pointsCount){h=n.i(o-1),l=n.i(o+2);var u=0;h.y<r.y?u=l.y<r.y?3:r.x<s.x?2:1:h.y>r.y&&(u=l.y>r.y?0:s.x<r.x?2:1),a.j=u}e.push(a)}}}if(1<e.length)for(e.sort(this.Vx),t=0;t<e.length;){for(r=e[t].layer,n=t+1;n<e.length&&e[n].layer===r;)n++;if(1<n-t)for(r=t;r<n;){for(s=e[r].Ic,o=t+1;o<n&&e[o].rd<s;)s=Math.max(s,e[o].Ic),o++;if(1<(s=o-r)){for(this.zi(e,this.Js,r,r+s),u=1,a=e[r].jc,h=r;h<o;h++)(l=e[h]).jc!==a&&(u++,a=l.jc);this.zi(e,this.Ux,r,r+s);var c=1;for(a=e[r].first,h=r;h<o;h++)(l=e[h]).first!==a&&(c++,a=l.first);for(h=!0,l=c,u<c?(h=!1,l=u,a=e[r].jc,this.zi(e,this.Js,r,r+s)):a=e[r].first,u=0,c=r;c<o;c++){var f=e[c];(h?f.first:f.jc)!==a&&(u++,a=h?f.first:f.jc);var d=f.link;r=d.i(f.index),s=d.i(f.index+1);var p=this.linkSpacing*(u-(l-1)/2);i++,d.uh(),d.L(f.index,r.x,r.y+p),d.L(f.index+1,s.x,s.y+p),d.zf()}}r=o}t=n}}else{for(i=0,e=[],t=t.iterator;t.next();)if(null!==(n=t.value)&&n.isOrthogonal)for(o=2;o<n.pointsCount-3;o++)r=n.i(o),s=n.i(o+1),this.B(r.x,s.x)&&!this.B(r.y,s.y)&&((a=new qg).layer=Math.floor(r.x/2),h=n.i(0),l=n.i(n.pointsCount-1),a.first=h.x+h.y*h.y,a.jc=l.x+l.y*l.y,a.rd=Math.min(r.y,s.y),a.Ic=Math.max(r.y,s.y),a.index=o,a.link=n,o+2<n.pointsCount&&(h=n.i(o-1),l=n.i(o+2),u=0,h.x<r.x?u=l.x<r.x?3:r.y<s.y?2:1:h.x>r.x&&(u=l.x>r.x?0:s.y<r.y?2:1),a.j=u),e.push(a));if(1<e.length)for(e.sort(this.Vx),t=0;t<e.length;){for(r=e[t].layer,n=t+1;n<e.length&&e[n].layer===r;)n++;if(1<n-t)for(r=t;r<n;){for(s=e[r].Ic,o=t+1;o<n&&e[o].rd<s;)s=Math.max(s,e[o].Ic),o++;if(1<(s=o-r)){for(this.zi(e,this.Js,r,r+s),u=1,a=e[r].jc,h=r;h<o;h++)(l=e[h]).jc!==a&&(u++,a=l.jc);for(this.zi(e,this.Ux,r,r+s),c=1,a=e[r].first,h=r;h<o;h++)(l=e[h]).first!==a&&(c++,a=l.first);for(h=!0,l=c,u<c?(h=!1,l=u,a=e[r].jc,this.zi(e,this.Js,r,r+s)):a=e[r].first,u=0,c=r;c<o;c++)f=e[c],(h?f.first:f.jc)!==a&&(u++,a=h?f.first:f.jc),r=(d=f.link).i(f.index),s=d.i(f.index+1),p=this.linkSpacing*(u-(l-1)/2),i++,d.uh(),d.L(f.index,r.x+p,r.y),d.L(f.index+1,s.x+p,s.y),d.zf()}r=o}t=n}}}},(i=Jp.prototype).Vx=function(t,i){return t instanceof qg&&i instanceof qg&&t!==i?t.layer<i.layer?-1:t.layer>i.layer?1:t.rd<i.rd?-1:t.rd>i.rd?1:t.Ic<i.Ic?-1:t.Ic>i.Ic?1:0:0},i.Ux=function(t,i){return t instanceof qg&&i instanceof qg&&t!==i?t.first<i.first?-1:t.first>i.first||t.j<i.j?1:t.j>i.j||t.rd<i.rd?-1:t.rd>i.rd?1:t.Ic<i.Ic?-1:t.Ic>i.Ic?1:0:0},i.Js=function(t,i){return t instanceof qg&&i instanceof qg&&t!==i?t.jc<i.jc?-1:t.jc>i.jc||t.j<i.j?1:t.j>i.j||t.rd<i.rd?-1:t.rd>i.rd?1:t.Ic<i.Ic?-1:t.Ic>i.Ic?1:0:0},i.B=function(t,i){return-1<(t-=i)&&1>t},i.zi=function(t,i,e,n){var o=t.length,r=n-e;if(!(1>=r))if((0>e||e>=o-1)&&w("not in range 0 <= from < length: "+e),2===r)0<i(n=t[e],o=t[e+1])&&(t[e]=o,t[e+1]=n);else if(0===e)if(n>=o)t.sort(i);else for((e=t.slice(0,n)).sort(i),i=0;i<n;i++)t[i]=e[i];else if(n>=o)for((n=t.slice(e)).sort(i),i=e;i<o;i++)t[i]=n[i-e];else for((o=t.slice(e,n)).sort(i),i=e;i<n;i++)t[i]=o[i-e]},f.Object.defineProperties(Jp.prototype,{layerSpacing:{get:function(){return this.ie},set:function(t){this.ie!==t&&0<=t&&(this.ie=t,this.C())}},columnSpacing:{get:function(){return this.kc},set:function(t){this.kc!==t&&0<t&&(this.kc=t,this.C())}},direction:{get:function(){return this.K},set:function(t){this.K!==t&&(0===t||90===t||180===t||270===t?(this.K=t,this.C()):w("LayeredDigraphLayout.direction must be 0, 90, 180, or 270"))}},cycleRemoveOption:{get:function(){return this.Dk},set:function(t){this.Dk===t||t!==Dg&&t!==Fg&&t!==Bg||(this.Dk=t,this.C())}},layeringOption:{get:function(){return this.Zk},set:function(t){this.Zk===t||t!==Og&&t!==Ig&&t!==zg||(this.Zk=t,this.C())}},initializeOption:{get:function(){return this.Qk},set:function(t){this.Qk===t||t!==Rg&&t!==Eg&&t!==Vg||(this.Qk=t,this.C())}},iterations:{get:function(){return this.bj},set:function(t){this.bj!==t&&0<=t&&(this.bj=t,this.C())}},aggressiveOption:{get:function(){return this.rk},set:function(t){this.rk===t||t!==Yg&&t!==Gg&&t!==Xg||(this.rk=t,this.C())}},packOption:{get:function(){return this.bg},set:function(t){this.bg!==t&&0<=t&&8>t&&(this.bg=t,this.C())}},alignOption:{get:function(){return this.ve},set:function(t){this.ve!==t&&0<=t&&16>t&&(this.ve=t,this.C())}},setsPortSpots:{get:function(){return this.sf},set:function(t){this.sf!==t&&(this.sf=t,this.C())}},linkSpacing:{get:function(){return this.Cn},set:function(t){this.Cn!==t&&0<=t&&(this.Cn=t,this.C())}},maxLayer:{get:function(){return this.Ia}},maxIndex:{get:function(){return this.Iq}},maxColumn:{get:function(){return this.Ra}},minIndexLayer:{get:function(){return this.Hn}},maxIndexLayer:{get:function(){return this.Md}}});var Fg=new V(Jp,"CycleDepthFirst",0),Dg=new V(Jp,"CycleGreedy",1),Bg=new V(Jp,"CycleFromLayers",2),Og=new V(Jp,"LayerOptimalLinkLength",0),Ig=new V(Jp,"LayerLongestPathSink",1),zg=new V(Jp,"LayerLongestPathSource",2),Rg=new V(Jp,"InitDepthFirstOut",0),Eg=new V(Jp,"InitDepthFirstIn",1),Vg=new V(Jp,"InitNaive",2),Yg=new V(Jp,"AggressiveNone",0),Gg=new V(Jp,"AggressiveLess",1),Xg=new V(Jp,"AggressiveMore",2),Ug=8;function qg(){this.index=this.Ic=this.rd=this.jc=this.first=this.layer=0,this.link=null,this.j=0}function Hg(t){Of.call(this,t)}function Kg(t){Vf.call(this,t),this.$n=this.bo=this.ao=this.co=null,this.Za=this.Ag=this.Ig=-1,this.u=NaN,this.F=null,this.valid=!1,this.finish=this.Ll=NaN,this.Dj=0,this.dv=this.ev=null}function Wg(t,i){return t.index-i.index}function Jg(t,i){if(!t.$n){for(var e=[],n=o(t.destinationEdgesArrayAccess),r=n.next();!r.done;r=n.next())(r=r.value).valid&&e.push(r);t.$n=e}for(e=(t=o(t.$n)).next();!e.done;e=t.next())if((e=e.value).toVertex===i)return e;w("Unable to find destination edge to given vertex")}function Zg(t){if(!t.co){for(var i=[],e=o(t.sourceEdgesArrayAccess),n=e.next();!n.done;n=e.next())(n=n.value).valid&&i.push(n.fromVertex);i.sort(Wg),t.co=i}return t.co}function _g(t){if(!t.ao){for(var i=[],e=o(t.destinationEdgesArrayAccess),n=e.next();!n.done;n=e.next())(n=n.value).valid&&i.push(n.toVertex);i.sort(Wg),t.ao=i}return t.ao}function $g(t){Gf.call(this,t),this.j=this.ia=this.Ha=!1,this.V=this.u=NaN,this.F=this.o=0}function Qg(t){Ff.call(this),this.Ub=new $,this.Wn=Cm,this.ud=Tm,this.vo=Um,this.Bq=_m,this.$v=[],this.td=!0,this.Rb=Wm,this.$d=new At(10,10).freeze();var i=new ty(this);this.W=new iy(i),this.Y=new iy(i),this.ru=[],t&&Object.assign(this,t)}function tm(t){var i=new $;for(t=t.iterator;t.next();){var e=t.value;e.initialized||i.add(e)}return i}function im(t,i){var e=999999,n=null;for(i=i.iterator;i.next();){var o=i.value;switch(t.ud){case Tm:o.sourceEdges.count<e&&(e=o.sourceEdges.count,n=o);break;case Lm:o.destinationEdges.count<e&&(e=o.destinationEdges.count,n=o);break;default:w("Unhandled path value "+t.ud.toString())}}return n}function em(t,i){if(null!==i){switch(t.ud){case Tm:if(0<i.destinationEdges.count){for(var e=new Z,n=i.destinationVertexes;n.next();){var o=n.value;nm(t,i,o)&&e.add(o)}0<e.count&&(i.children=e.Fa())}break;case Lm:if(0<i.sourceEdges.count){for(e=new Z,n=i.sourceVertexes;n.next();)nm(t,i,o=n.value)&&e.add(o);0<e.count&&(i.children=e.Fa())}break;default:w("Unhandled path value"+t.ud.toString())}for(n=(e=i.children).length,o=0;o<n;o++){var r=e[o];r.initialized=!0,r.level=i.level+1,r.parent=i,t.Ub.remove(r)}for(i=0;i<n;i++)em(t,e[i])}}function nm(t,i,e){if(e.initialized){if(null===i)var n=!1;else{for(n=i.parent;null!==n&&n!==e;)n=n.parent;n=n===e}if(n||e.level>i.level)return!1;t.removeChild(e.parent,e)}return!0}function om(t,i){if(null!==i){t.initializeTreeVertexValues(i),i.alignment===Em&&t.sortTreeVertexChildren(i);for(var e=0,n=i.childrenCount,o=0,r=i.children,s=r.length,a=0;a<s;a++){var h=r[a];om(t,h),e+=h.descendantCount+1,n=Math.max(n,h.maxChildrenCount),o=Math.max(o,h.maxGenerationCount)}i.descendantCount=e,i.maxChildrenCount=n,i.maxGenerationCount=0<n?o+1:0}}function rm(t,i){if(null!==i){t.assignTreeVertexValues(i);for(var e=(i=i.children).length,n=0;n<e;n++)rm(t,i[n])}}function sm(t,i){if(null!==i){i.alignment!==Em&&t.sortTreeVertexChildren(i);for(var e=(i=i.children).length,n=0;n<e;n++)sm(t,i[n])}}function am(t){return t===Rm||t===Em||t===Vm||t===Ym}function hm(t){return t===Rm||t===Em}function lm(t){var i=t.parent;if(null!==i){var e=i.alignment;if(am(e)){if(hm(e)){for(i=i.children,e=0;e<i.length&&t!==i[e];)e++;return 0==e%2}if(e===Vm)return!0}}return!1}function um(t,i){if(0===i.childrenCount){var e=!1,n=0;null!==i.parent&&(n=i.parent.angle,e=am(e=i.parent.alignment));var o=lm(i);i.S.h(0,0),i.Da.h(i.width,i.height),null===i.parent||null===i.comments||(180!==n&&270!==n||e)&&!o?i.la.h(0,0):180===n&&!e||(90===n||270===n)&&o?i.la.h(i.width-2*i.focus.x,0):i.la.h(0,i.height-2*i.focus.y)}else{e=90===(n=Nm(i))||270===n;for(var r=0,s=(o=i.children).length,a=0;a<s;a++){var h=o[a];r=Math.max(r,e?h.Da.width:h.Da.height)}var l=i.alignment,u=l===Im,c=l===zm;a=am(l);var f=Math.max(0,i.breadthLimit);h=t.computeLayerSpacing(i);var d=i.nodeSpacing,p=t.computeNodeIndent(i),g=u||c?0:p/2,m=i.rowSpacing,y=0;(u||c||i.hm||i.im&&1===i.maxGenerationCount)&&(y=Math.max(0,i.rowIndent)),u=i.width;var v=i.height,x=0,b=0,w=0,k=0,M=0,S=0,P=0,N=0,C=0,T=0;if(a&&!hm(l)&&135<n&&o.reverse(),hm(l))if(1<s)for(var L=0;L<s;L++){var A=o[L],j=A.Da;0==L%2&&L!==s-1?C=Math.max(C,(e?j.width:j.height)+t.computeBusNodeSpacing(A)-d):0!=L%2&&(T=Math.max(T,(e?j.width:j.height)+t.computeBusNodeSpacing(A)-d))}else 1===s&&(C=e?o[0].Da.width:o[0].Da.height);if(a)switch(l){case Rm:case Em:C=(b=135>n?cm(t,i,o,C,x,b):fm(t,i,o,C,x,b)).x,x=b.width,b=b.height;break;case Vm:for(f=0;f<s;f++)w=(g=o[f]).Da,T=0===P?0:m,e?(g.S.h(r-w.width,M+T),x=Math.max(x,w.width),b=Math.max(b,M+T+w.height),M+=T+w.height):(g.S.h(k+T,r-w.height),x=Math.max(x,k+T+w.width),b=Math.max(b,w.height),k+=T+w.width),P++;break;case Ym:for(r=0;r<s;r++)g=(f=o[r]).Da,w=0===P?0:m,e?(f.S.h(d/2+i.focus.x,M+w),x=Math.max(x,g.width),b=Math.max(b,M+w+g.height),M+=w+g.height):(f.S.h(k+w,d/2+i.focus.y),x=Math.max(x,k+w+g.width),b=Math.max(b,g.height),k+=w+g.width),P++}else for(T=0;T<s;T++)A=(L=o[T]).Da,e?(0<f&&0<P&&k+d+A.width>f&&(k<r&&ym(i,l,r-k,0,N,T-1),S++,P=0,N=T,w=b,k=0,M=135<n?-b-m:b+m),j=0===P?g:d,xm(t,L,0,M),L.S.h(k+j,M),x=Math.max(x,k+j+A.width),b=Math.max(b,w+(0===S?0:m)+A.height),k+=j+A.width):(0<f&&0<P&&M+d+A.height>f&&(M<r&&ym(i,l,0,r-M,N,T-1),S++,P=0,N=T,w=x,M=0,k=135<n?-x-m:x+m),j=0===P?g:d,xm(t,L,k,0),L.S.h(k,M+j),b=Math.max(b,M+j+A.height),x=Math.max(x,w+(0===S?0:m)+A.width),M+=j+A.height),P++;switch(0<S&&(e?(b+=Math.max(0,h),k<x&&ym(i,l,x-k,0,N,s-1),0<y&&(c||vm(i,y,0,0,s-1),x+=y)):(x+=Math.max(0,h),M<b&&ym(i,l,0,b-M,N,s-1),0<y&&(c||vm(i,0,y,0,s-1),b+=y))),y=c=0,l){case Bm:e?c+=x/2-i.focus.x-p/2:y+=b/2-i.focus.y-p/2;break;case Om:0<S?e?c+=x/2-i.focus.x-p/2:y+=b/2-i.focus.y-p/2:e?c+=(t=o[0].S.x+o[0].la.x)+(o[s-1].S.x+o[s-1].la.x+2*o[s-1].focus.x-t)/2-i.focus.x-p/2:y+=(t=o[0].S.y+o[0].la.y)+(o[s-1].S.y+o[s-1].la.y+2*o[s-1].focus.y-t)/2-i.focus.y-p/2;break;case Im:e?(c-=p,x+=p):(y-=p,b+=p);break;case zm:e?(c+=x-i.width+p,x+=p):(y+=b-i.height+p,b+=p);break;case Rm:case Em:e?c+=1<s?C+d/2-i.focus.x:o[0].focus.x-i.focus.x+o[0].la.x:y+=1<s?C+d/2-i.focus.y:o[0].focus.y-i.focus.y+o[0].la.y;break;case Vm:e?c+=x+d/2-i.focus.x:y+=b+d/2-i.focus.y;break;case Ym:break;default:c=(t=t.customAlignment(i,c,y,x,b))[0],y=t[1],x=t[2],b=t[3]}for(t=0;t<s;t++)p=o[t],e?p.S.h(p.S.x+p.la.x-c,p.S.y+(135<n?(a?-b:-p.Da.height)+p.la.y-h:v+h+p.la.y)):p.S.h(p.S.x+(135<n?(a?-x:-p.Da.width)+p.la.x-h:u+h+p.la.x),p.S.y+p.la.y-y);e?(x=pm(i,x,c),0>c&&(c=0),135<n&&(y+=b+h),b=Math.max(Math.max(b,v),b+v+h)):(135<n&&(c+=x+h),x=Math.max(Math.max(x,u),x+u+h),b=gm(i,b,y),0>y&&(y=0)),i.la.h(c,y),i.Da.h(x,b)}}function cm(t,i,e,n,o,r){var s=e.length;if(0===s)return new Bt(n,0,o,r);if(1===s)return new Bt(n,0,o=(i=e[0]).Da.width,r=i.Da.height);for(var a=i.nodeSpacing,h=i.rowSpacing,l=90===Nm(i),u=0,c=0,f=0,d=0;d<s;d++)if(!(0!=d%2||1<s&&d===s-1)){var p=e[d],g=p.Da,m=0===u?0:h;if(l){var y=t.computeBusNodeSpacing(p)-a;p.S.h(n-(g.width+y),f+m),o=Math.max(o,g.width+y),r=Math.max(r,f+m+g.height),f+=m+g.height}else y=t.computeBusNodeSpacing(p)-a,p.S.h(c+m,n-(g.height+y)),r=Math.max(r,g.height+y),o=Math.max(o,c+m+g.width),c+=m+g.width;u++}for(u=0,p=c,d=f,l?(c=n+a,f=0):(c=0,f=n+a),g=0;g<s;g++)if(0!=g%2){y=(m=e[g]).Da;var v=0===u?0:h;if(l){var x=t.computeBusNodeSpacing(m)-a;m.S.h(c+x,f+v),o=Math.max(o,c+y.width+x),r=Math.max(r,f+v+y.height),f+=v+y.height}else x=t.computeBusNodeSpacing(m)-a,m.S.h(c+v,f+x),o=Math.max(o,c+v+y.width),r=Math.max(r,f+y.height+x),c+=v+y.width;u++}return 1<s&&1==s%2&&(s=(e=e[s-1]).Da,t=t.computeBusLastRowSpacing(e,l?Math.max(Math.abs(d),Math.abs(f)):Math.max(Math.abs(p),Math.abs(c))),l?(e.S.h(n+a/2-e.focus.x-e.la.x,r+t),l=n+a/2-e.focus.x-e.la.x,o=Math.max(o,l+s.width),0>l&&(o-=l),r=Math.max(r,Math.max(d,f)+t+s.height),0>e.S.x&&(n=dm(i,e.S.x,!1,n,a))):(e.S.h(o+t,n+a/2-e.focus.y-e.la.y),o=Math.max(o,Math.max(p,c)+t+s.width),f=n+a/2-e.focus.y-e.la.y,r=Math.max(r,f+s.height),0>f&&(r-=f),0>e.S.y&&(n=dm(i,e.S.y,!0,n,a)))),new Bt(n,0,o,r)}function fm(t,i,e,n,o,r){var s=e.length;if(0===s)return new Bt(n,0,o,r);if(1===s)return new Bt(n,0,o=(e=e[0]).Da.width,r=e.Da.height);for(var a=i.nodeSpacing,h=i.rowSpacing,l=270===Nm(i),u=0,c=0,f=0,d=0;d<s;d++)if(!(0!=d%2||1<s&&d===s-1)){var p=e[d],g=p.Da,m=0===u?0:h;if(l){var y=t.computeBusNodeSpacing(p)-a;f-=m+g.height,p.S.h(n-(g.width+y),f),o=Math.max(o,g.width+y),r=Math.max(r,Math.abs(f))}else y=t.computeBusNodeSpacing(p)-a,c-=m+g.width,p.S.h(c,n-(g.height+y)),r=Math.max(r,g.height+y),o=Math.max(o,Math.abs(c));u++}for(u=0,p=c,d=f,l?(c=n+a,f=0):(c=0,f=n+a),g=0;g<s;g++)if(0!=g%2){y=(m=e[g]).Da;var v=0===u?0:h;if(l){var x=t.computeBusNodeSpacing(m)-a;f-=v+y.height,m.S.h(c+x,f),o=Math.max(o,c+y.width+x),r=Math.max(r,Math.abs(f))}else x=t.computeBusNodeSpacing(m)-a,c-=v+y.width,m.S.h(c,f+x),r=Math.max(r,f+y.height+x),o=Math.max(o,Math.abs(c));u++}for(1<s&&1==s%2&&(u=(h=e[s-1]).Da,t=t.computeBusLastRowSpacing(h,l?Math.max(Math.abs(d),Math.abs(f)):Math.max(Math.abs(p),Math.abs(c))),l?(h.S.h(n+a/2-h.focus.x-h.la.x,-r-u.height-t),c=n+a/2-h.focus.x-h.la.x,o=Math.max(o,c+u.width),0>c&&(o-=c),r=Math.max(r,Math.abs(Math.min(d,f))+t+u.height),0>h.S.x&&(n=dm(i,h.S.x,!1,n,a))):(h.S.h(-o-u.width-t,n+a/2-h.focus.y-h.la.y),o=Math.max(o,Math.abs(Math.min(p,c))+t+u.width),f=n+a/2-h.focus.y-h.la.y,r=Math.max(r,f+u.height),0>f&&(r-=f),0>h.S.y&&(n=dm(i,h.S.y,!0,n,a)))),i=0;i<s;i++)a=e[i],l?a.S.h(a.S.x,a.S.y+r):a.S.h(a.S.x+o,a.S.y);return new Bt(n,0,o,r)}function dm(t,i,e,n,o){for(var r=(t=t.children).length,s=0;s<r;s++)e?t[s].S.h(t[s].S.x,t[s].S.y-i):t[s].S.h(t[s].S.x-i,t[s].S.y);return i=t[r-1],Math.max(n,e?i.la.y+i.focus.y-o/2:i.la.x+i.focus.x-o/2)}function pm(t,i,e){switch(t.alignment){case Om:case Bm:return e+t.width>i&&(i=e+t.width),0>e&&(i-=e),i;case Im:return t.width>i?t.width:i;case zm:return 2*t.focus.x>i?t.width:i+t.width-2*t.focus.x;case Rm:case Em:return Math.max(t.width,Math.max(i,e+t.width)-Math.min(0,e));case Vm:return t.width-t.focus.x+t.nodeSpacing/2+i;case Ym:return Math.max(t.width,t.focus.x+t.nodeSpacing/2+i);default:return i}}function gm(t,i,e){switch(t.alignment){case Om:case Bm:return e+t.height>i&&(i=e+t.height),0>e&&(i-=e),i;case Im:return t.height>i?t.height:i;case zm:return 2*t.focus.y>i?t.height:i+t.height-2*t.focus.y;case Rm:case Em:return Math.max(t.height,Math.max(i,e+t.height)-Math.min(0,e));case Vm:return t.height-t.focus.y+t.nodeSpacing/2+i;case Ym:return Math.max(t.height,t.focus.y+t.nodeSpacing/2+i);default:return i}}function mm(t,i,e){switch(t){case Bm:case Om:i/=2,e/=2;break;case Im:e=i=0;break;case zm:break;default:w("Unhandled alignment value "+t.toString())}return new pt(i,e)}function ym(t,i,e,n,o,r){vm(t,(i=mm(i,e,n)).x,i.y,o,r)}function vm(t,i,e,n,o){if(0!==i||0!==e)for(t=t.children;n<=o;n++){var r=t[n].S;r.x+=i,r.y+=e}}function xm(t,i,e,n){var o=i.parent;switch(t.ud){case Tm:for(t=i.sourceEdges;t.next();)(i=t.value).fromVertex===o&&i.relativePoint.h(e,n);break;case Lm:for(t=i.destinationEdges;t.next();)(i=t.value).toVertex===o&&i.relativePoint.h(e,n);break;default:w("Unhandled path value "+t.ud.toString())}}function bm(t,i,e){for(var n=0;n<t.length;n++){var o=t[n];o.x+=i,o.y+=e}}function wm(t,i,e,n,o,r,s,a){var h=Nm(i),l=90===h||270===h,u=i.nodeSpacing;i=n;var c=o;n=r;var f=s,d=e.Yo,p=e.kp;s=e.Da;var g=l?Math.max(f,s.height):Math.max(n,s.width);if(null!==d&&h===Nm(e)||(d=km(t,2),p=km(t,2),l?(d[0].h(0,0),d[1].h(0,s.height),p[0].h(s.width,0),p[1].h(p[0].x,d[1].y)):(d[0].h(0,0),d[1].h(s.width,0),p[0].h(0,s.height),p[1].h(d[1].x,p[0].y))),l){if(f=9999999,!(null===c||2>c.length||null===d||2>d.length))for(o=e=0;e<c.length&&o<d.length;){r=c[e];var m=d[o];h=m.x,l=m.y,h+=n;var y=r;e+1<c.length&&(y=c[e+1]);var v=m;m=v.x,v=v.y,o+1<d.length&&(m=(v=d[o+1]).x,v=v.y,m+=n);var x=f;r.y===l?x=h-r.x:r.y>l&&r.y<v?x=h+(r.y-l)/(v-l)*(m-h)-r.x:l>r.y&&l<y.y&&(x=h-(r.x+(l-r.y)/(y.y-r.y)*(y.x-r.x))),x<f&&(f=x),y.y<=r.y?e++:v<=l?o++:(y.y<=v&&e++,v<=y.y&&o++)}if(f=n-f,e=d,o=f+=u,null===i||2>i.length||null===e||2>e.length)n=null;else{for(u=km(t,i.length+e.length),n=r=h=0;r<e.length&&e[r].y<i[0].y;)l=e[r++],u[n++].h(l.x+o,l.y);for(;h<i.length;)l=i[h++],u[n++].h(l.x,l.y);for(h=i[i.length-1].y;r<e.length&&e[r].y<=h;)r++;for(;r<e.length&&e[r].y>h;)l=e[r++],u[n++].h(l.x+o,l.y);for(e=km(t,n),h=0;h<n;h++)e[h].assign(u[h]);Mm(t,u),n=e}if(r=p,h=f,null===c||2>c.length||null===r||2>r.length)o=null;else{for(u=km(t,c.length+r.length),o=l=e=0;e<c.length&&c[e].y<r[0].y;)y=c[e++],u[o++].h(y.x,y.y);for(;l<r.length;)y=r[l++],u[o++].h(y.x+h,y.y);for(r=r[r.length-1].y;e<c.length&&c[e].y<=r;)e++;for(;e<c.length&&c[e].y>r;)h=c[e++],u[o++].h(h.x,h.y);for(r=km(t,o),e=0;e<o;e++)r[e].assign(u[e]);Mm(t,u),o=r}return r=Math.max(0,f)+s.width,s=g,Mm(t,i),Mm(t,d),Mm(t,c),Mm(t,p),a[0]=n,a[1]=o,new Bt(f,0,r,s)}if(n=9999999,!(null===c||2>c.length||null===d||2>d.length))for(o=e=0;e<c.length&&o<d.length;)r=c[e],h=(m=d[o]).x,l=m.y,l+=f,y=r,e+1<c.length&&(y=c[e+1]),m=(v=m).x,v=v.y,o+1<d.length&&(m=(v=d[o+1]).x,v=v.y,v+=f),x=n,r.x===h?x=l-r.y:r.x>h&&r.x<m?x=l+(r.x-h)/(m-h)*(v-l)-r.y:h>r.x&&h<y.x&&(x=l-(r.y+(h-r.x)/(y.x-r.x)*(y.y-r.y))),x<n&&(n=x),y.x<=r.x?e++:m<=h?o++:(y.x<=m&&e++,m<=y.x&&o++);if(f-=n,e=d,o=f+=u,null===i||2>i.length||null===e||2>e.length)n=null;else{for(u=km(t,i.length+e.length),n=r=h=0;r<e.length&&e[r].x<i[0].x;)l=e[r++],u[n++].h(l.x,l.y+o);for(;h<i.length;)l=i[h++],u[n++].h(l.x,l.y);for(h=i[i.length-1].x;r<e.length&&e[r].x<=h;)r++;for(;r<e.length&&e[r].x>h;)l=e[r++],u[n++].h(l.x,l.y+o);for(e=km(t,n),h=0;h<n;h++)e[h].assign(u[h]);Mm(t,u),n=e}if(r=p,h=f,null===c||2>c.length||null===r||2>r.length)o=null;else{for(u=km(t,c.length+r.length),o=l=e=0;e<c.length&&c[e].x<r[0].x;)y=c[e++],u[o++].h(y.x,y.y);for(;l<r.length;)y=r[l++],u[o++].h(y.x,y.y+h);for(r=r[r.length-1].x;e<c.length&&c[e].x<=r;)e++;for(;e<c.length&&c[e].x>r;)h=c[e++],u[o++].h(h.x,h.y);for(r=km(t,o),e=0;e<o;e++)r[e].assign(u[e]);Mm(t,u),o=r}return r=g,s=Math.max(0,f)+s.height,Mm(t,i),Mm(t,d),Mm(t,c),Mm(t,p),a[0]=n,a[1]=o,new Bt(f,0,r,s)}function km(t,i){if(void 0!==(t=t.ru[i])&&void 0!==(t=t.pop()))return t;t=[];for(var e=0;e<i;e++)t[e]=new pt;return t}function Mm(t,i){var e=i.length,n=t.ru[e];void 0===n&&(n=[],t.ru[e]=n),n.push(i)}function Sm(t,i,e,n){if(null!==i){i.x=e,i.y=n;for(var o=(i=i.children).length,r=0;r<o;r++){var s=i[r];Sm(t,s,e+s.S.x,n+s.S.y)}}}function Pm(t,i){if(null!==i){t.setPortSpots(i);for(var e=(i=i.children).length,n=0;n<e;n++)Pm(t,i[n])}}function Nm(t){return 45>=(t=t.angle)?0:135>=t?90:225>=t?180:315>=t?270:0}Jp.className="LayeredDigraphLayout",Jp.CycleDepthFirst=Fg,Jp.CycleGreedy=Dg,Jp.CycleFromLayers=Bg,Jp.LayerOptimalLinkLength=Og,Jp.LayerLongestPathSink=Ig,Jp.LayerLongestPathSource=zg,Jp.InitDepthFirstOut=Rg,Jp.InitDepthFirstIn=Eg,Jp.InitNaive=Vg,Jp.AggressiveNone=Yg,Jp.AggressiveLess=Gg,Jp.AggressiveMore=Xg,Jp.PackNone=0,Jp.PackExpand=1,Jp.PackStraighten=2,Jp.PackMedian=4,Jp.PackAll=15,Jp.AlignNone=0,Jp.AlignUpperLeft=1,Jp.AlignUpperRight=2,Jp.AlignLowerLeft=4,Jp.AlignLowerRight=8,Jp.AlignAll=15,qg.className="SegInfo",c(Hg,Of),Hg.prototype.createVertex=function(){return new Kg(this)},Hg.prototype.createEdge=function(){return new $g(this)},Hg.className="LayeredDigraphNetwork",c(Kg,Vf),Kg.prototype.Cl=function(t){Vf.prototype.Cl.call(this,t),this.bo=this.co=null},Kg.prototype.Kl=function(t){Vf.prototype.Kl.call(this,t),this.bo=this.co=null},Kg.prototype.zl=function(t){Vf.prototype.zl.call(this,t),this.$n=this.ao=null},Kg.prototype.Jl=function(t){Vf.prototype.Jl.call(this,t),this.$n=this.ao=null},f.Object.defineProperties(Kg.prototype,{layer:{get:function(){return this.Ig},set:function(t){this.Ig!==t&&(this.Ig=t)}},column:{get:function(){return this.Ag},set:function(t){this.Ag!==t&&(this.Ag=t)}},index:{get:function(){return this.Za},set:function(t){this.Za!==t&&(this.Za=t)}},component:{get:function(){return this.u},set:function(t){this.u!==t&&(this.u=t)}},near:{get:function(){return this.F},set:function(t){this.F!==t&&(this.F=t)}}}),Kg.prototype.deleteDestinationEdge=Kg.prototype.Jl,Kg.prototype.addDestinationEdge=Kg.prototype.zl,Kg.prototype.deleteSourceEdge=Kg.prototype.Kl,Kg.prototype.addSourceEdge=Kg.prototype.Cl,Kg.className="LayeredDigraphVertex",c($g,Gf),f.Object.defineProperties($g.prototype,{fromVertex:{get:function(){return this.kd},set:function(t){this.kd!==t&&(this.kd=t)}},toVertex:{get:function(){return this.qd},set:function(t){this.qd!==t&&(this.qd=t)}},valid:{get:function(){return this.Ha},set:function(t){this.Ha!==t&&(this.Ha=t)}},rev:{get:function(){return this.ia},set:function(t){this.ia!==t&&(this.ia=t)}},forest:{get:function(){return this.j},set:function(t){this.j!==t&&(this.j=t)}},portFromPos:{get:function(){return this.u},set:function(t){this.u!==t&&(this.u=t)}},portToPos:{get:function(){return this.V},set:function(t){this.V!==t&&(this.V=t)}},portFromColOffset:{get:function(){return this.o},set:function(t){this.o!==t&&(this.o=t)}},portToColOffset:{get:function(){return this.F},set:function(t){this.F!==t&&(this.F=t)}}}),$g.className="LayeredDigraphEdge",c(Qg,Ff),Qg.prototype.cloneProtected=function(t){Ff.prototype.cloneProtected.call(this,t),t.Wn=this.Wn,t.vo=this.vo,t.Bq=this.Bq,t.td=this.td,t.Rb=this.Rb,t.$d.assign(this.$d),t.W.copyInheritedPropertiesFrom(this.W),t.Y.copyInheritedPropertiesFrom(this.Y)},Qg.prototype.qb=function(t){t.classType===Qg?0===t.name.indexOf("Alignment")?this.alignment=t:0===t.name.indexOf("Arrangement")?this.arrangement=t:0===t.name.indexOf("Compaction")?this.compaction=t:0===t.name.indexOf("Path")?this.path=t:0===t.name.indexOf("Sorting")?this.sorting=t:0===t.name.indexOf("Style")?this.treeStyle=t:w("Unknown enum value: "+t):Ff.prototype.qb.call(this,t)},Qg.prototype.createNetwork=function(){return new ty(this)},Qg.prototype.makeNetwork=function(t){function i(t){if(t instanceof Ju)return!t.isLinkLabel&&"Comment"!==t.category;if(t instanceof wc){var i=t.fromNode;return null!==i&&!i.isLinkLabel&&"Comment"!==i.category&&(null!==(t=t.toNode)&&!t.isLinkLabel&&"Comment"!==t.category)}return!1}var e=this.createNetwork();return t instanceof To?(e.lg(t.nodes,!0,i),e.lg(t.links,!0,i)):t instanceof gc?e.lg(t.memberParts,!1,i):e.lg(t.iterator,!1,i),e},Qg.prototype.doLayout=function(t){null===this.network&&(this.network=this.makeNetwork(t)),this.arrangement!==Zm&&(this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin));var i=this.diagram;if(null===i&&t instanceof To&&(i=t),this.path===Cm&&null!==i?this.ud=i.isTreePathToChildren?Tm:Lm:this.ud=this.path===Cm?Tm:this.path,0<this.network.vertexes.count){for(this.network.Ko(),t=this.network.vertexes.iterator;t.next();)(i=t.value).initialized=!1,i.level=0,i.parent=null,i.children=[];if(0<this.Ub.count){for(t=new $,i=this.Ub.iterator;i.next();){var e=i.value;e instanceof Ju?null!==(e=this.network.ki(e))&&t.add(e):e instanceof iy&&t.add(e)}this.Ub=t}for(0===this.Ub.count&&this.findRoots(),t=this.Ub.copy().iterator;t.next();)(i=t.value).initialized||(i.initialized=!0,em(this,i));for(i=this.network.vertexes,t=null;0<(t=tm(i)).count;)null!==(i=im(this,t))&&this.Ub.add(i),i.initialized=!0,em(this,i),i=t;for(t=this.Ub.iterator;t.next();)(i=t.value)instanceof iy&&om(this,i);for(t=this.Ub.iterator;t.next();)(i=t.value)instanceof iy&&rm(this,i);for(t=this.Ub.iterator;t.next();)(i=t.value)instanceof iy&&sm(this,i);if(this.Cu(),this.layerStyle===Qm){for(t=[],i=this.network.vertexes.iterator;i.next();){var n=(e=i.value).parent;null===n&&(n=e),n=0===n.angle||180===n.angle;var o=t[e.level];void 0===o&&(o=0),t[e.level]=Math.max(o,n?e.width:e.height)}for(i=0;i<t.length;i++)void 0===t[i]&&(t[i]=0);for(this.$v=t,i=this.network.vertexes.iterator;i.next();)null===(n=(e=i.value).parent)&&(n=e),0===n.angle||180===n.angle?(180===n.angle&&(e.focusX+=t[e.level]-e.width),e.width=t[e.level]):(270===n.angle&&(e.focusY+=t[e.level]-e.height),e.height=t[e.level])}else if(this.layerStyle===$m)for(t=this.network.vertexes.iterator;t.next();){for(e=0===(i=t.value).angle||180===i.angle,n=-1,o=0;o<i.children.length;o++){var r=i.children[o];n=Math.max(n,e?r.width:r.height)}if(0<=n)for(o=0;o<i.children.length;o++)r=i.children[o],e?(180===i.angle&&(r.focusX+=n-r.width),r.width=n):(270===i.angle&&(r.focusY+=n-r.height),r.height=n)}for(t=this.Ub.iterator;t.next();)(i=t.value)instanceof iy&&this.layoutTree(i);this.arrangeTrees(),this.updateParts()}this.network=null,this.Ub=new $,this.isValidLayout=!0},Qg.prototype.findRoots=function(){for(var t=this.network.vertexes,i=t.iterator;i.next();){var e=i.value;switch(this.ud){case Tm:0===e.sourceEdges.count&&this.Ub.add(e);break;case Lm:0===e.destinationEdges.count&&this.Ub.add(e);break;default:w("Unhandled path value "+this.ud.toString())}}0===this.Ub.count&&(null!==(t=im(this,t))&&this.Ub.add(t))},Qg.prototype.removeChild=function(t,i){if(null!==t&&null!==i){for(var e=t.children,n=0,o=0;o<e.length;o++)e[o]===i&&n++;if(0<n){n=Array(e.length-n);for(var r=o=0;r<e.length;r++)e[r]!==i&&(n[o++]=e[r]);t.children=n}}},Qg.prototype.initializeTreeVertexValues=function(t){if(t.copyInheritedPropertiesFrom(function(t,i){switch(t.vo){default:case Um:return null!==i.parent?i.parent:t.W;case Km:return null===i.parent?t.W:null===i.parent.parent?t.Y:i.parent;case Hm:return null!==i.parent?null!==i.parent.parent?i.parent.parent:t.Y:t.W;case qm:var e=!0;if(0===i.childrenCount)e=!1;else for(var n=i.children,o=n.length,r=0;r<o;r++)if(0<n[r].childrenCount){e=!1;break}return e&&null!==i.parent?t.Y:null!==i.parent?i.parent:t.W}}(this,t)),null!==t.parent&&t.parent.alignment===Em){for(var i=t.angle,e=t.parent.children,n=0;n<e.length&&t!==e[n];)n++;0==n%2?n!==e.length-1&&(i=90===i?180:180===i?270:270===i?180:270):i=90===i?0:180===i?90:270===i?0:90,t.angle=i}t.initialized=!0},Qg.prototype.assignTreeVertexValues=function(){},Qg.prototype.sortTreeVertexChildren=function(t){switch(t.sorting){case Am:break;case jm:t.children.reverse();break;case Fm:t.children.sort(t.comparer);break;case Dm:t.children.sort(t.comparer),t.children.reverse();break;default:w("Unhandled sorting value "+t.sorting.toString())}},Qg.prototype.Cu=function(){if(this.comments)for(var t=this.network.vertexes.iterator;t.next();)this.addComments(t.value)},Qg.prototype.addComments=function(t){var i=t.angle,e=t.parent,n=0,o=!1;null!==e&&(n=e.angle,o=am(o=e.alignment)),i=90===i||270===i,n=90===n||270===n,e=0===t.childrenCount;var r=0,s=0,a=0,h=t.commentSpacing;if(null!==t.node)for(var l=t.node.Mu();l.next();){var u=l.value;"Comment"===u.category&&u.canLayout()&&(null===t.comments&&(t.comments=[]),t.comments.push(u),u.Va(),u=u.measuredBounds,i&&!e||!o&&!n&&e||o&&n&&e?(r=Math.max(r,u.width),s+=u.height+Math.abs(a)):(r+=u.width+Math.abs(a),s=Math.max(s,u.height)),a=h)}null!==t.comments&&(i&&!e||!o&&!n&&e||o&&n&&e?(r+=Math.abs(t.commentMargin),s=Math.max(0,s-t.height)):(s+=Math.abs(t.commentMargin),r=Math.max(0,r-t.width)),o=Bt.allocAt(0,0,t.bounds.width+r,t.bounds.height+s),t.bounds=o,Bt.free(o))},Qg.prototype.layoutComments=function(t){if(null!==t.comments){var i=t.node.measuredBounds,e=t.parent,n=t.angle,o=0,r=!1;null!==e&&(o=e.angle,r=am(r=e.alignment)),n=90===n||270===n,e=90===o||270===o;for(var s=0===t.childrenCount,a=lm(t),h=0,l=t.comments,u=l.length,c=pt.alloc(),f=0;f<u;f++){var d=l[f],p=d.measuredBounds;if(n&&!s||!r&&!e&&s||r&&e&&s){if(135<o&&!r||e&&a)if(0<=t.commentMargin)for(c.h(t.bounds.x-t.commentMargin-p.width,t.bounds.y+h),d.move(c),d=d.Sd();d.next();){var g=d.value;g.fromSpot=Ai,g.toSpot=ji}else for(c.h(t.bounds.x+2*t.focus.x-t.commentMargin,t.bounds.y+h),d.move(c),d=d.Sd();d.next();)(g=d.value).fromSpot=ji,g.toSpot=Ai;else if(0<=t.commentMargin)for(c.h(t.bounds.x+2*t.focus.x+t.commentMargin,t.bounds.y+h),d.move(c),d=d.Sd();d.next();)(g=d.value).fromSpot=ji,g.toSpot=Ai;else for(c.h(t.bounds.x+t.commentMargin-p.width,t.bounds.y+h),d.move(c),d=d.Sd();d.next();)(g=d.value).fromSpot=Ai,g.toSpot=ji;h=0<=t.commentSpacing?h+(p.height+t.commentSpacing):h+(t.commentSpacing-p.height)}else{if(135<o&&!r||!e&&a)if(0<=t.commentMargin)for(c.h(t.bounds.x+h,t.bounds.y-t.commentMargin-p.height),d.move(c),d=d.Sd();d.next();)(g=d.value).fromSpot=Li,g.toSpot=Fi;else for(c.h(t.bounds.x+h,t.bounds.y+2*t.focus.y-t.commentMargin),d.move(c),d=d.Sd();d.next();)(g=d.value).fromSpot=Fi,g.toSpot=Li;else if(0<=t.commentMargin)for(c.h(t.bounds.x+h,t.bounds.y+2*t.focus.y+t.commentMargin),d.move(c),d=d.Sd();d.next();)(g=d.value).fromSpot=Fi,g.toSpot=Li;else for(c.h(t.bounds.x+h,t.bounds.y+t.commentMargin-p.height),d.move(c),d=d.Sd();d.next();)(g=d.value).fromSpot=Li,g.toSpot=Fi;h=0<=t.commentSpacing?h+(p.width+t.commentSpacing):h+(t.commentSpacing-p.width)}}if(pt.free(c),i=h-t.commentSpacing-(n?i.height:i.width),this.ud===Tm)for(t=t.destinationEdges;t.next();)null===(o=t.value.link)||o.isAvoiding||(o.fromEndSegmentLength=0<i?i:NaN);else for(t=t.sourceEdges;t.next();)null===(o=t.value.link)||o.isAvoiding||(o.toEndSegmentLength=0<i?i:NaN)}},Qg.prototype.layoutTree=function(t){if(null!==t){for(var i=t.children,e=i.length,n=0;n<e;n++)this.layoutTree(i[n]);switch(t.compaction){case Gm:um(this,t);break;case Xm:if(t.alignment===Em)um(this,t);else if(0===t.childrenCount)e=!1,i=0,null!==(n=t.parent)&&(i=n.angle,e=am(e=n.alignment)),n=lm(t),t.S.h(0,0),t.Da.h(t.width,t.height),null===t.parent||null===t.comments||(180!==i&&270!==i||e)&&!n?t.la.h(0,0):180===i&&!e||(90===i||270===i)&&n?t.la.h(t.width-2*t.focus.x,0):t.la.h(0,t.height-2*t.focus.y),t.Yo=null,t.kp=null;else{var o=Nm(t);i=90===o||270===o;var r=0,s=t.children,a=s.length;for(e=0;e<a;e++)n=s[e],r=Math.max(r,i?n.Da.width:n.Da.height);var h=t.alignment;n=h===Im;var l=h===zm,u=am(h),c=Math.max(0,t.breadthLimit);e=this.computeLayerSpacing(t);var f=t.nodeSpacing,d=this.computeNodeIndent(t),p=t.rowSpacing,g=0;(n||l||t.hm||t.im&&1===t.maxGenerationCount)&&(g=Math.max(0,t.rowIndent)),n=t.width;var m=t.height,y=0,v=0,x=0,b=null,k=null,M=0,S=0,P=0,N=0,C=0,T=0,L=0,F=0;if(u&&!hm(h)&&135<o&&s.reverse(),hm(h))if(1<a)for(var D=0;D<a;D++)0==D%2&&D!==a-1&&(F=Math.max(F,i?s[D].Da.width:s[D].Da.height));else 1===a&&(F=i?s[0].Da.width:s[0].Da.height);if(u){switch(h){case Rm:F=(v=135>o?cm(this,t,s,F,y,v):fm(this,t,s,F,y,v)).x,y=v.width,v=v.height;break;case Vm:for(b=0;b<a;b++)c=(k=s[b]).Da,x=0===T?0:p,i?(k.S.h(r-c.width,N+x),y=Math.max(y,c.width),v=Math.max(v,N+x+c.height),N+=x+c.height):(k.S.h(P+x,r-c.height),y=Math.max(y,P+x+c.width),v=Math.max(v,c.height),P+=x+c.width),T++;break;case Ym:for(b=0;b<a;b++)r=(k=s[b]).Da,c=0===T?0:p,i?(k.S.h(f/2+t.focus.x,N+c),y=Math.max(y,r.width),v=Math.max(v,N+c+r.height),N+=c+r.height):(k.S.h(P+c,f/2+t.focus.y),y=Math.max(y,P+c+r.width),v=Math.max(v,r.height),P+=c+r.width),T++}b=km(this,2),k=km(this,2),i?(b[0].h(0,0),b[1].h(0,v),k[0].h(y,0)):(b[0].h(0,0),b[1].h(y,0),k[0].h(0,v)),k[1].h(y,v)}else for(D=0;D<a;D++){var B=s[D],O=B.Da;if(i){0<c&&0<T&&P+f+O.width>c&&(P<r&&ym(t,h,r-P,0,L,D-1),C++,T=0,L=D,x=v,P=0,N=135<o?-v-p:v+p),xm(this,B,0,N);var I=0;if(0===T)b=B.Yo,k=B.kp,M=O.width,S=O.height,(null===b||null===k||o!==Nm(B))&&(b=km(this,2),k=km(this,2),b[0].h(0,0),b[1].h(0,S),k[0].h(M,0),k[1].h(M,S));else{var z=A();I=(S=wm(this,t,B,b,k,M,S,z)).x,b=z[0],k=z[1],M=S.width,S=S.height,j(z),P<O.width&&0>I&&(vm(t,-I,0,L,D-1),bm(b,-I,0),bm(k,-I,0),I=0)}B.S.h(I,N),y=Math.max(y,M),v=Math.max(v,x+(0===C?0:p)+O.height),P=M}else 0<c&&0<T&&N+f+O.height>c&&(N<r&&ym(t,h,0,r-N,L,D-1),C++,T=0,L=D,x=y,N=0,P=135<o?-y-p:y+p),xm(this,B,P,0),I=0,0===T?(b=B.Yo,k=B.kp,M=O.width,S=O.height,(null===b||null===k||o!==Nm(B))&&(b=km(this,2),k=km(this,2),b[0].h(0,0),b[1].h(M,0),k[0].h(0,S),k[1].h(M,S))):(I=(S=wm(this,t,B,b,k,M,S,z=A())).x,b=z[0],k=z[1],M=S.width,S=S.height,j(z),N<O.height&&0>I&&(vm(t,0,-I,L,D-1),bm(b,0,-I),bm(k,0,-I),I=0)),B.S.h(P,I),v=Math.max(v,S),y=Math.max(y,x+(0===C?0:p)+O.width),N=S;T++}switch(0<C&&(i?(v+=Math.max(0,e),P<y&&ym(t,h,y-P,0,L,a-1),0<g&&(l||vm(t,g,0,0,a-1),y+=g)):(y+=Math.max(0,e),N<v&&ym(t,h,0,v-N,L,a-1),0<g&&(l||vm(t,0,g,0,a-1),v+=g))),g=l=0,h){case Bm:i?l+=y/2-t.focus.x-d/2:g+=v/2-t.focus.y-d/2;break;case Om:0<C?i?l+=y/2-t.focus.x-d/2:g+=v/2-t.focus.y-d/2:i?l+=(F=s[0].S.x+s[0].la.x)+(s[a-1].S.x+s[a-1].la.x+2*s[a-1].focus.x-F)/2-t.focus.x-d/2:g+=(F=s[0].S.y+s[0].la.y)+(s[a-1].S.y+s[a-1].la.y+2*s[a-1].focus.y-F)/2-t.focus.y-d/2;break;case Im:i?(l-=d,y+=d):(g-=d,v+=d);break;case zm:i?(l+=y-t.width+d,y+=d):(g+=v-t.height+d,v+=d);break;case Rm:i?l+=1<a?F+f/2-t.focus.x:s[0].focus.x-t.focus.x+s[0].la.x:g+=1<a?F+f/2-t.focus.y:s[0].focus.y-t.focus.y+s[0].la.y;break;case Vm:i?l+=y+f/2-t.focus.x:g+=v+f/2-t.focus.y;break;case Ym:break;default:l=(v=this.customAlignment(t,l,g,y,v))[0],g=v[1],y=v[2],v=v[3]}for(d=0;d<a;d++)F=s[d],i?F.S.h(F.S.x+F.la.x-l,F.S.y+(135<o?(u?-v:-F.Da.height)+F.la.y-e:m+e+F.la.y)):F.S.h(F.S.x+(135<o?(u?-y:-F.Da.width)+F.la.x-e:n+e+F.la.x),F.S.y+F.la.y-g);if(a=s=0,u?i?(y=pm(t,y,l),0>l&&(l=0),135<o&&(g+=v+e),v+=m+e,h===Ym&&(s+=f/2+t.focus.x),a+=m+e):(135<o&&(l+=y+e),y+=n+e,v=gm(t,v,g),0>g&&(g=0),h===Ym&&(a+=f/2+t.focus.y),s+=n+e):i?(null===t.comments?n>y&&(s=(y=mm(h,n-y,0)).x,a=y.y,y=n,l=0):y=pm(t,y,l),0>l&&(s-=l,l=0),135<o&&(g+=v+e),v=Math.max(Math.max(v,m),v+m+e),a+=m+e):(135<o&&(l+=y+e),y=Math.max(Math.max(y,n),y+n+e),null===t.comments?m>v&&(s=(v=mm(h,0,m-v)).x,a=v.y,v=m,g=0):v=gm(t,v,g),0>g&&(a-=g,g=0),s+=n+e),0<C)o=km(this,4),C=km(this,4),i?(o[2].h(0,m+e),o[3].h(o[2].x,v),C[2].h(y,o[2].y),C[3].h(C[2].x,o[3].y)):(o[2].h(n+e,0),o[3].h(y,o[2].y),C[2].h(o[2].x,v),C[3].h(o[3].x,C[2].y));else{for(o=km(this,b.length+2),C=km(this,k.length+2),h=0;h<b.length;h++)u=b[h],o[h+2].h(u.x+s,u.y+a);for(h=0;h<k.length;h++)u=k[h],C[h+2].h(u.x+s,u.y+a)}i?(o[0].h(l,0),o[1].h(o[0].x,m),o[2].y<o[1].y&&(o[2].x>o[0].x?o[2].assign(o[1]):o[1].assign(o[2])),o[3].y<o[2].y&&(o[3].x>o[0].x?o[3].assign(o[2]):o[2].assign(o[3])),C[0].h(l+n,0),C[1].h(C[0].x,m),C[2].y<C[1].y&&(C[2].x<C[0].x?C[2].assign(C[1]):C[1].assign(C[2])),C[3].y<C[2].y&&(C[3].x<C[0].x?C[3].assign(C[2]):C[2].assign(C[3])),o[2].y-=e/2,C[2].y-=e/2):(o[0].h(0,g),o[1].h(n,o[0].y),o[2].x<o[1].x&&(o[2].y>o[0].y?o[2].assign(o[1]):o[1].assign(o[2])),o[3].x<o[2].x&&(o[3].y>o[0].y?o[3].assign(o[2]):o[2].assign(o[3])),C[0].h(0,g+m),C[1].h(n,C[0].y),C[2].x<C[1].x&&(C[2].y<C[0].y?C[2].assign(C[1]):C[1].assign(C[2])),C[3].x<C[2].x&&(C[3].y<C[0].y?C[3].assign(C[2]):C[2].assign(C[3])),o[2].x-=e/2,C[2].x-=e/2),Mm(this,b),Mm(this,k),t.Yo=o,t.kp=C,t.la.h(l,g),t.Da.h(y,v)}break;default:w("Unhandled compaction value "+t.compaction.toString())}}},Qg.prototype.customAlignment=function(t,i,e,n,o){return[i,e,n,o]},Qg.prototype.computeBusNodeSpacing=function(t){return null===t.parent?0:t.parent.nodeSpacing},Qg.prototype.computeBusLastRowSpacing=function(t){return null===t.parent?0:t.parent.rowSpacing},Qg.prototype.arrangeTrees=function(){if(this.Rb===Zm)for(var t=this.Ub.iterator;t.next();){var i=t.value;if(i instanceof iy){var e=i.node;if(null!==e){var n=e.position;e=n.x,n=n.y,isFinite(e)||(e=0),isFinite(n)||(n=0),Sm(this,i,e,n)}}}else{for(t=[],i=this.Ub.iterator;i.next();)(e=i.value)instanceof iy&&t.push(e);switch(this.sorting){case Am:break;case jm:t.reverse();break;case Fm:t.sort(this.comparer);break;case Dm:t.sort(this.comparer),t.reverse();break;default:w("Unhandled sorting value "+this.sorting.toString())}for(i=(e=this.arrangementOrigin).x,e=e.y,n=0;n<t.length;n++){var o=t[n];switch(Sm(this,o,i+o.la.x,e+o.la.y),this.Rb){case Wm:e+=o.Da.height+this.$d.height;break;case Jm:i+=o.Da.width+this.$d.width;break;default:w("Unhandled arrangement value "+this.Rb.toString())}}}},Qg.prototype.commitLayout=function(){this.yv(),this.commitNodes(),this.Gu(),this.isRouting&&this.commitLinks()},Qg.prototype.commitNodes=function(){for(var t=this.network.vertexes.iterator;t.next();)t.value.commit();for(t.reset();t.next();)this.layoutComments(t.value)},Qg.prototype.Gu=function(){if(this.layerStyle===Qm){for(var t=this.$v,i=[],e=null,n=this.network.vertexes.iterator;n.next();){var o=n.value;null===e?e=o.bounds.copy():e.ed(o.bounds);var r=i[o.level];r=void 0===r?this.computeLayerSpacing(o):Math.max(r,this.computeLayerSpacing(o)),i[o.level]=r}for(n=0;n<i.length;n++)void 0===i[n]&&(i[n]=0);if(90===this.angle||270===this.angle?(e.Bc(this.nodeSpacing/2,this.layerSpacing),n=new pt(-this.nodeSpacing/2,-this.layerSpacing/2)):(e.Bc(this.layerSpacing,this.nodeSpacing/2),n=new pt(-this.layerSpacing/2,-this.nodeSpacing/2)),o=[],e=90===this.angle||270===this.angle?e.width:e.height,r=0,180===this.angle||270===this.angle)for(var s=0;s<t.length;s++)r+=t[s]+i[s];for(s=0;s<t.length;s++){var a=t[s]+i[s];270===this.angle?(r-=a,o.push(new Bt(0,r,e,a))):90===this.angle?(o.push(new Bt(0,r,e,a)),r+=a):180===this.angle?(r-=a,o.push(new Bt(r,0,a,e))):(o.push(new Bt(r,0,a,e)),r+=a)}this.commitLayers(o,n)}},Qg.prototype.commitLayers=function(){},Qg.prototype.commitLinks=function(){for(var t=this.network.edges.iterator;t.next();)t.value.commit()},Qg.prototype.yv=function(){for(var t=this.Ub.iterator;t.next();){var i=t.value;i instanceof iy&&Pm(this,i)}},Qg.prototype.setPortSpots=function(t){var i=t.alignment;if(am(i)){var e=this.ud===Tm,n=Nm(t);switch(n){case 0:var o=ji;break;case 90:o=Fi;break;case 180:o=Ai;break;default:o=Li}var r=t.children,s=r.length;switch(i){case Rm:case Em:for(i=0;i<s;i++){var a=r[i];if(null!==(a=(e?a.sourceEdges:a.destinationEdges).first())&&null!==(a=a.link)){var h=90===n||270===n?Ai:Li;if(1===s||i===s-1&&1==s%2)switch(n){case 0:h=Ai;break;case 90:h=Li;break;case 180:h=ji;break;default:h=Fi}else 0==i%2&&(h=90===n||270===n?ji:Fi);e?(t.setsPortSpot&&(a.fromSpot=o),t.setsChildPortSpot&&(a.toSpot=h)):(t.setsPortSpot&&(a.fromSpot=h),t.setsChildPortSpot&&(a.toSpot=o))}}break;case Vm:for(n=90===n||270===n?ji:Fi,r=e?t.destinationEdges:t.sourceEdges;r.next();)null!==(s=r.value.link)&&(e?(t.setsPortSpot&&(s.fromSpot=o),t.setsChildPortSpot&&(s.toSpot=n)):(t.setsPortSpot&&(s.fromSpot=n),t.setsChildPortSpot&&(s.toSpot=o)));break;case Ym:for(n=90===n||270===n?Ai:Li,r=e?t.destinationEdges:t.sourceEdges;r.next();)null!==(s=r.value.link)&&(e?(t.setsPortSpot&&(s.fromSpot=o),t.setsChildPortSpot&&(s.toSpot=n)):(t.setsPortSpot&&(s.fromSpot=n),t.setsChildPortSpot&&(s.toSpot=o)))}}else if(e=Nm(t),this.ud===Tm){for(o=t.destinationEdges;o.next();)if(null!==(n=o.value.link)){if(t.setsPortSpot)if(t.portSpot.Xb())switch(e){case 0:n.fromSpot=ji;break;case 90:n.fromSpot=Fi;break;case 180:n.fromSpot=Ai;break;default:n.fromSpot=Li}else n.fromSpot=t.portSpot;if(t.setsChildPortSpot)if(t.childPortSpot.Xb())switch(e){case 0:n.toSpot=Ai;break;case 90:n.toSpot=Li;break;case 180:n.toSpot=ji;break;default:n.toSpot=Fi}else n.toSpot=t.childPortSpot}}else for(o=t.sourceEdges;o.next();)if(null!==(n=o.value.link)){if(t.setsPortSpot)if(t.portSpot.Xb())switch(e){case 0:n.toSpot=ji;break;case 90:n.toSpot=Fi;break;case 180:n.toSpot=Ai;break;default:n.toSpot=Li}else n.toSpot=t.portSpot;if(t.setsChildPortSpot)if(t.childPortSpot.Xb())switch(e){case 0:n.fromSpot=Ai;break;case 90:n.fromSpot=Li;break;case 180:n.fromSpot=ji;break;default:n.fromSpot=Fi}else n.fromSpot=t.childPortSpot}},Qg.prototype.computeLayerSpacing=function(t){var i=Nm(t);i=90===i||270===i;var e=t.layerSpacing;if(0<t.layerSpacingParentOverlap){var n=Math.min(1,t.layerSpacingParentOverlap);e-=i?t.height*n:t.width*n}return e<(i?-t.height:-t.width)&&(e=i?-t.height:-t.width),e},Qg.prototype.computeNodeIndent=function(t){var i=Nm(t),e=t.nodeIndent;if(0<t.nodeIndentPastParent){var n=Math.min(1,t.nodeIndentPastParent);e+=90===i||270===i?t.width*n:t.height*n}return Math.max(0,e)},f.Object.defineProperties(Qg.prototype,{roots:{get:function(){return this.Ub},set:function(t){this.Ub!==t&&(this.Ub=t,this.C())}},path:{get:function(){return this.Wn},set:function(t){this.Wn!==t&&(this.Wn=t,this.C())}},treeStyle:{get:function(){return this.vo},set:function(t){this.Rb===t||t!==Um&&t!==Hm&&t!==qm&&t!==Km||(this.vo=t,this.C())}},layerStyle:{get:function(){return this.Bq},set:function(t){this.Rb===t||t!==_m&&t!==$m&&t!==Qm||(this.Bq=t,this.C())}},comments:{get:function(){return this.td},set:function(t){this.td!==t&&(this.td=t,this.C())}},arrangement:{get:function(){return this.Rb},set:function(t){this.Rb===t||t!==Wm&&t!==Jm&&t!==Zm||(this.Rb=t,this.C())}},arrangementSpacing:{get:function(){return this.$d},set:function(t){this.$d.D(t)||(this.$d.assign(t),this.C())}},rootDefaults:{get:function(){return this.W},set:function(t){this.W!==t&&(this.W=t,this.C())}},alternateDefaults:{get:function(){return this.Y},set:function(t){this.Y!==t&&(this.Y=t,this.C())}},sorting:{get:function(){return this.W.sorting},set:function(t){this.W.sorting===t||t!==Am&&t!==jm&&t!==Fm&&!Dm||(this.W.sorting=t,this.C())}},comparer:{get:function(){return this.W.comparer},set:function(t){this.W.comparer!==t&&(this.W.comparer=t,this.C())}},angle:{get:function(){return this.W.angle},set:function(t){this.W.angle!==t&&(0===t||90===t||180===t||270===t?(this.W.angle=t,this.C()):w("TreeLayout.angle must be 0, 90, 180, or 270"))}},alignment:{get:function(){return this.W.alignment},set:function(t){this.W.alignment!==t&&(this.W.alignment=t,this.C())}},nodeIndent:{get:function(){return this.W.nodeIndent},set:function(t){this.W.nodeIndent!==t&&0<=t&&(this.W.nodeIndent=t,this.C())}},nodeIndentPastParent:{get:function(){return this.W.nodeIndentPastParent},set:function(t){this.W.nodeIndentPastParent!==t&&0<=t&&1>=t&&(this.W.nodeIndentPastParent=t,this.C())}},nodeSpacing:{get:function(){return this.W.nodeSpacing},set:function(t){this.W.nodeSpacing!==t&&(this.W.nodeSpacing=t,this.C())}},layerSpacing:{get:function(){return this.W.layerSpacing},set:function(t){this.W.layerSpacing!==t&&(this.W.layerSpacing=t,this.C())}},layerSpacingParentOverlap:{get:function(){return this.W.layerSpacingParentOverlap},set:function(t){this.W.layerSpacingParentOverlap!==t&&0<=t&&1>=t&&(this.W.layerSpacingParentOverlap=t,this.C())}},compaction:{get:function(){return this.W.compaction},set:function(t){this.W.compaction===t||t!==Gm&&t!==Xm||(this.W.compaction=t,this.C())}},breadthLimit:{get:function(){return this.W.breadthLimit},set:function(t){this.W.breadthLimit!==t&&0<=t&&(this.W.breadthLimit=t,this.C())}},rowSpacing:{get:function(){return this.W.rowSpacing},set:function(t){this.W.rowSpacing!==t&&(this.W.rowSpacing=t,this.C())}},rowIndent:{get:function(){return this.W.rowIndent},set:function(t){this.W.rowIndent!==t&&0<=t&&(this.W.rowIndent=t,this.C())}},commentSpacing:{get:function(){return this.W.commentSpacing},set:function(t){this.W.commentSpacing!==t&&(this.W.commentSpacing=t,this.C())}},commentMargin:{get:function(){return this.W.commentMargin},set:function(t){this.W.commentMargin!==t&&(this.W.commentMargin=t,this.C())}},setsPortSpot:{get:function(){return this.W.setsPortSpot},set:function(t){this.W.setsPortSpot!==t&&(this.W.setsPortSpot=t,this.C())}},portSpot:{get:function(){return this.W.portSpot},set:function(t){this.W.portSpot.D(t)||(this.W.portSpot=t,this.C())}},setsChildPortSpot:{get:function(){return this.W.setsChildPortSpot},set:function(t){this.W.setsChildPortSpot!==t&&(this.W.setsChildPortSpot=t,this.C())}},childPortSpot:{get:function(){return this.W.childPortSpot},set:function(t){this.W.childPortSpot.D(t)||(this.W.childPortSpot=t,this.C())}},alternateSorting:{get:function(){return this.Y.sorting},set:function(t){this.Y.sorting===t||t!==Am&&t!==jm&&t!==Fm&&!Dm||(this.Y.sorting=t,this.C())}},alternateComparer:{get:function(){return this.Y.comparer},set:function(t){this.Y.comparer!==t&&(this.Y.comparer=t,this.C())}},alternateAngle:{get:function(){return this.Y.angle},set:function(t){this.Y.angle===t||0!==t&&90!==t&&180!==t&&270!==t||(this.Y.angle=t,this.C())}},alternateAlignment:{get:function(){return this.Y.alignment},set:function(t){this.Y.alignment!==t&&(this.Y.alignment=t,this.C())}},alternateNodeIndent:{get:function(){return this.Y.nodeIndent},set:function(t){this.Y.nodeIndent!==t&&0<=t&&(this.Y.nodeIndent=t,this.C())}},alternateNodeIndentPastParent:{get:function(){return this.Y.nodeIndentPastParent},set:function(t){this.Y.nodeIndentPastParent!==t&&0<=t&&1>=t&&(this.Y.nodeIndentPastParent=t,this.C())}},alternateNodeSpacing:{get:function(){return this.Y.nodeSpacing},set:function(t){this.Y.nodeSpacing!==t&&(this.Y.nodeSpacing=t,this.C())}},alternateLayerSpacing:{get:function(){return this.Y.layerSpacing},set:function(t){this.Y.layerSpacing!==t&&(this.Y.layerSpacing=t,this.C())}},alternateLayerSpacingParentOverlap:{get:function(){return this.Y.layerSpacingParentOverlap},set:function(t){this.Y.layerSpacingParentOverlap!==t&&0<=t&&1>=t&&(this.Y.layerSpacingParentOverlap=t,this.C())}},alternateCompaction:{get:function(){return this.Y.compaction},set:function(t){this.Y.compaction===t||t!==Gm&&t!==Xm||(this.Y.compaction=t,this.C())}},alternateBreadthLimit:{get:function(){return this.Y.breadthLimit},set:function(t){this.Y.breadthLimit!==t&&0<=t&&(this.Y.breadthLimit=t,this.C())}},alternateRowSpacing:{get:function(){return this.Y.rowSpacing},set:function(t){this.Y.rowSpacing!==t&&(this.Y.rowSpacing=t,this.C())}},alternateRowIndent:{get:function(){return this.Y.rowIndent},set:function(t){this.Y.rowIndent!==t&&0<=t&&(this.Y.rowIndent=t,this.C())}},alternateCommentSpacing:{get:function(){return this.Y.commentSpacing},set:function(t){this.Y.commentSpacing!==t&&(this.Y.commentSpacing=t,this.C())}},alternateCommentMargin:{get:function(){return this.Y.commentMargin},set:function(t){this.Y.commentMargin!==t&&(this.Y.commentMargin=t,this.C())}},alternateSetsPortSpot:{get:function(){return this.Y.setsPortSpot},set:function(t){this.Y.setsPortSpot!==t&&(this.Y.setsPortSpot=t,this.C())}},alternatePortSpot:{get:function(){return this.Y.portSpot},set:function(t){this.Y.portSpot.D(t)||(this.Y.portSpot=t,this.C())}},alternateSetsChildPortSpot:{get:function(){return this.Y.setsChildPortSpot},set:function(t){this.Y.setsChildPortSpot!==t&&(this.Y.setsChildPortSpot=t,this.C())}},alternateChildPortSpot:{get:function(){return this.Y.childPortSpot},set:function(t){this.Y.childPortSpot.D(t)||(this.Y.childPortSpot=t,this.C())}}});var Cm=new V(Qg,"PathDefault",-1),Tm=new V(Qg,"PathDestination",0),Lm=new V(Qg,"PathSource",1),Am=new V(Qg,"SortingForwards",10),jm=new V(Qg,"SortingReverse",11),Fm=new V(Qg,"SortingAscending",12),Dm=new V(Qg,"SortingDescending",13),Bm=new V(Qg,"AlignmentCenterSubtrees",20),Om=new V(Qg,"AlignmentCenterChildren",21),Im=new V(Qg,"AlignmentStart",22),zm=new V(Qg,"AlignmentEnd",23),Rm=new V(Qg,"AlignmentBus",24),Em=new V(Qg,"AlignmentBusBranching",25),Vm=new V(Qg,"AlignmentTopLeftBus",26),Ym=new V(Qg,"AlignmentBottomRightBus",27),Gm=new V(Qg,"CompactionNone",30),Xm=new V(Qg,"CompactionBlock",31),Um=new V(Qg,"StyleLayered",40),qm=new V(Qg,"StyleLastParents",41),Hm=new V(Qg,"StyleAlternating",42),Km=new V(Qg,"StyleRootOnly",43),Wm=new V(Qg,"ArrangementVertical",50),Jm=new V(Qg,"ArrangementHorizontal",51),Zm=new V(Qg,"ArrangementFixedRoots",52),_m=new V(Qg,"LayerIndividual",60),$m=new V(Qg,"LayerSiblings",61),Qm=new V(Qg,"LayerUniform",62);function ty(t){Of.call(this,t)}function iy(t){Vf.call(this,t),this.V=!1,this.hb=null,this.u=[],this.nb=this.Ha=this.F=this.ia=0,this.td=null,this.S=new pt(0,0),this.Da=new At(0,0),this.la=new pt(0,0),this.im=this.hm=this.qA=!1,this.kp=this.Yo=null,this.nd=Am,this.hd=Yf,this.Kb=0,this.Jb=Om,this.Vq=this.Uq=0,this.Wq=20,this.ie=50,this.Aq=0,this.Hp=Xm,this.Ap=0,this.nr=25,this.Gp=this.mr=10,this.Fp=20,this.xr=!0,this.dr=Si,this.wr=!0,this.Dp=Si}function ey(t){Gf.call(this,t),this.$t=new pt(0,0)}Qg.className="TreeLayout",Qg.PathDefault=Cm,Qg.PathDestination=Tm,Qg.PathSource=Lm,Qg.SortingForwards=Am,Qg.SortingReverse=jm,Qg.SortingAscending=Fm,Qg.SortingDescending=Dm,Qg.AlignmentCenterSubtrees=Bm,Qg.AlignmentCenterChildren=Om,Qg.AlignmentStart=Im,Qg.AlignmentEnd=zm,Qg.AlignmentBus=Rm,Qg.AlignmentBusBranching=Em,Qg.AlignmentTopLeftBus=Vm,Qg.AlignmentBottomRightBus=Ym,Qg.CompactionNone=Gm,Qg.CompactionBlock=Xm,Qg.StyleLayered=Um,Qg.StyleLastParents=qm,Qg.StyleAlternating=Hm,Qg.StyleRootOnly=Km,Qg.ArrangementVertical=Wm,Qg.ArrangementHorizontal=Jm,Qg.ArrangementFixedRoots=Zm,Qg.LayerIndividual=_m,Qg.LayerSiblings=$m,Qg.LayerUniform=Qm,c(ty,Of),ty.prototype.createVertex=function(){return new iy(this)},ty.prototype.createEdge=function(){return new ey(this)},ty.className="TreeNetwork",c(iy,Vf),iy.prototype.copyInheritedPropertiesFrom=function(t){null!==t&&(this.nd=t.sorting,this.hd=t.comparer,this.Kb=t.angle,this.Jb=t.alignment,this.Uq=t.nodeIndent,this.Vq=t.nodeIndentPastParent,this.Wq=t.nodeSpacing,this.ie=t.layerSpacing,this.Aq=t.layerSpacingParentOverlap,this.Hp=t.compaction,this.Ap=t.breadthLimit,this.nr=t.rowSpacing,this.mr=t.rowIndent,this.Gp=t.commentSpacing,this.Fp=t.commentMargin,this.xr=t.setsPortSpot,this.dr=t.portSpot,this.wr=t.setsChildPortSpot,this.Dp=t.childPortSpot)},f.Object.defineProperties(iy.prototype,{initialized:{get:function(){return this.V},set:function(t){this.V!==t&&(this.V=t)}},parent:{get:function(){return this.hb},set:function(t){this.hb!==t&&(this.hb=t)}},children:{get:function(){return this.u},set:function(t){if(this.u!==t){if(null!==t)for(var i=t.length,e=0;e<i;e++);this.u=t}}},level:{get:function(){return this.ia},set:function(t){this.ia!==t&&(this.ia=t)}},descendantCount:{get:function(){return this.F},set:function(t){this.F!==t&&(this.F=t)}},maxChildrenCount:{get:function(){return this.Ha},set:function(t){this.Ha!==t&&(this.Ha=t)}},maxGenerationCount:{get:function(){return this.nb},set:function(t){this.nb!==t&&(this.nb=t)}},comments:{get:function(){return this.td},set:function(t){if(this.td!==t){if(null!==t)for(var i=t.length,e=0;e<i;e++);this.td=t}}},sorting:{get:function(){return this.nd},set:function(t){this.nd!==t&&(this.nd=t)}},comparer:{get:function(){return this.hd},set:function(t){this.hd!==t&&(this.hd=t)}},angle:{get:function(){return this.Kb},set:function(t){this.Kb!==t&&(this.Kb=t)}},alignment:{get:function(){return this.Jb},set:function(t){this.Jb!==t&&(this.Jb=t)}},nodeIndent:{get:function(){return this.Uq},set:function(t){this.Uq!==t&&(this.Uq=t)}},nodeIndentPastParent:{get:function(){return this.Vq},set:function(t){this.Vq!==t&&(this.Vq=t)}},nodeSpacing:{get:function(){return this.Wq},set:function(t){this.Wq!==t&&(this.Wq=t)}},layerSpacing:{get:function(){return this.ie},set:function(t){this.ie!==t&&(this.ie=t)}},layerSpacingParentOverlap:{get:function(){return this.Aq},set:function(t){this.Aq!==t&&(this.Aq=t)}},compaction:{get:function(){return this.Hp},set:function(t){this.Hp!==t&&(this.Hp=t)}},breadthLimit:{get:function(){return this.Ap},set:function(t){this.Ap!==t&&(this.Ap=t)}},rowSpacing:{get:function(){return this.nr},set:function(t){this.nr!==t&&(this.nr=t)}},rowIndent:{get:function(){return this.mr},set:function(t){this.mr!==t&&(this.mr=t)}},commentSpacing:{get:function(){return this.Gp},set:function(t){this.Gp!==t&&(this.Gp=t)}},commentMargin:{get:function(){return this.Fp},set:function(t){this.Fp!==t&&(this.Fp=t)}},setsPortSpot:{get:function(){return this.xr},set:function(t){this.xr!==t&&(this.xr=t)}},portSpot:{get:function(){return this.dr},set:function(t){this.dr.D(t)||(this.dr=t)}},setsChildPortSpot:{get:function(){return this.wr},set:function(t){this.wr!==t&&(this.wr=t)}},childPortSpot:{get:function(){return this.Dp},set:function(t){this.Dp.D(t)||(this.Dp=t)}},childrenCount:{get:function(){return this.children.length}},relativePosition:{get:function(){return this.S},set:function(t){this.S.set(t)}},subtreeSize:{get:function(){return this.Da},set:function(t){this.Da.set(t)}},subtreeOffset:{get:function(){return this.la},set:function(t){this.la.set(t)}}}),iy.className="TreeVertex",c(ey,Gf),ey.prototype.commit=function(){var t=this.link;if(null!==t&&!t.isAvoiding){var i=this.network.layout,e=null,n=null;switch(i.ud){case Tm:e=this.fromVertex,n=this.toVertex;break;case Lm:e=this.toVertex,n=this.fromVertex;break;default:w("Unhandled path value "+i.ud.toString())}if(null!==e&&null!==n){var o=this.$t;if(0!==o.x||0!==o.y||e.qA){n=e.bounds;var r=Nm(e),s=i.computeLayerSpacing(e),a=e.rowSpacing;t.vg();var h,l=t.curve===Jc,u=t.isOrthogonal;if(t.uh(),u||l){for(h=2;4<t.pointsCount;)t.pv(2);var c=t.i(1),f=t.i(2)}else{for(h=1;3<t.pointsCount;)t.pv(1);c=t.i(0),f=t.i(t.pointsCount-1)}var d=t.i(t.pointsCount-1);0===r?(e.alignment===zm?(r=n.bottom+o.y,0===o.y&&c.y>d.y+e.rowIndent&&(r=Math.min(r,Math.max(c.y,r-i.computeNodeIndent(e))))):e.alignment===Im?(r=n.top+o.y,0===o.y&&c.y<d.y-e.rowIndent&&(r=Math.max(r,Math.min(c.y,r+i.computeNodeIndent(e))))):r=e.hm||e.im&&1===e.maxGenerationCount?n.top-e.la.y+o.y:n.y+n.height/2+o.y,l?(t.m(h,c.x,r),h++,t.m(h,n.right+s,r),h++,t.m(h,n.right+s+(o.x-a)/3,r),h++,t.m(h,n.right+s+2*(o.x-a)/3,r),h++,t.m(h,n.right+s+(o.x-a),r),h++,t.m(h,f.x,r)):(u&&(t.m(h,n.right+s/2,c.y),h++),t.m(h,n.right+s/2,r),h++,t.m(h,n.right+s+o.x-(u?a/2:a),r),h++,u&&t.m(h,t.i(h-1).x,f.y))):90===r?(e.alignment===zm?(r=n.right+o.x,0===o.x&&c.x>d.x+e.rowIndent&&(r=Math.min(r,Math.max(c.x,r-i.computeNodeIndent(e))))):e.alignment===Im?(r=n.left+o.x,0===o.x&&c.x<d.x-e.rowIndent&&(r=Math.max(r,Math.min(c.x,r+i.computeNodeIndent(e))))):r=e.hm||e.im&&1===e.maxGenerationCount?n.left-e.la.x+o.x:n.x+n.width/2+o.x,l?(t.m(h,r,c.y),h++,t.m(h,r,n.bottom+s),h++,t.m(h,r,n.bottom+s+(o.y-a)/3),h++,t.m(h,r,n.bottom+s+2*(o.y-a)/3),h++,t.m(h,r,n.bottom+s+(o.y-a)),h++,t.m(h,r,f.y)):(u&&(t.m(h,c.x,n.bottom+s/2),h++),t.m(h,r,n.bottom+s/2),h++,t.m(h,r,n.bottom+s+o.y-(u?a/2:a)),h++,u&&t.m(h,f.x,t.i(h-1).y))):180===r?(e.alignment===zm?(r=n.bottom+o.y,0===o.y&&c.y>d.y+e.rowIndent&&(r=Math.min(r,Math.max(c.y,r-i.computeNodeIndent(e))))):e.alignment===Im?(r=n.top+o.y,0===o.y&&c.y<d.y-e.rowIndent&&(r=Math.max(r,Math.min(c.y,r+i.computeNodeIndent(e))))):r=e.hm||e.im&&1===e.maxGenerationCount?n.top-e.la.y+o.y:n.y+n.height/2+o.y,l?(t.m(h,c.x,r),h++,t.m(h,n.left-s,r),h++,t.m(h,n.left-s+(o.x+a)/3,r),h++,t.m(h,n.left-s+2*(o.x+a)/3,r),h++,t.m(h,n.left-s+(o.x+a),r),h++,t.m(h,f.x,r)):(u&&(t.m(h,n.left-s/2,c.y),h++),t.m(h,n.left-s/2,r),h++,t.m(h,n.left-s+o.x+(u?a/2:a),r),h++,u&&t.m(h,t.i(h-1).x,f.y))):270===r?(e.alignment===zm?(r=n.right+o.x,0===o.x&&c.x>d.x+e.rowIndent&&(r=Math.min(r,Math.max(c.x,r-i.computeNodeIndent(e))))):e.alignment===Im?(r=n.left+o.x,0===o.x&&c.x<d.x-e.rowIndent&&(r=Math.max(r,Math.min(c.x,r+i.computeNodeIndent(e))))):r=e.hm||e.im&&1===e.maxGenerationCount?n.left-e.la.x+o.x:n.x+n.width/2+o.x,l?(t.m(h,r,c.y),h++,t.m(h,r,n.top-s),h++,t.m(h,r,n.top-s+(o.y+a)/3),h++,t.m(h,r,n.top-s+2*(o.y+a)/3),h++,t.m(h,r,n.top-s+(o.y+a)),h++,t.m(h,r,f.y)):(u&&(t.m(h,c.x,n.top-s/2),h++),t.m(h,r,n.top-s/2),h++,t.m(h,r,n.top-s+o.y+(u?a/2:a)),h++,u&&t.m(h,f.x,t.i(h-1).y))):w("Invalid angle "+r),t.zf()}else o=n,t=this.link,n=this.network.layout,(i=Nm(e))!==Nm(o)&&(s=n.computeLayerSpacing(e),a=e.bounds,e=o.bounds,0===i&&e.left-a.right<s+1||90===i&&e.top-a.bottom<s+1||180===i&&a.left-e.right<s+1||270===i&&a.top-e.bottom<s+1||(t.vg(),e=t.curve===Jc,o=t.isOrthogonal,n=am(this.fromVertex.alignment),t.uh(),0===i?(i=a.right+s/2,e?4===t.pointsCount&&(e=t.i(3).y,t.L(1,i-20,t.i(1).y),t.m(2,i-20,e),t.m(3,i,e),t.m(4,i+20,e),t.L(5,t.i(5).x,e)):o?n?t.L(3,t.i(2).x,t.i(4).y):6===t.pointsCount&&(t.L(2,i,t.i(2).y),t.L(3,i,t.i(3).y)):4===t.pointsCount?t.m(2,i,t.i(2).y):3===t.pointsCount?t.L(1,i,t.i(2).y):2===t.pointsCount&&t.m(1,i,t.i(1).y)):90===i?(i=a.bottom+s/2,e?4===t.pointsCount&&(e=t.i(3).x,t.L(1,t.i(1).x,i-20),t.m(2,e,i-20),t.m(3,e,i),t.m(4,e,i+20),t.L(5,e,t.i(5).y)):o?n?t.L(3,t.i(2).x,t.i(4).y):6===t.pointsCount&&(t.L(2,t.i(2).x,i),t.L(3,t.i(3).x,i)):4===t.pointsCount?t.m(2,t.i(2).x,i):3===t.pointsCount?t.L(1,t.i(2).x,i):2===t.pointsCount&&t.m(1,t.i(1).x,i)):180===i?(i=a.left-s/2,e?4===t.pointsCount&&(e=t.i(3).y,t.L(1,i+20,t.i(1).y),t.m(2,i+20,e),t.m(3,i,e),t.m(4,i-20,e),t.L(5,t.i(5).x,e)):o?n?t.L(3,t.i(2).x,t.i(4).y):6===t.pointsCount&&(t.L(2,i,t.i(2).y),t.L(3,i,t.i(3).y)):4===t.pointsCount?t.m(2,i,t.i(2).y):3===t.pointsCount?t.L(1,i,t.i(2).y):2===t.pointsCount&&t.m(1,i,t.i(1).y)):270===i&&(i=a.top-s/2,e?4===t.pointsCount&&(e=t.i(3).x,t.L(1,t.i(1).x,i+20),t.m(2,e,i+20),t.m(3,e,i),t.m(4,e,i-20),t.L(5,e,t.i(5).y)):o?n?t.L(3,t.i(2).x,t.i(4).y):6===t.pointsCount&&(t.L(2,t.i(2).x,i),t.L(3,t.i(3).x,i)):4===t.pointsCount?t.m(2,t.i(2).x,i):3===t.pointsCount?t.L(1,t.i(2).x,i):2===t.pointsCount&&t.m(1,t.i(1).x,i)),t.zf()))}}},f.Object.defineProperties(ey.prototype,{fromVertex:{get:function(){return this.kd},set:function(t){this.kd!==t&&(this.kd=t)}},toVertex:{get:function(){return this.qd},set:function(t){this.qd!==t&&(this.qd=t)}},relativePoint:{get:function(){return this.$t},set:function(t){this.$t.set(t)}}}),ey.className="TreeEdge",xe.prototype.initializeStandardTools=function(){this.gb("Action",new gn,this.mouseDownTools),this.gb("Relinking",new on,this.mouseDownTools),this.gb("LinkReshaping",new sn,this.mouseDownTools),this.gb("Rotating",new dn,this.mouseDownTools),this.gb("Resizing",new fn,this.mouseDownTools),this.gb("Linking",new Qe,this.mouseMoveTools),this.gb("Dragging",new Te,this.mouseMoveTools),this.gb("DragSelecting",new yn,this.mouseMoveTools),this.gb("Panning",new vn,this.mouseMoveTools),this.gb("ContextMenu",new wn,this.mouseUpTools),this.gb("TextEditing",new Ln,this.mouseUpTools),this.gb("ClickCreating",new mn,this.mouseUpTools),this.gb("ClickSelecting",new pn,this.mouseUpTools)},el("Horizontal",new dh),el("Spot",new gh),el("Table",new vh),el("Viewbox",new wh),el("TableRow",new xh),el("TableColumn",new bh),el("Graduated",new Nh),el("Grid",new kh),Rr.add("GraphLinksModel",ud),Rr.add("TreeModel",pd);var ny=m.go,oy={get licenseKey(){return To.licenseKey},set licenseKey(t){To.licenseKey=t},get version(){return To.version},Group:gc,EnumValue:V,List:Z,Set:$,Map:dt,Point:pt,Size:At,Rect:Bt,Margin:Wt,Spot:Ii,Geometry:Ui,PathFigure:$i,PathSegment:Qi,InputEvent:he,DiagramEvent:le,ChangedEvent:ue,Model:md,GraphLinksModel:Kd,TreeModel:op,Binding:Gd,Transaction:ge,UndoManager:me,CommandHandler:As,Tool:ve,DraggingTool:Te,DraggingInfo:us,DraggingOptions:Ms,LinkingBaseTool:We,LinkingTool:Qe,RelinkingTool:on,LinkReshapingTool:sn,ResizingTool:fn,RotatingTool:dn,ClickSelectingTool:pn,ActionTool:gn,ClickCreatingTool:mn,HTMLInfo:xn,ContextMenuTool:wn,DragSelectingTool:yn,PanningTool:vn,TextEditingTool:Ln,ToolManager:xe,Animation:ho,AnimationManager:qn,AnimationTrigger:vo,Layer:So,Diagram:To,Palette:Ss,Overview:Ns,Brush:Ia,GraphObject:Ds,Panel:Ch,RowColumnDefinition:hl,Shape:pl,TextBlock:Nl,Picture:ou,Part:ku,Adornment:Ku,Node:Ju,Link:wc,Placeholder:bc,Layout:Ff,LayoutNetwork:Of,LayoutVertex:Vf,LayoutEdge:Gf,GridLayout:Xf,PanelLayout:ch,CircularLayout:rp,CircularNetwork:Dp,CircularVertex:Bp,CircularEdge:Ip,ForceDirectedLayout:zp,ForceDirectedNetwork:qp,ForceDirectedVertex:Hp,ForceDirectedEdge:Kp,LayeredDigraphLayout:Jp,LayeredDigraphNetwork:Hg,LayeredDigraphVertex:Kg,LayeredDigraphEdge:$g,TreeLayout:Qg,TreeNetwork:ty,TreeVertex:iy,TreeEdge:ey};"object"==typeof ny&&ny.version&&S("WARNING: a `go` object on the root object is already defined. "+("Debug"in ny?"debug ":"")+"version: "+ny.version+", replaced with version: "+oy.version),To.prototype.go=oy,m.go=oy,"object"==typeof t.exports&&(t.exports=void 0!==e.g?e.g.go:self.go)}(),i.default=void 0!==e.g?e.g.go:self.go;const n=void 0!==e.g?e.g.go:self.go,o=n.Group,r=n.EnumValue,s=n.List,a=n.Set,h=n.Map,l=n.Point,u=n.Size,c=n.Rect,f=n.Margin,d=n.Spot,p=n.Geometry,g=n.PathFigure,m=n.PathSegment,y=n.InputEvent,v=n.DiagramEvent,x=n.ChangedEvent,b=n.Model,w=n.GraphLinksModel,k=n.TreeModel,M=n.Binding,S=n.Transaction,P=n.UndoManager,N=n.CommandHandler,C=n.Tool,T=n.DraggingTool,L=n.DraggingInfo,A=n.LinkingBaseTool,j=n.LinkingTool,F=n.RelinkingTool,D=n.LinkReshapingTool,B=n.ResizingTool,O=n.RotatingTool,I=n.ClickSelectingTool,z=n.ActionTool,R=n.ClickCreatingTool,E=n.HTMLInfo,V=n.ContextMenuTool,Y=n.DragSelectingTool,G=n.PanningTool,X=n.TextEditingTool,U=n.ToolManager,q=n.Animation,H=n.AnimationManager,K=n.AnimationTrigger,W=n.Layer,J=n.Diagram,Z=n.Palette,_=n.Overview,$=n.Brush,Q=n.GraphObject,tt=n.Panel,it=n.RowColumnDefinition,et=n.Shape,nt=n.TextBlock,ot=n.TextBlockMetrics,rt=n.Picture,st=n.Part,at=n.Adornment,ht=n.Node,lt=n.Link,ut=n.Placeholder,ct=n.Layout,ft=n.LayoutNetwork,dt=n.LayoutVertex,pt=n.LayoutEdge,gt=n.GridLayout,mt=n.PanelLayout,yt=n.CircularLayout,vt=n.CircularNetwork,xt=n.CircularVertex,bt=n.CircularEdge,wt=n.ForceDirectedLayout,kt=n.ForceDirectedNetwork,Mt=n.ForceDirectedVertex,St=n.ForceDirectedEdge,Pt=n.LayeredDigraphLayout,Nt=n.LayeredDigraphNetwork,Ct=n.LayeredDigraphVertex,Tt=n.LayeredDigraphEdge,Lt=n.TreeLayout,At=n.TreeNetwork,jt=n.TreeVertex,Ft=n.TreeEdge,Dt=n.version}}]);