diff --git a/README.txt b/README.txt index b53012a..94dac58 100644 --- a/README.txt +++ b/README.txt @@ -3,7 +3,7 @@ Contributors: neffff Tags: posts, mermaid, diagrams, gantt, sequence, class, erd, entity-relationship, actor, flowchart, block Requires at least: 5.0 Tested up to: 6.0 -Stable tag: 1.0.5 +Stable tag: 1.0.6 Requires PHP: 7.0 License: GPLv3 License URI: https://www.gnu.org/licenses/gpl-3.0.html @@ -30,10 +30,10 @@ Yes. Checkout [MermaidJS](https://mermaid-js.github.io/mermaid/#/n00b-syntaxRef == Changelog == -= 1.0.5 = -* Update mermaid to 9.1.4. += 1.0.6 = +* Update mermaid to 9.1.6. == Upgrade Notice == -= 1.0.5 = -Mermaid update (9.1.4) += 1.0.6 = +Mermaid update (9.1.6) diff --git a/assets/mermaid.js b/assets/mermaid.js index d86dd17..fe37b6b 100644 --- a/assets/mermaid.js +++ b/assets/mermaid.js @@ -10286,6 +10286,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope var Diagram = /*#__PURE__*/function () { function Diagram(txt) { + var _this$db$clear, _this$db; + _classCallCheck(this, Diagram); _defineProperty(this, "type", 'graph'); @@ -10304,6 +10306,7 @@ var Diagram = /*#__PURE__*/function () { // Setup diagram this.db = diagrams[this.type].db; + (_this$db$clear = (_this$db = this.db).clear) === null || _this$db$clear === void 0 ? void 0 : _this$db$clear.call(_this$db); this.renderer = diagrams[this.type].renderer; this.parser = diagrams[this.type].parser; this.parser.parser.yy = this.db; @@ -18695,6 +18698,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ "getClass": () => (/* binding */ getClass), /* harmony export */ "getClasses": () => (/* binding */ getClasses), /* harmony export */ "getRelations": () => (/* binding */ getRelations), +/* harmony export */ "getTooltip": () => (/* binding */ getTooltip), /* harmony export */ "lineType": () => (/* binding */ lineType), /* harmony export */ "lookUpDomId": () => (/* binding */ lookUpDomId), /* harmony export */ "parseDirective": () => (/* binding */ parseDirective), @@ -18912,6 +18916,10 @@ var setTooltip = function setTooltip(ids, tooltip) { } }); }; + +var getTooltip = function getTooltip(id) { + return classes[id].tooltip; +}; /** * Called by parser when a link is found. Adds the URL to the vertex data. * @@ -18920,7 +18928,6 @@ var setTooltip = function setTooltip(ids, tooltip) { * @param target Target of the link, _blank by default as originally defined in the svgDraw.js file */ - var setLink = function setLink(ids, linkStr, target) { var config = _config__WEBPACK_IMPORTED_MODULE_2__.getConfig(); ids.split(',').forEach(function (_id) { @@ -19045,6 +19052,7 @@ var setupToolTips = function setupToolTips(element) { var rect = this.getBoundingClientRect(); tooltipElem.transition().duration(200).style('opacity', '.9'); tooltipElem.text(el.attr('title')).style('left', window.scrollX + rect.left + (rect.right - rect.left) / 2 + 'px').style('top', window.scrollY + rect.top - 14 + document.body.scrollTop + 'px'); + tooltipElem.html(tooltipElem.html().replace(/<br\/>/g, '
')); el.classed('hover', true); }).on('mouseout', function () { tooltipElem.transition().duration(500).style('opacity', 0); @@ -19091,6 +19099,7 @@ var setDirection = function setDirection(dir) { setClickEvent: setClickEvent, setCssClass: setCssClass, setLink: setLink, + getTooltip: getTooltip, setTooltip: setTooltip, lookUpDomId: lookUpDomId }); @@ -19152,9 +19161,11 @@ var conf = { * >} classes * Object containing the vertices. * @param {SVGGElement} g The graph that is to be drawn. + * @param _id + * @param diagObj */ -var addClasses = function addClasses(classes, g) { +var addClasses = function addClasses(classes, g, _id, diagObj) { // const svg = select(`[id="${svgId}"]`); var keys = Object.keys(classes); _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('keys:', keys); @@ -19232,6 +19243,7 @@ var addClasses = function addClasses(classes, g) { style: styles.style, id: vertex.id, domId: vertex.domId, + tooltip: diagObj.db.getTooltip(vertex.id) || '', haveCallback: vertex.haveCallback, link: vertex.link, width: vertex.type === 'group' ? 500 : undefined, @@ -19434,7 +19446,7 @@ var draw = function draw(text, id, _version, diagObj) { var classes = diagObj.db.getClasses(); var relations = diagObj.db.getRelations(); _logger__WEBPACK_IMPORTED_MODULE_4__.log.info(relations); - addClasses(classes, g, id); + addClasses(classes, g, id, diagObj); addRelations(relations, g); // Add custom shapes // flowChartShapes.addToRenderV2(addShape); // Set up an SVG group so that we can translate the final graph. @@ -21930,6 +21942,7 @@ var setupToolTips = function setupToolTips(element) { var rect = this.getBoundingClientRect(); tooltipElem.transition().duration(200).style('opacity', '.9'); tooltipElem.text(el.attr('title')).style('left', window.scrollX + rect.left + (rect.right - rect.left) / 2 + 'px').style('top', window.scrollY + rect.top - 14 + document.body.scrollTop + 'px'); + tooltipElem.html(tooltipElem.html().replace(/<br\/>/g, '
')); el.classed('hover', true); }).on('mouseout', function () { tooltipElem.transition().duration(500).style('opacity', 0); @@ -31963,7 +31976,7 @@ var init = function init() { initThrowsErrors.apply(void 0, arguments); } catch (e) { _logger__WEBPACK_IMPORTED_MODULE_0__.log.warn('Syntax Error rendering'); - _logger__WEBPACK_IMPORTED_MODULE_0__.log.warn(e); + _logger__WEBPACK_IMPORTED_MODULE_0__.log.warn(e.str); if (this.parseError) { this.parseError(e); @@ -32046,15 +32059,23 @@ var initThrowsErrors = function initThrowsErrors() { _logger__WEBPACK_IMPORTED_MODULE_0__.log.debug('Detected early reinit: ', init); } - _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].render(id, txt, function (svgCode, bindFunctions) { - element.innerHTML = svgCode; + try { + _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].render(id, txt, function (svgCode, bindFunctions) { + element.innerHTML = svgCode; - if (typeof callback !== 'undefined') { - callback(id); - } + if (typeof callback !== 'undefined') { + callback(id); + } - if (bindFunctions) bindFunctions(element); - }, element); + if (bindFunctions) bindFunctions(element); + }, element); + } catch (error) { + _logger__WEBPACK_IMPORTED_MODULE_0__.log.warn('Catching Error (bootstrap)'); + throw { + error: error, + message: error.str + }; + } }; for (var i = 0; i < nodes.length; i++) { @@ -32165,32 +32186,32 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ "encodeEntities": () => (/* binding */ encodeEntities) /* harmony export */ }); /* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js"); -/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Serializer.js"); -/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Parser.js"); -/* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../package.json */ "./package.json"); -/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./config */ "./src/config.js"); -/* harmony import */ var _diagram_api_diagram_orchestration__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./diagram-api/diagram-orchestration */ "./src/diagram-api/diagram-orchestration.js"); -/* harmony import */ var _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./diagrams/class/classDb */ "./src/diagrams/class/classDb.js"); -/* harmony import */ var _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./diagrams/flowchart/flowDb */ "./src/diagrams/flowchart/flowDb.js"); -/* harmony import */ var _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./diagrams/flowchart/flowRenderer */ "./src/diagrams/flowchart/flowRenderer.js"); -/* harmony import */ var _diagrams_flowchart_flowRenderer_v2__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./diagrams/flowchart/flowRenderer-v2 */ "./src/diagrams/flowchart/flowRenderer-v2.js"); -/* harmony import */ var _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./diagrams/gantt/ganttDb */ "./src/diagrams/gantt/ganttDb.js"); -/* harmony import */ var _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./diagrams/gantt/ganttRenderer */ "./src/diagrams/gantt/ganttRenderer.js"); -/* harmony import */ var _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./diagrams/sequence/sequenceRenderer */ "./src/diagrams/sequence/sequenceRenderer.js"); -/* harmony import */ var _diagrams_state_stateRenderer__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./diagrams/state/stateRenderer */ "./src/diagrams/state/stateRenderer.js"); -/* harmony import */ var _diagrams_state_stateRenderer_v2__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./diagrams/state/stateRenderer-v2 */ "./src/diagrams/state/stateRenderer-v2.js"); -/* harmony import */ var _diagrams_user_journey_journeyRenderer__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./diagrams/user-journey/journeyRenderer */ "./src/diagrams/user-journey/journeyRenderer.js"); -/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Diagram */ "./src/Diagram.js"); -/* harmony import */ var _errorRenderer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./errorRenderer */ "./src/errorRenderer.js"); -/* harmony import */ var _interactionDb__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./interactionDb */ "./src/interactionDb.js"); -/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./logger */ "./src/logger.js"); -/* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./styles */ "./src/styles.js"); -/* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./themes */ "./src/themes/index.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils */ "./src/utils.js"); -/* harmony import */ var _assignWithDepth__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./assignWithDepth */ "./src/assignWithDepth.js"); +/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Serializer.js"); +/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Parser.js"); +/* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../package.json */ "./package.json"); +/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./config */ "./src/config.js"); +/* harmony import */ var _diagram_api_diagram_orchestration__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./diagram-api/diagram-orchestration */ "./src/diagram-api/diagram-orchestration.js"); +/* harmony import */ var _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./diagrams/class/classDb */ "./src/diagrams/class/classDb.js"); +/* harmony import */ var _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./diagrams/flowchart/flowDb */ "./src/diagrams/flowchart/flowDb.js"); +/* harmony import */ var _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./diagrams/flowchart/flowRenderer */ "./src/diagrams/flowchart/flowRenderer.js"); +/* harmony import */ var _diagrams_flowchart_flowRenderer_v2__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./diagrams/flowchart/flowRenderer-v2 */ "./src/diagrams/flowchart/flowRenderer-v2.js"); +/* harmony import */ var _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./diagrams/gantt/ganttDb */ "./src/diagrams/gantt/ganttDb.js"); +/* harmony import */ var _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./diagrams/gantt/ganttRenderer */ "./src/diagrams/gantt/ganttRenderer.js"); +/* harmony import */ var _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./diagrams/sequence/sequenceRenderer */ "./src/diagrams/sequence/sequenceRenderer.js"); +/* harmony import */ var _diagrams_state_stateRenderer__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./diagrams/state/stateRenderer */ "./src/diagrams/state/stateRenderer.js"); +/* harmony import */ var _diagrams_state_stateRenderer_v2__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./diagrams/state/stateRenderer-v2 */ "./src/diagrams/state/stateRenderer-v2.js"); +/* harmony import */ var _diagrams_user_journey_journeyRenderer__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./diagrams/user-journey/journeyRenderer */ "./src/diagrams/user-journey/journeyRenderer.js"); +/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Diagram */ "./src/Diagram.js"); +/* harmony import */ var _errorRenderer__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./errorRenderer */ "./src/errorRenderer.js"); +/* harmony import */ var _interactionDb__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./interactionDb */ "./src/interactionDb.js"); +/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./logger */ "./src/logger.js"); +/* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./styles */ "./src/styles.js"); +/* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./themes */ "./src/themes/index.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils */ "./src/utils.js"); +/* harmony import */ var _assignWithDepth__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./assignWithDepth */ "./src/assignWithDepth.js"); /* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dompurify */ "./node_modules/dompurify/dist/purify.js"); /* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dompurify__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _mermaid__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mermaid */ "./src/mermaid.js"); +/* harmony import */ var _mermaid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./mermaid */ "./src/mermaid.js"); function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } /** @@ -32235,6 +32256,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" = +var hasLoadedDiagrams = false; /** * @param text * @param dia @@ -32242,24 +32264,29 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" = */ function parse(text, dia) { + if (!hasLoadedDiagrams) { + (0,_diagram_api_diagram_orchestration__WEBPACK_IMPORTED_MODULE_2__["default"])(); + hasLoadedDiagrams = true; + } + var parseEncounteredException = false; try { - var diag = dia ? dia : new _Diagram__WEBPACK_IMPORTED_MODULE_2__["default"](text); + var diag = dia ? dia : new _Diagram__WEBPACK_IMPORTED_MODULE_3__["default"](text); diag.db.clear(); return diag.parse(text); } catch (error) { parseEncounteredException = true; // Is this the correct way to access mermiad's parseError() // method ? (or global.mermaid.parseError()) ? - if (_mermaid__WEBPACK_IMPORTED_MODULE_3__["default"].parseError) { + if (_mermaid__WEBPACK_IMPORTED_MODULE_4__["default"].parseError) { if (error.str != undefined) { // handle case where error string and hash were // wrapped in object like`const error = { str, hash };` - _mermaid__WEBPACK_IMPORTED_MODULE_3__["default"].parseError(error.str, error.hash); + _mermaid__WEBPACK_IMPORTED_MODULE_4__["default"].parseError(error.str, error.hash); } else { // assume it is just error string and pass it on - _mermaid__WEBPACK_IMPORTED_MODULE_3__["default"].parseError(error); + _mermaid__WEBPACK_IMPORTED_MODULE_4__["default"].parseError(error); } } else { // No mermaid.parseError() handler defined, so re-throw it @@ -32331,20 +32358,20 @@ var decodeEntities = function decodeEntities(text) { */ var render = function render(id, _txt, cb, container) { - _config__WEBPACK_IMPORTED_MODULE_4__.reset(); + _config__WEBPACK_IMPORTED_MODULE_5__.reset(); var txt = _txt.replace(/\r\n?/g, '\n'); // parser problems on CRLF ignore all CR and leave LF;; - var graphInit = _utils__WEBPACK_IMPORTED_MODULE_5__["default"].detectInit(txt); + var graphInit = _utils__WEBPACK_IMPORTED_MODULE_6__["default"].detectInit(txt); if (graphInit) { - (0,_utils__WEBPACK_IMPORTED_MODULE_5__.directiveSanitizer)(graphInit); - _config__WEBPACK_IMPORTED_MODULE_4__.addDirective(graphInit); + (0,_utils__WEBPACK_IMPORTED_MODULE_6__.directiveSanitizer)(graphInit); + _config__WEBPACK_IMPORTED_MODULE_5__.addDirective(graphInit); } - var cnf = _config__WEBPACK_IMPORTED_MODULE_4__.getConfig(); - _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug(cnf); // Check the maximum allowed text size + var cnf = _config__WEBPACK_IMPORTED_MODULE_5__.getConfig(); + _logger__WEBPACK_IMPORTED_MODULE_7__.log.debug(cnf); // Check the maximum allowed text size if (_txt.length > cnf.maxTextSize) { txt = 'graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa'; @@ -32418,9 +32445,9 @@ var render = function render(id, _txt, cb, container) { .append('svg').attr('id', id).attr('width', '100%').attr('xmlns', 'http://www.w3.org/2000/svg').append('g'); } - txt = encodeEntities(txt); // Imortant that we do not create the diagram until after the directives have been included + txt = encodeEntities(txt); // Important that we do not create the diagram until after the directives have been included - var diag = new _Diagram__WEBPACK_IMPORTED_MODULE_2__["default"](txt); // Get the tmp element containing the the svg + var diag = new _Diagram__WEBPACK_IMPORTED_MODULE_3__["default"](txt); // Get the tmp element containing the the svg var element = root.select('#d' + id).node(); var graphType = diag.type; // insert inline style into svg @@ -32447,7 +32474,7 @@ var render = function render(id, _txt, cb, container) { if (graphType === 'flowchart' || graphType === 'flowchart-v2' || graphType === 'graph') { - var classes = _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_7__["default"].getClasses(txt, diag); + var classes = _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_8__["default"].getClasses(txt, diag); var htmlLabels = cnf.htmlLabels || cnf.flowchart.htmlLabels; for (var className in classes) { @@ -32469,25 +32496,25 @@ var render = function render(id, _txt, cb, container) { } var stylis = function stylis(selector, styles) { - return (0,stylis__WEBPACK_IMPORTED_MODULE_8__.serialize)((0,stylis__WEBPACK_IMPORTED_MODULE_9__.compile)("".concat(selector, "{").concat(styles, "}")), stylis__WEBPACK_IMPORTED_MODULE_8__.stringify); + return (0,stylis__WEBPACK_IMPORTED_MODULE_9__.serialize)((0,stylis__WEBPACK_IMPORTED_MODULE_10__.compile)("".concat(selector, "{").concat(styles, "}")), stylis__WEBPACK_IMPORTED_MODULE_9__.stringify); }; - var rules = stylis("#".concat(id), (0,_styles__WEBPACK_IMPORTED_MODULE_10__["default"])(graphType, userStyles, cnf.themeVariables)); + var rules = stylis("#".concat(id), (0,_styles__WEBPACK_IMPORTED_MODULE_11__["default"])(graphType, userStyles, cnf.themeVariables)); var style1 = document.createElement('style'); style1.innerHTML = "#".concat(id, " ") + rules; svg.insertBefore(style1, firstChild); try { - diag.renderer.draw(txt, id, _package_json__WEBPACK_IMPORTED_MODULE_11__.version, diag); + diag.renderer.draw(txt, id, _package_json__WEBPACK_IMPORTED_MODULE_12__.version, diag); } catch (e) { - _errorRenderer__WEBPACK_IMPORTED_MODULE_12__["default"].draw(id, _package_json__WEBPACK_IMPORTED_MODULE_11__.version); + _errorRenderer__WEBPACK_IMPORTED_MODULE_13__["default"].draw(id, _package_json__WEBPACK_IMPORTED_MODULE_12__.version); throw e; } root.select("[id=\"".concat(id, "\"]")).selectAll('foreignobject > *').attr('xmlns', 'http://www.w3.org/1999/xhtml'); // Fix for when the base tag is used var svgCode = root.select('#d' + id).node().innerHTML; - _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug('cnf.arrowMarkerAbsolute', cnf.arrowMarkerAbsolute); + _logger__WEBPACK_IMPORTED_MODULE_7__.log.debug('cnf.arrowMarkerAbsolute', cnf.arrowMarkerAbsolute); if ((!cnf.arrowMarkerAbsolute || cnf.arrowMarkerAbsolute === 'false') && cnf.arrowMarkerAbsolute !== 'sandbox') { svgCode = svgCode.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#', 'g'); @@ -32520,26 +32547,26 @@ var render = function render(id, _txt, cb, container) { switch (graphType) { case 'flowchart': case 'flowchart-v2': - cb(svgCode, _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_13__["default"].bindFunctions); + cb(svgCode, _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_14__["default"].bindFunctions); break; case 'gantt': - cb(svgCode, _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__["default"].bindFunctions); + cb(svgCode, _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_15__["default"].bindFunctions); break; case 'class': case 'classDiagram': - cb(svgCode, _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_15__["default"].bindFunctions); + cb(svgCode, _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_16__["default"].bindFunctions); break; default: cb(svgCode); } } else { - _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug('CB = undefined!'); + _logger__WEBPACK_IMPORTED_MODULE_7__.log.debug('CB = undefined!'); } - (0,_interactionDb__WEBPACK_IMPORTED_MODULE_16__.attachFunctions)(); + (0,_interactionDb__WEBPACK_IMPORTED_MODULE_17__.attachFunctions)(); var tmpElementSelector = cnf.securityLevel === 'sandbox' ? '#i' + id : '#d' + id; var node = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(tmpElementSelector).node(); @@ -32577,13 +32604,13 @@ var parseDirective = function parseDirective(p, statement, context, type) { } } } catch (error) { - _logger__WEBPACK_IMPORTED_MODULE_6__.log.error("Error while rendering sequenceDiagram directive: ".concat(statement, " jison context: ").concat(context)); - _logger__WEBPACK_IMPORTED_MODULE_6__.log.error(error.message); + _logger__WEBPACK_IMPORTED_MODULE_7__.log.error("Error while rendering sequenceDiagram directive: ".concat(statement, " jison context: ").concat(context)); + _logger__WEBPACK_IMPORTED_MODULE_7__.log.error(error.message); } }; var handleDirective = function handleDirective(p, directive, type) { - _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug("Directive type=".concat(directive.type, " with args:"), directive.args); + _logger__WEBPACK_IMPORTED_MODULE_7__.log.debug("Directive type=".concat(directive.type, " with args:"), directive.args); switch (directive.type) { case 'init': @@ -32599,10 +32626,10 @@ var handleDirective = function handleDirective(p, directive, type) { delete directive.args[prop]; } }); - _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug('sanitize in handleDirective', directive.args); - (0,_utils__WEBPACK_IMPORTED_MODULE_5__.directiveSanitizer)(directive.args); - _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug('sanitize in handleDirective (done)', directive.args); - _config__WEBPACK_IMPORTED_MODULE_4__.addDirective(directive.args); + _logger__WEBPACK_IMPORTED_MODULE_7__.log.debug('sanitize in handleDirective', directive.args); + (0,_utils__WEBPACK_IMPORTED_MODULE_6__.directiveSanitizer)(directive.args); + _logger__WEBPACK_IMPORTED_MODULE_7__.log.debug('sanitize in handleDirective (done)', directive.args); + _config__WEBPACK_IMPORTED_MODULE_5__.addDirective(directive.args); break; } @@ -32615,11 +32642,11 @@ var handleDirective = function handleDirective(p, directive, type) { break; case 'themeCss': - _logger__WEBPACK_IMPORTED_MODULE_6__.log.warn('themeCss encountered'); + _logger__WEBPACK_IMPORTED_MODULE_7__.log.warn('themeCss encountered'); break; default: - _logger__WEBPACK_IMPORTED_MODULE_6__.log.warn("Unhandled directive: source: '%%{".concat(directive.type, ": ").concat(JSON.stringify(directive.args ? directive.args : {}), "}%%"), directive); + _logger__WEBPACK_IMPORTED_MODULE_7__.log.warn("Unhandled directive: source: '%%{".concat(directive.type, ": ").concat(JSON.stringify(directive.args ? directive.args : {}), "}%%"), directive); break; } }; @@ -32628,55 +32655,55 @@ var handleDirective = function handleDirective(p, directive, type) { function updateRendererConfigs(conf) { // Todo remove, all diagrams should get config on demand from the config object, no need for this - _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_7__["default"].setConf(conf.flowchart); - _diagrams_flowchart_flowRenderer_v2__WEBPACK_IMPORTED_MODULE_17__["default"].setConf(conf.flowchart); + _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_8__["default"].setConf(conf.flowchart); + _diagrams_flowchart_flowRenderer_v2__WEBPACK_IMPORTED_MODULE_18__["default"].setConf(conf.flowchart); if (typeof conf['sequenceDiagram'] !== 'undefined') { - _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_18__["default"].setConf((0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_19__["default"])(conf.sequence, conf['sequenceDiagram'])); + _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_19__["default"].setConf((0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_20__["default"])(conf.sequence, conf['sequenceDiagram'])); } - _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_18__["default"].setConf(conf.sequence); - _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_20__["default"].setConf(conf.gantt); // classRenderer.setConf(conf.class); + _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_19__["default"].setConf(conf.sequence); + _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_21__["default"].setConf(conf.gantt); // classRenderer.setConf(conf.class); - _diagrams_state_stateRenderer__WEBPACK_IMPORTED_MODULE_21__["default"].setConf(conf.state); - _diagrams_state_stateRenderer_v2__WEBPACK_IMPORTED_MODULE_22__["default"].setConf(conf.state); // infoRenderer.setConf(conf.class); + _diagrams_state_stateRenderer__WEBPACK_IMPORTED_MODULE_22__["default"].setConf(conf.state); + _diagrams_state_stateRenderer_v2__WEBPACK_IMPORTED_MODULE_23__["default"].setConf(conf.state); // infoRenderer.setConf(conf.class); - _diagrams_user_journey_journeyRenderer__WEBPACK_IMPORTED_MODULE_23__["default"].setConf(conf.journey); - _errorRenderer__WEBPACK_IMPORTED_MODULE_12__["default"].setConf(conf.class); + _diagrams_user_journey_journeyRenderer__WEBPACK_IMPORTED_MODULE_24__["default"].setConf(conf.journey); + _errorRenderer__WEBPACK_IMPORTED_MODULE_13__["default"].setConf(conf.class); } /** @param {any} options */ function initialize(options) { // Handle legacy location of font-family configuration - if (options && options.fontFamily) { - if (!options.themeVariables) { + if (options !== null && options !== void 0 && options.fontFamily) { + var _options$themeVariabl; + + if (!((_options$themeVariabl = options.themeVariables) !== null && _options$themeVariabl !== void 0 && _options$themeVariabl.fontFamily)) { options.themeVariables = { fontFamily: options.fontFamily }; - } else { - if (!options.themeVariables.fontFamily) { - options.themeVariables = { - fontFamily: options.fontFamily - }; - } } } // Set default options - _config__WEBPACK_IMPORTED_MODULE_4__.saveConfigFromInitialize(options); + _config__WEBPACK_IMPORTED_MODULE_5__.saveConfigFromInitialize(options); - if (options && options.theme && _themes__WEBPACK_IMPORTED_MODULE_24__["default"][options.theme]) { + if (options !== null && options !== void 0 && options.theme && _themes__WEBPACK_IMPORTED_MODULE_25__["default"][options.theme]) { // Todo merge with user options - options.themeVariables = _themes__WEBPACK_IMPORTED_MODULE_24__["default"][options.theme].getThemeVariables(options.themeVariables); - } else { - if (options) options.themeVariables = _themes__WEBPACK_IMPORTED_MODULE_24__["default"]["default"].getThemeVariables(options.themeVariables); + options.themeVariables = _themes__WEBPACK_IMPORTED_MODULE_25__["default"][options.theme].getThemeVariables(options.themeVariables); + } else if (options) { + options.themeVariables = _themes__WEBPACK_IMPORTED_MODULE_25__["default"]["default"].getThemeVariables(options.themeVariables); } - var config = _typeof(options) === 'object' ? _config__WEBPACK_IMPORTED_MODULE_4__.setSiteConfig(options) : _config__WEBPACK_IMPORTED_MODULE_4__.getSiteConfig(); + var config = _typeof(options) === 'object' ? _config__WEBPACK_IMPORTED_MODULE_5__.setSiteConfig(options) : _config__WEBPACK_IMPORTED_MODULE_5__.getSiteConfig(); updateRendererConfigs(config); - (0,_logger__WEBPACK_IMPORTED_MODULE_6__.setLogLevel)(config.logLevel); - (0,_diagram_api_diagram_orchestration__WEBPACK_IMPORTED_MODULE_25__["default"])(); + (0,_logger__WEBPACK_IMPORTED_MODULE_7__.setLogLevel)(config.logLevel); + + if (!hasLoadedDiagrams) { + (0,_diagram_api_diagram_orchestration__WEBPACK_IMPORTED_MODULE_2__["default"])(); + hasLoadedDiagrams = true; + } } var mermaidAPI = Object.freeze({ @@ -32684,21 +32711,21 @@ var mermaidAPI = Object.freeze({ parse: parse, parseDirective: parseDirective, initialize: initialize, - getConfig: _config__WEBPACK_IMPORTED_MODULE_4__.getConfig, - setConfig: _config__WEBPACK_IMPORTED_MODULE_4__.setConfig, - getSiteConfig: _config__WEBPACK_IMPORTED_MODULE_4__.getSiteConfig, - updateSiteConfig: _config__WEBPACK_IMPORTED_MODULE_4__.updateSiteConfig, + getConfig: _config__WEBPACK_IMPORTED_MODULE_5__.getConfig, + setConfig: _config__WEBPACK_IMPORTED_MODULE_5__.setConfig, + getSiteConfig: _config__WEBPACK_IMPORTED_MODULE_5__.getSiteConfig, + updateSiteConfig: _config__WEBPACK_IMPORTED_MODULE_5__.updateSiteConfig, reset: function reset() { - _config__WEBPACK_IMPORTED_MODULE_4__.reset(); + _config__WEBPACK_IMPORTED_MODULE_5__.reset(); }, globalReset: function globalReset() { - _config__WEBPACK_IMPORTED_MODULE_4__.reset(_config__WEBPACK_IMPORTED_MODULE_4__.defaultConfig); - updateRendererConfigs(_config__WEBPACK_IMPORTED_MODULE_4__.getConfig()); + _config__WEBPACK_IMPORTED_MODULE_5__.reset(_config__WEBPACK_IMPORTED_MODULE_5__.defaultConfig); + updateRendererConfigs(_config__WEBPACK_IMPORTED_MODULE_5__.getConfig()); }, - defaultConfig: _config__WEBPACK_IMPORTED_MODULE_4__.defaultConfig + defaultConfig: _config__WEBPACK_IMPORTED_MODULE_5__.defaultConfig }); -(0,_logger__WEBPACK_IMPORTED_MODULE_6__.setLogLevel)(_config__WEBPACK_IMPORTED_MODULE_4__.getConfig().logLevel); -_config__WEBPACK_IMPORTED_MODULE_4__.reset(_config__WEBPACK_IMPORTED_MODULE_4__.getConfig()); +(0,_logger__WEBPACK_IMPORTED_MODULE_7__.setLogLevel)(_config__WEBPACK_IMPORTED_MODULE_5__.getConfig().logLevel); +_config__WEBPACK_IMPORTED_MODULE_5__.reset(_config__WEBPACK_IMPORTED_MODULE_5__.getConfig()); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mermaidAPI); /** * ## mermaidAPI configuration defaults @@ -89061,7 +89088,7 @@ function combine (array, callback) { /***/ ((module) => { "use strict"; -module.exports = JSON.parse('{"name":"mermaid","version":"9.1.4","description":"Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.","main":"dist/mermaid.core.js","module":"dist/mermaid.esm.min.mjs","exports":{".":{"require":"./dist/mermaid.core.js","import":"./dist/mermaid.esm.min.mjs"},"./*":"./*"},"keywords":["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph"],"scripts":{"build:development":"webpack --mode development --progress --color","build:production":"webpack --mode production --progress --color","build":"concurrently \\"yarn build:development\\" \\"yarn build:production\\"","postbuild":"documentation build src/mermaidAPI.js src/config.js src/defaultConfig.js --shallow -f md --markdown-toc false > docs/Setup.md","build:watch":"yarn build:development --watch","release":"yarn build","lint":"eslint ./ --ext .js,.json,.html","lint:fix":"yarn lint --fix","e2e:depr":"yarn lint && jest e2e --config e2e/jest.config.js","cypress":"cypress run","e2e":"start-server-and-test dev http://localhost:9000/ cypress","e2e-upd":"yarn lint && jest e2e -u --config e2e/jest.config.js","dev":"webpack serve --config ./.webpack/webpack.config.e2e.babel.js","ci":"jest src/.*","test":"yarn lint && jest src/.*","test:watch":"jest --watch src","prepublishOnly":"yarn build && yarn test","prepare":"husky install && yarn build","pre-commit":"lint-staged"},"repository":{"type":"git","url":"https://github.com/knsv/mermaid"},"author":"Knut Sveidqvist","license":"MIT","standard":{"ignore":["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],"globals":["page"]},"dependencies":{"@braintree/sanitize-url":"^6.0.0","d3":"^7.0.0","dagre":"^0.8.5","dagre-d3":"^0.6.4","dompurify":"2.3.10","graphlib":"^2.1.8","khroma":"^2.0.0","moment-mini":"^2.24.0","stylis":"^4.0.10"},"devDependencies":{"@applitools/eyes-cypress":"^3.25.7","@babel/core":"^7.14.6","@babel/eslint-parser":"^7.14.7","@babel/preset-env":"^7.14.7","@babel/register":"^7.14.5","@commitlint/cli":"^17.0.0","@commitlint/config-conventional":"^17.0.0","babel-jest":"^28.0.3","babel-loader":"^8.2.2","concurrently":"^7.0.0","coveralls":"^3.0.2","css-to-string-loader":"^0.1.3","cypress":"9.7.0","cypress-image-snapshot":"^4.0.1","documentation":"13.2.0","eslint":"^8.4.1","eslint-config-prettier":"^8.3.0","eslint-plugin-cypress":"^2.12.1","eslint-plugin-html":"^7.1.0","eslint-plugin-jest":"^26.0.0","eslint-plugin-jsdoc":"^39.1.0","eslint-plugin-json":"^3.1.0","eslint-plugin-markdown":"^3.0.0","eslint-plugin-prettier":"^4.0.0","husky":"^8.0.0","identity-obj-proxy":"^3.0.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jison":"^0.4.18","js-base64":"3.7.2","lint-staged":"^13.0.0","moment":"^2.23.0","path-browserify":"^1.0.1","prettier":"^2.3.2","prettier-plugin-jsdoc":"^0.3.30","start-server-and-test":"^1.12.6","terser-webpack-plugin":"^5.2.4","webpack":"^5.53.0","webpack-cli":"^4.7.2","webpack-dev-server":"^4.3.0","webpack-merge":"^5.8.0","webpack-node-externals":"^3.0.0"},"resolutions":{"d3":"^7.0.0"},"files":["dist"],"sideEffects":["**/*.css","**/*.scss"]}'); +module.exports = JSON.parse('{"name":"mermaid","version":"9.1.5","description":"Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.","main":"dist/mermaid.core.js","module":"dist/mermaid.esm.min.mjs","exports":{".":{"require":"./dist/mermaid.core.js","import":"./dist/mermaid.esm.min.mjs"},"./*":"./*"},"keywords":["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph"],"scripts":{"build:development":"webpack --mode development --progress --color","build:production":"webpack --mode production --progress --color","build":"concurrently \\"yarn build:development\\" \\"yarn build:production\\"","postbuild":"documentation build src/mermaidAPI.js src/config.js src/defaultConfig.js --shallow -f md --markdown-toc false > docs/Setup.md","build:watch":"yarn build:development --watch","release":"yarn build","lint":"eslint ./ --ext .js,.json,.html","lint:fix":"yarn lint --fix","e2e:depr":"yarn lint && jest e2e --config e2e/jest.config.js","cypress":"cypress run","e2e":"start-server-and-test dev http://localhost:9000/ cypress","e2e-upd":"yarn lint && jest e2e -u --config e2e/jest.config.js","dev":"webpack serve --config ./.webpack/webpack.config.e2e.babel.js","ci":"jest src/.*","test":"yarn lint && jest src/.*","test:watch":"jest --watch src","prepublishOnly":"yarn build && yarn test","prepare":"husky install && yarn build","pre-commit":"lint-staged"},"repository":{"type":"git","url":"https://github.com/knsv/mermaid"},"author":"Knut Sveidqvist","license":"MIT","standard":{"ignore":["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],"globals":["page"]},"dependencies":{"@braintree/sanitize-url":"^6.0.0","d3":"^7.0.0","dagre":"^0.8.5","dagre-d3":"^0.6.4","dompurify":"2.3.10","graphlib":"^2.1.8","khroma":"^2.0.0","moment-mini":"2.24.0","stylis":"^4.0.10"},"devDependencies":{"@applitools/eyes-cypress":"^3.25.7","@babel/core":"^7.14.6","@babel/eslint-parser":"^7.14.7","@babel/preset-env":"^7.14.7","@babel/register":"^7.14.5","@commitlint/cli":"^17.0.0","@commitlint/config-conventional":"^17.0.0","babel-jest":"^28.0.3","babel-loader":"^8.2.2","concurrently":"^7.0.0","coveralls":"^3.0.2","css-to-string-loader":"^0.1.3","cypress":"9.7.0","cypress-image-snapshot":"^4.0.1","documentation":"13.2.0","eslint":"^8.4.1","eslint-config-prettier":"^8.3.0","eslint-plugin-cypress":"^2.12.1","eslint-plugin-html":"^7.1.0","eslint-plugin-jest":"^26.0.0","eslint-plugin-jsdoc":"^39.1.0","eslint-plugin-json":"^3.1.0","eslint-plugin-markdown":"^3.0.0","eslint-plugin-prettier":"^4.0.0","husky":"^8.0.0","identity-obj-proxy":"^3.0.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jison":"^0.4.18","js-base64":"3.7.2","lint-staged":"^13.0.0","moment":"^2.23.0","path-browserify":"^1.0.1","prettier":"^2.3.2","prettier-plugin-jsdoc":"^0.3.30","start-server-and-test":"^1.12.6","terser-webpack-plugin":"^5.2.4","webpack":"^5.53.0","webpack-cli":"^4.7.2","webpack-dev-server":"^4.3.0","webpack-merge":"^5.8.0","webpack-node-externals":"^3.0.0"},"resolutions":{"d3":"^7.0.0"},"files":["dist"],"sideEffects":["**/*.css","**/*.scss"]}'); /***/ }) diff --git a/assets/mermaid.js.map b/assets/mermaid.js.map index 30c9f5a..e1cc0aa 100644 --- a/assets/mermaid.js.map +++ b/assets/mermaid.js.map @@ -1 +1 @@ -{"version":3,"file":"mermaid.js","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;;ACVA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,8gDAA8gD;AACzhD,aAAa,ioCAAioC;AAC9oC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB;AAChE;AACA;AACA;AACA;AACA;AACA,4CAA4C,wCAAwC;AACpF;AACA;AACA,2CAA2C,oBAAoB;AAC/D;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,8CAA8C,mCAAmC,yCAAyC;AAC1H;AACA;AACA,8CAA8C,yCAAyC;AACvF;AACA;AACA,8CAA8C,kCAAkC,oCAAoC;AACpH;AACA;AACA,8CAA8C,yCAAyC;AACvF;AACA;AACA,8CAA8C,0CAA0C;AACxF;AACA;AACA,8CAA8C,0CAA0C;AACxF;AACA;AACA;AACA;AACA;AACA,8CAA8C,2CAA2C;AACzF;AACA;AACA,8CAA8C,oDAAoD;AAClG;AACA;AACA,8CAA8C,2CAA2C;AACzF;AACA;AACA,8CAA8C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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA,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,wCAAwC,YAAY;AAC7vF,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACn7BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,k2CAAk2C;AAC72C,aAAa,+2BAA+2B;AAC53B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA;AACA,sBAAsB,mCAAmC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,qCAAqC;AACvD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+BAA+B;AACjD;AACA;AACA,kBAAkB,uCAAuC;AACzD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,yEAAyE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,0EAA0E,EAAE,QAAQ,sDAAsD,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,uBAAuB,oBAAoB,4NAA4N,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,eAAe,UAAU,qGAAqG,UAAU,EAAE,UAAU,6BAA6B,gFAAgF,GAAG,8CAA8C,8BAA8B,2BAA2B,EAAE,8CAA8C,EAAE,8CAA8C,EAAE,8CAA8C,EAAE,UAAU,eAAe,wDAAwD,gBAAgB,UAAU,oHAAoH,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,sOAAsO,4CAA4C,wDAAwD,EAAE,4DAA4D,gBAAgB,oBAAoB,eAAe,kCAAkC,oGAAoG,oBAAoB,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,2BAA2B,4CAA4C,UAAU,EAAE,UAAU,gBAAgB,8CAA8C,EAAE,wDAAwD,eAAe,kCAAkC,iBAAiB,2BAA2B,EAAE,aAAa,EAAE,+CAA+C,eAAe,WAAW,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,2DAA2D,+CAA+C,6BAA6B,WAAW,GAAG,WAAW,EAAE,wBAAwB,yDAAyD,WAAW,8BAA8B,WAAW,8BAA8B,WAAW,iBAAiB,cAAc,gBAAgB,UAAU,4CAA4C,WAAW;AAC79F,iBAAiB,sGAAsG;AACvH;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,yIAAyI,8BAA8B,mBAAmB,yBAAyB,0JAA0J,cAAc,aAAa,yFAAyF,oBAAoB,WAAW,yBAAyB,0fAA0f,EAAE,MAAM,YAAY,EAAE;AAC1jC,aAAa,uBAAuB,kCAAkC,cAAc,+BAA+B,cAAc,+BAA+B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,kBAAkB,kCAAkC,kBAAkB,qCAAqC,SAAS,kCAAkC,WAAW,2CAA2C,YAAY,kCAAkC,aAAa,kCAAkC,WAAW,kCAAkC,YAAY;AACxpB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC14BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,k0BAAk0B;AAC70B,aAAa,8eAA8e;AAC3f;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;;AAEA,4CAA4C;AAC5C;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,kBAAkB,mCAAmC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,cAAc,IAAI,GAAG,0BAA0B,EAAE,cAAc,EAAE,UAAU,EAAE,iGAAiG,EAAE,QAAQ,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,gEAAgE,uDAAuD,kDAAkD,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,6BAA6B,UAAU,GAAG,UAAU,EAAE,gBAAgB,EAAE,UAAU,eAAe,aAAa,EAAE,mCAAmC,EAAE,0BAA0B,oGAAoG,aAAa,eAAe,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,gBAAgB,mCAAmC,EAAE,gBAAgB,EAAE,UAAU,EAAE,kCAAkC,4CAA4C,UAAU,EAAE,0BAA0B,gBAAgB,UAAU,eAAe,6BAA6B,2BAA2B,UAAU,uEAAuE,aAAa;AACxuC,iBAAiB,mEAAmE;AACpF;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,0HAA0H,eAAe,cAAc,eAAe,kBAAkB,gCAAgC,oBAAoB,yBAAyB,oBAAoB,gGAAgG,iHAAiH,mCAAmC,cAAc,uCAAuC,aAAa;AAC/kB,aAAa,uBAAuB,gCAAgC,cAAc,8BAA8B,cAAc,8BAA8B,mBAAmB,8BAA8B,mBAAmB,iCAAiC,kBAAkB,kCAAkC,UAAU,iDAAiD,YAAY;AAC5X,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC3xBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,6+DAA6+D;AACx/D,aAAa,6vCAA6vC;AAC1wC;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,6CAA6C,8CAA8C,WAAW;AACtG;AACA;AACA,+CAA+C,gDAAgD,WAAW;AAC1G;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC,qDAAqD;AACxF;AACA;AACA,oBAAoB;AACpB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA,uBAAuB;AACvB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,6CAA6C,UAAU;AACvD;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,qCAAqC;AACvD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+BAA+B;AACjD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,uCAAuC;AACzD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,8CAA8C;AAChE;AACA;AACA,kBAAkB,4CAA4C;AAC9D;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD,SAAS,iDAAiD,EAAE,MAAM,EAAE,QAAQ,EAAE,kDAAkD,YAAY,MAAM,GAAG,eAAe,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,SAAS,EAAE,QAAQ,EAAE,6UAA6U,EAAE,sBAAsB,6DAA6D,uCAAuC,sFAAsF,0DAA0D,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oCAAoC,gBAAgB,UAAU,EAAE,UAAU,6BAA6B,aAAa,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,+KAA+K,2EAA2E,WAAW,gBAAgB,uQAAuQ,mRAAmR,2BAA2B,EAAE,kBAAkB,0DAA0D,WAAW,gBAAgB,cAAc,iBAAiB,qJAAqJ,6DAA6D,6BAA6B,GAAG,oSAAoS,qJAAqJ,oSAAoS,aAAa,OAAO,4CAA4C,QAAQ,GAAG,6JAA6J,EAAE,+BAA+B,EAAE,4JAA4J,EAAE,iJAAiJ,iBAAiB,sBAAsB,kBAAkB,WAAW,kBAAkB,sJAAsJ,kBAAkB,WAAW,mSAAmS,yIAAyI,EAAE,oSAAoS,EAAE,oSAAoS,EAAE,+SAA+S,EAAE,oSAAoS,EAAE,oSAAoS,EAAE,oSAAoS,EAAE,WAAW,EAAE,oSAAoS,EAAE,+SAA+S,EAAE,oSAAoS,EAAE,oSAAoS,EAAE,oSAAoS,gCAAgC,aAAa,EAAE,SAAS,4CAA4C,cAAc,iBAAiB,WAAW,GAAG,WAAW,EAAE,oSAAoS,EAAE,gSAAgS,qWAAqW,2TAA2T,EAAE,gVAAgV,EAAE,cAAc,EAAE,sJAAsJ,EAAE,WAAW,EAAE,WAAW,EAAE,uBAAuB,kBAAkB,WAAW,EAAE,sJAAsJ,EAAE,sJAAsJ,EAAE,WAAW,iBAAiB,WAAW,GAAG,uBAAuB,EAAE,WAAW,kBAAkB,uBAAuB,eAAe,mIAAmI,GAAG,gSAAgS,EAAE,gSAAgS,EAAE,oSAAoS,EAAE,gSAAgS,EAAE,gSAAgS,EAAE,gSAAgS,EAAE,gSAAgS,EAAE,WAAW,EAAE,gSAAgS,EAAE,gSAAgS,EAAE,oSAAoS,EAAE,gSAAgS,EAAE,2SAA2S,EAAE,2SAA2S,EAAE,2BAA2B,eAAe,QAAQ,iCAAiC,gSAAgS,gCAAgC,oSAAoS,aAAa,OAAO,iBAAiB,+IAA+I,EAAE,sHAAsH,EAAE,sHAAsH,EAAE,kIAAkI,EAAE,kIAAkI,EAAE,YAAY,EAAE,sHAAsH,EAAE,sHAAsH,EAAE,iJAAiJ,kBAAkB,WAAW,iBAAiB,WAAW,kDAAkD,WAAW,+CAA+C,gSAAgS,0DAA0D,WAAW,8BAA8B,gSAAgS,gKAAgK,gSAAgS,EAAE,gVAAgV,+BAA+B,SAAS,kBAAkB,uGAAuG,kNAAkN,SAAS,kBAAkB,SAAS,GAAG,WAAW,iBAAiB,SAAS,GAAG,WAAW,gCAAgC,SAAS,iBAAiB,SAAS,kBAAkB,2IAA2I,mBAAmB,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,2BAA2B,gBAAgB,+GAA+G,kBAAkB,iJAAiJ,EAAE,iJAAiJ,gDAAgD,oSAAoS,2BAA2B,OAAO,kBAAkB,uGAAuG,kBAAkB,sJAAsJ,kBAAkB,sJAAsJ,GAAG,gSAAgS,EAAE,gVAAgV,EAAE,sHAAsH,EAAE,sHAAsH,6CAA6C,SAAS,kBAAkB,SAAS;AACr/nB,iBAAiB,mCAAmC;AACpD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA,gCAAgC;AAChC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,iBAAiB,8BAA8B,mBAAmB,yBAAyB,mBAAmB,0HAA0H,cAAc,aAAa,mxBAAmxB,21JAA21J,UAAU;AAC54L,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,iBAAiB,kCAAkC,iBAAiB,qCAAqC,SAAS,kCAAkC,UAAU,kCAAkC,WAAW,6BAA6B,QAAQ,6DAA6D,wBAAwB,kCAAkC,cAAc,+BAA+B,cAAc,8BAA8B,WAAW,kCAAkC,YAAY;AAC5sB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC7hCA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,opBAAopB;AAC/pB,aAAa,ycAAyc;AACtd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,aAAa;AACb;AACA;AACA,oCAAoC;AACpC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,gCAAgC;AAChC;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,2CAA2C;AAC7D;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB,yCAAyC;AAC3D;AACA;AACA,kBAAkB,6CAA6C;AAC/D;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,EAAE,0BAA0B,cAAc,IAAI,GAAG,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,gKAAgK,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,+HAA+H,2IAA2I,UAAU,EAAE,UAAU,4CAA4C,UAAU,gBAAgB,oBAAoB,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,sEAAsE,oBAAoB,gBAAgB,UAAU,iBAAiB,aAAa,EAAE,UAAU,eAAe,UAAU,8BAA8B,UAAU,GAAG,UAAU;AACngC,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,gIAAgI,eAAe,cAAc,kBAAkB,qBAAqB,8TAA8T,2EAA2E,2BAA2B,2BAA2B,6BAA6B,qDAAqD,iCAAiC,2BAA2B,kBAAkB,kBAAkB;AAC54B,aAAa,uBAAuB,kCAAkC,cAAc,8BAA8B,cAAc,8BAA8B,oBAAoB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,iBAAiB,kCAAkC,iBAAiB,qCAAqC,SAAS,kCAAkC,UAAU,kCAAkC,YAAY;AACjjB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACnxBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,8uBAA8uB,0BAA0B;AACnxB,aAAa,idAAid,EAAE;AAChe;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,kDAAkD,EAAE,MAAM,EAAE,mDAAmD,EAAE,mDAAmD,EAAE,2CAA2C,+CAA+C,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE,SAAS,eAAe,gBAAgB,gBAAgB,sBAAsB,oBAAoB,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE,gJAAgJ,6BAA6B,gBAAgB,iBAAiB,QAAQ,EAAE,SAAS,gBAAgB,yBAAyB,0DAA0D,UAAU,EAAE,UAAU,4CAA4C,UAAU,eAAe,wDAAwD,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,wEAAwE,UAAU,EAAE,2BAA2B,EAAE,UAAU,EAAE,UAAU,6BAA6B,UAAU,GAAG,UAAU,eAAe,UAAU,8BAA8B,8BAA8B,gBAAgB,8BAA8B,0DAA0D,8BAA8B,gBAAgB,8BAA8B,GAAG,UAAU,gBAAgB,UAAU,EAAE,2BAA2B,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,2BAA2B,EAAE,UAAU,EAAE,UAAU,EAAE,2BAA2B,EAAE,UAAU,2CAA2C,oBAAoB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,sBAAsB,GAAG,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,eAAe,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,GAAG,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B;AACxmH,iBAAiB,kEAAkE;AACnF;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,+BAA+B;AAC/B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,gIAAgI,eAAe,cAAc;AACpP,aAAa,uBAAuB,kCAAkC,cAAc,8BAA8B,cAAc,8BAA8B,oBAAoB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,YAAY,kCAAkC,WAAW,kCAAkC,YAAY;AAC5c,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC57BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,mHAAmH;AAC9H,aAAa,gDAAgD;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,iCAAiC,EAAE,QAAQ;AAC7F,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC7mBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,0WAA0W,mHAAmH;AACxe,aAAa,4NAA4N,2FAA2F;AACpU;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,gCAAgC;AAChC;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,mDAAmD,EAAE,MAAM,EAAE,oDAAoD,EAAE,oDAAoD,YAAY,cAAc,6CAA6C,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,YAAY,8EAA8E,aAAa,KAAK,GAAG,uBAAuB,iCAAiC,0BAA0B,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,sDAAsD,8EAA8E,iBAAiB,gBAAgB,oFAAoF,aAAa,EAAE,UAAU;AAC1yB,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,0BAA0B;AAC1B;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,0BAA0B,oBAAoB,sNAAsN,eAAe,cAAc;AACxX,aAAa,uBAAuB,kCAAkC,cAAc,+BAA+B,cAAc,+BAA+B,oBAAoB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,UAAU,+BAA+B,WAAW,kCAAkC,YAAY;AACzc,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;AC3qBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,opCAAopC;AAC/pC,aAAa,gyBAAgyB;AAC7yB;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,8CAA8C,EAAE,MAAM,EAAE,uDAAuD,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,eAAe,SAAS,EAAE,+CAA+C,EAAE,QAAQ,EAAE,mJAAmJ,EAAE,uBAAuB,8CAA8C,QAAQ,EAAE,SAAS,EAAE,mJAAmJ,EAAE,mJAAmJ,EAAE,mJAAmJ,EAAE,mJAAmJ,EAAE,mJAAmJ,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oBAAoB,+HAA+H,gBAAgB,gBAAgB,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,uDAAuD,EAAE,uDAAuD,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,oGAAoG,UAAU,eAAe,+CAA+C,EAAE,iCAAiC,EAAE,oBAAoB,EAAE,oBAAoB,gBAAgB,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,+CAA+C,8BAA8B,UAAU,EAAE,UAAU,EAAE,iCAAiC,4CAA4C,oBAAoB,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,kDAAkD,gBAAgB,6BAA6B,EAAE,6BAA6B,gBAAgB,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,kCAAkC,EAAE,kCAAkC;AACn7F,iBAAiB,iRAAiR;AAClS;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,gCAAgC,wHAAwH,eAAe,cAAc,iHAAiH,WAAW,qoBAAqoB;AAC7gC,aAAa,uBAAuB,kCAAkC,cAAc,8BAA8B,cAAc,8BAA8B,oBAAoB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,cAAc,6BAA6B,UAAU,6BAA6B,WAAW,kCAAkC,YAAY;AAChf,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACrzBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,wrCAAwrC;AACnsC,aAAa,kxBAAkxB;AAC/xB;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gDAAgD;AAC/E;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,yBAAyB,gDAAgD;AACzE;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,UAAU;AACV;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,wCAAwC;AACxC;AACA;AACA,wCAAwC;AACxC;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA,oBAAoB,0FAA0F;AAC9G,iBAAiB,qEAAqE;AACtF;AACA;AACA;;AAEA,oBAAoB,wFAAwF;AAC5G,iBAAiB,oFAAoF;AACrG;AACA;AACA;;AAEA,oBAAoB,uFAAuF;AAC3G,iBAAiB,mFAAmF;AACpG;AACA;AACA;;AAEA;AACA,oBAAoB,uFAAuF;AAC3G;AACA;AACA,iBAAiB,gDAAgD;AACjE;AACA;AACA;;AAEA;AACA,oBAAoB,uFAAuF;AAC3G;AACA;AACA,iBAAiB,gDAAgD;AACjE;AACA;AACA;;AAEA;AACA,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A;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,yCAAyC,qBAAqB;AAC9D;AACA,0BAA0B,iBAAiB,oBAAoB;AAC/D;AACA,0BAA0B,iBAAiB;AAC3C;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,uFAAuF,oBAAoB,2FAA2F,iCAAiC,0NAA0N,uNAAuN,yBAAyB,wHAAwH,eAAe,cAAc,mFAAmF,qBAAqB,yCAAyC,4IAA4I;AAC1rC,aAAa,uBAAuB,kCAAkC,cAAc,+BAA+B,cAAc,+BAA+B,mBAAmB,gCAAgC,mBAAmB,kCAAkC,kBAAkB,kCAAkC,OAAO,mCAAmC,UAAU,sCAAsC,SAAS,mCAAmC,YAAY;AAC9c,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACp7BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,ynBAAynB,qJAAqJ;AACzxB,aAAa,wbAAwb,6HAA6H;AAClkB;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,yBAAyB;AAClE;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,6DAA6D,WAAW;AACxE;AACA;;AAEA,2CAA2C,iCAAiC;AAC5E,iBAAiB,4BAA4B,+DAA+D,WAAW;AACvH;AACA;AACA;;AAEA,sEAAsE;AACtE,iBAAiB,4BAA4B,+DAA+D,WAAW,8DAA8D;AACrL;AACA;AACA;;AAEA,2EAA2E;AAC3E,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;;AAEA,2GAA2G;AAC3G,kBAAkB;AAClB;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;;AAEA,6GAA6G;AAC7G,iBAAiB,0CAA0C;AAC3D;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,sCAAsC,EAAE,MAAM,EAAE,sCAAsC,EAAE,sCAAsC,EAAE,uCAAuC,yEAAyE,KAAK,GAAG,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,0LAA0L,EAAE,uBAAuB,iCAAiC,iKAAiK,yCAAyC,oBAAoB,iBAAiB,UAAU,eAAe,UAAU,GAAG,UAAU,0DAA0D,oCAAoC,8BAA8B,UAAU,EAAE,UAAU,kHAAkH,gBAAgB,2CAA2C,oBAAoB,0BAA0B,KAAK,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,8BAA8B,aAAa,EAAE,UAAU,eAAe,UAAU,GAAG,4LAA4L,eAAe,UAAU,GAAG,UAAU,EAAE,UAAU,sDAAsD,KAAK,+BAA+B,4LAA4L;AACt1D,iBAAiB,gEAAgE;AACjF;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wCAAwC;AAC1E;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA,wBAAwB,0CAA0C,yCAAyC;AAC3G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,0CAA0C,yCAAyC;AAC3G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,0CAA0C,yCAAyC;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,wBAAwB,2BAA2B;AACnD;AACA,wBAAwB,uCAAuC;AAC/D;AACA;AACA;AACA,wDAAwD;AACxD;AACA,oDAAoD;AACpD;AACA;AACA;AACA,wBAAwB,0BAA0B,0CAA0C;AAC5F;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,yBAAyB,0BAA0B;AACnD;AACA,yBAAyB,0BAA0B;AACnD;AACA,yBAAyB;AACzB;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,wBAAwB,8CAA8C;AACtE;AACA,yBAAyB,4BAA4B,6CAA6C;AAClG;AACA,yBAAyB,mDAAmD,2CAA2C;AACvH;AACA,yBAAyB,mDAAmD,6CAA6C;AACzH;AACA,4DAA4D;AAC5D;AACA,4DAA4D;AAC5D;AACA,qDAAqD;AACrD;AACA,iDAAiD;AACjD;AACA,2CAA2C;AAC3C;AACA,yCAAyC,sCAAsC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,6IAA6I,kBAAkB,gCAAgC,oBAAoB,0BAA0B,oBAAoB,+PAA+P,eAAe,cAAc,6TAA6T,6CAA6C,wBAAwB,WAAW,gLAAgL,oJAAoJ,qBAAqB;AACnwC,aAAa,QAAQ,kCAAkC,oBAAoB,kCAAkC,kBAAkB,sCAAsC,mBAAmB,sCAAsC,mBAAmB,oCAAoC,WAAW,yEAAyE,qBAAqB,+BAA+B,kBAAkB,qCAAqC,cAAc,kCAAkC,YAAY,+BAA+B,SAAS,qCAAqC,wBAAwB,kCAAkC,cAAc,+BAA+B,cAAc,+BAA+B,UAAU,kCAAkC,UAAU,6BAA6B,aAAa,+BAA+B,iBAAiB,kCAAkC,eAAe,6BAA6B,UAAU,mEAAmE,OAAO,kCAAkC,YAAY;AACjlC,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA;AACA;AACA;AACA,iBAAiB,qDAA0B,CAAC,sFAAyB;AACrE;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA;;;;;;;;;;;ACx1BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAoJ;AACpJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,4BAA4B;AAC1C,MAAM;AACN,WAAW,qcAAqc;AAChd,aAAa,uSAAuS;AACpT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,gCAAgC;AAChC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,cAAc,IAAI,GAAG,0BAA0B,EAAE,cAAc,EAAE,UAAU,EAAE,kGAAkG,EAAE,QAAQ,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,iEAAiE,0CAA0C,UAAU,EAAE,UAAU,8BAA8B,UAAU,gBAAgB,UAAU,EAAE,gBAAgB,EAAE,UAAU,sEAAsE,aAAa,EAAE,UAAU,EAAE,UAAU;AACjoB,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kCAAkC;AAClC,sBAAsB;AACtB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL,sDAAsD;AACtD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,sCAAsC;AACtC;AACA,sCAAsC;AACtC;AACA,yBAAyB,6BAA6B;AACtD;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,yBAAyB,oBAAoB,2FAA2F,wHAAwH,eAAe,cAAc,2BAA2B,kBAAkB,kBAAkB;AACnb,aAAa,kBAAkB,8BAA8B,mBAAmB,gCAAgC,kBAAkB,gCAAgC,wBAAwB,kCAAkC,cAAc,+BAA+B,cAAc,+BAA+B,YAAY;AAClU,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE,cAAc;AACd,cAAc;AACd,aAAa,iBAAiB;AAC9B,YAAY;AACZ;AACA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;;;;;;;;;;;;;AC9ED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAM7K,MAAM,GAAG;EACb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEsB,KAAK,EAAE,SAXM;EAYbiB,cAAc,EAAEjB,4EAAA,EAZH;EAabmb,QAAQ,EAAEvd,SAbG;;EAcb;EACAwd,WAAW,EAAE,KAfA;EAgBbC,QAAQ,EAAE,KAhBG;;EAkBb;AACF;AACA;AACA;AACA;AACA;AACA;EACExZ,UAAU,EAAE,6CAzBC;;EA2Bb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEyZ,QAAQ,EAAE,CAxCG;;EA0Cb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACET,aAAa,EAAE,QAtDF;;EAwDb;AACF;AACA;AACA;AACA;AACA;AACA;EACEU,WAAW,EAAE,IA/DA;;EAiEb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEhP,mBAAmB,EAAE,KA5ER;;EA8Eb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE7K,MAAM,EAAE,CAAC,QAAD,EAAW,eAAX,EAA4B,aAA5B,EAA2C,aAA3C,CAxFK;;EA0Fb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE8Z,gBAAgB,EAAE,KAtGL;;EAwGb;AACF;AACA;AACA;AACA;EACEC,mBAAmB,EAAE7d,SA7GR;;EA+Gb;EACAmF,SAAS,EAAE;IACT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI2Y,cAAc,EAAE,CAbP;;IAeT;AACJ;AACA;AACA;AACA;AACA;AACA;IACI1Y,UAAU,EAAE,IAtBH;;IAwBT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI2Y,WAAW,EAAE,EApCJ;;IAsCT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,WAAW,EAAE,EAlDJ;;IAoDT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI7P,KAAK,EAAE,OA7DE;IA8DT;IACA;IACAxI,OAAO,EAAE,EAhEA;;IAkET;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIsY,WAAW,EAAE,IA9EJ;;IAgFT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,eAAe,EAAE;EA5FR,CAhHE;;EA+Mb;EACAC,QAAQ,EAAE;IACRC,sBAAsB,EAAE,KADhB;;IAER;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,eAAe,EAAE,EATT;;IAWR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,cAAc,EAAE,EAlBR;;IAoBR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,cAAc,EAAE,EA3BR;;IA6BR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,WAAW,EAAE,EApCL;;IAsCR;AACJ;AACA;AACA;AACA;AACA;AACA;IACI/Y,KAAK,EAAE,GA7CC;;IA+CR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,MAAM,EAAE,EAtDA;;IAwDR;AACJ;AACA;AACA;AACA;AACA;AACA;IACI+Y,SAAS,EAAE,EA/DH;;IAiER;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,aAAa,EAAE,CAxEP;;IA0ER;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,UAAU,EAAE,EAjFJ;;IAmFR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,aAAa,EAAE,EA1FP;;IA4FR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,YAAY,EAAE,QAnGN;;IAqGR;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,YAAY,EAAE,IA5GN;;IA8GR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,UAAU,EAAE,KAvHJ;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A,oBAAoB,mBAAO,CAAC,iFAAkB;;AAE9C;;AAEA;AACA,uBAAuB,KAAK;AAC5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA,OAAO,8BAA8B,GAAG,8BAA8B;AACtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;ACxDA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;;;;;;;;;;AC/BA,WAAW,mBAAO,CAAC,oDAAS;;AAE5B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACpCA,mBAAmB,mBAAO,CAAC,6EAAkB;AAC7C,mBAAmB,mBAAO,CAAC,6EAAkB;AAC7C,mBAAmB,mBAAO,CAAC,2EAAiB;;AAE5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACrCA,WAAW,mBAAO,CAAC,oDAAS;;AAE5B;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;;;;;;;;;;ACZA,WAAW,mBAAO,CAAC,oDAAS;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3CA;;AAEA;;AAEA,IAAI,IAA6B;AACjC;AACA;AACA,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,YAAY,mBAAO,CAAC,kDAAa;AACjC,kBAAkB,mBAAO,CAAC,8DAAmB;AAC7C,qBAAqB,mBAAO,CAAC,oEAAsB;AACnD,YAAY,mBAAO,CAAC,kDAAa;AACjC,WAAW,mBAAO,CAAC,gDAAY;AAC/B,aAAa,mBAAO,CAAC,oDAAc;AACnC,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1Ba;;AAEb,WAAW,mBAAO,CAAC,mDAAQ;AAC3B,SAAS,mBAAO,CAAC,+CAAM;;AAEvB;;AAEA;AACA,8CAA8C,4CAA4C;;AAE1F;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC,yBAAyB;AAC1D,kCAAkC,0BAA0B;AAC5D;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;AChCa;;AAEb,WAAW,mBAAO,CAAC,mDAAQ;AAC3B,SAAS,mBAAO,CAAC,+CAAM;AACvB,QAAQ,mBAAO,CAAC,uDAAU;;AAE1B;;AAEA;AACA,8CAA8C,4CAA4C;;AAE1F;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACrBa;;AAEb,WAAW,mBAAO,CAAC,mDAAQ;AAC3B,SAAS,mBAAO,CAAC,+CAAM;;AAEvB;;AAEA;AACA,8CAA8C,4CAA4C;;AAE1F;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACpBA,QAAQ,mBAAO,CAAC,uDAAU;AAC1B,SAAS,mBAAO,CAAC,+CAAM;AACvB,aAAa,mFAAyB;;AAEtC;;AAEA;AACA;AACA,oBAAoB,mBAAO,CAAC,mEAAgB;AAC5C,uBAAuB,mBAAO,CAAC,yEAAmB;AAClD,yBAAyB,mBAAO,CAAC,+EAAsB;AACvD,wBAAwB,mBAAO,CAAC,6EAAqB;AACrD,sBAAsB,mBAAO,CAAC,uEAAkB;AAChD,2BAA2B,mBAAO,CAAC,mFAAwB;AAC3D,yBAAyB,mBAAO,CAAC,6EAAqB;AACtD,eAAe,mBAAO,CAAC,uDAAU;AACjC,eAAe,mBAAO,CAAC,uDAAU;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0DAA0D;;AAE1D;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA,gCAAgC;AAChC,iCAAiC;AACjC,GAAG;;AAEH;AACA;AACA,iCAAiC;AACjC;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvKa;;AAEb,oBAAoB,mBAAO,CAAC,2FAA4B;AACxD,uBAAuB,mBAAO,CAAC,iGAA+B;AAC9D,sBAAsB,mBAAO,CAAC,+FAA8B;AAC5D,uBAAuB,mBAAO,CAAC,iGAA+B;;AAE9D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB,MAAM,cAAc;AACpB,MAAM,cAAc;AACpB,MAAM;AACN;AACA;AACA,6CAA6C,yBAAyB;;AAEtE;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AChFA,QAAQ,mBAAO,CAAC,uDAAU;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACrDA;;;;;;;;;;;ACAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,mBAAO,CAAC,4DAAgB;;AAEpC,UAAU,mBAAO,CAAC,wDAAc;AAChC,SAAS,mBAAO,CAAC,sDAAa;AAC9B;AACA,UAAU,gFAA0B;AACpC,YAAY,kFAA4B;AACxC,GAAG;AACH,WAAW,mBAAO,CAAC,0DAAe;AAClC;;;;;;;;;;;;AChCa;;AAEb,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,gBAAgB,mBAAO,CAAC,4DAAc;;AAEtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;AClEA,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,WAAW,mBAAO,CAAC,gDAAQ;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;;;;;;;;;;;;ACrCa;;AAEb,QAAQ,mBAAO,CAAC,oDAAU;;AAE1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,gCAAgC;AACrE,qCAAqC,gCAAgC;AACrE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,yBAAyB;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,uBAAuB;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvDA,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,WAAW,mBAAO,CAAC,gDAAQ;AAC3B,YAAY,qFAA2B;;AAEvC;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,kCAAkC,aAAa;;AAErE;AACA,mBAAmB,UAAU;AAC7B;AACA,GAAG;;AAEH;AACA,0BAA0B;AAC1B,GAAG;;AAEH;AACA;AACA,wBAAwB,cAAc;AACtC;AACA,wBAAwB,gBAAgB;AACxC;AACA,KAAK;AA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;AACR;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,4BAA4B;AAC5B,4BAA4B;AAC5B,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D,6DAA6D;AAC7D;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,8BAA8B;AACxC,UAAU,8BAA8B;AACxC,UAAU,yBAAyB;AACnC,UAAU,8BAA8B;AACxC,UAAU;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;ACvYA;;AAEA;;AAEA,IAAI,IAA6B;AACjC;AACA;AACA,iBAAiB,mBAAO,CAAC,4DAAkB;AAC3C,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,YAAY,mBAAO,CAAC,kDAAa;AACjC,cAAc,mBAAO,CAAC,sDAAe;AACrC,YAAY,mBAAO,CAAC,kDAAa;AACjC,eAAe,mBAAO,CAAC,wDAAgB;AACvC,eAAe,mBAAO,CAAC,wDAAgB;AACvC,aAAa,mBAAO,CAAC,oDAAc;AACnC,YAAY,mBAAO,CAAC,gDAAY;AAChC,mBAAmB,mBAAO,CAAC,gEAAoB;AAC/C,YAAY,mBAAO,CAAC,kDAAa;AACjC,WAAW,mBAAO,CAAC,gDAAY;AAC/B,iBAAiB,mBAAO,CAAC,4DAAkB;AAC3C,WAAW,mBAAO,CAAC,gDAAY;AAC/B,aAAa,mBAAO,CAAC,oDAAc;AACnC,WAAW,mBAAO,CAAC,gDAAY;AAC/B,aAAa,mBAAO,CAAC,oDAAc;AACnC,WAAW,mBAAO,CAAC,gDAAY;AAC/B,YAAY,mBAAO,CAAC,kDAAa;AACjC,aAAa,mBAAO,CAAC,oDAAc;AACnC,cAAc,mBAAO,CAAC,sDAAe;AACrC,cAAc,mBAAO,CAAC,sDAAe;AACrC,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,cAAc,mBAAO,CAAC,sDAAe;AACrC,iBAAiB,mBAAO,CAAC,4DAAkB;AAC3C;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;AC3CA,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,WAAW,mBAAO,CAAC,gDAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,4CAA4C;AAC5C;;AAEA;;AAEA;AACA,qCAAqC,8BAA8B;;AAEnE;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA,2BAA2B,uCAAuC;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACnIa;;AAEb,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,WAAW,mBAAO,CAAC,gDAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,0BAA0B;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;ACzFA,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA,eAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpDA,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI,mBAAmB;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;AC1BA,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,YAAY,sFAA4B;;AAExC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gBAAgB,aAAa,YAAY;AAClE,yCAAyC,mBAAmB;;AAE5D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mCAAmC;AAClE,OAAO;;AAEP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxEa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA,eAAe;AACf,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;AClEa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,gBAAgB,mBAAO,CAAC,kEAAc;AACtC,iBAAiB,mBAAO,CAAC,oEAAe;AACxC,mBAAmB,mBAAO,CAAC,wEAAiB;AAC5C,sBAAsB,mBAAO,CAAC,gFAAqB;AACnD,6BAA6B,mBAAO,CAAC,8FAA4B;AACjE,YAAY,sFAA4B;AACxC,WAAW,mBAAO,CAAC,iDAAS;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,gCAAgC,cAAc;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;;;;;;;;;;;AC9Ea;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,uDAAuD,wBAAwB;AAC/E,wDAAwD,YAAY;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAsD,wBAAwB;AAC9E;;AAEA;AACA;;;;;;;;;;;;ACrCa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sBAAsB;AACxD,8BAA8B,EAAE;AAChC;AACA;AACA;AACA,yCAAyC,0BAA0B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAmD,uBAAuB;AAC1E;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzHA,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,iBAAiB,mBAAO,CAAC,kEAAc;AACvC,uBAAuB,mBAAO,CAAC,gFAAqB;AACpD,WAAW,mBAAO,CAAC,sDAAQ;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;;;;;;;;;AC3EA,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,WAAW,mBAAO,CAAC,iDAAS;;AAE5B;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,uDAAuD,kBAAkB;AACzE;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACxDA,QAAQ,mBAAO,CAAC,oDAAU;;AAE1B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,WAAW;AACX;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;;;;;;;;;;;;ACrFa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,YAAY,sFAA4B;AACxC,WAAW,mBAAO,CAAC,iDAAS;;AAE5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA,yDAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uDAAuD,mBAAmB;AAC1E;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;AAC1C,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AClaa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,WAAW,mBAAO,CAAC,iDAAS;AAC5B,gBAAgB,sFAAyB;;AAEzC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,qDAAqD,0BAA0B;AAC/E;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;;;;;;;;;;;;AC5Ba;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,YAAY,sFAA4B;AACxC,YAAY,kFAAuB;;AAEnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;;AAEvC;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,0BAA0B;AAC1B;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACxFa;;AAEb,eAAe,mBAAO,CAAC,qDAAQ;AAC/B;AACA,mBAAmB,mBAAO,CAAC,uEAAiB;AAC5C,qBAAqB,mBAAO,CAAC,2EAAmB;;AAEhD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,yCAAyC;AACzC,6CAA6C;AAC7C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AC/Ca;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,mBAAmB,mBAAO,CAAC,uEAAiB;AAC5C,YAAY,kFAAuB;AACnC,eAAe,wFAA6B;AAC5C,eAAe,6FAAmC;AAClD,gBAAgB,8FAAoC;AACpD,eAAe,iFAA2B;;AAE1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH,8CAA8C,wBAAwB;AACtE;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,2BAA2B;AACxE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzOa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC9DA;;AAEa;;AAEb,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,YAAY,qFAA2B;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mCAAmC;AACxE;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA,+BAA+B,8BAA8B;AAC7D;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;;AAEA;AACA,0CAA0C,KAAK;AAC/C,KAAK,oBAAoB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D,YAAY;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,oDAAoD,wBAAwB;;AAE5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,kCAAkC,0BAA0B;AAC5D;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC7OA;;;;;;;;;;;ACAA;;AAEA;AACA,EAAE,KAA4D;AAC9D,EAAE,CACwG;AAC1G,CAAC,uBAAuB;;AAExB;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kFAAkF;AAClF;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,2CAA2C,SAAS;;AAEpD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,aAAa;AAC1G;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6EAA6E,eAAe;AAC5F;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,k/BAAk/B;;AAEl/B;AACA,wYAAwY;AACxY;AACA;AACA;;AAEA;AACA,gTAAgT;AAChT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,EAAE,iBAAiB,EAAE,MAAM;;AAEzD;AACA,sDAAsD;;AAEtD,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,2BAA2B;AACxC,aAAa,UAAU;AACvB,cAAc,oBAAoB;AAClC;AACA;;;AAGA;AACA;AACA;AACA,MAAM;AACN;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,0CAA0C;AAC1C;;AAEA;AACA,0CAA0C;AAC1C;AACA;AACA,kBAAkB,sBAAsB;AACxC,kBAAkB,sBAAsB;AACxC,kBAAkB,SAAS;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,6CAA6C;AAC7C;;AAEA;AACA,2CAA2C;AAC3C;;AAEA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA,sKAAsK;;AAEtK;AACA;AACA,QAAQ;AACR;;AAEA,wDAAwD;AACxD,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D,sDAAsD;AACtD,sDAAsD;AACtD;AACA,uDAAuD;;AAEvD,uDAAuD;;AAEvD,sEAAsE;;AAEtE,4DAA4D;;AAE5D,oDAAoD;;AAEpD,4CAA4C;;AAE5C,8DAA8D;;AAE9D,8DAA8D;;AAE9D,4CAA4C;;AAE5C,iDAAiD;;AAEjD,iDAAiD;;AAEjD,wCAAwC;;AAExC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA,kCAAkC;AAClC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,QAAQ;AACR;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA,oDAAoD;AACpD,6CAA6C,yDAAyD;AACtG;AACA;AACA;;AAEA,kDAAkD;AAClD;AACA;AACA;;AAEA,kCAAkC;AAClC;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,iBAAiB,SAAS;AAC1B;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;;AAGA;AACA;AACA,UAAU;AACV;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;;AAGA;AACA;AACA,UAAU;AACV;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;;;AAGA;AACA,QAAQ;AACR;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;;;AAGA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,MAAM;AACtB;;;AAGA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA,SAAS;AACT;;AAEA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA,YAAY;AACZ,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,UAAU,WAAW;AACrB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,SAAS;AACzB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,SAAS;AACzB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,MAAM;AACtB,gBAAgB,QAAQ;AACxB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,iBAAiB,SAAS;AAC1B;;;AAGA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;;AAGA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;;;AAG5C,wFAAwF,+DAA+D;AACvJ;AACA;AACA;AACA;AACA;AACA,uTAAuT;AACvT;AACA;AACA;;AAEA,QAAQ,wCAAwC,sFAAsF,oKAAoK,qHAAqH,mBAAmB;AAClb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,sCAAsC;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6CAA6C;;AAE7C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;;;AAGA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;;;AAGA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,UAAU;AAC1B;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC;AACD;;;;;;;;;;;AC7mDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,+BAA+B;AAC5C;AACA;AACA;AACA;;AAEA,UAAU,mBAAO,CAAC,mDAAO;;AAEzB;AACA;AACA,QAAQ,mBAAO,CAAC,uDAAY;AAC5B,OAAO,mBAAO,CAAC,2DAAW;AAC1B;AACA;;;;;;;;;;;ACrCA,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;AC1BA,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB;AACA;AACA,KAAK;AACL,qBAAqB;AACrB;AACA;;;;;;;;;;;ACzCA,eAAe,mBAAO,CAAC,+DAAY;AACnC,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;AACA;AACA;AACA,GAAG,IAAI;AACP;;;;;;;;;;;ACTA,QAAQ,mBAAO,CAAC,wDAAW;AAC3B,oBAAoB,mBAAO,CAAC,kFAAwB;;AAEpD;;AAEA;;AAEA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;ACrDA,QAAQ,mBAAO,CAAC,wDAAW;AAC3B,aAAa,mBAAO,CAAC,2DAAU;;AAE/B;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;ACTA,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;;AAEA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,0BAA0B;AAC1B;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB;AACxB,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;;AAEH;AACA;;;;;;;;;;;ACjDA;AACA,cAAc,mBAAO,CAAC,mEAAc;AACpC,YAAY,mBAAO,CAAC,+DAAY;AAChC,eAAe,mBAAO,CAAC,uEAAgB;AACvC,cAAc,mBAAO,CAAC,qEAAe;AACrC,iBAAiB,mBAAO,CAAC,2EAAkB;AAC3C,aAAa,mBAAO,CAAC,mEAAc;AACnC,aAAa,mBAAO,CAAC,iEAAa;AAClC,YAAY,mBAAO,CAAC,+DAAY;AAChC,QAAQ,mBAAO,CAAC,uDAAQ;AACxB,UAAU,mBAAO,CAAC,2DAAU;AAC5B,WAAW,mBAAO,CAAC,6DAAW;AAC9B;;;;;;;;;;;ACZA,cAAc,mBAAO,CAAC,6DAAW;;AAEjC;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACdA,UAAU,mBAAO,CAAC,qDAAO;;AAEzB;;AAEA;AACA;AACA;;;;;;;;;;;ACNA,UAAU,mBAAO,CAAC,qDAAO;;AAEzB;;AAEA;AACA;AACA;;;;;;;;;;;ACNA,QAAQ,mBAAO,CAAC,wDAAW;AAC3B,YAAY,mBAAO,CAAC,sDAAU;AAC9B,oBAAoB,mBAAO,CAAC,kFAAwB;;AAEpD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;ACnDA,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;AC9CA,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wCAAwC;;;;;;;;;;AClCxC,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC,eAAe;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvJa;;AAEb,QAAQ,mBAAO,CAAC,uDAAU;;AAE1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oEAAoE,WAAW;AAC/E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sBAAsB;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sBAAsB;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACnhBA;AACA;AACA,SAAS,mBAAO,CAAC,qDAAS;AAC1B,WAAW,mBAAO,CAAC,yDAAW;AAC9B;;;;;;;;;;;ACJA,QAAQ,mBAAO,CAAC,uDAAU;AAC1B,YAAY,mBAAO,CAAC,qDAAS;;AAE7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,gBAAgB,0CAA0C;AAC1D,GAAG;AACH;AACA;;;;;;;;;;;ACjEA;;AAEA;;AAEA,IAAI,IAA6B;AACjC;AACA;AACA,aAAa,mBAAO,CAAC,oDAAc;AACnC,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,YAAY,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ACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,cAAc,mBAAO,CAAC,qDAAY;AAClC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA,WAAW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AAC,6CAAQ;AAC3B,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;ACrKA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,cAAc;AAC3B;AACA;;AAEA;;;;;;;;;;;ACbA,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;ACjBA,YAAY,mBAAO,CAAC,iDAAU;AAC9B,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACXA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9CA,aAAa,mBAAO,CAAC,mDAAW;AAChC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,0BAA0B,mBAAO,CAAC,6EAAwB;AAC1D,eAAe,mBAAO,CAAC,qDAAY;AACnC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9BA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7BA,eAAe,mBAAO,CAAC,qDAAY;AACnC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA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AEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA,eAAe,mBAAO,CAAC,uDAAa;AACpC,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,wBAAwB,mBAAO,CAAC,yEAAsB;AACtD,eAAe,mBAAO,CAAC,uDAAa;AACpC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvEA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACZA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA,cAAc,mBAAO,CAAC,mDAAW;AACjC,YAAY,mBAAO,CAAC,iDAAU;AAC9B,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;AClCA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxCA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3CA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,QAAQ,UAAU;AAC7B,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACvCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,UAAU;AAC7B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,UAAU;AAC7B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACLA,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;ACpCA,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7BA,UAAU,mBAAO,CAAC,6CAAQ;AAC1B,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClBA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,IAAI;AACJ,CAAC;;AAED;;;;;;;;;;;ACVA,eAAe,mBAAO,CAAC,uDAAa;AACpC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnFA,aAAa,mBAAO,CAAC,mDAAW;AAChC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,SAAS,mBAAO,CAAC,yCAAM;AACvB,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/GA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;A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A;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxBA,SAAS,mBAAO,CAAC,yCAAM;AACvB,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,qDAAY;AAClC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7BA,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACjBA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACZA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClCA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AClBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,WAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,UAAU,mBAAO,CAAC,6CAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;;AAEA;;;;;;;;;;;ACLA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;;AAEA;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ,CAAC;;AAED;;;;;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnCA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;ACjBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;;AAEA;;;;;;;;;;;ACbA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACbA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,UAAU,mBAAO,CAAC,6CAAQ;AAC1B,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,oBAAoB,mBAAO,CAAC,iEAAkB;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;;;;;;;;;;;AC1BA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3CA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA,YAAY,QAAQ,IAAI,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,SAAS,mBAAO,CAAC,yCAAM;AACvB,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,gBAAgB,QAAQ,IAAI,QAAQ,IAAI,QAAQ;AAChD,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;;;;;;;;;;AC/DA,yFAAqC;;;;;;;;;;;ACArC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,OAAO,6CAA6C;AACpD,OAAO;AACP;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnDA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA,OAAO,8CAA8C;AACrD,OAAO,+CAA+C;AACtD,OAAO;AACP;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzCA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,OAAO,oCAAoC;AAC3C,OAAO,oCAAoC;AAC3C,OAAO;AACP;AACA;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtDA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACxCA,cAAc,mBAAO,CAAC,qDAAY;AAClC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtCA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChCA,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB,OAAO;AACzB,0BAA0B,gBAAgB,QAAQ,GAAG;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClCA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA,2BAA2B,gBAAgB,QAAQ,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA,+CAA+C,mBAAmB;AAClE;AACA;AACA;;AAEA;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChCA,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,WAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrCA,eAAe,mBAAO,CAAC,uDAAa;AACpC,aAAa,mBAAO,CAAC,mDAAW;AAChC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,eAAe,mBAAO,CAAC,qDAAY;AACnC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5EA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AClCA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7DA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,cAAc,mBAAO,CAAC,mDAAW;AACjC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA,OAAO,kBAAkB;AACzB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpDA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,kBAAkB,8BAA8B;AAChD,kBAAkB;AAClB;AACA;AACA,oCAAoC,eAAe;AACnD,WAAW,2BAA2B;AACtC;AACA;AACA;AACA,WAAW,2BAA2B;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;AC1CA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;AAChC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACxEA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,aAAa,QAAQ,IAAI,QAAQ;AACjC;AACA;AACA;AACA,aAAa,QAAQ,IAAI,QAAQ;AACjC;AACA;AACA;AACA,WAAW,QAAQ,gBAAgB,IAAI,gBAAgB;AACvD;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;ACtCA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;AAChC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA,kCAAkC,aAAa;AAC/C,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChBA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,sBAAsB;AACjC,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,WAAW;AACX;AACA;AACA,6BAA6B;AAC7B,CAAC;;AAED;;;;;;;;;;;ACxBA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,YAAY,mBAAO,CAAC,iDAAU;AAC9B,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,UAAU;AACvB;AACA;AACA;AACA,OAAO,OAAO,UAAU;AACxB,OAAO,OAAO;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7CA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,cAAc,wBAAwB;AACtC;AACA;AACA,IAAI,IAAI;AACR,WAAW,8BAA8B;AACzC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AClDA,eAAe,mBAAO,CAAC,uDAAa;AACpC,aAAa,mBAAO,CAAC,mDAAW;AAChC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,eAAe,mBAAO,CAAC,qDAAY;AACnC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7CA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,0BAA0B;AACrC;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA,OAAO,6BAA6B;AACpC,OAAO,6BAA6B;AACpC,OAAO,6BAA6B;AACpC,OAAO;AACP;AACA;AACA,kCAAkC,gBAAgB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjBA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzCA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACnCA,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/DA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,WAAW;AACX;AACA,cAAc,QAAQ;AACtB,WAAW;AACX;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/BA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,iBAAiB,wBAAwB;AACzC;AACA,IAAI,IAAI;AACR,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;AChEA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,uDAAa;AACpC,wBAAwB,mBAAO,CAAC,uEAAqB;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;ACzBA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACjCA,kBAAkB,mBAAO,CAAC,6DAAgB;A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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,8BAA8B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,qBAAqB;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,YAAY;AACZ;AACA,sCAAsC;AACtC;AACA;AACA,UAAU;AACV;AACA;AACA,iDAAiD;AACjD;AACA,YAAY;AACZ;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD;AAChD;AACA,MAAM;AACN,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF;AACpF;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA,8DAA8D;;AAE9D;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;;AChhBA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;AAEO;AACA;;;;;;;;;;;;;;;;ACHQ;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACFiC;AACA;AACI;AACJ;AACI;AACR;AACmB;AACH;;AAE9B;AACf,cAAc,oDAAQ;AACtB,eAAe,kDAAM;AACrB,kBAAkB,6DAAO;;AAEzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,OAAO;AACvB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,kDAAM,aAAa,oDAAI;AAC5C,WAAW,qDAAK;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kDAAM;AAC1C,uBAAuB,wDAAa;AACpC;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,aAAa,sDAAM;AACnB;AACA;;AAEA;AACA;;AAEA;AACA,qEAAqE,wDAAQ;AAC7E;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA,4FAA4F,wDAAQ,CAAC,iDAAU,OAAO,wDAAQ;AAC9H;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;ACpGuC;AACF;AACJ;;AAEjC,wBAAwB,wDAAQ,CAAC,qDAAS;AACnC;AACA;AACA,qBAAqB,wDAAQ,CAAC,kDAAM;AAC3C,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;ACRY;;AAExB;AACf;AACA;AACA;;AAEA;AACA;AACA,eAAe,qDAAS;AACxB,yBAAyB,yDAAS;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;;;;;;;;;;;;;;;AC3Ce;AACf;AACA;;;;;;;;;;;;;;;;ACFe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AChCe;AACf;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACLe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACNqC;;AAEtB;AACf,YAAY,wDAAQ;AACpB;AACA;;;;;;;;;;;;;;;;;ACLoC;;AAErB;AACf,eAAe,gDAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACVoC;;AAErB;AACf,uDAAuD,gDAAS;AAChE;AACA;AACA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACde;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACTe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC5Be;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpEuC;;AAExB,oCAAoC,qDAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yDAAS;AACrB,YAAY,yDAAS;AACrB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC5BuC;AACF;;AAEtB,yCAAyC,qDAAS;AACjE,mCAAmC,wDAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AClBoC;AACC;;AAEtB;AACf,sBAAsB,oDAAQ,EAAE,oDAAQ;AACxC;;AAEO;AACP,kCAAkC,oDAAQ;AAC1C;;AAEA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP,sBAAsB,oDAAQ;AAC9B;;AAEO;AACP;AACA;;AAEO;AACP,sBAAsB,oDAAQ;AAC9B;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,gDAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;AChEuC;AACE;AACZ;;AAEd;AACf;AACA,MAAM,oDAAI,CAAC,iDAAM,gDAAgD,yDAAS,YAAY,yDAAS;AAC/F,MAAM,oDAAI,CAAC,qDAAK,0DAA0D,yDAAS;AACnF;AACA;;;;;;;;;;;;;;;;ACTe;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFqF;AACjC;AACF;AACN;AACA;AACE;AACQ;AACF;AACN;AACC;AAC6D;AACxD;AACU,CAAC,eAAe;AACO;AACtB;AACI;AAC3B;AACU;AACR;AACI;AACF;AACJ;AACU;AACR;AACA;AACE;AACI;AACkB;AACV;AACZ;AACF;AACE;AACU;AACJ;AACU;AAClB,CAAC,eAAe;AACA;AAClB;AAC6B;AACjB;AACF;AACV;AACI;AACF;AACI;AACN;AACM;AACE;AACN;AACY;AACJ;AACQ;AACZ;AACI;AACN;AACG;;;;;;;;;;;;;;;;;ACvDX;;AAErB;AACf,eAAe,gDAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,gDAAS,gBAAgB,gDAAS;AAC7D;;;;;;;;;;;;;;;;;AClBuC;;AAExB,iCAAiC,qDAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yDAAS;AACrB,YAAY,yDAAS;AACrB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC5BuC;AACF;;AAEtB,sCAAsC,qDAAS;AAC9D,mCAAmC,wDAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AClBe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACJe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACnBe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACrBe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AClBqC;;AAEtB;AACf,SAAS,wDAAQ;AACjB;;;;;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;;;;;;;;;;;;;;;;ACRe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACnBe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACrBoC;;AAErB;AACf,qBAAqB,gDAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC3ByC;;AAE1B;AACf;AACA;AACA,iBAAiB,wDAAa;AAC9B;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACjBe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACnBe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;ACde;AACf;AACA;;;;;;;;;;;;;;;;;;;;;ACF2B;AACA;AACgB;AACC;;AAE7B;AACf,6BAA6B,mDAAO;AACpC;AACA,qCAAqC,mDAAG;AACxC,qBAAqB,mDAAG;AACxB;AACA;AACA;AACA,eAAe,mDAAG,CAAC,2DAAW;AAC9B,eAAe,mDAAG;AAClB;AACA;;AAEO,6CAA6C,kDAAM;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC5B2D;;AAE3D;AACA;AACe;AACf,oCAAoC,sDAAgB,GAAG,wDAAc;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC7Ce;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACZuC;AACoB;;AAE5C,gCAAgC,qDAAS;AACxD;AACA;AACA;AACA,0DAA0D,qDAAS;AACnE;AACA;AACA;AACA;AACA,sBAAsB,qDAAS,aAAa,0DAAgB,eAAe,wDAAc;AACzF;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;ACvBe;AACf;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACbe;AACf;AACA;AACA;;;;;;;;;;;;;;;;;ACHyC;;AAE1B;AACf,gBAAgB,0DAAU;AAC1B;AACA;;;;;;;;;;;;;;;;;ACLA,iEAAe,qBAAqB,EAAC;;AAE9B;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACZe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACTuC;AACJ;;AAEpB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA,WAAW,uDAAO;AAClB;AACA;AACA;;AAEO,kCAAkC,qDAAS;AAClD,kBAAkB,qDAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;ACtCqC;;AAEtB;AACf,SAAS,wDAAQ;AACjB;;;;;;;;;;;;;;;;ACJe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACjBe;AACf;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;AClBgC;AACM;;AAEvB;AACf,uCAAuC,wDAAQ,iBAAiB,wDAAQ,2BAA2B,qDAAK;AACxG;;;;;;;;;;;;;;;;;;ACLgC;AACQ;;AAEzB;AACf,wCAAwC,yDAAS,oBAAoB,qDAAK;AAC1E;;;;;;;;;;;;;;;;;ACLgC;;AAEjB;AACf,4BAA4B,qDAAK;AACjC;;;;;;;;;;;;;;;;;;ACJA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACrD2B;;AAEZ;AACf;AACA,uBAAuB,mDAAG,4CAA4C,QAAQ;AAC9E,2DAA2D,QAAQ;AACnE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;ACdoC;;AAErB;AACf,kBAAkB,gDAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACVe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxBuC;;AAExB;AACf,SAAS,yDAAS;AAClB;;;;;;;;;;;;;;;;;;;;ACJqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yGAAyG,oDAAQ;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C,4FAA4F;;AAEvI;AACA;AACA,2CAA2C,gCAAgC,yEAAyE;AACpJ;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,yCAAyC;;AAElF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,yBAAyB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;AC7KA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;;ACGmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLkB;AACW;AACL;AACE;AACL;AACH;AACD;AACgB;;AAEpD,iBAAiB,aAAa;AAC9B,kBAAkB,cAAc;AAChC,mBAAmB,eAAe;AAClC,mBAAmB;;AAEnB,OAAO,eAAe;;AAEtB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,iEAAiE;AAC3F,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA,0BAA0B,iEAAiE;AAC3F,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA,wBAAwB,yCAAyC;AACjE,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uDAAQ;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,wDAAM;AAChB;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,gBAAgB;;AAEvD;;AAEA;AACA,qCAAqC,oCAAoC;AACzE,sCAAsC,yBAAyB;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C,sDAAsD;AACrG,6DAA6D,sCAAsC;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0DAAW;;AAE/B;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,wDAAS;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,wDAAM;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,iHAAiH;AACpJ,mCAAmC,iGAAiG;AACpI,uCAAuC,wGAAwG;AAC/I,wCAAwC,wGAAwG;AAChJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,cAAc,wDAAM;AACpB;AACA;AACA;AACA,YAAY,iDAAU;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,wDAAO;AACrB;AACA;AACA;AACA,SAAS;;AAET,IAAI,wDAAS;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,wDAAM;AACtB;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN,iBAAiB,wDAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA,MAAM,oDAAW;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD,wDAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uDAAO;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAwD;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,0DAAa;AACnB;AACA;AACA;AACA,8CAA8C,qBAAqB,QAAQ;AAC3E,QAAQ;AACR,QAAQ,gDAAU;AAClB;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA,yCAAyC;AACzC,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uDAAO;AACb;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,oCAAoC;AACpC,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,sCAAsC;AACtC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uDAAO;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA,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C;;AAEA;AACA;;AAEP;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,sDAAM,WAAW,kDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAM,WAAW,kDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AClX2C;AACyB;AACzB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,0CAAG,OAAO,qDAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6CAAO;AACzC;AACA;;AAEe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,sDAAM,uBAAuB,kDAAM,CAAC,4CAAK;AACzC;AACA,oBAAoB,+CAAQ,YAAY,+CAAQ;AAChD;AACA,GAAG;AACH;AACA,oBAAoB,6CAAM,YAAY,6CAAM;AAC5C;AACA,GAAG;AACH;AACA,iDAAiD,6CAAO;AACxD;AACA;AACA;AACA;AACA,eAAe,0CAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;AC5DD,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACTsD;AACE;AACJ;;;;;;;;;;;;;;;;;;;;;;;;ACFT;AACO;AACP;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,0CAAG,OAAO,qDAAU;AACzC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,sDAAM,WAAW,kDAAM,CAAC,4CAAK;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0CAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC,6CAAO;AACxC;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,6CAAO;AACvB;AACA;;AAEA,sDAAM,WAAW,kDAAM,CAAC,4CAAK;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;AC1HM;AACA;;;;;;;;;;;;;;;;ACDP,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACJA;;AAEO;;;;;;;;;;;;;;;;ACFP,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1CA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;ACA5B,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AC1BmE;AAClC;AACM;AACV;AACQ;AACA;AACR;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA,kBAAkB,gDAAgB;AAClC;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB,oDAAM,eAAe,kDAAQ;AAC7C,WAAW,oDAAK;AAChB,MAAM;AACN,2BAA2B,qDAAS;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,oDAAI;AACd;AACA,KAAK;;AAEL;AACA,oDAAoD,OAAO;AAC3D,YAAY,wDAAQ;AACpB;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,+DAA+D;AAC/D;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,+DAA+D;AAC/D;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR,iEAAiE;AACjE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAA4F,wDAAQ,CAAC,iDAAU,OAAO,wDAAQ;AAC9H;;AAEA;AACA,2DAA2D,gDAAI;AAC/D;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACvM8C;AACb;AACM;AACF;AACA;;AAErC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAQ;;AAE1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,IAAI,+CAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,+CAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,+CAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,+CAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,+CAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,+CAAK,EAAE,mCAAmC,GAAG,mCAAmC;;AAEpF;;AAEA;AACA;AACA,iBAAiB,oDAAG;AACpB,WAAW,kDAAQ;AACnB,WAAW,oDAAK;AAChB;AACA;;AAEA,WAAW,wDAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iEAAiE,wDAAQ;AACzE;;AAEA;AACA,iEAAiE,wDAAQ;AACzE;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAA4F,wDAAQ,CAAC,iDAAU,OAAO,wDAAQ;AAC9H;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;AC5IkD;AACK;;;;;;;;;;;;;;;;ACDvD,6BAAe,sCAAW;;;;;;;;;;;;;;;;;;;;ACAU;AACP;AACM;AACA;;AAEnC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS,mBAAmB;AAC5B,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kDAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,wBAAwB;AAChE,iGAAiG;AACjG;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA,6BAA6B,kDAAU;AACvC,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sDAAsD;AACtD;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAO;AACtB;AACA;AACA,WAAW,4DAA4D;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yDAAyD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,mDAAmD,gDAAI;AACvD,WAAW,8BAA8B;AACzC,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gDAAI;AACvD,WAAW,QAAQ;AACnB,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gDAAI;AACvD,WAAW,cAAc;AACzB;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mDAAO;AAC/B;AACA;AACA;AACA;AACA,mDAAmD,gDAAI;AACvD,WAAW,mBAAmB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA,wBAAwB,mDAAO;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACvPkD;AACF;;;;;;;;;;;;;;;;ACDhD;;AAEe;AACf;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,kBAAkB,yBAAyB,GAAG,yBAAyB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc,GAAG,cAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,GAAG,GAAG,GAAG;AAClD;AACA;AACA,kBAAkB,EAAE,GAAG,EAAE,SAAS,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,cAAc,GAAG,cAAc;AAC/F;AACA;AACA,kBAAkB,yBAAyB,GAAG,yBAAyB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AACzF;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpCe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AChB6B;AACM;;AAEpB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW,wBAAwB,WAAW;;AAEzD;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gDAAI;AACvD,WAAW,WAAW,yBAAyB,0BAA0B;AACzE;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gDAAI;AACvD;AACA;AACA;AACA;AACA,mDAAmD,gDAAI;AACvD;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW,SAAS;AAC/B,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA,wBAAwB,mDAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,SAAS;AAC9D,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0BAA0B,gCAAgC;AACrE;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,OAAO;AACxF;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C,gEAAgE,OAAO;AACvE,kCAAkC,UAAU;AAC5C,gEAAgE,OAAO;AACvE,kCAAkC,UAAU;AAC5C,gEAAgE,OAAO;AACvE,kCAAkC,UAAU;AAC5C,gEAAgE,OAAO;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,MAAM,mBAAmB;AACzB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,MAAM,mBAAmB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACtUA,YAAY;;AAEZ;AACA,8CAA8C,KAAK,OAAO;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA,mFAAmF,OAAO;AAC1F;AACA,gDAAgD,OAAO;AACvD,GAAG;AACH;AACA;AACA,oDAAoD,OAA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c,EAAE,IAAI,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;ACnB2B;;AAE3B,UAAU,mDAAG;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACVP,YAAY;AACZ,YAAY;AACZ;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA,GAAG,gBAAgB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnK8C;AACyE;AACA;AACrE;;;;;;;;;;;;;;;;;;;;;;;ACHvB;;AAE3B,UAAU,mDAAG;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVP;;AAEO;AACP;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAEM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,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sDAAM;AACnC,6BAA6B,sDAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,OAAO;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA;;;;;;;;;;;;;;;;ACnGA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJmD;AACE;AACN;AACQ;AACJ;AACQ;AAClB;AACA;;;;;;;;;;;;;;;;ACPzC,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA,sBAAsB;;AAEtB,6BAAe,sCAAW;AAC1B;AACA;AACA;;;;;;;;;;;;;;;;;;ACRqC;AACJ;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA,iBAAiB,wDAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,sCAAsC,gBAAgB;AACtD,wDAAwD,OAAO;AAC/D;AACA,2DAA2D,sDAAM;AACjE,2DAA2D,sDAAM;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,sCAAsC,OAAO;AAC7C;AACA;AACA;;AAEA;AACA;;AAEA,sCAAsC,OAAO;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wEAAwE,wDAAQ;AAChF;;AAEA;AACA,wEAAwE,wDAAQ;AAChF;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;ACpHqC;AACA;AACJ;AACI;;AAErC,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA,iBAAiB,wDAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,uDAAQ,QAAQ,6CAAC,EAAE,6CAAC;AACxD,2BAA2B,OAAO;AAClC;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;;AAEA;AACA;AACA,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C;AACA;AACA,yBAAyB,sDAAM;AAC/B,yBAAyB,sDAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0CAA0C;AAC1C;AACA,uBAAuB,sDAAM;AAC7B,uBAAuB,sDAAM;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wEAAwE,wDAAQ;AAChF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACnHqC;;AAErC,6BAAe,oCAAS;AACxB;AACA,iBAAiB,wDAAQ;AACzB;AACA;;AAEA,6CAA6C,wDAAQ;AACrD;AACA;;AAEA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wEAAwE,wDAAQ;AAChF;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;ACxDqC;AACN;AACJ;;AAEpB;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+CAAK;AACrB,cAAc,uDAAQ;AACtB,eAAe,mDAAG;;AAElB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,oBAAoB,gBAAgB;AACpC;;AAEA;AACA;AACA,OAAO;;AAEP,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC3JqC;;AAErC,6BAAe,oCAAS;AACxB,iBAAiB,wDAAQ;AACzB;AACA;AACA;;AAEA,mCAAmC,wDAAQ;;AAE3C;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wEAAwE,wDAAQ;AAChF;;AAEA;AACA,iEAAiE,wDAAQ;AACzE;;AAEA;AACA;;;;;;;;;;;;;;;;;ACxCqC;;AAErC,6BAAe,oCAAS;AACxB,iBAAiB,wDAAQ;AACzB;AACA;AACA;;AAEA,mCAAmC,wDAAQ;;AAE3C;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wEAAwE,wDAAQ;AAChF;;AAEA;AACA,iEAAiE,wDAAQ;AACzE;;AAEA;AACA;;;;;;;;;;;;;;;;;;;ACxCuC;;AAEvC;AACO;AACA;;AAEP;AACA;AACA;AACA;AACA,CAAC;;AAEc;AACf,WAAW,sDAAY;AACvB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACjBsD;;AAEtD,6BAAe,oCAAS;AACxB,aAAa,qEAAkB;AAC/B;;;;;;;;;;;;;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP,gGAAgG;AAChG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACnBA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;ACjBA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;ACNsD;;AAE/C;;AAEP,6BAAe,oCAAS;AACxB,UAAU,qEAAkB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,qEAAkB,gCAAgC;AAC9F;;;;;;;;;;;;;;;;;ACfsD;;AAEtD,6BAAe,oCAAS;AACxB,UAAU,qEAAkB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACVA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,uDAAuD;;AAEhD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC9CA;AACA,6BAAe,oCAAS;AACxB,kDAAkD,OAAO;AACzD;AACA,6BAA6B;AAC7B,sCAAsC,QAAQ;AAC9C,sCAAsC,oBAAoB;AAC1D;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACV+C;AACM;AACN;;AAE/C,iEAAe;AACf;AACA;AACA;AACA,OAAO,yDAAa;AACpB;AACA;AACA;AACA;AACA,iBAAiB,6DAAa;AAC9B,OAAO,yDAAa;AACpB,OAAO,4DAAgB;AACvB;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;AClBF,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFwF;AACpC;AAC6B;AACnB;AACE;AACF;;;;;;;;;;;;;;;;;;;;;;;;ACLzB;AACM;AACM;AACE;AACV;AACE;AACU;AAChB;;AAErC;AACA;;AAEA,6BAAe,oCAAS;AACxB,gFAAgF,oDAAQ,GAAG,2DAAW;AACtG;AACA;AACA;AACA,iDAAiD,oDAAQ,GAAG,8DAAc;AAC1E;AACA;AACA;;AAEA;AACA,gBAAgB,+DAAe;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,uDAAW;;AAEzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,uDAAW;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B,0DAAU;;AAEpC;AACA;;AAEA;AACA;AACA,mDAAmD,gEAAc;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uEAAuE;AACvE,uEAAuE;AACvE,sIAAsI;AACtI,sEAAsE;AACtE;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mCAAmC,+DAAe;AAClD,gDAAgD,wDAAQ;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACnJqC;;AAErC,6BAAe,oCAAS;AACxB,sBAAsB,wDAAQ;AAC9B;;;;;;;;;;;;;;;;;ACJqC;;AAErC,6BAAe,oCAAS;AACxB,yDAAyD,wDAAQ,qBAAqB,wDAAQ;AAC9F;;;;;;;;;;;;;;;;;ACJqC;;AAErC,6BAAe,oCAAS;AACxB;AACA,qBAAqB,wDAAQ,QAAQ,wDAAQ;AAC7C;;;;;;;;;;;;;;;;;;;;;;ACL+B;AACoC;AACtC;AACI;;AAE1B,sBAAsB,2CAAK;;AAElC;;AAEA,kBAAkB,2CAAK;AACvB;AACA;AACA;AACA;AACA;;AAEO;AACP,SAAS,gDAAI;AACb,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA,sBAAsB,2CAAK;AAC3B;AACA;AACA,GAAG;AACH;AACA;AACA,+BAA+B,yCAAG;AAClC,iDAAiD,gDAAI;AACrD,GAAG;AACH;AACA,gBAAgB,yCAAG;AACnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC,8BAA8B,6CAAG,iBAAiB,+CAAS,aAAa,6CAAG;AAC3E;;AAEA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC,kBAAkB,+CAAS,EAAE;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6CAAG;AAClB,eAAe,6CAAG;AAClB;AACA,iCAAiC,6CAAG;AACpC,yBAAyB,6CAAG;AAC5B,kBAAkB,+CAAK;;AAEvB;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,gBAAgB,2CAAK;AACrB,EAAE,sDAAM;AACR;AACA;;;;;;;;;;;;;;;;;;;;;AC3E+B;AACmB;AAC6C;AACtC;AACxB;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2CAAK;AACxB,IAAI,6DAAuB;AAC3B,GAAG;AACH;AACA,IAAI,2DAAqB;AACzB;AACA;AACA;AACA,QAAQ,iDAAW;AACnB,wBAAwB,6CAAO;AAC/B,yBAAyB,6CAAO;AAChC;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,wDAAS,WAAW,6CAAO,QAAQ,6CAAO;AACpD;AACA,iBAAiB,6DAAc;AAC/B;AACA,qBAAqB,6DAAc;AACnC,IAAI,wEAAyB;AAC7B,iBAAiB,wDAAS;AAC1B;AACA;AACA,kCAAkC,6CAAO;AACzC;AACA,uBAAuB,6CAAG;AAC1B;AACA,6BAA6B,6CAAO;AACpC;AACA,MAAM;AACN,8BAA8B,6CAAO;AACrC;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,6CAAG;AACpB,IAAI;AACJ;AACA;AACA,EAAE,sDAAgB;AAClB;AACA;;AAEA;AACA,EAAE,0DAAoB;AACtB;;AAEA;AACA;AACA,EAAE,wDAAkB;AACpB,MAAM,6CAAG,aAAa,6CAAO;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA,EAAE,sDAAM;;AAER;AACA;AACA;;AAEA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,4EAA4E,QAAQ;AACpF;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AClLsD;;AAE/C;AACP,UAAU,+CAAK,8BAA8B,8CAAI;AACjD;;AAEO;AACP,0DAA0D,6CAAG;AAC7D,mBAAmB,6CAAG,mBAAmB,6CAAG,UAAU,6CAAG;AACzD;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACO;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACO;AACP,UAAU,8CAAI;AACd;AACA;;;;;;;;;;;;;;;;;;;;AChC+B;AACmE;AACrE;AACI;;AAEjC;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA,UAAU,gDAAI;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC,eAAe,6CAAG;AAClB,kCAAkC,6CAAG,mBAAmB,6CAAG,UAAU,6CAAG;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC,eAAe,6CAAG;AAClB,gBAAgB,6CAAG;AACnB,gBAAgB,6CAAG;AACnB,OAAO,6CAAG;AACV;AACA;AACA;;AAEA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC,eAAe,6CAAG;AAClB,mBAAmB,6CAAG;AACtB,mBAAmB,6CAAG;AACtB,UAAU,6CAAG;AACb,UAAU,+CAAK,CAAC,8CAAI;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC;AACA,eAAe,6CAAG;AAClB,gBAAgB,6CAAG;AACnB,gBAAgB,6CAAG;AACnB,OAAO,6CAAG;AACV;AACA;;AAEA;AACA,YAAY,6CAAO,SAAS,6CAAO;AACnC,eAAe,6CAAG;AAClB,mBAAmB,6CAAG;AACtB,mBAAmB,6CAAG;AACtB,UAAU,6CAAG;AACb;AACA;AACA;AACA,UAAU,+CAAK;AACf,UAAU,8CAAI;AACd,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA,WAAW,2CAAK;AAChB,WAAW,2CAAK;AAChB,WAAW,2CAAK;AAChB,EAAE,sDAAM;;AAER;AACA;AACA;AACA,UAAU,+CAAK;;AAEf;AACA,UAAU,8CAAQ;AAClB;AACA;AACA,aAAa,6CAAO;AACpB,QAAQ,+CAAK;AACb;AACA,YAAY,8CAAQ;AACpB;;AAEA,UAAU,+CAAK,SAAS,6CAAO,EAAE,8CAAI,UAAU,6CAAO;AACtD;;;;;;;;;;;;;;;;;;;;;AC9I+E;AAC1C;AACoC;AAC7B;;AAE5C;AACO;AACP;AACA,kBAAkB,6CAAG;AACrB,kBAAkB,6CAAG;AACrB;AACA;AACA,8BAA8B,yCAAG;AACjC;AACA,IAAI;AACJ;AACA;AACA,6DAA6D,yCAAG;AAChE;AACA,0BAA0B,iCAAiC;AAC3D,YAAY,wDAAS,0BAA0B,6CAAG,kBAAkB,6CAAG;AACvE;AACA;AACA;;AAEA;AACA;AACA,UAAU,wDAAS;AACnB,EAAE,wEAAyB;AAC3B,eAAe,8CAAI;AACnB,+CAA+C,yCAAG,GAAG,6CAAO,IAAI,yCAAG;AACnE;;AAEA,6BAAe,sCAAW;AAC1B,eAAe,wDAAQ;AACvB,eAAe,wDAAQ;AACvB,kBAAkB,wDAAQ;AAC1B;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA,YAAY,6CAAO,UAAU,6CAAO;AACpC;;AAEA;AACA;AACA,4CAA4C,6CAAO;AACnD,+CAA+C,6CAAO;AACtD;AACA,aAAa,2DAAa,SAAS,6CAAO,UAAU,6CAAO;AAC3D;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA,yEAAyE,wDAAQ;AACjF;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACvE8B;AACsC;;AAEpE,iEAAe,qDAAI;AACnB,eAAe,cAAc;AAC7B;AACA;AACA,IAAI,wCAAE,GAAG,4CAAM;AACf,CAAC,EAAC;;AAEF;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gCAAgC,wCAAE,IAAI,wCAAE;AACxC,kBAAkB,6CAAG;AACrB,UAAU,6CAAG,SAAS,wCAAE,IAAI,6CAAO,IAAI;AACvC,6DAA6D,4CAAM,IAAI,4CAAM;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qCAAqC,wCAAE,IAAI;AACnD,YAAY,6CAAG,oBAAoB,6CAAO,qBAAqB,6CAAO,EAAE;AACxE,YAAY,6CAAG,oBAAoB,6CAAO,qBAAqB,6CAAO;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,wBAAwB;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,6CAAG;AAC7B,SAAS,6CAAG,sBAAsB,6CAAO;AACzC,QAAQ,8CAAI,EAAE,6CAAG,oBAAoB,6CAAG,UAAU,6CAAG;AACrD,YAAY,6CAAG,oBAAoB,6CAAG,UAAU,6CAAG;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,4CAAM;AAC5B,kBAAkB,wCAAE;AACpB;AACA,iBAAiB,wCAAE;AACnB,iBAAiB,wCAAE;AACnB,iBAAiB,wCAAE;AACnB;AACA,kBAAkB,wCAAE;AACpB,kBAAkB,wCAAE;AACpB,kBAAkB,wCAAE;AACpB,IAAI,SAAS,6CAAG,oBAAoB,6CAAO;AAC3C,mCAAmC,wCAAE,IAAI,wCAAE;AAC3C;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;;;;;;AC3F8B;;AAE9B,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,aAAa,gDAAI;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACvBwH;AAC9E;AACsB;AACtB;AACZ;;AAE9B,6BAAe,oCAAS;AACxB,WAAW,6CAAG;AACd,kBAAkB,6CAAO;AACzB;AACA,sBAAsB,6CAAG,OAAO,6CAAO,EAAE;;AAEzC;AACA,IAAI,wDAAY;AAChB;;AAEA;AACA,WAAW,6CAAG,WAAW,6CAAG;AAC5B;;AAEA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wCAAE,IAAI,wCAAE;AACxD;AACA;AACA;AACA,yBAAyB,0DAAU,oBAAoB,0DAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0DAAU;AACxC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,wDAAS;AACtB,aAAa,wDAAS;;AAEtB;AACA;AACA;AACA,aAAa,6DAAc;AAC3B,eAAe,2DAAY;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB,6DAAc;AAC9B,YAAY,6DAAc;AAC1B,YAAY,6DAAc;AAC1B,IAAI,kEAAmB;;AAEvB;AACA;AACA,YAAY,2DAAY;AACxB,aAAa,2DAAY;AACzB,2BAA2B,2DAAY;;AAEvC;;AAEA,YAAY,8CAAI;AAChB,YAAY,6DAAc;AAC1B,IAAI,kEAAmB;AACvB,QAAQ,wDAAS;;AAEjB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gBAAgB,6CAAG,SAAS,wCAAE,IAAI,6CAAO;AACzC,oCAAoC,6CAAO;;AAE3C;;AAEA;AACA;AACA;AACA,sCAAsC,6CAAG,mBAAmB,6CAAO;AACnE;AACA,kBAAkB,wCAAE;AACpB,eAAe,6DAAc;AAC7B,MAAM,kEAAmB;AACzB,iBAAiB,wDAAS;AAC1B;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,wCAAE;AACrC;AACA,gCAAgC;AAChC,oCAAoC;AACpC,6BAA6B;AAC7B,iCAAiC;AACjC;AACA;;AAEA,SAAS,qDAAI,gEAAgE,wCAAE,WAAW,wCAAE;AAC5F;;;;;;;;;;;;;;;;;AChL2C;;AAE3C,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+DAA+D,yDAAa;AAC5E,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACnBqC;AACA;AACM;AACS;AACrB;;AAE/B,6BAAe,oCAAS;AACxB;AACA;AACA,qBAAqB,sDAAU;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,mBAAmB,oDAAK;AACxB,0BAA0B,+DAAe;AACzC;AACA;AACA,UAAU,sDAAU;AACpB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,4CAAM,GAAG,6CAAO,GAAG,4CAAM;AAC7D,oCAAoC,4CAAM,GAAG,6CAAO,GAAG,4CAAM;AAC7D;;;;;;;;;;;;;;;;AClIA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AC1DwC;AACH;AACJ;AACI;AACN;;AAE/B;;AAEA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,WAAW,6CAAG,cAAc,6CAAO;AACnC,UAAU,6CAAG,cAAc,6CAAO;AAClC,UAAU,6CAAG,cAAc,6CAAO;AAClC,iCAAiC;AACjC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,sDAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,0CAA0C,OAAO;AACjD,mHAAmH,OAAO;AAC1H;AACA,0BAA0B;AAC1B,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC,oDAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,sDAAU;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,cAAc,oDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvK0C;AACP;;AAEnC;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,QAAQ,0DAAU;AAClB;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA,mBAAmB,6CAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;;AAEA,+BAA+B,OAAO;AACtC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,sCAAsC,QAAQ;AAC9C,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACtGA,6BAAe,oCAAS;;AAExB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACXA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACJgE;AACd;AACN;;AAE5C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,wDAAQ;AACjB;;AAEA;AACA;AACA,0CAA0C,OAAO;AACjD,SAAS,wDAAQ;AACjB;AACA;AACA,WAAW,wDAAQ;AACnB;AACA;AACA;AACA;AACA,6DAA6D,8CAAQ;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,+DAAe;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB,6CAAO,aAAa,6CAAO;AAChD;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AChGiC;;AAE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C;AACtC;AACA;;AAEA;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;ACnCe;;;;;;;;;;;;;;;;;;;ACAgB;AACA;AACD;;AAE9B,kBAAkB,2CAAK;AACvB,sBAAsB,2CAAK;AAC3B;AACA;AACA;AACA;;AAEA;AACA,SAAS,gDAAI;AACb,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA,GAAG;AACH;AACA,mEAAmE,gDAAI;AACvE,gBAAgB,6CAAG;AACnB,sBAAsB,2CAAK;AAC3B,GAAG;AACH;AACA;AACA,kBAAkB,2CAAK;AACvB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;ACjDI;;AAE9B;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf,gBAAgB,gDAAI;AACpB,cAAc,gDAAI;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;AC3BI;;AAEhC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,8CAAI;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,8CAAI;;AAEd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;;;ACnGC;AACD;;AAEf;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,yCAAG;AACpD;AACA;AACA;AACA,GAAG;AACH,UAAU,gDAAI;AACd;;;;;;;;;;;;;;;;;;;;;;;;AC5CsC;AACJ;AACD;AACI;AACI;AACF;AACA;AACF;;AAErC,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,sDAAM;AACZ;AACA;AACA;;AAEA;AACA,IAAI,sDAAM,0BAA0B,gDAAQ;AAC5C,WAAW,uDAAe;AAC1B;;AAEA;AACA,IAAI,sDAAM,0BAA0B,mDAAW;AAC/C,WAAW,0DAAkB;AAC7B;;AAEA;AACA,IAAI,sDAAM,0BAA0B,kDAAU;AAC9C,WAAW,yDAAiB;AAC5B;;AAEA;AACA,IAAI,sDAAM,0BAA0B,oDAAY;AAChD,WAAW,2DAAmB;AAC9B;;AAEA;AACA,kFAAkF,oDAAQ;AAC1F;;AAEA;AACA;AACA,qDAAqD,kDAAU,QAAQ,mDAAW;AAClF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;AC5D+B;AACC;AACF;;AAE9B,oBAAoB,2CAAK;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,gDAAI;AACb;AACA;AACA,GAAG;AACH;AACA;AACA,yBAAyB,gDAAI;AAC7B,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,oBAAoB,2CAAK;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,8CAAI;AACpB;AACA;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;AC5Cb;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;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;;;;;;;;;;;;;;;ACXkD;AACL;;AAE7C;AACA;AACA;AACA;AACA,EAAE,sDAAS,2BAA2B,uDAAY;AAClD,YAAY,8DAAmB;AAC/B;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;AC9C0C;AACK;AACX;;AAE7B;AACP,WAAW,6CAAG,SAAS,6CAAG;AAC1B,eAAe,6CAAG,SAAS,6CAAG;AAC9B;;AAEA,qBAAqB,8DAAe,CAAC,0CAAI;;AAEzC,6BAAe,sCAAW;AAC1B,SAAS,qDAAU;AACnB;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACfiD;AACX;AACM;AACqB;AACX;;AAEtD,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA,kBAAkB,0DAAW;AAC7B;AACA;AACA;AACA;AACA,OAAO;AACP,iBAAiB,oDAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,oDAAQ,IAAI,8DAAa;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,6CAAO,OAAO,6CAAG,cAAc,6CAAG,4BAA4B,6CAAO;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kDAAS;AACpB;AACA;AACA,WAAW,gDAAO;AAClB;AACA;AACA,WAAW,iDAAQ;AACnB;AACA;AACA,WAAW,kDAAS;AACpB;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpFuD;AACZ;AACM;AACb;AACE;AACsB;AACf;AACD;AACqB;AAC5B;;AAErC,uBAAuB,0DAAW;AAClC;AACA,0BAA0B,6CAAO,MAAM,6CAAO;AAC9C;AACA,CAAC;;AAED;AACA,SAAS,0DAAW;AACpB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,6CAAG;AACpB,iBAAiB,6CAAG;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,wCAAwC,iBAAiB;AACzD;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,6DAAgB;AAC9C,wCAAwC,oDAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,6CAAO,aAAa,6CAAO;AACxE;;AAEA;AACA;AACA,gCAAgC,6CAAO,aAAa,6CAAO;AAC3D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8CAA8C,2DAAU,aAAa,6CAAO,mBAAmB,6DAAgB,sBAAsB,6CAAO;AAC5I;;AAEA;AACA,iFAAiF,oDAAQ,IAAI,8DAAa;AAC1G;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qDAAqD,6CAAO,qBAAqB,6CAAO,0BAA0B,6CAAO,QAAQ,6CAAO;AACxI;;AAEA;AACA,0DAA0D,6CAAO,0BAA0B,6CAAO,2CAA2C,6CAAO,mCAAmC,6CAAO,aAAa,6CAAO,eAAe,6CAAO;AACxO;;AAEA;AACA,iDAAiD,6CAAO,wBAAwB,6CAAO;AACvF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iDAAiD,wDAAQ,+CAA+C,8CAAI;AAC5G;;AAEA;AACA,WAAW,kDAAS;AACpB;;AAEA;AACA,WAAW,gDAAO;AAClB;;AAEA;AACA,WAAW,iDAAQ;AACnB;;AAEA;AACA,WAAW,kDAAS;AACpB;;AAEA;AACA;AACA;AACA,aAAa,2DAAa;AAC1B,uBAAuB,uDAAO;AAC9B,6BAA6B,uDAAO;AACpC,sBAAsB,wDAAQ;AAC9B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AChLgE;AAC1B;AACF;;AAE7B;AACP,kBAAkB,6CAAG,CAAC,6CAAG,EAAE,4CAAM;AACjC;;AAEA;AACA,iBAAiB,8CAAI,CAAC,6CAAG,OAAO,4CAAM;AACtC;;AAEA,6BAAe,sCAAW;AAC1B;AACA,mBAAmB,yCAAG;AACtB;;AAEO;AACP,UAAU,qDAAU;AACpB;AACA;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,wCAAE;AACd,cAAc,wDAAQ;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;ACnDoC;AACI;;AAEjC;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,6CAAG,UAAU,6CAAO;AAC/B;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B,SAAS,qDAAU;AACnB;AACA;;;;;;;;;;;;;;;;;;;;AC3BmD;AACJ;AACX;;AAE7B;AACP,UAAU,6CAAG,MAAM,6CAAG,KAAK,6CAAG;AAC9B;;AAEA,yBAAyB,8DAAe,CAAC,0CAAI;;AAE7C,6BAAe,sCAAW;AAC1B,SAAS,qDAAU;AACnB;AACA,sBAAsB,6CAAO;AAC7B;;;;;;;;;;;;;;;;;;;ACd0C;AAC+B;AAC7B;;AAE5C;AACA,qBAAqB,6CAAG,MAAM,6CAAO,GAAG;;AAExC,6BAAe,oCAAS;AACxB;AACA;;AAEA;AACA,SAAS,0DAAW;AACpB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8CAAI;AAClB,iBAAiB,8CAAI;AACrB,oBAAoB,6CAAG,CAAC,6CAAG,WAAW,6CAAO,IAAI,6CAAG,sBAAsB,6CAAO,6BAA6B,+CAAK;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6CAAG;AAChB,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA,iCAAiC,uBAAuB,uCAAuC;AAC/F,+BAA+B,qBAAqB;AACpD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,wDAAS;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACrG0C;AACK;AACX;;AAE7B;AACP,WAAW,6CAAG,aAAa,6CAAG;AAC9B,eAAe,6CAAG,SAAS,6CAAG;AAC9B;;AAEA,0BAA0B,8DAAe;AACzC,aAAa,8CAAI;AACjB,CAAC;;AAED,6BAAe,sCAAW;AAC1B,SAAS,qDAAU;AACnB;AACA;AACA;;;;;;;;;;;;;;;;;;;ACjBuD;AACN;;AAE1C;AACP,UAAU,6CAAG,CAAC,6CAAG,EAAE,4CAAM;AACzB;;AAEA;AACA,kBAAkB,8CAAI,CAAC,6CAAG,OAAO,4CAAM;AACvC;;AAEA,6BAAe,sCAAW;AAC1B,UAAU,gEAAkB;AAC5B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC1BmC;AAC6C;;AAEhF;AACA,UAAU,6CAAG,WAAW,wCAAE,iCAAiC,yCAAG,IAAI,yCAAG;AACrE;;AAEA;;AAEO;AACP,yBAAyB,yCAAG,8BAA8B,uDAAO;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C,wCAAE,YAAY,yCAAG,aAAa,wCAAE,YAAY,yCAAG;AAC3F;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,6CAAG;AACvB,oBAAoB,6CAAG;AACvB,sBAAsB,6CAAG;AACzB,sBAAsB,6CAAG;;AAEzB;AACA,iBAAiB,6CAAG;AACpB,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf;AACA;AACA,MAAM,+CAAK;AACX,MAAM,8CAAI;AACV;AACA;;AAEA;AACA,iBAAiB,6CAAG;AACpB,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf;AACA;AACA,MAAM,+CAAK;AACX,MAAM,8CAAI;AACV;AACA;;AAEA;AACA;;AAEA,6BAAe,oCAAS;AACxB,qCAAqC,6CAAO,cAAc,6CAAO,kCAAkC,6CAAO;;AAE1G;AACA,0CAA0C,6CAAO,mBAAmB,6CAAO;AAC3E,6BAA6B,6CAAO,oBAAoB,6CAAO;AAC/D;;AAEA;AACA,iDAAiD,6CAAO,mBAAmB,6CAAO;AAClF,6BAA6B,6CAAO,oBAAoB,6CAAO;AAC/D;;AAEA;AACA;;;;;;;;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;;;;;;ACpEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,0BAA0B,0BAA0B;AACpD,uBAAuB,uBAAuB;AAC9C,0BAA0B,0BAA0B;AACpD,wBAAwB,wBAAwB;AAChD,6BAA6B,6BAA6B;AAC1D,2BAA2B;AAC3B;;;;;;;;;;;;;;;;;ACzBO;AACP;AACA;;AAEO;AACP;AACA;AACA;;;;;;;;;;;;;;;;;ACPA,6BAAe,oCAAS;AACxB;AACA;AACA,qBAAqB;AACrB;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACnBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACnFO;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;ACXA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;ACFA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACNA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACdA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACXA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPoC;AACF;AACY;AACF;AACV;AACF;AACE;AACA;AACU;AACI;AACV;AACF;AACM;;AAE3B;AACf;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,iDAAU;AACnB,QAAQ,gDAAS;AACjB,aAAa,qDAAc;AAC3B,cAAc,sDAAe;AAC7B,QAAQ,gDAAS;AACjB,OAAO,+CAAQ;AACf,QAAQ,gDAAS;AACjB,QAAQ,gDAAS;AACjB,aAAa,qDAAc;AAC3B,eAAe,uDAAgB;AAC/B,UAAU,mDAAW;AACrB,SAAS,kDAAU;AACnB;AACA,qBAAqB,qDAAa;AAClC;;;;;;;;;;;;;;;;AC1FA,6BAAe,uCAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA,IAAI;AACJ;;;;;;;;;;;;;;;;ACbA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,sCAAW;AAC1B;AACA;AACA,yBAAyB;AACzB,kBAAkB,kCAAkC;AACpD;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC7BA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;ACNA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRgD;AACgB;AAChB;AACW;AACF;AACL;AACF;AACR;AACY;AACO;AACJ;AACE;AACQ;AACF;AACI;;;;;;;;;;;;;;;;;ACdjC;;AAEpC,6BAAe,oCAAS;AACxB,4BAA4B,kDAAO;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,kBAAkB;AAChC,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACrH0C;AACD;AACa;;AAEtD;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA,gBAAgB,sDAAY;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,kCAAkC,sDAAY;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,uDAAQ;AAChD;;AAEA;AACA;AACA;;AAEA;AACA,uEAAuE,wDAAQ;AAC/E;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,OAAO;AAChC,UAAU,yDAAW;AACrB,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC9EgC;AACG;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP,uBAAuB,qDAAK;;AAE5B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,wCAAwC,IAAI,uDAAO;;AAEvE;AACA,cAAc,OAAO;;AAErB;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;;;;;;;;;;;;;;;;;;ACtH2C;AACC;;AAE5C,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yDAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA,QAAQ,4DAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACnDwC;AACiB;;AAEzD,eAAe,UAAU;AACzB,kBAAkB;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,OAAO;AACzC,0CAA0C,qDAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,oCAAoC,MAAM,aAAa,8DAAa;AACzG;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,uDAAQ;AAC5C;;AAEA;AACA,0CAA0C,uDAAQ;AAClD;;AAEA;AACA,sCAAsC,uDAAQ;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB;AACA;AACA,sCAAsC,KAAK;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AChJ0C;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,iBAAiB;AACjB,cAAc;AACd;;AAEA,mCAAmC,+DAAc;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;AC5OA,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEA,8BAA8B,OAAO;AACrC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC7CA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACXmC;AACE;AACI;AACa;;AAEtD,6BAAe,sCAAW;AAC1B,aAAa,oDAAQ;AACrB;AACA;AACA;AACA;AACA,qBAAqB,sDAAY;AACjC,mBAAmB,sDAAY;AAC/B,qBAAqB,sDAAY;AACjC,sBAAsB,sDAAY;AAClC,oBAAoB,sDAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iDAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sCAAsC,uDAAQ;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA,4EAA4E,wDAAQ;AACpF;;AAEA;AACA;AACA;;AAEA;AACA,0EAA0E,wDAAQ;AAClF;;AAEA;AACA,4EAA4E,wDAAQ;AACpF;;AAEA;AACA,6EAA6E,wDAAQ;AACrF;;AAEA;AACA,2EAA2E,wDAAQ;AACnF;;AAEA;AACA;;;;;;;;;;;;;;;;;;;AC7FoC;AACE;AACW;;AAEjD,iEAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,OAAO;AACzD,sBAAsB,oDAAW;AACjC,aAAa,qDAAY;AACzB;AACA;AACA,MAAM;AACN,gCAAgC,2DAAa;AAC7C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,EAAE,6CAAG,CAAC,EAAC;;;;;;;;;;;;;;;;ACnCR,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACLA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACX6B;AACE;;AAE/B,6BAAe,oCAAS;AACxB,sBAAsB,iDAAK,GAAG,gDAAI;AAClC;;;;;;;;;;;;;;;;;;;;ACLoC;AACE;;AAE/B;;AAEA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA;;AAEA;AACA,qBAAqB,8DAA8D;AACnF,kBAAkB,oDAAW;AAC7B,SAAS,qDAAY;AACrB;AACA;;AAEA;AACA;;AAEA,iEAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;;;;;;;ACjEuB;AAC6B;;AAE5D,6BAAe,oCAAS;AACxB,UAAU,8DAAa,MAAM,uDAAW;AACxC;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,cAAc,QAAQ,YAAY,qDAAK;AACvC,SAAS,QAAQ;;AAEjB;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;;;;;;;;;;;;;;;;;ACrBO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AClBiC;;AAEjC,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gDAAK;AAChB;AACA;;;;;;;;;;;;;;;;;;;ACZqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,kFAAkF,wDAAQ;AAC1F;;AAEO;AACP;AACA,0CAA0C,wDAAQ;AAClD;AACA;;AAEe;AACf;AACA,4BAA4B,wDAAQ;AACpC;;;;;;;;;;;;;;;;AC5BA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;;;ACAyB;AACf;;AAEtC;AACA;AACA;;AAEA;AACA,2BAA2B,oDAAc,mBAAmB,oDAAc;AAC1E,cAAc,qDAAK;AACnB,cAAc,qDAAK;AACnB,oBAAoB,qDAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;AACH;;AAEA,iEAAe,UAAU,0CAAG,CAAC,EAAC;AACvB,8BAA8B,iDAAK;;;;;;;;;;;;;;;;AC5B1C,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACLA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACLyC;AACH;;AAEtC;AACA;AACA,yBAAyB,6CAAQ,mBAAmB,6CAAQ;AAC5D,YAAY,qDAAK;AACjB,YAAY,qDAAK;AACjB,kBAAkB,qDAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,IAAI,0CAAG,CAAC,EAAC;AACjB,kBAAkB,iDAAK;;;;;;;;;;;;;;;;;;;ACpBW;AACH;;AAEtC;AACA;AACA,yBAAyB,6CAAQ,mBAAmB,6CAAQ;AAC5D,YAAY,qDAAK;AACjB,YAAY,qDAAK;AACjB,kBAAkB,qDAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,IAAI,0CAAG,CAAC,EAAC;AACjB,kBAAkB,iDAAK;;;;;;;;;;;;;;;;;ACpBC;;AAE/B,6BAAe,oCAAS;AACxB,UAAU,8CAAG;AACb;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRkD;AACK;AACA;AACY;AACd;AACQ;AACV;AACM;AACU;AACV;AACF;AACE;AAC6B;AACjC;AAC4E;AAC/C;AAC/B;AAC+B;AACwB;AACtD;AACF;;;;;;;;;;;;;;;;;;ACpBT;AACV;;AAEhB;AACf,UAAU,qDAAK,UAAU,oDAAQ,mBAAmB,oDAAQ;AAC5D,UAAU,qDAAK;AACf,UAAU,qDAAK;AACf,gBAAgB,qDAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACfA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;ACb+B;;AAE/B,6BAAe,oCAAS;AACxB,YAAY;AACZ,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,qDAAK;AAClB,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACtB4C;;AAE7B;AACf,gEAAgE,iDAAK;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACVA,6BAAe,oCAAS;AACxB;AACA,kBAAkB,OAAO;AACzB;AACA;;;;;;;;;;;;;;;;;;;;;;ACJyC;AACV;AACY;AACD;;AAE1C,iEAAe;AACf,cAAc,gDAAK;;AAEnB;AACA,2BAA2B,6CAAQ,mBAAmB,6CAAQ;AAC9D;AACA;AACA,kBAAkB,qDAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,IAAI,EAAC;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,cAAc,6CAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,yBAAyB,iDAAK;AAC9B,+BAA+B,uDAAW;;;;;;;;;;;;;;;;ACtDjD,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACJiC;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,4BAA4B;AAC5B;AACA;AACA,yCAAyC;AACzC,4BAA4B;AAC5B;AACA,MAAM,OAAO;AACb;AACA,cAAc,SAAS,sDAAM,SAAS;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC;AACA,SAAS;AACT;;;;;;;;;;;;;;;;;AC/DA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACzBkC;AACY;;AAE9C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,aAAa,sDAAM,SAAS,GAAG,aAAa,sDAAM,SAAS;AACzE,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,gCAAgC;AACjE,cAAc,sDAAsD,sDAAM,OAAO;AACjF,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,cAAc,qDAAqD,sDAAM,OAAO;AAChF,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,aAAa,sDAAM,SAAS,GAAG,aAAa,sDAAM,SAAS;AACzE,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,mDAAmD,+CAAQ;AAC3D,mDAAmD,+CAAQ;;;;;;;;;;;;;;;;;;AC9Df;;AAEnD;;AAEA;AACO;AACP;AACA,wBAAwB,mDAAQ,GAAG,yDAAS;AAC5C;;AAEO;AACP,4BAA4B,mDAAQ;AACpC;AACA;AACA,iEAAiE,mDAAQ;AACzE;AACA,SAAS,yDAAS;AAClB;;;;;;;;;;;;;;;;;;;;;;;;;ACjB+B;AACJ;AACa;AACX;AACI;AACA;AACA;AACI;AACuB;;AAE5D,6BAAe,oCAAS;AACxB;AACA,wCAAwC,wDAAQ;AAChD,0BAA0B,kDAAM;AAChC,+BAA+B,oDAAK,eAAe,+CAAG,IAAI,kDAAM;AAChE,qBAAqB,gDAAK,GAAG,+CAAG;AAChC,4BAA4B,gDAAI;AAChC,QAAQ,8DAAa,MAAM,uDAAW;AACtC,2BAA2B,mDAAY;AACvC,0FAA0F,kDAAM;AAChG,QAAQ,kDAAM;AACd;;;;;;;;;;;;;;;;ACrBA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC,mBAAmB,EAAC;;;;;;;;;;;;;;;;;ACtEqB;;;;;;;;;;;;;;;;ACA1C;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;ACjIpB,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACdA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACnBA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;ACN+B;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,OAAO;AACrB,uBAAuB,qDAAK;AAC5B;AACA;;AAEA,iCAAiC;AACjC;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA,cAAc,OAAO;;AAErB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,QAAQ;AAC5C,sBAAsB,qCAAqC;;AAE3D;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AChDiD;AACQ;AACR;AACQ;AACJ;;;;;;;;;;;;;;;;ACJrD,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACtBA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA,yCAAyC;;AAEzC;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oDAAoD;AACpD,qDAAqD;AACrD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD;AACpD,qDAAqD;AACrD,IAAI;AACJ;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACnFA,6BAAe,oCAAS;AACxB,mDAAmD;;AAEnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,0CAA0C;AAC1C,0CAA0C;AAC1C,0CAA0C;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1CA,6BAAe,sCAAW;AAC1B;AACA;AACA,+CAA+C;AAC/C,GAAG;AACH;AACA;;;;;;;;;;;;;;;;ACNA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACJ6B;;AAE7B,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,cAAc,uDAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oDAAQ,sBAAsB,0BAA0B;AACzE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,qDAAe;AACxB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;ACpGe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACJgC;AACoE;AAC/D;AACJ;;AAEjC;;AAEO;AACP;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,QAAQ,wDAAQ;AAChB;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,oDAAM;AAClB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,oBAAoB,sDAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wFAAwF,sDAAiB;AACzG;;AAEA;AACA,sDAAsD,kDAAM;AAC5D;;AAEA;AACA;AACA;;AAEA;AACA,gDAAgD,sDAAgB;AAChE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5HwE;AAC/B;AACE;AACL;AACL;AACI;AACC;AACN;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAQ;AAC7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kEAAkE,0DAAS;AAC3E;AACA;;AAEA,sBAAsB,sDAAW;;AAEjC,2BAA2B,sDAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf,cAAc,qDAAS,eAAe,oDAAQ;;AAE9C;AACA,WAAW,oDAAI;AACf;;AAEA,SAAS,4DAAsB;AAC/B;;AAEO;AACP,cAAc,gDAAO;;AAErB;AACA,WAAW,oDAAI;AACf;;AAEA,SAAS,4DAAsB;AAC/B;;AAEO;AACP,cAAc,qDAAS;;AAEvB;AACA,WAAW,oDAAI;AACf;;AAEA,SAAS,4DAAsB;AAC/B;;AAEO;AACP,cAAc,+CAAM;;AAEpB;AACA,WAAW,oDAAI;AACf;;AAEA,SAAS,4DAAsB;AAC/B;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;ACvGsC;AACL;;AAElB;AACf;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,sDAAsD,kDAAM;AAC5D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iDAAiD,kDAAM;;AAEvD,SAAS,qDAAS;AAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBmB;;AAII;;AAIF;;AAIH;;AAIG;;AAKC;;AAKJ;;AAIG;;AAIE;;AAIA;;AAIC;;AAIL;;AAIG;;AAQG;;AAIQ;;AAQT;;AAIC;;;;;;;;;;;;;;;;;AC7ElB;AACP;AACA;AACA,gCAAgC;AAChC,+CAA+C;AAC/C;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACzB8C;AACG;AACb;AACK;;AAElC;AACP;;AAEA;AACA;AACA,WAAW,oDAAK;AAChB;;AAEA;AACA;AACA,WAAW,0DAAU;AACrB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,uDAAa;AAC1B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEe;AACf,cAAc,0DAAU;;AAExB;AACA,WAAW,oDAAI;AACf;;AAEA,EAAE,qDAAe;;AAEjB;AACA;;;;;;;;;;;;;;;;;;;;;;;ACrE+B;AACmB;AACrB;AACqB;AACd;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,QAAQ;AAChC,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY,QAAQ;AAC5B,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oDAAK;AACrC,MAAM;AACN,UAAU,oDAAK;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAsC,qDAAe;AACrD,kBAAkB,iDAAM;AACxB;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,oDAAI;AACtB;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEe;AACf,wBAAwB,2DAAW;AACnC,qBAAqB,oDAAI;AACzB,EAAE,qDAAe;AACjB;AACA;;;;;;;;;;;;;;;;AC3Ie;AACf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACjBe;AACf;AACA;;;;;;;;;;;;;;;;;;;ACFmC;AACC;;AAE7B;;AAEQ;AACf,kBAAkB,+CAAS;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,+CAAS;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE,qDAAe;;AAEjB;AACA;;;;;;;;;;;;;;;;;;;;;AC7CsC;AACsB;AACxB;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP,wBAAwB,oDAAQ,EAAE,oDAAQ;AAC1C;;AAEA;AACA,sCAAsC,oDAAQ,EAAE,oDAAQ;AACxD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,qDAAS;AAClB;;AAEe;AACf,qBAAqB,2DAAW;;AAEhC;AACA,WAAW,oDAAI;AACf;;AAEA,EAAE,qDAAe;;AAEjB;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;;;ACjDwE;AACpC;;AAErB;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,wDAAS;AACjD;AACA;;AAEA;AACA,wDAAwD,oDAAM;AAC9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,gDAAS;AACzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,qDAAe;AACxB;;;;;;;;;;;;;;;;;;;ACxDgC;AACM;AACF;;AAErB;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,oDAAM;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,qDAAe,CAAC,qDAAS;AAClC;;;;;;;;;;;;;;;;;;;;ACvDyC;AACL;AACE;AACL;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf,gBAAgB,0DAAU;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oEAAoE,kDAAM;AAC1E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,qDAAe;;AAEjB,SAAS,qDAAS;AAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9D6D;AACpB;AACE;AACL;AACL;AACK;AACN;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAQ;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,sDAAW;;AAEjC,2BAA2B,sDAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,cAAc,qDAAS,eAAe,oDAAQ;;AAE9C;AACA;AACA;;AAEA,SAAS,4DAAsB;AAC/B;;AAEO;AACP,cAAc,gDAAO;;AAErB;AACA;AACA;;AAEA,SAAS,4DAAsB;AAC/B;;AAEO;AACP,cAAc,qDAAS;;AAEvB;AACA;AACA;;AAEA,SAAS,4DAAsB;AAC/B;;AAEO;AACP,cAAc,+CAAM;;AAEpB;AACA;AACA;;AAEA,SAAS,4DAAsB;AAC/B;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;;;;AC1GqD;AACZ;AACE;;AAE5B;AACf;AACA,qBAAqB,oDAAQ;;AAE7B;AACA,0DAA0D,oDAAM;AAChE;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,gDAAS;AACzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAuB,cAAc,YAAY,oDAAQ;AACzD;;AAEA;AACA;AACA;;AAEA,SAAS,4DAAsB;AAC/B;;;;;;;;;;;;;;;;;;;;ACrCsC;AACY;AACd;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;;AAEA,SAAS,qDAAS;AAClB;;AAEe;AACf,wBAAwB,2DAAW;;AAEnC;AACA,WAAW,oDAAI;AACf;;AAEA,SAAS,qDAAe;AACxB;;;;;;;;;;;;;;;;;;AClCgC;AACI;;AAErB;AACf;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,oDAAM;AAC7C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,qDAAe;AACxB;;;;;;;;;;;;;;;;;;;;;;ACtCkC;AAC+E;;AAElG;AACf,aAAa,kDAAQ;AACrB;AACA,cAAc,qDAAe;AAC7B;AACA;AACA;AACA,4DAA4D,qDAAe;AAC3E,aAAa,uDAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,qDAAc;AAC1E;AACA;AACA;AACA;AACA,4DAA4D,qDAAc;AAC1E;AACA;AACA;AACA,SAAS,iDAAM;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5B8H;AACpF;AACO;AACb;AACP;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP,cAAc,0DAAU;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,oDAAI;AACjC;;AAEA;AACA,WAAW,oDAAI;AACf;;AAEA;AACA;;AAEe;AACf,SAAS,qDAAe,UAAU,8CAAS,EAAE,qDAAgB,EAAE,+CAAQ,EAAE,+CAAS,EAAE,2CAAQ,EAAE,+CAAO,EAAE,+CAAQ,EAAE,+CAAU,EAAE,gDAAU,EAAE,uDAAU;AACnJ;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtEqH;AAC5E;AACN;AACC;;AAErB;AACf,SAAS,qDAAe,CAAC,kDAAQ,CAAC,6CAAQ,EAAE,oDAAe,EAAE,+CAAO,EAAE,+CAAQ,EAAE,8CAAO,EAAE,+CAAM,EAAE,+CAAO,EAAE,+CAAS,EAAE,+CAAS,EAAE,sDAAS;AACzI;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA,cAAc;AACd;AACA;AACe;AACf;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACJmC;AACF;;AAEjC,6BAAe,oCAAS;AACxB,SAAS,sDAAM,CAAC,uDAAO;AACvB;;;;;;;;;;;;;;;;;;ACLuC;AACD;;AAEtC;AACA;AACA;AACA;AACA,mBAAmB,iDAAK,8CAA8C,iDAAK;AAC3E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,iBAAiB,yDAAS;AAC1B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxB8C;AACE;AACJ;AACI;AACI;AACE;AACN;AACE;AACJ;AACM;AACM;AACR;AACM;AACC;AACX;;;;;;;;;;;;;;;;ACd9C;;AAEe;AACf;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC1BA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVyC;;AAEzC,6BAAe,oCAAS;AACxB;AACA;AACA,SAAS,qEAAyB,YAAY,OAAO,sDAAU,uBAAuB,QAAQ;AAC9F;;;;;;;;;;;;;;;;;ACNO;;AAEP,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;ACRyC;;AAE3C,6BAAe,oCAAS;AACxB,UAAU,2DAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACnBmC;AACQ;;AAE3C,6BAAe,oCAAS;AACxB,uBAAuB;AACvB,aAAa,2DAAW;AACxB;AACA;AACA;AACA,qCAAqC,uDAAO;AAC5C;;;;;;;;;;;;;;;;;ACVqD;;AAErD,6BAAe,oCAAS;AACxB;AACA,YAAY,0DAAS;AACrB,YAAY,0DAAS,eAAe,qDAAI;AACxC;;;;;;;;;;;;;;;;;;ACN+B;AACsB;;AAErD,6BAAe,oCAAS;AACxB;AACA,YAAY,0DAAS;AACrB,YAAY,0DAAS,EAAE,qDAAK,aAAa,qDAAI;AAC7C;;;;;;;;;;;;;;;;;ACPoC;;AAEpC,6BAAe,oCAAS;AACxB,mDAAmD,uDAAO;AAC1D;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACPwC;;AAExC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,iBAAiB,yDAAS;;AAE1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACxDA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACLA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1EA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;ACZqC;AACA;AACC;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,gBAAgB;AACzB;AACA;AACA;AACA,MAAM;AACN,qBAAqB,gDAAS;AAC9B;AACA;;AAEA;AACA,SAAS,iBAAiB;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,qBAAqB,gDAAS;AAC9B;AACA;;AAEA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;;AAEA,2CAA2C,wDAAQ;;AAEnD,uGAAuG,OAAO;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,gDAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,wBAAwB;AACxB;;;;;;;;;;;;;;;;AC/HA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACJuC;;AAEvC;AACA,eAAe,sDAAW;AAC1B;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;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CA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA,8CAA8C,OAAO;AACrD,6BAA6B,OAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;;;;;;;;;;;;;;;;AClEA,6BAAe,sCAAW;;AAE1B,6DAA6D,QAAQ;AACrE,6EAA6E,SAAS;AACtF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC3BA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;;ACPqC;AACC;;AAEtC,6BAAe,oCAAS;AACxB,6CAA6C,wDAAQ;;AAErD,sFAAsF,OAAO;AAC7F,gHAAgH,OAAO;AACvH;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,gDAAS;AACtB;;;;;;;;;;;;;;;;;;;AChBqC;AACL;AACY;;AAE5C;AACA;AACA,WAAW,qDAAK;AAChB;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA,gBAAgB,2DAAW;;AAE3B,0FAA0F,OAAO;AACjG,+DAA+D,OAAO;AACtE;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,gDAAS;AACtB;;;;;;;;;;;;;;;;;ACxB2C;;AAE3C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6B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;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D,+BAA+B,4BAA4B;AAC3D,+BAA+B,4BAA4B,4FAA4F;AACvJ,eAAe,gDAAK,cAAc;AAClC;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;ACnDiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B;AAC/B,+BAA+B;AAC/B,+BAA+B,oFAAoF,0EAA0E;AAC7L,+BAA+B;AAC/B,eAAe,gDAAK,cAAc;AAClC;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;AC5CiC;;AAEjC;AACA,oBAAoB,4CAAK;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA,4BAA4B,4CAAK;AACjC;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,OAAO,EAAC;;;;;;;;;;;;;;;;;;ACvDF;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wDAAwD;AACxD,+CAA+C;AAC/C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B,sEAAsE;AACrG,+BAA+B,4BAA4B;AAC3D,+BAA+B;AAC/B,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;;;;;;;AC5DwB;AACM;;AAE7B;AACP;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D,+BAA+B,kDAAkD;AACjF,+BAA+B,4BAA4B;AAC3D,eAAe,mDAAK,cAAc;AAClC;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;;;;;;AC5D8B;;AAE7B;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B;AAC/B,+BAA+B;AAC/B,+BAA+B,kGAAkG;AACjI,+BAA+B;AAC/B,eAAe,mDAAK,cAAc;AAClC;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;;;;;;;AChD6B;AACI;;AAEhC;AACP;AACA;AACA;AACA;;AAEA,oBAAoB,6CAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,6CAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wDAAwD;AACxD,8CAA8C;AAC9C;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,sEAAsE;AACrG,+BAA+B;AAC/B,+BAA+B;AAC/B,kCAAkC;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA,wDAAwD,kDAAQ;AAChE;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;;;;;;;ACvF2C;AACrB;AACQ;;AAEtC;AACA;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,4BAA4B;AAC3D,+BAA+B,kDAAkD;AACjF,+BAA+B,4BAA4B;AAC3D,eAAe,qDAAK,cAAc;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA,8DAA8D,8DAAc;AAC5E;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;;;;;;ACzEuC;AACT;;AAEtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B,+BAA+B;AAC/B,+BAA+B,kGAAkG;AACjI,+BAA+B;AAC/B,eAAe,qDAAK,cAAc;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA,4DAA4D,0DAAY;AACxE;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;;;;AC7DR;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B,sEAAsE;AACrG,+BAA+B;AAC/B,2CAA2C;AAC3C;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;AC9B8B;;AAE9B;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;ACxBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wDAAwD;AACxD,6DAA6D;AAC7D;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA,+BAA+B,sEAAsE;AACrG,+BAA+B;AAC/B,+BAA+B,wDAAwD;AACvF,+DAA+D;AAC/D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,6BAA6B;AACxD,0BAA0B,4BAA4B;AACtD,2BAA2B,6BAA6B;AACxD,kDAAkD;AAClD;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;ACvGA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,cAAc,OAAO;AACrB;AACA,kBAAkB,QAAQ;AAC1B;AACA,cAAc,WAAW;AACzB;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;AChEsC;;AAE/B,oCAAoC,kDAAW;;AAEtD;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B,sEAAsE;AACrG,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;ACpDA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;ACFA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFwC;AACE;AACA;AACF;A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OAAO;AAC3B,cAAc,yCAAG;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACvBF;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACVF;AACA;AACA;AACA;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;ACzBqC;;AAEvC;AACO;AACA;AACA;AACA;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEc;AACf,WAAW,sDAAY;AACvB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BkH;AAC1D;AACJ;AACF;;;;;;;;;;;;;;;;;;ACHL;;AAEtC;;AAEP;AACA;AACA;;AAEA;AACA;AACA,MAAM,4DAAS;;AAEf,iEAAe,SAAS,EAAC;;;;;;;;;;;;;;;;;;ACZmB;AACA;;AAE5C;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,2DAAQ,CAAC,uDAAY;;AAE3B,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;;;;;;ACDP;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mDAAc,SAAS,kDAAS;AACxE,iBAAiB,sDAAa;AAC9B;AACA;AACA;AACA,UAAU;AACV;AACA,wCAAwC,gDAAe,SAAS,+CAAU;AAC1E,iBAAiB,sDAAc;AAC/B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,qDAAa,CAAC,mDAAQ;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,iDAAgB,CAAC,mDAAQ;AACtC;;AAEA;AACA;AACA,mCAAmC,iDAAY,MAAM,kDAAiB;AACtE;;AAEA;AACA;AACA,aAAa,mDAAkB,CAAC,mDAAQ,WAAW,mDAAQ;AAC3D;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,iDAAgB,CAAC,mDAAQ;AACtC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,iD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B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sIAAsI;;AAE/H;AACP;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP,SAAS;AACT,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC7GiD;AACE;;AAEnD;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,8DAAS;AACrD,mBAAmB,4DAAU;AAC7B;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;ACpB8B;AAC8B;AACd;AACM;;;;;;;;;;;;;;;;;ACHa;;AAEjE,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,mDAAmD,eAAe;AAClE,8BAA8B,6DAAQ,qBAAqB,2DAAM;AACjE,qBAAqB,0DAAK;AAC1B;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACvBuC;AACU;AACE;;AAEnD,wEAA6B,GAAG,qDAAmB;AACnD,yEAA8B,GAAG,sDAAoB;;;;;;;;;;;;;;;;;ACLb;;AAExC,6BAAe,oCAAS;AACxB;AACA,IAAI,yDAAS;AACb,GAAG;AACH;;;;;;;;;;;;;;;;;;;;ACNyD;AACR;AACV;AACV;;AAE7B;AACA;AACA;AACA;AACA,QAAQ,+CAAc;AACtB;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;AAEA,sBAAsB,4DAAU;AAChC;AACA,IAAI;AACJ,SAAS,2DAAK,oCAAoC,6CAAG;AACrD;;AAEA,4DAA4D,OAAO;AACnE,+DAA+D,OAAO;AACtE;AACA,QAAQ,mEAAQ;AAChB;AACA;AACA;;AAEA,aAAa,4DAAU;AACvB;;;;;;;;;;;;;;;;;;;;ACzC+E;AACxC;AACD;AACK;;AAE3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,iBAAiB,wDAAS,uCAAuC,mEAAoB,GAAG,uDAAW;AACnG;AACA,sEAAsE,qDAAU;AAChF;AACA;AACA;;;;;;;;;;;;;;;;;AC7EuC;;AAEvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA,iBAAiB,wDAAS;AAC1B;AACA;;;;;;;;;;;;;;;;;AC3CwC;;AAExC;AACA;AACA,IAAI,kDAAI;AACR;AACA;;AAEA;AACA;AACA,IAAI,kDAAI;AACR;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;AACA;AACA,QAAQ,iDAAG;AACX;;;;;;;;;;;;;;;;;ACtBuC;;AAEvC;AACA;AACA,IAA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A;AACA;AACA,4CAA4C;AAC5C,sCAAsC,oDAAO;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yDAAyD;AACzD;AACA,2DAA2D;AAC3D;AACA,IAAI,oDAAO;AACX;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;;;;;;;;;;;;;;;;;;;ACxJsC;AACA;AACM;;AAE5C,6BAAe,oCAAS;AACxB;AACA;;AAEA,6CAA6C,wDAAQ;;AAErD,sFAAsF,OAAO;AAC7F,gHAAgH,OAAO;AACvH;AACA;AACA;AACA,QAAQ,wDAAQ,qCAAqC,iDAAG;AACxD;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;;;ACrByC;AACH;AACM;;AAE5C,6BAAe,oCAAS;AACxB;AACA;;AAEA,6CAA6C,wDAAW;;AAExD,0FAA0F,OAAO;AACjG,+DAA+D,OAAO;AACtE;AACA,yFAAyF,iDAAG,wCAAwC,OAAO;AAC3I;AACA,YAAY,wDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;ACzBuC;;AAEvC,gBAAgB,0EAA+B;;AAE/C,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;;;;;ACN+E;AAC5C;AACD;AACI;AACK;;AAE3C;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB,oDAAoD,wDAAK;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB;AACA;AACA,6EAA6E,wDAAK;AAClF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,iDAAG;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,yCAAyC,mEAAoB,GAAG,uDAAW;AAC3E;AACA;AACA;AACA;AACA,+CAA+C,qDAAU;AACzD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACvBsC;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA,qBAAqB,qDAAU;AAC/B;AACA;;;;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvB6C;AACD;;AAE5C,6BAAe,sCAAW;AAC1B;AACA;AACA,YAAY,gDAAK;;AAEjB,4DAA4D,OAAO;AACnE,+DAA+D,OAAO;AACtE;AACA,sBAAsB,iDAAG;AACzB,QAAQ,wDAAQ;AAChB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;;ACvBuC;;AAEvC;AACA;AACA;AACA,mBAAmB,iDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,iDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB,4BAA4B,OAAO;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;;AAEA;AACA,gBAAgB,iDAAG;AACnB,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;;AAEA;AACA,mBAAmB,iDAAG;AACtB,2CAA2C;AAC3C,GAAG;;AAEH;AACA,WAAW,iDAAG;AACd;AACA;;;;;;;;;;;;;;;;AChFA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;ACAb;AACf;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,kDAAkD;AAC7D,kBAAkB,yDAAyD;AAC3E,aAAa,oDAAoD;AACjE,gBAAgB,uDAAuD;AACvE,QAAQ;AACR,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;ACb0C;AACoE;;;;;;;;;;;;;;;;;ACDvG;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;;;;;;;;;;;;;;;;;;ACPO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEO;;AAEP;;AAEe;AACf;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AClDqC;AACW;AACD;AACF;AACL;AACH;AACF;AACgB;AACC;;AAEpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,mDAAQ;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sDAAe;AACnC,kBAAkB,uDAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6DAAkB;AACzC;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,+CAA+C,oDAAS;AACxD;;AAEA;AACA;AACA,oEAAoE,oDAAS;AAC7E;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,gDAAgD;AACvF,oDAAoD,8CAA8C;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,mBAAmB,4BAA4B,QAAQ,oDAAS;AAChE;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,cAAc,wDAAM;AACpB;AACA;AACA;AACA,YAAY,iDAAS;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAO;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM,wDAAS;AACf;AACA;;AAEA,IAAI,uDAAO;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,wDAAM;AAClB,YAAY,wDAAO;AACnB;AACA;;AAEA,IAAI,mDAAW;AACf,IAAI,0DAAa;AACjB;AACA,IAAI,wDAAS;AACb;;AAEA;AACA,MAAM,uDAAO;AACb;AACA;AACA;AACA;AACA;AACA,sEAAsE,wDAAO;AAC7E;;AAEA;AACA;AACA,MAAM,gDAAU;AAChB,MAAM,uDAAO;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,wDAAO;AACpB;AACA;AACA;;AAEA,IAAI,uDAAO;AACX,sBAAsB,wDAAM;AAC5B,SAAS,wDAAM;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,0DAAa;AACjB,gBAAgB,OAAO;AACvB,0BAA0B,wDAAO;AACjC;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iFAAiF,uBAAuB;AACxG,MAAM,wDAAS;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,uDAAO;AACX,gBAAgB,OAAO;AACvB,0BAA0B,wDAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,0DAAa;AACjB;AACA,0CAA0C,qBAAqB;AAC/D,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAO;AACnB;AACA,kBAAkB,wDAAM;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA,0EAA0E,wDAAQ;AAClF;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA,yEAAyE,wDAAQ;AACjF;;AAEA;AACA,sEAAsE,wDAAQ;AAC9E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9byB;AACD;AACC;AACA;AACA;AACE;AACC;AACA;AACJ;AACD;AACC;AACC;AACA;AACC;AACH;AACM;AACE;AACP;AACG;AACC;AACF;AACD;AACU;AACN;AACJ;AACD;AACO;AACN;AACK;AACN;;;;;;;;;;;;;;;;;;AC5BxB;AACA;;AAE2C;;AAE5B;;AAEf;AACA;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,6CAA6C;AAC7C,6CAA6C;AAC7C,4CAA4C;AAC5C,kEAAkE;;AAElE;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,0FAA0F;AACzG;;AAEA,+CAA+C;AAC/C;AACA;AACA;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,2DAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gCAAgC,sBAAsB;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uDAAuD,oBAAoB;AAC3E;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,2DAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kCAAkC;;AAEtE;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA,oCAAoC,2DAAQ;AAC5C;AACA;AACA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,2DAAQ;AAChD;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,cAAc;AAC3D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe,sDAAsD;;AAErE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACjeO;AACP;AACA;AACA,mCAAmC,UAAU,iBAAiB,SAAS,YAAY;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,mCAAmC,UAAU,iBAAiB,SAAS,YAAY;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,cAAc;AACnC;AACA;AACA;;AAEA,qBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC5DA;AACkC;AACL;AACU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,wBAAwB,gDAAI;AAC5B;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,yBAAyB,mDAAQ;AACjC;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA,qBAAqB,uEAAiB;AACtC;AACA,qBAAqB,uEAAiB;AACtC;AACA,qBAAqB,uEAAiB;AACtC;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA,qBAAqB,uEAAiB;AACtC;AACA,qBAAqB,uEAAiB;AACtC;AACA,qBAAqB,uEAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,0BAA0B,mDAAQ;AAClC;AACA;AACA,eAAe,uEAAiB;AAChC;AACA;AACA;AACA;AACA,0BAA0B,mDAAQ;AAClC;AACA;AACA,eAAe,uEAAiB;AAChC;AACA;AACA;AACA;AACA,0BAA0B,mDAAQ;AAClC;AACA;AACA,eAAe,uEAAiB;AAChC;AACA;AACA;AACA;AACA,0BAA0B,mDAAQ;AAClC;AACA;AACA,eAAe,uEAAiB;AAChC;AACA;AACA;AACA;AACA,0BAA0B,mDAAQ;AAClC;AACA;AACA,eAAe,uEAAiB;AAChC;AACA;AACA;AACA;AACA,0BAA0B,mDAAQ;AAClC;AACA;AACA,eAAe,uEAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mDAAQ;AAC9B;AACA;AACA;AACA;AACA,sBAAsB,mDAAQ;AAC9B;AACA;AACA;AACA;AACA,sBAAsB,mDAAQ;AAC9B;AACA;AACA;AACA;AACA,sBAAsB,mDAAQ;AAC9B;AACA;AACA;AACA;AACA,sBAAsB,mDAAQ;AAC9B;AACA;AACA;AACA;AACA,sBAAsB,mDAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;ACnIxB;AACmC;AACnC;AACA,qBAAqB,iDAAQ,GAAG,wBAAwB;AACxD;AACA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;ACLxB;AACuC;AACvC;AACA;AACA;AACA;AACA,oBAAoB,mDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;;ACzBpB;AACkC;AACqB;AACb;AAC1C;AACA;AACA;AACA,wBAAwB,EAAE,EAAE,IAAI,UAAU,EAAE;AAC5C;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iEAAoB;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,gBAAgB,aAAa;AAC7B,qBAAqB;AACrB,uBAAuB,kDAAO,gBAAgB,EAAE,kDAAO,gBAAgB,EAAE,kDAAO,gBAAgB,EAAE,kDAAO,sBAAsB;AAC/H;AACA,eAAe;AACf,uBAAuB,kDAAO,gBAAgB,EAAE,kDAAO,gBAAgB,EAAE,kDAAO,gBAAgB;AAChG;AACA;AACA;AACA;AACA,iEAAe,GAAG,EAAC;;;;;;;;;;;;;;;;;;AC1CnB;AACkC;AACqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uEAAiB;AACrD,mCAAmC,uEAAiB;AACpD,oCAAoC,uEAAiB;AACrD;AACA;AACA,eAAe,uEAAiB;AAChC,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,eAAe,iEAAoB;AACnC;AACA,eAAe,uEAAiB;AAChC,eAAe,uEAAiB;AAChC,mBAAmB,uEAAiB;AACpC,SAAS;AACT,KAAK;AACL;AACA,gBAAgB,aAAa;AAC7B,qBAAqB;AACrB,2BAA2B,kEAAY,IAAI,IAAI,kEAAY,IAAI,KAAK,kEAAY,IAAI,KAAK,EAAE;AAC3F;AACA,eAAe;AACf,0BAA0B,kEAAY,IAAI,IAAI,kEAAY,IAAI,KAAK,kEAAY,IAAI;AACnF;AACA;AACA;AACA;AACA,iEAAe,GAAG,EAAC;;;;;;;;;;;;;;;;;;;;;AChDnB;AACkC;AACP;AACA;AACQ;AACR;AACY;AACvC;AACA;AACA;AACA;AACA,iBAAiB,mDAAO;AACxB,aAAa,+CAAG;AAChB,aAAa,+CAAG;AAChB,cAAc,+CAAG;AACjB,aAAa,+CAAG;AAChB,cAAc,+CAAG;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA,yBAAyB,qDAAS,WAAW,qDAAS,WAAW,qDAAS,WAAW,yDAAa,SAAS;AAC3G;AACA;AACA,sDAAsD,MAAM;AAC5D,KAAK;AACL;AACA;AACA;AACA;AACA,6BAA6B,mDAAQ;AACrC,mBAAmB,yDAAa;AAChC;AACA;AACA,mBAAmB,yDAAa;AAChC;AACA;AACA,mBAAmB,yDAAa;AAChC;AACA;AACA;AACA;AACA,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;AC3CrB;AAC2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qDAAS;AACxB,KAAK;AACL;AACA,oBAAoB,yDAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;;AC5KvB;AACkC;AACqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,eAAe,iEAAoB;AACnC,eAAe,uEAAiB;AAChC,eAAe,uEAAiB;AAChC,eAAe,uEAAiB;AAChC,mBAAmB,uEAAiB;AACpC,SAAS;AACT,KAAK;AACL;AACA,gBAAgB,aAAa;AAC7B,qBAAqB;AACrB,2BAA2B,kEAAY,IAAI,IAAI,kEAAY,IAAI,IAAI,kEAAY,IAAI,IAAI,kEAAY,IAAI;AACvG;AACA,eAAe;AACf,0BAA0B,kEAAY,IAAI,IAAI,kEAAY,IAAI,IAAI,kEAAY,IAAI;AAClF;AACA;AACA;AACA;AACA,iEAAe,GAAG,EAAC;;;;;;;;;;;;;;;;;;AClCnB;AACiC;AACjC;AACA;AACA,gBAAgB,UAAU;AAC1B,iBAAiB,oEAAc,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACyB;;;;;;;;;;;;;;;;;;ACZzB;AACsC;AACL;AACjC;AACA;AACA,eAAe,6DAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sDAAM;AACjB;AACA;AACA,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;;;ACftB;AACkC;AACI;AACtC;AACA;AACA,qBAAqB,6DAAW;AAChC;AACA,uBAAuB,qEAAe;AACtC;AACA;AACA,WAAW,iEAAe;AAC1B;AACA;AACA,iEAAe,aAAa,EAAC;;;;;;;;;;;;;;;;;;ACb7B;AACkC;AACI;AACtC;AACA;AACA,eAAe,6DAAW;AAC1B;AACA,gBAAgB,qEAAe;AAC/B;AACA,WAAW,iEAAe;AAC1B;AACA;AACA,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;;ACZtB;AACgD;AAChD;AACA;AACA,WAAW,8DAAa;AACxB;AACA;AACA,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;;;ACPtB;AACsC;AACX;AAC3B;AACA;AACA,oBAAoB,6DAAW;AAC/B;AACA;AACA;AACA,WAAW,mDAAG;AACd;AACA;AACA,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;;ACZtB;AACgD;AAChD;AACA;AACA,WAAW,8DAAa;AACxB;AACA;AACA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;;ACPvB;AACsC;AACT;AAC7B;AACA;AACA;AACA,YAAY,6BAA6B,EAAE,6DAAW;AACtD,YAAY,6BAA6B,EAAE,6DAAW;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oDAAI;AACf;AACA;AACA,iEAAe,GAAG,EAAC;;;;;;;;;;;;;;;;;;;;ACrBnB;AACkC;AACqB;AACjB;AACL;AACjC;AACA;AACA;AACA,eAAe,sDAAM,MAAM,MAAM;AACjC,qBAAqB,iEAAoB;AACzC,WAAW,uEAAiB;AAC5B,WAAW,uEAAiB;AAC5B,WAAW,uEAAiB;AAC5B,WAAW,uEAAiB;AAC5B,KAAK;AACL,WAAW,iEAAe;AAC1B;AACA;AACA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;AClBpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gBAAgB,SAAS;AACzB;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;;;ACxFvB;AACmC;AACN;AACA;AAC7B;AACA;AACA,WAAW;AACX,QAAQ;AACR,QAAQ;AACR;AACA;AACA,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;ACXrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;ACbpB;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;;ACT8E;;AAElG,gCAAgC,6CAAO,IAAI,6CAAO;AAClD,+BAA+B,6CAAO,IAAI,6CAAO;AACjD,iCAAiC,6CAAO,IAAI,6CAAO,GAAG,6CAAO;;AAE7D,WAAW,6CAAG;AACd,WAAW,6CAAG;AACd,WAAW,6CAAG;AACd,WAAW,6CAAG;AACd,WAAW,6CAAG;AACd,WAAW,6CAAG;AACd,UAAU,6CAAG;AACb,UAAU,6CAAG;AACb,cAAc,6CAAG;AACjB,cAAc,6CAAG;AACjB,cAAc,6CAAG;AACjB,cAAc,6CAAG;AACjB,cAAc,6CAAG;AACjB,cAAc,6CAAG;AACjB,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,aAAa,6CAAG;;AAEhB,WAAW,6CAAG;AACd,YAAY,6CAAG;AACf,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,YAAY,6CAAG;AACf,aAAa,6CAAG;AAChB,YAAY,6CAAG;AACf,YAAY,6CAAG;;AAEf,UAAU,6CAAG;AACb,WAAW,6CAAG;;AAEd;AACA,aAAa,6CAAG;AAChB,qBAAqB,YAAY;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,6CAAG;AAChB,QAAQ,6CAAG;AACX,YAAY,6CAAG;AACf,gBAAgB,+CAAK,CAAC,+CAAK;AAC3B,gBAAgB,+CAAK,CAAC,+CAAK;AAC3B,YAAY,6CAAG;AACf,gBAAgB,+CAAK,CAAC,+CAAK;AAC3B,gBAAgB,+CAAK,CAAC,+CAAK;AAC3B,QAAQ,6CAAG;AACX,YAAY,+CAAK,CAAC,+CAAK;AACvB,YAAY,+CAAK,CAAC,+CAAK;;AAEvB,cAAc,kDAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAA0C,oDAAc;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,+CAAK;AACxB,gCAAgC,mDAAS;AACzC,YAAY,+CAAK;AACjB,YAAY,+CAAK,CAAC,+CAAK;AACvB,YAAY,+CAAK,CAAC,+CAAK;AACvB;AACA;AACA,mBAAmB,+CAAK;AACxB,gCAAgC,mDAAS;AACzC,YAAY,+CAAK;AACjB,YAAY,+CAAK,CAAC,+CAAK;AACvB,YAAY,+CAAK,CAAC,+CAAK;AACvB;AACA;AACA,mBAAmB,+CAAK;AACxB,gCAAgC,mDAAS;AACzC,YAAY,+CAAK;AACjB,YAAY,+CAAK,CAAC,+CAAK;AACvB,YAAY,+CAAK,CAAC,+CAAK;AACvB;AACA;AACA,mBAAmB,+CAAK;AACxB,gCAAgC,mDAAS;AACzC,YAAY,+CAAK;AACjB,YAAY,+CAAK,CAAC,+CAAK;AACvB,YAAY,+CAAK,CAAC,+CAAK;AACvB;AACA;AACA,mBAAmB,+CAAK;AACxB,gCAAgC,mDAAS;AACzC,YAAY,+CAAK;AACjB,YAAY,+CAAK,CAAC,+CAAK;AACvB,YAAY,+CAAK,CAAC,+CAAK;AACvB;AACA;AACA,mBAAmB,+CAAK;AACxB,gCAAgC,mDAAS;AACzC,YAAY,+CAAK;AACjB,YAAY,+CAAK,CAAC,+CAAK;AACvB,YAAY,+CAAK,CAAC,+CAAK;AACvB;;AAEA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6CAAG;AACxB;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+CAAK;AAC7B,oCAAoC,6CAAG;AACvC,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;;AAErB,yBAAyB,+CAAK;AAC9B,oCAAoC,mDAAS;AAC7C,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;;AAErB;AACA,wCAAwC,+CAAK,CAAC,+CAAK;AACnD;AACA;AACA,wCAAwC,+CAAK,CAAC,+CAAK;AACnD;AACA;AACA;AACA,wBAAwB,+CAAK;AAC7B,oCAAoC,6CAAG;AACvC,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;;AAErB,yBAAyB,+CAAK;AAC9B,oCAAoC,mDAAS;AAC7C,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;AACrB;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6CAAG;AACxB;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+CAAK;AAC7B,oCAAoC,6CAAG;AACvC,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;;AAErB,yBAAyB,+CAAK;AAC9B,oCAAoC,mDAAS;AAC7C,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;;AAErB;AACA,wCAAwC,+CAAK,CAAC,+CAAK;AACnD;AACA;AACA,wCAAwC,+CAAK,CAAC,+CAAK;AACnD;AACA;AACA;AACA,wBAAwB,+CAAK;AAC7B,oCAAoC,6CAAG;AACvC,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;;AAErB,yBAAyB,+CAAK;AAC9B,oCAAoC,mDAAS;AAC7C,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;AACrB,gBAAgB,+CAAK;AACrB;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,mDAAS;AAC9B;AACA;AACA,QAAQ,mDAAS;AACjB;AACA;AACA;;AAEA;AACA;;AAEA,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,YAAY,6CAAG;;AAEf;AACA;AACA,WAAW,mDAAS;AACpB,QAAQ,+CAAK,CAAC,+CAAK;AACnB,QAAQ,+CAAK,CAAC,+CAAK;AACnB,QAAQ,+CAAK,CAAC,+CAAK;AACnB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,6CAAG;AACtB,QAAQ,6CAAG;AACX,YAAY,gDAAM;AAClB;AACA,QAAQ,6CAAG;AACX,YAAY,gDAAM;AAClB;;AAEA,cAAc,kDAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAA0C,oDAAc;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACtwBgF;;AAEhF,+BAA+B,6CAAO,IAAI,6CAAO;AACjD,+BAA+B,6CAAO,IAAI,6CAAO;AACjD,+BAA+B,6CAAO,IAAI,6CAAO,GAAG,6CAAO;;AAE3D,UAAU,6CAAG;AACb,WAAW,6CAAG;AACd,WAAW,6CAAG;AACd,UAAU,6CAAG;AACb,UAAU,6CAAG;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,kDAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC,oDAAc;AACrD;AACA;;AAEA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6CAAG;;AAErB;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6CAAG;;AAErB;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6CAAG;;AAEpB;AACA;;AAEO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;ACzLuF;;AAEvF,+BAA+B,6CAAO,IAAI,6CAAO;AACjD,+BAA+B,6CAAO,IAAI,6CAAO;AACjD,iCAAiC,6CAAO,IAAI,6CAAO,GAAG,6CAAO;;AAE7D,WAAW,6CAAG;AACd,WAAW,6CAAG;AACd,WAAW,6CAAG;AACd,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,aAAa,6CAAG;AAChB,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf,UAAU,6CAAG;;AAEb,WAAW,6CAAG;AACd,YAAY,6CAAG;AACf,YAAY,6CAAG;AACf,YAAY,6CAAG;;AAEf,UAAU,6CAAG;AACb,WAAW,6CAAG;;AAEd;AACA,aAAa,6CAAG;AAChB,qBAAqB,YAAY;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA,QAAQ,8CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,6CAAG;AAChB,QAAQ,6CAAG;AACX,YAAY,+CAAK;AACjB,YAAY,+CAAK;AACjB,QAAQ,+CAAK;;AAEb,cAAc,kDAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,0CAA0C,oDAAc;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,6CAAG;AACtB,4BAA4B,+CAAK;;AAEjC,mBAAmB,6CAAG;AACtB,4BAA4B,+CAAK;;AAEjC,mBAAmB,6CAAG;AACtB,4BAA4B,+CAAK;;AAEjC;AACA,gCAAgC,+CAAK;AACrC,gCAAgC,+CAAK;AACrC;AACA;AACA,gCAAgC,+CAAK;AACrC,gCAAgC,+CAAK;AACrC;AACA;AACA,gCAAgC,+CAAK;AACrC,gCAAgC,+CAAK;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;AC7cO;AACA;AACA;;AAEP;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,oBAAoB,UAAU;AAC9B;AACA;;AAEO;AACP;AACA,oBAAoB,UAAU;AAC9B;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxIyD;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJlD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACnBgD;AACuC;AAC0C;;AAExI;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP,QAAQ,sDAAO,2CAA2C,oDAAK;AAC/D;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,mDAAI;AAChD;AACA;AACA;AACA,SAAS,oDAAO,eAAe,oDAAO,CAAC,sDAAO;AAC9C;AACA;AACA;AACA;AACA;AACA,kBAAkB,sDAAO;AACzB;AACA;AACA;AACA,kBAAkB,yDAAU;AAC5B;AACA;AACA;AACA,kBAAkB,uDAAQ,CAAC,oDAAK;AAChC;AACA;AACA;AACA,YAAY,mDAAI;AAChB;AACA,MAAM,oDAAM,SAAS,wDAAS,CAAC,mDAAI,IAAI,oDAAK;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mDAAM;AAC5B,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mDAAM;AACjC,OAAO,mDAAM,4CAA4C,2CAA2C,oDAAO,0BAA0B;AACrI;AACA;AACA,8BAA8B;AAC9B,UAAU;AACV;AACA,MAAM,oDAAM;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,mDAAM;AAC3D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,mDAAM;AACvB;AACA;AACA;AACA;AACA,qDAAqD,mDAAI;AACzD;;AAEA,0BAA0B,iDAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mDAAM;AAC/B;AACA;AACA;AACA;AACA,UAAU,mDAAI;AACd,qBAAqB,sDAAO,CAAC,mDAAI;;AAEjC,eAAe,mDAAI,sBAAsB,mDAAM,sBAAsB,yDAAU,CAAC,oDAAK;AACrF;AACA;AACA;AACA,6BAA6B,mDAAM;AACnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;AACA,YAAY,mDAAM;;AAElB,+BAA+B,WAAW;AAC1C,sBAAsB,mDAAM,yBAAyB,gDAAG,6BAA6B,UAAU;AAC/F,WAAW,iDAAI,6BAA6B,oDAAO;AACnD;;AAEA,QAAQ,mDAAI,qCAAqC,6CAAO;AACxD;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,YAAY;AACZ;AACO;AACP,QAAQ,mDAAI,sBAAsB,6CAAO,EAAE,iDAAI,CAAC,mDAAI,KAAK,mDAAM;AAC/D;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP,QAAQ,mDAAI,sBAAsB,iDAAW,EAAE,mDAAM,oBAAoB,mDAAM;AAC/E;;;;;;;;;;;;;;;;;;;AC9L0E;AAC/B;;AAE3C;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,YAAY;AACZ;AACO;AACP;AACA,cAAc,mDAAM;;AAEpB,iBAAiB,YAAY;AAC7B;;AAEA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,YAAY;AACZ;AACO;AACP;AACA,OAAO,4CAAM,OAAO,iDAAW;AAC/B,OAAO,6CAAO;AACd,OAAO,+CAAS,4CAA4C,8CAA8C;AAC1G,OAAO,6CAAO;AACd;;AAEA,QAAQ,mDAAM,wFAAwF,iBAAiB;AACvH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClC+E;;AAExE;AACA;AACA;AACA;AACA;AACA;;AAEP;AACA,WAAW,QAAQ;AACnB,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,WAAW,QAAQ;AACnB;AACO;AACP,SAAS;AACT;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP,QAAQ,mDAAM,iDAAiD,qBAAqB;AACpF;;AAEA;AACA,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,YAAY;AACZ;AACO;AACP,4BAA4B,mDAAM;;AAElC;AACA;;AAEA;AACA;;AAEA;AACA,YAAY;AACZ;AACO;AACP,iCAAiC,mDAAM;;AAEvC;AACA;;AAEA;AACA;;AAEA;AACA,YAAY;AACZ;AACO;AACP,QAAQ,mDAAM;AACd;;AAEA;AACA,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP,QAAQ,mDAAM;AACd;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP,oCAAoC,mDAAM;AAC1C;;AAEA;AACA,WAAW,KAAK;AAChB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP,QAAQ,iDAAI;AACZ;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,UAAU;AACrB,YAAY;AACZ;AACO;AACP;AACA;AACA,WAAW,mDAAM;AACjB;AACA,WAAW,oDAAM;AACjB;AACA,YAAY,oDAAM,CAAC,iDAAI;AACvB;;AAEA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAkD,iDAAI;AACtD;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrPA;AACA,WAAW;AACX,YAAY;AACZ;AACO;;AAEP;AACA,WAAW;AACX,YAAY;AACZ;AACO;;AAEP;AACA,WAAW;AACX,YAAY;AACZ;AACO;;AAEP;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,iBAAiB;AAC5B,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,YAAY;AACZ;AACO;AACP;AACA;;;;;;;;;;;;;;;;;;UClHA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WC5BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;;;;;UEJA;UACA;UACA;UACA","sources":["webpack://mermaid/webpack/universalModuleDefinition","webpack://mermaid/./src/diagrams/c4/parser/c4Diagram.jison","webpack://mermaid/./src/diagrams/class/parser/classDiagram.jison","webpack://mermaid/./src/diagrams/er/parser/erDiagram.jison","webpack://mermaid/./src/diagrams/flowchart/parser/flow.jison","webpack://mermaid/./src/diagrams/gantt/parser/gantt.jison","webpack://mermaid/./src/diagrams/git/parser/gitGraph.jison","webpack://mermaid/./src/diagrams/info/parser/info.jison","webpack://mermaid/./src/diagrams/pie/parser/pie.jison","webpack://mermaid/./src/diagrams/requirement/parser/requirementDiagram.jison","webpack://mermaid/./src/diagrams/sequence/parser/sequenceDiagram.jison","webpack://mermaid/./src/diagrams/state/parser/stateDiagram.jison","webpack://mermaid/./src/diagrams/user-journey/parser/journey.jison","webpack://mermaid/./node_modules/@braintree/sanitize-url/dist/index.js","webpack://mermaid/./src/Diagram.js","webpack://mermaid/./src/accessibility.js","webpack://mermaid/./src/assignWithDepth.js","webpack://mermaid/./src/commonDb.js","webpack://mermaid/./src/config.js","webpack://mermaid/./src/dagre-wrapper/clusters.js","webpack://mermaid/./src/dagre-wrapper/createLabel.js","webpack://mermaid/./src/dagre-wrapper/edges.js","webpack://mermaid/./src/dagre-wrapper/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-circle.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-ellipse.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-line.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-node.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-polygon.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-rect.js","webpack://mermaid/./src/dagre-wrapper/markers.js","webpack://mermaid/./src/dagre-wrapper/mermaid-graphlib.js","webpack://mermaid/./src/dagre-wrapper/nodes.js","webpack://mermaid/./src/dagre-wrapper/shapes/note.js","webpack://mermaid/./src/dagre-wrapper/shapes/util.js","webpack://mermaid/./src/defaultConfig.js","webpack://mermaid/./src/diagram-api/detectType.js","webpack://mermaid/./src/diagram-api/diagram-orchestration.js","webpack://mermaid/./src/diagram-api/diagramAPI.js","webpack://mermaid/./src/diagrams/c4/c4Db.js","webpack://mermaid/./src/diagrams/c4/c4Renderer.js","webpack://mermaid/./src/diagrams/c4/styles.js","webpack://mermaid/./src/diagrams/c4/svgDraw.js","webpack://mermaid/./src/diagrams/class/classDb.js","webpack://mermaid/./src/diagrams/class/classRenderer-v2.js","webpack://mermaid/./src/diagrams/class/classRenderer.js","webpack://mermaid/./src/diagrams/class/styles.js","webpack://mermaid/./src/diagrams/class/svgDraw.js","webpack://mermaid/./src/diagrams/common/common.js","webpack://mermaid/./src/diagrams/er/erDb.js","webpack://mermaid/./src/diagrams/er/erMarkers.js","webpack://mermaid/./src/diagrams/er/erRenderer.js","webpack://mermaid/./src/diagrams/er/styles.js","webpack://mermaid/./src/diagrams/flowchart/flowChartShapes.js","webpack://mermaid/./src/diagrams/flowchart/flowDb.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer-v2.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer.js","webpack://mermaid/./src/diagrams/flowchart/styles.js","webpack://mermaid/./src/diagrams/gantt/ganttDb.js","webpack://mermaid/./src/diagrams/gantt/ganttRenderer.js","webpack://mermaid/./src/diagrams/gantt/styles.js","webpack://mermaid/./src/diagrams/git/gitGraphAst.js","webpack://mermaid/./src/diagrams/git/gitGraphDetector.js","webpack://mermaid/./src/diagrams/git/gitGraphRenderer.js","webpack://mermaid/./src/diagrams/git/styles.js","webpack://mermaid/./src/diagrams/info/infoDb.js","webpack://mermaid/./src/diagrams/info/infoRenderer.js","webpack://mermaid/./src/diagrams/info/styles.js","webpack://mermaid/./src/diagrams/pie/pieDb.js","webpack://mermaid/./src/diagrams/pie/pieRenderer.js","webpack://mermaid/./src/diagrams/pie/styles.js","webpack://mermaid/./src/diagrams/requirement/requirementDb.js","webpack://mermaid/./src/diagrams/requirement/requirementMarkers.js","webpack://mermaid/./src/diagrams/requirement/requirementRenderer.js","webpack://mermaid/./src/diagrams/requirement/styles.js","webpack://mermaid/./src/diagrams/sequence/sequenceDb.js","webpack://mermaid/./src/diagrams/sequence/sequenceRenderer.js","webpack://mermaid/./src/diagrams/sequence/styles.js","webpack://mermaid/./src/diagrams/sequence/svgDraw.js","webpack://mermaid/./src/diagrams/state/id-cache.js","webpack://mermaid/./src/diagrams/state/shapes.js","webpack://mermaid/./src/diagrams/state/stateDb.js","webpack://mermaid/./src/diagrams/state/stateRenderer-v2.js","webpack://mermaid/./src/diagrams/state/stateRenderer.js","webpack://mermaid/./src/diagrams/state/styles.js","webpack://mermaid/./src/diagrams/user-journey/journeyDb.js","webpack://mermaid/./src/diagrams/user-journey/journeyRenderer.js","webpack://mermaid/./src/diagrams/user-journey/styles.js","webpack://mermaid/./src/diagrams/user-journey/svgDraw.js","webpack://mermaid/./src/errorRenderer.js","webpack://mermaid/./src/interactionDb.js","webpack://mermaid/./src/logger.js","webpack://mermaid/./src/mermaid.js","webpack://mermaid/./src/mermaidAPI.js","webpack://mermaid/./src/styles.js","webpack://mermaid/./src/themes/index.js","webpack://mermaid/./src/themes/theme-base.js","webpack://mermaid/./src/themes/theme-dark.js","webpack://mermaid/./src/themes/theme-default.js","webpack://mermaid/./src/themes/theme-forest.js","webpack://mermaid/./src/themes/theme-helpers.js","webpack://mermaid/./src/themes/theme-neutral.js","webpack://mermaid/./src/utils.js","webpack://mermaid/./node_modules/dagre-d3/index.js","webpack://mermaid/./node_modules/dagre-d3/lib/arrows.js","webpack://mermaid/./node_modules/dagre-d3/lib/create-clusters.js","webpack://mermaid/./node_modules/dagre-d3/lib/create-edge-labels.js","webpack://mermaid/./node_modules/dagre-d3/lib/create-edge-paths.js","webpack://mermaid/./node_modules/dagre-d3/lib/create-nodes.js","webpack://mermaid/./node_modules/dagre-d3/lib/d3.js","webpack://mermaid/./node_modules/dagre-d3/lib/dagre.js","webpack://mermaid/./node_modules/dagre-d3/lib/graphlib.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/index.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-circle.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-line.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-node.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-polygon.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-rect.js","webpack://mermaid/./node_modules/dagre-d3/lib/label/add-html-label.js","webpack://mermaid/./node_modules/dagre-d3/lib/label/add-label.js","webpack://mermaid/./node_modules/dagre-d3/lib/label/add-svg-label.js","webpack://mermaid/./node_modules/dagre-d3/lib/label/add-text-label.js","webpack://mermaid/./node_modules/dagre-d3/lib/lodash.js","webpack://mermaid/./node_modules/dagre-d3/lib/position-clusters.js","webpack://mermaid/./node_modules/dagre-d3/lib/position-edge-labels.js","webpack://mermaid/./node_modules/dagre-d3/lib/position-nodes.js","webpack://mermaid/./node_modules/dagre-d3/lib/render.js","webpack://mermaid/./node_modules/dagre-d3/lib/shapes.js","webpack://mermaid/./node_modules/dagre-d3/lib/util.js","webpack://mermaid/./node_modules/dagre-d3/lib/version.js","webpack://mermaid/./node_modules/dagre/index.js","webpack://mermaid/./node_modules/dagre/lib/acyclic.js","webpack://mermaid/./node_modules/dagre/lib/add-border-segments.js","webpack://mermaid/./node_modules/dagre/lib/coordinate-system.js","webpack://mermaid/./node_modules/dagre/lib/data/list.js","webpack://mermaid/./node_modules/dagre/lib/debug.js","webpack://mermaid/./node_modules/dagre/lib/graphlib.js","webpack://mermaid/./node_modules/dagre/lib/greedy-fas.js","webpack://mermaid/./node_modules/dagre/lib/layout.js","webpack://mermaid/./node_modules/dagre/lib/lodash.js","webpack://mermaid/./node_modules/dagre/lib/nesting-graph.js","webpack://mermaid/./node_modules/dagre/lib/normalize.js","webpack://mermaid/./node_modules/dagre/lib/order/add-subgraph-constraints.js","webpack://mermaid/./node_modules/dagre/lib/order/barycenter.js","webpack://mermaid/./node_modules/dagre/lib/order/build-layer-graph.js","webpack://mermaid/./node_modules/dagre/lib/order/cross-count.js","webpack://mermaid/./node_modules/dagre/lib/order/index.js","webpack://mermaid/./node_modules/dagre/lib/order/init-order.js","webpack://mermaid/./node_modules/dagre/lib/order/resolve-conflicts.js","webpack://mermaid/./node_modules/dagre/lib/order/sort-subgraph.js","webpack://mermaid/./node_modules/dagre/lib/order/sort.js","webpack://mermaid/./node_modules/dagre/lib/parent-dummy-chains.js","webpack://mermaid/./node_modules/dagre/lib/position/bk.js","webpack://mermaid/./node_modules/dagre/lib/position/index.js","webpack://mermaid/./node_modules/dagre/lib/rank/feasible-tree.js","webpack://mermaid/./node_modules/dagre/lib/rank/index.js","webpack://mermaid/./node_modules/dagre/lib/rank/network-simplex.js","webpack://mermaid/./node_modules/dagre/lib/rank/util.js","webpack://mermaid/./node_modules/dagre/lib/util.js","webpack://mermaid/./node_modules/dagre/lib/version.js","webpack://mermaid/./node_modules/dompurify/dist/purify.js","webpack://mermaid/./node_modules/graphlib/index.js","webpack://mermaid/./node_modules/graphlib/lib/alg/components.js","webpack://mermaid/./node_modules/graphlib/lib/alg/dfs.js","webpack://mermaid/./node_modules/graphlib/lib/alg/dijkstra-all.js","webpack://mermaid/./node_modules/graphlib/lib/alg/dijkstra.js","webpack://mermaid/./node_modules/graphlib/lib/alg/find-cycles.js","webpack://mermaid/./node_modules/graphlib/lib/alg/floyd-warshall.js","webpack://mermaid/./node_modules/graphlib/lib/alg/index.js","webpack://mermaid/./node_modules/graphlib/lib/alg/is-acyclic.js","webpack://mermaid/./node_modules/graphlib/lib/alg/postorder.js","webpack://mermaid/./node_modules/graphlib/lib/alg/preorder.js","webpack://mermaid/./node_modules/graphlib/lib/alg/prim.js","webpack://mermaid/./node_modules/graphlib/lib/alg/tarjan.js","webpack://mermaid/./node_modules/graphlib/lib/alg/topsort.js","webpack://mermaid/./node_modules/graphlib/lib/data/priority-queue.js","webpack://mermaid/./node_modules/graphlib/lib/graph.js","webpack://mermaid/./node_modules/graphlib/lib/index.js","webpack://mermaid/./node_modules/graphlib/lib/json.js","webpack://mermaid/./node_modules/graphlib/lib/lodash.js","webpack://mermaid/./node_modules/graphlib/lib/version.js","webpack://mermaid/./node_modules/lodash/_DataView.js","webpack://mermaid/./node_modules/lodash/_Hash.js","webpack://mermaid/./node_modules/lodash/_ListCache.js","webpack://mermaid/./node_modules/lodash/_Map.js","webpack://mermaid/./node_modules/lodash/_MapCache.js","webpack://mermaid/./node_modules/lodash/_Promise.js","webpack://mermaid/./node_modules/lodash/_Set.js","webpack://mermaid/./node_modules/lodash/_SetCache.js","webpack://mermaid/./node_modules/lodash/_Stack.js","webpack://mermaid/./node_modules/lodash/_Symbol.js","webpack://mermaid/./node_modules/lodash/_Uint8Array.js","webpack://mermaid/./node_modules/lodash/_WeakMap.js","webpack://mermaid/./node_modules/lodash/_apply.js","webpack://mermaid/./node_modules/lodash/_arrayEach.js","webpack://mermaid/./node_modules/lodash/_arrayFilter.js","webpack://mermaid/./node_modules/lodash/_arrayIncludes.js","webpack://mermaid/./node_modules/lodash/_arrayIncludesWith.js","webpack://mermaid/./node_modules/lodash/_arrayLikeKeys.js","webpack://mermaid/./node_modules/lodash/_arrayMap.js","webpack://mermaid/./node_modules/lodash/_arrayPush.js","webpack://mermaid/./node_modules/lodash/_arrayReduce.js","webpack://mermaid/./node_modules/lodash/_arraySome.js","webpack://mermaid/./node_modules/lodash/_asciiSize.js","webpack://mermaid/./node_modules/lodash/_assignMergeValue.js","webpack://mermaid/./node_modules/lodash/_assignValue.js","webpack://mermaid/./node_modules/lodash/_assocIndexOf.js","webpack://mermaid/./node_modules/lodash/_baseAssign.js","webpack://mermaid/./node_modules/lodash/_baseAssignIn.js","webpack://mermaid/./node_modules/lodash/_baseAssignValue.js","webpack://mermaid/./node_modules/lodash/_baseClone.js","webpack://mermaid/./node_modules/lodash/_baseCreate.js","webpack://mermaid/./node_modules/lodash/_baseEach.js","webpack://mermaid/./node_modules/lodash/_baseExtremum.js","webpack://mermaid/./node_modules/lodash/_baseFilter.js","webpack://mermaid/./node_modules/lodash/_baseFindIndex.js","webpack://mermaid/./node_modules/lodash/_baseFlatten.js","webpack://mermaid/./node_modules/lodash/_baseFor.js","webpack://mermaid/./node_modules/lodash/_baseForOwn.js","webpack://mermaid/./node_modules/lodash/_baseGet.js","webpack://mermaid/./node_modules/lodash/_baseGetAllKeys.js","webpack://mermaid/./node_modules/lodash/_baseGetTag.js","webpack://mermaid/./node_modules/lodash/_baseGt.js","webpack://mermaid/./node_modules/lodash/_baseHas.js","webpack://mermaid/./node_modules/lodash/_baseHasIn.js","webpack://mermaid/./node_modules/lodash/_baseIndexOf.js","webpack://mermaid/./node_modules/lodash/_baseIsArguments.js","webpack://mermaid/./node_modules/lodash/_baseIsEqual.js","webpack://mermaid/./node_modules/lodash/_baseIsEqualDeep.js","webpack://mermaid/./node_modules/lodash/_baseIsMap.js","webpack://mermaid/./node_modules/lodash/_baseIsMatch.js","webpack://mermaid/./node_modules/lodash/_baseIsNaN.js","webpack://mermaid/./node_modules/lodash/_baseIsNative.js","webpack://mermaid/./node_modules/lodash/_baseIsSet.js","webpack://mermaid/./node_modules/lodash/_baseIsTypedArray.js","webpack://mermaid/./node_modules/lodash/_baseIteratee.js","webpack://mermaid/./node_modules/lodash/_baseKeys.js","webpack://mermaid/./node_modules/lodash/_baseKeysIn.js","webpack://mermaid/./node_modules/lodash/_baseLt.js","webpack://mermaid/./node_modules/lodash/_baseMap.js","webpack://mermaid/./node_modules/lodash/_baseMatches.js","webpack://mermaid/./node_modules/lodash/_baseMatchesProperty.js","webpack://mermaid/./node_modules/lodash/_baseMerge.js","webpack://mermaid/./node_modules/lodash/_baseMergeDeep.js","webpack://mermaid/./node_modules/lodash/_baseOrderBy.js","webpack://mermaid/./node_modules/lodash/_basePick.js","webpack://mermaid/./node_modules/lodash/_basePickBy.js","webpack://mermaid/./node_modules/lodash/_baseProperty.js","webpack://mermaid/./node_modules/lodash/_basePropertyDeep.js","webpack://mermaid/./node_modules/lodash/_baseRange.js","webpack://mermaid/./node_modules/lodash/_baseReduce.js","webpack://mermaid/./node_modules/lodash/_baseRest.js","webpack://mermaid/./node_modules/lodash/_baseSet.js","webpack://mermaid/./node_modules/lodash/_baseSetToString.js","webpack://mermaid/./node_modules/lodash/_baseSortBy.js","webpack://mermaid/./node_modules/lodash/_baseTimes.js","webpack://mermaid/./node_modules/lodash/_baseToString.js","webpack://mermaid/./node_modules/lodash/_baseTrim.js","webpack://mermaid/./node_modules/lodash/_baseUnary.js","webpack://mermaid/./node_modules/lodash/_baseUniq.js","webpack://mermaid/./node_modules/lodash/_baseValues.js","webpack://mermaid/./node_modules/lodash/_baseZipObject.js","webpack://mermaid/./node_modules/lodash/_cacheHas.js","webpack://mermaid/./node_modules/lodash/_castFunction.js","webpack://mermaid/./node_modules/lodash/_castPath.js","webpack://mermaid/./node_modules/lodash/_cloneArrayBuffer.js","webpack://mermaid/./node_modules/lodash/_cloneBuffer.js","webpack://mermaid/./node_modules/lodash/_cloneDataView.js","webpack://mermaid/./node_modules/lodash/_cloneRegExp.js","webpack://mermaid/./node_modules/lodash/_cloneSymbol.js","webpack://mermaid/./node_modules/lodash/_cloneTypedArray.js","webpack://mermaid/./node_modules/lodash/_compareAscending.js","webpack://mermaid/./node_modules/lodash/_compareMultiple.js","webpack://mermaid/./node_modules/lodash/_copyArray.js","webpack://mermaid/./node_modules/lodash/_copyObject.js","webpack://mermaid/./node_modules/lodash/_copySymbols.js","webpack://mermaid/./node_modules/lodash/_copySymbolsIn.js","webpack://mermaid/./node_modules/lodash/_coreJsData.js","webpack://mermaid/./node_modules/lodash/_createAssigner.js","webpack://mermaid/./node_modules/lodash/_createBaseEach.js","webpack://mermaid/./node_modules/lodash/_createBaseFor.js","webpack://mermaid/./node_modules/lodash/_createFind.js","webpack://mermaid/./node_modules/lodash/_createRange.js","webpack://mermaid/./node_modules/lodash/_createSet.js","webpack://mermaid/./node_modules/lodash/_defineProperty.js","webpack://mermaid/./node_modules/lodash/_equalArrays.js","webpack://mermaid/./node_modules/lodash/_equalByTag.js","webpack://mermaid/./node_modules/lodash/_equalObjects.js","webpack://mermaid/./node_modules/lodash/_flatRest.js","webpack://mermaid/./node_modules/lodash/_freeGlobal.js","webpack://mermaid/./node_modules/lodash/_getAllKeys.js","webpack://mermaid/./node_modules/lodash/_getAllKeysIn.js","webpack://mermaid/./node_modules/lodash/_getMapData.js","webpack://mermaid/./node_modules/lodash/_getMatchData.js","webpack://mermaid/./node_modules/lodash/_getNative.js","webpack://mermaid/./node_modules/lodash/_getPrototype.js","webpack://mermaid/./node_modules/lodash/_getRawTag.js","webpack://mermaid/./node_modules/lodash/_getSymbols.js","webpack://mermaid/./node_modules/lodash/_getSymbolsIn.js","webpack://mermaid/./node_modules/lodash/_getTag.js","webpack://mermaid/./node_modules/lodash/_getValue.js","webpack://mermaid/./node_modules/lodash/_hasPath.js","webpack://mermaid/./node_modules/lodash/_hasUnicode.js","webpack://mermaid/./node_modules/lodash/_hashClear.js","webpack://mermaid/./node_modules/lodash/_hashDelete.js","webpack://mermaid/./node_modules/lodash/_hashGet.js","webpack://mermaid/./node_modules/lodash/_hashHas.js","webpack://mermaid/./node_modules/lodash/_hashSet.js","webpack://mermaid/./node_modules/lodash/_initCloneArray.js","webpack://mermaid/./node_modules/lodash/_initCloneByTag.js","webpack://mermaid/./node_modules/lodash/_initCloneObject.js","webpack://mermaid/./node_modules/lodash/_isFlattenable.js","webpack://mermaid/./node_modules/lodash/_isIndex.js","webpack://mermaid/./node_modules/lodash/_isIterateeCall.js","webpack://mermaid/./node_modules/lodash/_isKey.js","webpack://mermaid/./node_modules/lodash/_isKeyable.js","webpack://mermaid/./node_modules/lodash/_isMasked.js","webpack://mermaid/./node_modules/lodash/_isPrototype.js","webpack://mermaid/./node_modules/lodash/_isStrictComparable.js","webpack://mermaid/./node_modules/lodash/_listCacheClear.js","webpack://mermaid/./node_modules/lodash/_listCacheDelete.js","webpack://mermaid/./node_modules/lodash/_listCacheGet.js","webpack://mermaid/./node_modules/lodash/_listCacheHas.js","webpack://mermaid/./node_modules/lodash/_listCacheSet.js","webpack://mermaid/./node_modules/lodash/_mapCacheClear.js","webpack://mermaid/./node_modules/lodash/_mapCacheDelete.js","webpack://mermaid/./node_modules/lodash/_mapCacheGet.js","webpack://mermaid/./node_modules/lodash/_mapCacheHas.js","webpack://mermaid/./node_modules/lodash/_mapCacheSet.js","webpack://mermaid/./node_modules/lodash/_mapToArray.js","webpack://mermaid/./node_modules/lodash/_matchesStrictComparable.js","webpack://mermaid/./node_modules/lodash/_memoizeCapped.js","webpack://mermaid/./node_modules/lodash/_nativeCreate.js","webpack://mermaid/./node_modules/lodash/_nativeKeys.js","webpack://mermaid/./node_modules/lodash/_nativeKeysIn.js","webpack://mermaid/./node_modules/lodash/_nodeUtil.js","webpack://mermaid/./node_modules/lodash/_objectToString.js","webpack://mermaid/./node_modules/lodash/_overArg.js","webpack://mermaid/./node_modules/lodash/_overRest.js","webpack://mermaid/./node_modules/lodash/_root.js","webpack://mermaid/./node_modules/lodash/_safeGet.js","webpack://mermaid/./node_modules/lodash/_setCacheAdd.js","webpack://mermaid/./node_modules/lodash/_setCacheHas.js","webpack://mermaid/./node_modules/lodash/_setToArray.js","webpack://mermaid/./node_modules/lodash/_setToString.js","webpack://mermaid/./node_modules/lodash/_shortOut.js","webpack://mermaid/./node_modules/lodash/_stackClear.js","webpack://mermaid/./node_modules/lodash/_stackDelete.js","webpack://mermaid/./node_modules/lodash/_stackGet.js","webpack://mermaid/./node_modules/lodash/_stackHas.js","webpack://mermaid/./node_modules/lodash/_stackSet.js","webpack://mermaid/./node_modules/lodash/_strictIndexOf.js","webpack://mermaid/./node_modules/lodash/_stringSize.js","webpack://mermaid/./node_modules/lodash/_stringToPath.js","webpack://mermaid/./node_modules/lodash/_toKey.js","webpack://mermaid/./node_modules/lodash/_toSource.js","webpack://mermaid/./node_modules/lodash/_trimmedEndIndex.js","webpack://mermaid/./node_modules/lodash/_unicodeSize.js","webpack://mermaid/./node_modules/lodash/clone.js","webpack://mermaid/./node_modules/lodash/cloneDeep.js","webpack://mermaid/./node_modules/lodash/constant.js","webpack://mermaid/./node_modules/lodash/defaults.js","webpack://mermaid/./node_modules/lodash/each.js","webpack://mermaid/./node_modules/lodash/eq.js","webpack://mermaid/./node_modules/lodash/filter.js","webpack://mermaid/./node_modules/lodash/find.js","webpack://mermaid/./node_modules/lodash/findIndex.js","webpack://mermaid/./node_modules/lodash/flatten.js","webpack://mermaid/./node_modules/lodash/forEach.js","webpack://mermaid/./node_modules/lodash/forIn.js","webpack://mermaid/./node_modules/lodash/get.js","webpack://mermaid/./node_modules/lodash/has.js","webpack://mermaid/./node_modules/lodash/hasIn.js","webpack://mermaid/./node_modules/lodash/identity.js","webpack://mermaid/./node_modules/lodash/isArguments.js","webpack://mermaid/./node_modules/lodash/isArray.js","webpack://mermaid/./node_modules/lodash/isArrayLike.js","webpack://mermaid/./node_modules/lodash/isArrayLikeObject.js","webpack://mermaid/./node_modules/lodash/isBuffer.js","webpack://mermaid/./node_modules/lodash/isEmpty.js","webpack://mermaid/./node_modules/lodash/isFunction.js","webpack://mermaid/./node_modules/lodash/isLength.js","webpack://mermaid/./node_modules/lodash/isMap.js","webpack://mermaid/./node_modules/lodash/isObject.js","webpack://mermaid/./node_modules/lodash/isObjectLike.js","webpack://mermaid/./node_modules/lodash/isPlainObject.js","webpack://mermaid/./node_modules/lodash/isSet.js","webpack://mermaid/./node_modules/lodash/isString.js","webpack://mermaid/./node_modules/lodash/isSymbol.js","webpack://mermaid/./node_modules/lodash/isTypedArray.js","webpack://mermaid/./node_modules/lodash/isUndefined.js","webpack://mermaid/./node_modules/lodash/keys.js","webpack://mermaid/./node_modules/lodash/keysIn.js","webpack://mermaid/./node_modules/lodash/last.js","webpack://mermaid/./node_modules/lodash/map.js","webpack://mermaid/./node_modules/lodash/mapValues.js","webpack://mermaid/./node_modules/lodash/max.js","webpack://mermaid/./node_modules/lodash/memoize.js","webpack://mermaid/./node_modules/lodash/merge.js","webpack://mermaid/./node_modules/lodash/min.js","webpack://mermaid/./node_modules/lodash/minBy.js","webpack://mermaid/./node_modules/lodash/noop.js","webpack://mermaid/./node_modules/lodash/now.js","webpack://mermaid/./node_modules/lodash/pick.js","webpack://mermaid/./node_modules/lodash/property.js","webpack://mermaid/./node_modules/lodash/range.js","webpack://mermaid/./node_modules/lodash/reduce.js","webpack://mermaid/./node_modules/lodash/size.js","webpack://mermaid/./node_modules/lodash/sortBy.js","webpack://mermaid/./node_modules/lodash/stubArray.js","webpack://mermaid/./node_modules/lodash/stubFalse.js","webpack://mermaid/./node_modules/lodash/toFinite.js","webpack://mermaid/./node_modules/lodash/toInteger.js","webpack://mermaid/./node_modules/lodash/toNumber.js","webpack://mermaid/./node_modules/lodash/toPlainObject.js","webpack://mermaid/./node_modules/lodash/toString.js","webpack://mermaid/./node_modules/lodash/transform.js","webpack://mermaid/./node_modules/lodash/union.js","webpack://mermaid/./node_modules/lodash/uniqueId.js","webpack://mermaid/./node_modules/lodash/values.js","webpack://mermaid/./node_modules/lodash/zipObject.js","webpack://mermaid/./node_modules/moment-mini/locale/locale.js","webpack://mermaid/./node_modules/moment-mini/locale/ sync ^\\.\\/.*$","webpack://mermaid/./node_modules/moment-mini/moment.min.js","webpack://mermaid/./node_modules/path-browserify/index.js","webpack://mermaid/ignored|/Users/brent/tmp/mermaid/src/diagrams/c4/parser|fs","webpack://mermaid/ignored|/Users/brent/tmp/mermaid/src/diagrams/class/parser|fs","webpack://mermaid/ignored|/Users/brent/tmp/mermaid/src/diagrams/er/parser|fs","webpack://mermaid/ignored|/Users/brent/tmp/mermaid/src/diagrams/flowchart/parser|fs","webpack://mermaid/ignored|/Users/brent/tmp/mermaid/src/diagrams/gantt/parser|fs","webpack://mermaid/ignored|/Users/brent/tmp/mermaid/src/diagrams/git/parser|fs","webpack://mermaid/ignored|/Users/brent/tmp/mermaid/src/diagrams/info/parser|fs","webpack://mermaid/ignored|/Users/brent/tmp/mermaid/src/diagrams/pie/parser|fs","webpack://mermaid/ignored|/Users/brent/tmp/mermaid/src/diagrams/requirement/parser|fs","webpack://mermaid/ignored|/Users/brent/tmp/mermaid/src/diagrams/sequence/parser|fs","webpack://mermaid/ignored|/Users/brent/tmp/mermaid/src/diagrams/state/parser|fs","webpack://mermaid/ignored|/Users/brent/tmp/mermaid/src/diagrams/user-journey/parser|fs","webpack://mermaid/./node_modules/d3-array/src/array.js","webpack://mermaid/./node_modules/d3-array/src/ascending.js","webpack://mermaid/./node_modules/d3-array/src/bin.js","webpack://mermaid/./node_modules/d3-array/src/bisect.js","webpack://mermaid/./node_modules/d3-array/src/bisector.js","webpack://mermaid/./node_modules/d3-array/src/constant.js","webpack://mermaid/./node_modules/d3-array/src/count.js","webpack://mermaid/./node_modules/d3-array/src/cross.js","webpack://mermaid/./node_modules/d3-array/src/cumsum.js","webpack://mermaid/./node_modules/d3-array/src/descending.js","webpack://mermaid/./node_modules/d3-array/src/deviation.js","webpack://mermaid/./node_modules/d3-array/src/difference.js","webpack://mermaid/./node_modules/d3-array/src/disjoint.js","webpack://mermaid/./node_modules/d3-array/src/every.js","webpack://mermaid/./node_modules/d3-array/src/extent.js","webpack://mermaid/./node_modules/d3-array/src/filter.js","webpack://mermaid/./node_modules/d3-array/src/fsum.js","webpack://mermaid/./node_modules/d3-array/src/greatest.js","webpack://mermaid/./node_modules/d3-array/src/greatestIndex.js","webpack://mermaid/./node_modules/d3-array/src/group.js","webpack://mermaid/./node_modules/d3-array/src/groupSort.js","webpack://mermaid/./node_modules/d3-array/src/identity.js","webpack://mermaid/./node_modules/d3-array/src/index.js","webpack://mermaid/./node_modules/d3-array/src/intersection.js","webpack://mermaid/./node_modules/d3-array/src/least.js","webpack://mermaid/./node_modules/d3-array/src/leastIndex.js","webpack://mermaid/./node_modules/d3-array/src/map.js","webpack://mermaid/./node_modules/d3-array/src/max.js","webpack://mermaid/./node_modules/d3-array/src/maxIndex.js","webpack://mermaid/./node_modules/d3-array/src/mean.js","webpack://mermaid/./node_modules/d3-array/src/median.js","webpack://mermaid/./node_modules/d3-array/src/merge.js","webpack://mermaid/./node_modules/d3-array/src/min.js","webpack://mermaid/./node_modules/d3-array/src/minIndex.js","webpack://mermaid/./node_modules/d3-array/src/mode.js","webpack://mermaid/./node_modules/d3-array/src/nice.js","webpack://mermaid/./node_modules/d3-array/src/number.js","webpack://mermaid/./node_modules/d3-array/src/pairs.js","webpack://mermaid/./node_modules/d3-array/src/permute.js","webpack://mermaid/./node_modules/d3-array/src/quantile.js","webpack://mermaid/./node_modules/d3-array/src/quickselect.js","webpack://mermaid/./node_modules/d3-array/src/range.js","webpack://mermaid/./node_modules/d3-array/src/rank.js","webpack://mermaid/./node_modules/d3-array/src/reduce.js","webpack://mermaid/./node_modules/d3-array/src/reverse.js","webpack://mermaid/./node_modules/d3-array/src/scan.js","webpack://mermaid/./node_modules/d3-array/src/shuffle.js","webpack://mermaid/./node_modules/d3-array/src/some.js","webpack://mermaid/./node_modules/d3-array/src/sort.js","webpack://mermaid/./node_modules/d3-array/src/subset.js","webpack://mermaid/./node_modules/d3-array/src/sum.js","webpack://mermaid/./node_modules/d3-array/src/superset.js","webpack://mermaid/./node_modules/d3-array/src/threshold/freedmanDiaconis.js","webpack://mermaid/./node_modules/d3-array/src/threshold/scott.js","webpack://mermaid/./node_modules/d3-array/src/threshold/sturges.js","webpack://mermaid/./node_modules/d3-array/src/ticks.js","webpack://mermaid/./node_modules/d3-array/src/transpose.js","webpack://mermaid/./node_modules/d3-array/src/union.js","webpack://mermaid/./node_modules/d3-array/src/variance.js","webpack://mermaid/./node_modules/d3-array/src/zip.js","webpack://mermaid/./node_modules/d3-axis/src/axis.js","webpack://mermaid/./node_modules/d3-axis/src/identity.js","webpack://mermaid/./node_modules/d3-axis/src/index.js","webpack://mermaid/./node_modules/d3-brush/src/brush.js","webpack://mermaid/./node_modules/d3-brush/src/constant.js","webpack://mermaid/./node_modules/d3-brush/src/event.js","webpack://mermaid/./node_modules/d3-brush/src/index.js","webpack://mermaid/./node_modules/d3-brush/src/noevent.js","webpack://mermaid/./node_modules/d3-chord/src/array.js","webpack://mermaid/./node_modules/d3-chord/src/chord.js","webpack://mermaid/./node_modules/d3-chord/src/constant.js","webpack://mermaid/./node_modules/d3-chord/src/index.js","webpack://mermaid/./node_modules/d3-chord/src/math.js","webpack://mermaid/./node_modules/d3-chord/src/ribbon.js","webpack://mermaid/./node_modules/d3-color/src/color.js","webpack://mermaid/./node_modules/d3-color/src/cubehelix.js","webpack://mermaid/./node_modules/d3-color/src/define.js","webpack://mermaid/./node_modules/d3-color/src/index.js","webpack://mermaid/./node_modules/d3-color/src/lab.js","webpack://mermaid/./node_modules/d3-color/src/math.js","webpack://mermaid/./node_modules/d3-contour/src/area.js","webpack://mermaid/./node_modules/d3-contour/src/array.js","webpack://mermaid/./node_modules/d3-contour/src/ascending.js","webpack://mermaid/./node_modules/d3-contour/src/blur.js","webpack://mermaid/./node_modules/d3-contour/src/constant.js","webpack://mermaid/./node_modules/d3-contour/src/contains.js","webpack://mermaid/./node_modules/d3-contour/src/contours.js","webpack://mermaid/./node_modules/d3-contour/src/density.js","webpack://mermaid/./node_modules/d3-contour/src/index.js","webpack://mermaid/./node_modules/d3-contour/src/noop.js","webpack://mermaid/./node_modules/d3-delaunay/src/delaunay.js","webpack://mermaid/./node_modules/d3-delaunay/src/index.js","webpack://mermaid/./node_modules/d3-delaunay/src/path.js","webpack://mermaid/./node_modules/d3-delaunay/src/polygon.js","webpack://mermaid/./node_modules/d3-delaunay/src/voronoi.js","webpack://mermaid/./node_modules/d3-dispatch/src/dispatch.js","webpack://mermaid/./node_modules/d3-dispatch/src/index.js","webpack://mermaid/./node_modules/d3-drag/src/constant.js","webpack://mermaid/./node_modules/d3-drag/src/drag.js","webpack://mermaid/./node_modules/d3-drag/src/event.js","webpack://mermaid/./node_modules/d3-drag/src/index.js","webpack://mermaid/./node_modules/d3-drag/src/nodrag.js","webpack://mermaid/./node_modules/d3-drag/src/noevent.js","webpack://mermaid/./node_modules/d3-dsv/src/autoType.js","webpack://mermaid/./node_modules/d3-dsv/src/csv.js","webpack://mermaid/./node_modules/d3-dsv/src/dsv.js","webpack://mermaid/./node_modules/d3-dsv/src/index.js","webpack://mermaid/./node_modules/d3-dsv/src/tsv.js","webpack://mermaid/./node_modules/d3-ease/src/back.js","webpack://mermaid/./node_modules/d3-ease/src/bounce.js","webpack://mermaid/./node_modules/d3-ease/src/circle.js","webpack://mermaid/./node_modules/d3-ease/src/cubic.js","webpack://mermaid/./node_modules/d3-ease/src/elastic.js","webpack://mermaid/./node_modules/d3-ease/src/exp.js","webpack://mermaid/./node_modules/d3-ease/src/index.js","webpack://mermaid/./node_modules/d3-ease/src/linear.js","webpack://mermaid/./node_modules/d3-ease/src/math.js","webpack://mermaid/./node_modules/d3-ease/src/poly.js","webpack://mermaid/./node_modules/d3-ease/src/quad.js","webpack://mermaid/./node_modules/d3-ease/src/sin.js","webpack://mermaid/./node_modules/d3-fetch/src/blob.js","webpack://mermaid/./node_modules/d3-fetch/src/buffer.js","webpack://mermaid/./node_modules/d3-fetch/src/dsv.js","webpack://mermaid/./node_modules/d3-fetch/src/image.js","webpack://mermaid/./node_modules/d3-fetch/src/index.js","webpack://mermaid/./node_modules/d3-fetch/src/json.js","webpack://mermaid/./node_modules/d3-fetch/src/text.js","webpack://mermaid/./node_modules/d3-fetch/src/xml.js","webpack://mermaid/./node_modules/d3-force/src/center.js","webpack://mermaid/./node_modules/d3-force/src/collide.js","webpack://mermaid/./node_modules/d3-force/src/constant.js","webpack://mermaid/./node_modules/d3-force/src/index.js","webpack://mermaid/./node_modules/d3-force/src/jiggle.js","webpack://mermaid/./node_modules/d3-force/src/lcg.js","webpack://mermaid/./node_modules/d3-force/src/link.js","webpack://mermaid/./node_modules/d3-force/src/manyBody.js","webpack://mermaid/./node_modules/d3-force/src/radial.js","webpack://mermaid/./node_modules/d3-force/src/simulation.js","webpack://mermaid/./node_modules/d3-force/src/x.js","webpack://mermaid/./node_modules/d3-force/src/y.js","webpack://mermaid/./node_modules/d3-format/src/defaultLocale.js","webpack://mermaid/./node_modules/d3-format/src/exponent.js","webpack://mermaid/./node_modules/d3-format/src/formatDecimal.js","webpack://mermaid/./node_modules/d3-format/src/formatGroup.js","webpack://mermaid/./node_modules/d3-format/src/formatNumerals.js","webpack://mermaid/./node_modules/d3-format/src/formatPrefixAuto.js","webpack://mermaid/./node_modules/d3-format/src/formatRounded.js","webpack://mermaid/./node_modules/d3-format/src/formatSpecifier.js","webpack://mermaid/./node_modules/d3-format/src/formatTrim.js","webpack://mermaid/./node_modules/d3-format/src/formatTypes.js","webpack://mermaid/./node_modules/d3-format/src/identity.js","webpack://mermaid/./node_modules/d3-format/src/index.js","webpack://mermaid/./node_modules/d3-format/src/locale.js","webpack://mermaid/./node_modules/d3-format/src/precisionFixed.js","webpack://mermaid/./node_modules/d3-format/src/precisionPrefix.js","webpack://mermaid/./node_modules/d3-format/src/precisionRound.js","webpack://mermaid/./node_modules/d3-geo/src/area.js","webpack://mermaid/./node_modules/d3-geo/src/bounds.js","webpack://mermaid/./node_modules/d3-geo/src/cartesian.js","webpack://mermaid/./node_modules/d3-geo/src/centroid.js","webpack://mermaid/./node_modules/d3-geo/src/circle.js","webpack://mermaid/./node_modules/d3-geo/src/clip/antimeridian.js","webpack://mermaid/./node_modules/d3-geo/src/clip/buffer.js","webpack://mermaid/./node_modules/d3-geo/src/clip/circle.js","webpack://mermaid/./node_modules/d3-geo/src/clip/extent.js","webpack://mermaid/./node_modules/d3-geo/src/clip/index.js","webpack://mermaid/./node_modules/d3-geo/src/clip/line.js","webpack://mermaid/./node_modules/d3-geo/src/clip/rectangle.js","webpack://mermaid/./node_modules/d3-geo/src/clip/rejoin.js","webpack://mermaid/./node_modules/d3-geo/src/compose.js","webpack://mermaid/./node_modules/d3-geo/src/constant.js","webpack://mermaid/./node_modules/d3-geo/src/contains.js","webpack://mermaid/./node_modules/d3-geo/src/distance.js","webpack://mermaid/./node_modules/d3-geo/src/graticule.js","webpack://mermaid/./node_modules/d3-geo/src/identity.js","webpack://mermaid/./node_modules/d3-geo/src/index.js","webpack://mermaid/./node_modules/d3-geo/src/interpolate.js","webpack://mermaid/./node_modules/d3-geo/src/length.js","webpack://mermaid/./node_modules/d3-geo/src/math.js","webpack://mermaid/./node_modules/d3-geo/src/noop.js","webpack://mermaid/./node_modules/d3-geo/src/path/area.js","webpack://mermaid/./node_modules/d3-geo/src/path/bounds.js","webpack://mermaid/./node_modules/d3-geo/src/path/centroid.js","webpack://mermaid/./node_modules/d3-geo/src/path/context.js","webpack://mermaid/./node_modules/d3-geo/src/path/index.js","webpack://mermaid/./node_modules/d3-geo/src/path/measure.js","webpack://mermaid/./node_modules/d3-geo/src/path/string.js","webpack://mermaid/./node_modules/d3-geo/src/pointEqual.js","webpack://mermaid/./node_modules/d3-geo/src/polygonContains.js","webpack://mermaid/./node_modules/d3-geo/src/projection/albers.js","webpack://mermaid/./node_modules/d3-geo/src/projection/albersUsa.js","webpack://mermaid/./node_modules/d3-geo/src/projection/azimuthal.js","webpack://mermaid/./node_modules/d3-geo/src/projection/azimuthalEqualArea.js","webpack://mermaid/./node_modules/d3-geo/src/projection/azimuthalEquidistant.js","webpack://mermaid/./node_modules/d3-geo/src/projection/conic.js","webpack://mermaid/./node_modules/d3-geo/src/projection/conicConformal.js","webpack://mermaid/./node_modules/d3-geo/src/projection/conicEqualArea.js","webpack://mermaid/./node_modules/d3-geo/src/projection/conicEquidistant.js","webpack://mermaid/./node_modules/d3-geo/src/projection/cylindricalEqualArea.js","webpack://mermaid/./node_modules/d3-geo/src/projection/equalEarth.js","webpack://mermaid/./node_modules/d3-geo/src/projection/equirectangular.js","webpack://mermaid/./node_modules/d3-geo/src/projection/fit.js","webpack://mermaid/./node_modules/d3-geo/src/projection/gnomonic.js","webpack://mermaid/./node_modules/d3-geo/src/projection/identity.js","webpack://mermaid/./node_modules/d3-geo/src/projection/index.js","webpack://mermaid/./node_modules/d3-geo/src/projection/mercator.js","webpack://mermaid/./node_modules/d3-geo/src/projection/naturalEarth1.js","webpack://mermaid/./node_modules/d3-geo/src/projection/orthographic.js","webpack://mermaid/./node_modules/d3-geo/src/projection/resample.js","webpack://mermaid/./node_modules/d3-geo/src/projection/stereographic.js","webpack://mermaid/./node_modules/d3-geo/src/projection/transverseMercator.js","webpack://mermaid/./node_modules/d3-geo/src/rotation.js","webpack://mermaid/./node_modules/d3-geo/src/stream.js","webpack://mermaid/./node_modules/d3-geo/src/transform.js","webpack://mermaid/./node_modules/d3-hierarchy/src/accessors.js","webpack://mermaid/./node_modules/d3-hierarchy/src/array.js","webpack://mermaid/./node_modules/d3-hierarchy/src/cluster.js","webpack://mermaid/./node_modules/d3-hierarchy/src/constant.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/count.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/each.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/find.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/index.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/iterator.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/links.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/path.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack://mermaid/./node_modules/d3-hierarchy/src/index.js","webpack://mermaid/./node_modules/d3-hierarchy/src/pack/enclose.js","webpack://mermaid/./node_modules/d3-hierarchy/src/pack/index.js","webpack://mermaid/./node_modules/d3-hierarchy/src/pack/siblings.js","webpack://mermaid/./node_modules/d3-hierarchy/src/partition.js","webpack://mermaid/./node_modules/d3-hierarchy/src/stratify.js","webpack://mermaid/./node_modules/d3-hierarchy/src/tree.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/binary.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/dice.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/index.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/round.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/slice.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/sliceDice.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/squarify.js","webpack://mermaid/./node_modules/d3-interpolate/src/array.js","webpack://mermaid/./node_modules/d3-interpolate/src/basis.js","webpack://mermaid/./node_modules/d3-interpolate/src/basisClosed.js","webpack://mermaid/./node_modules/d3-interpolate/src/color.js","webpack://mermaid/./node_modules/d3-interpolate/src/constant.js","webpack://mermaid/./node_modules/d3-interpolate/src/cubehelix.js","webpack://mermaid/./node_modules/d3-interpolate/src/date.js","webpack://mermaid/./node_modules/d3-interpolate/src/discrete.js","webpack://mermaid/./node_modules/d3-interpolate/src/hcl.js","webpack://mermaid/./node_modules/d3-interpolate/src/hsl.js","webpack://mermaid/./node_modules/d3-interpolate/src/hue.js","webpack://mermaid/./node_modules/d3-interpolate/src/index.js","webpack://mermaid/./node_modules/d3-interpolate/src/lab.js","webpack://mermaid/./node_modules/d3-interpolate/src/number.js","webpack://mermaid/./node_modules/d3-interpolate/src/numberArray.js","webpack://mermaid/./node_modules/d3-interpolate/src/object.js","webpack://mermaid/./node_modules/d3-interpolate/src/piecewise.js","webpack://mermaid/./node_modules/d3-interpolate/src/quantize.js","webpack://mermaid/./node_modules/d3-interpolate/src/rgb.js","webpack://mermaid/./node_modules/d3-interpolate/src/round.js","webpack://mermaid/./node_modules/d3-interpolate/src/string.js","webpack://mermaid/./node_modules/d3-interpolate/src/transform/decompose.js","webpack://mermaid/./node_modules/d3-interpolate/src/transform/index.js","webpack://mermaid/./node_modules/d3-interpolate/src/transform/parse.js","webpack://mermaid/./node_modules/d3-interpolate/src/value.js","webpack://mermaid/./node_modules/d3-interpolate/src/zoom.js","webpack://mermaid/./node_modules/d3-path/src/index.js","webpack://mermaid/./node_modules/d3-path/src/path.js","webpack://mermaid/./node_modules/d3-polygon/src/area.js","webpack://mermaid/./node_modules/d3-polygon/src/centroid.js","webpack://mermaid/./node_modules/d3-polygon/src/contains.js","webpack://mermaid/./node_modules/d3-polygon/src/cross.js","webpack://mermaid/./node_modules/d3-polygon/src/hull.js","webpack://mermaid/./node_modules/d3-polygon/src/index.js","webpack://mermaid/./node_modules/d3-polygon/src/length.js","webpack://mermaid/./node_modules/d3-quadtree/src/add.js","webpack://mermaid/./node_modules/d3-quadtree/src/cover.js","webpack://mermaid/./node_modules/d3-quadtree/src/data.js","webpack://mermaid/./node_modules/d3-quadtree/src/extent.js","webpack://mermaid/./node_modules/d3-quadtree/src/find.js","webpack://mermaid/./node_modules/d3-quadtree/src/index.js","webpack://mermaid/./node_modules/d3-quadtree/src/quad.js","webpack://mermaid/./node_modules/d3-quadtree/src/quadtree.js","webpack://mermaid/./node_modules/d3-quadtree/src/remove.js","webpack://mermaid/./node_modules/d3-quadtree/src/root.js","webpack://mermaid/./node_modules/d3-quadtree/src/size.js","webpack://mermaid/./node_modules/d3-quadtree/src/visit.js","webpack://mermaid/./node_modules/d3-quadtree/src/visitAfter.js","webpack://mermaid/./node_modules/d3-quadtree/src/x.js","webpack://mermaid/./node_modules/d3-quadtree/src/y.js","webpack://mermaid/./node_modules/d3-random/src/bates.js","webpack://mermaid/./node_modules/d3-random/src/bernoulli.js","webpack://mermaid/./node_modules/d3-random/src/beta.js","webpack://mermaid/./node_modules/d3-random/src/binomial.js","webpack://mermaid/./node_modules/d3-random/src/cauchy.js","webpack://mermaid/./node_modules/d3-random/src/defaultSource.js","webpack://mermaid/./node_modules/d3-random/src/exponential.js","webpack://mermaid/./node_modules/d3-random/src/gamma.js","webpack://mermaid/./node_modules/d3-random/src/geometric.js","webpack://mermaid/./node_modules/d3-random/src/index.js","webpack://mermaid/./node_modules/d3-random/src/int.js","webpack://mermaid/./node_modules/d3-random/src/irwinHall.js","webpack://mermaid/./node_modules/d3-random/src/lcg.js","webpack://mermaid/./node_modules/d3-random/src/logNormal.js","webpack://mermaid/./node_modules/d3-random/src/logistic.js","webpack://mermaid/./node_modules/d3-random/src/normal.js","webpack://mermaid/./node_modules/d3-random/src/pareto.js","webpack://mermaid/./node_modules/d3-random/src/poisson.js","webpack://mermaid/./node_modules/d3-random/src/uniform.js","webpack://mermaid/./node_modules/d3-random/src/weibull.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Accent.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Dark2.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Paired.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Set1.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Set2.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Set3.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Tableau10.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/category10.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/colors.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/BrBG.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/PRGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/PiYG.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/PuOr.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/RdBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/RdGy.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/Spectral.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/index.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/ramp.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Blues.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Greens.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Greys.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Purples.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Reds.js","webpack://mermaid/./node_modules/d3-scale/src/band.js","webpack://mermaid/./node_modules/d3-scale/src/constant.js","webpack://mermaid/./node_modules/d3-scale/src/continuous.js","webpack://mermaid/./node_modules/d3-scale/src/diverging.js","webpack://mermaid/./node_modules/d3-scale/src/identity.js","webpack://mermaid/./node_modules/d3-scale/src/index.js","webpack://mermaid/./node_modules/d3-scale/src/init.js","webpack://mermaid/./node_modules/d3-scale/src/linear.js","webpack://mermaid/./node_modules/d3-scale/src/log.js","webpack://mermaid/./node_modules/d3-scale/src/nice.js","webpack://mermaid/./node_modules/d3-scale/src/number.js","webpack://mermaid/./node_modules/d3-scale/src/ordinal.js","webpack://mermaid/./node_modules/d3-scale/src/pow.js","webpack://mermaid/./node_modules/d3-scale/src/quantile.js","webpack://mermaid/./node_modules/d3-scale/src/quantize.js","webpack://mermaid/./node_modules/d3-scale/src/radial.js","webpack://mermaid/./node_modules/d3-scale/src/sequential.js","webpack://mermaid/./node_modules/d3-scale/src/sequentialQuantile.js","webpack://mermaid/./node_modules/d3-scale/src/symlog.js","webpack://mermaid/./node_modules/d3-scale/src/threshold.js","webpack://mermaid/./node_modules/d3-scale/src/tickFormat.js","webpack://mermaid/./node_modules/d3-scale/src/time.js","webpack://mermaid/./node_modules/d3-scale/src/utcTime.js","webpack://mermaid/./node_modules/d3-selection/src/array.js","webpack://mermaid/./node_modules/d3-selection/src/constant.js","webpack://mermaid/./node_modules/d3-selection/src/create.js","webpack://mermaid/./node_modules/d3-selection/src/creator.js","webpack://mermaid/./node_modules/d3-selection/src/index.js","webpack://mermaid/./node_modules/d3-selection/src/local.js","webpack://mermaid/./node_modules/d3-selection/src/matcher.js","webpack://mermaid/./node_modules/d3-selection/src/namespace.js","webpack://mermaid/./node_modules/d3-selection/src/namespaces.js","webpack://mermaid/./node_modules/d3-selection/src/pointer.js","webpack://mermaid/./node_modules/d3-selection/src/pointers.js","webpack://mermaid/./node_modules/d3-selection/src/select.js","webpack://mermaid/./node_modules/d3-selection/src/selectAll.js","webpack://mermaid/./node_modules/d3-selection/src/selection/append.js","webpack://mermaid/./node_modules/d3-selection/src/selection/attr.js","webpack://mermaid/./node_modules/d3-selection/src/selection/call.js","webpack://mermaid/./node_modules/d3-selection/src/selection/classed.js","webpack://mermaid/./node_modules/d3-selection/src/selection/clone.js","webpack://mermaid/./node_modules/d3-selection/src/selection/data.js","webpack://mermaid/./node_modules/d3-selection/src/selection/datum.js","webpack://mermaid/./node_modules/d3-selection/src/selection/dispatch.js","webpack://mermaid/./node_modules/d3-selection/src/selection/each.js","webpack://mermaid/./node_modules/d3-selection/src/selection/empty.js","webpack://mermaid/./node_modules/d3-selection/src/selection/enter.js","webpack://mermaid/./node_modules/d3-selection/src/selection/exit.js","webpack://mermaid/./node_modules/d3-selection/src/selection/filter.js","webpack://mermaid/./node_modules/d3-selection/src/selection/html.js","webpack://mermaid/./node_modules/d3-selection/src/selection/index.js","webpack://mermaid/./node_modules/d3-selection/src/selection/insert.js","webpack://mermaid/./node_modules/d3-selection/src/selection/iterator.js","webpack://mermaid/./node_modules/d3-selection/src/selection/join.js","webpack://mermaid/./node_modules/d3-selection/src/selection/lower.js","webpack://mermaid/./node_modules/d3-selection/src/selection/merge.js","webpack://mermaid/./node_modules/d3-selection/src/selection/node.js","webpack://mermaid/./node_modules/d3-selection/src/selection/nodes.js","webpack://mermaid/./node_modules/d3-selection/src/selection/on.js","webpack://mermaid/./node_modules/d3-selection/src/selection/order.js","webpack://mermaid/./node_modules/d3-selection/src/selection/property.js","webpack://mermaid/./node_modules/d3-selection/src/selection/raise.js","webpack://mermaid/./node_modules/d3-selection/src/selection/remove.js","webpack://mermaid/./node_modules/d3-selection/src/selection/select.js","webpack://mermaid/./node_modules/d3-selection/src/selection/selectAll.js","webpack://mermaid/./node_modules/d3-selection/src/selection/selectChild.js","webpack://mermaid/./node_modules/d3-selection/src/selection/selectChildren.js","webpack://mermaid/./node_modules/d3-selection/src/selection/size.js","webpack://mermaid/./node_modules/d3-selection/src/selection/sort.js","webpack://mermaid/./node_modules/d3-selection/src/selection/sparse.js","webpack://mermaid/./node_modules/d3-selection/src/selection/style.js","webpack://mermaid/./node_modules/d3-selection/src/selection/text.js","webpack://mermaid/./node_modules/d3-selection/src/selector.js","webpack://mermaid/./node_modules/d3-selection/src/selectorAll.js","webpack://mermaid/./node_modules/d3-selection/src/sourceEvent.js","webpack://mermaid/./node_modules/d3-selection/src/window.js","webpack://mermaid/./node_modules/d3-shape/src/arc.js","webpack://mermaid/./node_modules/d3-shape/src/area.js","webpack://mermaid/./node_modules/d3-shape/src/areaRadial.js","webpack://mermaid/./node_modules/d3-shape/src/array.js","webpack://mermaid/./node_modules/d3-shape/src/constant.js","webpack://mermaid/./node_modules/d3-shape/src/curve/basis.js","webpack://mermaid/./node_modules/d3-shape/src/curve/basisClosed.js","webpack://mermaid/./node_modules/d3-shape/src/curve/basisOpen.js","webpack://mermaid/./node_modules/d3-shape/src/curve/bump.js","webpack://mermaid/./node_modules/d3-shape/src/curve/bundle.js","webpack://mermaid/./node_modules/d3-shape/src/curve/cardinal.js","webpack://mermaid/./node_modules/d3-shape/src/curve/cardinalClosed.js","webpack://mermaid/./node_modules/d3-shape/src/curve/cardinalOpen.js","webpack://mermaid/./node_modules/d3-shape/src/curve/catmullRom.js","webpack://mermaid/./node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack://mermaid/./node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack://mermaid/./node_modules/d3-shape/src/curve/linear.js","webpack://mermaid/./node_modules/d3-shape/src/curve/linearClosed.js","webpack://mermaid/./node_modules/d3-shape/src/curve/monotone.js","webpack://mermaid/./node_modules/d3-shape/src/curve/natural.js","webpack://mermaid/./node_modules/d3-shape/src/curve/radial.js","webpack://mermaid/./node_modules/d3-shape/src/curve/step.js","webpack://mermaid/./node_modules/d3-shape/src/descending.js","webpack://mermaid/./node_modules/d3-shape/src/identity.js","webpack://mermaid/./node_modules/d3-shape/src/index.js","webpack://mermaid/./node_modules/d3-shape/src/line.js","webpack://mermaid/./node_modules/d3-shape/src/lineRadial.js","webpack://mermaid/./node_modules/d3-shape/src/link/index.js","webpack://mermaid/./node_modules/d3-shape/src/math.js","webpack://mermaid/./node_modules/d3-shape/src/noop.js","webpack://mermaid/./node_modules/d3-shape/src/offset/diverging.js","webpack://mermaid/./node_modules/d3-shape/src/offset/expand.js","webpack://mermaid/./node_modules/d3-shape/src/offset/none.js","webpack://mermaid/./node_modules/d3-shape/src/offset/silhouette.js","webpack://mermaid/./node_modules/d3-shape/src/offset/wiggle.js","webpack://mermaid/./node_modules/d3-shape/src/order/appearance.js","webpack://mermaid/./node_modules/d3-shape/src/order/ascending.js","webpack://mermaid/./node_modules/d3-shape/src/order/descending.js","webpack://mermaid/./node_modules/d3-shape/src/order/insideOut.js","webpack://mermaid/./node_modules/d3-shape/src/order/none.js","webpack://mermaid/./node_modules/d3-shape/src/order/reverse.js","webpack://mermaid/./node_modules/d3-shape/src/pie.js","webpack://mermaid/./node_modules/d3-shape/src/point.js","webpack://mermaid/./node_modules/d3-shape/src/pointRadial.js","webpack://mermaid/./node_modules/d3-shape/src/stack.js","webpack://mermaid/./node_modules/d3-shape/src/symbol.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/circle.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/cross.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/diamond.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/square.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/star.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/triangle.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/wye.js","webpack://mermaid/./node_modules/d3-time-format/src/defaultLocale.js","webpack://mermaid/./node_modules/d3-time-format/src/index.js","webpack://mermaid/./node_modules/d3-time-format/src/isoFormat.js","webpack://mermaid/./node_modules/d3-time-format/src/isoParse.js","webpack://mermaid/./node_modules/d3-time-format/src/locale.js","webpack://mermaid/./node_modules/d3-time/src/day.js","webpack://mermaid/./node_modules/d3-time/src/duration.js","webpack://mermaid/./node_modules/d3-time/src/hour.js","webpack://mermaid/./node_modules/d3-time/src/index.js","webpack://mermaid/./node_modules/d3-time/src/interval.js","webpack://mermaid/./node_modules/d3-time/src/millisecond.js","webpack://mermaid/./node_modules/d3-time/src/minute.js","webpack://mermaid/./node_modules/d3-time/src/month.js","webpack://mermaid/./node_modules/d3-time/src/second.js","webpack://mermaid/./node_modules/d3-time/src/ticks.js","webpack://mermaid/./node_modules/d3-time/src/utcDay.js","webpack://mermaid/./node_modules/d3-time/src/utcHour.js","webpack://mermaid/./node_modules/d3-time/src/utcMinute.js","webpack://mermaid/./node_modules/d3-time/src/utcMonth.js","webpack://mermaid/./node_modules/d3-time/src/utcWeek.js","webpack://mermaid/./node_modules/d3-time/src/utcYear.js","webpack://mermaid/./node_modules/d3-time/src/week.js","webpack://mermaid/./node_modules/d3-time/src/year.js","webpack://mermaid/./node_modules/d3-timer/src/index.js","webpack://mermaid/./node_modules/d3-timer/src/interval.js","webpack://mermaid/./node_modules/d3-timer/src/timeout.js","webpack://mermaid/./node_modules/d3-timer/src/timer.js","webpack://mermaid/./node_modules/d3-transition/src/active.js","webpack://mermaid/./node_modules/d3-transition/src/index.js","webpack://mermaid/./node_modules/d3-transition/src/interrupt.js","webpack://mermaid/./node_modules/d3-transition/src/selection/index.js","webpack://mermaid/./node_modules/d3-transition/src/selection/interrupt.js","webpack://mermaid/./node_modules/d3-transition/src/selection/transition.js","webpack://mermaid/./node_modules/d3-transition/src/transition/attr.js","webpack://mermaid/./node_modules/d3-transition/src/transition/attrTween.js","webpack://mermaid/./node_modules/d3-transition/src/transition/delay.js","webpack://mermaid/./node_modules/d3-transition/src/transition/duration.js","webpack://mermaid/./node_modules/d3-transition/src/transition/ease.js","webpack://mermaid/./node_modules/d3-transition/src/transition/easeVarying.js","webpack://mermaid/./node_modules/d3-transition/src/transition/end.js","webpack://mermaid/./node_modules/d3-transition/src/transition/filter.js","webpack://mermaid/./node_modules/d3-transition/src/transition/index.js","webpack://mermaid/./node_modules/d3-transition/src/transition/interpolate.js","webpack://mermaid/./node_modules/d3-transition/src/transition/merge.js","webpack://mermaid/./node_modules/d3-transition/src/transition/on.js","webpack://mermaid/./node_modules/d3-transition/src/transition/remove.js","webpack://mermaid/./node_modules/d3-transition/src/transition/schedule.js","webpack://mermaid/./node_modules/d3-transition/src/transition/select.js","webpack://mermaid/./node_modules/d3-transition/src/transition/selectAll.js","webpack://mermaid/./node_modules/d3-transition/src/transition/selection.js","webpack://mermaid/./node_modules/d3-transition/src/transition/style.js","webpack://mermaid/./node_modules/d3-transition/src/transition/styleTween.js","webpack://mermaid/./node_modules/d3-transition/src/transition/text.js","webpack://mermaid/./node_modules/d3-transition/src/transition/textTween.js","webpack://mermaid/./node_modules/d3-transition/src/transition/transition.js","webpack://mermaid/./node_modules/d3-transition/src/transition/tween.js","webpack://mermaid/./node_modules/d3-zoom/src/constant.js","webpack://mermaid/./node_modules/d3-zoom/src/event.js","webpack://mermaid/./node_modules/d3-zoom/src/index.js","webpack://mermaid/./node_modules/d3-zoom/src/noevent.js","webpack://mermaid/./node_modules/d3-zoom/src/transform.js","webpack://mermaid/./node_modules/d3-zoom/src/zoom.js","webpack://mermaid/./node_modules/d3/src/index.js","webpack://mermaid/./node_modules/delaunator/index.js","webpack://mermaid/./node_modules/internmap/src/index.js","webpack://mermaid/./node_modules/khroma/dist/channels/index.js","webpack://mermaid/./node_modules/khroma/dist/channels/reusable.js","webpack://mermaid/./node_modules/khroma/dist/channels/type.js","webpack://mermaid/./node_modules/khroma/dist/color/hex.js","webpack://mermaid/./node_modules/khroma/dist/color/hsl.js","webpack://mermaid/./node_modules/khroma/dist/color/index.js","webpack://mermaid/./node_modules/khroma/dist/color/keyword.js","webpack://mermaid/./node_modules/khroma/dist/color/rgb.js","webpack://mermaid/./node_modules/khroma/dist/constants.js","webpack://mermaid/./node_modules/khroma/dist/methods/adjust.js","webpack://mermaid/./node_modules/khroma/dist/methods/adjust_channel.js","webpack://mermaid/./node_modules/khroma/dist/methods/change.js","webpack://mermaid/./node_modules/khroma/dist/methods/darken.js","webpack://mermaid/./node_modules/khroma/dist/methods/invert.js","webpack://mermaid/./node_modules/khroma/dist/methods/lighten.js","webpack://mermaid/./node_modules/khroma/dist/methods/mix.js","webpack://mermaid/./node_modules/khroma/dist/methods/rgba.js","webpack://mermaid/./node_modules/khroma/dist/utils/channel.js","webpack://mermaid/./node_modules/khroma/dist/utils/index.js","webpack://mermaid/./node_modules/khroma/dist/utils/lang.js","webpack://mermaid/./node_modules/khroma/dist/utils/unit.js","webpack://mermaid/./node_modules/robust-predicates/esm/incircle.js","webpack://mermaid/./node_modules/robust-predicates/esm/insphere.js","webpack://mermaid/./node_modules/robust-predicates/esm/orient2d.js","webpack://mermaid/./node_modules/robust-predicates/esm/orient3d.js","webpack://mermaid/./node_modules/robust-predicates/esm/util.js","webpack://mermaid/./node_modules/robust-predicates/index.js","webpack://mermaid/./node_modules/stylis/src/Enum.js","webpack://mermaid/./node_modules/stylis/src/Parser.js","webpack://mermaid/./node_modules/stylis/src/Serializer.js","webpack://mermaid/./node_modules/stylis/src/Tokenizer.js","webpack://mermaid/./node_modules/stylis/src/Utility.js","webpack://mermaid/webpack/bootstrap","webpack://mermaid/webpack/runtime/compat get default export","webpack://mermaid/webpack/runtime/define property getters","webpack://mermaid/webpack/runtime/global","webpack://mermaid/webpack/runtime/hasOwnProperty shorthand","webpack://mermaid/webpack/runtime/make namespace object","webpack://mermaid/webpack/runtime/node module decorator","webpack://mermaid/webpack/before-startup","webpack://mermaid/webpack/startup","webpack://mermaid/webpack/after-startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mermaid\"] = factory();\n\telse\n\t\troot[\"mermaid\"] = factory();\n})(typeof self !== \"undefined\" ? self : this, () => {\nreturn ","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,6],$V1=[1,7],$V2=[1,8],$V3=[1,9],$V4=[1,16],$V5=[1,11],$V6=[1,12],$V7=[1,13],$V8=[1,14],$V9=[1,15],$Va=[1,27],$Vb=[1,33],$Vc=[1,34],$Vd=[1,35],$Ve=[1,36],$Vf=[1,37],$Vg=[1,72],$Vh=[1,73],$Vi=[1,74],$Vj=[1,75],$Vk=[1,76],$Vl=[1,77],$Vm=[1,78],$Vn=[1,38],$Vo=[1,39],$Vp=[1,40],$Vq=[1,41],$Vr=[1,42],$Vs=[1,43],$Vt=[1,44],$Vu=[1,45],$Vv=[1,46],$Vw=[1,47],$Vx=[1,48],$Vy=[1,49],$Vz=[1,50],$VA=[1,51],$VB=[1,52],$VC=[1,53],$VD=[1,54],$VE=[1,55],$VF=[1,56],$VG=[1,57],$VH=[1,59],$VI=[1,60],$VJ=[1,61],$VK=[1,62],$VL=[1,63],$VM=[1,64],$VN=[1,65],$VO=[1,66],$VP=[1,67],$VQ=[1,68],$VR=[1,69],$VS=[24,52],$VT=[24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],$VU=[15,24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],$VV=[1,94],$VW=[1,95],$VX=[1,96],$VY=[1,97],$VZ=[15,24,52],$V_=[7,8,9,10,18,22,25,26,27,28],$V$=[15,24,43,52],$V01=[15,24,43,52,86,87,89,90],$V11=[15,43],$V21=[44,46,47,48,49,50,51,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"mermaidDoc\":4,\"direction\":5,\"directive\":6,\"direction_tb\":7,\"direction_bt\":8,\"direction_rl\":9,\"direction_lr\":10,\"graphConfig\":11,\"openDirective\":12,\"typeDirective\":13,\"closeDirective\":14,\"NEWLINE\":15,\":\":16,\"argDirective\":17,\"open_directive\":18,\"type_directive\":19,\"arg_directive\":20,\"close_directive\":21,\"C4_CONTEXT\":22,\"statements\":23,\"EOF\":24,\"C4_CONTAINER\":25,\"C4_COMPONENT\":26,\"C4_DYNAMIC\":27,\"C4_DEPLOYMENT\":28,\"otherStatements\":29,\"diagramStatements\":30,\"otherStatement\":31,\"title\":32,\"accDescription\":33,\"acc_title\":34,\"acc_title_value\":35,\"acc_descr\":36,\"acc_descr_value\":37,\"acc_descr_multiline_value\":38,\"boundaryStatement\":39,\"boundaryStartStatement\":40,\"boundaryStopStatement\":41,\"boundaryStart\":42,\"LBRACE\":43,\"ENTERPRISE_BOUNDARY\":44,\"attributes\":45,\"SYSTEM_BOUNDARY\":46,\"BOUNDARY\":47,\"CONTAINER_BOUNDARY\":48,\"NODE\":49,\"NODE_L\":50,\"NODE_R\":51,\"RBRACE\":52,\"diagramStatement\":53,\"PERSON\":54,\"PERSON_EXT\":55,\"SYSTEM\":56,\"SYSTEM_DB\":57,\"SYSTEM_QUEUE\":58,\"SYSTEM_EXT\":59,\"SYSTEM_EXT_DB\":60,\"SYSTEM_EXT_QUEUE\":61,\"CONTAINER\":62,\"CONTAINER_DB\":63,\"CONTAINER_QUEUE\":64,\"CONTAINER_EXT\":65,\"CONTAINER_EXT_DB\":66,\"CONTAINER_EXT_QUEUE\":67,\"COMPONENT\":68,\"COMPONENT_DB\":69,\"COMPONENT_QUEUE\":70,\"COMPONENT_EXT\":71,\"COMPONENT_EXT_DB\":72,\"COMPONENT_EXT_QUEUE\":73,\"REL\":74,\"BIREL\":75,\"REL_U\":76,\"REL_D\":77,\"REL_L\":78,\"REL_R\":79,\"REL_B\":80,\"REL_INDEX\":81,\"UPDATE_EL_STYLE\":82,\"UPDATE_REL_STYLE\":83,\"UPDATE_LAYOUT_CONFIG\":84,\"attribute\":85,\"STR\":86,\"STR_KEY\":87,\"STR_VALUE\":88,\"ATTRIBUTE\":89,\"ATTRIBUTE_EMPTY\":90,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",7:\"direction_tb\",8:\"direction_bt\",9:\"direction_rl\",10:\"direction_lr\",15:\"NEWLINE\",16:\":\",18:\"open_directive\",19:\"type_directive\",20:\"arg_directive\",21:\"close_directive\",22:\"C4_CONTEXT\",24:\"EOF\",25:\"C4_CONTAINER\",26:\"C4_COMPONENT\",27:\"C4_DYNAMIC\",28:\"C4_DEPLOYMENT\",32:\"title\",33:\"accDescription\",34:\"acc_title\",35:\"acc_title_value\",36:\"acc_descr\",37:\"acc_descr_value\",38:\"acc_descr_multiline_value\",43:\"LBRACE\",44:\"ENTERPRISE_BOUNDARY\",46:\"SYSTEM_BOUNDARY\",47:\"BOUNDARY\",48:\"CONTAINER_BOUNDARY\",49:\"NODE\",50:\"NODE_L\",51:\"NODE_R\",52:\"RBRACE\",54:\"PERSON\",55:\"PERSON_EXT\",56:\"SYSTEM\",57:\"SYSTEM_DB\",58:\"SYSTEM_QUEUE\",59:\"SYSTEM_EXT\",60:\"SYSTEM_EXT_DB\",61:\"SYSTEM_EXT_QUEUE\",62:\"CONTAINER\",63:\"CONTAINER_DB\",64:\"CONTAINER_QUEUE\",65:\"CONTAINER_EXT\",66:\"CONTAINER_EXT_DB\",67:\"CONTAINER_EXT_QUEUE\",68:\"COMPONENT\",69:\"COMPONENT_DB\",70:\"COMPONENT_QUEUE\",71:\"COMPONENT_EXT\",72:\"COMPONENT_EXT_DB\",73:\"COMPONENT_EXT_QUEUE\",74:\"REL\",75:\"BIREL\",76:\"REL_U\",77:\"REL_D\",78:\"REL_L\",79:\"REL_R\",80:\"REL_B\",81:\"REL_INDEX\",82:\"UPDATE_EL_STYLE\",83:\"UPDATE_REL_STYLE\",84:\"UPDATE_LAYOUT_CONFIG\",86:\"STR\",87:\"STR_KEY\",88:\"STR_VALUE\",89:\"ATTRIBUTE\",90:\"ATTRIBUTE_EMPTY\"},\nproductions_: [0,[3,1],[3,1],[3,2],[5,1],[5,1],[5,1],[5,1],[4,1],[6,4],[6,6],[12,1],[13,1],[17,1],[14,1],[11,4],[11,4],[11,4],[11,4],[11,4],[23,1],[23,1],[23,2],[29,1],[29,2],[29,3],[31,1],[31,1],[31,2],[31,2],[31,1],[39,3],[40,3],[40,3],[40,4],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[41,1],[30,1],[30,2],[30,3],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,1],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[45,1],[45,2],[85,1],[85,2],[85,1],[85,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 4:\n yy.setDirection('TB');\nbreak;\ncase 5:\n yy.setDirection('BT');\nbreak;\ncase 6:\n yy.setDirection('RL');\nbreak;\ncase 7:\n yy.setDirection('LR');\nbreak;\ncase 11:\n console.log(\"open_directive: \", $$[$0]); yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 12:\n \nbreak;\ncase 13:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); console.log(\"arg_directive: \", $$[$0]); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 14:\n console.log(\"close_directive: \", $$[$0]); yy.parseDirective('}%%', 'close_directive', 'c4Context'); \nbreak;\ncase 15: case 16: case 17: case 18: case 19:\nyy.setC4Type($$[$0-3])\nbreak;\ncase 26:\nyy.setTitle($$[$0].substring(6));this.$=$$[$0].substring(6);\nbreak;\ncase 27:\nyy.setAccDescription($$[$0].substring(15));this.$=$$[$0].substring(15);\nbreak;\ncase 28:\n this.$=$$[$0].trim();yy.setTitle(this.$); \nbreak;\ncase 29: case 30:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 35: case 36:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); $$[$0].splice(2, 0, 'ENTERPRISE'); yy.addPersonOrSystemBoundary(...$$[$0]); this.$=$$[$0];\nbreak;\ncase 37:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystemBoundary(...$$[$0]); this.$=$$[$0];\nbreak;\ncase 38:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); $$[$0].splice(2, 0, 'CONTAINER'); yy.addContainerBoundary(...$$[$0]); this.$=$$[$0];\nbreak;\ncase 39:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addDeploymentNode('node', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 40:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addDeploymentNode('nodeL', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 41:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addDeploymentNode('nodeR', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 42:\n yy.popBoundaryParseStack() \nbreak;\ncase 46:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('person', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 47:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('external_person', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 48:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('system', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 49:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('system_db', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 50:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('system_queue', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 51:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('external_system', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 52:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('external_system_db', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 53:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('external_system_queue', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 54:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('container', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 55:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('container_db', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 56:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('container_queue', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 57:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('external_container', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 58:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('external_container_db', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 59:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('external_container_queue', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 60:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('component', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 61:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('component_db', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 62:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('component_queue', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 63:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('external_component', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 64:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('external_component_db', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 65:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('external_component_queue', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 67:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 68:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('birel', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 69:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel_u', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 70:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel_d', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 71:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel_l', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 72:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel_r', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 73:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel_b', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 74:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); $$[$0].splice(0, 1); yy.addRel('rel', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 75:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.updateElStyle('update_el_style', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 76:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.updateRelStyle('update_rel_style', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 77:\nconsole.log($$[$0-1],JSON.stringify($$[$0])); yy.updateLayoutConfig('update_layout_config', ...$$[$0]); this.$=$$[$0];\nbreak;\ncase 78:\n console.log('PUSH ATTRIBUTE: ', $$[$0]); this.$ = [$$[$0]]; \nbreak;\ncase 79:\n console.log('PUSH ATTRIBUTE: ', $$[$0-1]); $$[$0].unshift($$[$0-1]); this.$=$$[$0];\nbreak;\ncase 80: case 82:\n this.$ = $$[$0].trim(); \nbreak;\ncase 81:\n console.log('kv: ', $$[$0-1], $$[$0]); let kv={}; kv[$$[$0-1].trim()]=$$[$0].trim(); this.$=kv; \nbreak;\ncase 83:\n this.$ = \"\"; \nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:4,7:$V0,8:$V1,9:$V2,10:$V3,11:5,12:10,18:$V4,22:$V5,25:$V6,26:$V7,27:$V8,28:$V9},{1:[3]},{1:[2,1]},{1:[2,2]},{3:17,4:2,5:3,6:4,7:$V0,8:$V1,9:$V2,10:$V3,11:5,12:10,18:$V4,22:$V5,25:$V6,26:$V7,27:$V8,28:$V9},{1:[2,8]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{1:[2,7]},{13:18,19:[1,19]},{15:[1,20]},{15:[1,21]},{15:[1,22]},{15:[1,23]},{15:[1,24]},{19:[2,11]},{1:[2,3]},{14:25,16:[1,26],21:$Va},o([16,21],[2,12]),{23:28,29:29,30:30,31:31,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{23:79,29:29,30:30,31:31,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{23:80,29:29,30:30,31:31,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{23:81,29:29,30:30,31:31,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{23:82,29:29,30:30,31:31,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{15:[1,83]},{17:84,20:[1,85]},{15:[2,14]},{24:[1,86]},o($VS,[2,20],{53:32,39:58,40:70,42:71,30:87,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR}),o($VS,[2,21]),o($VT,[2,23],{15:[1,88]}),o($VS,[2,43],{15:[1,89]}),o($VU,[2,26]),o($VU,[2,27]),{35:[1,90]},{37:[1,91]},o($VU,[2,30]),{45:92,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:98,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:99,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:100,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:101,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:102,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:103,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:104,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:105,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:106,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:107,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:108,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:109,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:110,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:111,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:112,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:113,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:114,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:115,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:116,85:93,86:$VV,87:$VW,89:$VX,90:$VY},o($VZ,[2,66]),{45:117,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:118,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:119,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:120,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:121,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:122,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:123,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:124,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:125,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:126,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:127,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{30:128,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{15:[1,130],43:[1,129]},{45:131,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:132,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:133,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:134,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:135,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:136,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:137,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{24:[1,138]},{24:[1,139]},{24:[1,140]},{24:[1,141]},o($V_,[2,9]),{14:142,21:$Va},{21:[2,13]},{1:[2,15]},o($VS,[2,22]),o($VT,[2,24],{31:31,29:143,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf}),o($VS,[2,44],{29:29,30:30,31:31,53:32,39:58,40:70,42:71,23:144,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR}),o($VU,[2,28]),o($VU,[2,29]),o($VZ,[2,46]),o($V$,[2,78],{85:93,45:145,86:$VV,87:$VW,89:$VX,90:$VY}),o($V01,[2,80]),{88:[1,146]},o($V01,[2,82]),o($V01,[2,83]),o($VZ,[2,47]),o($VZ,[2,48]),o($VZ,[2,49]),o($VZ,[2,50]),o($VZ,[2,51]),o($VZ,[2,52]),o($VZ,[2,53]),o($VZ,[2,54]),o($VZ,[2,55]),o($VZ,[2,56]),o($VZ,[2,57]),o($VZ,[2,58]),o($VZ,[2,59]),o($VZ,[2,60]),o($VZ,[2,61]),o($VZ,[2,62]),o($VZ,[2,63]),o($VZ,[2,64]),o($VZ,[2,65]),o($VZ,[2,67]),o($VZ,[2,68]),o($VZ,[2,69]),o($VZ,[2,70]),o($VZ,[2,71]),o($VZ,[2,72]),o($VZ,[2,73]),o($VZ,[2,74]),o($VZ,[2,75]),o($VZ,[2,76]),o($VZ,[2,77]),{41:147,52:[1,148]},{15:[1,149]},{43:[1,150]},o($V11,[2,35]),o($V11,[2,36]),o($V11,[2,37]),o($V11,[2,38]),o($V11,[2,39]),o($V11,[2,40]),o($V11,[2,41]),{1:[2,16]},{1:[2,17]},{1:[2,18]},{1:[2,19]},{15:[1,151]},o($VT,[2,25]),o($VS,[2,45]),o($V$,[2,79]),o($V01,[2,81]),o($VZ,[2,31]),o($VZ,[2,42]),o($V21,[2,32]),o($V21,[2,33],{15:[1,152]}),o($V_,[2,10]),o($V21,[2,34])],\ndefaultActions: {2:[2,1],3:[2,2],5:[2,8],6:[2,4],7:[2,5],8:[2,6],9:[2,7],16:[2,11],17:[2,3],27:[2,14],85:[2,13],86:[2,15],138:[2,16],139:[2,17],140:[2,18],141:[2,19]},\nparseError: function parseError (str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer.lex() || EOF;\n if (typeof token !== 'number') {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState () {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules () {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState (n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 18; \nbreak;\ncase 1:return 7;\nbreak;\ncase 2:return 8;\nbreak;\ncase 3:return 9;\nbreak;\ncase 4:return 10;\nbreak;\ncase 5: this.begin('type_directive'); return 19; \nbreak;\ncase 6: this.popState(); this.begin('arg_directive'); return 16; \nbreak;\ncase 7: this.popState(); this.popState(); return 21; \nbreak;\ncase 8:return 20;\nbreak;\ncase 9:return 32;\nbreak;\ncase 10:return 33;\nbreak;\ncase 11: this.begin(\"acc_title\");return 34; \nbreak;\ncase 12: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 13: this.begin(\"acc_descr\");return 36; \nbreak;\ncase 14: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 15: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 16: this.popState(); \nbreak;\ncase 17:return \"acc_descr_multiline_value\";\nbreak;\ncase 18:/* skip comments */\nbreak;\ncase 19:c /* skip comments */\nbreak;\ncase 20:return 15;\nbreak;\ncase 21:/* skip whitespace */\nbreak;\ncase 22:return 22;\nbreak;\ncase 23:return 25;\nbreak;\ncase 24:return 26;\nbreak;\ncase 25:return 27;\nbreak;\ncase 26:return 28;\nbreak;\ncase 27: this.begin(\"person_ext\"); console.log('begin person_ext'); return 55;\nbreak;\ncase 28: this.begin(\"person\"); console.log('begin person'); return 54;\nbreak;\ncase 29: this.begin(\"system_ext_queue\"); console.log('begin system_ext_queue'); return 61;\nbreak;\ncase 30: this.begin(\"system_ext_db\"); console.log('begin system_ext_db'); return 60;\nbreak;\ncase 31: this.begin(\"system_ext\"); console.log('begin system_ext'); return 59;\nbreak;\ncase 32: this.begin(\"system_queue\"); console.log('begin system_queue'); return 58;\nbreak;\ncase 33: this.begin(\"system_db\"); console.log('begin system_db'); return 57;\nbreak;\ncase 34: this.begin(\"system\"); console.log('begin system'); return 56;\nbreak;\ncase 35: this.begin(\"boundary\"); console.log('begin boundary'); return 47;\nbreak;\ncase 36: this.begin(\"enterprise_boundary\"); console.log('begin enterprise_boundary'); return 44;\nbreak;\ncase 37: this.begin(\"system_boundary\"); console.log('begin system_boundary'); return 46;\nbreak;\ncase 38: this.begin(\"container_ext_queue\"); console.log('begin container_ext_queue'); return 67;\nbreak;\ncase 39: this.begin(\"container_ext_db\"); console.log('begin container_ext_db'); return 66;\nbreak;\ncase 40: this.begin(\"container_ext\"); console.log('begin container_ext'); return 65;\nbreak;\ncase 41: this.begin(\"container_queue\"); console.log('begin container_queue'); return 64;\nbreak;\ncase 42: this.begin(\"container_db\"); console.log('begin container_db'); return 63;\nbreak;\ncase 43: this.begin(\"container\"); console.log('begin container'); return 62;\nbreak;\ncase 44: this.begin(\"container_boundary\"); console.log('begin container_boundary'); return 48;\nbreak;\ncase 45: this.begin(\"component_ext_queue\"); console.log('begin component_ext_queue'); return 73;\nbreak;\ncase 46: this.begin(\"component_ext_db\"); console.log('begin component_ext_db'); return 72;\nbreak;\ncase 47: this.begin(\"component_ext\"); console.log('begin component_ext'); return 71;\nbreak;\ncase 48: this.begin(\"component_queue\"); console.log('begin component_queue'); return 70;\nbreak;\ncase 49: this.begin(\"component_db\"); console.log('begin component_db'); return 69;\nbreak;\ncase 50: this.begin(\"component\"); console.log('begin component'); return 68;\nbreak;\ncase 51: this.begin(\"node\"); console.log('begin node'); return 49;\nbreak;\ncase 52: this.begin(\"node\"); console.log('begin node'); return 49;\nbreak;\ncase 53: this.begin(\"node_l\"); console.log('begin node_l'); return 50;\nbreak;\ncase 54: this.begin(\"node_r\"); console.log('begin node_r'); return 51;\nbreak;\ncase 55: this.begin(\"rel\"); console.log('begin rel'); return 74;\nbreak;\ncase 56: this.begin(\"birel\"); console.log('begin birel'); return 75;\nbreak;\ncase 57: this.begin(\"rel_u\"); console.log('begin rel_u'); return 76;\nbreak;\ncase 58: this.begin(\"rel_u\"); console.log('begin rel_u'); return 76;\nbreak;\ncase 59: this.begin(\"rel_d\"); console.log('begin rel_d'); return 77;\nbreak;\ncase 60: this.begin(\"rel_d\"); console.log('begin rel_d'); return 77;\nbreak;\ncase 61: this.begin(\"rel_l\"); console.log('begin rel_l'); return 78;\nbreak;\ncase 62: this.begin(\"rel_l\"); console.log('begin rel_l'); return 78;\nbreak;\ncase 63: this.begin(\"rel_r\"); console.log('begin rel_r'); return 79;\nbreak;\ncase 64: this.begin(\"rel_r\"); console.log('begin rel_r'); return 79;\nbreak;\ncase 65: this.begin(\"rel_b\"); console.log('begin rel_b'); return 80;\nbreak;\ncase 66: this.begin(\"rel_index\"); console.log('begin rel_index'); return 81;\nbreak;\ncase 67: this.begin(\"update_el_style\"); console.log('begin update_el_style'); return 82;\nbreak;\ncase 68: this.begin(\"update_rel_style\"); console.log('begin update_rel_style'); return 83;\nbreak;\ncase 69: this.begin(\"update_layout_config\"); console.log('begin update_layout_config'); return 84;\nbreak;\ncase 70:return \"EOF_IN_STRUCT\";\nbreak;\ncase 71: console.log('begin attribute with ATTRIBUTE_EMPTY'); this.begin(\"attribute\"); return \"ATTRIBUTE_EMPTY\";\nbreak;\ncase 72: console.log('begin attribute'); this.begin(\"attribute\"); \nbreak;\ncase 73: console.log('STOP attribute'); this.popState();console.log('STOP diagram'); this.popState();\nbreak;\ncase 74: console.log(',,'); return 90;\nbreak;\ncase 75: console.log(','); \nbreak;\ncase 76: console.log('ATTRIBUTE_EMPTY'); return 90;\nbreak;\ncase 77: console.log('begin string'); this.begin(\"string\");\nbreak;\ncase 78: console.log('STOP string'); this.popState(); \nbreak;\ncase 79: console.log('STR'); return \"STR\";\nbreak;\ncase 80: console.log('begin string_kv'); this.begin(\"string_kv\");\nbreak;\ncase 81: console.log('STR_KEY'); this.begin(\"string_kv_key\"); return \"STR_KEY\";\nbreak;\ncase 82: console.log('begin string_kv_value'); this.popState(); this.begin(\"string_kv_value\"); \nbreak;\ncase 83: console.log('STR_VALUE'); return \"STR_VALUE\";\nbreak;\ncase 84: console.log('STOP string_kv_value'); this.popState(); this.popState(); \nbreak;\ncase 85: console.log('not STR'); return \"STR\";\nbreak;\ncase 86: /* this.begin(\"lbrace\"); */ console.log('begin boundary block'); return \"LBRACE\";\nbreak;\ncase 87: /* this.popState(); */ console.log('STOP boundary block'); return \"RBRACE\";\nbreak;\ncase 88:return 'SPACE';\nbreak;\ncase 89:return 'EOL';\nbreak;\ncase 90:return 24;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/,/^(?:.*direction\\s+TB[^\\n]*)/,/^(?:.*direction\\s+BT[^\\n]*)/,/^(?:.*direction\\s+RL[^\\n]*)/,/^(?:.*direction\\s+LR[^\\n]*)/,/^(?:((?:(?!\\}%%)[^:.])*))/,/^(?::)/,/^(?:\\}%%)/,/^(?:((?:(?!\\}%%).|\\n)*))/,/^(?:title\\s[^#\\n;]+)/,/^(?:accDescription\\s[^#\\n;]+)/,/^(?:accTitle\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*\\{\\s*)/,/^(?:[\\}])/,/^(?:[^\\}]*)/,/^(?:%%(?!\\{)*[^\\n]*(\\r?\\n?)+)/,/^(?:%%[^\\n]*(\\r?\\n)*)/,/^(?:\\s*(\\r?\\n)+)/,/^(?:\\s+)/,/^(?:C4Context\\b)/,/^(?:C4Container\\b)/,/^(?:C4Component\\b)/,/^(?:C4Dynamic\\b)/,/^(?:C4Deployment\\b)/,/^(?:Person_Ext\\b)/,/^(?:Person\\b)/,/^(?:SystemQueue_Ext\\b)/,/^(?:SystemDb_Ext\\b)/,/^(?:System_Ext\\b)/,/^(?:SystemQueue\\b)/,/^(?:SystemDb\\b)/,/^(?:System\\b)/,/^(?:Boundary\\b)/,/^(?:Enterprise_Boundary\\b)/,/^(?:System_Boundary\\b)/,/^(?:ContainerQueue_Ext\\b)/,/^(?:ContainerDb_Ext\\b)/,/^(?:Container_Ext\\b)/,/^(?:ContainerQueue\\b)/,/^(?:ContainerDb\\b)/,/^(?:Container\\b)/,/^(?:Container_Boundary\\b)/,/^(?:ComponentQueue_Ext\\b)/,/^(?:ComponentDb_Ext\\b)/,/^(?:Component_Ext\\b)/,/^(?:ComponentQueue\\b)/,/^(?:ComponentDb\\b)/,/^(?:Component\\b)/,/^(?:Deployment_Node\\b)/,/^(?:Node\\b)/,/^(?:Node_L\\b)/,/^(?:Node_R\\b)/,/^(?:Rel\\b)/,/^(?:BiRel\\b)/,/^(?:Rel_Up\\b)/,/^(?:Rel_U\\b)/,/^(?:Rel_Down\\b)/,/^(?:Rel_D\\b)/,/^(?:Rel_Left\\b)/,/^(?:Rel_L\\b)/,/^(?:Rel_Right\\b)/,/^(?:Rel_R\\b)/,/^(?:Rel_Back\\b)/,/^(?:RelIndex\\b)/,/^(?:UpdateElementStyle\\b)/,/^(?:UpdateRelStyle\\b)/,/^(?:UpdateLayoutConfig\\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*[\"][\"])/,/^(?:[ ]*[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:[ ]*[\\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*[\"])/,/^(?:[^\"]+)/,/^(?:[\"])/,/^(?:[^,]+)/,/^(?:\\{)/,/^(?:\\})/,/^(?:[\\s]+)/,/^(?:[\\n\\r]+)/,/^(?:$)/],\nconditions: {\"acc_descr_multiline\":{\"rules\":[16,17],\"inclusive\":false},\"acc_descr\":{\"rules\":[14],\"inclusive\":false},\"acc_title\":{\"rules\":[12],\"inclusive\":false},\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[7,8],\"inclusive\":false},\"type_directive\":{\"rules\":[6,7],\"inclusive\":false},\"open_directive\":{\"rules\":[5],\"inclusive\":false},\"string_kv_value\":{\"rules\":[83,84],\"inclusive\":false},\"string_kv_key\":{\"rules\":[82],\"inclusive\":false},\"string_kv\":{\"rules\":[81],\"inclusive\":false},\"string\":{\"rules\":[78,79],\"inclusive\":false},\"attribute\":{\"rules\":[73,74,75,76,77,80,85],\"inclusive\":false},\"update_layout_config\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"update_rel_style\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"update_el_style\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"rel_b\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"rel_r\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"rel_l\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"rel_d\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"rel_u\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"rel_bi\":{\"rules\":[],\"inclusive\":false},\"rel\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"node_r\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"node_l\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"node\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"index\":{\"rules\":[],\"inclusive\":false},\"rel_index\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"component_ext_queue\":{\"rules\":[],\"inclusive\":false},\"component_ext_db\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"component_ext\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"component_queue\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"component_db\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"component\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"container_boundary\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"container_ext_queue\":{\"rules\":[],\"inclusive\":false},\"container_ext_db\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"container_ext\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"container_queue\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"container_db\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"container\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"birel\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"system_boundary\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"enterprise_boundary\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"boundary\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"system_ext_queue\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"system_ext_db\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"system_ext\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"system_queue\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"system_db\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"system\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"person_ext\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"person\":{\"rules\":[70,71,72,73],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,86,87,88,89,90],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,3],$V1=[1,7],$V2=[1,8],$V3=[1,9],$V4=[1,10],$V5=[1,13],$V6=[1,12],$V7=[1,16,25],$V8=[1,20],$V9=[1,31],$Va=[1,32],$Vb=[1,33],$Vc=[1,35],$Vd=[1,38],$Ve=[1,36],$Vf=[1,37],$Vg=[1,39],$Vh=[1,40],$Vi=[1,41],$Vj=[1,42],$Vk=[1,45],$Vl=[1,46],$Vm=[1,47],$Vn=[1,48],$Vo=[16,25],$Vp=[1,62],$Vq=[1,63],$Vr=[1,64],$Vs=[1,65],$Vt=[1,66],$Vu=[1,67],$Vv=[16,25,32,44,45,53,56,57,58,59,60,61,66,68],$Vw=[16,25,30,32,44,45,49,53,56,57,58,59,60,61,66,68,83,84,85,86],$Vx=[5,8,9,10,11,16,19,23,25],$Vy=[53,83,84,85,86],$Vz=[53,60,61,83,84,85,86],$VA=[53,56,57,58,59,83,84,85,86],$VB=[16,25,32],$VC=[1,99];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"mermaidDoc\":4,\"statments\":5,\"direction\":6,\"directive\":7,\"direction_tb\":8,\"direction_bt\":9,\"direction_rl\":10,\"direction_lr\":11,\"graphConfig\":12,\"openDirective\":13,\"typeDirective\":14,\"closeDirective\":15,\"NEWLINE\":16,\":\":17,\"argDirective\":18,\"open_directive\":19,\"type_directive\":20,\"arg_directive\":21,\"close_directive\":22,\"CLASS_DIAGRAM\":23,\"statements\":24,\"EOF\":25,\"statement\":26,\"className\":27,\"alphaNumToken\":28,\"classLiteralName\":29,\"GENERICTYPE\":30,\"relationStatement\":31,\"LABEL\":32,\"classStatement\":33,\"methodStatement\":34,\"annotationStatement\":35,\"clickStatement\":36,\"cssClassStatement\":37,\"acc_title\":38,\"acc_title_value\":39,\"acc_descr\":40,\"acc_descr_value\":41,\"acc_descr_multiline_value\":42,\"CLASS\":43,\"STYLE_SEPARATOR\":44,\"STRUCT_START\":45,\"members\":46,\"STRUCT_STOP\":47,\"ANNOTATION_START\":48,\"ANNOTATION_END\":49,\"MEMBER\":50,\"SEPARATOR\":51,\"relation\":52,\"STR\":53,\"relationType\":54,\"lineType\":55,\"AGGREGATION\":56,\"EXTENSION\":57,\"COMPOSITION\":58,\"DEPENDENCY\":59,\"LINE\":60,\"DOTTED_LINE\":61,\"CALLBACK\":62,\"LINK\":63,\"LINK_TARGET\":64,\"CLICK\":65,\"CALLBACK_NAME\":66,\"CALLBACK_ARGS\":67,\"HREF\":68,\"CSSCLASS\":69,\"commentToken\":70,\"textToken\":71,\"graphCodeTokens\":72,\"textNoTagsToken\":73,\"TAGSTART\":74,\"TAGEND\":75,\"==\":76,\"--\":77,\"PCT\":78,\"DEFAULT\":79,\"SPACE\":80,\"MINUS\":81,\"keywords\":82,\"UNICODE_TEXT\":83,\"NUM\":84,\"ALPHA\":85,\"BQUOTE_STR\":86,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"statments\",8:\"direction_tb\",9:\"direction_bt\",10:\"direction_rl\",11:\"direction_lr\",16:\"NEWLINE\",17:\":\",19:\"open_directive\",20:\"type_directive\",21:\"arg_directive\",22:\"close_directive\",23:\"CLASS_DIAGRAM\",25:\"EOF\",30:\"GENERICTYPE\",32:\"LABEL\",38:\"acc_title\",39:\"acc_title_value\",40:\"acc_descr\",41:\"acc_descr_value\",42:\"acc_descr_multiline_value\",43:\"CLASS\",44:\"STYLE_SEPARATOR\",45:\"STRUCT_START\",47:\"STRUCT_STOP\",48:\"ANNOTATION_START\",49:\"ANNOTATION_END\",50:\"MEMBER\",51:\"SEPARATOR\",53:\"STR\",56:\"AGGREGATION\",57:\"EXTENSION\",58:\"COMPOSITION\",59:\"DEPENDENCY\",60:\"LINE\",61:\"DOTTED_LINE\",62:\"CALLBACK\",63:\"LINK\",64:\"LINK_TARGET\",65:\"CLICK\",66:\"CALLBACK_NAME\",67:\"CALLBACK_ARGS\",68:\"HREF\",69:\"CSSCLASS\",72:\"graphCodeTokens\",74:\"TAGSTART\",75:\"TAGEND\",76:\"==\",77:\"--\",78:\"PCT\",79:\"DEFAULT\",80:\"SPACE\",81:\"MINUS\",82:\"keywords\",83:\"UNICODE_TEXT\",84:\"NUM\",85:\"ALPHA\",86:\"BQUOTE_STR\"},\nproductions_: [0,[3,1],[3,1],[3,1],[3,2],[6,1],[6,1],[6,1],[6,1],[4,1],[7,4],[7,6],[13,1],[14,1],[18,1],[15,1],[12,4],[24,1],[24,2],[24,3],[27,1],[27,1],[27,2],[27,2],[27,2],[26,1],[26,2],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,2],[26,2],[26,1],[33,2],[33,4],[33,5],[33,7],[35,4],[46,1],[46,2],[34,1],[34,2],[34,1],[34,1],[31,3],[31,4],[31,4],[31,5],[52,3],[52,2],[52,2],[52,1],[54,1],[54,1],[54,1],[54,1],[55,1],[55,1],[36,3],[36,4],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[37,3],[70,1],[70,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[73,1],[73,1],[73,1],[73,1],[28,1],[28,1],[28,1],[29,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 5:\n yy.setDirection('TB');\nbreak;\ncase 6:\n yy.setDirection('BT');\nbreak;\ncase 7:\n yy.setDirection('RL');\nbreak;\ncase 8:\n yy.setDirection('LR');\nbreak;\ncase 12:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 13:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 14:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 15:\n yy.parseDirective('}%%', 'close_directive', 'class'); \nbreak;\ncase 20: case 21:\n this.$=$$[$0]; \nbreak;\ncase 22:\n this.$=$$[$0-1]+$$[$0]; \nbreak;\ncase 23: case 24:\n this.$=$$[$0-1]+'~'+$$[$0]; \nbreak;\ncase 25:\n yy.addRelation($$[$0]); \nbreak;\ncase 26:\n $$[$0-1].title = yy.cleanupLabel($$[$0]); yy.addRelation($$[$0-1]); \nbreak;\ncase 34:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 35: case 36:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 37:\nyy.addClass($$[$0]);\nbreak;\ncase 38:\nyy.addClass($$[$0-2]);yy.setCssClass($$[$0-2], $$[$0]);\nbreak;\ncase 39:\n/*console.log($$[$0-3],JSON.stringify($$[$0-1]));*/yy.addClass($$[$0-3]);yy.addMembers($$[$0-3],$$[$0-1]);\nbreak;\ncase 40:\nyy.addClass($$[$0-5]);yy.setCssClass($$[$0-5], $$[$0-3]);yy.addMembers($$[$0-5],$$[$0-1]);\nbreak;\ncase 41:\n yy.addAnnotation($$[$0],$$[$0-2]); \nbreak;\ncase 42:\n this.$ = [$$[$0]]; \nbreak;\ncase 43:\n $$[$0].push($$[$0-1]);this.$=$$[$0];\nbreak;\ncase 44:\n/*console.log('Rel found',$$[$0]);*/\nbreak;\ncase 45:\nyy.addMember($$[$0-1],yy.cleanupLabel($$[$0]));\nbreak;\ncase 46:\n/*console.warn('Member',$$[$0]);*/\nbreak;\ncase 47:\n/*console.log('sep found',$$[$0]);*/\nbreak;\ncase 48:\n this.$ = {'id1':$$[$0-2],'id2':$$[$0], relation:$$[$0-1], relationTitle1:'none', relationTitle2:'none'}; \nbreak;\ncase 49:\n this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-1], relationTitle1:$$[$0-2], relationTitle2:'none'}\nbreak;\ncase 50:\n this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-2], relationTitle1:'none', relationTitle2:$$[$0-1]}; \nbreak;\ncase 51:\n this.$ = {id1:$$[$0-4], id2:$$[$0], relation:$$[$0-2], relationTitle1:$$[$0-3], relationTitle2:$$[$0-1]} \nbreak;\ncase 52:\n this.$={type1:$$[$0-2],type2:$$[$0],lineType:$$[$0-1]}; \nbreak;\ncase 53:\n this.$={type1:'none',type2:$$[$0],lineType:$$[$0-1]}; \nbreak;\ncase 54:\n this.$={type1:$$[$0-1],type2:'none',lineType:$$[$0]}; \nbreak;\ncase 55:\n this.$={type1:'none',type2:'none',lineType:$$[$0]}; \nbreak;\ncase 56:\n this.$=yy.relationType.AGGREGATION;\nbreak;\ncase 57:\n this.$=yy.relationType.EXTENSION;\nbreak;\ncase 58:\n this.$=yy.relationType.COMPOSITION;\nbreak;\ncase 59:\n this.$=yy.relationType.DEPENDENCY;\nbreak;\ncase 60:\nthis.$=yy.lineType.LINE;\nbreak;\ncase 61:\nthis.$=yy.lineType.DOTTED_LINE;\nbreak;\ncase 62: case 68:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-1], $$[$0]);\nbreak;\ncase 63: case 69:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-2], $$[$0]);\nbreak;\ncase 64: case 72:\nthis.$ = $$[$0-2];yy.setLink($$[$0-1], $$[$0]);\nbreak;\ncase 65:\nthis.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1],$$[$0]);\nbreak;\ncase 66: case 74:\nthis.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-2], $$[$0]);\nbreak;\ncase 67: case 75:\nthis.$ = $$[$0-4];yy.setLink($$[$0-3], $$[$0-2], $$[$0]);yy.setTooltip($$[$0-3], $$[$0-1]);\nbreak;\ncase 70:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 71:\nthis.$ = $$[$0-4];yy.setClickEvent($$[$0-3], $$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-3], $$[$0]);\nbreak;\ncase 73:\nthis.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 76:\nyy.setCssClass($$[$0-1], $$[$0]);\nbreak;\n}\n},\ntable: [{3:1,4:2,5:$V0,6:4,7:5,8:$V1,9:$V2,10:$V3,11:$V4,12:6,13:11,19:$V5,23:$V6},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{3:14,4:2,5:$V0,6:4,7:5,8:$V1,9:$V2,10:$V3,11:$V4,12:6,13:11,19:$V5,23:$V6},{1:[2,9]},o($V7,[2,5]),o($V7,[2,6]),o($V7,[2,7]),o($V7,[2,8]),{14:15,20:[1,16]},{16:[1,17]},{20:[2,12]},{1:[2,4]},{15:18,17:[1,19],22:$V8},o([17,22],[2,13]),{6:30,7:29,8:$V1,9:$V2,10:$V3,11:$V4,13:11,19:$V5,24:21,26:22,27:34,28:43,29:44,31:23,33:24,34:25,35:26,36:27,37:28,38:$V9,40:$Va,42:$Vb,43:$Vc,48:$Vd,50:$Ve,51:$Vf,62:$Vg,63:$Vh,65:$Vi,69:$Vj,83:$Vk,84:$Vl,85:$Vm,86:$Vn},{16:[1,49]},{18:50,21:[1,51]},{16:[2,15]},{25:[1,52]},{16:[1,53],25:[2,17]},o($Vo,[2,25],{32:[1,54]}),o($Vo,[2,27]),o($Vo,[2,28]),o($Vo,[2,29]),o($Vo,[2,30]),o($Vo,[2,31]),o($Vo,[2,32]),o($Vo,[2,33]),{39:[1,55]},{41:[1,56]},o($Vo,[2,36]),o($Vo,[2,44],{52:57,54:60,55:61,32:[1,59],53:[1,58],56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu}),{27:68,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},o($Vo,[2,46]),o($Vo,[2,47]),{28:69,83:$Vk,84:$Vl,85:$Vm},{27:70,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},{27:71,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},{27:72,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},{53:[1,73]},o($Vv,[2,20],{28:43,29:44,27:74,30:[1,75],83:$Vk,84:$Vl,85:$Vm,86:$Vn}),o($Vv,[2,21],{30:[1,76]}),o($Vw,[2,90]),o($Vw,[2,91]),o($Vw,[2,92]),o([16,25,30,32,44,45,53,56,57,58,59,60,61,66,68],[2,93]),o($Vx,[2,10]),{15:77,22:$V8},{22:[2,14]},{1:[2,16]},{6:30,7:29,8:$V1,9:$V2,10:$V3,11:$V4,13:11,19:$V5,24:78,25:[2,18],26:22,27:34,28:43,29:44,31:23,33:24,34:25,35:26,36:27,37:28,38:$V9,40:$Va,42:$Vb,43:$Vc,48:$Vd,50:$Ve,51:$Vf,62:$Vg,63:$Vh,65:$Vi,69:$Vj,83:$Vk,84:$Vl,85:$Vm,86:$Vn},o($Vo,[2,26]),o($Vo,[2,34]),o($Vo,[2,35]),{27:79,28:43,29:44,53:[1,80],83:$Vk,84:$Vl,85:$Vm,86:$Vn},{52:81,54:60,55:61,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu},o($Vo,[2,45]),{55:82,60:$Vt,61:$Vu},o($Vy,[2,55],{54:83,56:$Vp,57:$Vq,58:$Vr,59:$Vs}),o($Vz,[2,56]),o($Vz,[2,57]),o($Vz,[2,58]),o($Vz,[2,59]),o($VA,[2,60]),o($VA,[2,61]),o($Vo,[2,37],{44:[1,84],45:[1,85]}),{49:[1,86]},{53:[1,87]},{53:[1,88]},{66:[1,89],68:[1,90]},{28:91,83:$Vk,84:$Vl,85:$Vm},o($Vv,[2,22]),o($Vv,[2,23]),o($Vv,[2,24]),{16:[1,92]},{25:[2,19]},o($VB,[2,48]),{27:93,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},{27:94,28:43,29:44,53:[1,95],83:$Vk,84:$Vl,85:$Vm,86:$Vn},o($Vy,[2,54],{54:96,56:$Vp,57:$Vq,58:$Vr,59:$Vs}),o($Vy,[2,53]),{28:97,83:$Vk,84:$Vl,85:$Vm},{46:98,50:$VC},{27:100,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},o($Vo,[2,62],{53:[1,101]}),o($Vo,[2,64],{53:[1,103],64:[1,102]}),o($Vo,[2,68],{53:[1,104],67:[1,105]}),o($Vo,[2,72],{53:[1,107],64:[1,106]}),o($Vo,[2,76]),o($Vx,[2,11]),o($VB,[2,50]),o($VB,[2,49]),{27:108,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},o($Vy,[2,52]),o($Vo,[2,38],{45:[1,109]}),{47:[1,110]},{46:111,47:[2,42],50:$VC},o($Vo,[2,41]),o($Vo,[2,63]),o($Vo,[2,65]),o($Vo,[2,66],{64:[1,112]}),o($Vo,[2,69]),o($Vo,[2,70],{53:[1,113]}),o($Vo,[2,73]),o($Vo,[2,74],{64:[1,114]}),o($VB,[2,51]),{46:115,50:$VC},o($Vo,[2,39]),{47:[2,43]},o($Vo,[2,67]),o($Vo,[2,71]),o($Vo,[2,75]),{47:[1,116]},o($Vo,[2,40])],\ndefaultActions: {2:[2,1],3:[2,2],4:[2,3],6:[2,9],13:[2,12],14:[2,4],20:[2,15],51:[2,14],52:[2,16],78:[2,19],111:[2,43]},\nparseError: function parseError (str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer.lex() || EOF;\n if (typeof token !== 'number') {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState () {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules () {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState (n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 19; \nbreak;\ncase 1:return 8;\nbreak;\ncase 2:return 9;\nbreak;\ncase 3:return 10;\nbreak;\ncase 4:return 11;\nbreak;\ncase 5: this.begin('type_directive'); return 20; \nbreak;\ncase 6: this.popState(); this.begin('arg_directive'); return 17; \nbreak;\ncase 7: this.popState(); this.popState(); return 22; \nbreak;\ncase 8:return 21;\nbreak;\ncase 9:/* skip comments */\nbreak;\ncase 10:/* skip comments */\nbreak;\ncase 11: this.begin(\"acc_title\");return 38; \nbreak;\ncase 12: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 13: this.begin(\"acc_descr\");return 40; \nbreak;\ncase 14: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 15: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 16: this.popState(); \nbreak;\ncase 17:return \"acc_descr_multiline_value\";\nbreak;\ncase 18:return 16;\nbreak;\ncase 19:/* skip whitespace */\nbreak;\ncase 20:return 23;\nbreak;\ncase 21:return 23;\nbreak;\ncase 22: this.begin(\"struct\"); /*console.log('Starting struct');*/ return 45;\nbreak;\ncase 23:return \"EOF_IN_STRUCT\";\nbreak;\ncase 24:return \"OPEN_IN_STRUCT\";\nbreak;\ncase 25: /*console.log('Ending struct');*/this.popState(); return 47;\nbreak;\ncase 26:/* nothing */\nbreak;\ncase 27: /*console.log('lex-member: ' + yy_.yytext);*/ return \"MEMBER\";\nbreak;\ncase 28:return 43;\nbreak;\ncase 29:return 69;\nbreak;\ncase 30:return 62;\nbreak;\ncase 31:return 63;\nbreak;\ncase 32:return 65;\nbreak;\ncase 33:return 48;\nbreak;\ncase 34:return 49;\nbreak;\ncase 35:this.begin(\"generic\");\nbreak;\ncase 36:this.popState();\nbreak;\ncase 37:return \"GENERICTYPE\";\nbreak;\ncase 38:this.begin(\"string\");\nbreak;\ncase 39:this.popState();\nbreak;\ncase 40:return \"STR\";\nbreak;\ncase 41:this.begin(\"bqstring\");\nbreak;\ncase 42:this.popState();\nbreak;\ncase 43:return \"BQUOTE_STR\";\nbreak;\ncase 44:this.begin(\"href\");\nbreak;\ncase 45:this.popState();\nbreak;\ncase 46:return 68;\nbreak;\ncase 47:this.begin(\"callback_name\");\nbreak;\ncase 48:this.popState();\nbreak;\ncase 49:this.popState(); this.begin(\"callback_args\");\nbreak;\ncase 50:return 66;\nbreak;\ncase 51:this.popState();\nbreak;\ncase 52:return 67;\nbreak;\ncase 53:return 64;\nbreak;\ncase 54:return 64;\nbreak;\ncase 55:return 64;\nbreak;\ncase 56:return 64;\nbreak;\ncase 57:return 57;\nbreak;\ncase 58:return 57;\nbreak;\ncase 59:return 59;\nbreak;\ncase 60:return 59;\nbreak;\ncase 61:return 58;\nbreak;\ncase 62:return 56;\nbreak;\ncase 63:return 60;\nbreak;\ncase 64:return 61;\nbreak;\ncase 65:return 32;\nbreak;\ncase 66:return 44;\nbreak;\ncase 67:return 81;\nbreak;\ncase 68:return 'DOT';\nbreak;\ncase 69:return 'PLUS';\nbreak;\ncase 70:return 78;\nbreak;\ncase 71:return 'EQUALS';\nbreak;\ncase 72:return 'EQUALS';\nbreak;\ncase 73:return 85;\nbreak;\ncase 74:return 'PUNCTUATION';\nbreak;\ncase 75:return 84;\nbreak;\ncase 76:return 83;\nbreak;\ncase 77:return 80;\nbreak;\ncase 78:return 25;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/,/^(?:.*direction\\s+TB[^\\n]*)/,/^(?:.*direction\\s+BT[^\\n]*)/,/^(?:.*direction\\s+RL[^\\n]*)/,/^(?:.*direction\\s+LR[^\\n]*)/,/^(?:((?:(?!\\}%%)[^:.])*))/,/^(?::)/,/^(?:\\}%%)/,/^(?:((?:(?!\\}%%).|\\n)*))/,/^(?:%%(?!\\{)*[^\\n]*(\\r?\\n?)+)/,/^(?:%%[^\\n]*(\\r?\\n)*)/,/^(?:accTitle\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*\\{\\s*)/,/^(?:[\\}])/,/^(?:[^\\}]*)/,/^(?:\\s*(\\r?\\n)+)/,/^(?:\\s+)/,/^(?:classDiagram-v2\\b)/,/^(?:classDiagram\\b)/,/^(?:[{])/,/^(?:$)/,/^(?:[{])/,/^(?:[}])/,/^(?:[\\n])/,/^(?:[^{}\\n]*)/,/^(?:class\\b)/,/^(?:cssClass\\b)/,/^(?:callback\\b)/,/^(?:link\\b)/,/^(?:click\\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:[~])/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:[`])/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:href[\\s]+[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:call[\\s]+)/,/^(?:\\([\\s]*\\))/,/^(?:\\()/,/^(?:[^(]*)/,/^(?:\\))/,/^(?:[^)]*)/,/^(?:_self\\b)/,/^(?:_blank\\b)/,/^(?:_parent\\b)/,/^(?:_top\\b)/,/^(?:\\s*<\\|)/,/^(?:\\s*\\|>)/,/^(?:\\s*>)/,/^(?:\\s*<)/,/^(?:\\s*\\*)/,/^(?:\\s*o\\b)/,/^(?:--)/,/^(?:\\.\\.)/,/^(?::{1}[^:\\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\\.)/,/^(?:\\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\\w+)/,/^(?:[!\"#$%&'*+,-.`?\\\\/])/,/^(?:[0-9]+)/,/^(?:[\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]|[\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377]|[\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5]|[\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA]|[\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE]|[\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA]|[\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0]|[\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977]|[\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2]|[\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A]|[\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39]|[\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8]|[\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C]|[\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C]|[\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99]|[\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0]|[\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D]|[\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3]|[\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10]|[\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1]|[\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81]|[\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3]|[\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6]|[\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A]|[\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081]|[\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D]|[\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0]|[\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310]|[\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C]|[\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711]|[\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7]|[\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C]|[\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16]|[\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF]|[\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC]|[\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D]|[\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D]|[\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3]|[\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F]|[\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128]|[\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184]|[\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3]|[\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6]|[\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE]|[\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C]|[\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D]|[\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC]|[\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B]|[\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788]|[\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805]|[\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB]|[\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28]|[\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5]|[\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4]|[\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E]|[\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D]|[\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36]|[\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D]|[\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC]|[\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF]|[\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC])/,/^(?:\\s)/,/^(?:$)/],\nconditions: {\"acc_descr_multiline\":{\"rules\":[16,17],\"inclusive\":false},\"acc_descr\":{\"rules\":[14],\"inclusive\":false},\"acc_title\":{\"rules\":[12],\"inclusive\":false},\"arg_directive\":{\"rules\":[7,8],\"inclusive\":false},\"type_directive\":{\"rules\":[6,7],\"inclusive\":false},\"open_directive\":{\"rules\":[5],\"inclusive\":false},\"callback_args\":{\"rules\":[51,52],\"inclusive\":false},\"callback_name\":{\"rules\":[48,49,50],\"inclusive\":false},\"href\":{\"rules\":[45,46],\"inclusive\":false},\"struct\":{\"rules\":[23,24,25,26,27],\"inclusive\":false},\"generic\":{\"rules\":[36,37],\"inclusive\":false},\"bqstring\":{\"rules\":[42,43],\"inclusive\":false},\"string\":{\"rules\":[39,40],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,28,29,30,31,32,33,34,35,38,41,44,47,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,5],$V2=[6,9,11,23,25,27,29,30,49],$V3=[1,17],$V4=[1,18],$V5=[1,19],$V6=[1,20],$V7=[1,21],$V8=[1,24],$V9=[1,29],$Va=[1,30],$Vb=[1,31],$Vc=[1,32],$Vd=[6,9,11,15,20,23,25,27,29,30,42,43,44,45,49],$Ve=[1,45],$Vf=[30,46,47],$Vg=[4,6,9,11,23,25,27,29,30,49],$Vh=[42,43,44,45],$Vi=[22,37],$Vj=[1,64];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"ER_DIAGRAM\":4,\"document\":5,\"EOF\":6,\"directive\":7,\"line\":8,\"SPACE\":9,\"statement\":10,\"NEWLINE\":11,\"openDirective\":12,\"typeDirective\":13,\"closeDirective\":14,\":\":15,\"argDirective\":16,\"entityName\":17,\"relSpec\":18,\"role\":19,\"BLOCK_START\":20,\"attributes\":21,\"BLOCK_STOP\":22,\"title\":23,\"title_value\":24,\"acc_title\":25,\"acc_title_value\":26,\"acc_descr\":27,\"acc_descr_value\":28,\"acc_descr_multiline_value\":29,\"ALPHANUM\":30,\".\":31,\"attribute\":32,\"attributeType\":33,\"attributeName\":34,\"attributeKeyType\":35,\"attributeComment\":36,\"ATTRIBUTE_WORD\":37,\"ATTRIBUTE_KEY\":38,\"COMMENT\":39,\"cardinality\":40,\"relType\":41,\"ZERO_OR_ONE\":42,\"ZERO_OR_MORE\":43,\"ONE_OR_MORE\":44,\"ONLY_ONE\":45,\"NON_IDENTIFYING\":46,\"IDENTIFYING\":47,\"WORD\":48,\"open_directive\":49,\"type_directive\":50,\"arg_directive\":51,\"close_directive\":52,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"ER_DIAGRAM\",6:\"EOF\",9:\"SPACE\",11:\"NEWLINE\",15:\":\",20:\"BLOCK_START\",22:\"BLOCK_STOP\",23:\"title\",24:\"title_value\",25:\"acc_title\",26:\"acc_title_value\",27:\"acc_descr\",28:\"acc_descr_value\",29:\"acc_descr_multiline_value\",30:\"ALPHANUM\",31:\".\",37:\"ATTRIBUTE_WORD\",38:\"ATTRIBUTE_KEY\",39:\"COMMENT\",42:\"ZERO_OR_ONE\",43:\"ZERO_OR_MORE\",44:\"ONE_OR_MORE\",45:\"ONLY_ONE\",46:\"NON_IDENTIFYING\",47:\"IDENTIFYING\",48:\"WORD\",49:\"open_directive\",50:\"type_directive\",51:\"arg_directive\",52:\"close_directive\"},\nproductions_: [0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[10,2],[10,2],[10,2],[10,1],[17,1],[17,3],[21,1],[21,2],[32,2],[32,3],[32,3],[32,4],[33,1],[34,1],[35,1],[36,1],[18,3],[40,1],[40,1],[40,1],[40,1],[41,1],[41,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\n /*console.log('finished parsing');*/ \nbreak;\ncase 3:\n this.$ = [] \nbreak;\ncase 4:\n$$[$0-1].push($$[$0]);this.$ = $$[$0-1]\nbreak;\ncase 5: case 6:\n this.$ = $$[$0] \nbreak;\ncase 7: case 8:\n this.$=[];\nbreak;\ncase 12:\n\n yy.addEntity($$[$0-4]);\n yy.addEntity($$[$0-2]);\n yy.addRelationship($$[$0-4], $$[$0], $$[$0-2], $$[$0-3]);\n /*console.log($$[$0-4] + $$[$0-3] + $$[$0-2] + ':' + $$[$0]);*/\n \nbreak;\ncase 13:\n\n /* console.log('detected block'); */\n yy.addEntity($$[$0-3]);\n yy.addAttributes($$[$0-3], $$[$0-1]);\n /* console.log('handled block'); */\n \nbreak;\ncase 14:\n yy.addEntity($$[$0-2]); \nbreak;\ncase 15:\n yy.addEntity($$[$0]); \nbreak;\ncase 16: case 17:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 18: case 19:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 20:\n this.$ = $$[$0]; /*console.log('Entity: ' + $$[$0]);*/ \nbreak;\ncase 21:\n this.$ = $$[$0-2] + $$[$0-1] + $$[$0]; \nbreak;\ncase 22:\n this.$ = [$$[$0]]; \nbreak;\ncase 23:\n $$[$0].push($$[$0-1]); this.$=$$[$0]; \nbreak;\ncase 24:\n this.$ = { attributeType: $$[$0-1], attributeName: $$[$0] }; \nbreak;\ncase 25:\n this.$ = { attributeType: $$[$0-2], attributeName: $$[$0-1], attributeKeyType: $$[$0] }; \nbreak;\ncase 26:\n this.$ = { attributeType: $$[$0-2], attributeName: $$[$0-1], attributeComment: $$[$0] }; \nbreak;\ncase 27:\n this.$ = { attributeType: $$[$0-3], attributeName: $$[$0-2], attributeKeyType: $$[$0-1], attributeComment: $$[$0] }; \nbreak;\ncase 28: case 29: case 30:\n this.$=$$[$0]; \nbreak;\ncase 31:\n this.$=$$[$0].replace(/\"/g, ''); \nbreak;\ncase 32:\n\n this.$ = { cardA: $$[$0], relType: $$[$0-1], cardB: $$[$0-2] };\n /*console.log('relSpec: ' + $$[$0] + $$[$0-1] + $$[$0-2]);*/\n \nbreak;\ncase 33:\n this.$ = yy.Cardinality.ZERO_OR_ONE; \nbreak;\ncase 34:\n this.$ = yy.Cardinality.ZERO_OR_MORE; \nbreak;\ncase 35:\n this.$ = yy.Cardinality.ONE_OR_MORE; \nbreak;\ncase 36:\n this.$ = yy.Cardinality.ONLY_ONE; \nbreak;\ncase 37:\n this.$ = yy.Identification.NON_IDENTIFYING; \nbreak;\ncase 38:\n this.$ = yy.Identification.IDENTIFYING; \nbreak;\ncase 39:\n this.$ = $$[$0].replace(/\"/g, ''); \nbreak;\ncase 40:\n this.$ = $$[$0]; \nbreak;\ncase 41:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 42:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 43:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 44:\n yy.parseDirective('}%%', 'close_directive', 'er'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,7:3,12:4,49:$V1},{1:[3]},o($V2,[2,3],{5:6}),{3:7,4:$V0,7:3,12:4,49:$V1},{13:8,50:[1,9]},{50:[2,41]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,23:$V3,25:$V4,27:$V5,29:$V6,30:$V7,49:$V1},{1:[2,2]},{14:22,15:[1,23],52:$V8},o([15,52],[2,42]),o($V2,[2,8],{1:[2,1]}),o($V2,[2,4]),{7:15,10:25,12:4,17:16,23:$V3,25:$V4,27:$V5,29:$V6,30:$V7,49:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,11]),o($V2,[2,15],{18:26,40:28,20:[1,27],42:$V9,43:$Va,44:$Vb,45:$Vc}),{24:[1,33]},{26:[1,34]},{28:[1,35]},o($V2,[2,19]),o($Vd,[2,20],{31:[1,36]}),{11:[1,37]},{16:38,51:[1,39]},{11:[2,44]},o($V2,[2,5]),{17:40,30:$V7},{21:41,22:[1,42],32:43,33:44,37:$Ve},{41:46,46:[1,47],47:[1,48]},o($Vf,[2,33]),o($Vf,[2,34]),o($Vf,[2,35]),o($Vf,[2,36]),o($V2,[2,16]),o($V2,[2,17]),o($V2,[2,18]),{17:49,30:$V7},o($Vg,[2,9]),{14:50,52:$V8},{52:[2,43]},{15:[1,51]},{22:[1,52]},o($V2,[2,14]),{21:53,22:[2,22],32:43,33:44,37:$Ve},{34:54,37:[1,55]},{37:[2,28]},{40:56,42:$V9,43:$Va,44:$Vb,45:$Vc},o($Vh,[2,37]),o($Vh,[2,38]),o($Vd,[2,21]),{11:[1,57]},{19:58,30:[1,60],48:[1,59]},o($V2,[2,13]),{22:[2,23]},o($Vi,[2,24],{35:61,36:62,38:[1,63],39:$Vj}),o([22,37,38,39],[2,29]),{30:[2,32]},o($Vg,[2,10]),o($V2,[2,12]),o($V2,[2,39]),o($V2,[2,40]),o($Vi,[2,25],{36:65,39:$Vj}),o($Vi,[2,26]),o([22,37,39],[2,30]),o($Vi,[2,31]),o($Vi,[2,27])],\ndefaultActions: {5:[2,41],7:[2,2],24:[2,44],39:[2,43],45:[2,28],53:[2,23],56:[2,32]},\nparseError: function parseError (str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer.lex() || EOF;\n if (typeof token !== 'number') {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState () {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules () {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState (n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin(\"acc_title\");return 25; \nbreak;\ncase 1: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 2: this.begin(\"acc_descr\");return 27; \nbreak;\ncase 3: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 4: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 5: this.popState(); \nbreak;\ncase 6:return \"acc_descr_multiline_value\";\nbreak;\ncase 7: this.begin('open_directive'); return 49; \nbreak;\ncase 8: this.begin('type_directive'); return 50; \nbreak;\ncase 9: this.popState(); this.begin('arg_directive'); return 15; \nbreak;\ncase 10: this.popState(); this.popState(); return 52; \nbreak;\ncase 11:return 51;\nbreak;\ncase 12:/* skip comments */\nbreak;\ncase 13:/* skip comments */\nbreak;\ncase 14:return 11;\nbreak;\ncase 15:/* skip whitespace */\nbreak;\ncase 16:return 9;\nbreak;\ncase 17:return 48;\nbreak;\ncase 18:return 4;\nbreak;\ncase 19: this.begin(\"block\"); return 20; \nbreak;\ncase 20:/* skip whitespace in block */\nbreak;\ncase 21:return 38\nbreak;\ncase 22:return 37\nbreak;\ncase 23:return 39;\nbreak;\ncase 24:/* nothing */\nbreak;\ncase 25: this.popState(); return 22; \nbreak;\ncase 26:return yy_.yytext[0];\nbreak;\ncase 27:return 42;\nbreak;\ncase 28:return 43;\nbreak;\ncase 29:return 44;\nbreak;\ncase 30:return 45;\nbreak;\ncase 31:return 42;\nbreak;\ncase 32:return 43;\nbreak;\ncase 33:return 44;\nbreak;\ncase 34:return 46;\nbreak;\ncase 35:return 47;\nbreak;\ncase 36:return 46;\nbreak;\ncase 37:return 46;\nbreak;\ncase 38:return 30;\nbreak;\ncase 39:return yy_.yytext[0];\nbreak;\ncase 40:return 6;\nbreak;\n}\n},\nrules: [/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:[\\s]+)/i,/^(?:\"[^\"]*\")/i,/^(?:erDiagram\\b)/i,/^(?:\\{)/i,/^(?:\\s+)/i,/^(?:\\b((?:PK)|(?:FK))\\b)/i,/^(?:[A-Za-z][A-Za-z0-9\\-_]*)/i,/^(?:\"[^\"]*\")/i,/^(?:[\\n]+)/i,/^(?:\\})/i,/^(?:.)/i,/^(?:\\|o\\b)/i,/^(?:\\}o\\b)/i,/^(?:\\}\\|)/i,/^(?:\\|\\|)/i,/^(?:o\\|)/i,/^(?:o\\{)/i,/^(?:\\|\\{)/i,/^(?:\\.\\.)/i,/^(?:--)/i,/^(?:\\.-)/i,/^(?:-\\.)/i,/^(?:[A-Za-z][A-Za-z0-9\\-_]*)/i,/^(?:.)/i,/^(?:$)/i],\nconditions: {\"acc_descr_multiline\":{\"rules\":[5,6],\"inclusive\":false},\"acc_descr\":{\"rules\":[3],\"inclusive\":false},\"acc_title\":{\"rules\":[1],\"inclusive\":false},\"open_directive\":{\"rules\":[8],\"inclusive\":false},\"type_directive\":{\"rules\":[9,10],\"inclusive\":false},\"arg_directive\":{\"rules\":[10,11],\"inclusive\":false},\"block\":{\"rules\":[20,21,22,23,24,25,26],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,2,4,7,12,13,14,15,16,17,18,19,27,28,29,30,31,32,33,34,35,36,37,38,39,40],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,9],$V1=[1,7],$V2=[1,6],$V3=[1,8],$V4=[1,20,21,22,23,38,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],$V5=[2,10],$V6=[1,20],$V7=[1,21],$V8=[1,22],$V9=[1,23],$Va=[1,30],$Vb=[1,32],$Vc=[1,33],$Vd=[1,34],$Ve=[1,62],$Vf=[1,48],$Vg=[1,52],$Vh=[1,36],$Vi=[1,37],$Vj=[1,38],$Vk=[1,39],$Vl=[1,40],$Vm=[1,56],$Vn=[1,63],$Vo=[1,51],$Vp=[1,53],$Vq=[1,55],$Vr=[1,59],$Vs=[1,60],$Vt=[1,41],$Vu=[1,42],$Vv=[1,43],$Vw=[1,44],$Vx=[1,61],$Vy=[1,50],$Vz=[1,54],$VA=[1,57],$VB=[1,58],$VC=[1,49],$VD=[1,66],$VE=[1,71],$VF=[1,20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],$VG=[1,75],$VH=[1,74],$VI=[1,76],$VJ=[20,21,23,81,82],$VK=[1,99],$VL=[1,104],$VM=[1,107],$VN=[1,108],$VO=[1,101],$VP=[1,106],$VQ=[1,109],$VR=[1,102],$VS=[1,114],$VT=[1,113],$VU=[1,103],$VV=[1,105],$VW=[1,110],$VX=[1,111],$VY=[1,112],$VZ=[1,115],$V_=[20,21,22,23,81,82],$V$=[20,21,22,23,53,81,82],$V01=[20,21,22,23,40,52,53,55,57,59,61,63,65,66,67,69,71,73,74,76,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],$V11=[20,21,23],$V21=[20,21,23,52,66,67,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],$V31=[1,12,20,21,22,23,24,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],$V41=[52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],$V51=[1,149],$V61=[1,157],$V71=[1,158],$V81=[1,159],$V91=[1,160],$Va1=[1,144],$Vb1=[1,145],$Vc1=[1,141],$Vd1=[1,152],$Ve1=[1,153],$Vf1=[1,154],$Vg1=[1,155],$Vh1=[1,156],$Vi1=[1,161],$Vj1=[1,162],$Vk1=[1,147],$Vl1=[1,150],$Vm1=[1,146],$Vn1=[1,143],$Vo1=[20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],$Vp1=[1,165],$Vq1=[20,21,22,23,26,52,66,67,91,105,106,109,111,112,122,123,124,125,126,127],$Vr1=[20,21,22,23,24,26,38,40,41,42,52,56,58,60,62,64,66,67,68,70,72,73,75,77,81,82,86,87,88,89,90,91,92,95,105,106,109,111,112,113,114,122,123,124,125,126,127],$Vs1=[12,21,22,24],$Vt1=[22,106],$Vu1=[1,250],$Vv1=[1,245],$Vw1=[1,246],$Vx1=[1,254],$Vy1=[1,251],$Vz1=[1,248],$VA1=[1,247],$VB1=[1,249],$VC1=[1,252],$VD1=[1,253],$VE1=[1,255],$VF1=[1,273],$VG1=[20,21,23,106],$VH1=[20,21,22,23,66,67,86,102,105,106,109,110,111,112,113];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"mermaidDoc\":4,\"directive\":5,\"openDirective\":6,\"typeDirective\":7,\"closeDirective\":8,\"separator\":9,\":\":10,\"argDirective\":11,\"open_directive\":12,\"type_directive\":13,\"arg_directive\":14,\"close_directive\":15,\"graphConfig\":16,\"document\":17,\"line\":18,\"statement\":19,\"SEMI\":20,\"NEWLINE\":21,\"SPACE\":22,\"EOF\":23,\"GRAPH\":24,\"NODIR\":25,\"DIR\":26,\"FirstStmtSeperator\":27,\"ending\":28,\"endToken\":29,\"spaceList\":30,\"spaceListNewline\":31,\"verticeStatement\":32,\"styleStatement\":33,\"linkStyleStatement\":34,\"classDefStatement\":35,\"classStatement\":36,\"clickStatement\":37,\"subgraph\":38,\"text\":39,\"SQS\":40,\"SQE\":41,\"end\":42,\"direction\":43,\"acc_title\":44,\"acc_title_value\":45,\"acc_descr\":46,\"acc_descr_value\":47,\"acc_descr_multiline_value\":48,\"link\":49,\"node\":50,\"vertex\":51,\"AMP\":52,\"STYLE_SEPARATOR\":53,\"idString\":54,\"DOUBLECIRCLESTART\":55,\"DOUBLECIRCLEEND\":56,\"PS\":57,\"PE\":58,\"(-\":59,\"-)\":60,\"STADIUMSTART\":61,\"STADIUMEND\":62,\"SUBROUTINESTART\":63,\"SUBROUTINEEND\":64,\"VERTEX_WITH_PROPS_START\":65,\"ALPHA\":66,\"COLON\":67,\"PIPE\":68,\"CYLINDERSTART\":69,\"CYLINDEREND\":70,\"DIAMOND_START\":71,\"DIAMOND_STOP\":72,\"TAGEND\":73,\"TRAPSTART\":74,\"TRAPEND\":75,\"INVTRAPSTART\":76,\"INVTRAPEND\":77,\"linkStatement\":78,\"arrowText\":79,\"TESTSTR\":80,\"START_LINK\":81,\"LINK\":82,\"textToken\":83,\"STR\":84,\"keywords\":85,\"STYLE\":86,\"LINKSTYLE\":87,\"CLASSDEF\":88,\"CLASS\":89,\"CLICK\":90,\"DOWN\":91,\"UP\":92,\"textNoTags\":93,\"textNoTagsToken\":94,\"DEFAULT\":95,\"stylesOpt\":96,\"alphaNum\":97,\"CALLBACKNAME\":98,\"CALLBACKARGS\":99,\"HREF\":100,\"LINK_TARGET\":101,\"HEX\":102,\"numList\":103,\"INTERPOLATE\":104,\"NUM\":105,\"COMMA\":106,\"style\":107,\"styleComponent\":108,\"MINUS\":109,\"UNIT\":110,\"BRKT\":111,\"DOT\":112,\"PCT\":113,\"TAGSTART\":114,\"alphaNumToken\":115,\"idStringToken\":116,\"alphaNumStatement\":117,\"direction_tb\":118,\"direction_bt\":119,\"direction_rl\":120,\"direction_lr\":121,\"PUNCTUATION\":122,\"UNICODE_TEXT\":123,\"PLUS\":124,\"EQUALS\":125,\"MULT\":126,\"UNDERSCORE\":127,\"graphCodeTokens\":128,\"ARROW_CROSS\":129,\"ARROW_POINT\":130,\"ARROW_CIRCLE\":131,\"ARROW_OPEN\":132,\"QUOTE\":133,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",10:\":\",12:\"open_directive\",13:\"type_directive\",14:\"arg_directive\",15:\"close_directive\",20:\"SEMI\",21:\"NEWLINE\",22:\"SPACE\",23:\"EOF\",24:\"GRAPH\",25:\"NODIR\",26:\"DIR\",38:\"subgraph\",40:\"SQS\",41:\"SQE\",42:\"end\",44:\"acc_title\",45:\"acc_title_value\",46:\"acc_descr\",47:\"acc_descr_value\",48:\"acc_descr_multiline_value\",52:\"AMP\",53:\"STYLE_SEPARATOR\",55:\"DOUBLECIRCLESTART\",56:\"DOUBLECIRCLEEND\",57:\"PS\",58:\"PE\",59:\"(-\",60:\"-)\",61:\"STADIUMSTART\",62:\"STADIUMEND\",63:\"SUBROUTINESTART\",64:\"SUBROUTINEEND\",65:\"VERTEX_WITH_PROPS_START\",66:\"ALPHA\",67:\"COLON\",68:\"PIPE\",69:\"CYLINDERSTART\",70:\"CYLINDEREND\",71:\"DIAMOND_START\",72:\"DIAMOND_STOP\",73:\"TAGEND\",74:\"TRAPSTART\",75:\"TRAPEND\",76:\"INVTRAPSTART\",77:\"INVTRAPEND\",80:\"TESTSTR\",81:\"START_LINK\",82:\"LINK\",84:\"STR\",86:\"STYLE\",87:\"LINKSTYLE\",88:\"CLASSDEF\",89:\"CLASS\",90:\"CLICK\",91:\"DOWN\",92:\"UP\",95:\"DEFAULT\",98:\"CALLBACKNAME\",99:\"CALLBACKARGS\",100:\"HREF\",101:\"LINK_TARGET\",102:\"HEX\",104:\"INTERPOLATE\",105:\"NUM\",106:\"COMMA\",109:\"MINUS\",110:\"UNIT\",111:\"BRKT\",112:\"DOT\",113:\"PCT\",114:\"TAGSTART\",118:\"direction_tb\",119:\"direction_bt\",120:\"direction_rl\",121:\"direction_lr\",122:\"PUNCTUATION\",123:\"UNICODE_TEXT\",124:\"PLUS\",125:\"EQUALS\",126:\"MULT\",127:\"UNDERSCORE\",129:\"ARROW_CROSS\",130:\"ARROW_POINT\",131:\"ARROW_CIRCLE\",132:\"ARROW_OPEN\",133:\"QUOTE\"},\nproductions_: [0,[3,1],[3,2],[5,4],[5,6],[6,1],[7,1],[11,1],[8,1],[4,2],[17,0],[17,2],[18,1],[18,1],[18,1],[18,1],[18,1],[16,2],[16,2],[16,2],[16,3],[28,2],[28,1],[29,1],[29,1],[29,1],[27,1],[27,1],[27,2],[31,2],[31,2],[31,1],[31,1],[30,2],[30,1],[19,2],[19,2],[19,2],[19,2],[19,2],[19,2],[19,9],[19,6],[19,4],[19,1],[19,2],[19,2],[19,1],[9,1],[9,1],[9,1],[32,3],[32,4],[32,2],[32,1],[50,1],[50,5],[50,3],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,8],[51,4],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,4],[51,4],[51,1],[49,2],[49,3],[49,3],[49,1],[49,3],[78,1],[79,3],[39,1],[39,2],[39,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[93,1],[93,2],[35,5],[35,5],[36,5],[37,2],[37,4],[37,3],[37,5],[37,2],[37,4],[37,4],[37,6],[37,2],[37,4],[37,2],[37,4],[37,4],[37,6],[33,5],[33,5],[34,5],[34,5],[34,9],[34,9],[34,7],[34,7],[103,1],[103,3],[96,1],[96,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[94,1],[94,1],[94,1],[94,1],[54,1],[54,2],[97,1],[97,2],[117,1],[117,1],[117,1],[117,1],[43,1],[43,1],[43,1],[43,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 5:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 6:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 7:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 8:\n yy.parseDirective('}%%', 'close_directive', 'flowchart'); \nbreak;\ncase 10:\n this.$ = [];\nbreak;\ncase 11:\n\n\t if($$[$0] !== []){\n\t $$[$0-1].push($$[$0]);\n\t }\n\t this.$=$$[$0-1];\nbreak;\ncase 12: case 82: case 84: case 96: case 152: case 154: case 155:\nthis.$=$$[$0];\nbreak;\ncase 19:\n yy.setDirection('TB');this.$ = 'TB';\nbreak;\ncase 20:\n yy.setDirection($$[$0-1]);this.$ = $$[$0-1];\nbreak;\ncase 35:\n /* console.warn('finat vs', $$[$0-1].nodes); */ this.$=$$[$0-1].nodes\nbreak;\ncase 36: case 37: case 38: case 39: case 40:\nthis.$=[];\nbreak;\ncase 41:\nthis.$=yy.addSubGraph($$[$0-6],$$[$0-1],$$[$0-4]);\nbreak;\ncase 42:\nthis.$=yy.addSubGraph($$[$0-3],$$[$0-1],$$[$0-3]);\nbreak;\ncase 43:\nthis.$=yy.addSubGraph(undefined,$$[$0-1],undefined);\nbreak;\ncase 45:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 46: case 47:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 51:\n /* console.warn('vs',$$[$0-2].stmt,$$[$0]); */ yy.addLink($$[$0-2].stmt,$$[$0],$$[$0-1]); this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0-2].nodes) } \nbreak;\ncase 52:\n /* console.warn('vs',$$[$0-3].stmt,$$[$0-1]); */ yy.addLink($$[$0-3].stmt,$$[$0-1],$$[$0-2]); this.$ = { stmt: $$[$0-1], nodes: $$[$0-1].concat($$[$0-3].nodes) } \nbreak;\ncase 53:\n/*console.warn('noda', $$[$0-1]);*/ this.$ = {stmt: $$[$0-1], nodes:$$[$0-1] }\nbreak;\ncase 54:\n /*console.warn('noda', $$[$0]);*/ this.$ = {stmt: $$[$0], nodes:$$[$0] }\nbreak;\ncase 55:\n /* console.warn('nod', $$[$0]); */ this.$ = [$$[$0]];\nbreak;\ncase 56:\n this.$ = $$[$0-4].concat($$[$0]); /* console.warn('pip', $$[$0-4][0], $$[$0], this.$); */ \nbreak;\ncase 57:\nthis.$ = [$$[$0-2]];yy.setClass($$[$0-2],$$[$0])\nbreak;\ncase 58:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'square');\nbreak;\ncase 59:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'doublecircle');\nbreak;\ncase 60:\nthis.$ = $$[$0-5];yy.addVertex($$[$0-5],$$[$0-2],'circle');\nbreak;\ncase 61:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'ellipse');\nbreak;\ncase 62:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'stadium');\nbreak;\ncase 63:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'subroutine');\nbreak;\ncase 64:\nthis.$ = $$[$0-7];yy.addVertex($$[$0-7],$$[$0-1],'rect',undefined,undefined,undefined, Object.fromEntries([[$$[$0-5], $$[$0-3]]]));\nbreak;\ncase 65:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'cylinder');\nbreak;\ncase 66:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'round');\nbreak;\ncase 67:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'diamond');\nbreak;\ncase 68:\nthis.$ = $$[$0-5];yy.addVertex($$[$0-5],$$[$0-2],'hexagon');\nbreak;\ncase 69:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'odd');\nbreak;\ncase 70:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'trapezoid');\nbreak;\ncase 71:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'inv_trapezoid');\nbreak;\ncase 72:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'lean_right');\nbreak;\ncase 73:\nthis.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'lean_left');\nbreak;\ncase 74:\n /*console.warn('h: ', $$[$0]);*/this.$ = $$[$0];yy.addVertex($$[$0]);\nbreak;\ncase 75:\n$$[$0-1].text = $$[$0];this.$ = $$[$0-1];\nbreak;\ncase 76: case 77:\n$$[$0-2].text = $$[$0-1];this.$ = $$[$0-2];\nbreak;\ncase 78:\nthis.$ = $$[$0];\nbreak;\ncase 79:\nvar inf = yy.destructLink($$[$0], $$[$0-2]); this.$ = {\"type\":inf.type,\"stroke\":inf.stroke,\"length\":inf.length,\"text\":$$[$0-1]};\nbreak;\ncase 80:\nvar inf = yy.destructLink($$[$0]);this.$ = {\"type\":inf.type,\"stroke\":inf.stroke,\"length\":inf.length};\nbreak;\ncase 81:\nthis.$ = $$[$0-1];\nbreak;\ncase 83: case 97: case 153:\nthis.$=$$[$0-1]+''+$$[$0];\nbreak;\ncase 98: case 99:\nthis.$ = $$[$0-4];yy.addClass($$[$0-2],$$[$0]);\nbreak;\ncase 100:\nthis.$ = $$[$0-4];yy.setClass($$[$0-2], $$[$0]);\nbreak;\ncase 101: case 109:\nthis.$ = $$[$0-1];yy.setClickEvent($$[$0-1], $$[$0]);\nbreak;\ncase 102: case 110:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-2]);yy.setTooltip($$[$0-3], $$[$0]);\nbreak;\ncase 103:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 104:\nthis.$ = $$[$0-4];yy.setClickEvent($$[$0-4], $$[$0-3], $$[$0-2]);yy.setTooltip($$[$0-4], $$[$0]);\nbreak;\ncase 105: case 111:\nthis.$ = $$[$0-1];yy.setLink($$[$0-1], $$[$0]);\nbreak;\ncase 106: case 112:\nthis.$ = $$[$0-3];yy.setLink($$[$0-3], $$[$0-2]);yy.setTooltip($$[$0-3], $$[$0]);\nbreak;\ncase 107: case 113:\nthis.$ = $$[$0-3];yy.setLink($$[$0-3], $$[$0-2], $$[$0]);\nbreak;\ncase 108: case 114:\nthis.$ = $$[$0-5];yy.setLink($$[$0-5], $$[$0-4], $$[$0]);yy.setTooltip($$[$0-5], $$[$0-2]);\nbreak;\ncase 115:\nthis.$ = $$[$0-4];yy.addVertex($$[$0-2],undefined,undefined,$$[$0]);\nbreak;\ncase 116: case 118:\nthis.$ = $$[$0-4];yy.updateLink($$[$0-2],$$[$0]);\nbreak;\ncase 117:\nthis.$ = $$[$0-4];yy.updateLink([$$[$0-2]],$$[$0]);\nbreak;\ncase 119:\nthis.$ = $$[$0-8];yy.updateLinkInterpolate([$$[$0-6]],$$[$0-2]);yy.updateLink([$$[$0-6]],$$[$0]);\nbreak;\ncase 120:\nthis.$ = $$[$0-8];yy.updateLinkInterpolate($$[$0-6],$$[$0-2]);yy.updateLink($$[$0-6],$$[$0]);\nbreak;\ncase 121:\nthis.$ = $$[$0-6];yy.updateLinkInterpolate([$$[$0-4]],$$[$0]);\nbreak;\ncase 122:\nthis.$ = $$[$0-6];yy.updateLinkInterpolate($$[$0-4],$$[$0]);\nbreak;\ncase 123: case 125:\nthis.$ = [$$[$0]]\nbreak;\ncase 124: case 126:\n$$[$0-2].push($$[$0]);this.$ = $$[$0-2];\nbreak;\ncase 128:\nthis.$ = $$[$0-1] + $$[$0];\nbreak;\ncase 150:\nthis.$=$$[$0]\nbreak;\ncase 151:\nthis.$=$$[$0-1]+''+$$[$0]\nbreak;\ncase 156:\nthis.$='v';\nbreak;\ncase 157:\nthis.$='-';\nbreak;\ncase 158:\n this.$={stmt:'dir', value:'TB'};\nbreak;\ncase 159:\n this.$={stmt:'dir', value:'BT'};\nbreak;\ncase 160:\n this.$={stmt:'dir', value:'RL'};\nbreak;\ncase 161:\n this.$={stmt:'dir', value:'LR'};\nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:5,12:$V0,16:4,21:$V1,22:$V2,24:$V3},{1:[3]},{1:[2,1]},{3:10,4:2,5:3,6:5,12:$V0,16:4,21:$V1,22:$V2,24:$V3},o($V4,$V5,{17:11}),{7:12,13:[1,13]},{16:14,21:$V1,22:$V2,24:$V3},{16:15,21:$V1,22:$V2,24:$V3},{25:[1,16],26:[1,17]},{13:[2,5]},{1:[2,2]},{1:[2,9],18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,43:31,44:$Vb,46:$Vc,48:$Vd,50:35,51:45,52:$Ve,54:46,66:$Vf,67:$Vg,86:$Vh,87:$Vi,88:$Vj,89:$Vk,90:$Vl,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,118:$Vt,119:$Vu,120:$Vv,121:$Vw,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},{8:64,10:[1,65],15:$VD},o([10,15],[2,6]),o($V4,[2,17]),o($V4,[2,18]),o($V4,[2,19]),{20:[1,68],21:[1,69],22:$VE,27:67,30:70},o($VF,[2,11]),o($VF,[2,12]),o($VF,[2,13]),o($VF,[2,14]),o($VF,[2,15]),o($VF,[2,16]),{9:72,20:$VG,21:$VH,23:$VI,49:73,78:77,81:[1,78],82:[1,79]},{9:80,20:$VG,21:$VH,23:$VI},{9:81,20:$VG,21:$VH,23:$VI},{9:82,20:$VG,21:$VH,23:$VI},{9:83,20:$VG,21:$VH,23:$VI},{9:84,20:$VG,21:$VH,23:$VI},{9:86,20:$VG,21:$VH,22:[1,85],23:$VI},o($VF,[2,44]),{45:[1,87]},{47:[1,88]},o($VF,[2,47]),o($VJ,[2,54],{30:89,22:$VE}),{22:[1,90]},{22:[1,91]},{22:[1,92]},{22:[1,93]},{26:$VK,52:$VL,66:$VM,67:$VN,84:[1,97],91:$VO,97:96,98:[1,94],100:[1,95],105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($VF,[2,158]),o($VF,[2,159]),o($VF,[2,160]),o($VF,[2,161]),o($V_,[2,55],{53:[1,116]}),o($V$,[2,74],{116:129,40:[1,117],52:$Ve,55:[1,118],57:[1,119],59:[1,120],61:[1,121],63:[1,122],65:[1,123],66:$Vf,67:$Vg,69:[1,124],71:[1,125],73:[1,126],74:[1,127],76:[1,128],91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC}),o($V01,[2,150]),o($V01,[2,175]),o($V01,[2,176]),o($V01,[2,177]),o($V01,[2,178]),o($V01,[2,179]),o($V01,[2,180]),o($V01,[2,181]),o($V01,[2,182]),o($V01,[2,183]),o($V01,[2,184]),o($V01,[2,185]),o($V01,[2,186]),o($V01,[2,187]),o($V01,[2,188]),o($V01,[2,189]),o($V01,[2,190]),{9:130,20:$VG,21:$VH,23:$VI},{11:131,14:[1,132]},o($V11,[2,8]),o($V4,[2,20]),o($V4,[2,26]),o($V4,[2,27]),{21:[1,133]},o($V21,[2,34],{30:134,22:$VE}),o($VF,[2,35]),{50:135,51:45,52:$Ve,54:46,66:$Vf,67:$Vg,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},o($V31,[2,48]),o($V31,[2,49]),o($V31,[2,50]),o($V41,[2,78],{79:136,68:[1,138],80:[1,137]}),{22:$V51,24:$V61,26:$V71,38:$V81,39:139,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o([52,66,67,68,80,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,80]),o($VF,[2,36]),o($VF,[2,37]),o($VF,[2,38]),o($VF,[2,39]),o($VF,[2,40]),{22:$V51,24:$V61,26:$V71,38:$V81,39:163,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($Vo1,$V5,{17:164}),o($VF,[2,45]),o($VF,[2,46]),o($VJ,[2,53],{52:$Vp1}),{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,97:166,102:[1,167],105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{95:[1,168],103:169,105:[1,170]},{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,95:[1,171],97:172,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,97:173,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V11,[2,101],{22:[1,174],99:[1,175]}),o($V11,[2,105],{22:[1,176]}),o($V11,[2,109],{115:100,117:178,22:[1,177],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ}),o($V11,[2,111],{22:[1,179]}),o($Vq1,[2,152]),o($Vq1,[2,154]),o($Vq1,[2,155]),o($Vq1,[2,156]),o($Vq1,[2,157]),o($Vr1,[2,162]),o($Vr1,[2,163]),o($Vr1,[2,164]),o($Vr1,[2,165]),o($Vr1,[2,166]),o($Vr1,[2,167]),o($Vr1,[2,168]),o($Vr1,[2,169]),o($Vr1,[2,170]),o($Vr1,[2,171]),o($Vr1,[2,172]),o($Vr1,[2,173]),o($Vr1,[2,174]),{52:$Ve,54:180,66:$Vf,67:$Vg,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},{22:$V51,24:$V61,26:$V71,38:$V81,39:181,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:182,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:184,42:$V91,52:$VL,57:[1,183],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:185,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:186,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:187,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{66:[1,188]},{22:$V51,24:$V61,26:$V71,38:$V81,39:189,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:190,42:$V91,52:$VL,66:$VM,67:$VN,71:[1,191],73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:192,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:193,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:194,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V01,[2,151]),o($Vs1,[2,3]),{8:195,15:$VD},{15:[2,7]},o($V4,[2,28]),o($V21,[2,33]),o($VJ,[2,51],{30:196,22:$VE}),o($V41,[2,75],{22:[1,197]}),{22:[1,198]},{22:$V51,24:$V61,26:$V71,38:$V81,39:199,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,82:[1,200],83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($Vr1,[2,82]),o($Vr1,[2,84]),o($Vr1,[2,140]),o($Vr1,[2,141]),o($Vr1,[2,142]),o($Vr1,[2,143]),o($Vr1,[2,144]),o($Vr1,[2,145]),o($Vr1,[2,146]),o($Vr1,[2,147]),o($Vr1,[2,148]),o($Vr1,[2,149]),o($Vr1,[2,85]),o($Vr1,[2,86]),o($Vr1,[2,87]),o($Vr1,[2,88]),o($Vr1,[2,89]),o($Vr1,[2,90]),o($Vr1,[2,91]),o($Vr1,[2,92]),o($Vr1,[2,93]),o($Vr1,[2,94]),o($Vr1,[2,95]),{9:203,20:$VG,21:$VH,22:$V51,23:$VI,24:$V61,26:$V71,38:$V81,40:[1,202],42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,42:[1,204],43:31,44:$Vb,46:$Vc,48:$Vd,50:35,51:45,52:$Ve,54:46,66:$Vf,67:$Vg,86:$Vh,87:$Vi,88:$Vj,89:$Vk,90:$Vl,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,118:$Vt,119:$Vu,120:$Vv,121:$Vw,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},{22:$VE,30:205},{22:[1,206],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:178,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:[1,207]},{22:[1,208]},{22:[1,209],106:[1,210]},o($Vt1,[2,123]),{22:[1,211]},{22:[1,212],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:178,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:[1,213],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:178,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{84:[1,214]},o($V11,[2,103],{22:[1,215]}),{84:[1,216],101:[1,217]},{84:[1,218]},o($Vq1,[2,153]),{84:[1,219],101:[1,220]},o($V_,[2,57],{116:129,52:$Ve,66:$Vf,67:$Vg,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC}),{22:$V51,24:$V61,26:$V71,38:$V81,41:[1,221],42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,56:[1,222],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:223,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,58:[1,224],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,60:[1,225],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,62:[1,226],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,64:[1,227],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{67:[1,228]},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,70:[1,229],73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,72:[1,230],73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:231,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,41:[1,232],42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,75:[1,233],77:[1,234],81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,75:[1,236],77:[1,235],81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{9:237,20:$VG,21:$VH,23:$VI},o($VJ,[2,52],{52:$Vp1}),o($V41,[2,77]),o($V41,[2,76]),{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,68:[1,238],73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V41,[2,79]),o($Vr1,[2,83]),{22:$V51,24:$V61,26:$V71,38:$V81,39:239,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($Vo1,$V5,{17:240}),o($VF,[2,43]),{51:241,52:$Ve,54:46,66:$Vf,67:$Vg,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:242,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:256,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:257,102:$Vy1,104:[1,258],105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:259,102:$Vy1,104:[1,260],105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{105:[1,261]},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:262,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:263,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,97:264,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V11,[2,102]),{84:[1,265]},o($V11,[2,106],{22:[1,266]}),o($V11,[2,107]),o($V11,[2,110]),o($V11,[2,112],{22:[1,267]}),o($V11,[2,113]),o($V$,[2,58]),o($V$,[2,59]),{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,58:[1,268],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V$,[2,66]),o($V$,[2,61]),o($V$,[2,62]),o($V$,[2,63]),{66:[1,269]},o($V$,[2,65]),o($V$,[2,67]),{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,72:[1,270],73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V$,[2,69]),o($V$,[2,70]),o($V$,[2,72]),o($V$,[2,71]),o($V$,[2,73]),o($Vs1,[2,4]),o([22,52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,81]),{22:$V51,24:$V61,26:$V71,38:$V81,41:[1,271],42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,42:[1,272],43:31,44:$Vb,46:$Vc,48:$Vd,50:35,51:45,52:$Ve,54:46,66:$Vf,67:$Vg,86:$Vh,87:$Vi,88:$Vj,89:$Vk,90:$Vl,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,118:$Vt,119:$Vu,120:$Vv,121:$Vw,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},o($V_,[2,56]),o($V11,[2,115],{106:$VF1}),o($VG1,[2,125],{108:274,22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,102:$Vy1,105:$Vz1,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1}),o($VH1,[2,127]),o($VH1,[2,129]),o($VH1,[2,130]),o($VH1,[2,131]),o($VH1,[2,132]),o($VH1,[2,133]),o($VH1,[2,134]),o($VH1,[2,135]),o($VH1,[2,136]),o($VH1,[2,137]),o($VH1,[2,138]),o($VH1,[2,139]),o($V11,[2,116],{106:$VF1}),o($V11,[2,117],{106:$VF1}),{22:[1,275]},o($V11,[2,118],{106:$VF1}),{22:[1,276]},o($Vt1,[2,124]),o($V11,[2,98],{106:$VF1}),o($V11,[2,99],{106:$VF1}),o($V11,[2,100],{115:100,117:178,26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ}),o($V11,[2,104]),{101:[1,277]},{101:[1,278]},{58:[1,279]},{68:[1,280]},{72:[1,281]},{9:282,20:$VG,21:$VH,23:$VI},o($VF,[2,42]),{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,102:$Vy1,105:$Vz1,107:283,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},o($VH1,[2,128]),{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,97:284,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,97:285,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V11,[2,108]),o($V11,[2,114]),o($V$,[2,60]),{22:$V51,24:$V61,26:$V71,38:$V81,39:286,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V$,[2,68]),o($Vo1,$V5,{17:287}),o($VG1,[2,126],{108:274,22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,102:$Vy1,105:$Vz1,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1}),o($V11,[2,121],{115:100,117:178,22:[1,288],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ}),o($V11,[2,122],{115:100,117:178,22:[1,289],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ}),{22:$V51,24:$V61,26:$V71,38:$V81,41:[1,290],42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{18:18,19:19,20:$V6,21:$V7,22:$V8,23:$V9,32:24,33:25,34:26,35:27,36:28,37:29,38:$Va,42:[1,291],43:31,44:$Vb,46:$Vc,48:$Vd,50:35,51:45,52:$Ve,54:46,66:$Vf,67:$Vg,86:$Vh,87:$Vi,88:$Vj,89:$Vk,90:$Vl,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,118:$Vt,119:$Vu,120:$Vv,121:$Vw,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:292,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:293,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},o($V$,[2,64]),o($VF,[2,41]),o($V11,[2,119],{106:$VF1}),o($V11,[2,120],{106:$VF1})],\ndefaultActions: {2:[2,1],9:[2,5],10:[2,2],132:[2,7]},\nparseError: function parseError (str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer.lex() || EOF;\n if (typeof token !== 'number') {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState () {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules () {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState (n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 12; \nbreak;\ncase 1: this.begin('type_directive'); return 13; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 10; \nbreak;\ncase 3: this.popState(); this.popState(); return 15; \nbreak;\ncase 4:return 14;\nbreak;\ncase 5:/* skip comments */\nbreak;\ncase 6:/* skip comments */\nbreak;\ncase 7: this.begin(\"acc_title\");return 44; \nbreak;\ncase 8: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 9: this.begin(\"acc_descr\");return 46; \nbreak;\ncase 10: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 11: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 12: this.popState(); \nbreak;\ncase 13:return \"acc_descr_multiline_value\";\nbreak;\ncase 14:this.begin(\"string\");\nbreak;\ncase 15:this.popState();\nbreak;\ncase 16:return \"STR\";\nbreak;\ncase 17:return 86;\nbreak;\ncase 18:return 95;\nbreak;\ncase 19:return 87;\nbreak;\ncase 20:return 104;\nbreak;\ncase 21:return 88;\nbreak;\ncase 22:return 89;\nbreak;\ncase 23:this.begin(\"href\");\nbreak;\ncase 24:this.popState();\nbreak;\ncase 25:return 100;\nbreak;\ncase 26:this.begin(\"callbackname\");\nbreak;\ncase 27:this.popState();\nbreak;\ncase 28:this.popState(); this.begin(\"callbackargs\");\nbreak;\ncase 29:return 98;\nbreak;\ncase 30:this.popState();\nbreak;\ncase 31:return 99;\nbreak;\ncase 32:this.begin(\"click\");\nbreak;\ncase 33:this.popState();\nbreak;\ncase 34:return 90;\nbreak;\ncase 35:if(yy.lex.firstGraph()){this.begin(\"dir\");} return 24;\nbreak;\ncase 36:if(yy.lex.firstGraph()){this.begin(\"dir\");} return 24;\nbreak;\ncase 37:return 38;\nbreak;\ncase 38:return 42;\nbreak;\ncase 39:return 101;\nbreak;\ncase 40:return 101;\nbreak;\ncase 41:return 101;\nbreak;\ncase 42:return 101;\nbreak;\ncase 43: this.popState(); return 25; \nbreak;\ncase 44: this.popState(); return 26; \nbreak;\ncase 45: this.popState(); return 26; \nbreak;\ncase 46: this.popState(); return 26; \nbreak;\ncase 47: this.popState(); return 26; \nbreak;\ncase 48: this.popState(); return 26; \nbreak;\ncase 49: this.popState(); return 26; \nbreak;\ncase 50: this.popState(); return 26; \nbreak;\ncase 51: this.popState(); return 26; \nbreak;\ncase 52: this.popState(); return 26; \nbreak;\ncase 53: this.popState(); return 26; \nbreak;\ncase 54:return 118;\nbreak;\ncase 55:return 119;\nbreak;\ncase 56:return 120;\nbreak;\ncase 57:return 121;\nbreak;\ncase 58: return 105;\nbreak;\ncase 59:return 111;\nbreak;\ncase 60:return 53;\nbreak;\ncase 61:return 67;\nbreak;\ncase 62:return 52;\nbreak;\ncase 63:return 20;\nbreak;\ncase 64:return 106;\nbreak;\ncase 65:return 126;\nbreak;\ncase 66:return 82;\nbreak;\ncase 67:return 82;\nbreak;\ncase 68:return 82;\nbreak;\ncase 69:return 81;\nbreak;\ncase 70:return 81;\nbreak;\ncase 71:return 81;\nbreak;\ncase 72:return 59;\nbreak;\ncase 73:return 60;\nbreak;\ncase 74:return 61;\nbreak;\ncase 75:return 62;\nbreak;\ncase 76:return 63;\nbreak;\ncase 77:return 64;\nbreak;\ncase 78:return 65;\nbreak;\ncase 79:return 69;\nbreak;\ncase 80:return 70;\nbreak;\ncase 81:return 55;\nbreak;\ncase 82:return 56;\nbreak;\ncase 83:return 109;\nbreak;\ncase 84:return 112;\nbreak;\ncase 85:return 127;\nbreak;\ncase 86:return 124;\nbreak;\ncase 87:return 113;\nbreak;\ncase 88:return 125;\nbreak;\ncase 89:return 125;\nbreak;\ncase 90:return 114;\nbreak;\ncase 91:return 73;\nbreak;\ncase 92:return 92;\nbreak;\ncase 93:return 'SEP';\nbreak;\ncase 94:return 91;\nbreak;\ncase 95:return 66;\nbreak;\ncase 96:return 75;\nbreak;\ncase 97:return 74;\nbreak;\ncase 98:return 77;\nbreak;\ncase 99:return 76;\nbreak;\ncase 100:return 122;\nbreak;\ncase 101:return 123;\nbreak;\ncase 102:return 68;\nbreak;\ncase 103:return 57;\nbreak;\ncase 104:return 58;\nbreak;\ncase 105:return 40;\nbreak;\ncase 106:return 41;\nbreak;\ncase 107:return 71\nbreak;\ncase 108:return 72\nbreak;\ncase 109:return 133;\nbreak;\ncase 110:return 21;\nbreak;\ncase 111:return 22;\nbreak;\ncase 112:return 23;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/,/^(?:((?:(?!\\}%%)[^:.])*))/,/^(?::)/,/^(?:\\}%%)/,/^(?:((?:(?!\\}%%).|\\n)*))/,/^(?:%%(?!\\{)[^\\n]*)/,/^(?:[^\\}]%%[^\\n]*)/,/^(?:accTitle\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*:\\s*)/,/^(?:(?!\\n||)*[^\\n]*)/,/^(?:accDescr\\s*\\{\\s*)/,/^(?:[\\}])/,/^(?:[^\\}]*)/,/^(?:[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:style\\b)/,/^(?:default\\b)/,/^(?:linkStyle\\b)/,/^(?:interpolate\\b)/,/^(?:classDef\\b)/,/^(?:class\\b)/,/^(?:href[\\s]+[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:call[\\s]+)/,/^(?:\\([\\s]*\\))/,/^(?:\\()/,/^(?:[^(]*)/,/^(?:\\))/,/^(?:[^)]*)/,/^(?:click[\\s]+)/,/^(?:[\\s\\n])/,/^(?:[^\\s\\n]*)/,/^(?:graph\\b)/,/^(?:flowchart\\b)/,/^(?:subgraph\\b)/,/^(?:end\\b\\s*)/,/^(?:_self\\b)/,/^(?:_blank\\b)/,/^(?:_parent\\b)/,/^(?:_top\\b)/,/^(?:(\\r?\\n)*\\s*\\n)/,/^(?:\\s*LR\\b)/,/^(?:\\s*RL\\b)/,/^(?:\\s*TB\\b)/,/^(?:\\s*BT\\b)/,/^(?:\\s*TD\\b)/,/^(?:\\s*BR\\b)/,/^(?:\\s*<)/,/^(?:\\s*>)/,/^(?:\\s*\\^)/,/^(?:\\s*v\\b)/,/^(?:.*direction\\s+TB[^\\n]*)/,/^(?:.*direction\\s+BT[^\\n]*)/,/^(?:.*direction\\s+RL[^\\n]*)/,/^(?:.*direction\\s+LR[^\\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\\*)/,/^(?:\\s*[xo<]?--+[-xo>]\\s*)/,/^(?:\\s*[xo<]?==+[=xo>]\\s*)/,/^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/,/^(?:\\s*[xo<]?--\\s*)/,/^(?:\\s*[xo<]?==\\s*)/,/^(?:\\s*[xo<]?-\\.\\s*)/,/^(?:\\(-)/,/^(?:-\\))/,/^(?:\\(\\[)/,/^(?:\\]\\))/,/^(?:\\[\\[)/,/^(?:\\]\\])/,/^(?:\\[\\|)/,/^(?:\\[\\()/,/^(?:\\)\\])/,/^(?:\\(\\(\\()/,/^(?:\\)\\)\\))/,/^(?:-)/,/^(?:\\.)/,/^(?:[\\_])/,/^(?:\\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\\^)/,/^(?:\\\\\\|)/,/^(?:v\\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\\\\])/,/^(?:\\[\\/)/,/^(?:\\/\\])/,/^(?:\\[\\\\)/,/^(?:[!\"#$%&'*+,-.`?\\\\_/])/,/^(?:[\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]|[\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377]|[\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5]|[\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA]|[\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE]|[\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA]|[\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0]|[\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977]|[\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2]|[\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A]|[\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39]|[\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8]|[\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C]|[\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C]|[\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99]|[\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0]|[\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D]|[\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3]|[\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10]|[\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1]|[\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81]|[\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3]|[\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6]|[\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A]|[\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081]|[\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D]|[\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0]|[\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310]|[\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C]|[\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711]|[\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7]|[\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C]|[\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16]|[\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF]|[\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC]|[\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D]|[\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D]|[\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3]|[\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F]|[\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128]|[\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184]|[\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3]|[\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6]|[\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE]|[\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C]|[\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D]|[\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC]|[\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B]|[\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788]|[\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805]|[\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB]|[\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28]|[\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5]|[\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4]|[\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E]|[\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D]|[\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36]|[\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D]|[\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC]|[\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF]|[\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC])/,/^(?:\\|)/,/^(?:\\()/,/^(?:\\))/,/^(?:\\[)/,/^(?:\\])/,/^(?:\\{)/,/^(?:\\})/,/^(?:\")/,/^(?:(\\r?\\n)+)/,/^(?:\\s)/,/^(?:$)/],\nconditions: {\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"callbackargs\":{\"rules\":[30,31],\"inclusive\":false},\"callbackname\":{\"rules\":[27,28,29],\"inclusive\":false},\"href\":{\"rules\":[24,25],\"inclusive\":false},\"click\":{\"rules\":[33,34],\"inclusive\":false},\"vertex\":{\"rules\":[],\"inclusive\":false},\"dir\":{\"rules\":[43,44,45,46,47,48,49,50,51,52,53],\"inclusive\":false},\"acc_descr_multiline\":{\"rules\":[12,13],\"inclusive\":false},\"acc_descr\":{\"rules\":[10],\"inclusive\":false},\"acc_title\":{\"rules\":[8],\"inclusive\":false},\"string\":{\"rules\":[15,16],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,9,11,14,17,18,19,20,21,22,23,26,32,35,36,37,38,39,40,41,42,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,3],$V1=[1,5],$V2=[7,9,11,12,13,14,15,16,17,18,19,20,22,24,25,27,34,39],$V3=[1,15],$V4=[1,16],$V5=[1,17],$V6=[1,18],$V7=[1,19],$V8=[1,20],$V9=[1,21],$Va=[1,22],$Vb=[1,23],$Vc=[1,24],$Vd=[1,25],$Ve=[1,26],$Vf=[1,28],$Vg=[1,30],$Vh=[1,33],$Vi=[5,7,9,11,12,13,14,15,16,17,18,19,20,22,24,25,27,34,39];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"directive\":4,\"gantt\":5,\"document\":6,\"EOF\":7,\"line\":8,\"SPACE\":9,\"statement\":10,\"NL\":11,\"dateFormat\":12,\"inclusiveEndDates\":13,\"topAxis\":14,\"axisFormat\":15,\"excludes\":16,\"includes\":17,\"todayMarker\":18,\"title\":19,\"acc_title\":20,\"acc_title_value\":21,\"acc_descr\":22,\"acc_descr_value\":23,\"acc_descr_multiline_value\":24,\"section\":25,\"clickStatement\":26,\"taskTxt\":27,\"taskData\":28,\"openDirective\":29,\"typeDirective\":30,\"closeDirective\":31,\":\":32,\"argDirective\":33,\"click\":34,\"callbackname\":35,\"callbackargs\":36,\"href\":37,\"clickStatementDebug\":38,\"open_directive\":39,\"type_directive\":40,\"arg_directive\":41,\"close_directive\":42,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"gantt\",7:\"EOF\",9:\"SPACE\",11:\"NL\",12:\"dateFormat\",13:\"inclusiveEndDates\",14:\"topAxis\",15:\"axisFormat\",16:\"excludes\",17:\"includes\",18:\"todayMarker\",19:\"title\",20:\"acc_title\",21:\"acc_title_value\",22:\"acc_descr\",23:\"acc_descr_value\",24:\"acc_descr_multiline_value\",25:\"section\",27:\"taskTxt\",28:\"taskData\",32:\":\",34:\"click\",35:\"callbackname\",36:\"callbackargs\",37:\"href\",39:\"open_directive\",40:\"type_directive\",41:\"arg_directive\",42:\"close_directive\"},\nproductions_: [0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[26,2],[26,3],[26,3],[26,4],[26,3],[26,4],[26,2],[38,2],[38,3],[38,3],[38,4],[38,3],[38,4],[38,2],[29,1],[30,1],[33,1],[31,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 2:\n return $$[$0-1]; \nbreak;\ncase 3:\n this.$ = [] \nbreak;\ncase 4:\n$$[$0-1].push($$[$0]);this.$ = $$[$0-1]\nbreak;\ncase 5: case 6:\n this.$ = $$[$0] \nbreak;\ncase 7: case 8:\n this.$=[];\nbreak;\ncase 9:\nyy.setDateFormat($$[$0].substr(11));this.$=$$[$0].substr(11);\nbreak;\ncase 10:\nyy.enableInclusiveEndDates();this.$=$$[$0].substr(18);\nbreak;\ncase 11:\nyy.TopAxis();this.$=$$[$0].substr(8);\nbreak;\ncase 12:\nyy.setAxisFormat($$[$0].substr(11));this.$=$$[$0].substr(11);\nbreak;\ncase 13:\nyy.setExcludes($$[$0].substr(9));this.$=$$[$0].substr(9);\nbreak;\ncase 14:\nyy.setIncludes($$[$0].substr(9));this.$=$$[$0].substr(9);\nbreak;\ncase 15:\nyy.setTodayMarker($$[$0].substr(12));this.$=$$[$0].substr(12);\nbreak;\ncase 16:\nyy.setDiagramTitle($$[$0].substr(6));this.$=$$[$0].substr(6);\nbreak;\ncase 17:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 18: case 19:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 20:\nyy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);\nbreak;\ncase 22:\nyy.addTask($$[$0-1],$$[$0]);this.$='task';\nbreak;\ncase 26:\nthis.$ = $$[$0-1];yy.setClickEvent($$[$0-1], $$[$0], null);\nbreak;\ncase 27:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 28:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], null);yy.setLink($$[$0-2],$$[$0]);\nbreak;\ncase 29:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-2], $$[$0-1]);yy.setLink($$[$0-3],$$[$0]);\nbreak;\ncase 30:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0], null);yy.setLink($$[$0-2],$$[$0-1]);\nbreak;\ncase 31:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-1], $$[$0]);yy.setLink($$[$0-3],$$[$0-2]);\nbreak;\ncase 32:\nthis.$ = $$[$0-1];yy.setLink($$[$0-1], $$[$0]);\nbreak;\ncase 33: case 39:\nthis.$=$$[$0-1] + ' ' + $$[$0];\nbreak;\ncase 34: case 35: case 37:\nthis.$=$$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0];\nbreak;\ncase 36: case 38:\nthis.$=$$[$0-3] + ' ' + $$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0];\nbreak;\ncase 40:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 41:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 42:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 43:\n yy.parseDirective('}%%', 'close_directive', 'gantt'); \nbreak;\n}\n},\ntable: [{3:1,4:2,5:$V0,29:4,39:$V1},{1:[3]},{3:6,4:2,5:$V0,29:4,39:$V1},o($V2,[2,3],{6:7}),{30:8,40:[1,9]},{40:[2,40]},{1:[2,1]},{4:29,7:[1,10],8:11,9:[1,12],10:13,11:[1,14],12:$V3,13:$V4,14:$V5,15:$V6,16:$V7,17:$V8,18:$V9,19:$Va,20:$Vb,22:$Vc,24:$Vd,25:$Ve,26:27,27:$Vf,29:4,34:$Vg,39:$V1},{31:31,32:[1,32],42:$Vh},o([32,42],[2,41]),o($V2,[2,8],{1:[2,2]}),o($V2,[2,4]),{4:29,10:34,12:$V3,13:$V4,14:$V5,15:$V6,16:$V7,17:$V8,18:$V9,19:$Va,20:$Vb,22:$Vc,24:$Vd,25:$Ve,26:27,27:$Vf,29:4,34:$Vg,39:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,9]),o($V2,[2,10]),o($V2,[2,11]),o($V2,[2,12]),o($V2,[2,13]),o($V2,[2,14]),o($V2,[2,15]),o($V2,[2,16]),{21:[1,35]},{23:[1,36]},o($V2,[2,19]),o($V2,[2,20]),o($V2,[2,21]),{28:[1,37]},o($V2,[2,23]),{35:[1,38],37:[1,39]},{11:[1,40]},{33:41,41:[1,42]},{11:[2,43]},o($V2,[2,5]),o($V2,[2,17]),o($V2,[2,18]),o($V2,[2,22]),o($V2,[2,26],{36:[1,43],37:[1,44]}),o($V2,[2,32],{35:[1,45]}),o($Vi,[2,24]),{31:46,42:$Vh},{42:[2,42]},o($V2,[2,27],{37:[1,47]}),o($V2,[2,28]),o($V2,[2,30],{36:[1,48]}),{11:[1,49]},o($V2,[2,29]),o($V2,[2,31]),o($Vi,[2,25])],\ndefaultActions: {5:[2,40],6:[2,1],33:[2,43],42:[2,42]},\nparseError: function parseError (str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer.lex() || EOF;\n if (typeof token !== 'number') {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState () {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules () {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState (n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 39; \nbreak;\ncase 1: this.begin('type_directive'); return 40; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 32; \nbreak;\ncase 3: this.popState(); this.popState(); return 42; \nbreak;\ncase 4:return 41;\nbreak;\ncase 5: this.begin(\"acc_title\");return 20; \nbreak;\ncase 6: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 7: this.begin(\"acc_descr\");return 22; \nbreak;\ncase 8: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 9: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 10: this.popState(); \nbreak;\ncase 11:return \"acc_descr_multiline_value\";\nbreak;\ncase 12:/* skip comments */\nbreak;\ncase 13:/* skip comments */\nbreak;\ncase 14:/* do nothing */\nbreak;\ncase 15:return 11;\nbreak;\ncase 16:/* skip whitespace */\nbreak;\ncase 17:/* skip comments */\nbreak;\ncase 18:/* skip comments */\nbreak;\ncase 19:this.begin(\"href\");\nbreak;\ncase 20:this.popState();\nbreak;\ncase 21:return 37;\nbreak;\ncase 22:this.begin(\"callbackname\");\nbreak;\ncase 23:this.popState();\nbreak;\ncase 24:this.popState(); this.begin(\"callbackargs\");\nbreak;\ncase 25:return 35;\nbreak;\ncase 26:this.popState();\nbreak;\ncase 27:return 36;\nbreak;\ncase 28:this.begin(\"click\");\nbreak;\ncase 29:this.popState();\nbreak;\ncase 30:return 34;\nbreak;\ncase 31:return 5;\nbreak;\ncase 32:return 12;\nbreak;\ncase 33:return 13;\nbreak;\ncase 34:return 14;\nbreak;\ncase 35:return 15;\nbreak;\ncase 36:return 17;\nbreak;\ncase 37:return 16;\nbreak;\ncase 38:return 18;\nbreak;\ncase 39:return 'date';\nbreak;\ncase 40:return 19;\nbreak;\ncase 41:return 'accDescription'\nbreak;\ncase 42:return 25;\nbreak;\ncase 43:return 27;\nbreak;\ncase 44:return 28;\nbreak;\ncase 45:return 32;\nbreak;\ncase 46:return 7;\nbreak;\ncase 47:return 'INVALID';\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:%%(?!\\{)*[^\\n]*)/i,/^(?:[^\\}]%%*[^\\n]*)/i,/^(?:%%*[^\\n]*[\\n]*)/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:href[\\s]+[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:call[\\s]+)/i,/^(?:\\([\\s]*\\))/i,/^(?:\\()/i,/^(?:[^(]*)/i,/^(?:\\))/i,/^(?:[^)]*)/i,/^(?:click[\\s]+)/i,/^(?:[\\s\\n])/i,/^(?:[^\\s\\n]*)/i,/^(?:gantt\\b)/i,/^(?:dateFormat\\s[^#\\n;]+)/i,/^(?:inclusiveEndDates\\b)/i,/^(?:topAxis\\b)/i,/^(?:axisFormat\\s[^#\\n;]+)/i,/^(?:includes\\s[^#\\n;]+)/i,/^(?:excludes\\s[^#\\n;]+)/i,/^(?:todayMarker\\s[^\\n;]+)/i,/^(?:\\d\\d\\d\\d-\\d\\d-\\d\\d\\b)/i,/^(?:title\\s[^#\\n;]+)/i,/^(?:accDescription\\s[^#\\n;]+)/i,/^(?:section\\s[^#:\\n;]+)/i,/^(?:[^#:\\n;]+)/i,/^(?::[^#\\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"acc_descr_multiline\":{\"rules\":[10,11],\"inclusive\":false},\"acc_descr\":{\"rules\":[8],\"inclusive\":false},\"acc_title\":{\"rules\":[6],\"inclusive\":false},\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"callbackargs\":{\"rules\":[26,27],\"inclusive\":false},\"callbackname\":{\"rules\":[23,24,25],\"inclusive\":false},\"href\":{\"rules\":[20,21],\"inclusive\":false},\"click\":{\"rules\":[29,30],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,7,9,12,13,14,15,16,17,18,19,22,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,4],$V1=[1,7],$V2=[1,5],$V3=[1,9],$V4=[1,6],$V5=[2,6],$V6=[1,16],$V7=[6,8,14,20,22,24,25,27,29,32,35,37,49,53],$V8=[8,14,20,22,24,25,27,29,32,35,37],$V9=[8,13,14,20,22,24,25,27,29,32,35,37],$Va=[1,26],$Vb=[6,8,14,49,53],$Vc=[8,14,53],$Vd=[1,64],$Ve=[1,65],$Vf=[1,66],$Vg=[8,14,33,36,41,53];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"eol\":4,\"directive\":5,\"GG\":6,\"document\":7,\"EOF\":8,\":\":9,\"DIR\":10,\"options\":11,\"body\":12,\"OPT\":13,\"NL\":14,\"line\":15,\"statement\":16,\"commitStatement\":17,\"mergeStatement\":18,\"cherryPickStatement\":19,\"acc_title\":20,\"acc_title_value\":21,\"acc_descr\":22,\"acc_descr_value\":23,\"acc_descr_multiline_value\":24,\"section\":25,\"branchStatement\":26,\"CHECKOUT\":27,\"ID\":28,\"BRANCH\":29,\"ORDER\":30,\"NUM\":31,\"CHERRY_PICK\":32,\"COMMIT_ID\":33,\"STR\":34,\"MERGE\":35,\"COMMIT_TAG\":36,\"COMMIT\":37,\"commit_arg\":38,\"COMMIT_TYPE\":39,\"commitType\":40,\"COMMIT_MSG\":41,\"NORMAL\":42,\"REVERSE\":43,\"HIGHLIGHT\":44,\"openDirective\":45,\"typeDirective\":46,\"closeDirective\":47,\"argDirective\":48,\"open_directive\":49,\"type_directive\":50,\"arg_directive\":51,\"close_directive\":52,\";\":53,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",6:\"GG\",8:\"EOF\",9:\":\",10:\"DIR\",13:\"OPT\",14:\"NL\",20:\"acc_title\",21:\"acc_title_value\",22:\"acc_descr\",23:\"acc_descr_value\",24:\"acc_descr_multiline_value\",25:\"section\",27:\"CHECKOUT\",28:\"ID\",29:\"BRANCH\",30:\"ORDER\",31:\"NUM\",32:\"CHERRY_PICK\",33:\"COMMIT_ID\",34:\"STR\",35:\"MERGE\",36:\"COMMIT_TAG\",37:\"COMMIT\",39:\"COMMIT_TYPE\",41:\"COMMIT_MSG\",42:\"NORMAL\",43:\"REVERSE\",44:\"HIGHLIGHT\",49:\"open_directive\",50:\"type_directive\",51:\"arg_directive\",52:\"close_directive\",53:\";\"},\nproductions_: [0,[3,2],[3,2],[3,3],[3,4],[3,5],[7,0],[7,2],[11,2],[11,1],[12,0],[12,2],[15,2],[15,1],[16,1],[16,1],[16,1],[16,2],[16,2],[16,1],[16,1],[16,1],[16,2],[26,2],[26,4],[19,3],[18,2],[18,4],[17,2],[17,3],[17,3],[17,5],[17,5],[17,3],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,3],[17,5],[17,5],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[38,0],[38,1],[40,1],[40,1],[40,1],[5,3],[5,5],[45,1],[46,1],[48,1],[47,1],[4,1],[4,1],[4,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 3:\n return $$[$0]; \nbreak;\ncase 4:\n return $$[$0-1]; \nbreak;\ncase 5:\nyy.setDirection($$[$0-3]); return $$[$0-1];\nbreak;\ncase 7:\n yy.setOptions($$[$0-1]); this.$ = $$[$0]\nbreak;\ncase 8:\n$$[$0-1] +=$$[$0]; this.$=$$[$0-1]\nbreak;\ncase 10:\nthis.$ = []\nbreak;\ncase 11:\n$$[$0-1].push($$[$0]); this.$=$$[$0-1];\nbreak;\ncase 12:\nthis.$ =$$[$0-1]\nbreak;\ncase 17:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 18: case 19:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 20:\nyy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);\nbreak;\ncase 22:\nyy.checkout($$[$0])\nbreak;\ncase 23:\nyy.branch($$[$0])\nbreak;\ncase 24:\nyy.branch($$[$0-2], $$[$0])\nbreak;\ncase 25:\nyy.cherryPick($$[$0])\nbreak;\ncase 26:\nyy.merge($$[$0])\nbreak;\ncase 27:\nyy.merge($$[$0-2], $$[$0])\nbreak;\ncase 28:\nyy.commit($$[$0])\nbreak;\ncase 29:\nyy.commit('','',yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 30:\nyy.commit('','',$$[$0],'')\nbreak;\ncase 31:\nyy.commit('','',$$[$0],$$[$0-2])\nbreak;\ncase 32:\nyy.commit('','',$$[$0-2],$$[$0])\nbreak;\ncase 33:\nyy.commit('',$$[$0],yy.commitType.NORMAL,'')\nbreak;\ncase 34:\nyy.commit('',$$[$0-2],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 35:\nyy.commit('',$$[$0],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 36:\nyy.commit('',$$[$0-2],$$[$0],'')\nbreak;\ncase 37:\nyy.commit('',$$[$0],$$[$0-2],'')\nbreak;\ncase 38:\nyy.commit('',$$[$0-4],$$[$0-2],$$[$0])\nbreak;\ncase 39:\nyy.commit('',$$[$0-4],$$[$0],$$[$0-2])\nbreak;\ncase 40:\nyy.commit('',$$[$0-2],$$[$0-4],$$[$0])\nbreak;\ncase 41:\nyy.commit('',$$[$0],$$[$0-4],$$[$0-2])\nbreak;\ncase 42:\nyy.commit('',$$[$0],$$[$0-2],$$[$0-4])\nbreak;\ncase 43:\nyy.commit('',$$[$0-2],$$[$0],$$[$0-4])\nbreak;\ncase 44:\nyy.commit($$[$0],'',yy.commitType.NORMAL,'')\nbreak;\ncase 45:\nyy.commit($$[$0],'',yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 46:\nyy.commit($$[$0-2],'',yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 47:\nyy.commit($$[$0-2],'',$$[$0],'')\nbreak;\ncase 48:\nyy.commit($$[$0],'',$$[$0-2],'')\nbreak;\ncase 49:\nyy.commit($$[$0],$$[$0-2],yy.commitType.NORMAL,'')\nbreak;\ncase 50:\nyy.commit($$[$0-2],$$[$0],yy.commitType.NORMAL,'')\nbreak;\ncase 51:\nyy.commit($$[$0-4],'',$$[$0-2],$$[$0])\nbreak;\ncase 52:\nyy.commit($$[$0-4],'',$$[$0],$$[$0-2])\nbreak;\ncase 53:\nyy.commit($$[$0-2],'',$$[$0-4],$$[$0])\nbreak;\ncase 54:\nyy.commit($$[$0],'',$$[$0-4],$$[$0-2])\nbreak;\ncase 55:\nyy.commit($$[$0],'',$$[$0-2],$$[$0-4])\nbreak;\ncase 56:\nyy.commit($$[$0-2],'',$$[$0],$$[$0-4])\nbreak;\ncase 57:\nyy.commit($$[$0-4],$$[$0],$$[$0-2],'')\nbreak;\ncase 58:\nyy.commit($$[$0-4],$$[$0-2],$$[$0],'')\nbreak;\ncase 59:\nyy.commit($$[$0-2],$$[$0],$$[$0-4],'')\nbreak;\ncase 60:\nyy.commit($$[$0],$$[$0-2],$$[$0-4],'')\nbreak;\ncase 61:\nyy.commit($$[$0],$$[$0-4],$$[$0-2],'')\nbreak;\ncase 62:\nyy.commit($$[$0-2],$$[$0-4],$$[$0],'')\nbreak;\ncase 63:\nyy.commit($$[$0-4],$$[$0],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 64:\nyy.commit($$[$0-4],$$[$0-2],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 65:\nyy.commit($$[$0-2],$$[$0],yy.commitType.NORMAL,$$[$0-4])\nbreak;\ncase 66:\nyy.commit($$[$0],$$[$0-2],yy.commitType.NORMAL,$$[$0-4])\nbreak;\ncase 67:\nyy.commit($$[$0],$$[$0-4],yy.commitType.NORMAL,$$[$0-2])\nbreak;\ncase 68:\nyy.commit($$[$0-2],$$[$0-4],yy.commitType.NORMAL,$$[$0])\nbreak;\ncase 69:\nyy.commit($$[$0-6],$$[$0-4],$$[$0-2],$$[$0])\nbreak;\ncase 70:\nyy.commit($$[$0-6],$$[$0-4],$$[$0],$$[$0-2])\nbreak;\ncase 71:\nyy.commit($$[$0-6],$$[$0-2],$$[$0-4],$$[$0])\nbreak;\ncase 72:\nyy.commit($$[$0-6],$$[$0],$$[$0-4],$$[$0-2])\nbreak;\ncase 73:\nyy.commit($$[$0-6],$$[$0-2],$$[$0],$$[$0-4])\nbreak;\ncase 74:\nyy.commit($$[$0-6],$$[$0],$$[$0-2],$$[$0-4])\nbreak;\ncase 75:\nyy.commit($$[$0-4],$$[$0-6],$$[$0-2],$$[$0])\nbreak;\ncase 76:\nyy.commit($$[$0-4],$$[$0-6],$$[$0],$$[$0-2])\nbreak;\ncase 77:\nyy.commit($$[$0-2],$$[$0-6],$$[$0-4],$$[$0])\nbreak;\ncase 78:\nyy.commit($$[$0],$$[$0-6],$$[$0-4],$$[$0-2])\nbreak;\ncase 79:\nyy.commit($$[$0-2],$$[$0-6],$$[$0],$$[$0-4])\nbreak;\ncase 80:\nyy.commit($$[$0],$$[$0-6],$$[$0-2],$$[$0-4])\nbreak;\ncase 81:\nyy.commit($$[$0],$$[$0-4],$$[$0-2],$$[$0-6])\nbreak;\ncase 82:\nyy.commit($$[$0-2],$$[$0-4],$$[$0],$$[$0-6])\nbreak;\ncase 83:\nyy.commit($$[$0],$$[$0-2],$$[$0-4],$$[$0-6])\nbreak;\ncase 84:\nyy.commit($$[$0-2],$$[$0],$$[$0-4],$$[$0-6])\nbreak;\ncase 85:\nyy.commit($$[$0-4],$$[$0-2],$$[$0],$$[$0-6])\nbreak;\ncase 86:\nyy.commit($$[$0-4],$$[$0],$$[$0-2],$$[$0-6])\nbreak;\ncase 87:\nyy.commit($$[$0-2],$$[$0-4],$$[$0-6],$$[$0])\nbreak;\ncase 88:\nyy.commit($$[$0],$$[$0-4],$$[$0-6],$$[$0-2])\nbreak;\ncase 89:\nyy.commit($$[$0-2],$$[$0],$$[$0-6],$$[$0-4])\nbreak;\ncase 90:\nyy.commit($$[$0],$$[$0-2],$$[$0-6],$$[$0-4])\nbreak;\ncase 91:\nyy.commit($$[$0-4],$$[$0-2],$$[$0-6],$$[$0])\nbreak;\ncase 92:\nyy.commit($$[$0-4],$$[$0],$$[$0-6],$$[$0-2])\nbreak;\ncase 93:\nthis.$ = \"\"\nbreak;\ncase 94:\nthis.$=$$[$0]\nbreak;\ncase 95:\n this.$=yy.commitType.NORMAL;\nbreak;\ncase 96:\n this.$=yy.commitType.REVERSE;\nbreak;\ncase 97:\n this.$=yy.commitType.HIGHLIGHT;\nbreak;\ncase 100:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 101:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 102:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 103:\n yy.parseDirective('}%%', 'close_directive', 'gitGraph'); \nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:$V0,8:$V1,14:$V2,45:8,49:$V3,53:$V4},{1:[3]},{3:10,4:2,5:3,6:$V0,8:$V1,14:$V2,45:8,49:$V3,53:$V4},{3:11,4:2,5:3,6:$V0,8:$V1,14:$V2,45:8,49:$V3,53:$V4},{7:12,8:$V5,9:[1,13],10:[1,14],11:15,14:$V6},o($V7,[2,104]),o($V7,[2,105]),o($V7,[2,106]),{46:17,50:[1,18]},{50:[2,100]},{1:[2,1]},{1:[2,2]},{8:[1,19]},{7:20,8:$V5,11:15,14:$V6},{9:[1,21]},o($V8,[2,10],{12:22,13:[1,23]}),o($V9,[2,9]),{9:[1,25],47:24,52:$Va},o([9,52],[2,101]),{1:[2,3]},{8:[1,27]},{7:28,8:$V5,11:15,14:$V6},{8:[2,7],14:[1,31],15:29,16:30,17:32,18:33,19:34,20:[1,35],22:[1,36],24:[1,37],25:[1,38],26:39,27:[1,40],29:[1,44],32:[1,43],35:[1,42],37:[1,41]},o($V9,[2,8]),o($Vb,[2,98]),{48:45,51:[1,46]},o($Vb,[2,103]),{1:[2,4]},{8:[1,47]},o($V8,[2,11]),{4:48,8:$V1,14:$V2,53:$V4},o($V8,[2,13]),o($Vc,[2,14]),o($Vc,[2,15]),o($Vc,[2,16]),{21:[1,49]},{23:[1,50]},o($Vc,[2,19]),o($Vc,[2,20]),o($Vc,[2,21]),{28:[1,51]},o($Vc,[2,93],{38:52,33:[1,55],34:[1,57],36:[1,53],39:[1,54],41:[1,56]}),{28:[1,58]},{33:[1,59]},{28:[1,60]},{47:61,52:$Va},{52:[2,102]},{1:[2,5]},o($V8,[2,12]),o($Vc,[2,17]),o($Vc,[2,18]),o($Vc,[2,22]),o($Vc,[2,28]),{34:[1,62]},{40:63,42:$Vd,43:$Ve,44:$Vf},{34:[1,67]},{34:[1,68]},o($Vc,[2,94]),o($Vc,[2,26],{36:[1,69]}),{34:[1,70]},o($Vc,[2,23],{30:[1,71]}),o($Vb,[2,99]),o($Vc,[2,29],{33:[1,73],39:[1,72],41:[1,74]}),o($Vc,[2,30],{33:[1,76],36:[1,75],41:[1,77]}),o($Vg,[2,95]),o($Vg,[2,96]),o($Vg,[2,97]),o($Vc,[2,33],{36:[1,78],39:[1,79],41:[1,80]}),o($Vc,[2,44],{33:[1,83],36:[1,81],39:[1,82]}),{34:[1,84]},o($Vc,[2,25]),{31:[1,85]},{40:86,42:$Vd,43:$Ve,44:$Vf},{34:[1,87]},{34:[1,88]},{34:[1,89]},{34:[1,90]},{34:[1,91]},{34:[1,92]},{40:93,42:$Vd,43:$Ve,44:$Vf},{34:[1,94]},{34:[1,95]},{40:96,42:$Vd,43:$Ve,44:$Vf},{34:[1,97]},o($Vc,[2,27]),o($Vc,[2,24]),o($Vc,[2,31],{33:[1,98],41:[1,99]}),o($Vc,[2,35],{39:[1,100],41:[1,101]}),o($Vc,[2,45],{33:[1,103],39:[1,102]}),o($Vc,[2,32],{33:[1,104],41:[1,105]}),o($Vc,[2,37],{36:[1,106],41:[1,107]}),o($Vc,[2,48],{33:[1,109],36:[1,108]}),o($Vc,[2,34],{39:[1,110],41:[1,111]}),o($Vc,[2,36],{36:[1,112],41:[1,113]}),o($Vc,[2,49],{36:[1,115],39:[1,114]}),o($Vc,[2,46],{33:[1,117],39:[1,116]}),o($Vc,[2,47],{33:[1,119],36:[1,118]}),o($Vc,[2,50],{36:[1,121],39:[1,120]}),{34:[1,122]},{34:[1,123]},{40:124,42:$Vd,43:$Ve,44:$Vf},{34:[1,125]},{40:126,42:$Vd,43:$Ve,44:$Vf},{34:[1,127]},{34:[1,128]},{34:[1,129]},{34:[1,130]},{34:[1,131]},{34:[1,132]},{34:[1,133]},{40:134,42:$Vd,43:$Ve,44:$Vf},{34:[1,135]},{34:[1,136]},{34:[1,137]},{40:138,42:$Vd,43:$Ve,44:$Vf},{34:[1,139]},{40:140,42:$Vd,43:$Ve,44:$Vf},{34:[1,141]},{34:[1,142]},{34:[1,143]},{40:144,42:$Vd,43:$Ve,44:$Vf},{34:[1,145]},o($Vc,[2,42],{41:[1,146]}),o($Vc,[2,55],{33:[1,147]}),o($Vc,[2,43],{41:[1,148]}),o($Vc,[2,66],{39:[1,149]}),o($Vc,[2,56],{33:[1,150]}),o($Vc,[2,65],{39:[1,151]}),o($Vc,[2,41],{41:[1,152]}),o($Vc,[2,54],{33:[1,153]}),o($Vc,[2,40],{41:[1,154]}),o($Vc,[2,60],{36:[1,155]}),o($Vc,[2,53],{33:[1,156]}),o($Vc,[2,59],{36:[1,157]}),o($Vc,[2,39],{41:[1,158]}),o($Vc,[2,67],{39:[1,159]}),o($Vc,[2,38],{41:[1,160]}),o($Vc,[2,61],{36:[1,161]}),o($Vc,[2,62],{36:[1,162]}),o($Vc,[2,68],{39:[1,163]}),o($Vc,[2,52],{33:[1,164]}),o($Vc,[2,63],{39:[1,165]}),o($Vc,[2,51],{33:[1,166]}),o($Vc,[2,57],{36:[1,167]}),o($Vc,[2,58],{36:[1,168]}),o($Vc,[2,64],{39:[1,169]}),{34:[1,170]},{34:[1,171]},{34:[1,172]},{40:173,42:$Vd,43:$Ve,44:$Vf},{34:[1,174]},{40:175,42:$Vd,43:$Ve,44:$Vf},{34:[1,176]},{34:[1,177]},{34:[1,178]},{34:[1,179]},{34:[1,180]},{34:[1,181]},{34:[1,182]},{40:183,42:$Vd,43:$Ve,44:$Vf},{34:[1,184]},{34:[1,185]},{34:[1,186]},{40:187,42:$Vd,43:$Ve,44:$Vf},{34:[1,188]},{40:189,42:$Vd,43:$Ve,44:$Vf},{34:[1,190]},{34:[1,191]},{34:[1,192]},{40:193,42:$Vd,43:$Ve,44:$Vf},o($Vc,[2,83]),o($Vc,[2,84]),o($Vc,[2,81]),o($Vc,[2,82]),o($Vc,[2,86]),o($Vc,[2,85]),o($Vc,[2,90]),o($Vc,[2,89]),o($Vc,[2,88]),o($Vc,[2,87]),o($Vc,[2,92]),o($Vc,[2,91]),o($Vc,[2,80]),o($Vc,[2,79]),o($Vc,[2,78]),o($Vc,[2,77]),o($Vc,[2,75]),o($Vc,[2,76]),o($Vc,[2,74]),o($Vc,[2,73]),o($Vc,[2,72]),o($Vc,[2,71]),o($Vc,[2,69]),o($Vc,[2,70])],\ndefaultActions: {9:[2,100],10:[2,1],11:[2,2],19:[2,3],27:[2,4],46:[2,102],47:[2,5]},\nparseError: function parseError (str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer.lex() || EOF;\n if (typeof token !== 'number') {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState () {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules () {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState (n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 49; \nbreak;\ncase 1: this.begin('type_directive'); return 50; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 9; \nbreak;\ncase 3: this.popState(); this.popState(); return 52; \nbreak;\ncase 4:return 51;\nbreak;\ncase 5: this.begin(\"acc_title\");return 20; \nbreak;\ncase 6: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 7: this.begin(\"acc_descr\");return 22; \nbreak;\ncase 8: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 9: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 10: this.popState(); \nbreak;\ncase 11:return \"acc_descr_multiline_value\";\nbreak;\ncase 12:/*{console.log('New line');return 14;}*/ return 14;\nbreak;\ncase 13:/* skip all whitespace */\nbreak;\ncase 14:/* skip comments */\nbreak;\ncase 15:/* skip comments */\nbreak;\ncase 16:return 6;\nbreak;\ncase 17:return 37;\nbreak;\ncase 18:return 33;\nbreak;\ncase 19:return 39;\nbreak;\ncase 20:return 41;\nbreak;\ncase 21:return 42;\nbreak;\ncase 22:return 43;\nbreak;\ncase 23:return 44;\nbreak;\ncase 24:return 36;\nbreak;\ncase 25:return 29;\nbreak;\ncase 26:return 30;\nbreak;\ncase 27:return 35;\nbreak;\ncase 28:return 32;\nbreak;\ncase 29:return 27;\nbreak;\ncase 30:return 10;\nbreak;\ncase 31:return 10;\nbreak;\ncase 32:return 9;\nbreak;\ncase 33:return 'CARET'\nbreak;\ncase 34:this.begin(\"options\"); //\nbreak;\ncase 35:this.popState(); // not used anymore in the renderer, fixed for backward compatibility\nbreak;\ncase 36:return 13; //\nbreak;\ncase 37:this.begin(\"string\");\nbreak;\ncase 38:this.popState();\nbreak;\ncase 39:return 34;\nbreak;\ncase 40:return 31;\nbreak;\ncase 41:return 28;\nbreak;\ncase 42:return 8;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:(\\r?\\n)+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:gitGraph\\b)/i,/^(?:commit\\b)/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\\b)/i,/^(?:REVERSE\\b)/i,/^(?:HIGHLIGHT\\b)/i,/^(?:tag:)/i,/^(?:branch\\b)/i,/^(?:order:)/i,/^(?:merge\\b)/i,/^(?:cherry-pick\\b)/i,/^(?:checkout\\b)/i,/^(?:LR\\b)/i,/^(?:BT\\b)/i,/^(?::)/i,/^(?:\\^)/i,/^(?:options\\r?\\n)/i,/^(?:[ \\r\\n\\t]+end\\b)/i,/^(?:[\\s\\S]+(?=[ \\r\\n\\t]+end))/i,/^(?:[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[0-9]+)/i,/^(?:[a-zA-Z][-_\\./a-zA-Z0-9]*[-_a-zA-Z0-9])/i,/^(?:$)/i],\nconditions: {\"acc_descr_multiline\":{\"rules\":[10,11],\"inclusive\":false},\"acc_descr\":{\"rules\":[8],\"inclusive\":false},\"acc_title\":{\"rules\":[6],\"inclusive\":false},\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"options\":{\"rules\":[35,36],\"inclusive\":false},\"string\":{\"rules\":[38,39],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,7,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,37,40,41,42],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,9,10];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"info\":4,\"document\":5,\"EOF\":6,\"line\":7,\"statement\":8,\"NL\":9,\"showInfo\":10,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"info\",6:\"EOF\",9:\"NL\",10:\"showInfo\"},\nproductions_: [0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\n return yy; \nbreak;\ncase 4:\n \nbreak;\ncase 6:\n yy.setInfo(true); \nbreak;\n}\n},\ntable: [{3:1,4:[1,2]},{1:[3]},o($V0,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},o($V0,[2,3]),o($V0,[2,4]),o($V0,[2,5]),o($V0,[2,6])],\ndefaultActions: {4:[2,1]},\nparseError: function parseError (str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer.lex() || EOF;\n if (typeof token !== 'number') {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n\r\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState () {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules () {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState (n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\r\n\t// Pre-lexer code can go here\r\n\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:return 4 ;\nbreak;\ncase 1:return 9 ;\nbreak;\ncase 2:return 'space';\nbreak;\ncase 3:return 10;\nbreak;\ncase 4:return 6 ;\nbreak;\ncase 5:return 'TXT' ;\nbreak;\n}\n},\nrules: [/^(?:info\\b)/i,/^(?:[\\s\\n\\r]+)/i,/^(?:[\\s]+)/i,/^(?:showInfo\\b)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"INITIAL\":{\"rules\":[0,1,2,3,4,5],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,4],$V1=[1,5],$V2=[1,6],$V3=[1,7],$V4=[1,9],$V5=[1,11,13,15,17,19,20,26,27,28,29],$V6=[2,5],$V7=[1,6,11,13,15,17,19,20,26,27,28,29],$V8=[26,27,28],$V9=[2,8],$Va=[1,18],$Vb=[1,19],$Vc=[1,20],$Vd=[1,21],$Ve=[1,22],$Vf=[1,23],$Vg=[1,28],$Vh=[6,26,27,28,29];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"eol\":4,\"directive\":5,\"PIE\":6,\"document\":7,\"showData\":8,\"line\":9,\"statement\":10,\"txt\":11,\"value\":12,\"title\":13,\"title_value\":14,\"acc_title\":15,\"acc_title_value\":16,\"acc_descr\":17,\"acc_descr_value\":18,\"acc_descr_multiline_value\":19,\"section\":20,\"openDirective\":21,\"typeDirective\":22,\"closeDirective\":23,\":\":24,\"argDirective\":25,\"NEWLINE\":26,\";\":27,\"EOF\":28,\"open_directive\":29,\"type_directive\":30,\"arg_directive\":31,\"close_directive\":32,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",6:\"PIE\",8:\"showData\",11:\"txt\",12:\"value\",13:\"title\",14:\"title_value\",15:\"acc_title\",16:\"acc_title_value\",17:\"acc_descr\",18:\"acc_descr_value\",19:\"acc_descr_multiline_value\",20:\"section\",24:\":\",26:\"NEWLINE\",27:\";\",28:\"EOF\",29:\"open_directive\",30:\"type_directive\",31:\"arg_directive\",32:\"close_directive\"},\nproductions_: [0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[21,1],[22,1],[25,1],[23,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 4:\nyy.setShowData(true);\nbreak;\ncase 7:\n this.$ = $$[$0-1] \nbreak;\ncase 9:\n yy.addSection($$[$0-1],yy.cleanupValue($$[$0])); \nbreak;\ncase 10:\n this.$=$$[$0].trim();yy.setDiagramTitle(this.$); \nbreak;\ncase 11:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 12: case 13:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 14:\nyy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);\nbreak;\ncase 21:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 22:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 23:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 24:\n yy.parseDirective('}%%', 'close_directive', 'pie'); \nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:$V0,21:8,26:$V1,27:$V2,28:$V3,29:$V4},{1:[3]},{3:10,4:2,5:3,6:$V0,21:8,26:$V1,27:$V2,28:$V3,29:$V4},{3:11,4:2,5:3,6:$V0,21:8,26:$V1,27:$V2,28:$V3,29:$V4},o($V5,$V6,{7:12,8:[1,13]}),o($V7,[2,18]),o($V7,[2,19]),o($V7,[2,20]),{22:14,30:[1,15]},{30:[2,21]},{1:[2,1]},{1:[2,2]},o($V8,$V9,{21:8,9:16,10:17,5:24,1:[2,3],11:$Va,13:$Vb,15:$Vc,17:$Vd,19:$Ve,20:$Vf,29:$V4}),o($V5,$V6,{7:25}),{23:26,24:[1,27],32:$Vg},o([24,32],[2,22]),o($V5,[2,6]),{4:29,26:$V1,27:$V2,28:$V3},{12:[1,30]},{14:[1,31]},{16:[1,32]},{18:[1,33]},o($V8,[2,13]),o($V8,[2,14]),o($V8,[2,15]),o($V8,$V9,{21:8,9:16,10:17,5:24,1:[2,4],11:$Va,13:$Vb,15:$Vc,17:$Vd,19:$Ve,20:$Vf,29:$V4}),o($Vh,[2,16]),{25:34,31:[1,35]},o($Vh,[2,24]),o($V5,[2,7]),o($V8,[2,9]),o($V8,[2,10]),o($V8,[2,11]),o($V8,[2,12]),{23:36,32:$Vg},{32:[2,23]},o($Vh,[2,17])],\ndefaultActions: {9:[2,21],10:[2,1],11:[2,2],35:[2,23]},\nparseError: function parseError (str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer.lex() || EOF;\n if (typeof token !== 'number') {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState () {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules () {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState (n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 29; \nbreak;\ncase 1: this.begin('type_directive'); return 30; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 24; \nbreak;\ncase 3: this.popState(); this.popState(); return 32; \nbreak;\ncase 4:return 31;\nbreak;\ncase 5:/* skip comments */\nbreak;\ncase 6:/* skip comments */{ /*console.log('');*/ }\nbreak;\ncase 7:return 26;\nbreak;\ncase 8:/* do nothing */\nbreak;\ncase 9:/* ignore */\nbreak;\ncase 10: this.begin(\"title\");return 13; \nbreak;\ncase 11: this.popState(); return \"title_value\"; \nbreak;\ncase 12: this.begin(\"acc_title\");return 15; \nbreak;\ncase 13: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 14: this.begin(\"acc_descr\");return 17; \nbreak;\ncase 15: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 16: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 17: this.popState(); \nbreak;\ncase 18:return \"acc_descr_multiline_value\";\nbreak;\ncase 19: this.begin(\"string\"); \nbreak;\ncase 20: this.popState(); \nbreak;\ncase 21: return \"txt\"; \nbreak;\ncase 22:return 6;\nbreak;\ncase 23:return 8;\nbreak;\ncase 24:return \"value\";\nbreak;\ncase 25:return 28;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n\\r]+)/i,/^(?:%%[^\\n]*)/i,/^(?:[\\s]+)/i,/^(?:title\\b)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:pie\\b)/i,/^(?:showData\\b)/i,/^(?::[\\s]*[\\d]+(?:\\.[\\d]+)?)/i,/^(?:$)/i],\nconditions: {\"acc_descr_multiline\":{\"rules\":[17,18],\"inclusive\":false},\"acc_descr\":{\"rules\":[15],\"inclusive\":false},\"acc_title\":{\"rules\":[13],\"inclusive\":false},\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"title\":{\"rules\":[11],\"inclusive\":false},\"string\":{\"rules\":[20,21],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,8,9,10,12,14,16,19,22,23,24,25],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,3],$V1=[1,5],$V2=[1,6],$V3=[1,7],$V4=[1,8],$V5=[5,6,8,14,16,18,19,40,41,42,43,44,45,53,71,72],$V6=[1,22],$V7=[2,13],$V8=[1,26],$V9=[1,27],$Va=[1,28],$Vb=[1,29],$Vc=[1,30],$Vd=[1,31],$Ve=[1,24],$Vf=[1,32],$Vg=[1,33],$Vh=[1,36],$Vi=[71,72],$Vj=[5,8,14,16,18,19,40,41,42,43,44,45,53,60,62,71,72],$Vk=[1,56],$Vl=[1,57],$Vm=[1,58],$Vn=[1,59],$Vo=[1,60],$Vp=[1,61],$Vq=[1,62],$Vr=[62,63],$Vs=[1,74],$Vt=[1,70],$Vu=[1,71],$Vv=[1,72],$Vw=[1,73],$Vx=[1,75],$Vy=[1,79],$Vz=[1,80],$VA=[1,77],$VB=[1,78],$VC=[5,8,14,16,18,19,40,41,42,43,44,45,53,71,72];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"directive\":4,\"NEWLINE\":5,\"RD\":6,\"diagram\":7,\"EOF\":8,\"openDirective\":9,\"typeDirective\":10,\"closeDirective\":11,\":\":12,\"argDirective\":13,\"acc_title\":14,\"acc_title_value\":15,\"acc_descr\":16,\"acc_descr_value\":17,\"acc_descr_multiline_value\":18,\"open_directive\":19,\"type_directive\":20,\"arg_directive\":21,\"close_directive\":22,\"requirementDef\":23,\"elementDef\":24,\"relationshipDef\":25,\"requirementType\":26,\"requirementName\":27,\"STRUCT_START\":28,\"requirementBody\":29,\"ID\":30,\"COLONSEP\":31,\"id\":32,\"TEXT\":33,\"text\":34,\"RISK\":35,\"riskLevel\":36,\"VERIFYMTHD\":37,\"verifyType\":38,\"STRUCT_STOP\":39,\"REQUIREMENT\":40,\"FUNCTIONAL_REQUIREMENT\":41,\"INTERFACE_REQUIREMENT\":42,\"PERFORMANCE_REQUIREMENT\":43,\"PHYSICAL_REQUIREMENT\":44,\"DESIGN_CONSTRAINT\":45,\"LOW_RISK\":46,\"MED_RISK\":47,\"HIGH_RISK\":48,\"VERIFY_ANALYSIS\":49,\"VERIFY_DEMONSTRATION\":50,\"VERIFY_INSPECTION\":51,\"VERIFY_TEST\":52,\"ELEMENT\":53,\"elementName\":54,\"elementBody\":55,\"TYPE\":56,\"type\":57,\"DOCREF\":58,\"ref\":59,\"END_ARROW_L\":60,\"relationship\":61,\"LINE\":62,\"END_ARROW_R\":63,\"CONTAINS\":64,\"COPIES\":65,\"DERIVES\":66,\"SATISFIES\":67,\"VERIFIES\":68,\"REFINES\":69,\"TRACES\":70,\"unqString\":71,\"qString\":72,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"NEWLINE\",6:\"RD\",8:\"EOF\",12:\":\",14:\"acc_title\",15:\"acc_title_value\",16:\"acc_descr\",17:\"acc_descr_value\",18:\"acc_descr_multiline_value\",19:\"open_directive\",20:\"type_directive\",21:\"arg_directive\",22:\"close_directive\",28:\"STRUCT_START\",30:\"ID\",31:\"COLONSEP\",33:\"TEXT\",35:\"RISK\",37:\"VERIFYMTHD\",39:\"STRUCT_STOP\",40:\"REQUIREMENT\",41:\"FUNCTIONAL_REQUIREMENT\",42:\"INTERFACE_REQUIREMENT\",43:\"PERFORMANCE_REQUIREMENT\",44:\"PHYSICAL_REQUIREMENT\",45:\"DESIGN_CONSTRAINT\",46:\"LOW_RISK\",47:\"MED_RISK\",48:\"HIGH_RISK\",49:\"VERIFY_ANALYSIS\",50:\"VERIFY_DEMONSTRATION\",51:\"VERIFY_INSPECTION\",52:\"VERIFY_TEST\",53:\"ELEMENT\",56:\"TYPE\",58:\"DOCREF\",60:\"END_ARROW_L\",62:\"LINE\",63:\"END_ARROW_R\",64:\"CONTAINS\",65:\"COPIES\",66:\"DERIVES\",67:\"SATISFIES\",68:\"VERIFIES\",69:\"REFINES\",70:\"TRACES\",71:\"unqString\",72:\"qString\"},\nproductions_: [0,[3,3],[3,2],[3,4],[4,3],[4,5],[4,2],[4,2],[4,1],[9,1],[10,1],[13,1],[11,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[23,5],[29,5],[29,5],[29,5],[29,5],[29,2],[29,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[36,1],[36,1],[36,1],[38,1],[38,1],[38,1],[38,1],[24,5],[55,5],[55,5],[55,2],[55,1],[25,5],[25,5],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[27,1],[27,1],[32,1],[32,1],[34,1],[34,1],[54,1],[54,1],[57,1],[57,1],[59,1],[59,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 6:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 7: case 8:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 9:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 10:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 11:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 12:\n yy.parseDirective('}%%', 'close_directive', 'pie'); \nbreak;\ncase 13:\n this.$ = [] \nbreak;\ncase 19:\n yy.addRequirement($$[$0-3], $$[$0-4]) \nbreak;\ncase 20:\n yy.setNewReqId($$[$0-2]); \nbreak;\ncase 21:\n yy.setNewReqText($$[$0-2]); \nbreak;\ncase 22:\n yy.setNewReqRisk($$[$0-2]); \nbreak;\ncase 23:\n yy.setNewReqVerifyMethod($$[$0-2]); \nbreak;\ncase 26:\n this.$=yy.RequirementType.REQUIREMENT;\nbreak;\ncase 27:\n this.$=yy.RequirementType.FUNCTIONAL_REQUIREMENT;\nbreak;\ncase 28:\n this.$=yy.RequirementType.INTERFACE_REQUIREMENT;\nbreak;\ncase 29:\n this.$=yy.RequirementType.PERFORMANCE_REQUIREMENT;\nbreak;\ncase 30:\n this.$=yy.RequirementType.PHYSICAL_REQUIREMENT;\nbreak;\ncase 31:\n this.$=yy.RequirementType.DESIGN_CONSTRAINT;\nbreak;\ncase 32:\n this.$=yy.RiskLevel.LOW_RISK;\nbreak;\ncase 33:\n this.$=yy.RiskLevel.MED_RISK;\nbreak;\ncase 34:\n this.$=yy.RiskLevel.HIGH_RISK;\nbreak;\ncase 35:\n this.$=yy.VerifyType.VERIFY_ANALYSIS;\nbreak;\ncase 36:\n this.$=yy.VerifyType.VERIFY_DEMONSTRATION;\nbreak;\ncase 37:\n this.$=yy.VerifyType.VERIFY_INSPECTION;\nbreak;\ncase 38:\n this.$=yy.VerifyType.VERIFY_TEST;\nbreak;\ncase 39:\n yy.addElement($$[$0-3]) \nbreak;\ncase 40:\n yy.setNewElementType($$[$0-2]); \nbreak;\ncase 41:\n yy.setNewElementDocRef($$[$0-2]); \nbreak;\ncase 44:\n yy.addRelationship($$[$0-2], $$[$0], $$[$0-4]) \nbreak;\ncase 45:\n yy.addRelationship($$[$0-2], $$[$0-4], $$[$0]) \nbreak;\ncase 46:\n this.$=yy.Relationships.CONTAINS;\nbreak;\ncase 47:\n this.$=yy.Relationships.COPIES;\nbreak;\ncase 48:\n this.$=yy.Relationships.DERIVES;\nbreak;\ncase 49:\n this.$=yy.Relationships.SATISFIES;\nbreak;\ncase 50:\n this.$=yy.Relationships.VERIFIES;\nbreak;\ncase 51:\n this.$=yy.Relationships.REFINES;\nbreak;\ncase 52:\n this.$=yy.Relationships.TRACES;\nbreak;\n}\n},\ntable: [{3:1,4:2,6:$V0,9:4,14:$V1,16:$V2,18:$V3,19:$V4},{1:[3]},{3:10,4:2,5:[1,9],6:$V0,9:4,14:$V1,16:$V2,18:$V3,19:$V4},{5:[1,11]},{10:12,20:[1,13]},{15:[1,14]},{17:[1,15]},o($V5,[2,8]),{20:[2,9]},{3:16,4:2,6:$V0,9:4,14:$V1,16:$V2,18:$V3,19:$V4},{1:[2,2]},{4:21,5:$V6,7:17,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{11:34,12:[1,35],22:$Vh},o([12,22],[2,10]),o($V5,[2,6]),o($V5,[2,7]),{1:[2,1]},{8:[1,37]},{4:21,5:$V6,7:38,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{4:21,5:$V6,7:39,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{4:21,5:$V6,7:40,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{4:21,5:$V6,7:41,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{4:21,5:$V6,7:42,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{27:43,71:[1,44],72:[1,45]},{54:46,71:[1,47],72:[1,48]},{60:[1,49],62:[1,50]},o($Vi,[2,26]),o($Vi,[2,27]),o($Vi,[2,28]),o($Vi,[2,29]),o($Vi,[2,30]),o($Vi,[2,31]),o($Vj,[2,55]),o($Vj,[2,56]),o($V5,[2,4]),{13:51,21:[1,52]},o($V5,[2,12]),{1:[2,3]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{8:[2,17]},{8:[2,18]},{28:[1,53]},{28:[2,53]},{28:[2,54]},{28:[1,54]},{28:[2,59]},{28:[2,60]},{61:55,64:$Vk,65:$Vl,66:$Vm,67:$Vn,68:$Vo,69:$Vp,70:$Vq},{61:63,64:$Vk,65:$Vl,66:$Vm,67:$Vn,68:$Vo,69:$Vp,70:$Vq},{11:64,22:$Vh},{22:[2,11]},{5:[1,65]},{5:[1,66]},{62:[1,67]},o($Vr,[2,46]),o($Vr,[2,47]),o($Vr,[2,48]),o($Vr,[2,49]),o($Vr,[2,50]),o($Vr,[2,51]),o($Vr,[2,52]),{63:[1,68]},o($V5,[2,5]),{5:$Vs,29:69,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},{5:$Vy,39:$Vz,55:76,56:$VA,58:$VB},{32:81,71:$Vf,72:$Vg},{32:82,71:$Vf,72:$Vg},o($VC,[2,19]),{31:[1,83]},{31:[1,84]},{31:[1,85]},{31:[1,86]},{5:$Vs,29:87,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},o($VC,[2,25]),o($VC,[2,39]),{31:[1,88]},{31:[1,89]},{5:$Vy,39:$Vz,55:90,56:$VA,58:$VB},o($VC,[2,43]),o($VC,[2,44]),o($VC,[2,45]),{32:91,71:$Vf,72:$Vg},{34:92,71:[1,93],72:[1,94]},{36:95,46:[1,96],47:[1,97],48:[1,98]},{38:99,49:[1,100],50:[1,101],51:[1,102],52:[1,103]},o($VC,[2,24]),{57:104,71:[1,105],72:[1,106]},{59:107,71:[1,108],72:[1,109]},o($VC,[2,42]),{5:[1,110]},{5:[1,111]},{5:[2,57]},{5:[2,58]},{5:[1,112]},{5:[2,32]},{5:[2,33]},{5:[2,34]},{5:[1,113]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[2,38]},{5:[1,114]},{5:[2,61]},{5:[2,62]},{5:[1,115]},{5:[2,63]},{5:[2,64]},{5:$Vs,29:116,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},{5:$Vs,29:117,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},{5:$Vs,29:118,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},{5:$Vs,29:119,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},{5:$Vy,39:$Vz,55:120,56:$VA,58:$VB},{5:$Vy,39:$Vz,55:121,56:$VA,58:$VB},o($VC,[2,20]),o($VC,[2,21]),o($VC,[2,22]),o($VC,[2,23]),o($VC,[2,40]),o($VC,[2,41])],\ndefaultActions: {8:[2,9],10:[2,2],16:[2,1],37:[2,3],38:[2,14],39:[2,15],40:[2,16],41:[2,17],42:[2,18],44:[2,53],45:[2,54],47:[2,59],48:[2,60],52:[2,11],93:[2,57],94:[2,58],96:[2,32],97:[2,33],98:[2,34],100:[2,35],101:[2,36],102:[2,37],103:[2,38],105:[2,61],106:[2,62],108:[2,63],109:[2,64]},\nparseError: function parseError (str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer.lex() || EOF;\n if (typeof token !== 'number') {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState () {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules () {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState (n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 19; \nbreak;\ncase 1: this.begin('type_directive'); return 20; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 12; \nbreak;\ncase 3: this.popState(); this.popState(); return 22; \nbreak;\ncase 4:return 21;\nbreak;\ncase 5:return 'title';\nbreak;\ncase 6: this.begin(\"acc_title\");return 14; \nbreak;\ncase 7: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 8: this.begin(\"acc_descr\");return 16; \nbreak;\ncase 9: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 10: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 11: this.popState(); \nbreak;\ncase 12:return \"acc_descr_multiline_value\";\nbreak;\ncase 13:return 5;\nbreak;\ncase 14:/* skip all whitespace */\nbreak;\ncase 15:/* skip comments */\nbreak;\ncase 16:/* skip comments */\nbreak;\ncase 17:return 8;\nbreak;\ncase 18:return 6;\nbreak;\ncase 19:return 28;\nbreak;\ncase 20:return 39;\nbreak;\ncase 21:return 31;\nbreak;\ncase 22:return 30;\nbreak;\ncase 23:return 33;\nbreak;\ncase 24:return 35;\nbreak;\ncase 25:return 37;\nbreak;\ncase 26:return 40;\nbreak;\ncase 27:return 41;\nbreak;\ncase 28:return 42;\nbreak;\ncase 29:return 43;\nbreak;\ncase 30:return 44;\nbreak;\ncase 31:return 45;\nbreak;\ncase 32:return 46;\nbreak;\ncase 33:return 47;\nbreak;\ncase 34:return 48;\nbreak;\ncase 35:return 49;\nbreak;\ncase 36:return 50;\nbreak;\ncase 37:return 51;\nbreak;\ncase 38:return 52;\nbreak;\ncase 39:return 53;\nbreak;\ncase 40:return 64;\nbreak;\ncase 41:return 65;\nbreak;\ncase 42:return 66;\nbreak;\ncase 43:return 67;\nbreak;\ncase 44:return 68;\nbreak;\ncase 45:return 69;\nbreak;\ncase 46:return 70;\nbreak;\ncase 47:return 56;\nbreak;\ncase 48:return 58;\nbreak;\ncase 49:return 60;\nbreak;\ncase 50:return 63;\nbreak;\ncase 51:return 62;\nbreak;\ncase 52: this.begin(\"string\"); \nbreak;\ncase 53: this.popState(); \nbreak;\ncase 54: return \"qString\"; \nbreak;\ncase 55: yy_.yytext = yy_.yytext.trim(); return 71;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:title\\s[^#\\n;]+)/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:(\\r?\\n)+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\\b)/i,/^(?:\\{)/i,/^(?:\\})/i,/^(?::)/i,/^(?:id\\b)/i,/^(?:text\\b)/i,/^(?:risk\\b)/i,/^(?:verifyMethod\\b)/i,/^(?:requirement\\b)/i,/^(?:functionalRequirement\\b)/i,/^(?:interfaceRequirement\\b)/i,/^(?:performanceRequirement\\b)/i,/^(?:physicalRequirement\\b)/i,/^(?:designConstraint\\b)/i,/^(?:low\\b)/i,/^(?:medium\\b)/i,/^(?:high\\b)/i,/^(?:analysis\\b)/i,/^(?:demonstration\\b)/i,/^(?:inspection\\b)/i,/^(?:test\\b)/i,/^(?:element\\b)/i,/^(?:contains\\b)/i,/^(?:copies\\b)/i,/^(?:derives\\b)/i,/^(?:satisfies\\b)/i,/^(?:verifies\\b)/i,/^(?:refines\\b)/i,/^(?:traces\\b)/i,/^(?:type\\b)/i,/^(?:docref\\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[\\w][^\\r\\n\\{\\<\\>\\-\\=]*)/i],\nconditions: {\"acc_descr_multiline\":{\"rules\":[11,12],\"inclusive\":false},\"acc_descr\":{\"rules\":[9],\"inclusive\":false},\"acc_title\":{\"rules\":[7],\"inclusive\":false},\"close_directive\":{\"rules\":[],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"unqString\":{\"rules\":[],\"inclusive\":false},\"token\":{\"rules\":[],\"inclusive\":false},\"string\":{\"rules\":[53,54],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,3],$V2=[1,5],$V3=[1,7],$V4=[2,5],$V5=[1,15],$V6=[1,17],$V7=[1,18],$V8=[1,19],$V9=[1,21],$Va=[1,22],$Vb=[1,23],$Vc=[1,29],$Vd=[1,30],$Ve=[1,31],$Vf=[1,32],$Vg=[1,33],$Vh=[1,34],$Vi=[1,35],$Vj=[1,36],$Vk=[1,37],$Vl=[1,38],$Vm=[1,39],$Vn=[1,40],$Vo=[1,43],$Vp=[1,44],$Vq=[1,45],$Vr=[1,46],$Vs=[1,47],$Vt=[1,48],$Vu=[1,51],$Vv=[1,4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,51,52,53,58,59,60,61,69,79],$Vw=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,53,58,59,60,61,69,79],$Vx=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,52,53,58,59,60,61,69,79],$Vy=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,51,53,58,59,60,61,69,79],$Vz=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,53,58,59,60,61,69,79],$VA=[67,68,69],$VB=[1,121],$VC=[1,4,5,7,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,51,52,53,58,59,60,61,69,79];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"SPACE\":4,\"NEWLINE\":5,\"directive\":6,\"SD\":7,\"document\":8,\"line\":9,\"statement\":10,\"openDirective\":11,\"typeDirective\":12,\"closeDirective\":13,\":\":14,\"argDirective\":15,\"participant\":16,\"actor\":17,\"AS\":18,\"restOfLine\":19,\"participant_actor\":20,\"signal\":21,\"autonumber\":22,\"NUM\":23,\"off\":24,\"activate\":25,\"deactivate\":26,\"note_statement\":27,\"links_statement\":28,\"link_statement\":29,\"properties_statement\":30,\"details_statement\":31,\"title\":32,\"legacy_title\":33,\"acc_title\":34,\"acc_title_value\":35,\"acc_descr\":36,\"acc_descr_value\":37,\"acc_descr_multiline_value\":38,\"loop\":39,\"end\":40,\"rect\":41,\"opt\":42,\"alt\":43,\"else_sections\":44,\"par\":45,\"par_sections\":46,\"critical\":47,\"option_sections\":48,\"break\":49,\"option\":50,\"and\":51,\"else\":52,\"note\":53,\"placement\":54,\"text2\":55,\"over\":56,\"actor_pair\":57,\"links\":58,\"link\":59,\"properties\":60,\"details\":61,\"spaceList\":62,\",\":63,\"left_of\":64,\"right_of\":65,\"signaltype\":66,\"+\":67,\"-\":68,\"ACTOR\":69,\"SOLID_OPEN_ARROW\":70,\"DOTTED_OPEN_ARROW\":71,\"SOLID_ARROW\":72,\"DOTTED_ARROW\":73,\"SOLID_CROSS\":74,\"DOTTED_CROSS\":75,\"SOLID_POINT\":76,\"DOTTED_POINT\":77,\"TXT\":78,\"open_directive\":79,\"type_directive\":80,\"arg_directive\":81,\"close_directive\":82,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"SPACE\",5:\"NEWLINE\",7:\"SD\",14:\":\",16:\"participant\",18:\"AS\",19:\"restOfLine\",20:\"participant_actor\",22:\"autonumber\",23:\"NUM\",24:\"off\",25:\"activate\",26:\"deactivate\",32:\"title\",33:\"legacy_title\",34:\"acc_title\",35:\"acc_title_value\",36:\"acc_descr\",37:\"acc_descr_value\",38:\"acc_descr_multiline_value\",39:\"loop\",40:\"end\",41:\"rect\",42:\"opt\",43:\"alt\",45:\"par\",47:\"critical\",49:\"break\",50:\"option\",51:\"and\",52:\"else\",53:\"note\",56:\"over\",58:\"links\",59:\"link\",60:\"properties\",61:\"details\",63:\",\",64:\"left_of\",65:\"right_of\",67:\"+\",68:\"-\",69:\"ACTOR\",70:\"SOLID_OPEN_ARROW\",71:\"DOTTED_OPEN_ARROW\",72:\"SOLID_ARROW\",73:\"DOTTED_ARROW\",74:\"SOLID_CROSS\",75:\"DOTTED_CROSS\",76:\"SOLID_POINT\",77:\"DOTTED_POINT\",78:\"TXT\",79:\"open_directive\",80:\"type_directive\",81:\"arg_directive\",82:\"close_directive\"},\nproductions_: [0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[6,4],[6,6],[10,5],[10,3],[10,5],[10,3],[10,2],[10,4],[10,3],[10,3],[10,2],[10,3],[10,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,2],[10,2],[10,1],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,1],[48,1],[48,4],[46,1],[46,4],[44,1],[44,4],[27,4],[27,4],[28,3],[29,3],[30,3],[31,3],[62,2],[62,1],[57,3],[57,1],[54,1],[54,1],[21,5],[21,5],[21,4],[17,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[55,1],[11,1],[12,1],[15,1],[13,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 4:\n yy.apply($$[$0]);return $$[$0]; \nbreak;\ncase 5:\n this.$ = [] \nbreak;\ncase 6:\n$$[$0-1].push($$[$0]);this.$ = $$[$0-1]\nbreak;\ncase 7: case 8:\n this.$ = $$[$0] \nbreak;\ncase 9:\n this.$=[]; \nbreak;\ncase 12:\n$$[$0-3].type='addParticipant';$$[$0-3].description=yy.parseMessage($$[$0-1]); this.$=$$[$0-3];\nbreak;\ncase 13:\n$$[$0-1].type='addParticipant';this.$=$$[$0-1];\nbreak;\ncase 14:\n$$[$0-3].type='addActor';$$[$0-3].description=yy.parseMessage($$[$0-1]); this.$=$$[$0-3];\nbreak;\ncase 15:\n$$[$0-1].type='addActor'; this.$=$$[$0-1];\nbreak;\ncase 17:\n this.$= {type:'sequenceIndex',sequenceIndex: Number($$[$0-2]), sequenceIndexStep:Number($$[$0-1]), sequenceVisible:true, signalType:yy.LINETYPE.AUTONUMBER};\nbreak;\ncase 18:\n this.$ = {type:'sequenceIndex',sequenceIndex: Number($$[$0-1]), sequenceIndexStep:1, sequenceVisible:true, signalType:yy.LINETYPE.AUTONUMBER};\nbreak;\ncase 19:\n this.$ = {type:'sequenceIndex', sequenceVisible:false, signalType:yy.LINETYPE.AUTONUMBER};\nbreak;\ncase 20:\nthis.$ = {type:'sequenceIndex', sequenceVisible:true, signalType:yy.LINETYPE.AUTONUMBER}; \nbreak;\ncase 21:\nthis.$={type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0-1]};\nbreak;\ncase 22:\nthis.$={type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0-1]};\nbreak;\ncase 28:\nyy.setDiagramTitle($$[$0].substring(6));this.$=$$[$0].substring(6);\nbreak;\ncase 29:\nyy.setDiagramTitle($$[$0].substring(7));this.$=$$[$0].substring(7);\nbreak;\ncase 30:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 31: case 32:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 33:\n\n\t\t$$[$0-1].unshift({type: 'loopStart', loopText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.LOOP_START});\n\t\t$$[$0-1].push({type: 'loopEnd', loopText:$$[$0-2], signalType: yy.LINETYPE.LOOP_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 34:\n\n\t\t$$[$0-1].unshift({type: 'rectStart', color:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.RECT_START });\n\t\t$$[$0-1].push({type: 'rectEnd', color:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.RECT_END });\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 35:\n\n\t\t$$[$0-1].unshift({type: 'optStart', optText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.OPT_START});\n\t\t$$[$0-1].push({type: 'optEnd', optText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.OPT_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 36:\n\n\t\t// Alt start\n\t\t$$[$0-1].unshift({type: 'altStart', altText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.ALT_START});\n\t\t// Content in alt is already in $$[$0-1]\n\t\t// End\n\t\t$$[$0-1].push({type: 'altEnd', signalType: yy.LINETYPE.ALT_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 37:\n\n\t\t// Parallel start\n\t\t$$[$0-1].unshift({type: 'parStart', parText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.PAR_START});\n\t\t// Content in par is already in $$[$0-1]\n\t\t// End\n\t\t$$[$0-1].push({type: 'parEnd', signalType: yy.LINETYPE.PAR_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 38:\n\n\t\t// critical start\n\t\t$$[$0-1].unshift({type: 'criticalStart', criticalText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.CRITICAL_START});\n\t\t// Content in critical is already in $$[$0-1]\n\t\t// critical end\n\t\t$$[$0-1].push({type: 'criticalEnd', signalType: yy.LINETYPE.CRITICAL_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 39:\n\n\t\t$$[$0-1].unshift({type: 'breakStart', breakText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.BREAK_START});\n\t\t$$[$0-1].push({type: 'breakEnd', optText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.BREAK_END});\n\t\tthis.$=$$[$0-1];\nbreak;\ncase 42:\n this.$ = $$[$0-3].concat([{type: 'option', optionText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.CRITICAL_OPTION}, $$[$0]]); \nbreak;\ncase 44:\n this.$ = $$[$0-3].concat([{type: 'and', parText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.PAR_AND}, $$[$0]]); \nbreak;\ncase 46:\n this.$ = $$[$0-3].concat([{type: 'else', altText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.ALT_ELSE}, $$[$0]]); \nbreak;\ncase 47:\n\n\t\tthis.$ = [$$[$0-1], {type:'addNote', placement:$$[$0-2], actor:$$[$0-1].actor, text:$$[$0]}];\nbreak;\ncase 48:\n\n\t\t// Coerce actor_pair into a [to, from, ...] array\n\t\t$$[$0-2] = [].concat($$[$0-1], $$[$0-1]).slice(0, 2);\n\t\t$$[$0-2][0] = $$[$0-2][0].actor;\n\t\t$$[$0-2][1] = $$[$0-2][1].actor;\n\t\tthis.$ = [$$[$0-1], {type:'addNote', placement:yy.PLACEMENT.OVER, actor:$$[$0-2].slice(0, 2), text:$$[$0]}];\nbreak;\ncase 49:\n\n\t\tthis.$ = [$$[$0-1], {type:'addLinks', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 50:\n\n\t\tthis.$ = [$$[$0-1], {type:'addALink', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 51:\n\n\t\tthis.$ = [$$[$0-1], {type:'addProperties', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 52:\n\n\t\tthis.$ = [$$[$0-1], {type:'addDetails', actor:$$[$0-1].actor, text:$$[$0]}];\n \nbreak;\ncase 55:\n this.$ = [$$[$0-2], $$[$0]]; \nbreak;\ncase 56:\n this.$ = $$[$0]; \nbreak;\ncase 57:\n this.$ = yy.PLACEMENT.LEFTOF; \nbreak;\ncase 58:\n this.$ = yy.PLACEMENT.RIGHTOF; \nbreak;\ncase 59:\n this.$ = [$$[$0-4],$$[$0-1],{type: 'addMessage', from:$$[$0-4].actor, to:$$[$0-1].actor, signalType:$$[$0-3], msg:$$[$0]},\n\t {type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0-1]}\n\t ]\nbreak;\ncase 60:\n this.$ = [$$[$0-4],$$[$0-1],{type: 'addMessage', from:$$[$0-4].actor, to:$$[$0-1].actor, signalType:$$[$0-3], msg:$$[$0]},\n\t {type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0-4]}\n\t ]\nbreak;\ncase 61:\n this.$ = [$$[$0-3],$$[$0-1],{type: 'addMessage', from:$$[$0-3].actor, to:$$[$0-1].actor, signalType:$$[$0-2], msg:$$[$0]}]\nbreak;\ncase 62:\nthis.$={ type: 'addParticipant', actor:$$[$0]}\nbreak;\ncase 63:\n this.$ = yy.LINETYPE.SOLID_OPEN; \nbreak;\ncase 64:\n this.$ = yy.LINETYPE.DOTTED_OPEN; \nbreak;\ncase 65:\n this.$ = yy.LINETYPE.SOLID; \nbreak;\ncase 66:\n this.$ = yy.LINETYPE.DOTTED; \nbreak;\ncase 67:\n this.$ = yy.LINETYPE.SOLID_CROSS; \nbreak;\ncase 68:\n this.$ = yy.LINETYPE.DOTTED_CROSS; \nbreak;\ncase 69:\n this.$ = yy.LINETYPE.SOLID_POINT; \nbreak;\ncase 70:\n this.$ = yy.LINETYPE.DOTTED_POINT; \nbreak;\ncase 71:\nthis.$ = yy.parseMessage($$[$0].trim().substring(1)) \nbreak;\ncase 72:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 73:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 74:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 75:\n yy.parseDirective('}%%', 'close_directive', 'sequence'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,5:$V1,6:4,7:$V2,11:6,79:$V3},{1:[3]},{3:8,4:$V0,5:$V1,6:4,7:$V2,11:6,79:$V3},{3:9,4:$V0,5:$V1,6:4,7:$V2,11:6,79:$V3},{3:10,4:$V0,5:$V1,6:4,7:$V2,11:6,79:$V3},o([1,4,5,16,20,22,25,26,32,33,34,36,38,39,41,42,43,45,47,49,53,58,59,60,61,69,79],$V4,{8:11}),{12:12,80:[1,13]},{80:[2,72]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{13:49,14:[1,50],82:$Vu},o([14,82],[2,73]),o($Vv,[2,6]),{6:41,10:52,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},o($Vv,[2,8]),o($Vv,[2,9]),{17:53,69:$Vt},{17:54,69:$Vt},{5:[1,55]},{5:[1,58],23:[1,56],24:[1,57]},{17:59,69:$Vt},{17:60,69:$Vt},{5:[1,61]},{5:[1,62]},{5:[1,63]},{5:[1,64]},{5:[1,65]},o($Vv,[2,28]),o($Vv,[2,29]),{35:[1,66]},{37:[1,67]},o($Vv,[2,32]),{19:[1,68]},{19:[1,69]},{19:[1,70]},{19:[1,71]},{19:[1,72]},{19:[1,73]},{19:[1,74]},o($Vv,[2,40]),{66:75,70:[1,76],71:[1,77],72:[1,78],73:[1,79],74:[1,80],75:[1,81],76:[1,82],77:[1,83]},{54:84,56:[1,85],64:[1,86],65:[1,87]},{17:88,69:$Vt},{17:89,69:$Vt},{17:90,69:$Vt},{17:91,69:$Vt},o([5,18,63,70,71,72,73,74,75,76,77,78],[2,62]),{5:[1,92]},{15:93,81:[1,94]},{5:[2,75]},o($Vv,[2,7]),{5:[1,96],18:[1,95]},{5:[1,98],18:[1,97]},o($Vv,[2,16]),{5:[1,100],23:[1,99]},{5:[1,101]},o($Vv,[2,20]),{5:[1,102]},{5:[1,103]},o($Vv,[2,23]),o($Vv,[2,24]),o($Vv,[2,25]),o($Vv,[2,26]),o($Vv,[2,27]),o($Vv,[2,30]),o($Vv,[2,31]),o($Vw,$V4,{8:104}),o($Vw,$V4,{8:105}),o($Vw,$V4,{8:106}),o($Vx,$V4,{44:107,8:108}),o($Vy,$V4,{46:109,8:110}),o($Vz,$V4,{48:111,8:112}),o($Vw,$V4,{8:113}),{17:116,67:[1,114],68:[1,115],69:$Vt},o($VA,[2,63]),o($VA,[2,64]),o($VA,[2,65]),o($VA,[2,66]),o($VA,[2,67]),o($VA,[2,68]),o($VA,[2,69]),o($VA,[2,70]),{17:117,69:$Vt},{17:119,57:118,69:$Vt},{69:[2,57]},{69:[2,58]},{55:120,78:$VB},{55:122,78:$VB},{55:123,78:$VB},{55:124,78:$VB},o($VC,[2,10]),{13:125,82:$Vu},{82:[2,74]},{19:[1,126]},o($Vv,[2,13]),{19:[1,127]},o($Vv,[2,15]),{5:[1,128]},o($Vv,[2,18]),o($Vv,[2,19]),o($Vv,[2,21]),o($Vv,[2,22]),{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[1,129],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[1,130],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[1,131],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{40:[1,132]},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[2,45],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,52:[1,133],53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{40:[1,134]},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[2,43],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,51:[1,135],53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{40:[1,136]},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[2,41],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,50:[1,137],53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[1,138],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{17:139,69:$Vt},{17:140,69:$Vt},{55:141,78:$VB},{55:142,78:$VB},{55:143,78:$VB},{63:[1,144],78:[2,56]},{5:[2,49]},{5:[2,71]},{5:[2,50]},{5:[2,51]},{5:[2,52]},{5:[1,145]},{5:[1,146]},{5:[1,147]},o($Vv,[2,17]),o($Vv,[2,33]),o($Vv,[2,34]),o($Vv,[2,35]),o($Vv,[2,36]),{19:[1,148]},o($Vv,[2,37]),{19:[1,149]},o($Vv,[2,38]),{19:[1,150]},o($Vv,[2,39]),{55:151,78:$VB},{55:152,78:$VB},{5:[2,61]},{5:[2,47]},{5:[2,48]},{17:153,69:$Vt},o($VC,[2,11]),o($Vv,[2,12]),o($Vv,[2,14]),o($Vx,$V4,{8:108,44:154}),o($Vy,$V4,{8:110,46:155}),o($Vz,$V4,{8:112,48:156}),{5:[2,59]},{5:[2,60]},{78:[2,55]},{40:[2,46]},{40:[2,44]},{40:[2,42]}],\ndefaultActions: {7:[2,72],8:[2,1],9:[2,2],10:[2,3],51:[2,75],86:[2,57],87:[2,58],94:[2,74],120:[2,49],121:[2,71],122:[2,50],123:[2,51],124:[2,52],141:[2,61],142:[2,47],143:[2,48],151:[2,59],152:[2,60],153:[2,55],154:[2,46],155:[2,44],156:[2,42]},\nparseError: function parseError (str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer.lex() || EOF;\n if (typeof token !== 'number') {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState () {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules () {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState (n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 79; \nbreak;\ncase 1: this.begin('type_directive'); return 80; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 14; \nbreak;\ncase 3: this.popState(); this.popState(); return 82; \nbreak;\ncase 4:return 81;\nbreak;\ncase 5:return 5;\nbreak;\ncase 6:/* skip all whitespace */\nbreak;\ncase 7:/* skip same-line whitespace */\nbreak;\ncase 8:/* skip comments */\nbreak;\ncase 9:/* skip comments */\nbreak;\ncase 10:/* skip comments */\nbreak;\ncase 11:return 23;\nbreak;\ncase 12: this.begin('ID'); return 16; \nbreak;\ncase 13: this.begin('ID'); return 20; \nbreak;\ncase 14: yy_.yytext = yy_.yytext.trim(); this.begin('ALIAS'); return 69; \nbreak;\ncase 15: this.popState(); this.popState(); this.begin('LINE'); return 18; \nbreak;\ncase 16: this.popState(); this.popState(); return 5; \nbreak;\ncase 17: this.begin('LINE'); return 39; \nbreak;\ncase 18: this.begin('LINE'); return 41; \nbreak;\ncase 19: this.begin('LINE'); return 42; \nbreak;\ncase 20: this.begin('LINE'); return 43; \nbreak;\ncase 21: this.begin('LINE'); return 52; \nbreak;\ncase 22: this.begin('LINE'); return 45; \nbreak;\ncase 23: this.begin('LINE'); return 51; \nbreak;\ncase 24: this.begin('LINE'); return 47; \nbreak;\ncase 25: this.begin('LINE'); return 50; \nbreak;\ncase 26: this.begin('LINE'); return 49; \nbreak;\ncase 27: this.popState(); return 19; \nbreak;\ncase 28:return 40;\nbreak;\ncase 29:return 64;\nbreak;\ncase 30:return 65;\nbreak;\ncase 31:return 58;\nbreak;\ncase 32:return 59;\nbreak;\ncase 33:return 60;\nbreak;\ncase 34:return 61;\nbreak;\ncase 35:return 56;\nbreak;\ncase 36:return 53;\nbreak;\ncase 37: this.begin('ID'); return 25; \nbreak;\ncase 38: this.begin('ID'); return 26; \nbreak;\ncase 39:return 32;\nbreak;\ncase 40:return 33;\nbreak;\ncase 41: this.begin(\"acc_title\");return 34; \nbreak;\ncase 42: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 43: this.begin(\"acc_descr\");return 36; \nbreak;\ncase 44: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 45: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 46: this.popState(); \nbreak;\ncase 47:return \"acc_descr_multiline_value\";\nbreak;\ncase 48:return 7;\nbreak;\ncase 49:return 22;\nbreak;\ncase 50:return 24;\nbreak;\ncase 51:return 63;\nbreak;\ncase 52:return 5;\nbreak;\ncase 53: yy_.yytext = yy_.yytext.trim(); return 69; \nbreak;\ncase 54:return 72;\nbreak;\ncase 55:return 73;\nbreak;\ncase 56:return 70;\nbreak;\ncase 57:return 71;\nbreak;\ncase 58:return 74;\nbreak;\ncase 59:return 75;\nbreak;\ncase 60:return 76;\nbreak;\ncase 61:return 77;\nbreak;\ncase 62:return 78;\nbreak;\ncase 63:return 67;\nbreak;\ncase 64:return 68;\nbreak;\ncase 65:return 5;\nbreak;\ncase 66:return 'INVALID';\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:((?!\\n)\\s)+)/i,/^(?:#[^\\n]*)/i,/^(?:%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[0-9]+(?=[ \\n]+))/i,/^(?:participant\\b)/i,/^(?:actor\\b)/i,/^(?:[^\\->:\\n,;]+?(?=((?!\\n)\\s)+as(?!\\n)\\s|[#\\n;]|$))/i,/^(?:as\\b)/i,/^(?:(?:))/i,/^(?:loop\\b)/i,/^(?:rect\\b)/i,/^(?:opt\\b)/i,/^(?:alt\\b)/i,/^(?:else\\b)/i,/^(?:par\\b)/i,/^(?:and\\b)/i,/^(?:critical\\b)/i,/^(?:option\\b)/i,/^(?:break\\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\\n;]*)/i,/^(?:end\\b)/i,/^(?:left of\\b)/i,/^(?:right of\\b)/i,/^(?:links\\b)/i,/^(?:link\\b)/i,/^(?:properties\\b)/i,/^(?:details\\b)/i,/^(?:over\\b)/i,/^(?:note\\b)/i,/^(?:activate\\b)/i,/^(?:deactivate\\b)/i,/^(?:title\\s[^#\\n;]+)/i,/^(?:title:\\s[^#\\n;]+)/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:sequenceDiagram\\b)/i,/^(?:autonumber\\b)/i,/^(?:off\\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\\+\\->:\\n,;]+((?!(-x|--x|-\\)|--\\)))[\\-]*[^\\+\\->:\\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\\)])/i,/^(?:--[\\)])/i,/^(?::(?:(?:no)?wrap)?[^#\\n;]+)/i,/^(?:\\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"acc_descr_multiline\":{\"rules\":[46,47],\"inclusive\":false},\"acc_descr\":{\"rules\":[44],\"inclusive\":false},\"acc_title\":{\"rules\":[42],\"inclusive\":false},\"open_directive\":{\"rules\":[1,8],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3,8],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4,8],\"inclusive\":false},\"ID\":{\"rules\":[7,8,14],\"inclusive\":false},\"ALIAS\":{\"rules\":[7,8,15,16],\"inclusive\":false},\"LINE\":{\"rules\":[7,8,27],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,8,9,10,11,12,13,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,40,41,43,45,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,3],$V2=[1,5],$V3=[1,7],$V4=[2,5],$V5=[1,15],$V6=[1,17],$V7=[1,19],$V8=[1,20],$V9=[1,21],$Va=[1,22],$Vb=[1,33],$Vc=[1,23],$Vd=[1,24],$Ve=[1,25],$Vf=[1,26],$Vg=[1,27],$Vh=[1,30],$Vi=[1,31],$Vj=[1,32],$Vk=[1,35],$Vl=[1,36],$Vm=[1,37],$Vn=[1,38],$Vo=[1,34],$Vp=[1,41],$Vq=[1,4,5,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],$Vr=[1,4,5,12,13,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],$Vs=[1,4,5,7,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],$Vt=[4,5,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"SPACE\":4,\"NL\":5,\"directive\":6,\"SD\":7,\"document\":8,\"line\":9,\"statement\":10,\"idStatement\":11,\"DESCR\":12,\"-->\":13,\"HIDE_EMPTY\":14,\"scale\":15,\"WIDTH\":16,\"COMPOSIT_STATE\":17,\"STRUCT_START\":18,\"STRUCT_STOP\":19,\"STATE_DESCR\":20,\"AS\":21,\"ID\":22,\"FORK\":23,\"JOIN\":24,\"CHOICE\":25,\"CONCURRENT\":26,\"note\":27,\"notePosition\":28,\"NOTE_TEXT\":29,\"direction\":30,\"acc_title\":31,\"acc_title_value\":32,\"acc_descr\":33,\"acc_descr_value\":34,\"acc_descr_multiline_value\":35,\"openDirective\":36,\"typeDirective\":37,\"closeDirective\":38,\":\":39,\"argDirective\":40,\"direction_tb\":41,\"direction_bt\":42,\"direction_rl\":43,\"direction_lr\":44,\"eol\":45,\";\":46,\"EDGE_STATE\":47,\"left_of\":48,\"right_of\":49,\"open_directive\":50,\"type_directive\":51,\"arg_directive\":52,\"close_directive\":53,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"SPACE\",5:\"NL\",7:\"SD\",12:\"DESCR\",13:\"-->\",14:\"HIDE_EMPTY\",15:\"scale\",16:\"WIDTH\",17:\"COMPOSIT_STATE\",18:\"STRUCT_START\",19:\"STRUCT_STOP\",20:\"STATE_DESCR\",21:\"AS\",22:\"ID\",23:\"FORK\",24:\"JOIN\",25:\"CHOICE\",26:\"CONCURRENT\",27:\"note\",29:\"NOTE_TEXT\",31:\"acc_title\",32:\"acc_title_value\",33:\"acc_descr\",34:\"acc_descr_value\",35:\"acc_descr_multiline_value\",39:\":\",41:\"direction_tb\",42:\"direction_bt\",43:\"direction_rl\",44:\"direction_lr\",46:\";\",47:\"EDGE_STATE\",48:\"left_of\",49:\"right_of\",50:\"open_directive\",51:\"type_directive\",52:\"arg_directive\",53:\"close_directive\"},\nproductions_: [0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,1],[10,2],[10,1],[10,4],[10,3],[10,6],[10,1],[10,1],[10,1],[10,1],[10,4],[10,4],[10,1],[10,1],[10,2],[10,2],[10,1],[6,3],[6,5],[30,1],[30,1],[30,1],[30,1],[45,1],[45,1],[11,1],[11,1],[28,1],[28,1],[36,1],[37,1],[40,1],[38,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 4:\n /*console.warn('Root document', $$[$0]);*/ yy.setRootDoc($$[$0]);return $$[$0]; \nbreak;\ncase 5:\n this.$ = [] \nbreak;\ncase 6:\n\n if($$[$0]!='nl'){\n $$[$0-1].push($$[$0]);this.$ = $$[$0-1]\n }\n // console.warn('Got document',$$[$0-1], $$[$0]);\n \nbreak;\ncase 7: case 8:\n this.$ = $$[$0] \nbreak;\ncase 9:\n this.$='nl';\nbreak;\ncase 10:\n /*console.warn('got id and descr', $$[$0]);*/this.$={ stmt: 'state', id: $$[$0], type: 'default', description: ''};\nbreak;\ncase 11:\n /*console.warn('got id and descr', $$[$0-1], $$[$0].trim());*/this.$={ stmt: 'state', id: $$[$0-1], type: 'default', description: yy.trimColon($$[$0])};\nbreak;\ncase 12:\n\n /*console.warn('got id', $$[$0-2]);yy.addRelation($$[$0-2], $$[$0]);*/\n this.$={ stmt: 'relation', state1: { stmt: 'state', id: $$[$0-2], type: 'default', description: '' }, state2:{ stmt: 'state', id: $$[$0] ,type: 'default', description: ''}};\n \nbreak;\ncase 13:\n\n /*yy.addRelation($$[$0-3], $$[$0-1], $$[$0].substr(1).trim());*/\n this.$={ stmt: 'relation', state1: { stmt: 'state', id: $$[$0-3], type: 'default', description: '' }, state2:{ stmt: 'state', id: $$[$0-1] ,type: 'default', description: ''}, description: $$[$0].substr(1).trim()};\n \nbreak;\ncase 17:\n\n /* console.warn('Adding document for state without id ', $$[$0-3]);*/\n this.$={ stmt: 'state', id: $$[$0-3], type: 'default', description: '', doc: $$[$0-1] }\n \nbreak;\ncase 18:\n\n var id=$$[$0];\n var description = $$[$0-2].trim();\n if($$[$0].match(':')){\n var parts = $$[$0].split(':');\n id=parts[0];\n description = [description, parts[1]];\n }\n this.$={stmt: 'state', id: id, type: 'default', description: description};\n\n \nbreak;\ncase 19:\n\n // console.warn('Adding document for state with id zxzx', $$[$0-3], $$[$0-2], yy.getDirection()); yy.addDocument($$[$0-3]);\n this.$={ stmt: 'state', id: $$[$0-3], type: 'default', description: $$[$0-5], doc: $$[$0-1] }\n \nbreak;\ncase 20:\n\n this.$={ stmt: 'state', id: $$[$0], type: 'fork' }\n \nbreak;\ncase 21:\n\n this.$={ stmt: 'state', id: $$[$0], type: 'join' }\n \nbreak;\ncase 22:\n\n this.$={ stmt: 'state', id: $$[$0], type: 'choice' }\n \nbreak;\ncase 23:\n\n this.$={ stmt: 'state', id: yy.getDividerId(), type: 'divider' }\n \nbreak;\ncase 24:\n\n /* console.warn('got NOTE, position: ', $$[$0-2].trim(), 'id = ', $$[$0-1].trim(), 'note: ', $$[$0]);*/\n this.$={ stmt: 'state', id: $$[$0-1].trim(), note:{position: $$[$0-2].trim(), text: $$[$0].trim()}};\n \nbreak;\ncase 28:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 29: case 30:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 33:\n yy.setDirection('TB');this.$={stmt:'dir', value:'TB'};\nbreak;\ncase 34:\n yy.setDirection('BT');this.$={stmt:'dir', value:'BT'};\nbreak;\ncase 35:\n yy.setDirection('RL'); this.$={stmt:'dir', value:'RL'};\nbreak;\ncase 36:\n yy.setDirection('LR');this.$={stmt:'dir', value:'LR'};\nbreak;\ncase 39: case 40:\nthis.$=$$[$0];\nbreak;\ncase 43:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 44:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 45:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 46:\n yy.parseDirective('}%%', 'close_directive', 'state'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,5:$V1,6:4,7:$V2,36:6,50:$V3},{1:[3]},{3:8,4:$V0,5:$V1,6:4,7:$V2,36:6,50:$V3},{3:9,4:$V0,5:$V1,6:4,7:$V2,36:6,50:$V3},{3:10,4:$V0,5:$V1,6:4,7:$V2,36:6,50:$V3},o([1,4,5,14,15,17,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],$V4,{8:11}),{37:12,51:[1,13]},{51:[2,43]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:$V5,5:$V6,6:28,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:$Vh,33:$Vi,35:$Vj,36:6,41:$Vk,42:$Vl,43:$Vm,44:$Vn,47:$Vo,50:$V3},{38:39,39:[1,40],53:$Vp},o([39,53],[2,44]),o($Vq,[2,6]),{6:28,10:42,11:18,14:$V7,15:$V8,17:$V9,20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:$Vh,33:$Vi,35:$Vj,36:6,41:$Vk,42:$Vl,43:$Vm,44:$Vn,47:$Vo,50:$V3},o($Vq,[2,8]),o($Vq,[2,9]),o($Vq,[2,10],{12:[1,43],13:[1,44]}),o($Vq,[2,14]),{16:[1,45]},o($Vq,[2,16],{18:[1,46]}),{21:[1,47]},o($Vq,[2,20]),o($Vq,[2,21]),o($Vq,[2,22]),o($Vq,[2,23]),{28:48,29:[1,49],48:[1,50],49:[1,51]},o($Vq,[2,26]),o($Vq,[2,27]),{32:[1,52]},{34:[1,53]},o($Vq,[2,30]),o($Vr,[2,39]),o($Vr,[2,40]),o($Vq,[2,33]),o($Vq,[2,34]),o($Vq,[2,35]),o($Vq,[2,36]),o($Vs,[2,31]),{40:54,52:[1,55]},o($Vs,[2,46]),o($Vq,[2,7]),o($Vq,[2,11]),{11:56,22:$Vb,47:$Vo},o($Vq,[2,15]),o($Vt,$V4,{8:57}),{22:[1,58]},{22:[1,59]},{21:[1,60]},{22:[2,41]},{22:[2,42]},o($Vq,[2,28]),o($Vq,[2,29]),{38:61,53:$Vp},{53:[2,45]},o($Vq,[2,12],{12:[1,62]}),{4:$V5,5:$V6,6:28,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,19:[1,63],20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:$Vh,33:$Vi,35:$Vj,36:6,41:$Vk,42:$Vl,43:$Vm,44:$Vn,47:$Vo,50:$V3},o($Vq,[2,18],{18:[1,64]}),{29:[1,65]},{22:[1,66]},o($Vs,[2,32]),o($Vq,[2,13]),o($Vq,[2,17]),o($Vt,$V4,{8:67}),o($Vq,[2,24]),o($Vq,[2,25]),{4:$V5,5:$V6,6:28,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,19:[1,68],20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:$Vh,33:$Vi,35:$Vj,36:6,41:$Vk,42:$Vl,43:$Vm,44:$Vn,47:$Vo,50:$V3},o($Vq,[2,19])],\ndefaultActions: {7:[2,43],8:[2,1],9:[2,2],10:[2,3],50:[2,41],51:[2,42],55:[2,45]},\nparseError: function parseError (str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer.lex() || EOF;\n if (typeof token !== 'number') {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState () {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules () {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState (n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:return 41;\nbreak;\ncase 1:return 42;\nbreak;\ncase 2:return 43;\nbreak;\ncase 3:return 44;\nbreak;\ncase 4: this.begin('open_directive'); return 50; \nbreak;\ncase 5: this.begin('type_directive'); return 51; \nbreak;\ncase 6: this.popState(); this.begin('arg_directive'); return 39; \nbreak;\ncase 7: this.popState(); this.popState(); return 53; \nbreak;\ncase 8:return 52;\nbreak;\ncase 9:/* skip comments */\nbreak;\ncase 10:/* skip comments */{ /*console.log('Crap after close');*/ }\nbreak;\ncase 11:return 5;\nbreak;\ncase 12:/* skip all whitespace */\nbreak;\ncase 13:/* skip same-line whitespace */\nbreak;\ncase 14:/* skip comments */\nbreak;\ncase 15:/* skip comments */\nbreak;\ncase 16: this.pushState('SCALE'); /* console.log('Got scale', yy_.yytext);*/ return 15; \nbreak;\ncase 17:return 16;\nbreak;\ncase 18:this.popState();\nbreak;\ncase 19: this.begin(\"acc_title\");return 31; \nbreak;\ncase 20: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 21: this.begin(\"acc_descr\");return 33; \nbreak;\ncase 22: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 23: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 24: this.popState(); \nbreak;\ncase 25:return \"acc_descr_multiline_value\";\nbreak;\ncase 26: /*console.log('Starting STATE zxzx'+yy.getDirection());*/this.pushState('STATE'); \nbreak;\ncase 27:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim(); /*console.warn('Fork Fork: ',yy_.yytext);*/return 23;\nbreak;\ncase 28:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 24;\nbreak;\ncase 29:this.popState();yy_.yytext=yy_.yytext.slice(0,-10).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 25;\nbreak;\ncase 30:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Fork: ',yy_.yytext);*/return 23;\nbreak;\ncase 31:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 24;\nbreak;\ncase 32:this.popState();yy_.yytext=yy_.yytext.slice(0,-10).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 25;\nbreak;\ncase 33: return 41;\nbreak;\ncase 34: return 42;\nbreak;\ncase 35: return 43;\nbreak;\ncase 36: return 44;\nbreak;\ncase 37: /*console.log('Starting STATE_STRING zxzx');*/this.begin(\"STATE_STRING\");\nbreak;\ncase 38:this.popState();this.pushState('STATE_ID');return \"AS\";\nbreak;\ncase 39:this.popState();/* console.log('STATE_ID', yy_.yytext);*/return \"ID\";\nbreak;\ncase 40:this.popState();\nbreak;\ncase 41: /*console.log('Long description:', yy_.yytext);*/return \"STATE_DESCR\";\nbreak;\ncase 42:/*console.log('COMPOSIT_STATE', yy_.yytext);*/return 17;\nbreak;\ncase 43:this.popState();\nbreak;\ncase 44:this.popState();this.pushState('struct'); /*console.log('begin struct', yy_.yytext);*/return 18;\nbreak;\ncase 45: /*console.log('Ending struct');*/ this.popState(); return 19;\nbreak;\ncase 46:/* nothing */\nbreak;\ncase 47: this.begin('NOTE'); return 27; \nbreak;\ncase 48: this.popState();this.pushState('NOTE_ID');return 48;\nbreak;\ncase 49: this.popState();this.pushState('NOTE_ID');return 49;\nbreak;\ncase 50: this.popState();this.pushState('FLOATING_NOTE');\nbreak;\ncase 51:this.popState();this.pushState('FLOATING_NOTE_ID');return \"AS\";\nbreak;\ncase 52:/**/\nbreak;\ncase 53: /*console.log('Floating note text: ', yy_.yytext);*/return \"NOTE_TEXT\";\nbreak;\ncase 54:this.popState();/*console.log('Floating note ID', yy_.yytext);*/return \"ID\";\nbreak;\ncase 55: this.popState();this.pushState('NOTE_TEXT');/*console.log('Got ID for note', yy_.yytext);*/return 22;\nbreak;\ncase 56: this.popState();/*console.log('Got NOTE_TEXT for note',yy_.yytext);*/yy_.yytext = yy_.yytext.substr(2).trim();return 29;\nbreak;\ncase 57: this.popState();/*console.log('Got NOTE_TEXT for note',yy_.yytext);*/yy_.yytext = yy_.yytext.slice(0,-8).trim();return 29;\nbreak;\ncase 58: /*console.log('Got state diagram', yy_.yytext,'#');*/return 7; \nbreak;\ncase 59: /*console.log('Got state diagram', yy_.yytext,'#');*/return 7; \nbreak;\ncase 60: /*console.log('HIDE_EMPTY', yy_.yytext,'#');*/return 14; \nbreak;\ncase 61: /*console.log('EDGE_STATE=',yy_.yytext);*/ return 47;\nbreak;\ncase 62: /*console.log('=>ID=',yy_.yytext);*/ return 22;\nbreak;\ncase 63: yy_.yytext = yy_.yytext.trim(); /*console.log('Descr = ', yy_.yytext);*/ return 12; \nbreak;\ncase 64:return 13;\nbreak;\ncase 65:return 26;\nbreak;\ncase 66:return 5;\nbreak;\ncase 67:return 'INVALID';\nbreak;\n}\n},\nrules: [/^(?:.*direction\\s+TB[^\\n]*)/i,/^(?:.*direction\\s+BT[^\\n]*)/i,/^(?:.*direction\\s+RL[^\\n]*)/i,/^(?:.*direction\\s+LR[^\\n]*)/i,/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n]+)/i,/^(?:[\\s]+)/i,/^(?:((?!\\n)\\s)+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:scale\\s+)/i,/^(?:\\d+)/i,/^(?:\\s+width\\b)/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:state\\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\\[\\[fork\\]\\])/i,/^(?:.*\\[\\[join\\]\\])/i,/^(?:.*\\[\\[choice\\]\\])/i,/^(?:.*direction\\s+TB[^\\n]*)/i,/^(?:.*direction\\s+BT[^\\n]*)/i,/^(?:.*direction\\s+RL[^\\n]*)/i,/^(?:.*direction\\s+LR[^\\n]*)/i,/^(?:[\"])/i,/^(?:\\s*as\\s+)/i,/^(?:[^\\n\\{]*)/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[^\\n\\s\\{]+)/i,/^(?:\\n)/i,/^(?:\\{)/i,/^(?:\\})/i,/^(?:[\\n])/i,/^(?:note\\s+)/i,/^(?:left of\\b)/i,/^(?:right of\\b)/i,/^(?:\")/i,/^(?:\\s*as\\s*)/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[^\\n]*)/i,/^(?:\\s*[^:\\n\\s\\-]+)/i,/^(?:\\s*:[^:\\n;]+)/i,/^(?:[\\s\\S]*?end note\\b)/i,/^(?:stateDiagram\\s+)/i,/^(?:stateDiagram-v2\\s+)/i,/^(?:hide empty description\\b)/i,/^(?:\\[\\*\\])/i,/^(?:[^:\\n\\s\\-\\{]+)/i,/^(?:\\s*:[^:\\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"LINE\":{\"rules\":[13,14],\"inclusive\":false},\"close_directive\":{\"rules\":[13,14],\"inclusive\":false},\"arg_directive\":{\"rules\":[7,8,13,14],\"inclusive\":false},\"type_directive\":{\"rules\":[6,7,13,14],\"inclusive\":false},\"open_directive\":{\"rules\":[5,13,14],\"inclusive\":false},\"struct\":{\"rules\":[13,14,26,33,34,35,36,45,46,47,61,62,63,64,65],\"inclusive\":false},\"FLOATING_NOTE_ID\":{\"rules\":[54],\"inclusive\":false},\"FLOATING_NOTE\":{\"rules\":[51,52,53],\"inclusive\":false},\"NOTE_TEXT\":{\"rules\":[56,57],\"inclusive\":false},\"NOTE_ID\":{\"rules\":[55],\"inclusive\":false},\"NOTE\":{\"rules\":[48,49,50],\"inclusive\":false},\"acc_descr_multiline\":{\"rules\":[24,25],\"inclusive\":false},\"acc_descr\":{\"rules\":[22],\"inclusive\":false},\"acc_title\":{\"rules\":[20],\"inclusive\":false},\"SCALE\":{\"rules\":[17,18],\"inclusive\":false},\"ALIAS\":{\"rules\":[],\"inclusive\":false},\"STATE_ID\":{\"rules\":[39],\"inclusive\":false},\"STATE_STRING\":{\"rules\":[40,41],\"inclusive\":false},\"FORK_STATE\":{\"rules\":[],\"inclusive\":false},\"STATE\":{\"rules\":[13,14,27,28,29,30,31,32,37,38,42,43,44],\"inclusive\":false},\"ID\":{\"rules\":[13,14],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,1,2,3,4,9,10,11,12,14,15,16,19,21,23,26,44,47,58,59,60,61,62,63,64,66,67],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,5],$V2=[6,9,11,17,18,20,22,23,24,26],$V3=[1,15],$V4=[1,16],$V5=[1,17],$V6=[1,18],$V7=[1,19],$V8=[1,20],$V9=[1,24],$Va=[4,6,9,11,17,18,20,22,23,24,26];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"journey\":4,\"document\":5,\"EOF\":6,\"directive\":7,\"line\":8,\"SPACE\":9,\"statement\":10,\"NEWLINE\":11,\"openDirective\":12,\"typeDirective\":13,\"closeDirective\":14,\":\":15,\"argDirective\":16,\"title\":17,\"acc_title\":18,\"acc_title_value\":19,\"acc_descr\":20,\"acc_descr_value\":21,\"acc_descr_multiline_value\":22,\"section\":23,\"taskName\":24,\"taskData\":25,\"open_directive\":26,\"type_directive\":27,\"arg_directive\":28,\"close_directive\":29,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",4:\"journey\",6:\"EOF\",9:\"SPACE\",11:\"NEWLINE\",15:\":\",17:\"title\",18:\"acc_title\",19:\"acc_title_value\",20:\"acc_descr\",21:\"acc_descr_value\",22:\"acc_descr_multiline_value\",23:\"section\",24:\"taskName\",25:\"taskData\",26:\"open_directive\",27:\"type_directive\",28:\"arg_directive\",29:\"close_directive\"},\nproductions_: [0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,2],[10,1],[12,1],[13,1],[16,1],[14,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\n return $$[$0-1]; \nbreak;\ncase 3:\n this.$ = [] \nbreak;\ncase 4:\n$$[$0-1].push($$[$0]);this.$ = $$[$0-1]\nbreak;\ncase 5: case 6:\n this.$ = $$[$0] \nbreak;\ncase 7: case 8:\n this.$=[];\nbreak;\ncase 11:\nyy.setDiagramTitle($$[$0].substr(6));this.$=$$[$0].substr(6);\nbreak;\ncase 12:\n this.$=$$[$0].trim();yy.setAccTitle(this.$); \nbreak;\ncase 13: case 14:\n this.$=$$[$0].trim();yy.setAccDescription(this.$); \nbreak;\ncase 15:\nyy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);\nbreak;\ncase 16:\nyy.addTask($$[$0-1], $$[$0]);this.$='task';\nbreak;\ncase 18:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 19:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 20:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 21:\n yy.parseDirective('}%%', 'close_directive', 'journey'); \nbreak;\n}\n},\ntable: [{3:1,4:$V0,7:3,12:4,26:$V1},{1:[3]},o($V2,[2,3],{5:6}),{3:7,4:$V0,7:3,12:4,26:$V1},{13:8,27:[1,9]},{27:[2,18]},{6:[1,10],7:21,8:11,9:[1,12],10:13,11:[1,14],12:4,17:$V3,18:$V4,20:$V5,22:$V6,23:$V7,24:$V8,26:$V1},{1:[2,2]},{14:22,15:[1,23],29:$V9},o([15,29],[2,19]),o($V2,[2,8],{1:[2,1]}),o($V2,[2,4]),{7:21,10:25,12:4,17:$V3,18:$V4,20:$V5,22:$V6,23:$V7,24:$V8,26:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,11]),{19:[1,26]},{21:[1,27]},o($V2,[2,14]),o($V2,[2,15]),{25:[1,28]},o($V2,[2,17]),{11:[1,29]},{16:30,28:[1,31]},{11:[2,21]},o($V2,[2,5]),o($V2,[2,12]),o($V2,[2,13]),o($V2,[2,16]),o($Va,[2,9]),{14:32,29:$V9},{29:[2,20]},{11:[1,33]},o($Va,[2,10])],\ndefaultActions: {5:[2,18],7:[2,2],24:[2,21],31:[2,20]},\nparseError: function parseError (str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer.lex() || EOF;\n if (typeof token !== 'number') {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n\r\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState () {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules () {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState (n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 26; \nbreak;\ncase 1: this.begin('type_directive'); return 27; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 15; \nbreak;\ncase 3: this.popState(); this.popState(); return 29; \nbreak;\ncase 4:return 28;\nbreak;\ncase 5:/* skip comments */\nbreak;\ncase 6:/* skip comments */\nbreak;\ncase 7:return 11;\nbreak;\ncase 8:/* skip whitespace */\nbreak;\ncase 9:/* skip comments */\nbreak;\ncase 10:return 4;\nbreak;\ncase 11:return 17;\nbreak;\ncase 12: this.begin(\"acc_title\");return 18; \nbreak;\ncase 13: this.popState(); return \"acc_title_value\"; \nbreak;\ncase 14: this.begin(\"acc_descr\");return 20; \nbreak;\ncase 15: this.popState(); return \"acc_descr_value\"; \nbreak;\ncase 16: this.begin(\"acc_descr_multiline\");\nbreak;\ncase 17: this.popState(); \nbreak;\ncase 18:return \"acc_descr_multiline_value\";\nbreak;\ncase 19:return 23;\nbreak;\ncase 20:return 24;\nbreak;\ncase 21:return 25;\nbreak;\ncase 22:return 15;\nbreak;\ncase 23:return 6;\nbreak;\ncase 24:return 'INVALID';\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/i,/^(?:((?:(?!\\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\\}%%)/i,/^(?:((?:(?!\\}%%).|\\n)*))/i,/^(?:%(?!\\{)[^\\n]*)/i,/^(?:[^\\}]%%[^\\n]*)/i,/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:journey\\b)/i,/^(?:title\\s[^#\\n;]+)/i,/^(?:accTitle\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*:\\s*)/i,/^(?:(?!\\n||)*[^\\n]*)/i,/^(?:accDescr\\s*\\{\\s*)/i,/^(?:[\\}])/i,/^(?:[^\\}]*)/i,/^(?:section\\s[^#:\\n;]+)/i,/^(?:[^#:\\n;]+)/i,/^(?::[^#\\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"acc_descr_multiline\":{\"rules\":[17,18],\"inclusive\":false},\"acc_descr\":{\"rules\":[15],\"inclusive\":false},\"acc_title\":{\"rules\":[13],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23,24],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sanitizeUrl = void 0;\nvar invalidProtocolRegex = /^([^\\w]*)(javascript|data|vbscript)/im;\nvar htmlEntitiesRegex = /&#(\\w+)(^\\w|;)?/g;\nvar ctrlCharactersRegex = /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nvar urlSchemeRegex = /^([^:]+):/gm;\nvar relativeFirstCharacters = [\".\", \"/\"];\nfunction isRelativeUrlWithoutProtocol(url) {\n return relativeFirstCharacters.indexOf(url[0]) > -1;\n}\n// adapted from https://stackoverflow.com/a/29824550/2601552\nfunction decodeHtmlCharacters(str) {\n return str.replace(htmlEntitiesRegex, function (match, dec) {\n return String.fromCharCode(dec);\n });\n}\nfunction sanitizeUrl(url) {\n var sanitizedUrl = decodeHtmlCharacters(url || \"\")\n .replace(ctrlCharactersRegex, \"\")\n .trim();\n if (!sanitizedUrl) {\n return \"about:blank\";\n }\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n var urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n var urlScheme = urlSchemeParseResults[0];\n if (invalidProtocolRegex.test(urlScheme)) {\n return \"about:blank\";\n }\n return sanitizedUrl;\n}\nexports.sanitizeUrl = sanitizeUrl;\n","import utils from './utils';\nimport * as configApi from './config';\nimport { log } from './logger';\nimport { getDiagrams } from './diagram-api/diagramAPI';\nimport detectType from './diagram-api/detectType';\nclass Diagram {\n type = 'graph';\n parser;\n renderer;\n db;\n constructor(txt) {\n const diagrams = getDiagrams();\n const cnf = configApi.getConfig();\n this.txt = txt;\n this.type = detectType(txt, cnf);\n log.debug('Type ' + this.type);\n\n // console.log('this.type', this.type, diagrams[this.type]);\n // Setup diagram\n this.db = diagrams[this.type].db;\n this.renderer = diagrams[this.type].renderer;\n this.parser = diagrams[this.type].parser;\n this.parser.parser.yy = this.db;\n if (typeof diagrams[this.type].init === 'function') {\n diagrams[this.type].init(cnf);\n log.debug('Initialized diagram ' + this.type, cnf);\n }\n this.txt = this.txt + '\\n';\n\n this.parser.parser.yy.graphType = this.type;\n this.parser.parser.yy.parseError = (str, hash) => {\n const error = { str, hash };\n throw error;\n };\n this.parser.parse(this.txt);\n }\n parse(text) {\n var parseEncounteredException = false;\n try {\n text = text + '\\n';\n this.db.clear();\n\n this.parser.parse(text);\n } catch (error) {\n parseEncounteredException = true;\n // Is this the correct way to access mermiad's parseError()\n // method ? (or global.mermaid.parseError()) ?\n if (global.mermaid.parseError) {\n if (error.str != undefined) {\n // handle case where error string and hash were\n // wrapped in object like`const error = { str, hash };`\n global.mermaid.parseError(error.str, error.hash);\n } else {\n // assume it is just error string and pass it on\n global.mermaid.parseError(error);\n }\n } else {\n // No mermaid.parseError() handler defined, so re-throw it\n throw error;\n }\n }\n return !parseEncounteredException;\n }\n getParser() {\n return this.parser;\n }\n getType() {\n return this.type;\n }\n}\n\nexport default Diagram;\n","/**\n * This method will add a basic title and description element to a chart. The yy parser will need to\n * respond to getAccTitle and getAccDescription, where the title is the title element on the chart,\n * which is generally not displayed and the accDescription is the description element on the chart,\n * which is never displayed.\n *\n * The following charts display their title as a visual and accessibility element: gantt\n *\n * @param yy_parser\n * @param svg\n * @param id\n */\nexport default function addSVGAccessibilityFields(yy_parser, svg, id) {\n if (typeof svg.insert === 'undefined') {\n return;\n }\n\n let title_string = yy_parser.getAccTitle();\n let description = yy_parser.getAccDescription();\n svg.attr('role', 'img').attr('aria-labelledby', 'chart-title-' + id + ' chart-desc-' + id);\n svg\n .insert('desc', ':first-child')\n .attr('id', 'chart-desc-' + id)\n .text(description);\n svg\n .insert('title', ':first-child')\n .attr('id', 'chart-title-' + id)\n .text(title_string);\n}\n","/**\n * @function assignWithDepth Extends the functionality of {@link ObjectConstructor.assign} with the\n * ability to merge arbitrary-depth objects For each key in src with path `k` (recursively)\n * performs an Object.assign(dst[`k`], src[`k`]) with a slight change from the typical handling of\n * undefined for dst[`k`]: instead of raising an error, dst[`k`] is auto-initialized to {} and\n * effectively merged with src[`k`]

Additionally, dissimilar types will not clobber unless the\n * config.clobber parameter === true. Example:\n *\n * ```js\n * let config_0 = { foo: { bar: 'bar' }, bar: 'foo' };\n * let config_1 = { foo: 'foo', bar: 'bar' };\n * let result = assignWithDepth(config_0, config_1);\n * console.log(result);\n * //-> result: { foo: { bar: 'bar' }, bar: 'bar' }\n * ```\n *\n * Traditional Object.assign would have clobbered foo in config_0 with foo in config_1. If src is a\n * destructured array of objects and dst is not an array, assignWithDepth will apply each element\n * of src to dst in order.\n * @param dst\n * @param src\n * @param config\n * @param dst\n * @param src\n * @param config\n * @param dst\n * @param src\n * @param config\n * @param {any} dst - The destination of the merge\n * @param {any} src - The source object(s) to merge into destination\n * @param {{ depth: number; clobber: boolean }} [config={ depth: 2, clobber: false }] - Depth: depth\n * to traverse within src and dst for merging - clobber: should dissimilar types clobber (default:\n * { depth: 2, clobber: false }). Default is `{ depth: 2, clobber: false }`\n * @returns {any}\n */\nconst assignWithDepth = function (dst, src, config) {\n const { depth, clobber } = Object.assign({ depth: 2, clobber: false }, config);\n if (Array.isArray(src) && !Array.isArray(dst)) {\n src.forEach((s) => assignWithDepth(dst, s, config));\n return dst;\n } else if (Array.isArray(src) && Array.isArray(dst)) {\n src.forEach((s) => {\n if (dst.indexOf(s) === -1) {\n dst.push(s);\n }\n });\n return dst;\n }\n if (typeof dst === 'undefined' || depth <= 0) {\n if (dst !== undefined && dst !== null && typeof dst === 'object' && typeof src === 'object') {\n return Object.assign(dst, src);\n } else {\n return src;\n }\n }\n if (typeof src !== 'undefined' && typeof dst === 'object' && typeof src === 'object') {\n Object.keys(src).forEach((key) => {\n if (\n typeof src[key] === 'object' &&\n (dst[key] === undefined || typeof dst[key] === 'object')\n ) {\n if (dst[key] === undefined) {\n dst[key] = Array.isArray(src[key]) ? [] : {};\n }\n dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });\n } else if (clobber || (typeof dst[key] !== 'object' && typeof src[key] !== 'object')) {\n dst[key] = src[key];\n }\n });\n }\n return dst;\n};\n\nexport default assignWithDepth;\n","import { sanitizeText as _sanitizeText } from './diagrams/common/common';\nimport { getConfig } from './config';\nlet title = '';\nlet diagramTitle = '';\nlet description = '';\nconst sanitizeText = (txt) => _sanitizeText(txt, getConfig());\n\nexport const clear = function () {\n title = '';\n description = '';\n diagramTitle = '';\n};\n\nexport const setAccTitle = function (txt) {\n title = sanitizeText(txt).replace(/^\\s+/g, '');\n};\n\nexport const getAccTitle = function () {\n return title || diagramTitle;\n};\n\nexport const setAccDescription = function (txt) {\n description = sanitizeText(txt).replace(/\\n\\s+/g, '\\n');\n};\n\nexport const getAccDescription = function () {\n return description;\n};\n\nexport const setDiagramTitle = function (txt) {\n diagramTitle = sanitizeText(txt);\n};\n\nexport const getDiagramTitle = function () {\n return diagramTitle;\n};\n\nexport default {\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle: getDiagramTitle,\n getAccDescription,\n setAccDescription,\n clear,\n};\n","import assignWithDepth from './assignWithDepth';\nimport { log } from './logger';\nimport theme from './themes';\nimport config from './defaultConfig';\n\nexport const defaultConfig = Object.freeze(config);\n\nlet siteConfig = assignWithDepth({}, defaultConfig);\nlet configFromInitialize;\nlet directives = [];\nlet currentConfig = assignWithDepth({}, defaultConfig);\n\nexport const updateCurrentConfig = (siteCfg, _directives) => {\n // start with config beeing the siteConfig\n let cfg = assignWithDepth({}, siteCfg);\n // let sCfg = assignWithDepth(defaultConfig, siteConfigDelta);\n\n // Join directives\n let sumOfDirectives = {};\n for (let i = 0; i < _directives.length; i++) {\n const d = _directives[i];\n sanitize(d);\n\n // Apply the data from the directive where the the overrides the themeVariables\n sumOfDirectives = assignWithDepth(sumOfDirectives, d);\n }\n\n cfg = assignWithDepth(cfg, sumOfDirectives);\n\n if (sumOfDirectives.theme && theme[sumOfDirectives.theme]) {\n const tmpConfigFromInitialize = assignWithDepth({}, configFromInitialize);\n const themeVariables = assignWithDepth(\n tmpConfigFromInitialize.themeVariables || {},\n sumOfDirectives.themeVariables\n );\n cfg.themeVariables = theme[cfg.theme].getThemeVariables(themeVariables);\n }\n\n currentConfig = cfg;\n return cfg;\n};\n\n/**\n * ## setSiteConfig\n *\n * | Function | Description | Type | Values |\n * | ------------- | ------------------------------------- | ----------- | --------------------------------------- |\n * | setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array |\n *\n * **Notes:** Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls\n * to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig)\n * will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this\n * function _Default value: At default, will mirror Global Config_\n *\n * @param conf - The base currentConfig to use as siteConfig\n * @returns {object} - The siteConfig\n */\nexport const setSiteConfig = (conf) => {\n siteConfig = assignWithDepth({}, defaultConfig);\n siteConfig = assignWithDepth(siteConfig, conf);\n\n if (conf.theme && theme[conf.theme]) {\n siteConfig.themeVariables = theme[conf.theme].getThemeVariables(conf.themeVariables);\n }\n\n currentConfig = updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n};\n\nexport const saveConfigFromInitialize = (conf) => {\n configFromInitialize = assignWithDepth({}, conf);\n};\n\nexport const updateSiteConfig = (conf) => {\n siteConfig = assignWithDepth(siteConfig, conf);\n updateCurrentConfig(siteConfig, directives);\n\n return siteConfig;\n};\n/**\n * ## getSiteConfig\n *\n * | Function | Description | Type | Values |\n * | ------------- | ------------------------------------------------- | ----------- | -------------------------------- |\n * | setSiteConfig | Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig |\n *\n * **Notes**: Returns **any** values in siteConfig.\n *\n * @returns {object} - The siteConfig\n */\nexport const getSiteConfig = () => {\n return assignWithDepth({}, siteConfig);\n};\n/**\n * ## setConfig\n *\n * | Function | Description | Type | Values |\n * | ------------- | ------------------------------------- | ----------- | --------------------------------------- |\n * | setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array |\n *\n * **Notes**: Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure\n * keys. Any values found in conf with key found in siteConfig.secure will be replaced with the\n * corresponding siteConfig value.\n *\n * @param {any} conf - The potential currentConfig\n * @returns {any} - The currentConfig merged with the sanitized conf\n */\nexport const setConfig = (conf) => {\n // sanitize(conf);\n // Object.keys(conf).forEach(key => {\n // const manipulator = manipulators[key];\n // conf[key] = manipulator ? manipulator(conf[key]) : conf[key];\n // });\n\n assignWithDepth(currentConfig, conf);\n\n return getConfig();\n};\n\n/**\n * ## getConfig\n *\n * | Function | Description | Type | Return Values |\n * | --------- | ------------------------- | ----------- | ------------------------------ |\n * | getConfig | Obtains the currentConfig | Get Request | Any Values from current Config |\n *\n * **Notes**: Returns **any** the currentConfig\n *\n * @returns {any} - The currentConfig\n */\nexport const getConfig = () => {\n return assignWithDepth({}, currentConfig);\n};\n/**\n * ## sanitize\n *\n * | Function | Description | Type | Values |\n * | -------- | -------------------------------------- | ----------- | ------ |\n * | sanitize | Sets the siteConfig to desired values. | Put Request | None |\n *\n * Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies\n * options in-place\n *\n * @param {any} options - The potential setConfig parameter\n */\nexport const sanitize = (options) => {\n // Checking that options are not in the list of excluded options\n Object.keys(siteConfig.secure).forEach((key) => {\n if (typeof options[siteConfig.secure[key]] !== 'undefined') {\n // DO NOT attempt to print options[siteConfig.secure[key]] within `${}` as a malicious script\n // can exploit the logger's attempt to stringify the value and execute arbitrary code\n log.debug(\n `Denied attempt to modify a secure key ${siteConfig.secure[key]}`,\n options[siteConfig.secure[key]]\n );\n delete options[siteConfig.secure[key]];\n }\n });\n\n // Check that there no attempts of prototype pollution\n Object.keys(options).forEach((key) => {\n if (key.indexOf('__') === 0) {\n delete options[key];\n }\n });\n // Check that there no attempts of xss, there should be no tags at all in the directive\n // blocking data urls as base64 urls can contain svgs with inline script tags\n Object.keys(options).forEach((key) => {\n if (typeof options[key] === 'string') {\n if (\n options[key].indexOf('<') > -1 ||\n options[key].indexOf('>') > -1 ||\n options[key].indexOf('url(data:') > -1\n ) {\n delete options[key];\n }\n }\n if (typeof options[key] === 'object') {\n sanitize(options[key]);\n }\n });\n};\n\n/**\n * Pushes in a directive to the configuration\n *\n * @param {object} directive The directive to push in\n */\nexport const addDirective = (directive) => {\n if (directive.fontFamily) {\n if (!directive.themeVariables) {\n directive.themeVariables = { fontFamily: directive.fontFamily };\n } else {\n if (!directive.themeVariables.fontFamily) {\n directive.themeVariables = { fontFamily: directive.fontFamily };\n }\n }\n }\n directives.push(directive);\n updateCurrentConfig(siteConfig, directives);\n};\n\n/**\n * ## reset\n *\n * | Function | Description | Type | Required | Values |\n * | -------- | ---------------------------- | ----------- | -------- | ------ |\n * | reset | Resets currentConfig to conf | Put Request | Required | None |\n *\n * ## conf\n *\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------------------------------------------------- | ---------- | -------- | -------------------------------------------- |\n * | conf | base set of values, which currentConfig could be **reset** to. | Dictionary | Required | Any Values, with respect to the secure Array |\n *\n * **Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`)\n */\nexport const reset = () => {\n // Replace current config with siteConfig\n directives = [];\n updateCurrentConfig(siteConfig, directives);\n};\n","import intersectRect from './intersect/intersect-rect';\nimport { log } from '../logger';\nimport createLabel from './createLabel';\nimport { select } from 'd3';\nimport { getConfig } from '../config';\nimport { evaluate } from '../diagrams/common/common';\n\nconst rect = (parent, node) => {\n log.trace('Creating subgraph rect for ', node.id, node);\n\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'cluster' + (node.class ? ' ' + node.class : ''))\n .attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'cluster-label');\n\n const text = label\n .node()\n .appendChild(createLabel(node.labelText, node.labelStyle, undefined, true));\n\n // Get the size of the label\n let bbox = text.getBBox();\n\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n const width = node.width <= bbox.width + padding ? bbox.width + padding : node.width;\n if (node.width <= bbox.width + padding) {\n node.diff = (bbox.width - node.width) / 2 - node.padding / 2;\n } else {\n node.diff = -node.padding / 2;\n }\n\n log.trace('Data ', node, JSON.stringify(node));\n // center the rect around its coordinate\n rect\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', node.x - width / 2)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', width)\n .attr('height', node.height + padding);\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' +\n (node.x - bbox.width / 2) +\n ', ' +\n (node.y - node.height / 2 + node.padding / 3) +\n ')'\n );\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\n/**\n * Non visible cluster where the note is group with its\n *\n * @param {any} parent\n * @param {any} node\n * @returns {any} ShapeSvg\n */\nconst noteGroup = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent.insert('g').attr('class', 'note-cluster').attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n // center the rect around its coordinate\n rect\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', node.x - node.width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', node.width + padding)\n .attr('height', node.height + padding)\n .attr('fill', 'none');\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\nconst roundedWithTitle = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent.insert('g').attr('class', node.classes).attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'cluster-label');\n const innerRect = shapeSvg.append('rect');\n\n const text = label\n .node()\n .appendChild(createLabel(node.labelText, node.labelStyle, undefined, true));\n\n // Get the size of the label\n let bbox = text.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n bbox = text.getBBox();\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (bbox.width + node.padding * 0 - node.width) / 2;\n } else {\n node.diff = -node.padding / 2;\n }\n\n // center the rect around its coordinate\n rect\n .attr('class', 'outer')\n .attr('x', node.x - width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', width + padding)\n .attr('height', node.height + padding);\n innerRect\n .attr('class', 'inner')\n .attr('x', node.x - width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding + bbox.height - 1)\n .attr('width', width + padding)\n .attr('height', node.height + padding - bbox.height - 3);\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' +\n (node.x - bbox.width / 2) +\n ', ' +\n (node.y -\n node.height / 2 -\n node.padding / 3 +\n (evaluate(getConfig().flowchart.htmlLabels) ? 5 : 3)) +\n ')'\n );\n\n const rectBox = rect.node().getBBox();\n node.height = rectBox.height;\n\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst divider = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent.insert('g').attr('class', node.classes).attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n // center the rect around its coordinate\n rect\n .attr('class', 'divider')\n .attr('x', node.x - node.width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2)\n .attr('width', node.width + padding)\n .attr('height', node.height + padding);\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.diff = -node.padding / 2;\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst shapes = { rect, roundedWithTitle, noteGroup, divider };\n\nlet clusterElems = {};\n\nexport const insertCluster = (elem, node) => {\n log.trace('Inserting cluster');\n const shape = node.shape || 'rect';\n clusterElems[node.id] = shapes[shape](elem, node);\n};\nexport const getClusterTitleWidth = (elem, node) => {\n const label = createLabel(node.labelText, node.labelStyle, undefined, true);\n elem.node().appendChild(label);\n const width = label.getBBox().width;\n elem.node().removeChild(label);\n return width;\n};\n\nexport const clear = () => {\n clusterElems = {};\n};\n\nexport const positionCluster = (node) => {\n log.info('Position cluster (' + node.id + ', ' + node.x + ', ' + node.y + ')');\n const el = clusterElems[node.id];\n\n el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');\n};\n","import { select } from 'd3';\nimport { log } from '../logger'; // eslint-disable-line\nimport { getConfig } from '../config';\nimport { sanitizeText, evaluate } from '../diagrams/common/common';\nimport { decodeEntities } from '../mermaidAPI';\n\nconst sanitizeTxt = (txt) => sanitizeText(txt, getConfig());\n\n/**\n * @param dom\n * @param styleFn\n */\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr('style', styleFn);\n }\n}\n\n/**\n * @param {any} node\n * @returns {SVGForeignObjectElement} Node\n */\nfunction addHtmlLabel(node) {\n const fo = select(document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject'));\n const div = fo.append('xhtml:div');\n\n const label = node.label;\n const labelClass = node.isNode ? 'nodeLabel' : 'edgeLabel';\n div.html(\n '' +\n label +\n ''\n );\n\n applyStyle(div, node.labelStyle);\n div.style('display', 'inline-block');\n // Fix for firefox\n div.style('white-space', 'nowrap');\n div.attr('xmlns', 'http://www.w3.org/1999/xhtml');\n return fo.node();\n}\n\nconst createLabel = (_vertexText, style, isTitle, isNode) => {\n let vertexText = _vertexText || '';\n if (typeof vertexText === 'object') vertexText = vertexText[0];\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?\n vertexText = vertexText.replace(/\\\\n|\\n/g, '
');\n log.info('vertexText' + vertexText);\n const node = {\n isNode,\n label: decodeEntities(vertexText).replace(\n /fa[lrsb]?:fa-[\\w-]+/g,\n (s) => ``\n ),\n labelStyle: style.replace('fill:', 'color:'),\n };\n let vertexNode = addHtmlLabel(node);\n // vertexNode.parentNode.removeChild(vertexNode);\n return vertexNode;\n } else {\n const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n svgLabel.setAttribute('style', style.replace('color:', 'fill:'));\n let rows = [];\n if (typeof vertexText === 'string') {\n rows = vertexText.split(/\\\\n|\\n|/gi);\n } else if (Array.isArray(vertexText)) {\n rows = vertexText;\n } else {\n rows = [];\n }\n\n for (let j = 0; j < rows.length; j++) {\n const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');\n tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n tspan.setAttribute('dy', '1em');\n tspan.setAttribute('x', '0');\n if (isTitle) {\n tspan.setAttribute('class', 'title-row');\n } else {\n tspan.setAttribute('class', 'row');\n }\n tspan.textContent = rows[j].trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }\n};\n\nexport default createLabel;\n","import { log } from '../logger'; // eslint-disable-line\nimport createLabel from './createLabel';\nimport { line, curveBasis, select } from 'd3';\nimport { getConfig } from '../config';\nimport utils from '../utils';\nimport { evaluate } from '../diagrams/common/common';\n\nlet edgeLabels = {};\nlet terminalLabels = {};\n\nexport const clear = () => {\n edgeLabels = {};\n terminalLabels = {};\n};\n\nexport const insertEdgeLabel = (elem, edge) => {\n // Create the actual text element\n const labelElement = createLabel(edge.label, edge.labelStyle);\n\n // Create outer g, edgeLabel, this will be positioned after graph layout\n const edgeLabel = elem.insert('g').attr('class', 'edgeLabel');\n\n // Create inner g, label, this will be positioned now for centering the text\n const label = edgeLabel.insert('g').attr('class', 'label');\n label.node().appendChild(labelElement);\n\n // Center the label\n let bbox = labelElement.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')');\n\n // Make element accessible by id for positioning\n edgeLabels[edge.id] = edgeLabel;\n\n // Update the abstract data of the edge with the new information about its width and height\n edge.width = bbox.width;\n edge.height = bbox.height;\n\n let fo;\n if (edge.startLabelLeft) {\n // Create the actual text element\n const startLabelElement = createLabel(edge.startLabelLeft, edge.labelStyle);\n const startEdgeLabelLeft = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = startEdgeLabelLeft.insert('g').attr('class', 'inner');\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n // Create the actual text element\n const startLabelElement = createLabel(edge.startLabelRight, edge.labelStyle);\n const startEdgeLabelRight = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = startEdgeLabelRight.insert('g').attr('class', 'inner');\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n // Create the actual text element\n const endLabelElement = createLabel(edge.endLabelLeft, edge.labelStyle);\n const endEdgeLabelLeft = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = endEdgeLabelLeft.insert('g').attr('class', 'inner');\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n // Create the actual text element\n const endLabelElement = createLabel(edge.endLabelRight, edge.labelStyle);\n const endEdgeLabelRight = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = endEdgeLabelRight.insert('g').attr('class', 'inner');\n\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n};\n\n/**\n * @param {any} fo\n * @param {any} value\n */\nfunction setTerminalWidth(fo, value) {\n if (getConfig().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + 'px';\n fo.style.height = '12px';\n }\n}\n\nexport const positionEdgeLabel = (edge, paths) => {\n log.info('Moving label abc78 ', edge.id, edge.label, edgeLabels[edge.id]);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n if (edge.label) {\n const el = edgeLabels[edge.id];\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // // debugger;\n const pos = utils.calcLabelPosition(path);\n log.info('Moving label from (', x, ',', y, ') to (', pos.x, ',', pos.y, ') abc78');\n // x = pos.x;\n // y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n\n //let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n if (edge.startLabelLeft) {\n const el = terminalLabels[edge.id].startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, 'start_left', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.startLabelRight) {\n const el = terminalLabels[edge.id].startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n 'start_right',\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels[edge.id].endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, 'end_left', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.endLabelRight) {\n const el = terminalLabels[edge.id].endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, 'end_right', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n};\n\nconst outsideNode = (node, point) => {\n // log.warn('Checking bounds ', node, point);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point.x - x);\n const dy = Math.abs(point.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n if (dx >= w || dy >= h) {\n return true;\n }\n return false;\n};\n\nexport const intersection = (node, outsidePoint, insidePoint) => {\n log.warn(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n\n const dx = Math.abs(x - insidePoint.x);\n // const dy = Math.abs(y - insidePoint.y);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n\n // const edges = {\n // x1: x - w,\n // x2: x + w,\n // y1: y - h,\n // y2: y + h\n // };\n\n // if (\n // outsidePoint.x === edges.x1 ||\n // outsidePoint.x === edges.x2 ||\n // outsidePoint.y === edges.y1 ||\n // outsidePoint.y === edges.y2\n // ) {\n // log.warn('abc89 calc equals on edge', outsidePoint, edges);\n // return outsidePoint;\n // }\n\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n // log.warn();\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) { // eslint-disable-line\n // Intersection is top or bottom of rect.\n // let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = (R * q) / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q,\n };\n\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n\n log.warn(`abc89 topp/bott calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n\n return res;\n } else {\n // Intersection onn sides of rect\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n // r = outsidePoint.x - w - x;\n r = x - w - outsidePoint.x;\n }\n let q = (Q * r) / R;\n // OK let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x + dx - w;\n // OK let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : outsidePoint.x + r;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n // let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : outsidePoint.x + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.warn(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n\n return { x: _x, y: _y };\n }\n};\n/**\n * This function will page a path and node where the last point(s) in the path is inside the node\n * and return an update path ending by the border of the node.\n *\n * @param {Array} _points\n * @param {any} boundryNode\n * @returns {Array} Points\n */\nconst cutPathAtIntersect = (_points, boundryNode) => {\n log.warn('abc88 cutPathAtIntersect', _points, boundryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point) => {\n // const node = clusterDb[edge.toCluster].node;\n log.info('abc88 checking point', point, boundryNode);\n\n // check if point is inside the boundry rect\n if (!outsideNode(boundryNode, point) && !isInside) {\n // First point inside the rect found\n // Calc the intersection coord between the point anf the last point outside the rect\n const inter = intersection(boundryNode, lastPointOutside, point);\n log.warn('abc88 inside', point, lastPointOutside, inter);\n log.warn('abc88 intersection', inter);\n\n // // Check case where the intersection is the same as the last point\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || (p.x === inter.x && p.y === inter.y);\n });\n // // if (!pointPresent) {\n if (!points.find((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn('abc88 no intersect', inter, points);\n }\n // points.push(inter);\n isInside = true;\n } else {\n // Outside\n log.warn('abc88 outside', point, lastPointOutside);\n lastPointOutside = point;\n // points.push(point);\n if (!isInside) points.push(point);\n }\n });\n log.warn('abc88 returning points', points);\n return points;\n};\n\n//(edgePaths, e, edge, clusterDb, diagramtype, graph)\nexport const insertEdge = function (elem, e, edge, clusterDb, diagramType, graph) {\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = graph.node(e.v);\n var head = graph.node(e.w);\n\n log.info('abc88 InsertEdge: ', edge);\n if (head.intersect && tail.intersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.info(\n 'Last point',\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n if (edge.toCluster) {\n log.info('to cluster abc88', clusterDb[edge.toCluster]);\n points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node);\n // log.trace('edge', edge);\n // points = [];\n // let lastPointOutside; // = edge.points[0];\n // let isInside = false;\n // edge.points.forEach(point => {\n // const node = clusterDb[edge.toCluster].node;\n // log.warn('checking from', edge.fromCluster, point, node);\n\n // if (!outsideNode(node, point) && !isInside) {\n // log.trace('inside', edge.toCluster, point, lastPointOutside);\n\n // // First point inside the rect\n // const inter = intersection(node, lastPointOutside, point);\n\n // let pointPresent = false;\n // points.forEach(p => {\n // pointPresent = pointPresent || (p.x === inter.x && p.y === inter.y);\n // });\n // // if (!pointPresent) {\n // if (!points.find(e => e.x === inter.x && e.y === inter.y)) {\n // points.push(inter);\n // } else {\n // log.warn('no intersect', inter, points);\n // }\n // isInside = true;\n // } else {\n // // outside\n // lastPointOutside = point;\n // if (!isInside) points.push(point);\n // }\n // });\n pointsHasChanged = true;\n }\n\n if (edge.fromCluster) {\n log.info('from cluster abc88', clusterDb[edge.fromCluster]);\n points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse();\n\n pointsHasChanged = true;\n }\n\n // The data for our line\n const lineData = points.filter((p) => !Number.isNaN(p.y));\n\n // This is the accessor function we talked about above\n let curve;\n // Currently only flowcharts get the curve from the settings, perhaps this should\n // be expanded to a common setting? Restricting it for now in order not to cause side-effects that\n // have not been thought through\n if (diagramType === 'graph' || diagramType === 'flowchart') {\n curve = edge.curve || curveBasis;\n } else {\n curve = curveBasis;\n }\n // curve = curveLinear;\n const lineFunction = line()\n .x(function (d) {\n return d.x;\n })\n .y(function (d) {\n return d.y;\n })\n .curve(curve);\n\n // Contruct stroke classes based on properties\n let strokeClasses;\n switch (edge.thickness) {\n case 'normal':\n strokeClasses = 'edge-thickness-normal';\n break;\n case 'thick':\n strokeClasses = 'edge-thickness-thick';\n break;\n default:\n strokeClasses = '';\n }\n switch (edge.pattern) {\n case 'solid':\n strokeClasses += ' edge-pattern-solid';\n break;\n case 'dotted':\n strokeClasses += ' edge-pattern-dotted';\n break;\n case 'dashed':\n strokeClasses += ' edge-pattern-dashed';\n break;\n }\n\n const svgPath = elem\n .append('path')\n .attr('d', lineFunction(lineData))\n .attr('id', edge.id)\n .attr('class', ' ' + strokeClasses + (edge.classes ? ' ' + edge.classes : ''))\n .attr('style', edge.style);\n\n // DEBUG code, adds a red circle at each edge coordinate\n // edge.points.forEach(point => {\n // elem\n // .append('circle')\n // .style('stroke', 'red')\n // .style('fill', 'red')\n // .attr('r', 1)\n // .attr('cx', point.x)\n // .attr('cy', point.y);\n // });\n\n let url = '';\n if (getConfig().state.arrowMarkerAbsolute) {\n url =\n window.location.protocol +\n '//' +\n window.location.host +\n window.location.pathname +\n window.location.search;\n url = url.replace(/\\(/g, '\\\\(');\n url = url.replace(/\\)/g, '\\\\)');\n }\n log.info('arrowTypeStart', edge.arrowTypeStart);\n log.info('arrowTypeEnd', edge.arrowTypeEnd);\n\n switch (edge.arrowTypeStart) {\n case 'arrow_cross':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-crossStart' + ')');\n break;\n case 'arrow_point':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-pointStart' + ')');\n break;\n case 'arrow_barb':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-barbStart' + ')');\n break;\n case 'arrow_circle':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-circleStart' + ')');\n break;\n case 'aggregation':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-aggregationStart' + ')');\n break;\n case 'extension':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-extensionStart' + ')');\n break;\n case 'composition':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-compositionStart' + ')');\n break;\n case 'dependency':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-dependencyStart' + ')');\n break;\n default:\n }\n switch (edge.arrowTypeEnd) {\n case 'arrow_cross':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-crossEnd' + ')');\n break;\n case 'arrow_point':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-pointEnd' + ')');\n break;\n case 'arrow_barb':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-barbEnd' + ')');\n break;\n case 'arrow_circle':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-circleEnd' + ')');\n break;\n case 'aggregation':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-aggregationEnd' + ')');\n break;\n case 'extension':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-extensionEnd' + ')');\n break;\n case 'composition':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-compositionEnd' + ')');\n break;\n case 'dependency':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-dependencyEnd' + ')');\n break;\n default:\n }\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n};\n","import dagre from 'dagre';\nimport graphlib from 'graphlib';\nimport insertMarkers from './markers';\nimport { updateNodeBounds } from './shapes/util';\nimport {\n clear as clearGraphlib,\n clusterDb,\n adjustClustersAndEdges,\n findNonClusterChild,\n sortNodesByHierarchy,\n} from './mermaid-graphlib';\nimport { insertNode, positionNode, clear as clearNodes, setNodeElem } from './nodes';\nimport { insertCluster, clear as clearClusters } from './clusters';\nimport { insertEdgeLabel, positionEdgeLabel, insertEdge, clear as clearEdges } from './edges';\nimport { log } from '../logger';\n\nconst recursiveRender = (_elem, graph, diagramtype, parentCluster) => {\n log.info('Graph in recursive render: XXX', graphlib.json.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace('Dir in recursive render - dir:', dir);\n\n const elem = _elem.insert('g').attr('class', 'root'); // eslint-disable-line\n if (!graph.nodes()) {\n log.info('No nodes found for', graph);\n } else {\n log.info('Recursive render XXX', graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.trace('Recursive edges', graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert('g').attr('class', 'clusters'); // eslint-disable-line\n const edgePaths = elem.insert('g').attr('class', 'edgePaths');\n const edgeLabels = elem.insert('g').attr('class', 'edgeLabels');\n const nodes = elem.insert('g').attr('class', 'nodes');\n\n // Insert nodes, this will insert them into the dom and each node will get a size. The size is updated\n // to the abstract node and is later used by dagre for the layout\n graph.nodes().forEach(function (v) {\n const node = graph.node(v);\n if (typeof parentCluster !== 'undefined') {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n // data.clusterPositioning = true;\n log.info('Setting data for cluster XXX (', v, ') ', data, parentCluster);\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace('Setting parent', v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info('(Insert) Node XXX' + v + ': ' + JSON.stringify(graph.node(v)));\n if (node && node.clusterNode) {\n // const children = graph.children(v);\n log.info('Cluster identified', v, node.width, graph.node(v));\n const o = recursiveRender(nodes, node.graph, diagramtype, graph.node(v));\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info('Node bounds (abc123)', v, node, node.width, node.x, node.y);\n setNodeElem(newEl, node);\n\n log.warn('Recursive render complete ', newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n // This is a cluster but not to be rendered recursively\n // Render as before\n log.info('Cluster - the non recursive path XXX', v, node.id, node, graph);\n log.info(findNonClusterChild(node.id, graph));\n clusterDb[node.id] = { id: findNonClusterChild(node.id, graph), node };\n // insertCluster(clusters, graph.node(v));\n } else {\n log.info('Node - the non recursive path', v, node.id, node);\n insertNode(nodes, graph.node(v), dir);\n }\n }\n });\n\n // Insert labels, this will insert them into the dom so that the width can be calculated\n // Also figure out which edges point to/from clusters and adjust them accordingly\n // Edges from/to clusters really points to the first child in the cluster.\n // TODO: pick optimal child in the cluster to us as link anchor\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ', e, ' ', JSON.stringify(graph.edge(e)));\n\n // Check if link is either from or to a cluster\n log.info('Fix', clusterDb, 'ids:', e.v, e.w, 'Translateing: ', clusterDb[e.v], clusterDb[e.w]);\n insertEdgeLabel(edgeLabels, edge);\n });\n\n graph.edges().forEach(function (e) {\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n });\n log.info('#############################################');\n log.info('### Layout ###');\n log.info('#############################################');\n log.info(graph);\n dagre.layout(graph);\n log.info('Graph after layout:', graphlib.json.write(graph));\n // Move the nodes to the correct place\n let diff = 0;\n sortNodesByHierarchy(graph).forEach(function (v) {\n const node = graph.node(v);\n log.info('Position ' + v + ': ' + JSON.stringify(graph.node(v)));\n log.info(\n 'Position ' + v + ': (' + node.x,\n ',' + node.y,\n ') width: ',\n node.width,\n ' height: ',\n node.height\n );\n if (node && node.clusterNode) {\n // clusterDb[node.id].node = node;\n\n positionNode(node);\n } else {\n // Non cluster node\n if (graph.children(v).length > 0) {\n // A cluster in the non-recursive way\n // positionCluster(node);\n insertCluster(clusters, node);\n clusterDb[node.id].node = node;\n } else {\n positionNode(node);\n }\n }\n });\n\n // Move the edge labels to the correct place after layout\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e);\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(edge), edge);\n\n const paths = insertEdge(edgePaths, e, edge, clusterDb, diagramtype, graph);\n positionEdgeLabel(edge, paths);\n });\n\n graph.nodes().forEach(function (v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.type === 'group') {\n diff = n.diff;\n }\n });\n return { elem, diff };\n};\n\nexport const render = (elem, graph, markers, diagramtype, id) => {\n insertMarkers(elem, markers, diagramtype, id);\n clearNodes();\n clearEdges();\n clearClusters();\n clearGraphlib();\n\n log.warn('Graph at first:', graphlib.json.write(graph));\n adjustClustersAndEdges(graph);\n log.warn('Graph after:', graphlib.json.write(graph));\n // log.warn('Graph ever after:', graphlib.json.write(graph.node('A').graph));\n recursiveRender(elem, graph, diagramtype);\n};\n\n// const shapeDefinitions = {};\n// export const addShape = ({ shapeType: fun }) => {\n// shapeDefinitions[shapeType] = fun;\n// };\n\n// const arrowDefinitions = {};\n// export const addArrow = ({ arrowType: fun }) => {\n// arrowDefinitions[arrowType] = fun;\n// };\n","/*\n * Borrowed with love from from dagrge-d3. Many thanks to cpettitt!\n */\n\nimport node from './intersect-node.js';\nimport circle from './intersect-circle.js';\nimport ellipse from './intersect-ellipse.js';\nimport polygon from './intersect-polygon.js';\nimport rect from './intersect-rect.js';\n\nexport default {\n node,\n circle,\n ellipse,\n polygon,\n rect,\n};\n","import intersectEllipse from './intersect-ellipse';\n\n/**\n * @param node\n * @param rx\n * @param point\n */\nfunction intersectCircle(node, rx, point) {\n return intersectEllipse(node, rx, rx, point);\n}\n\nexport default intersectCircle;\n","/**\n * @param node\n * @param rx\n * @param ry\n * @param point\n */\nfunction intersectEllipse(node, rx, ry, point) {\n // Formulae from: https://mathworld.wolfram.com/Ellipse-LineIntersection.html\n\n var cx = node.x;\n var cy = node.y;\n\n var px = cx - point.x;\n var py = cy - point.y;\n\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n\n var dx = Math.abs((rx * ry * px) / det);\n if (point.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs((rx * ry * py) / det);\n if (point.y < cy) {\n dy = -dy;\n }\n\n return { x: cx + dx, y: cy + dy };\n}\n\nexport default intersectEllipse;\n","/**\n * Returns the point at which two lines, p and q, intersect or returns undefined if they do not intersect.\n *\n * @param p1\n * @param p2\n * @param q1\n * @param q2\n */\nfunction intersectLine(p1, p2, q1, q2) {\n // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994,\n // p7 and p473.\n\n var a1, a2, b1, b2, c1, c2;\n var r1, r2, r3, r4;\n var denom, offset, num;\n var x, y;\n\n // Compute a1, b1, c1, where line joining points 1 and 2 is F(x,y) = a1 x +\n // b1 y + c1 = 0.\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = p2.x * p1.y - p1.x * p2.y;\n\n // Compute r3 and r4.\n r3 = a1 * q1.x + b1 * q1.y + c1;\n r4 = a1 * q2.x + b1 * q2.y + c1;\n\n // Check signs of r3 and r4. If both point 3 and point 4 lie on\n // same side of line 1, the line segments do not intersect.\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return /*DONT_INTERSECT*/;\n }\n\n // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = q2.x * q1.y - q1.x * q2.y;\n\n // Compute r1 and r2\n r1 = a2 * p1.x + b2 * p1.y + c2;\n r2 = a2 * p2.x + b2 * p2.y + c2;\n\n // Check signs of r1 and r2. If both point 1 and point 2 lie\n // on same side of second line segment, the line segments do\n // not intersect.\n if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {\n return /*DONT_INTERSECT*/;\n }\n\n // Line segments intersect: compute intersection point.\n denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return /*COLLINEAR*/;\n }\n\n offset = Math.abs(denom / 2);\n\n // The denom/2 is to get rounding instead of truncating. It\n // is added or subtracted to the numerator, depending upon the\n // sign of the numerator.\n num = b1 * c2 - b2 * c1;\n x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n\n num = a2 * c1 - a1 * c2;\n y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n\n return { x: x, y: y };\n}\n\n/**\n * @param r1\n * @param r2\n */\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n\nexport default intersectLine;\n","module.exports = intersectNode;\n\n/**\n * @param node\n * @param point\n */\nfunction intersectNode(node, point) {\n // console.info('Intersect Node');\n return node.intersect(point);\n}\n","/* eslint \"no-console\": off */\n\nimport intersectLine from './intersect-line';\n\nexport default intersectPolygon;\n\n/**\n * Returns the point ({x, y}) at which the point argument intersects with the node argument assuming\n * that it has the shape specified by polygon.\n *\n * @param node\n * @param polyPoints\n * @param point\n */\nfunction intersectPolygon(node, polyPoints, point) {\n var x1 = node.x;\n var y1 = node.y;\n\n var intersections = [];\n\n var minX = Number.POSITIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n if (typeof polyPoints.forEach === 'function') {\n polyPoints.forEach(function (entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n } else {\n minX = Math.min(minX, polyPoints.x);\n minY = Math.min(minY, polyPoints.y);\n }\n\n var left = x1 - node.width / 2 - minX;\n var top = y1 - node.height / 2 - minY;\n\n for (var i = 0; i < polyPoints.length; i++) {\n var p1 = polyPoints[i];\n var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n var intersect = intersectLine(\n node,\n point,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect) {\n intersections.push(intersect);\n }\n }\n\n if (!intersections.length) {\n // console.log('NO INTERSECTION FOUND, RETURN NODE CENTER', node);\n return node;\n }\n\n if (intersections.length > 1) {\n // More intersections, find the one nearest to edge end point\n intersections.sort(function (p, q) {\n var pdx = p.x - point.x;\n var pdy = p.y - point.y;\n var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n\n var qdx = q.x - point.x;\n var qdy = q.y - point.y;\n var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\n","const intersectRect = (node, point) => {\r\n var x = node.x;\r\n var y = node.y;\r\n\r\n // Rectangle intersection algorithm from:\r\n // https://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\r\n var dx = point.x - x;\r\n var dy = point.y - y;\r\n var w = node.width / 2;\r\n var h = node.height / 2;\r\n\r\n var sx, sy;\r\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\r\n // Intersection is top or bottom of rect.\r\n if (dy < 0) {\r\n h = -h;\r\n }\r\n sx = dy === 0 ? 0 : (h * dx) / dy;\r\n sy = h;\r\n } else {\r\n // Intersection is left or right of rect.\r\n if (dx < 0) {\r\n w = -w;\r\n }\r\n sx = w;\r\n sy = dx === 0 ? 0 : (w * dy) / dx;\r\n }\r\n\r\n return { x: x + sx, y: y + sy };\r\n};\r\n\r\nexport default intersectRect;\r\n","/** Setup arrow head and define the marker. The result is appended to the svg. */\n\nimport { log } from '../logger';\n\n// Only add the number of markers that the diagram needs\nconst insertMarkers = (elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n};\n\nconst extension = (elem, type, id) => {\n log.trace('Making markers for ', id);\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-extensionStart')\n .attr('class', 'marker extension ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,7 L18,13 V 1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-extensionEnd')\n .attr('class', 'marker extension ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,1 V 13 L18,7 Z'); // this is actual shape for arrowhead\n};\n\nconst composition = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-compositionStart')\n .attr('class', 'marker composition ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-compositionEnd')\n .attr('class', 'marker composition ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n};\nconst aggregation = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-aggregationStart')\n .attr('class', 'marker aggregation ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-aggregationEnd')\n .attr('class', 'marker aggregation ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n};\nconst dependency = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-dependencyStart')\n .attr('class', 'marker dependency ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-dependencyEnd')\n .attr('class', 'marker dependency ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');\n};\nconst point = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-pointEnd')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 9)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 12)\n .attr('markerHeight', 12)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 0 0 L 10 5 L 0 10 z')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n elem\n .append('marker')\n .attr('id', type + '-pointStart')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 0)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 12)\n .attr('markerHeight', 12)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 0 5 L 10 10 L 10 0 z')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n};\nconst circle = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-circleEnd')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 11)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('circle')\n .attr('cx', '5')\n .attr('cy', '5')\n .attr('r', '5')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n\n elem\n .append('marker')\n .attr('id', type + '-circleStart')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', -1)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('circle')\n .attr('cx', '5')\n .attr('cy', '5')\n .attr('r', '5')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n};\nconst cross = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-crossEnd')\n .attr('class', 'marker cross ' + type)\n .attr('viewBox', '0 0 11 11')\n .attr('refX', 12)\n .attr('refY', 5.2)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('path')\n // .attr('stroke', 'black')\n .attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 2)\n .style('stroke-dasharray', '1,0');\n\n elem\n .append('marker')\n .attr('id', type + '-crossStart')\n .attr('class', 'marker cross ' + type)\n .attr('viewBox', '0 0 11 11')\n .attr('refX', -1)\n .attr('refY', 5.2)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('path')\n // .attr('stroke', 'black')\n .attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 2)\n .style('stroke-dasharray', '1,0');\n};\nconst barb = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-barbEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 14)\n .attr('markerUnits', 'strokeWidth')\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 19,7 L9,13 L14,7 L9,1 Z');\n};\n\n// TODO rename the class diagram markers to something shape descriptive and semantic free\nconst markers = {\n extension,\n composition,\n aggregation,\n dependency,\n point,\n circle,\n cross,\n barb,\n};\nexport default insertMarkers;\n","/** Decorates with functions required by mermaids dagre-wrapper. */\nimport { log } from '../logger';\nimport graphlib from 'graphlib';\n\nexport let clusterDb = {};\nlet decendants = {};\nlet parents = {};\n\nexport const clear = () => {\n decendants = {};\n parents = {};\n clusterDb = {};\n};\n\nconst isDecendant = (id, ancenstorId) => {\n // if (id === ancenstorId) return true;\n\n log.trace(\n 'In isDecendant',\n ancenstorId,\n ' ',\n id,\n ' = ',\n decendants[ancenstorId].indexOf(id) >= 0\n );\n if (decendants[ancenstorId].indexOf(id) >= 0) return true;\n\n return false;\n};\n\nconst edgeInCluster = (edge, clusterId) => {\n log.info('Decendants of ', clusterId, ' is ', decendants[clusterId]);\n log.info('Edge is ', edge);\n // Edges to/from the cluster is not in the cluster, they are in the parent\n if (edge.v === clusterId) return false;\n if (edge.w === clusterId) return false;\n\n if (!decendants[clusterId]) {\n log.debug('Tilt, ', clusterId, ',not in decendants');\n return false;\n }\n log.info('Here ');\n\n if (decendants[clusterId].indexOf(edge.v) >= 0) return true;\n if (isDecendant(edge.v, clusterId)) return true;\n if (isDecendant(edge.w, clusterId)) return true;\n if (decendants[clusterId].indexOf(edge.w) >= 0) return true;\n\n return false;\n};\n\nconst copy = (clusterId, graph, newGraph, rootId) => {\n log.warn(\n 'Copying children of ',\n clusterId,\n 'root',\n rootId,\n 'data',\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n\n // Include cluster node if it is not the root\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n\n log.warn('Copying (nodes) clusterId', clusterId, 'nodes', nodes);\n\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info('cp ', node, ' to ', rootId, ' with parent ', clusterId); //,node, data, ' parent is ', clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn('Setting parent', node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n\n if (clusterId !== rootId && node !== clusterId) {\n log.debug('Setting parent', node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info('In copy ', clusterId, 'root', rootId, 'data', graph.node(clusterId), rootId);\n log.debug(\n 'Not Setting parent for node=',\n node,\n 'cluster!==rootId',\n clusterId !== rootId,\n 'node!==clusterId',\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug('Copying Edges', edges);\n edges.forEach((edge) => {\n log.info('Edge', edge);\n const data = graph.edge(edge.v, edge.w, edge.name);\n log.info('Edge data', data, rootId);\n try {\n // Do not copy edges in and out of the root cluster, they belong to the parent graph\n if (edgeInCluster(edge, rootId)) {\n log.info('Copying as ', edge.v, edge.w, data, edge.name);\n newGraph.setEdge(edge.v, edge.w, data, edge.name);\n log.info('newGraph edges ', newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n log.info(\n 'Skipping copy of edge ',\n edge.v,\n '-->',\n edge.w,\n ' rootId: ',\n rootId,\n ' clusterId:',\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug('Removing node', node);\n graph.removeNode(node);\n });\n};\nexport const extractDecendants = (id, graph) => {\n // log.debug('Extracting ', id);\n const children = graph.children(id);\n let res = [].concat(children);\n\n for (let i = 0; i < children.length; i++) {\n parents[children[i]] = id;\n res = res.concat(extractDecendants(children[i], graph));\n }\n\n return res;\n};\n\n/**\n * Validates the graph, checking that all parent child relation points to existing nodes and that\n * edges between nodes also ia correct. When not correct the function logs the discrepancies.\n *\n * @param graph\n */\nexport const validate = (graph) => {\n const edges = graph.edges();\n log.trace('Edges: ', edges);\n for (let i = 0; i < edges.length; i++) {\n if (graph.children(edges[i].v).length > 0) {\n log.trace('The node ', edges[i].v, ' is part of and edge even though it has children');\n return false;\n }\n if (graph.children(edges[i].w).length > 0) {\n log.trace('The node ', edges[i].w, ' is part of and edge even though it has children');\n return false;\n }\n }\n return true;\n};\n\n/**\n * Finds a child that is not a cluster. When faking a edge between a node and a cluster.\n *\n * @param {Finds a} id\n * @param {any} graph\n */\nexport const findNonClusterChild = (id, graph) => {\n // const node = graph.node(id);\n log.trace('Searching', id);\n // const children = graph.children(id).reverse();\n const children = graph.children(id); //.reverse();\n log.trace('Searching children of id ', id, children);\n if (children.length < 1) {\n log.trace('This is a valid node', id);\n return id;\n }\n for (let i = 0; i < children.length; i++) {\n const _id = findNonClusterChild(children[i], graph);\n if (_id) {\n log.trace('Found replacement for', id, ' => ', _id);\n return _id;\n }\n }\n};\n\nconst getAnchorId = (id) => {\n if (!clusterDb[id]) {\n return id;\n }\n // If the cluster has no external connections\n if (!clusterDb[id].externalConnections) {\n return id;\n }\n\n // Return the replacement node\n if (clusterDb[id]) {\n return clusterDb[id].id;\n }\n return id;\n};\n\nexport const adjustClustersAndEdges = (graph, depth) => {\n if (!graph || depth > 10) {\n log.debug('Opting out, no graph ');\n return;\n } else {\n log.debug('Opting in, graph ');\n }\n // Go through the nodes and for each cluster found, save a replacement node, this can be used when\n // faking a link to a cluster\n graph.nodes().forEach(function (id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n 'Cluster identified',\n id,\n ' Replacement id in edges: ',\n findNonClusterChild(id, graph)\n );\n decendants[id] = extractDecendants(id, graph);\n clusterDb[id] = { id: findNonClusterChild(id, graph), clusterData: graph.node(id) };\n }\n });\n\n // Check incoming and outgoing edges for each cluster\n graph.nodes().forEach(function (id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug('Cluster identified', id, decendants);\n edges.forEach((edge) => {\n // log.debug('Edge, decendants: ', edge, decendants[id]);\n\n // Check if any edge leaves the cluster (not the actual cluster, thats a link from the box)\n if (edge.v !== id && edge.w !== id) {\n // Any edge where either the one of the nodes is decending to the cluster but not the other\n // if (decendants[id].indexOf(edge.v) < 0 && decendants[id].indexOf(edge.w) < 0) {\n\n const d1 = isDecendant(edge.v, id);\n const d2 = isDecendant(edge.w, id);\n\n // d1 xor d2 - if either d1 is true and d2 is false or the other way around\n if (d1 ^ d2) {\n log.warn('Edge: ', edge, ' leaves cluster ', id);\n log.warn('Decendants of XXX ', id, ': ', decendants[id]);\n clusterDb[id].externalConnections = true;\n }\n }\n });\n } else {\n log.debug('Not a cluster ', id, decendants);\n }\n });\n\n // For clusters with incoming and/or outgoing edges translate those edges to a real node\n // in the cluster in order to fake the edge\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e);\n log.warn('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n log.warn('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(graph.edge(e)));\n\n let v = e.v;\n let w = e.w;\n // Check if link is either from or to a cluster\n log.warn(\n 'Fix XXX',\n clusterDb,\n 'ids:',\n e.v,\n e.w,\n 'Translateing: ',\n clusterDb[e.v],\n ' --- ',\n clusterDb[e.w]\n );\n if (clusterDb[e.v] && clusterDb[e.w] && clusterDb[e.v] === clusterDb[e.w]) {\n log.warn('Fixing and trixing link to self - removing XXX', e.v, e.w, e.name);\n log.warn('Fixing and trixing - removing XXX', e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n const specialId = e.w + '---' + e.v;\n graph.setNode(specialId, {\n domId: specialId,\n id: specialId,\n labelStyle: '',\n labelText: edge.label,\n padding: 0,\n shape: 'labelRect',\n style: '',\n });\n const edge1 = JSON.parse(JSON.stringify(edge));\n const edge2 = JSON.parse(JSON.stringify(edge));\n edge1.label = '';\n edge1.arrowTypeEnd = 'none';\n edge2.label = '';\n edge1.fromCluster = e.v;\n edge2.toCluster = e.v;\n\n graph.setEdge(v, specialId, edge1, e.name + '-cyclic-special');\n graph.setEdge(specialId, w, edge2, e.name + '-cyclic-special');\n } else if (clusterDb[e.v] || clusterDb[e.w]) {\n log.warn('Fixing and trixing - removing XXX', e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) edge.fromCluster = e.v;\n if (w !== e.w) edge.toCluster = e.w;\n log.warn('Fix Replacing with XXX', v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn('Adjusted Graph', graphlib.json.write(graph));\n extractor(graph, 0);\n\n log.trace(clusterDb);\n\n // Remove references to extracted cluster\n // graph.edges().forEach(edge => {\n // if (isDecendant(edge.v, clusterId) || isDecendant(edge.w, clusterId)) {\n // graph.removeEdge(edge);\n // }\n // });\n};\n\nexport const extractor = (graph, depth) => {\n log.warn('extractor - ', depth, graphlib.json.write(graph), graph.children('D'));\n if (depth > 10) {\n log.error('Bailing out');\n return;\n }\n // For clusters without incoming and/or outgoing edges, create a new cluster-node\n // containing the nodes and edges in the custer in a new graph\n // for (let i = 0;)\n let nodes = graph.nodes();\n let hasChildren = false;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n\n if (!hasChildren) {\n log.debug('Done, no node has children', graph.nodes());\n return;\n }\n // const clusters = Object.keys(clusterDb);\n // clusters.forEach(clusterId => {\n log.debug('Nodes = ', nodes, depth);\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n log.debug(\n 'Extracting node',\n node,\n clusterDb,\n clusterDb[node] && !clusterDb[node].externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children('D'),\n ' Depth ',\n depth\n );\n // Note that the node might have been removed after the Object.keys call so better check\n // that it still is in the game\n if (!clusterDb[node]) {\n // Skip if the node is not a cluster\n log.debug('Not a cluster', node, depth);\n // break;\n } else if (\n !clusterDb[node].externalConnections &&\n // !graph.parent(node) &&\n graph.children(node) &&\n graph.children(node).length > 0\n ) {\n log.warn(\n 'Cluster without external connections, without a parent and with children',\n node,\n depth\n );\n\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === 'TB' ? 'LR' : 'TB';\n if (clusterDb[node]) {\n if (clusterDb[node].clusterData && clusterDb[node].clusterData.dir) {\n dir = clusterDb[node].clusterData.dir;\n log.warn('Fixing dir', clusterDb[node].clusterData.dir, dir);\n }\n }\n\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true,\n })\n .setGraph({\n rankdir: dir, // Todo: set proper spacing\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8,\n })\n .setDefaultEdgeLabel(function () {\n return {};\n });\n\n log.warn('Old graph before copy', graphlib.json.write(graph));\n copy(node, graph, clusterGraph, node);\n graph.setNode(node, {\n clusterNode: true,\n id: node,\n clusterData: clusterDb[node].clusterData,\n labelText: clusterDb[node].labelText,\n graph: clusterGraph,\n });\n log.warn('New graph after copy node: (', node, ')', graphlib.json.write(clusterGraph));\n log.debug('Old graph after copy', graphlib.json.write(graph));\n } else {\n log.warn(\n 'Cluster ** ',\n node,\n ' **not meeting the criteria !externalConnections:',\n !clusterDb[node].externalConnections,\n ' no parent: ',\n !graph.parent(node),\n ' children ',\n graph.children(node) && graph.children(node).length > 0,\n graph.children('D'),\n depth\n );\n log.debug(clusterDb);\n }\n }\n\n nodes = graph.nodes();\n log.warn('New list of nodes', nodes);\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const data = graph.node(node);\n log.warn(' Now next level', node, data);\n if (data.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n};\n\nconst sorter = (graph, nodes) => {\n if (nodes.length === 0) return [];\n let result = Object.assign(nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = result.concat(sorted);\n });\n\n return result;\n};\n\nexport const sortNodesByHierarchy = (graph) => sorter(graph, graph.children());\n","import { select } from 'd3';\nimport { log } from '../logger'; // eslint-disable-line\nimport { labelHelper, updateNodeBounds, insertPolygonShape } from './shapes/util';\nimport { getConfig } from '../config';\nimport intersect from './intersect/index.js';\nimport createLabel from './createLabel';\nimport note from './shapes/note';\nimport { parseMember } from '../diagrams/class/svgDraw';\nimport { evaluate, sanitizeText as sanitize } from '../diagrams/common/common';\n\nconst sanitizeText = (txt) => sanitize(txt, getConfig());\n\nconst question = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const s = w + h;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 },\n ];\n\n log.info('Question main (Circle)');\n\n const questionElem = insertPolygonShape(shapeSvg, s, s, points);\n questionElem.attr('style', node.style);\n updateNodeBounds(node, questionElem);\n\n node.intersect = function (point) {\n log.warn('Intersect called');\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst choice = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n\n const s = 28;\n const points = [\n { x: 0, y: s / 2 },\n { x: s / 2, y: 0 },\n { x: 0, y: -s / 2 },\n { x: -s / 2, y: 0 },\n ];\n\n const choice = shapeSvg.insert('polygon', ':first-child').attr(\n 'points',\n points\n .map(function (d) {\n return d.x + ',' + d.y;\n })\n .join(' ')\n );\n // center the circle around its coordinate\n choice.attr('class', 'state-start').attr('r', 7).attr('width', 28).attr('height', 28);\n node.width = 28;\n node.height = 28;\n\n node.intersect = function (point) {\n return intersect.circle(node, 14, point);\n };\n\n return shapeSvg;\n};\n\nconst hexagon = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const f = 4;\n const h = bbox.height + node.padding;\n const m = h / f;\n const w = bbox.width + 2 * m + node.padding;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 },\n ];\n\n const hex = insertPolygonShape(shapeSvg, w, h, points);\n hex.attr('style', node.style);\n updateNodeBounds(node, hex);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst rect_left_inv_arrow = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -h / 2, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: -h / 2, y: -h },\n { x: 0, y: -h / 2 },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n\n node.width = w + h;\n node.height = h;\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst lean_right = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (-2 * h) / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + (2 * h) / 6, y: -h },\n { x: h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst lean_left = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (2 * h) / 6, y: 0 },\n { x: w + h / 6, y: 0 },\n { x: w - (2 * h) / 6, y: -h },\n { x: -h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst trapezoid = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (-2 * h) / 6, y: 0 },\n { x: w + (2 * h) / 6, y: 0 },\n { x: w - h / 6, y: -h },\n { x: h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst inv_trapezoid = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + (2 * h) / 6, y: -h },\n { x: (-2 * h) / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst rect_right_inv_arrow = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w + h / 2, y: 0 },\n { x: w, y: -h / 2 },\n { x: w + h / 2, y: -h },\n { x: 0, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst cylinder = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = bbox.height + ry + node.padding;\n\n const shape =\n 'M 0,' +\n ry +\n ' a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n w +\n ' 0 a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n -w +\n ' 0 l 0,' +\n h +\n ' a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n w +\n ' 0 l 0,' +\n -h;\n\n const el = shapeSvg\n .attr('label-offset-y', ry)\n .insert('path', ':first-child')\n .attr('style', node.style)\n .attr('d', shape)\n .attr('transform', 'translate(' + -w / 2 + ',' + -(h / 2 + ry) + ')');\n\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n const pos = intersect.rect(node, point);\n const x = pos.x - node.x;\n\n if (\n rx != 0 &&\n (Math.abs(x) < node.width / 2 ||\n (Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry))\n ) {\n // ellipsis equation: x*x / a*a + y*y / b*b = 1\n // solve for y to get adjustion value for pos.y\n let y = ry * ry * (1 - (x * x) / (rx * rx));\n if (y != 0) y = Math.sqrt(y);\n y = ry - y;\n if (point.y - node.y > 0) y = -y;\n\n pos.y += y;\n }\n\n return pos;\n };\n\n return shapeSvg;\n};\n\nconst rect = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes, true);\n\n log.trace('Classes = ', node.classes);\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n const totalWidth = bbox.width + node.padding;\n const totalHeight = bbox.height + node.padding;\n rect\n .attr('class', 'basic label-container')\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', totalWidth)\n .attr('height', totalHeight);\n\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect, node.props.borders, totalWidth, totalHeight);\n propKeys.delete('borders');\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst labelRect = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'label', true);\n\n log.trace('Classes = ', node.classes);\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n // Hide the rect we are only after the label\n const totalWidth = 0;\n const totalHeight = 0;\n rect.attr('width', totalWidth).attr('height', totalHeight);\n shapeSvg.attr('class', 'label edgeLabel');\n\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect, node.props.borders, totalWidth, totalHeight);\n propKeys.delete('borders');\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\n/**\n * @param rect\n * @param borders\n * @param totalWidth\n * @param totalHeight\n */\nfunction applyNodePropertyBorders(rect, borders, totalWidth, totalHeight) {\n const strokeDashArray = [];\n const addBorder = (length) => {\n strokeDashArray.push(length);\n strokeDashArray.push(0);\n };\n const skipBorder = (length) => {\n strokeDashArray.push(0);\n strokeDashArray.push(length);\n };\n if (borders.includes('t')) {\n log.debug('add top border');\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes('r')) {\n log.debug('add right border');\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n if (borders.includes('b')) {\n log.debug('add bottom border');\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes('l')) {\n log.debug('add left border');\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n rect.attr('stroke-dasharray', strokeDashArray.join(' '));\n}\n\nconst rectWithTitle = (parent, node) => {\n // const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes);\n\n let classes;\n if (!node.classes) {\n classes = 'node default';\n } else {\n classes = 'node ' + node.classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the title label and insert it after the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n // const innerRect = shapeSvg.insert('rect');\n const innerLine = shapeSvg.insert('line');\n\n const label = shapeSvg.insert('g').attr('class', 'label');\n\n const text2 = node.labelText.flat ? node.labelText.flat() : node.labelText;\n // const text2 = typeof text2prim === 'object' ? text2prim[0] : text2prim;\n\n let title = '';\n if (typeof text2 === 'object') {\n title = text2[0];\n } else {\n title = text2;\n }\n log.info('Label text abc79', title, text2, typeof text2 === 'object');\n\n const text = label.node().appendChild(createLabel(title, node.labelStyle, true, true));\n let bbox = { width: 0, height: 0 };\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n log.info('Text 2', text2);\n const textRows = text2.slice(1, text2.length);\n let titleBox = text.getBBox();\n const descr = label\n .node()\n .appendChild(\n createLabel(textRows.join ? textRows.join('
') : textRows, node.labelStyle, true, true)\n );\n\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = descr.children[0];\n const dv = select(descr);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n // bbox = label.getBBox();\n // log.info(descr);\n const halfPadding = node.padding / 2;\n select(descr).attr(\n 'transform',\n 'translate( ' +\n // (titleBox.width - bbox.width) / 2 +\n (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) +\n ', ' +\n (titleBox.height + halfPadding + 5) +\n ')'\n );\n select(text).attr(\n 'transform',\n 'translate( ' +\n // (titleBox.width - bbox.width) / 2 +\n (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) +\n ', ' +\n 0 +\n ')'\n );\n // Get the size of the label\n\n // Bounding box for title and text\n bbox = label.node().getBBox();\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')'\n );\n\n rect\n .attr('class', 'outer title-state')\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n innerLine\n .attr('class', 'divider')\n .attr('x1', -bbox.width / 2 - halfPadding)\n .attr('x2', bbox.width / 2 + halfPadding)\n .attr('y1', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding)\n .attr('y2', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst stadium = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const h = bbox.height + node.padding;\n const w = bbox.width + h / 4 + node.padding;\n\n // add the rect\n const rect = shapeSvg\n .insert('rect', ':first-child')\n .attr('style', node.style)\n .attr('rx', h / 2)\n .attr('ry', h / 2)\n .attr('x', -w / 2)\n .attr('y', -h / 2)\n .attr('width', w)\n .attr('height', h);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst circle = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, undefined, true);\n const circle = shapeSvg.insert('circle', ':first-child');\n\n // center the circle around its coordinate\n circle\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('r', bbox.width / 2 + halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n log.info('Circle main');\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n log.info('Circle intersect', node, bbox.width / 2 + halfPadding, point);\n return intersect.circle(node, bbox.width / 2 + halfPadding, point);\n };\n\n return shapeSvg;\n};\n\nconst doublecircle = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, undefined, true);\n const gap = 5;\n const circleGroup = shapeSvg.insert('g', ':first-child');\n const outerCircle = circleGroup.insert('circle');\n const innerCircle = circleGroup.insert('circle');\n\n // center the circle around its coordinate\n outerCircle\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('r', bbox.width / 2 + halfPadding + gap)\n .attr('width', bbox.width + node.padding + gap * 2)\n .attr('height', bbox.height + node.padding + gap * 2);\n\n innerCircle\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('r', bbox.width / 2 + halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n log.info('DoubleCircle main');\n\n updateNodeBounds(node, outerCircle);\n\n node.intersect = function (point) {\n log.info('DoubleCircle intersect', node, bbox.width / 2 + halfPadding + gap, point);\n return intersect.circle(node, bbox.width / 2 + halfPadding + gap, point);\n };\n\n return shapeSvg;\n};\n\nconst subroutine = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst start = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n const circle = shapeSvg.insert('circle', ':first-child');\n\n // center the circle around its coordinate\n circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n return intersect.circle(node, 7, point);\n };\n\n return shapeSvg;\n};\n\nconst forkJoin = (parent, node, dir) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n\n let width = 70;\n let height = 10;\n\n if (dir === 'LR') {\n width = 10;\n height = 70;\n }\n\n const shape = shapeSvg\n .append('rect')\n .attr('x', (-1 * width) / 2)\n .attr('y', (-1 * height) / 2)\n .attr('width', width)\n .attr('height', height)\n .attr('class', 'fork-join');\n\n updateNodeBounds(node, shape);\n node.height = node.height + node.padding / 2;\n node.width = node.width + node.padding / 2;\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst end = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n const innerCircle = shapeSvg.insert('circle', ':first-child');\n const circle = shapeSvg.insert('circle', ':first-child');\n\n circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);\n\n innerCircle.attr('class', 'state-end').attr('r', 5).attr('width', 10).attr('height', 10);\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n return intersect.circle(node, 7, point);\n };\n\n return shapeSvg;\n};\n\nconst class_box = (parent, node) => {\n const halfPadding = node.padding / 2;\n const rowPadding = 4;\n const lineHeight = 8;\n\n let classes;\n if (!node.classes) {\n classes = 'node default';\n } else {\n classes = 'node ' + node.classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the title label and insert it after the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n const topLine = shapeSvg.insert('line');\n const bottomLine = shapeSvg.insert('line');\n let maxWidth = 0;\n let maxHeight = rowPadding;\n\n const labelContainer = shapeSvg.insert('g').attr('class', 'label');\n let verticalPos = 0;\n const hasInterface = node.classData.annotations && node.classData.annotations[0];\n\n // 1. Create the labels\n const interfaceLabelText = node.classData.annotations[0]\n ? '«' + node.classData.annotations[0] + '»'\n : '';\n const interfaceLabel = labelContainer\n .node()\n .appendChild(createLabel(interfaceLabelText, node.labelStyle, true, true));\n let interfaceBBox = interfaceLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = interfaceLabel.children[0];\n const dv = select(interfaceLabel);\n interfaceBBox = div.getBoundingClientRect();\n dv.attr('width', interfaceBBox.width);\n dv.attr('height', interfaceBBox.height);\n }\n if (node.classData.annotations[0]) {\n maxHeight += interfaceBBox.height + rowPadding;\n maxWidth += interfaceBBox.width;\n }\n\n let classTitleString = node.classData.id;\n\n if (node.classData.type !== undefined && node.classData.type !== '') {\n if (getConfig().flowchart.htmlLabels) {\n classTitleString += '<' + node.classData.type + '>';\n } else {\n classTitleString += '<' + node.classData.type + '>';\n }\n }\n const classTitleLabel = labelContainer\n .node()\n .appendChild(createLabel(classTitleString, node.labelStyle, true, true));\n select(classTitleLabel).attr('class', 'classTitle');\n let classTitleBBox = classTitleLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = classTitleLabel.children[0];\n const dv = select(classTitleLabel);\n classTitleBBox = div.getBoundingClientRect();\n dv.attr('width', classTitleBBox.width);\n dv.attr('height', classTitleBBox.height);\n }\n maxHeight += classTitleBBox.height + rowPadding;\n if (classTitleBBox.width > maxWidth) {\n maxWidth = classTitleBBox.width;\n }\n const classAttributes = [];\n node.classData.members.forEach((str) => {\n const parsedInfo = parseMember(str);\n let parsedText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n parsedText = parsedText.replace(//g, '>');\n }\n const lbl = labelContainer\n .node()\n .appendChild(\n createLabel(\n parsedText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classAttributes.push(lbl);\n });\n\n maxHeight += lineHeight;\n\n const classMethods = [];\n node.classData.methods.forEach((str) => {\n const parsedInfo = parseMember(str);\n let displayText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n displayText = displayText.replace(//g, '>');\n }\n const lbl = labelContainer\n .node()\n .appendChild(\n createLabel(\n displayText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n\n classMethods.push(lbl);\n });\n\n maxHeight += lineHeight;\n\n // 2. Position the labels\n\n // position the interface label\n if (hasInterface) {\n let diffX = (maxWidth - interfaceBBox.width) / 2;\n select(interfaceLabel).attr(\n 'transform',\n 'translate( ' + ((-1 * maxWidth) / 2 + diffX) + ', ' + (-1 * maxHeight) / 2 + ')'\n );\n verticalPos = interfaceBBox.height + rowPadding;\n }\n // Position the class title label\n let diffX = (maxWidth - classTitleBBox.width) / 2;\n select(classTitleLabel).attr(\n 'transform',\n 'translate( ' +\n ((-1 * maxWidth) / 2 + diffX) +\n ', ' +\n ((-1 * maxHeight) / 2 + verticalPos) +\n ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n\n topLine\n .attr('class', 'divider')\n .attr('x1', -maxWidth / 2 - halfPadding)\n .attr('x2', maxWidth / 2 + halfPadding)\n .attr('y1', -maxHeight / 2 - halfPadding + lineHeight + verticalPos)\n .attr('y2', -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n\n verticalPos += lineHeight;\n\n classAttributes.forEach((lbl) => {\n select(lbl).attr(\n 'transform',\n 'translate( ' +\n -maxWidth / 2 +\n ', ' +\n ((-1 * maxHeight) / 2 + verticalPos + lineHeight / 2) +\n ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n });\n\n verticalPos += lineHeight;\n bottomLine\n .attr('class', 'divider')\n .attr('x1', -maxWidth / 2 - halfPadding)\n .attr('x2', maxWidth / 2 + halfPadding)\n .attr('y1', -maxHeight / 2 - halfPadding + lineHeight + verticalPos)\n .attr('y2', -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n\n verticalPos += lineHeight;\n\n classMethods.forEach((lbl) => {\n select(lbl).attr(\n 'transform',\n 'translate( ' + -maxWidth / 2 + ', ' + ((-1 * maxHeight) / 2 + verticalPos) + ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n });\n //\n // let bbox;\n // if (evaluate(getConfig().flowchart.htmlLabels)) {\n // const div = interfaceLabel.children[0];\n // const dv = select(interfaceLabel);\n // bbox = div.getBoundingClientRect();\n // dv.attr('width', bbox.width);\n // dv.attr('height', bbox.height);\n // }\n // bbox = labelContainer.getBBox();\n\n // log.info('Text 2', text2);\n // const textRows = text2.slice(1, text2.length);\n // let titleBox = text.getBBox();\n // const descr = label\n // .node()\n // .appendChild(createLabel(textRows.join('
'), node.labelStyle, true, true));\n\n // if (evaluate(getConfig().flowchart.htmlLabels)) {\n // const div = descr.children[0];\n // const dv = select(descr);\n // bbox = div.getBoundingClientRect();\n // dv.attr('width', bbox.width);\n // dv.attr('height', bbox.height);\n // }\n // // bbox = label.getBBox();\n // // log.info(descr);\n // select(descr).attr(\n // 'transform',\n // 'translate( ' +\n // // (titleBox.width - bbox.width) / 2 +\n // (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) +\n // ', ' +\n // (titleBox.height + halfPadding + 5) +\n // ')'\n // );\n // select(text).attr(\n // 'transform',\n // 'translate( ' +\n // // (titleBox.width - bbox.width) / 2 +\n // (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) +\n // ', ' +\n // 0 +\n // ')'\n // );\n // // Get the size of the label\n\n // // Bounding box for title and text\n // bbox = label.node().getBBox();\n\n // // Center the label\n // label.attr(\n // 'transform',\n // 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')'\n // );\n\n rect\n .attr('class', 'outer title-state')\n .attr('x', -maxWidth / 2 - halfPadding)\n .attr('y', -(maxHeight / 2) - halfPadding)\n .attr('width', maxWidth + node.padding)\n .attr('height', maxHeight + node.padding);\n\n // innerLine\n // .attr('class', 'divider')\n // .attr('x1', -bbox.width / 2 - halfPadding)\n // .attr('x2', bbox.width / 2 + halfPadding)\n // .attr('y1', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding)\n // .attr('y2', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst shapes = {\n question,\n rect,\n labelRect,\n rectWithTitle,\n choice,\n circle,\n doublecircle,\n stadium,\n hexagon,\n rect_left_inv_arrow,\n lean_right,\n lean_left,\n trapezoid,\n inv_trapezoid,\n rect_right_inv_arrow,\n cylinder,\n start,\n end,\n note,\n subroutine,\n fork: forkJoin,\n join: forkJoin,\n class_box,\n};\n\nlet nodeElems = {};\n\nexport const insertNode = (elem, node, dir) => {\n let newEl;\n let el;\n\n // Add link when appropriate\n if (node.link) {\n let target;\n if (getConfig().securityLevel === 'sandbox') {\n target = '_top';\n } else if (node.linkTarget) {\n target = node.linkTarget || '_blank';\n }\n newEl = elem.insert('svg:a').attr('xlink:href', node.link).attr('target', target);\n el = shapes[node.shape](newEl, node, dir);\n } else {\n el = shapes[node.shape](elem, node, dir);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr('title', node.tooltip);\n }\n if (node.class) {\n el.attr('class', 'node default ' + node.class);\n }\n\n nodeElems[node.id] = newEl;\n\n if (node.haveCallback) {\n nodeElems[node.id].attr('class', nodeElems[node.id].attr('class') + ' clickable');\n }\n};\nexport const setNodeElem = (elem, node) => {\n nodeElems[node.id] = elem;\n};\nexport const clear = () => {\n nodeElems = {};\n};\n\nexport const positionNode = (node) => {\n const el = nodeElems[node.id];\n log.trace(\n 'Transforming node',\n node.diff,\n node,\n 'translate(' + (node.x - node.width / 2 - 5) + ', ' + node.width / 2 + ')'\n );\n const padding = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n 'transform',\n 'translate(' +\n (node.x + diff - node.width / 2) +\n ', ' +\n (node.y - node.height / 2 - padding) +\n ')'\n );\n } else {\n el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');\n }\n return diff;\n};\n","import { updateNodeBounds, labelHelper } from './util';\nimport { log } from '../../logger'; // eslint-disable-line\nimport intersect from '../intersect/index.js';\n\nconst note = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes, true);\n\n log.info('Classes = ', node.classes);\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n rect\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nexport default note;\n","import createLabel from '../createLabel';\nimport { getConfig } from '../../config';\nimport { decodeEntities } from '../../mermaidAPI';\nimport { select } from 'd3';\nimport { evaluate, sanitizeText } from '../../diagrams/common/common';\nexport const labelHelper = (parent, node, _classes, isNode) => {\n let classes;\n if (!_classes) {\n classes = 'node default';\n } else {\n classes = _classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'label').attr('style', node.labelStyle);\n\n const labelText = typeof node.labelText === 'string' ? node.labelText : node.labelText[0];\n\n const text = label\n .node()\n .appendChild(\n createLabel(\n sanitizeText(decodeEntities(labelText), getConfig()),\n node.labelStyle,\n false,\n isNode\n )\n );\n\n // Get the size of the label\n let bbox = text.getBBox();\n\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n\n const halfPadding = node.padding / 2;\n\n // Center the label\n label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')');\n\n return { shapeSvg, bbox, halfPadding, label };\n};\n\nexport const updateNodeBounds = (node, element) => {\n const bbox = element.node().getBBox();\n node.width = bbox.width;\n node.height = bbox.height;\n};\n\n/**\n * @param parent\n * @param w\n * @param h\n * @param points\n */\nexport function insertPolygonShape(parent, w, h, points) {\n return parent\n .insert('polygon', ':first-child')\n .attr(\n 'points',\n points\n .map(function (d) {\n return d.x + ',' + d.y;\n })\n .join(' ')\n )\n .attr('class', 'label-container')\n .attr('transform', 'translate(' + -w / 2 + ',' + h / 2 + ')');\n}\n","import theme from './themes';\n/**\n * **Configuration methods in Mermaid version 8.6.0 have been updated, to learn more[[click\n * here](8.6.0_docs.md)].**\n *\n * ## **What follows are config instructions for older versions**\n *\n * These are the default options which can be overridden with the initialization call like so:\n *\n * **Example 1:**

 mermaid.initialize({ flowchart:{ htmlLabels: false } }); 
\n *\n * **Example 2:**
  
\n *\n * A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults).\n * A description of each option follows below.\n *\n * @name Configuration\n */\nconst config = {\n /**\n * Theme , the CSS style sheet\n *\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------- | ------ | -------- | ---------------------------------------------- |\n * | theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' |\n *\n * **Notes:** To disable any pre-defined mermaid theme, use \"null\".
 \"theme\": \"forest\",\n   * \"themeCSS\": \".node rect { fill: red; }\" 
\n */\n theme: 'default',\n themeVariables: theme['default'].getThemeVariables(),\n themeCSS: undefined,\n /* **maxTextSize** - The maximum allowed size of the users text diagram */\n maxTextSize: 50000,\n darkMode: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- |\n * | fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: '\"trebuchet ms\", verdana, arial, sans-serif;'.\n */\n fontFamily: '\"trebuchet ms\", verdana, arial, sans-serif;',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------------------------------------------------- | ---------------- | -------- | ------------- |\n * | logLevel | This option decides the amount of logging to be used. | string \\| number | Required | 1, 2, 3, 4, 5 |\n *\n * **Notes:**\n *\n * - Debug: 1\n * - Info: 2\n * - Warn: 3\n * - Error: 4\n * - Fatal: 5 (default)\n */\n logLevel: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | --------------------------------- | ------ | -------- | ------------------------------- |\n * | securitylevel | Level of trust for parsed diagram | string | Required | 'strict', 'loose', 'antiscript' |\n *\n * **Notes**:\n *\n * - **strict**: (**default**) tags in text are encoded, click functionality is disabled\n * - **loose**: tags in text are allowed, click functionality is enabled\n * - **antiscript**: html tags in text are allowed, (only script element is removed), click\n * functionality is enabled\n */\n securityLevel: 'strict',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | -------------------------------------------- | ------- | -------- | ----------- |\n * | startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false |\n *\n * **Notes:** Default value: true\n */\n startOnLoad: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- |\n * | arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false |\n *\n * **Notes**:\n *\n * This matters if you are using base tag settings.\n *\n * Default value: false\n */\n arrowMarkerAbsolute: false,\n\n /**\n * This option controls which currentConfig keys are considered _secure_ and can only be changed\n * via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the\n * `secure` keys in the current currentConfig. This prevents malicious graph directives from\n * overriding a site's default security.\n *\n * **Notes**:\n *\n * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']\n */\n secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'],\n\n /**\n * This option controls if the generated ids of nodes in the SVG are generated randomly or based\n * on a seed. If set to false, the IDs are generated based on the current date and thus are not\n * deterministic. This is the default behaviour.\n *\n * **Notes**:\n *\n * This matters if your files are checked into sourcecontrol e.g. git and should not change unless\n * content is changed.\n *\n * Default value: false\n */\n deterministicIds: false,\n\n /**\n * This option is the optional seed for deterministic ids. if set to undefined but\n * deterministicIds is true, a simple number iterator is used. You can set this attribute to base\n * the seed on a static string.\n */\n deterministicIDSeed: undefined,\n\n /** The object containing configurations specific for flowcharts */\n flowchart: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins,\n * expressed in pixels\n *\n * Default value: 8\n */\n diagramPadding: 8,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- |\n * | htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false |\n *\n * **Notes:** Default value: true.\n */\n htmlLabels: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------------------------------------- | ------- | -------- | ------------------- |\n * | nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number |\n *\n * **Notes:**\n *\n * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the\n * vertical spacing for LR as well as RL graphs.**\n *\n * Default value: 50\n */\n nodeSpacing: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- |\n * | rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number |\n *\n * **Notes**:\n *\n * Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal\n * spacing for LR as well as RL graphs.\n *\n * Default value 50\n */\n rankSpacing: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- |\n * | curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' |\n *\n * **Notes:**\n *\n * Default Value: 'basis'\n */\n curve: 'basis',\n // Only used in new experimental rendering\n // represents the padding between the labels and the shape\n padding: 15,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ----------------------- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes:**\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-d3',\n },\n\n /** The object containing configurations specific for sequence diagrams */\n sequence: {\n hideUnusedParticipants: false,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------- | ------- | -------- | ------------------ |\n * | activationWidth | Width of the activation rect | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value :10\n */\n activationWidth: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n diagramMarginX: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n diagramMarginY: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------- | ------- | -------- | ------------------ |\n * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n actorMargin: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------- | ------- | -------- | ------------------ |\n * | width | Width of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 150\n */\n width: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------------- | ------- | -------- | ------------------ |\n * | height | Height of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 65\n */\n height: 65,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------------ | ------- | -------- | ------------------ |\n * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n boxMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |\n * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 5\n */\n boxTextMargin: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ------------------- | ------- | -------- | ------------------ |\n * | noteMargin | margin around notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n noteMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ---------------------- | ------- | -------- | ------------------ |\n * | messageMargin | Space between messages | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 35\n */\n messageMargin: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | --------------------------- | ------ | -------- | ------------------------- |\n * | messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' |\n *\n * **Notes:** Default value: 'center'\n */\n messageAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | --------------------------- | ------- | -------- | ----------- |\n * | mirrorActors | Mirror actors under diagram | boolean | Required | true, false |\n *\n * **Notes:** Default value: true\n */\n mirrorActors: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- |\n * | forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False |\n *\n * **Notes:**\n *\n * Default value: false.\n */\n forceMenus: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |\n * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * Depending on css styling this might need adjustment.\n *\n * Default value: 1\n */\n bottomMarginAdj: 1,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:** When this flag is set to true, the height and width is set to 100% and is then\n * scaling with the available space. If set to false, the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ------------------------------------ | ------- | -------- | ----------- |\n * | rightAngles | display curve arrows as right angles | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * This will display arrows that start and begin at the same node as right angles, rather than a curve\n *\n * Default value: false\n */\n rightAngles: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------- | ------------------------------- | ------- | -------- | ----------- |\n * | showSequenceNumbers | This will show the node numbers | boolean | Required | true, false |\n *\n * **Notes:** Default value: false\n */\n showSequenceNumbers: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | -------------------------------------------------- | ------- | -------- | ------------------ |\n * | actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value |\n *\n * **Notes:** **Default value 14**..\n */\n actorFontSize: 14,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- |\n * | actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: \"'Open Sans\", sans-serif'\n */\n actorFontFamily: '\"Open Sans\", sans-serif',\n\n /**\n * This sets the font weight of the actor's description\n *\n * **Notes:** Default value: 400.\n */\n actorFontWeight: 400,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | ----------------------------------------------- | ------- | -------- | ------------------ |\n * | noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 14\n */\n noteFontSize: 14,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- |\n * | noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: ''\"trebuchet ms\", verdana, arial, sans-serif'\n */\n noteFontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n\n /**\n * This sets the font weight of the note's description\n *\n * **Notes:** Default value: 400\n */\n noteFontWeight: 400,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- |\n * | noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' |\n *\n * **Notes:** Default value: 'center'\n */\n noteAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------------------------------------- | ------- | -------- | ------------------- |\n * | messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number |\n *\n * **Notes:** Default value: 16\n */\n messageFontSize: 16,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- |\n * | messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily |\n *\n * **Notes:** Default value: '\"trebuchet ms\", verdana, arial, sans-serif'\n */\n messageFontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n\n /**\n * This sets the font weight of the message's description\n *\n * **Notes:** Default value: 400.\n */\n messageFontWeight: 400,\n\n /**\n * This sets the auto-wrap state for the diagram\n *\n * **Notes:** Default value: false.\n */\n wrap: false,\n\n /**\n * This sets the auto-wrap padding for the diagram (sides only)\n *\n * **Notes:** Default value: 0.\n */\n wrapPadding: 10,\n\n /**\n * This sets the width of the loop-box (loop, alt, opt, par)\n *\n * **Notes:** Default value: 50.\n */\n labelBoxWidth: 50,\n\n /**\n * This sets the height of the loop-box (loop, alt, opt, par)\n *\n * **Notes:** Default value: 20.\n */\n labelBoxHeight: 20,\n\n messageFont: function () {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight,\n };\n },\n noteFont: function () {\n return {\n fontFamily: this.noteFontFamily,\n fontSize: this.noteFontSize,\n fontWeight: this.noteFontWeight,\n };\n },\n actorFont: function () {\n return {\n fontFamily: this.actorFontFamily,\n fontSize: this.actorFontSize,\n fontWeight: this.actorFontWeight,\n };\n },\n },\n\n /** The object containing configurations specific for gantt diagrams */\n gantt: {\n /**\n * ### titleTopMargin\n *\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |\n * | titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 25\n */\n titleTopMargin: 25,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------------------------------- | ------- | -------- | ------------------ |\n * | barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 20\n */\n barHeight: 20,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value |\n *\n * **Notes:** Default value: 4\n */\n barGap: 4,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n topPadding: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 75\n */\n rightPadding: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ |\n * | leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 75\n */\n leftPadding: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------------- | -------------------------------------------- | ------- | -------- | ------------------ |\n * | gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 35\n */\n gridLineStartPadding: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------- | ------- | -------- | ------------------ |\n * | fontSize | Font size | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 11\n */\n fontSize: 11,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------- | ------- | -------- | ------------------ |\n * | sectionFontSize | Font size for sections | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 11\n */\n sectionFontSize: 11,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------------- | ---------------------------------------- | ------- | -------- | ------------------ |\n * | numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value |\n *\n * **Notes:** Default value: 4\n */\n numberSectionStyles: 4,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | --------------------------- | ---- | -------- | ---------------- |\n * | axisFormat | Datetime format of the axis | 3 | Required | Date in yy-mm-dd |\n *\n * **Notes:**\n *\n * This might need adjustment to match your locale and preferences\n *\n * Default value: '%Y-%m-%d'.\n */\n axisFormat: '%Y-%m-%d',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------- | ------- | -------- | ----------- |\n * | topAxis | See notes | Boolean | 4 | True, False |\n *\n * **Notes:** when this flag is set date labels will be added to the top of the chart\n *\n * **Default value false**.\n */\n topAxis: false,\n\n useWidth: undefined,\n },\n\n /** The object containing configurations specific for journey diagrams */\n journey: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n diagramMarginX: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n diagramMarginY: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------- | ------- | -------- | ------------------ |\n * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n leftMargin: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------- | ------- | -------- | ------------------ |\n * | width | Width of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 150\n */\n width: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------------- | ------- | -------- | ------------------ |\n * | height | Height of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 65\n */\n height: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------------ | ------- | -------- | ------------------ |\n * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n boxMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |\n * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 5\n */\n boxTextMargin: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ---------- | ------------------- | ------- | -------- | ------------------ |\n * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n noteMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ----------------------- | ------- | -------- | ------------------ |\n * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * Space between messages.\n *\n * Default value: 35\n */\n messageMargin: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | --------------------------- | ---- | -------- | ------------------------- |\n * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |\n *\n * **Notes:** Default value: 'center'\n */\n messageAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |\n * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n *\n * Depending on css styling this might need adjustment.\n *\n * Default value: 1\n */\n bottomMarginAdj: 1,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | --------------------------------- | ---- | -------- | ----------- |\n * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |\n *\n * **Notes:**\n *\n * This will display arrows that start and begin at the same node as right angles, rather than a curves\n *\n * Default value: false\n */\n rightAngles: false,\n taskFontSize: 14,\n taskFontFamily: '\"Open Sans\", sans-serif',\n taskMargin: 50,\n // width of activation box\n activationWidth: 10,\n\n // text placement as: tspan | fo | old only text as before\n textPlacement: 'fo',\n actorColours: ['#8FBC8F', '#7CFC00', '#00FFFF', '#20B2AA', '#B0E0E6', '#FFFFE0'],\n\n sectionFills: ['#191970', '#8B008B', '#4B0082', '#2F4F4F', '#800000', '#8B4513', '#00008B'],\n sectionColours: ['#fff'],\n },\n class: {\n arrowMarkerAbsolute: false,\n dividerMargin: 10,\n padding: 5,\n textHeight: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ----------------------- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes**:\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-wrapper',\n },\n state: {\n dividerMargin: 10,\n sizeUnit: 5,\n padding: 8,\n textHeight: 10,\n titleShift: -15,\n noteMargin: 10,\n forkWidth: 70,\n forkHeight: 7,\n // Used\n miniPadding: 2,\n // Font size factor, this is used to guess the width of the edges labels before rendering by dagre\n // layout. This might need updating if/when switching font\n fontSizeFactor: 5.02,\n fontSize: 24,\n labelHeight: 16,\n edgeLengthFactor: '20',\n compositTitleSize: 35,\n radius: 5,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ----------------------- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes:**\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-wrapper',\n },\n\n /** The object containing configurations specific for entity relationship diagrams */\n er: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins,\n * expressed in pixels\n *\n * Default value: 20\n */\n diagramPadding: 20,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ---------------------------------------- | ------ | -------- | ---------------------- |\n * | layoutDirection | Directional bias for layout of entities. | string | Required | \"TB\", \"BT\", \"LR\", \"RL\" |\n *\n * **Notes:**\n *\n * 'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.\n *\n * T = top, B = bottom, L = left, and R = right.\n *\n * Default value: 'TB'\n */\n layoutDirection: 'TB',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------- | ------- | -------- | ------------------ |\n * | minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value |\n *\n * **Notes:** Expressed in pixels. Default value: 100\n */\n minEntityWidth: 100,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------------------------------- | ------- | -------- | ------------------ |\n * | minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value |\n *\n * **Notes:** Expressed in pixels Default value: 75\n */\n minEntityHeight: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | ------------------------------------------------------------ | ------- | -------- | ------------------ |\n * | entityPadding | Minimum internal padding between text in box and box borders | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n *\n * The minimum internal padding between text in an entity box and the enclosing box borders,\n * expressed in pixels.\n *\n * Default value: 15\n */\n entityPadding: 15,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ----------------------------------- | ------ | -------- | -------------------- |\n * | stroke | Stroke color of box edges and lines | string | 4 | Any recognized color |\n *\n * **Notes:** Default value: 'gray'\n */\n stroke: 'gray',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | -------------------------- | ------ | -------- | -------------------- |\n * | fill | Fill color of entity boxes | string | 4 | Any recognized color |\n *\n * **Notes:** Default value: 'honeydew'\n */\n fill: 'honeydew',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------- | ------- | -------- | ------------------ |\n * | fontSize | Font Size in pixels | Integer | | Any Positive Value |\n *\n * **Notes:**\n *\n * Font size (expressed as an integer representing a number of pixels) Default value: 12\n */\n fontSize: 12,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and scaled based on\n * available space. If set to false, the diagram reserves its absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n },\n\n /** The object containing configurations specific for pie diagrams */\n pie: {\n useWidth: undefined,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and scaled based on\n * available space. If set to false, the diagram reserves its absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n },\n\n /** The object containing configurations specific for req diagrams */\n requirement: {\n useWidth: undefined,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and scaled based on\n * available space. If set to false, the diagram reserves its absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n rect_fill: '#f9f9f9',\n text_color: '#333',\n rect_border_size: '0.5px',\n rect_border_color: '#bbb',\n rect_min_width: 200,\n rect_min_height: 200,\n fontSize: 14,\n rect_padding: 10,\n line_height: 20,\n },\n gitGraph: {\n diagramPadding: 8,\n nodeLabel: {\n width: 75,\n height: 100,\n x: -25,\n y: 0,\n },\n mainBranchName: 'main',\n mainBranchOrder: 0,\n showCommitLabel: true,\n showBranches: true,\n rotateCommitLabel: true,\n },\n\n /** The object containing configurations specific for c4 diagrams */\n c4: {\n useWidth: undefined,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginX | Margin to the right and left of the c4 diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n diagramMarginX: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ------------------------------------------- | ------- | -------- | ------------------ |\n * | diagramMarginY | Margin to the over and under the c4 diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n diagramMarginY: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------- | --------------------- | ------- | -------- | ------------------ |\n * | c4ShapeMargin | Margin between shapes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n c4ShapeMargin: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | -------------- | ---------------------- | ------- | -------- | ------------------ |\n * | c4ShapePadding | Padding between shapes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 20\n */\n c4ShapePadding: 20,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | --------------------- | ------- | -------- | ------------------ |\n * | width | Width of person boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 216\n */\n width: 216,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ---------------------- | ------- | -------- | ------------------ |\n * | height | Height of person boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 60\n */\n height: 60,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------- | ------------------- | ------- | -------- | ------------------ |\n * | boxMargin | Margin around boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n boxMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ----------- | ----------- | ------- | -------- | ----------- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:** When this flag is set to true, the height and width is set to 100% and is then\n * scaling with the available space. If set to false, the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | ------------ | ----------- | ------- | -------- | ------------------ |\n * | c4ShapeInRow | See Notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** How many shapes to place in each row.\n *\n * Default value: 4\n */\n c4ShapeInRow: 4,\n\n nextLinePaddingX: 0,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --------------- | ----------- | ------- | -------- | ------------------ |\n * | c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value |\n *\n * **Notes:** How many boundarys to place in each row.\n *\n * Default value: 2\n */\n c4BoundaryInRow: 2,\n\n /**\n * This sets the font size of Person shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n personFontSize: 14,\n /**\n * This sets the font family of Person shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n personFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Person shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n personFontWeight: 'normal',\n\n /**\n * This sets the font size of External Person shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_personFontSize: 14,\n /**\n * This sets the font family of External Person shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_personFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Person shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_personFontWeight: 'normal',\n\n /**\n * This sets the font size of System shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n systemFontSize: 14,\n /**\n * This sets the font family of System shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n systemFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of System shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n systemFontWeight: 'normal',\n\n /**\n * This sets the font size of External System shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_systemFontSize: 14,\n /**\n * This sets the font family of External System shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_systemFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External System shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_systemFontWeight: 'normal',\n\n /**\n * This sets the font size of System DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n system_dbFontSize: 14,\n /**\n * This sets the font family of System DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n system_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of System DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n system_dbFontWeight: 'normal',\n\n /**\n * This sets the font size of External System DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_system_dbFontSize: 14,\n /**\n * This sets the font family of External System DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_system_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External System DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_system_dbFontWeight: 'normal',\n\n /**\n * This sets the font size of System Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n system_queueFontSize: 14,\n /**\n * This sets the font family of System Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n system_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of System Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n system_queueFontWeight: 'normal',\n\n /**\n * This sets the font size of External System Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_system_queueFontSize: 14,\n /**\n * This sets the font family of External System Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_system_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External System Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_system_queueFontWeight: 'normal',\n\n /**\n * This sets the font size of Boundary shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n boundaryFontSize: 14,\n /**\n * This sets the font family of Boundary shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n boundaryFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Boundary shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n boundaryFontWeight: 'normal',\n\n /**\n * This sets the font size of Message shape for the diagram\n *\n * **Notes:** Default value: 12.\n */\n messageFontSize: 12,\n /**\n * This sets the font family of Message shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n messageFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Message shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n messageFontWeight: 'normal',\n\n /**\n * This sets the font size of Container shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n containerFontSize: 14,\n /**\n * This sets the font family of Container shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n containerFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Container shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n containerFontWeight: 'normal',\n\n /**\n * This sets the font size of External Container shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_containerFontSize: 14,\n /**\n * This sets the font family of External Container shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_containerFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Container shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_containerFontWeight: 'normal',\n\n /**\n * This sets the font size of Container DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n container_dbFontSize: 14,\n /**\n * This sets the font family of Container DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n container_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Container DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n container_dbFontWeight: 'normal',\n\n /**\n * This sets the font size of External Container DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_container_dbFontSize: 14,\n /**\n * This sets the font family of External Container DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_container_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Container DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_container_dbFontWeight: 'normal',\n\n /**\n * This sets the font size of Container Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n container_queueFontSize: 14,\n /**\n * This sets the font family of Container Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n container_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Container Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n container_queueFontWeight: 'normal',\n\n /**\n * This sets the font size of External Container Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_container_queueFontSize: 14,\n /**\n * This sets the font family of External Container Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_container_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Container Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_container_queueFontWeight: 'normal',\n\n /**\n * This sets the font size of Component shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n componentFontSize: 14,\n /**\n * This sets the font family of Component shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n componentFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Component shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n componentFontWeight: 'normal',\n\n /**\n * This sets the font size of External Component shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_componentFontSize: 14,\n /**\n * This sets the font family of External Component shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_componentFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Component shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_componentFontWeight: 'normal',\n\n /**\n * This sets the font size of Component DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n component_dbFontSize: 14,\n /**\n * This sets the font family of Component DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n component_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Component DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n component_dbFontWeight: 'normal',\n\n /**\n * This sets the font size of External Component DB shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_component_dbFontSize: 14,\n /**\n * This sets the font family of External Component DB shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_component_dbFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Component DB shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_component_dbFontWeight: 'normal',\n\n /**\n * This sets the font size of Component Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n component_queueFontSize: 14,\n /**\n * This sets the font family of Component Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n component_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of Component Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n component_queueFontWeight: 'normal',\n\n /**\n * This sets the font size of External Component Queue shape for the diagram\n *\n * **Notes:** Default value: 14.\n */\n external_component_queueFontSize: 14,\n /**\n * This sets the font family of External Component Queue shape for the diagram\n *\n * **Notes:** Default value: \"Open Sans\", sans-serif.\n */\n external_component_queueFontFamily: '\"Open Sans\", sans-serif',\n /**\n * This sets the font weight of External Component Queue shape for the diagram\n *\n * **Notes:** Default value: normal.\n */\n external_component_queueFontWeight: 'normal',\n\n /**\n * This sets the auto-wrap state for the diagram\n *\n * **Notes:** Default value: true.\n */\n wrap: true,\n\n /**\n * This sets the auto-wrap padding for the diagram (sides only)\n *\n * **Notes:** Default value: 0.\n */\n wrapPadding: 10,\n\n personFont: function () {\n return {\n fontFamily: this.personFontFamily,\n fontSize: this.personFontSize,\n fontWeight: this.personFontWeight,\n };\n },\n\n external_personFont: function () {\n return {\n fontFamily: this.external_personFontFamily,\n fontSize: this.external_personFontSize,\n fontWeight: this.external_personFontWeight,\n };\n },\n\n systemFont: function () {\n return {\n fontFamily: this.systemFontFamily,\n fontSize: this.systemFontSize,\n fontWeight: this.systemFontWeight,\n };\n },\n\n external_systemFont: function () {\n return {\n fontFamily: this.external_systemFontFamily,\n fontSize: this.external_systemFontSize,\n fontWeight: this.external_systemFontWeight,\n };\n },\n\n system_dbFont: function () {\n return {\n fontFamily: this.system_dbFontFamily,\n fontSize: this.system_dbFontSize,\n fontWeight: this.system_dbFontWeight,\n };\n },\n\n external_system_dbFont: function () {\n return {\n fontFamily: this.external_system_dbFontFamily,\n fontSize: this.external_system_dbFontSize,\n fontWeight: this.external_system_dbFontWeight,\n };\n },\n\n system_queueFont: function () {\n return {\n fontFamily: this.system_queueFontFamily,\n fontSize: this.system_queueFontSize,\n fontWeight: this.system_queueFontWeight,\n };\n },\n\n external_system_queueFont: function () {\n return {\n fontFamily: this.external_system_queueFontFamily,\n fontSize: this.external_system_queueFontSize,\n fontWeight: this.external_system_queueFontWeight,\n };\n },\n\n containerFont: function () {\n return {\n fontFamily: this.containerFontFamily,\n fontSize: this.containerFontSize,\n fontWeight: this.containerFontWeight,\n };\n },\n\n external_containerFont: function () {\n return {\n fontFamily: this.external_containerFontFamily,\n fontSize: this.external_containerFontSize,\n fontWeight: this.external_containerFontWeight,\n };\n },\n\n container_dbFont: function () {\n return {\n fontFamily: this.container_dbFontFamily,\n fontSize: this.container_dbFontSize,\n fontWeight: this.container_dbFontWeight,\n };\n },\n\n external_container_dbFont: function () {\n return {\n fontFamily: this.external_container_dbFontFamily,\n fontSize: this.external_container_dbFontSize,\n fontWeight: this.external_container_dbFontWeight,\n };\n },\n\n container_queueFont: function () {\n return {\n fontFamily: this.container_queueFontFamily,\n fontSize: this.container_queueFontSize,\n fontWeight: this.container_queueFontWeight,\n };\n },\n\n external_container_queueFont: function () {\n return {\n fontFamily: this.external_container_queueFontFamily,\n fontSize: this.external_container_queueFontSize,\n fontWeight: this.external_container_queueFontWeight,\n };\n },\n\n componentFont: function () {\n return {\n fontFamily: this.componentFontFamily,\n fontSize: this.componentFontSize,\n fontWeight: this.componentFontWeight,\n };\n },\n\n external_componentFont: function () {\n return {\n fontFamily: this.external_componentFontFamily,\n fontSize: this.external_componentFontSize,\n fontWeight: this.external_componentFontWeight,\n };\n },\n\n component_dbFont: function () {\n return {\n fontFamily: this.component_dbFontFamily,\n fontSize: this.component_dbFontSize,\n fontWeight: this.component_dbFontWeight,\n };\n },\n\n external_component_dbFont: function () {\n return {\n fontFamily: this.external_component_dbFontFamily,\n fontSize: this.external_component_dbFontSize,\n fontWeight: this.external_component_dbFontWeight,\n };\n },\n\n component_queueFont: function () {\n return {\n fontFamily: this.component_queueFontFamily,\n fontSize: this.component_queueFontSize,\n fontWeight: this.component_queueFontWeight,\n };\n },\n\n external_component_queueFont: function () {\n return {\n fontFamily: this.external_component_queueFontFamily,\n fontSize: this.external_component_queueFontSize,\n fontWeight: this.external_component_queueFontWeight,\n };\n },\n\n boundaryFont: function () {\n return {\n fontFamily: this.boundaryFontFamily,\n fontSize: this.boundaryFontSize,\n fontWeight: this.boundaryFontWeight,\n };\n },\n\n messageFont: function () {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight,\n };\n },\n\n // ' Colors\n // ' ##################################\n person_bg_color: '#08427B',\n person_border_color: '#073B6F',\n external_person_bg_color: '#686868',\n external_person_border_color: '#8A8A8A',\n system_bg_color: '#1168BD',\n system_border_color: '#3C7FC0',\n system_db_bg_color: '#1168BD',\n system_db_border_color: '#3C7FC0',\n system_queue_bg_color: '#1168BD',\n system_queue_border_color: '#3C7FC0',\n external_system_bg_color: '#999999',\n external_system_border_color: '#8A8A8A',\n external_system_db_bg_color: '#999999',\n external_system_db_border_color: '#8A8A8A',\n external_system_queue_bg_color: '#999999',\n external_system_queue_border_color: '#8A8A8A',\n container_bg_color: '#438DD5',\n container_border_color: '#3C7FC0',\n container_db_bg_color: '#438DD5',\n container_db_border_color: '#3C7FC0',\n container_queue_bg_color: '#438DD5',\n container_queue_border_color: '#3C7FC0',\n external_container_bg_color: '#B3B3B3',\n external_container_border_color: '#A6A6A6',\n external_container_db_bg_color: '#B3B3B3',\n external_container_db_border_color: '#A6A6A6',\n external_container_queue_bg_color: '#B3B3B3',\n external_container_queue_border_color: '#A6A6A6',\n component_bg_color: '#85BBF0',\n component_border_color: '#78A8D8',\n component_db_bg_color: '#85BBF0',\n component_db_border_color: '#78A8D8',\n component_queue_bg_color: '#85BBF0',\n component_queue_border_color: '#78A8D8',\n external_component_bg_color: '#CCCCCC',\n external_component_border_color: '#BFBFBF',\n external_component_db_bg_color: '#CCCCCC',\n external_component_db_border_color: '#BFBFBF',\n external_component_queue_bg_color: '#CCCCCC',\n external_component_queue_border_color: '#BFBFBF',\n },\n};\n\nconfig.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\nconfig.gitGraph.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n\nconst keyify = (obj, prefix = '') =>\n Object.keys(obj).reduce((res, el) => {\n if (Array.isArray(obj[el])) {\n return res;\n } else if (typeof obj[el] === 'object' && obj[el] !== null) {\n return [...res, prefix + el, ...keyify(obj[el], '')];\n }\n return [...res, prefix + el];\n }, []);\n\nexport const configKeys = keyify(config, '');\nexport default config;\n","const directive =\n /[%]{2}[{]\\s*(?:(?:(\\w+)\\s*:|(\\w+))\\s*(?:(?:(\\w+))|((?:(?![}][%]{2}).|\\r?\\n)*))?\\s*)(?:[}][%]{2})?/gi;\nconst anyComment = /\\s*%%.*\\n/gm;\nconst detectors = {};\n/**\n * @function detectType Detects the type of the graph text. Takes into consideration the possible\n * existence of an %%init directive\n *\n * ```mermaid\n * %%{initialize: {\"startOnLoad\": true, logLevel: \"fatal\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n * @param {string} text The text defining the graph\n * @param {{\n * class: { defaultRenderer: string } | undefined;\n * state: { defaultRenderer: string } | undefined;\n * flowchart: { defaultRenderer: string } | undefined;\n * }} [cnf]\n * @returns {string} A graph definition key\n */\nconst detectType = function (text, cnf) {\n text = text.replace(directive, '').replace(anyComment, '\\n');\n if (text.match(/^\\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/)) {\n return 'c4';\n }\n\n if (text.match(/^\\s*sequenceDiagram/)) {\n return 'sequence';\n }\n\n if (text.match(/^\\s*gantt/)) {\n return 'gantt';\n }\n if (text.match(/^\\s*classDiagram-v2/)) {\n return 'classDiagram';\n }\n if (text.match(/^\\s*classDiagram/)) {\n if (cnf && cnf.class && cnf.class.defaultRenderer === 'dagre-wrapper') return 'classDiagram';\n return 'class';\n }\n\n if (text.match(/^\\s*stateDiagram-v2/)) {\n return 'stateDiagram';\n }\n\n if (text.match(/^\\s*stateDiagram/)) {\n if (cnf && cnf.class && cnf.state.defaultRenderer === 'dagre-wrapper') return 'stateDiagram';\n return 'state';\n }\n\n // if (text.match(/^\\s*gitGraph/)) {\n // return 'gitGraph';\n // }\n if (text.match(/^\\s*flowchart/)) {\n return 'flowchart-v2';\n }\n\n if (text.match(/^\\s*info/)) {\n return 'info';\n }\n if (text.match(/^\\s*pie/)) {\n return 'pie';\n }\n\n if (text.match(/^\\s*erDiagram/)) {\n return 'er';\n }\n\n if (text.match(/^\\s*journey/)) {\n return 'journey';\n }\n\n if (text.match(/^\\s*requirement/) || text.match(/^\\s*requirementDiagram/)) {\n return 'requirement';\n }\n if (cnf && cnf.flowchart && cnf.flowchart.defaultRenderer === 'dagre-wrapper')\n return 'flowchart-v2';\n const k = Object.keys(detectors);\n for (let i = 0; i < k.length; i++) {\n const key = k[i];\n const dia = detectors[key];\n if (dia && dia.detector(text)) {\n return key;\n }\n }\n return 'flowchart';\n};\nexport const addDetector = (key, detector) => {\n detectors[key] = {\n detector,\n };\n};\nexport default detectType;\n","import { registerDiagram } from './diagramAPI.js';\n// import mindmapDb from '../diagrams/mindmap/mindmapDb';\n// import mindmapRenderer from '../diagrams/mindmap/mindmapRenderer';\n// import mindmapParser from '../diagrams/mindmap/parser/mindmapDiagram';\n// import mindmapDetector from '../diagrams/mindmap/mindmapDetector';\n\nimport gitGraphDb from '../diagrams/git/gitGraphAst';\nimport gitGraphRenderer from '../diagrams/git/gitGraphRenderer';\nimport gitGraphParser from '../diagrams/git/parser/gitGraph';\nimport gitGraphDetector from '../diagrams/git/gitGraphDetector';\n\n// Register mindmap and other built-in diagrams\n// registerDiagram(\n// 'mindmap',\n// mindmapParser,\n// mindmapDb,\n// mindmapRenderer,\n// undefined,\n// mindmapRenderer,\n// mindmapDetector\n// );\nconst addDiagrams = () => {\n registerDiagram(\n 'gitGraph',\n gitGraphParser,\n gitGraphDb,\n gitGraphRenderer,\n undefined,\n gitGraphDetector\n );\n};\nexport default addDiagrams;\n","import c4Db from '../diagrams/c4/c4Db';\nimport c4Renderer from '../diagrams/c4/c4Renderer';\nimport c4Parser from '../diagrams/c4/parser/c4Diagram';\nimport classDb from '../diagrams/class/classDb';\nimport classRenderer from '../diagrams/class/classRenderer';\nimport classRendererV2 from '../diagrams/class/classRenderer-v2';\nimport classParser from '../diagrams/class/parser/classDiagram';\nimport erDb from '../diagrams/er/erDb';\nimport erRenderer from '../diagrams/er/erRenderer';\nimport erParser from '../diagrams/er/parser/erDiagram';\nimport flowDb from '../diagrams/flowchart/flowDb';\nimport flowRenderer from '../diagrams/flowchart/flowRenderer';\nimport flowRendererV2 from '../diagrams/flowchart/flowRenderer-v2';\nimport flowParser from '../diagrams/flowchart/parser/flow';\nimport ganttDb from '../diagrams/gantt/ganttDb';\nimport ganttRenderer from '../diagrams/gantt/ganttRenderer';\nimport ganttParser from '../diagrams/gantt/parser/gantt';\nimport infoDb from '../diagrams/info/infoDb';\nimport infoRenderer from '../diagrams/info/infoRenderer';\nimport infoParser from '../diagrams/info/parser/info';\nimport pieParser from '../diagrams/pie/parser/pie';\nimport pieDb from '../diagrams/pie/pieDb';\nimport pieRenderer from '../diagrams/pie/pieRenderer';\nimport requirementParser from '../diagrams/requirement/parser/requirementDiagram';\nimport requirementDb from '../diagrams/requirement/requirementDb';\nimport requirementRenderer from '../diagrams/requirement/requirementRenderer';\nimport sequenceParser from '../diagrams/sequence/parser/sequenceDiagram';\nimport sequenceDb from '../diagrams/sequence/sequenceDb';\nimport sequenceRenderer from '../diagrams/sequence/sequenceRenderer';\nimport stateParser from '../diagrams/state/parser/stateDiagram';\nimport stateDb from '../diagrams/state/stateDb';\nimport stateRenderer from '../diagrams/state/stateRenderer';\nimport stateRendererV2 from '../diagrams/state/stateRenderer-v2';\nimport journeyDb from '../diagrams/user-journey/journeyDb';\nimport journeyRenderer from '../diagrams/user-journey/journeyRenderer';\nimport journeyParser from '../diagrams/user-journey/parser/journey';\nimport { addDetector } from './detectType';\n\nconst diagrams = {\n c4: {\n db: c4Db,\n renderer: c4Renderer,\n parser: c4Parser,\n init: (cnf) => {\n c4Renderer.setConf(cnf.c4);\n },\n },\n class: {\n db: classDb,\n renderer: classRenderer,\n parser: classParser,\n init: (cnf) => {\n cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n classDb.clear();\n },\n },\n classDiagram: {\n db: classDb,\n renderer: classRendererV2,\n parser: classParser,\n init: (cnf) => {\n cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n classDb.clear();\n },\n },\n er: {\n db: erDb,\n renderer: erRenderer,\n parser: erParser,\n },\n flowchart: {\n db: flowDb,\n renderer: flowRenderer,\n parser: flowParser,\n init: (cnf) => {\n flowRenderer.setConf(cnf.flowchart);\n cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n flowDb.clear();\n flowDb.setGen('gen-1');\n },\n },\n 'flowchart-v2': {\n db: flowDb,\n renderer: flowRendererV2,\n parser: flowParser,\n init: (cnf) => {\n flowRendererV2.setConf(cnf.flowchart);\n cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n flowDb.clear();\n flowDb.setGen('gen-2');\n },\n },\n gantt: {\n db: ganttDb,\n renderer: ganttRenderer,\n parser: ganttParser,\n init: (cnf) => {\n ganttRenderer.setConf(cnf.gantt);\n },\n },\n // git: {\n // db: gitGraphAst,\n // renderer: gitGraphRenderer,\n // parser: gitGraphParser,\n // },\n info: {\n db: infoDb,\n renderer: infoRenderer,\n parser: infoParser,\n },\n pie: {\n db: pieDb,\n renderer: pieRenderer,\n parser: pieParser,\n },\n requirement: {\n db: requirementDb,\n renderer: requirementRenderer,\n parser: requirementParser,\n },\n sequence: {\n db: sequenceDb,\n renderer: sequenceRenderer,\n parser: sequenceParser,\n init: (cnf) => {\n cnf.sequence.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n if (cnf.sequenceDiagram) {\n // backwards compatibility\n sequenceRenderer.setConf(Object.assign(cnf.sequence, cnf.sequenceDiagram));\n console.error(\n '`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.'\n );\n }\n sequenceDb.setWrap(cnf.wrap);\n sequenceRenderer.setConf(cnf.sequence);\n },\n },\n state: {\n db: stateDb,\n renderer: stateRenderer,\n parser: stateParser,\n init: (cnf) => {\n cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n stateDb.clear();\n },\n },\n stateDiagram: {\n db: stateDb,\n renderer: stateRendererV2,\n parser: stateParser,\n init: (cnf) => {\n cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n stateDb.clear();\n },\n },\n journey: {\n db: journeyDb,\n renderer: journeyRenderer,\n parser: journeyParser,\n init: (cnf) => {\n journeyRenderer.setConf(cnf.journey);\n journeyDb.clear();\n },\n },\n};\n// console.log(sequenceDb);\nexport const registerDiagram = (id, parser, db, renderer, init, detector) => {\n diagrams[id] = { parser, db, renderer, init };\n addDetector(id, detector);\n};\n\nexport const getDiagrams = () => {\n // console.log('diagrams', diagrams);\n return diagrams;\n};\n","import mermaidAPI from '../../mermaidAPI';\nimport * as configApi from '../../config';\nimport { log } from '../../logger';\nimport { sanitizeText } from '../common/common';\nimport { setAccTitle, getAccTitle, getAccDescription, setAccDescription } from '../../commonDb';\n\nlet c4ShapeArray = [];\nlet boundaryParseStack = [''];\nlet currentBoundaryParse = 'global';\nlet parentBoundaryParse = '';\nlet boundarys = [\n {\n alias: 'global',\n label: { text: 'global' },\n type: { text: 'global' },\n tags: null,\n link: null,\n parentBoundary: '',\n },\n];\nlet rels = [];\nlet title = '';\nlet wrapEnabled = false;\nlet description = '';\nlet c4ShapeInRow = 4;\nlet c4BoundaryInRow = 2;\nvar c4Type;\n\nexport const getC4Type = function () {\n return c4Type;\n};\n\nexport const setC4Type = function (c4TypeParam) {\n let sanitizedText = sanitizeText(c4TypeParam, configApi.getConfig());\n c4Type = sanitizedText;\n};\n\nexport const parseDirective = function (statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\n\n//type, from, to, label, ?techn, ?descr, ?sprite, ?tags, $link\nexport const addRel = function (type, from, to, label, techn, descr, sprite, tags, link) {\n // Don't allow label nulling\n if (\n type === undefined ||\n type === null ||\n from === undefined ||\n from === null ||\n to === undefined ||\n to === null ||\n label === undefined ||\n label === null\n )\n return;\n\n let rel = {};\n const old = rels.find((rel) => rel.from === from && rel.to === to);\n if (old) {\n rel = old;\n } else {\n rels.push(rel);\n }\n\n rel.type = type;\n rel.from = from;\n rel.to = to;\n rel.label = { text: label };\n\n if (techn === undefined || techn === null) {\n rel.techn = { text: '' };\n } else {\n if (typeof techn === 'object') {\n let [key, value] = Object.entries(techn)[0];\n rel[key] = { text: value };\n } else {\n rel.techn = { text: techn };\n }\n }\n\n if (descr === undefined || descr === null) {\n rel.descr = { text: '' };\n } else {\n if (typeof descr === 'object') {\n let [key, value] = Object.entries(descr)[0];\n rel[key] = { text: value };\n } else {\n rel.descr = { text: descr };\n }\n }\n\n if (typeof sprite === 'object') {\n let [key, value] = Object.entries(sprite)[0];\n rel[key] = value;\n } else {\n rel.sprite = sprite;\n }\n if (typeof tags === 'object') {\n let [key, value] = Object.entries(tags)[0];\n rel[key] = value;\n } else {\n rel.tags = tags;\n }\n if (typeof link === 'object') {\n let [key, value] = Object.entries(link)[0];\n rel[key] = value;\n } else {\n rel.link = link;\n }\n rel.wrap = autoWrap();\n};\n\n//type, alias, label, ?descr, ?sprite, ?tags, $link\nexport const addPersonOrSystem = function (typeC4Shape, alias, label, descr, sprite, tags, link) {\n // Don't allow label nulling\n if (alias === null || label === null) return;\n\n let personOrSystem = {};\n const old = c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias);\n if (old && alias === old.alias) {\n personOrSystem = old;\n } else {\n personOrSystem.alias = alias;\n c4ShapeArray.push(personOrSystem);\n }\n\n // Don't allow null labels, either\n if (label === undefined || label === null) {\n personOrSystem.label = { text: '' };\n } else {\n personOrSystem.label = { text: label };\n }\n\n if (descr === undefined || descr === null) {\n personOrSystem.descr = { text: '' };\n } else {\n if (typeof descr === 'object') {\n let [key, value] = Object.entries(descr)[0];\n personOrSystem[key] = { text: value };\n } else {\n personOrSystem.descr = { text: descr };\n }\n }\n\n if (typeof sprite === 'object') {\n let [key, value] = Object.entries(sprite)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.sprite = sprite;\n }\n if (typeof tags === 'object') {\n let [key, value] = Object.entries(tags)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.tags = tags;\n }\n if (typeof link === 'object') {\n let [key, value] = Object.entries(link)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.link = link;\n }\n personOrSystem.typeC4Shape = { text: typeC4Shape };\n personOrSystem.parentBoundary = currentBoundaryParse;\n personOrSystem.wrap = autoWrap();\n};\n\n//type, alias, label, ?techn, ?descr ?sprite, ?tags, $link\nexport const addContainer = function (typeC4Shape, alias, label, techn, descr, sprite, tags, link) {\n // Don't allow label nulling\n if (alias === null || label === null) return;\n\n let container = {};\n const old = c4ShapeArray.find((container) => container.alias === alias);\n if (old && alias === old.alias) {\n container = old;\n } else {\n container.alias = alias;\n c4ShapeArray.push(container);\n }\n\n // Don't allow null labels, either\n if (label === undefined || label === null) {\n container.label = { text: '' };\n } else {\n container.label = { text: label };\n }\n\n if (techn === undefined || techn === null) {\n container.techn = { text: '' };\n } else {\n if (typeof techn === 'object') {\n let [key, value] = Object.entries(techn)[0];\n container[key] = { text: value };\n } else {\n container.techn = { text: techn };\n }\n }\n\n if (descr === undefined || descr === null) {\n container.descr = { text: '' };\n } else {\n if (typeof descr === 'object') {\n let [key, value] = Object.entries(descr)[0];\n container[key] = { text: value };\n } else {\n container.descr = { text: descr };\n }\n }\n\n if (typeof sprite === 'object') {\n let [key, value] = Object.entries(sprite)[0];\n container[key] = value;\n } else {\n container.sprite = sprite;\n }\n if (typeof tags === 'object') {\n let [key, value] = Object.entries(tags)[0];\n container[key] = value;\n } else {\n container.tags = tags;\n }\n if (typeof link === 'object') {\n let [key, value] = Object.entries(link)[0];\n container[key] = value;\n } else {\n container.link = link;\n }\n container.wrap = autoWrap();\n container.typeC4Shape = { text: typeC4Shape };\n container.parentBoundary = currentBoundaryParse;\n};\n\n//type, alias, label, ?techn, ?descr ?sprite, ?tags, $link\nexport const addComponent = function (typeC4Shape, alias, label, techn, descr, sprite, tags, link) {\n // Don't allow label nulling\n if (alias === null || label === null) return;\n\n let component = {};\n const old = c4ShapeArray.find((component) => component.alias === alias);\n if (old && alias === old.alias) {\n component = old;\n } else {\n component.alias = alias;\n c4ShapeArray.push(component);\n }\n\n // Don't allow null labels, either\n if (label === undefined || label === null) {\n component.label = { text: '' };\n } else {\n component.label = { text: label };\n }\n\n if (techn === undefined || techn === null) {\n component.techn = { text: '' };\n } else {\n if (typeof techn === 'object') {\n let [key, value] = Object.entries(techn)[0];\n component[key] = { text: value };\n } else {\n component.techn = { text: techn };\n }\n }\n\n if (descr === undefined || descr === null) {\n component.descr = { text: '' };\n } else {\n if (typeof descr === 'object') {\n let [key, value] = Object.entries(descr)[0];\n component[key] = { text: value };\n } else {\n component.descr = { text: descr };\n }\n }\n\n if (typeof sprite === 'object') {\n let [key, value] = Object.entries(sprite)[0];\n component[key] = value;\n } else {\n component.sprite = sprite;\n }\n if (typeof tags === 'object') {\n let [key, value] = Object.entries(tags)[0];\n component[key] = value;\n } else {\n component.tags = tags;\n }\n if (typeof link === 'object') {\n let [key, value] = Object.entries(link)[0];\n component[key] = value;\n } else {\n component.link = link;\n }\n component.wrap = autoWrap();\n component.typeC4Shape = { text: typeC4Shape };\n component.parentBoundary = currentBoundaryParse;\n};\n\n//alias, label, ?type, ?tags, $link\nexport const addPersonOrSystemBoundary = function (alias, label, type, tags, link) {\n // if (parentBoundary === null) return;\n\n // Don't allow label nulling\n if (alias === null || label === null) return;\n\n let boundary = {};\n const old = boundarys.find((boundary) => boundary.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundarys.push(boundary);\n }\n\n // Don't allow null labels, either\n if (label === undefined || label === null) {\n boundary.label = { text: '' };\n } else {\n boundary.label = { text: label };\n }\n\n if (type === undefined || type === null) {\n boundary.type = { text: 'system' };\n } else {\n if (typeof type === 'object') {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n\n if (typeof tags === 'object') {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === 'object') {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n};\n\n//alias, label, ?type, ?tags, $link\nexport const addContainerBoundary = function (alias, label, type, tags, link) {\n // if (parentBoundary === null) return;\n\n // Don't allow label nulling\n if (alias === null || label === null) return;\n\n let boundary = {};\n const old = boundarys.find((boundary) => boundary.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundarys.push(boundary);\n }\n\n // Don't allow null labels, either\n if (label === undefined || label === null) {\n boundary.label = { text: '' };\n } else {\n boundary.label = { text: label };\n }\n\n if (type === undefined || type === null) {\n boundary.type = { text: 'container' };\n } else {\n if (typeof type === 'object') {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n\n if (typeof tags === 'object') {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === 'object') {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n};\n\n//alias, label, ?type, ?descr, ?sprite, ?tags, $link\nexport const addDeploymentNode = function (\n nodeType,\n alias,\n label,\n type,\n descr,\n sprite,\n tags,\n link\n) {\n // if (parentBoundary === null) return;\n\n // Don't allow label nulling\n if (alias === null || label === null) return;\n\n let boundary = {};\n const old = boundarys.find((boundary) => boundary.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundarys.push(boundary);\n }\n\n // Don't allow null labels, either\n if (label === undefined || label === null) {\n boundary.label = { text: '' };\n } else {\n boundary.label = { text: label };\n }\n\n if (type === undefined || type === null) {\n boundary.type = { text: 'node' };\n } else {\n if (typeof type === 'object') {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n\n if (descr === undefined || descr === null) {\n boundary.descr = { text: '' };\n } else {\n if (typeof descr === 'object') {\n let [key, value] = Object.entries(descr)[0];\n boundary[key] = { text: value };\n } else {\n boundary.descr = { text: descr };\n }\n }\n\n if (typeof tags === 'object') {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === 'object') {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.nodeType = nodeType;\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n};\n\nexport const popBoundaryParseStack = function () {\n currentBoundaryParse = parentBoundaryParse;\n boundaryParseStack.pop();\n parentBoundaryParse = boundaryParseStack.pop();\n boundaryParseStack.push(parentBoundaryParse);\n};\n\n//elementName, ?bgColor, ?fontColor, ?borderColor, ?shadowing, ?shape, ?sprite, ?techn, ?legendText, ?legendSprite\nexport const updateElStyle = function (\n typeC4Shape,\n elementName,\n bgColor,\n fontColor,\n borderColor,\n shadowing,\n shape,\n sprite,\n techn,\n legendText,\n legendSprite\n) {\n let old = c4ShapeArray.find((element) => element.alias === elementName);\n if (old === undefined) {\n old = boundarys.find((element) => element.alias === elementName);\n if (old === undefined) {\n return;\n }\n }\n if (bgColor !== undefined && bgColor !== null) {\n if (typeof bgColor === 'object') {\n let [key, value] = Object.entries(bgColor)[0];\n old[key] = value;\n } else {\n old.bgColor = bgColor;\n }\n }\n if (fontColor !== undefined && fontColor !== null) {\n if (typeof fontColor === 'object') {\n let [key, value] = Object.entries(fontColor)[0];\n old[key] = value;\n } else {\n old.fontColor = fontColor;\n }\n }\n if (borderColor !== undefined && borderColor !== null) {\n if (typeof borderColor === 'object') {\n let [key, value] = Object.entries(borderColor)[0];\n old[key] = value;\n } else {\n old.borderColor = borderColor;\n }\n }\n if (shadowing !== undefined && shadowing !== null) {\n if (typeof shadowing === 'object') {\n let [key, value] = Object.entries(shadowing)[0];\n old[key] = value;\n } else {\n old.shadowing = shadowing;\n }\n }\n if (shape !== undefined && shape !== null) {\n if (typeof shape === 'object') {\n let [key, value] = Object.entries(shape)[0];\n old[key] = value;\n } else {\n old.shape = shape;\n }\n }\n if (sprite !== undefined && sprite !== null) {\n if (typeof sprite === 'object') {\n let [key, value] = Object.entries(sprite)[0];\n old[key] = value;\n } else {\n old.sprite = sprite;\n }\n }\n if (techn !== undefined && techn !== null) {\n if (typeof techn === 'object') {\n let [key, value] = Object.entries(techn)[0];\n old[key] = value;\n } else {\n old.techn = techn;\n }\n }\n if (legendText !== undefined && legendText !== null) {\n if (typeof legendText === 'object') {\n let [key, value] = Object.entries(legendText)[0];\n old[key] = value;\n } else {\n old.legendText = legendText;\n }\n }\n if (legendSprite !== undefined && legendSprite !== null) {\n if (typeof legendSprite === 'object') {\n let [key, value] = Object.entries(legendSprite)[0];\n old[key] = value;\n } else {\n old.legendSprite = legendSprite;\n }\n }\n};\n\n//textColor, lineColor, ?offsetX, ?offsetY\nexport const updateRelStyle = function (\n typeC4Shape,\n from,\n to,\n textColor,\n lineColor,\n offsetX,\n offsetY\n) {\n const old = rels.find((rel) => rel.from === from && rel.to === to);\n if (old === undefined) {\n return;\n }\n if (textColor !== undefined && textColor !== null) {\n if (typeof textColor === 'object') {\n let [key, value] = Object.entries(textColor)[0];\n old[key] = value;\n } else {\n old.textColor = textColor;\n }\n }\n if (lineColor !== undefined && lineColor !== null) {\n if (typeof lineColor === 'object') {\n let [key, value] = Object.entries(lineColor)[0];\n old[key] = value;\n } else {\n old.lineColor = lineColor;\n }\n }\n if (offsetX !== undefined && offsetX !== null) {\n if (typeof offsetX === 'object') {\n let [key, value] = Object.entries(offsetX)[0];\n old[key] = parseInt(value);\n } else {\n old.offsetX = parseInt(offsetX);\n }\n }\n if (offsetY !== undefined && offsetY !== null) {\n if (typeof offsetY === 'object') {\n let [key, value] = Object.entries(offsetY)[0];\n old[key] = parseInt(value);\n } else {\n old.offsetY = parseInt(offsetY);\n }\n }\n};\n\n//?c4ShapeInRow, ?c4BoundaryInRow\nexport const updateLayoutConfig = function (typeC4Shape, c4ShapeInRowParam, c4BoundaryInRowParam) {\n let c4ShapeInRowValue = c4ShapeInRow;\n let c4BoundaryInRowValue = c4BoundaryInRow;\n\n if (typeof c4ShapeInRowParam === 'object') {\n let [key, value] = Object.entries(c4ShapeInRowParam)[0];\n c4ShapeInRowValue = parseInt(value);\n } else {\n c4ShapeInRowValue = parseInt(c4ShapeInRowParam);\n }\n if (typeof c4BoundaryInRowParam === 'object') {\n let [key, value] = Object.entries(c4BoundaryInRowParam)[0];\n c4BoundaryInRowValue = parseInt(value);\n } else {\n c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam);\n }\n\n if (c4ShapeInRowValue >= 1) c4ShapeInRow = c4ShapeInRowValue;\n if (c4BoundaryInRowValue >= 1) c4BoundaryInRow = c4BoundaryInRowValue;\n};\n\nexport const getC4ShapeInRow = function () {\n return c4ShapeInRow;\n};\nexport const getC4BoundaryInRow = function () {\n return c4BoundaryInRow;\n};\nexport const getCurrentBoundaryParse = function () {\n return currentBoundaryParse;\n};\n\nexport const getParentBoundaryParse = function () {\n return parentBoundaryParse;\n};\n\nexport const getC4ShapeArray = function (parentBoundary) {\n if (parentBoundary === undefined || parentBoundary === null) return c4ShapeArray;\n else\n return c4ShapeArray.filter((personOrSystem) => {\n return personOrSystem.parentBoundary === parentBoundary;\n });\n};\nexport const getC4Shape = function (alias) {\n return c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias);\n};\nexport const getC4ShapeKeys = function (parentBoundary) {\n return Object.keys(getC4ShapeArray(parentBoundary));\n};\n\nexport const getBoundarys = function (parentBoundary) {\n if (parentBoundary === undefined || parentBoundary === null) return boundarys;\n else return boundarys.filter((boundary) => boundary.parentBoundary === parentBoundary);\n};\n\nexport const getRels = function () {\n return rels;\n};\n\nexport const getTitle = function () {\n return title;\n};\n\nexport const setWrap = function (wrapSetting) {\n wrapEnabled = wrapSetting;\n};\n\nexport const autoWrap = function () {\n return wrapEnabled;\n};\n\nexport const clear = function () {\n c4ShapeArray = [];\n boundarys = [\n {\n alias: 'global',\n label: { text: 'global' },\n type: { text: 'global' },\n tags: null,\n link: null,\n parentBoundary: '',\n },\n ];\n parentBoundaryParse = '';\n currentBoundaryParse = 'global';\n boundaryParseStack = [''];\n rels = [];\n\n boundaryParseStack = [''];\n title = '';\n wrapEnabled = false;\n description = '';\n c4ShapeInRow = 4;\n c4BoundaryInRow = 2;\n};\n\nexport const LINETYPE = {\n SOLID: 0,\n DOTTED: 1,\n NOTE: 2,\n SOLID_CROSS: 3,\n DOTTED_CROSS: 4,\n SOLID_OPEN: 5,\n DOTTED_OPEN: 6,\n LOOP_START: 10,\n LOOP_END: 11,\n ALT_START: 12,\n ALT_ELSE: 13,\n ALT_END: 14,\n OPT_START: 15,\n OPT_END: 16,\n ACTIVE_START: 17,\n ACTIVE_END: 18,\n PAR_START: 19,\n PAR_AND: 20,\n PAR_END: 21,\n RECT_START: 22,\n RECT_END: 23,\n SOLID_POINT: 24,\n DOTTED_POINT: 25,\n};\n\nexport const ARROWTYPE = {\n FILLED: 0,\n OPEN: 1,\n};\n\nexport const PLACEMENT = {\n LEFTOF: 0,\n RIGHTOF: 1,\n OVER: 2,\n};\n\nexport const setTitle = function (txt) {\n let sanitizedText = sanitizeText(txt, configApi.getConfig());\n title = sanitizedText;\n};\n\nexport default {\n addPersonOrSystem,\n addPersonOrSystemBoundary,\n addContainer,\n addContainerBoundary,\n addComponent,\n addDeploymentNode,\n popBoundaryParseStack,\n addRel,\n updateElStyle,\n updateRelStyle,\n updateLayoutConfig,\n autoWrap,\n setWrap,\n getC4ShapeArray,\n getC4Shape,\n getC4ShapeKeys,\n getBoundarys,\n getCurrentBoundaryParse,\n getParentBoundaryParse,\n getRels,\n getTitle,\n getC4Type,\n getC4ShapeInRow,\n getC4BoundaryInRow,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n parseDirective,\n getConfig: () => configApi.getConfig().c4,\n clear,\n LINETYPE,\n ARROWTYPE,\n PLACEMENT,\n setTitle,\n setC4Type,\n // apply,\n};\n","import { select } from 'd3';\nimport svgDraw, { drawText, fixLifeLineHeights } from './svgDraw';\nimport { log } from '../../logger';\nimport { parser } from './parser/c4Diagram';\nimport common from '../common/common';\nimport c4Db from './c4Db';\nimport * as configApi from '../../config';\nimport assignWithDepth from '../../assignWithDepth';\nimport { wrapLabel, calculateTextWidth, calculateTextHeight, configureSvgSize } from '../../utils';\nimport addSVGAccessibilityFields from '../../accessibility';\n\nlet globalBoundaryMaxX = 0,\n globalBoundaryMaxY = 0;\n\nlet c4ShapeInRow = 4;\nlet c4BoundaryInRow = 2;\n\nparser.yy = c4Db;\n\nlet conf = {};\n\nclass Bounds {\n constructor(diagObj) {\n this.name = '';\n this.data = {};\n this.data.startx = undefined;\n this.data.stopx = undefined;\n this.data.starty = undefined;\n this.data.stopy = undefined;\n this.data.widthLimit = undefined;\n\n this.nextData = {};\n this.nextData.startx = undefined;\n this.nextData.stopx = undefined;\n this.nextData.starty = undefined;\n this.nextData.stopy = undefined;\n this.nextData.cnt = 0;\n\n setConf(diagObj.db.getConfig());\n }\n\n setData(startx, stopx, starty, stopy) {\n this.nextData.startx = this.data.startx = startx;\n this.nextData.stopx = this.data.stopx = stopx;\n this.nextData.starty = this.data.starty = starty;\n this.nextData.stopy = this.data.stopy = stopy;\n }\n\n updateVal(obj, key, val, fun) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = val;\n } else {\n obj[key] = fun(val, obj[key]);\n }\n }\n\n insert(c4Shape) {\n this.nextData.cnt = this.nextData.cnt + 1;\n let _startx =\n this.nextData.startx === this.nextData.stopx\n ? this.nextData.stopx + c4Shape.margin\n : this.nextData.stopx + c4Shape.margin * 2;\n let _stopx = _startx + c4Shape.width;\n let _starty = this.nextData.starty + c4Shape.margin * 2;\n let _stopy = _starty + c4Shape.height;\n if (\n _startx >= this.data.widthLimit ||\n _stopx >= this.data.widthLimit ||\n this.nextData.cnt > c4ShapeInRow\n ) {\n _startx = this.nextData.startx + c4Shape.margin + conf.nextLinePaddingX;\n _starty = this.nextData.stopy + c4Shape.margin * 2;\n\n this.nextData.stopx = _stopx = _startx + c4Shape.width;\n this.nextData.starty = this.nextData.stopy;\n this.nextData.stopy = _stopy = _starty + c4Shape.height;\n this.nextData.cnt = 1;\n }\n\n c4Shape.x = _startx;\n c4Shape.y = _starty;\n\n this.updateVal(this.data, 'startx', _startx, Math.min);\n this.updateVal(this.data, 'starty', _starty, Math.min);\n this.updateVal(this.data, 'stopx', _stopx, Math.max);\n this.updateVal(this.data, 'stopy', _stopy, Math.max);\n\n this.updateVal(this.nextData, 'startx', _startx, Math.min);\n this.updateVal(this.nextData, 'starty', _starty, Math.min);\n this.updateVal(this.nextData, 'stopx', _stopx, Math.max);\n this.updateVal(this.nextData, 'stopy', _stopy, Math.max);\n }\n\n init(diagObj) {\n this.name = '';\n this.data = {\n startx: undefined,\n stopx: undefined,\n starty: undefined,\n stopy: undefined,\n widthLimit: undefined,\n };\n this.nextData = {\n startx: undefined,\n stopx: undefined,\n starty: undefined,\n stopy: undefined,\n cnt: 0,\n };\n setConf(diagObj.db.getConfig());\n }\n\n bumpLastMargin(margin) {\n this.data.stopx += margin;\n this.data.stopy += margin;\n }\n}\n\nexport const setConf = function (cnf) {\n assignWithDepth(conf, cnf);\n\n if (cnf.fontFamily) {\n conf.personFontFamily = conf.systemFontFamily = conf.messageFontFamily = cnf.fontFamily;\n }\n if (cnf.fontSize) {\n conf.personFontSize = conf.systemFontSize = conf.messageFontSize = cnf.fontSize;\n }\n if (cnf.fontWeight) {\n conf.personFontWeight = conf.systemFontWeight = conf.messageFontWeight = cnf.fontWeight;\n }\n};\n\nconst c4ShapeFont = (cnf, typeC4Shape) => {\n return {\n fontFamily: cnf[typeC4Shape + 'FontFamily'],\n fontSize: cnf[typeC4Shape + 'FontSize'],\n fontWeight: cnf[typeC4Shape + 'FontWeight'],\n };\n};\n\nconst boundaryFont = (cnf) => {\n return {\n fontFamily: cnf.boundaryFontFamily,\n fontSize: cnf.boundaryFontSize,\n fontWeight: cnf.boundaryFontWeight,\n };\n};\n\nconst messageFont = (cnf) => {\n return {\n fontFamily: cnf.messageFontFamily,\n fontSize: cnf.messageFontSize,\n fontWeight: cnf.messageFontWeight,\n };\n};\n\n/**\n * @param textType\n * @param c4Shape\n * @param c4ShapeTextWrap\n * @param textConf\n * @param textLimitWidth\n */\nfunction calcC4ShapeTextWH(textType, c4Shape, c4ShapeTextWrap, textConf, textLimitWidth) {\n if (!c4Shape[textType].width) {\n if (c4ShapeTextWrap) {\n c4Shape[textType].text = wrapLabel(c4Shape[textType].text, textLimitWidth, textConf);\n c4Shape[textType].textLines = c4Shape[textType].text.split(common.lineBreakRegex).length;\n // c4Shape[textType].width = calculateTextWidth(c4Shape[textType].text, textConf);\n c4Shape[textType].width = textLimitWidth;\n // c4Shape[textType].height = c4Shape[textType].textLines * textConf.fontSize;\n c4Shape[textType].height = calculateTextHeight(c4Shape[textType].text, textConf);\n } else {\n let lines = c4Shape[textType].text.split(common.lineBreakRegex);\n c4Shape[textType].textLines = lines.length;\n let lineHeight = 0;\n c4Shape[textType].height = 0;\n c4Shape[textType].width = 0;\n for (let i = 0; i < lines.length; i++) {\n c4Shape[textType].width = Math.max(\n calculateTextWidth(lines[i], textConf),\n c4Shape[textType].width\n );\n lineHeight = calculateTextHeight(lines[i], textConf);\n c4Shape[textType].height = c4Shape[textType].height + lineHeight;\n }\n // c4Shapes[textType].height = c4Shapes[textType].textLines * textConf.fontSize;\n }\n }\n}\n\nexport const drawBoundary = function (diagram, boundary, bounds) {\n boundary.x = bounds.data.startx;\n boundary.y = bounds.data.starty;\n boundary.width = bounds.data.stopx - bounds.data.startx;\n boundary.height = bounds.data.stopy - bounds.data.starty;\n\n boundary.label.y = conf.c4ShapeMargin - 35;\n\n let boundaryTextWrap = boundary.wrap && conf.wrap;\n let boundaryLabelConf = boundaryFont(conf);\n boundaryLabelConf.fontSize = boundaryLabelConf.fontSize + 2;\n boundaryLabelConf.fontWeight = 'bold';\n let textLimitWidth = calculateTextWidth(boundary.label.text, boundaryLabelConf);\n calcC4ShapeTextWH('label', boundary, boundaryTextWrap, boundaryLabelConf, textLimitWidth);\n\n svgDraw.drawBoundary(diagram, boundary, conf);\n};\n\nexport const drawC4ShapeArray = function (currentBounds, diagram, c4ShapeArray, c4ShapeKeys) {\n // Upper Y is relative point\n let Y = 0;\n // Draw the c4ShapeArray\n for (let i = 0; i < c4ShapeKeys.length; i++) {\n Y = 0;\n const c4Shape = c4ShapeArray[c4ShapeKeys[i]];\n\n // calc c4 shape type width and height\n\n let c4ShapeTypeConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n c4ShapeTypeConf.fontSize = c4ShapeTypeConf.fontSize - 2;\n c4Shape.typeC4Shape.width = calculateTextWidth(\n '<<' + c4Shape.typeC4Shape.text + '>>',\n c4ShapeTypeConf\n );\n c4Shape.typeC4Shape.height = c4ShapeTypeConf.fontSize + 2;\n c4Shape.typeC4Shape.Y = conf.c4ShapePadding;\n Y = c4Shape.typeC4Shape.Y + c4Shape.typeC4Shape.height - 4;\n\n // set image width and height c4Shape.x + c4Shape.width / 2 - 24, c4Shape.y + 28\n // let imageWidth = 0,\n // imageHeight = 0,\n // imageY = 0;\n //\n c4Shape.image = { width: 0, height: 0, Y: 0 };\n switch (c4Shape.typeC4Shape.text) {\n case 'person':\n case 'external_person':\n c4Shape.image.width = 48;\n c4Shape.image.height = 48;\n c4Shape.image.Y = Y;\n Y = c4Shape.image.Y + c4Shape.image.height;\n break;\n }\n if (c4Shape.sprite) {\n c4Shape.image.width = 48;\n c4Shape.image.height = 48;\n c4Shape.image.Y = Y;\n Y = c4Shape.image.Y + c4Shape.image.height;\n }\n\n // Y = conf.c4ShapePadding + c4Shape.image.height;\n\n let c4ShapeTextWrap = c4Shape.wrap && conf.wrap;\n let textLimitWidth = conf.width - conf.c4ShapePadding * 2;\n\n let c4ShapeLabelConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n c4ShapeLabelConf.fontSize = c4ShapeLabelConf.fontSize + 2;\n c4ShapeLabelConf.fontWeight = 'bold';\n calcC4ShapeTextWH('label', c4Shape, c4ShapeTextWrap, c4ShapeLabelConf, textLimitWidth);\n c4Shape['label'].Y = Y + 8;\n Y = c4Shape['label'].Y + c4Shape['label'].height;\n\n if (c4Shape.type && c4Shape.type.text !== '') {\n c4Shape.type.text = '[' + c4Shape.type.text + ']';\n let c4ShapeTypeConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n calcC4ShapeTextWH('type', c4Shape, c4ShapeTextWrap, c4ShapeTypeConf, textLimitWidth);\n c4Shape['type'].Y = Y + 5;\n Y = c4Shape['type'].Y + c4Shape['type'].height;\n } else if (c4Shape.techn && c4Shape.techn.text !== '') {\n c4Shape.techn.text = '[' + c4Shape.techn.text + ']';\n let c4ShapeTechnConf = c4ShapeFont(conf, c4Shape.techn.text);\n calcC4ShapeTextWH('techn', c4Shape, c4ShapeTextWrap, c4ShapeTechnConf, textLimitWidth);\n c4Shape['techn'].Y = Y + 5;\n Y = c4Shape['techn'].Y + c4Shape['techn'].height;\n }\n\n let rectHeight = Y;\n let rectWidth = c4Shape.label.width;\n\n if (c4Shape.descr && c4Shape.descr.text !== '') {\n let c4ShapeDescrConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n calcC4ShapeTextWH('descr', c4Shape, c4ShapeTextWrap, c4ShapeDescrConf, textLimitWidth);\n c4Shape['descr'].Y = Y + 20;\n Y = c4Shape['descr'].Y + c4Shape['descr'].height;\n\n rectWidth = Math.max(c4Shape.label.width, c4Shape.descr.width);\n rectHeight = Y - c4Shape['descr'].textLines * 5;\n }\n\n rectWidth = rectWidth + conf.c4ShapePadding;\n // let rectHeight =\n\n c4Shape.width = Math.max(c4Shape.width || conf.width, rectWidth, conf.width);\n c4Shape.height = Math.max(c4Shape.height || conf.height, rectHeight, conf.height);\n c4Shape.margin = c4Shape.margin || conf.c4ShapeMargin;\n\n currentBounds.insert(c4Shape);\n\n const height = svgDraw.drawC4Shape(diagram, c4Shape, conf);\n }\n\n currentBounds.bumpLastMargin(conf.c4ShapeMargin);\n};\n\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n}\n\n/* * *\n * Get the intersection of the line between the center point of a rectangle and a point outside the rectangle.\n * Algorithm idea.\n * Using a point outside the rectangle as the coordinate origin, the graph is divided into four quadrants, and each quadrant is divided into two cases, with separate treatment on the coordinate axes\n * 1. The case of coordinate axes.\n * 1. The case of the negative x-axis\n * 2. The case of the positive x-axis\n * 3. The case of the positive y-axis\n * 4. The negative y-axis case\n * 2. Quadrant cases.\n * 2.1. first quadrant: the case where the line intersects the left side of the rectangle; the case where it intersects the lower side of the rectangle\n * 2.2. second quadrant: the case where the line intersects the right side of the rectangle; the case where it intersects the lower edge of the rectangle\n * 2.3. third quadrant: the case where the line intersects the right side of the rectangle; the case where it intersects the upper edge of the rectangle\n * 2.4. fourth quadrant: the case where the line intersects the left side of the rectangle; the case where it intersects the upper side of the rectangle\n *\n */\nlet getIntersectPoint = function (fromNode, endPoint) {\n let x1 = fromNode.x;\n\n let y1 = fromNode.y;\n\n let x2 = endPoint.x;\n\n let y2 = endPoint.y;\n\n let fromCenterX = x1 + fromNode.width / 2;\n\n let fromCenterY = y1 + fromNode.height / 2;\n\n let dx = Math.abs(x1 - x2);\n\n let dy = Math.abs(y1 - y2);\n\n let tanDYX = dy / dx;\n\n let fromDYX = fromNode.height / fromNode.width;\n\n let returnPoint = null;\n\n if (y1 == y2 && x1 < x2) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY);\n } else if (y1 == y2 && x1 > x2) {\n returnPoint = new Point(x1, fromCenterY);\n } else if (x1 == x2 && y1 < y2) {\n returnPoint = new Point(fromCenterX, y1 + fromNode.height);\n } else if (x1 == x2 && y1 > y2) {\n returnPoint = new Point(fromCenterX, y1);\n }\n\n if (x1 > x2 && y1 < y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1, fromCenterY + (tanDYX * fromNode.width) / 2);\n } else {\n returnPoint = new Point(\n fromCenterX - ((dx / dy) * fromNode.height) / 2,\n y1 + fromNode.height\n );\n }\n } else if (x1 < x2 && y1 < y2) {\n //\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY + (tanDYX * fromNode.width) / 2);\n } else {\n returnPoint = new Point(\n fromCenterX + ((dx / dy) * fromNode.height) / 2,\n y1 + fromNode.height\n );\n }\n } else if (x1 < x2 && y1 > y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY - (tanDYX * fromNode.width) / 2);\n } else {\n returnPoint = new Point(fromCenterX + ((fromNode.height / 2) * dx) / dy, y1);\n }\n } else if (x1 > x2 && y1 > y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1, fromCenterY - (fromNode.width / 2) * tanDYX);\n } else {\n returnPoint = new Point(fromCenterX - ((fromNode.height / 2) * dx) / dy, y1);\n }\n }\n return returnPoint;\n};\n\nlet getIntersectPoints = function (fromNode, endNode) {\n let endIntersectPoint = { x: 0, y: 0 };\n endIntersectPoint.x = endNode.x + endNode.width / 2;\n endIntersectPoint.y = endNode.y + endNode.height / 2;\n let startPoint = getIntersectPoint(fromNode, endIntersectPoint);\n\n endIntersectPoint.x = fromNode.x + fromNode.width / 2;\n endIntersectPoint.y = fromNode.y + fromNode.height / 2;\n let endPoint = getIntersectPoint(endNode, endIntersectPoint);\n return { startPoint: startPoint, endPoint: endPoint };\n};\n\nexport const drawRels = function (diagram, rels, getC4ShapeObj, diagObj) {\n let i = 0;\n for (let rel of rels) {\n i = i + 1;\n let relTextWrap = rel.wrap && conf.wrap;\n let relConf = messageFont(conf);\n let diagramType = diagObj.db.getC4Type();\n if (diagramType === 'C4Dynamic') rel.label.text = i + ': ' + rel.label.text;\n let textLimitWidth = calculateTextWidth(rel.label.text, relConf);\n calcC4ShapeTextWH('label', rel, relTextWrap, relConf, textLimitWidth);\n\n if (rel.techn && rel.techn.text !== '') {\n textLimitWidth = calculateTextWidth(rel.techn.text, relConf);\n calcC4ShapeTextWH('techn', rel, relTextWrap, relConf, textLimitWidth);\n }\n\n if (rel.descr && rel.descr.text !== '') {\n textLimitWidth = calculateTextWidth(rel.descr.text, relConf);\n calcC4ShapeTextWH('descr', rel, relTextWrap, relConf, textLimitWidth);\n }\n\n let fromNode = getC4ShapeObj(rel.from);\n let endNode = getC4ShapeObj(rel.to);\n let points = getIntersectPoints(fromNode, endNode);\n rel.startPoint = points.startPoint;\n rel.endPoint = points.endPoint;\n }\n svgDraw.drawRels(diagram, rels, conf);\n};\n\n/**\n * @param diagram\n * @param parentBoundaryAlias\n * @param parentBounds\n * @param currentBoundarys\n * @param diagObj\n */\nfunction drawInsideBoundary(diagram, parentBoundaryAlias, parentBounds, currentBoundarys, diagObj) {\n let currentBounds = new Bounds(diagObj);\n // Calculate the width limit of the boundar. label/type 的长度,\n currentBounds.data.widthLimit =\n parentBounds.data.widthLimit / Math.min(c4BoundaryInRow, currentBoundarys.length);\n // Math.min(\n // conf.width * conf.c4ShapeInRow + conf.c4ShapeMargin * conf.c4ShapeInRow * 2,\n // parentBounds.data.widthLimit / Math.min(conf.c4BoundaryInRow, currentBoundarys.length)\n // );\n for (let i = 0; i < currentBoundarys.length; i++) {\n let currentBoundary = currentBoundarys[i];\n let Y = 0;\n currentBoundary.image = { width: 0, height: 0, Y: 0 };\n if (currentBoundary.sprite) {\n currentBoundary.image.width = 48;\n currentBoundary.image.height = 48;\n currentBoundary.image.Y = Y;\n Y = currentBoundary.image.Y + currentBoundary.image.height;\n }\n\n let currentBoundaryTextWrap = currentBoundary.wrap && conf.wrap;\n\n let currentBoundaryLabelConf = boundaryFont(conf);\n currentBoundaryLabelConf.fontSize = currentBoundaryLabelConf.fontSize + 2;\n currentBoundaryLabelConf.fontWeight = 'bold';\n calcC4ShapeTextWH(\n 'label',\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryLabelConf,\n currentBounds.data.widthLimit\n );\n currentBoundary['label'].Y = Y + 8;\n Y = currentBoundary['label'].Y + currentBoundary['label'].height;\n\n if (currentBoundary.type && currentBoundary.type.text !== '') {\n currentBoundary.type.text = '[' + currentBoundary.type.text + ']';\n let currentBoundaryTypeConf = boundaryFont(conf);\n calcC4ShapeTextWH(\n 'type',\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryTypeConf,\n currentBounds.data.widthLimit\n );\n currentBoundary['type'].Y = Y + 5;\n Y = currentBoundary['type'].Y + currentBoundary['type'].height;\n }\n\n if (currentBoundary.descr && currentBoundary.descr.text !== '') {\n let currentBoundaryDescrConf = boundaryFont(conf);\n currentBoundaryDescrConf.fontSize = currentBoundaryDescrConf.fontSize - 2;\n calcC4ShapeTextWH(\n 'descr',\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryDescrConf,\n currentBounds.data.widthLimit\n );\n currentBoundary['descr'].Y = Y + 20;\n Y = currentBoundary['descr'].Y + currentBoundary['descr'].height;\n }\n\n if (i == 0 || i % c4BoundaryInRow === 0) {\n // Calculate the drawing start point of the currentBoundarys.\n let _x = parentBounds.data.startx + conf.diagramMarginX;\n let _y = parentBounds.data.stopy + conf.diagramMarginY + Y;\n\n currentBounds.setData(_x, _x, _y, _y);\n } else {\n // Calculate the drawing start point of the currentBoundarys.\n let _x =\n currentBounds.data.stopx !== currentBounds.data.startx\n ? currentBounds.data.stopx + conf.diagramMarginX\n : currentBounds.data.startx;\n let _y = currentBounds.data.starty;\n\n currentBounds.setData(_x, _x, _y, _y);\n }\n currentBounds.name = currentBoundary.alias;\n let currentPersonOrSystemArray = diagObj.db.getC4ShapeArray(currentBoundary.alias);\n let currentPersonOrSystemKeys = diagObj.db.getC4ShapeKeys(currentBoundary.alias);\n\n if (currentPersonOrSystemKeys.length > 0) {\n drawC4ShapeArray(\n currentBounds,\n diagram,\n currentPersonOrSystemArray,\n currentPersonOrSystemKeys\n );\n }\n parentBoundaryAlias = currentBoundary.alias;\n let nextCurrentBoundarys = diagObj.db.getBoundarys(parentBoundaryAlias);\n\n if (nextCurrentBoundarys.length > 0) {\n // draw boundary inside currentBoundary\n // bounds.init();\n // parentBoundaryWidthLimit = bounds.data.stopx - bounds.startx;\n drawInsideBoundary(\n diagram,\n parentBoundaryAlias,\n currentBounds,\n nextCurrentBoundarys,\n diagObj\n );\n }\n // draw boundary\n if (currentBoundary.alias !== 'global') drawBoundary(diagram, currentBoundary, currentBounds);\n parentBounds.data.stopy = Math.max(\n currentBounds.data.stopy + conf.c4ShapeMargin,\n parentBounds.data.stopy\n );\n parentBounds.data.stopx = Math.max(\n currentBounds.data.stopx + conf.c4ShapeMargin,\n parentBounds.data.stopx\n );\n globalBoundaryMaxX = Math.max(globalBoundaryMaxX, parentBounds.data.stopx);\n globalBoundaryMaxY = Math.max(globalBoundaryMaxY, parentBounds.data.stopy);\n }\n}\n\n/**\n * Draws a sequenceDiagram in the tag with id: id based on the graph definition in text.\n *\n * @param {any} text\n * @param _text\n * @param {any} id\n * @param _version\n * @param diagObj\n */\nexport const draw = function (_text, id, _version, diagObj) {\n conf = configApi.getConfig().c4;\n const securityLevel = configApi.getConfig().securityLevel;\n // Handle root and Document for when rendering in sanbox mode\n let sandboxElement;\n if (securityLevel === 'sandbox') {\n sandboxElement = select('#i' + id);\n }\n const root =\n securityLevel === 'sandbox'\n ? select(sandboxElement.nodes()[0].contentDocument.body)\n : select('body');\n\n let db = diagObj.db;\n\n diagObj.db.setWrap(conf.wrap);\n\n c4ShapeInRow = db.getC4ShapeInRow();\n c4BoundaryInRow = db.getC4BoundaryInRow();\n\n log.debug(`C:${JSON.stringify(conf, null, 2)}`);\n\n const diagram =\n securityLevel === 'sandbox' ? root.select(`[id=\"${id}\"]`) : select(`[id=\"${id}\"]`);\n\n svgDraw.insertComputerIcon(diagram);\n svgDraw.insertDatabaseIcon(diagram);\n svgDraw.insertClockIcon(diagram);\n\n let screenBounds = new Bounds(diagObj);\n\n screenBounds.setData(\n conf.diagramMarginX,\n conf.diagramMarginX,\n conf.diagramMarginY,\n conf.diagramMarginY\n );\n\n screenBounds.data.widthLimit = screen.availWidth;\n globalBoundaryMaxX = conf.diagramMarginX;\n globalBoundaryMaxY = conf.diagramMarginY;\n\n const title = diagObj.db.getTitle();\n const c4type = diagObj.db.getC4Type();\n let currentBoundarys = diagObj.db.getBoundarys('');\n // switch (c4type) {\n // case 'C4Context':\n drawInsideBoundary(diagram, '', screenBounds, currentBoundarys, diagObj);\n // break;\n // }\n\n // The arrow head definition is attached to the svg once\n svgDraw.insertArrowHead(diagram);\n svgDraw.insertArrowEnd(diagram);\n svgDraw.insertArrowCrossHead(diagram);\n svgDraw.insertArrowFilledHead(diagram);\n\n drawRels(diagram, diagObj.db.getRels(), diagObj.db.getC4Shape, diagObj);\n\n screenBounds.data.stopx = globalBoundaryMaxX;\n screenBounds.data.stopy = globalBoundaryMaxY;\n\n const box = screenBounds.data;\n\n // Make sure the height of the diagram supports long menus.\n let boxHeight = box.stopy - box.starty;\n\n let height = boxHeight + 2 * conf.diagramMarginY;\n\n // Make sure the width of the diagram supports wide menus.\n let boxWidth = box.stopx - box.startx;\n const width = boxWidth + 2 * conf.diagramMarginX;\n\n if (title) {\n diagram\n .append('text')\n .text(title)\n .attr('x', (box.stopx - box.startx) / 2 - 4 * conf.diagramMarginX)\n .attr('y', box.starty + conf.diagramMarginY);\n }\n\n configureSvgSize(diagram, height, width, conf.useMaxWidth);\n\n const extraVertForTitle = title ? 60 : 0;\n diagram.attr(\n 'viewBox',\n box.startx -\n conf.diagramMarginX +\n ' -' +\n (conf.diagramMarginY + extraVertForTitle) +\n ' ' +\n width +\n ' ' +\n (height + extraVertForTitle)\n );\n\n addSVGAccessibilityFields(parser.yy, diagram, id);\n log.debug(`models:`, box);\n};\n\nexport default {\n drawPersonOrSystemArray: drawC4ShapeArray,\n drawBoundary,\n setConf,\n draw,\n};\n","const getStyles = (options) =>\n `.person {\n stroke: ${options.personBorder};\n fill: ${options.personBkg};\n }\n`;\n\nexport default getStyles;\n","import common from '../common/common';\nimport { addFunction } from '../../interactionDb';\nimport { sanitizeUrl } from '@braintree/sanitize-url';\n\nexport const drawRect = function (elem, rectData) {\n const rectElem = elem.append('rect');\n rectElem.attr('x', rectData.x);\n rectElem.attr('y', rectData.y);\n rectElem.attr('fill', rectData.fill);\n rectElem.attr('stroke', rectData.stroke);\n rectElem.attr('width', rectData.width);\n rectElem.attr('height', rectData.height);\n rectElem.attr('rx', rectData.rx);\n rectElem.attr('ry', rectData.ry);\n\n if (rectData.attrs !== 'undefined' && rectData.attrs !== null) {\n for (let attrKey in rectData.attrs) rectElem.attr(attrKey, rectData.attrs[attrKey]);\n }\n\n if (rectData.class !== 'undefined') {\n rectElem.attr('class', rectData.class);\n }\n\n return rectElem;\n};\n\nexport const drawImage = function (elem, width, height, x, y, link) {\n const imageElem = elem.append('image');\n imageElem.attr('width', width);\n imageElem.attr('height', height);\n imageElem.attr('x', x);\n imageElem.attr('y', y);\n let sanitizedLink = link.startsWith('data:image/png;base64') ? link : sanitizeUrl(link);\n imageElem.attr('xlink:href', sanitizedLink);\n};\n\nexport const drawEmbeddedImage = function (elem, x, y, link) {\n const imageElem = elem.append('use');\n imageElem.attr('x', x);\n imageElem.attr('y', y);\n var sanitizedLink = sanitizeUrl(link);\n imageElem.attr('xlink:href', '#' + sanitizedLink);\n};\n\nexport const drawText = function (elem, textData) {\n let prevTextHeight = 0,\n textHeight = 0;\n const lines = textData.text.split(common.lineBreakRegex);\n\n let textElems = [];\n let dy = 0;\n let yfunc = () => textData.y;\n if (\n typeof textData.valign !== 'undefined' &&\n typeof textData.textMargin !== 'undefined' &&\n textData.textMargin > 0\n ) {\n switch (textData.valign) {\n case 'top':\n case 'start':\n yfunc = () => Math.round(textData.y + textData.textMargin);\n break;\n case 'middle':\n case 'center':\n yfunc = () =>\n Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2);\n break;\n case 'bottom':\n case 'end':\n yfunc = () =>\n Math.round(\n textData.y +\n (prevTextHeight + textHeight + 2 * textData.textMargin) -\n textData.textMargin\n );\n break;\n }\n }\n if (\n typeof textData.anchor !== 'undefined' &&\n typeof textData.textMargin !== 'undefined' &&\n typeof textData.width !== 'undefined'\n ) {\n switch (textData.anchor) {\n case 'left':\n case 'start':\n textData.x = Math.round(textData.x + textData.textMargin);\n textData.anchor = 'start';\n textData.dominantBaseline = 'text-after-edge';\n textData.alignmentBaseline = 'middle';\n break;\n case 'middle':\n case 'center':\n textData.x = Math.round(textData.x + textData.width / 2);\n textData.anchor = 'middle';\n textData.dominantBaseline = 'middle';\n textData.alignmentBaseline = 'middle';\n break;\n case 'right':\n case 'end':\n textData.x = Math.round(textData.x + textData.width - textData.textMargin);\n textData.anchor = 'end';\n textData.dominantBaseline = 'text-before-edge';\n textData.alignmentBaseline = 'middle';\n break;\n }\n }\n for (let i = 0; i < lines.length; i++) {\n let line = lines[i];\n if (\n typeof textData.textMargin !== 'undefined' &&\n textData.textMargin === 0 &&\n typeof textData.fontSize !== 'undefined'\n ) {\n dy = i * textData.fontSize;\n }\n\n const textElem = elem.append('text');\n textElem.attr('x', textData.x);\n textElem.attr('y', yfunc());\n if (typeof textData.anchor !== 'undefined') {\n textElem\n .attr('text-anchor', textData.anchor)\n .attr('dominant-baseline', textData.dominantBaseline)\n .attr('alignment-baseline', textData.alignmentBaseline);\n }\n if (typeof textData.fontFamily !== 'undefined') {\n textElem.style('font-family', textData.fontFamily);\n }\n if (typeof textData.fontSize !== 'undefined') {\n textElem.style('font-size', textData.fontSize);\n }\n if (typeof textData.fontWeight !== 'undefined') {\n textElem.style('font-weight', textData.fontWeight);\n }\n if (typeof textData.fill !== 'undefined') {\n textElem.attr('fill', textData.fill);\n }\n if (typeof textData.class !== 'undefined') {\n textElem.attr('class', textData.class);\n }\n if (typeof textData.dy !== 'undefined') {\n textElem.attr('dy', textData.dy);\n } else if (dy !== 0) {\n textElem.attr('dy', dy);\n }\n\n if (textData.tspan) {\n const span = textElem.append('tspan');\n span.attr('x', textData.x);\n if (typeof textData.fill !== 'undefined') {\n span.attr('fill', textData.fill);\n }\n span.text(line);\n } else {\n textElem.text(line);\n }\n if (\n typeof textData.valign !== 'undefined' &&\n typeof textData.textMargin !== 'undefined' &&\n textData.textMargin > 0\n ) {\n textHeight += (textElem._groups || textElem)[0][0].getBBox().height;\n prevTextHeight = textHeight;\n }\n\n textElems.push(textElem);\n }\n\n return textElems;\n};\n\nexport const drawLabel = function (elem, txtObject) {\n /**\n * @param {any} x\n * @param {any} y\n * @param {any} width\n * @param {any} height\n * @param {any} cut\n * @returns {any}\n */\n function genPoints(x, y, width, height, cut) {\n return (\n x +\n ',' +\n y +\n ' ' +\n (x + width) +\n ',' +\n y +\n ' ' +\n (x + width) +\n ',' +\n (y + height - cut) +\n ' ' +\n (x + width - cut * 1.2) +\n ',' +\n (y + height) +\n ' ' +\n x +\n ',' +\n (y + height)\n );\n }\n const polygon = elem.append('polygon');\n polygon.attr('points', genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7));\n polygon.attr('class', 'labelBox');\n\n txtObject.y = txtObject.y + txtObject.height / 2;\n\n drawText(elem, txtObject);\n return polygon;\n};\n\nexport const drawRels = (elem, rels, conf) => {\n const relsElem = elem.append('g');\n let i = 0;\n for (let rel of rels) {\n let textColor = rel.textColor ? rel.textColor : '#444444';\n let strokeColor = rel.lineColor ? rel.lineColor : '#444444';\n let offsetX = rel.offsetX ? parseInt(rel.offsetX) : 0;\n let offsetY = rel.offsetY ? parseInt(rel.offsetY) : 0;\n\n let url = '';\n if (i === 0) {\n let line = relsElem.append('line');\n line.attr('x1', rel.startPoint.x);\n line.attr('y1', rel.startPoint.y);\n line.attr('x2', rel.endPoint.x);\n line.attr('y2', rel.endPoint.y);\n\n line.attr('stroke-width', '1');\n line.attr('stroke', strokeColor);\n line.style('fill', 'none');\n if (rel.type !== 'rel_b') line.attr('marker-end', 'url(' + url + '#arrowhead)');\n if (rel.type === 'birel' || rel.type === 'rel_b')\n line.attr('marker-start', 'url(' + url + '#arrowend)');\n i = -1;\n } else {\n let line = relsElem.append('path');\n line\n .attr('fill', 'none')\n .attr('stroke-width', '1')\n .attr('stroke', strokeColor)\n .attr(\n 'd',\n 'Mstartx,starty Qcontrolx,controly stopx,stopy '\n .replaceAll('startx', rel.startPoint.x)\n .replaceAll('starty', rel.startPoint.y)\n .replaceAll(\n 'controlx',\n rel.startPoint.x +\n (rel.endPoint.x - rel.startPoint.x) / 2 -\n (rel.endPoint.x - rel.startPoint.x) / 4\n )\n .replaceAll('controly', rel.startPoint.y + (rel.endPoint.y - rel.startPoint.y) / 2)\n .replaceAll('stopx', rel.endPoint.x)\n .replaceAll('stopy', rel.endPoint.y)\n );\n if (rel.type !== 'rel_b') line.attr('marker-end', 'url(' + url + '#arrowhead)');\n if (rel.type === 'birel' || rel.type === 'rel_b')\n line.attr('marker-start', 'url(' + url + '#arrowend)');\n }\n\n let messageConf = conf.messageFont();\n _drawTextCandidateFunc(conf)(\n rel.label.text,\n relsElem,\n Math.min(rel.startPoint.x, rel.endPoint.x) +\n Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 +\n offsetX,\n Math.min(rel.startPoint.y, rel.endPoint.y) +\n Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 +\n offsetY,\n rel.label.width,\n rel.label.height,\n { fill: textColor },\n messageConf\n );\n\n if (rel.techn && rel.techn.text !== '') {\n messageConf = conf.messageFont();\n _drawTextCandidateFunc(conf)(\n '[' + rel.techn.text + ']',\n relsElem,\n Math.min(rel.startPoint.x, rel.endPoint.x) +\n Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 +\n offsetX,\n Math.min(rel.startPoint.y, rel.endPoint.y) +\n Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 +\n conf.messageFontSize +\n 5 +\n offsetY,\n Math.max(rel.label.width, rel.techn.width),\n rel.techn.height,\n { fill: textColor, 'font-style': 'italic' },\n messageConf\n );\n }\n }\n};\n\n/**\n * Draws an boundary in the diagram\n *\n * @param {any} elem - The diagram we'll draw to.\n * @param {any} boundary - The boundary to draw.\n * @param {any} conf - DrawText implementation discriminator object\n */\nconst drawBoundary = function (elem, boundary, conf) {\n const boundaryElem = elem.append('g');\n\n let fillColor = boundary.bgColor ? boundary.bgColor : 'none';\n let strokeColor = boundary.borderColor ? boundary.borderColor : '#444444';\n let fontColor = boundary.fontColor ? boundary.fontColor : 'black';\n\n let attrsValue = { 'stroke-width': 1.0, 'stroke-dasharray': '7.0,7.0' };\n if (boundary.nodeType) attrsValue = { 'stroke-width': 1.0 };\n let rectData = {\n x: boundary.x,\n y: boundary.y,\n fill: fillColor,\n stroke: strokeColor,\n width: boundary.width,\n height: boundary.height,\n rx: 2.5,\n ry: 2.5,\n attrs: attrsValue,\n };\n\n drawRect(boundaryElem, rectData);\n\n // draw label\n let boundaryConf = conf.boundaryFont();\n boundaryConf.fontWeight = 'bold';\n boundaryConf.fontSize = boundaryConf.fontSize + 2;\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf)(\n boundary.label.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.label.Y,\n boundary.width,\n boundary.height,\n { fill: '#444444' },\n boundaryConf\n );\n\n // draw type\n if (boundary.type && boundary.type.text !== '') {\n boundaryConf = conf.boundaryFont();\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf)(\n boundary.type.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.type.Y,\n boundary.width,\n boundary.height,\n { fill: '#444444' },\n boundaryConf\n );\n }\n\n // draw descr\n if (boundary.descr && boundary.descr.text !== '') {\n boundaryConf = conf.boundaryFont();\n boundaryConf.fontSize = boundaryConf.fontSize - 2;\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf)(\n boundary.descr.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.descr.Y,\n boundary.width,\n boundary.height,\n { fill: '#444444' },\n boundaryConf\n );\n }\n};\n\nexport const drawC4Shape = function (elem, c4Shape, conf) {\n let fillColor = c4Shape.bgColor ? c4Shape.bgColor : conf[c4Shape.typeC4Shape.text + '_bg_color'];\n let strokeColor = c4Shape.borderColor\n ? c4Shape.borderColor\n : conf[c4Shape.typeC4Shape.text + '_border_color'];\n let fontColor = c4Shape.fontColor ? c4Shape.fontColor : '#FFFFFF';\n\n let personImg =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=';\n switch (c4Shape.typeC4Shape.text) {\n case 'person':\n personImg =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=';\n break;\n case 'external_person':\n personImg =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=';\n break;\n }\n\n const c4ShapeElem = elem.append('g');\n c4ShapeElem.attr('class', 'person-man');\n\n // \n // draw rect of c4Shape\n const rect = getNoteRect();\n switch (c4Shape.typeC4Shape.text) {\n case 'person':\n case 'external_person':\n case 'system':\n case 'external_system':\n case 'container':\n case 'external_container':\n case 'component':\n case 'external_component':\n rect.x = c4Shape.x;\n rect.y = c4Shape.y;\n rect.fill = fillColor;\n rect.width = c4Shape.width;\n rect.height = c4Shape.height;\n rect.style = 'stroke:' + strokeColor + ';stroke-width:0.5;';\n rect.rx = 2.5;\n rect.ry = 2.5;\n drawRect(c4ShapeElem, rect);\n break;\n case 'system_db':\n case 'external_system_db':\n case 'container_db':\n case 'external_container_db':\n case 'component_db':\n case 'external_component_db':\n c4ShapeElem\n .append('path')\n .attr('fill', fillColor)\n .attr('stroke-width', '0.5')\n .attr('stroke', strokeColor)\n .attr(\n 'd',\n 'Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height'\n .replaceAll('startx', c4Shape.x)\n .replaceAll('starty', c4Shape.y)\n .replaceAll('half', c4Shape.width / 2)\n .replaceAll('height', c4Shape.height)\n );\n c4ShapeElem\n .append('path')\n .attr('fill', 'none')\n .attr('stroke-width', '0.5')\n .attr('stroke', strokeColor)\n .attr(\n 'd',\n 'Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10'\n .replaceAll('startx', c4Shape.x)\n .replaceAll('starty', c4Shape.y)\n .replaceAll('half', c4Shape.width / 2)\n );\n break;\n case 'system_queue':\n case 'external_system_queue':\n case 'container_queue':\n case 'external_container_queue':\n case 'component_queue':\n case 'external_component_queue':\n c4ShapeElem\n .append('path')\n .attr('fill', fillColor)\n .attr('stroke-width', '0.5')\n .attr('stroke', strokeColor)\n .attr(\n 'd',\n 'Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half'\n .replaceAll('startx', c4Shape.x)\n .replaceAll('starty', c4Shape.y)\n .replaceAll('width', c4Shape.width)\n .replaceAll('half', c4Shape.height / 2)\n );\n c4ShapeElem\n .append('path')\n .attr('fill', 'none')\n .attr('stroke-width', '0.5')\n .attr('stroke', strokeColor)\n .attr(\n 'd',\n 'Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half'\n .replaceAll('startx', c4Shape.x + c4Shape.width)\n .replaceAll('starty', c4Shape.y)\n .replaceAll('half', c4Shape.height / 2)\n );\n break;\n }\n\n // draw type of c4Shape\n let c4ShapeFontConf = getC4ShapeFont(conf, c4Shape.typeC4Shape.text);\n c4ShapeElem\n .append('text')\n .attr('fill', fontColor)\n .attr('font-family', c4ShapeFontConf.fontFamily)\n .attr('font-size', c4ShapeFontConf.fontSize - 2)\n .attr('font-style', 'italic')\n .attr('lengthAdjust', 'spacing')\n .attr('textLength', c4Shape.typeC4Shape.width)\n .attr('x', c4Shape.x + c4Shape.width / 2 - c4Shape.typeC4Shape.width / 2)\n .attr('y', c4Shape.y + c4Shape.typeC4Shape.Y)\n .text('<<' + c4Shape.typeC4Shape.text + '>>');\n\n // draw image/sprite\n switch (c4Shape.typeC4Shape.text) {\n case 'person':\n case 'external_person':\n drawImage(\n c4ShapeElem,\n 48,\n 48,\n c4Shape.x + c4Shape.width / 2 - 24,\n c4Shape.y + c4Shape.image.Y,\n personImg\n );\n break;\n }\n\n // draw label\n let textFontConf = conf[c4Shape.typeC4Shape.text + 'Font']();\n textFontConf.fontWeight = 'bold';\n textFontConf.fontSize = textFontConf.fontSize + 2;\n textFontConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf)(\n c4Shape.label.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.label.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor },\n textFontConf\n );\n\n // draw techn/type\n textFontConf = conf[c4Shape.typeC4Shape.text + 'Font']();\n textFontConf.fontColor = fontColor;\n\n if (c4Shape.thchn && c4Shape.thchn.text !== '') {\n _drawTextCandidateFunc(conf)(\n c4Shape.thchn.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.thchn.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor, 'font-style': 'italic' },\n textFontConf\n );\n } else if (c4Shape.type && c4Shape.type.text !== '') {\n _drawTextCandidateFunc(conf)(\n c4Shape.type.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.type.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor, 'font-style': 'italic' },\n textFontConf\n );\n }\n\n // draw descr\n if (c4Shape.descr && c4Shape.descr.text !== '') {\n textFontConf = conf.personFont();\n textFontConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf)(\n c4Shape.descr.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.descr.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor },\n textFontConf\n );\n }\n\n return c4Shape.height;\n};\n\nexport const insertDatabaseIcon = function (elem) {\n elem\n .append('defs')\n .append('symbol')\n .attr('id', 'database')\n .attr('fill-rule', 'evenodd')\n .attr('clip-rule', 'evenodd')\n .append('path')\n .attr('transform', 'scale(.5)')\n .attr(\n 'd',\n 'M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z'\n );\n};\n\nexport const insertComputerIcon = function (elem) {\n elem\n .append('defs')\n .append('symbol')\n .attr('id', 'computer')\n .attr('width', '24')\n .attr('height', '24')\n .append('path')\n .attr('transform', 'scale(.5)')\n .attr(\n 'd',\n 'M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z'\n );\n};\n\nexport const insertClockIcon = function (elem) {\n elem\n .append('defs')\n .append('symbol')\n .attr('id', 'clock')\n .attr('width', '24')\n .attr('height', '24')\n .append('path')\n .attr('transform', 'scale(.5)')\n .attr(\n 'd',\n 'M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z'\n );\n};\n\n/**\n * Setup arrow head and define the marker. The result is appended to the svg.\n *\n * @param elem\n */\nexport const insertArrowHead = function (elem) {\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'arrowhead')\n .attr('refX', 9)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 12)\n .attr('markerHeight', 12)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 0 0 L 10 5 L 0 10 z'); // this is actual shape for arrowhead\n};\nexport const insertArrowEnd = function (elem) {\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'arrowend')\n .attr('refX', 1)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 12)\n .attr('markerHeight', 12)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 10 0 L 0 5 L 10 10 z'); // this is actual shape for arrowhead\n};\n/**\n * Setup arrow head and define the marker. The result is appended to the svg.\n *\n * @param {any} elem\n */\nexport const insertArrowFilledHead = function (elem) {\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'filled-head')\n .attr('refX', 18)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');\n};\n/**\n * Setup node number. The result is appended to the svg.\n *\n * @param {any} elem\n */\nexport const insertDynamicNumber = function (elem) {\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'sequencenumber')\n .attr('refX', 15)\n .attr('refY', 15)\n .attr('markerWidth', 60)\n .attr('markerHeight', 40)\n .attr('orient', 'auto')\n .append('circle')\n .attr('cx', 15)\n .attr('cy', 15)\n .attr('r', 6);\n // .style(\"fill\", '#f00');\n};\n/**\n * Setup arrow head and define the marker. The result is appended to the svg.\n *\n * @param {any} elem\n */\nexport const insertArrowCrossHead = function (elem) {\n const defs = elem.append('defs');\n const marker = defs\n .append('marker')\n .attr('id', 'crosshead')\n .attr('markerWidth', 15)\n .attr('markerHeight', 8)\n .attr('orient', 'auto')\n .attr('refX', 16)\n .attr('refY', 4);\n\n // The arrow\n marker\n .append('path')\n .attr('fill', 'black')\n .attr('stroke', '#000000')\n .style('stroke-dasharray', '0, 0')\n .attr('stroke-width', '1px')\n .attr('d', 'M 9,2 V 6 L16,4 Z');\n\n // The cross\n marker\n .append('path')\n .attr('fill', 'none')\n .attr('stroke', '#000000')\n .style('stroke-dasharray', '0, 0')\n .attr('stroke-width', '1px')\n .attr('d', 'M 0,1 L 6,7 M 6,1 L 0,7');\n // this is actual shape for arrowhead\n};\n\nexport const getTextObj = function () {\n return {\n x: 0,\n y: 0,\n fill: undefined,\n anchor: undefined,\n style: '#666',\n width: undefined,\n height: undefined,\n textMargin: 0,\n rx: 0,\n ry: 0,\n tspan: true,\n valign: undefined,\n };\n};\n\nexport const getNoteRect = function () {\n return {\n x: 0,\n y: 0,\n fill: '#EDF2AE',\n stroke: '#666',\n width: 100,\n anchor: 'start',\n height: 100,\n rx: 0,\n ry: 0,\n };\n};\n\nconst getC4ShapeFont = (cnf, typeC4Shape) => {\n return {\n fontFamily: cnf[typeC4Shape + 'FontFamily'],\n fontSize: cnf[typeC4Shape + 'FontSize'],\n fontWeight: cnf[typeC4Shape + 'FontWeight'],\n };\n};\n\nconst _drawTextCandidateFunc = (function () {\n /**\n * @param {any} content\n * @param {any} g\n * @param {any} x\n * @param {any} y\n * @param {any} width\n * @param {any} height\n * @param {any} textAttrs\n */\n function byText(content, g, x, y, width, height, textAttrs) {\n const text = g\n .append('text')\n .attr('x', x + width / 2)\n .attr('y', y + height / 2 + 5)\n .style('text-anchor', 'middle')\n .text(content);\n _setTextAttrs(text, textAttrs);\n }\n\n /**\n * @param {any} content\n * @param {any} g\n * @param {any} x\n * @param {any} y\n * @param {any} width\n * @param {any} height\n * @param {any} textAttrs\n * @param {any} conf\n */\n function byTspan(content, g, x, y, width, height, textAttrs, conf) {\n const { fontSize, fontFamily, fontWeight } = conf;\n\n const lines = content.split(common.lineBreakRegex);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * fontSize - (fontSize * (lines.length - 1)) / 2;\n const text = g\n .append('text')\n .attr('x', x + width / 2)\n .attr('y', y)\n .style('text-anchor', 'middle')\n .attr('dominant-baseline', 'middle')\n .style('font-size', fontSize)\n .style('font-weight', fontWeight)\n .style('font-family', fontFamily);\n text\n .append('tspan')\n // .attr('x', x + width / 2)\n .attr('dy', dy)\n .text(lines[i])\n // .attr('y', y + height / 2)\n .attr('alignment-baseline', 'mathematical');\n\n _setTextAttrs(text, textAttrs);\n }\n }\n\n /**\n * @param {any} content\n * @param {any} g\n * @param {any} x\n * @param {any} y\n * @param {any} width\n * @param {any} height\n * @param {any} textAttrs\n * @param {any} conf\n */\n function byFo(content, g, x, y, width, height, textAttrs, conf) {\n const s = g.append('switch');\n const f = s\n .append('foreignObject')\n .attr('x', x)\n .attr('y', y)\n .attr('width', width)\n .attr('height', height);\n\n const text = f\n .append('xhtml:div')\n .style('display', 'table')\n .style('height', '100%')\n .style('width', '100%');\n\n text\n .append('div')\n .style('display', 'table-cell')\n .style('text-align', 'center')\n .style('vertical-align', 'middle')\n .text(content);\n\n byTspan(content, s, x, y, width, height, textAttrs, conf);\n _setTextAttrs(text, textAttrs);\n }\n\n /**\n * @param {any} toText\n * @param {any} fromTextAttrsDict\n */\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (fromTextAttrsDict.hasOwnProperty(key)) {\n // eslint-disable-line\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n\n return function (conf) {\n return conf.textPlacement === 'fo' ? byFo : conf.textPlacement === 'old' ? byText : byTspan;\n };\n})();\n\nexport default {\n drawRect,\n drawText,\n drawLabel,\n drawBoundary,\n drawC4Shape,\n drawRels,\n drawImage,\n drawEmbeddedImage,\n insertArrowHead,\n insertArrowEnd,\n insertArrowFilledHead,\n insertDynamicNumber,\n insertArrowCrossHead,\n insertDatabaseIcon,\n insertComputerIcon,\n insertClockIcon,\n getTextObj,\n getNoteRect,\n sanitizeUrl,\n};\n","import { select } from 'd3';\nimport { log } from '../../logger';\nimport * as configApi from '../../config';\nimport common from '../common/common';\nimport utils from '../../utils';\nimport mermaidAPI from '../../mermaidAPI';\nimport {\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n clear as commonClear,\n} from '../../commonDb';\n\nconst MERMAID_DOM_ID_PREFIX = 'classid-';\n\nlet relations = [];\nlet classes = {};\nlet classCounter = 0;\n\nlet funs = [];\n\nconst sanitizeText = (txt) => common.sanitizeText(txt, configApi.getConfig());\n\nexport const parseDirective = function (statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\n\nconst splitClassNameAndType = function (id) {\n let genericType = '';\n let className = id;\n\n if (id.indexOf('~') > 0) {\n let split = id.split('~');\n className = split[0];\n\n genericType = common.sanitizeText(split[1], configApi.getConfig());\n }\n\n return { className: className, type: genericType };\n};\n\n/**\n * Function called by parser when a node definition has been found.\n *\n * @param id\n * @public\n */\nexport const addClass = function (id) {\n let classId = splitClassNameAndType(id);\n // Only add class if not exists\n if (typeof classes[classId.className] !== 'undefined') return;\n\n classes[classId.className] = {\n id: classId.className,\n type: classId.type,\n cssClasses: [],\n methods: [],\n members: [],\n annotations: [],\n domId: MERMAID_DOM_ID_PREFIX + classId.className + '-' + classCounter,\n };\n\n classCounter++;\n};\n\n/**\n * Function to lookup domId from id in the graph definition.\n *\n * @param id\n * @public\n */\nexport const lookUpDomId = function (id) {\n const classKeys = Object.keys(classes);\n for (let i = 0; i < classKeys.length; i++) {\n if (classes[classKeys[i]].id === id) {\n return classes[classKeys[i]].domId;\n }\n }\n};\n\nexport const clear = function () {\n relations = [];\n classes = {};\n funs = [];\n funs.push(setupToolTips);\n commonClear();\n};\n\nexport const getClass = function (id) {\n return classes[id];\n};\nexport const getClasses = function () {\n return classes;\n};\n\nexport const getRelations = function () {\n return relations;\n};\n\nexport const addRelation = function (relation) {\n log.debug('Adding relation: ' + JSON.stringify(relation));\n addClass(relation.id1);\n addClass(relation.id2);\n\n relation.id1 = splitClassNameAndType(relation.id1).className;\n relation.id2 = splitClassNameAndType(relation.id2).className;\n\n relation.relationTitle1 = common.sanitizeText(\n relation.relationTitle1.trim(),\n configApi.getConfig()\n );\n\n relation.relationTitle2 = common.sanitizeText(\n relation.relationTitle2.trim(),\n configApi.getConfig()\n );\n\n relations.push(relation);\n};\n\n/**\n * Adds an annotation to the specified class Annotations mark special properties of the given type\n * (like 'interface' or 'service')\n *\n * @param className The class name\n * @param annotation The name of the annotation without any brackets\n * @public\n */\nexport const addAnnotation = function (className, annotation) {\n const validatedClassName = splitClassNameAndType(className).className;\n classes[validatedClassName].annotations.push(annotation);\n};\n\n/**\n * Adds a member to the specified class\n *\n * @param className The class name\n * @param member The full name of the member. If the member is enclosed in <> it is\n * treated as an annotation If the member is ending with a closing bracket ) it is treated as a\n * method Otherwise the member will be treated as a normal property\n * @public\n */\nexport const addMember = function (className, member) {\n const validatedClassName = splitClassNameAndType(className).className;\n const theClass = classes[validatedClassName];\n\n if (typeof member === 'string') {\n // Member can contain white spaces, we trim them out\n const memberString = member.trim();\n\n if (memberString.startsWith('<<') && memberString.endsWith('>>')) {\n // Remove leading and trailing brackets\n // theClass.annotations.push(memberString.substring(2, memberString.length - 2));\n theClass.annotations.push(sanitizeText(memberString.substring(2, memberString.length - 2)));\n } else if (memberString.indexOf(')') > 0) {\n theClass.methods.push(sanitizeText(memberString));\n } else if (memberString) {\n theClass.members.push(sanitizeText(memberString));\n }\n }\n};\n\nexport const addMembers = function (className, members) {\n if (Array.isArray(members)) {\n members.reverse();\n members.forEach((member) => addMember(className, member));\n }\n};\n\nexport const cleanupLabel = function (label) {\n if (label.substring(0, 1) === ':') {\n return common.sanitizeText(label.substr(1).trim(), configApi.getConfig());\n } else {\n return sanitizeText(label.trim());\n }\n};\n\n/**\n * Called by parser when a special node is found, e.g. a clickable element.\n *\n * @param ids Comma separated list of ids\n * @param className Class to add\n */\nexport const setCssClass = function (ids, className) {\n ids.split(',').forEach(function (_id) {\n let id = _id;\n if (_id[0].match(/\\d/)) id = MERMAID_DOM_ID_PREFIX + id;\n if (typeof classes[id] !== 'undefined') {\n classes[id].cssClasses.push(className);\n }\n });\n};\n\n/**\n * Called by parser when a tooltip is found, e.g. a clickable element.\n *\n * @param ids Comma separated list of ids\n * @param tooltip Tooltip to add\n */\nconst setTooltip = function (ids, tooltip) {\n const config = configApi.getConfig();\n ids.split(',').forEach(function (id) {\n if (typeof tooltip !== 'undefined') {\n classes[id].tooltip = common.sanitizeText(tooltip, config);\n }\n });\n};\n\n/**\n * Called by parser when a link is found. Adds the URL to the vertex data.\n *\n * @param ids Comma separated list of ids\n * @param linkStr URL to create a link for\n * @param target Target of the link, _blank by default as originally defined in the svgDraw.js file\n */\nexport const setLink = function (ids, linkStr, target) {\n const config = configApi.getConfig();\n ids.split(',').forEach(function (_id) {\n let id = _id;\n if (_id[0].match(/\\d/)) id = MERMAID_DOM_ID_PREFIX + id;\n if (typeof classes[id] !== 'undefined') {\n classes[id].link = utils.formatUrl(linkStr, config);\n if (config.securityLevel === 'sandbox') {\n classes[id].linkTarget = '_top';\n } else if (typeof target === 'string') {\n classes[id].linkTarget = sanitizeText(target);\n } else {\n classes[id].linkTarget = '_blank';\n }\n }\n });\n setCssClass(ids, 'clickable');\n};\n\n/**\n * Called by parser when a click definition is found. Registers an event handler.\n *\n * @param ids Comma separated list of ids\n * @param functionName Function to be called on click\n * @param functionArgs Function args the function should be called with\n */\nexport const setClickEvent = function (ids, functionName, functionArgs) {\n ids.split(',').forEach(function (id) {\n setClickFunc(id, functionName, functionArgs);\n classes[id].haveCallback = true;\n });\n setCssClass(ids, 'clickable');\n};\n\nconst setClickFunc = function (domId, functionName, functionArgs) {\n const config = configApi.getConfig();\n let id = domId;\n let elemId = lookUpDomId(id);\n\n if (config.securityLevel !== 'loose') {\n return;\n }\n if (typeof functionName === 'undefined') {\n return;\n }\n if (typeof classes[id] !== 'undefined') {\n let argList = [];\n if (typeof functionArgs === 'string') {\n /* Splits functionArgs by ',', ignoring all ',' in double quoted strings */\n argList = functionArgs.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\n for (let i = 0; i < argList.length; i++) {\n let item = argList[i].trim();\n /* Removes all double quotes at the start and end of an argument */\n /* This preserves all starting and ending whitespace inside */\n if (item.charAt(0) === '\"' && item.charAt(item.length - 1) === '\"') {\n item = item.substr(1, item.length - 2);\n }\n argList[i] = item;\n }\n }\n\n /* if no arguments passed into callback, default to passing in id */\n if (argList.length === 0) {\n argList.push(elemId);\n }\n\n funs.push(function () {\n const elem = document.querySelector(`[id=\"${elemId}\"]`);\n if (elem !== null) {\n elem.addEventListener(\n 'click',\n function () {\n utils.runFunc(functionName, ...argList);\n },\n false\n );\n }\n });\n }\n};\n\nexport const bindFunctions = function (element) {\n funs.forEach(function (fun) {\n fun(element);\n });\n};\n\nexport const lineType = {\n LINE: 0,\n DOTTED_LINE: 1,\n};\n\nexport const relationType = {\n AGGREGATION: 0,\n EXTENSION: 1,\n COMPOSITION: 2,\n DEPENDENCY: 3,\n};\n\nconst setupToolTips = function (element) {\n let tooltipElem = select('.mermaidTooltip');\n if ((tooltipElem._groups || tooltipElem)[0][0] === null) {\n tooltipElem = select('body').append('div').attr('class', 'mermaidTooltip').style('opacity', 0);\n }\n\n const svg = select(element).select('svg');\n\n const nodes = svg.selectAll('g.node');\n nodes\n .on('mouseover', function () {\n const el = select(this);\n const title = el.attr('title');\n // Dont try to draw a tooltip if no data is provided\n if (title === null) {\n return;\n }\n const rect = this.getBoundingClientRect();\n\n tooltipElem.transition().duration(200).style('opacity', '.9');\n tooltipElem\n .text(el.attr('title'))\n .style('left', window.scrollX + rect.left + (rect.right - rect.left) / 2 + 'px')\n .style('top', window.scrollY + rect.top - 14 + document.body.scrollTop + 'px');\n el.classed('hover', true);\n })\n .on('mouseout', function () {\n tooltipElem.transition().duration(500).style('opacity', 0);\n const el = select(this);\n el.classed('hover', false);\n });\n};\nfuns.push(setupToolTips);\n\nlet direction = 'TB';\nconst getDirection = () => direction;\nconst setDirection = (dir) => {\n direction = dir;\n};\n\nexport default {\n parseDirective,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n getConfig: () => configApi.getConfig().class,\n addClass,\n bindFunctions,\n clear,\n getClass,\n getClasses,\n addAnnotation,\n getRelations,\n addRelation,\n getDirection,\n setDirection,\n addMember,\n addMembers,\n cleanupLabel,\n lineType,\n relationType,\n setClickEvent,\n setCssClass,\n setLink,\n setTooltip,\n lookUpDomId,\n};\n","import { select } from 'd3';\nimport graphlib from 'graphlib';\nimport { log } from '../../logger';\nimport { getConfig } from '../../config';\nimport { render } from '../../dagre-wrapper/index.js';\n// import addHtmlLabel from 'dagre-d3/lib/label/add-html-label.js';\nimport { curveLinear } from 'd3';\nimport { interpolateToCurve, getStylesFromArray, setupGraphViewbox } from '../../utils';\nimport common from '../common/common';\nimport addSVGAccessibilityFields from '../../accessibility';\n\nlet idCache = {};\nconst padding = 20;\n\nconst sanitizeText = (txt) => common.sanitizeText(txt, getConfig());\n\nlet conf = {\n dividerMargin: 10,\n padding: 5,\n textHeight: 10,\n};\n\n/**\n * Function that adds the vertices found during parsing to the graph to be rendered.\n *\n * @param {Object<\n * string,\n * { cssClasses: string[]; text: string; id: string; type: string; domId: string }\n * >} classes\n * Object containing the vertices.\n * @param {SVGGElement} g The graph that is to be drawn.\n */\nexport const addClasses = function (classes, g) {\n // const svg = select(`[id=\"${svgId}\"]`);\n const keys = Object.keys(classes);\n log.info('keys:', keys);\n log.info(classes);\n\n // Iterate through each item in the vertex object (containing all the vertices found) in the graph definition\n keys.forEach(function (id) {\n const vertex = classes[id];\n\n /**\n * Variable for storing the classes for the vertex\n *\n * @type {string}\n */\n let cssClassStr = '';\n if (vertex.cssClasses.length > 0) {\n cssClassStr = cssClassStr + ' ' + vertex.cssClasses.join(' ');\n }\n // if (vertex.classes.length > 0) {\n // classStr = vertex.classes.join(' ');\n // }\n\n const styles = { labelStyle: '' }; //getStylesFromArray(vertex.styles);\n\n // Use vertex id as text in the box if no text is provided by the graph definition\n let vertexText = vertex.text !== undefined ? vertex.text : vertex.id;\n\n // We create a SVG label, either by delegating to addHtmlLabel or manually\n // let vertexNode;\n // if (evaluate(getConfig().flowchart.htmlLabels)) {\n // const node = {\n // label: vertexText.replace(\n // /fa[lrsb]?:fa-[\\w-]+/g,\n // s => ``\n // )\n // };\n // vertexNode = addHtmlLabel(svg, node).node();\n // vertexNode.parentNode.removeChild(vertexNode);\n // } else {\n // const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n // svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));\n\n // const rows = vertexText.split(common.lineBreakRegex);\n\n // for (let j = 0; j < rows.length; j++) {\n // const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');\n // tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n // tspan.setAttribute('dy', '1em');\n // tspan.setAttribute('x', '1');\n // tspan.textContent = rows[j];\n // svgLabel.appendChild(tspan);\n // }\n // vertexNode = svgLabel;\n // }\n\n let radious = 0;\n let _shape = '';\n // Set the shape based parameters\n switch (vertex.type) {\n case 'class':\n _shape = 'class_box';\n break;\n default:\n _shape = 'class_box';\n }\n // Add the node\n g.setNode(vertex.id, {\n labelStyle: styles.labelStyle,\n shape: _shape,\n labelText: sanitizeText(vertexText),\n classData: vertex,\n rx: radious,\n ry: radious,\n class: cssClassStr,\n style: styles.style,\n id: vertex.id,\n domId: vertex.domId,\n haveCallback: vertex.haveCallback,\n link: vertex.link,\n width: vertex.type === 'group' ? 500 : undefined,\n type: vertex.type,\n padding: getConfig().flowchart.padding,\n });\n\n log.info('setNode', {\n labelStyle: styles.labelStyle,\n shape: _shape,\n labelText: vertexText,\n rx: radious,\n ry: radious,\n class: cssClassStr,\n style: styles.style,\n id: vertex.id,\n width: vertex.type === 'group' ? 500 : undefined,\n type: vertex.type,\n padding: getConfig().flowchart.padding,\n });\n });\n};\n\n/**\n * Add edges to graph based on parsed graph definition\n *\n * @param relations\n * @param {object} g The graph object\n */\nexport const addRelations = function (relations, g) {\n const conf = getConfig().flowchart;\n let cnt = 0;\n\n let defaultStyle;\n let defaultLabelStyle;\n\n // if (typeof relations.defaultStyle !== 'undefined') {\n // const defaultStyles = getStylesFromArray(relations.defaultStyle);\n // defaultStyle = defaultStyles.style;\n // defaultLabelStyle = defaultStyles.labelStyle;\n // }\n\n relations.forEach(function (edge) {\n cnt++;\n const edgeData = {};\n //Set relationship style and line type\n edgeData.classes = 'relation';\n edgeData.pattern = edge.relation.lineType == 1 ? 'dashed' : 'solid';\n\n edgeData.id = 'id' + cnt;\n // Set link type for rendering\n if (edge.type === 'arrow_open') {\n edgeData.arrowhead = 'none';\n } else {\n edgeData.arrowhead = 'normal';\n }\n\n log.info(edgeData, edge);\n //Set edge extra labels\n //edgeData.startLabelLeft = edge.relationTitle1;\n edgeData.startLabelRight = edge.relationTitle1 === 'none' ? '' : edge.relationTitle1;\n edgeData.endLabelLeft = edge.relationTitle2 === 'none' ? '' : edge.relationTitle2;\n //edgeData.endLabelRight = edge.relationTitle2;\n\n //Set relation arrow types\n edgeData.arrowTypeStart = getArrowMarker(edge.relation.type1);\n edgeData.arrowTypeEnd = getArrowMarker(edge.relation.type2);\n let style = '';\n let labelStyle = '';\n\n if (typeof edge.style !== 'undefined') {\n const styles = getStylesFromArray(edge.style);\n style = styles.style;\n labelStyle = styles.labelStyle;\n } else {\n style = 'fill:none';\n if (typeof defaultStyle !== 'undefined') {\n style = defaultStyle;\n }\n if (typeof defaultLabelStyle !== 'undefined') {\n labelStyle = defaultLabelStyle;\n }\n }\n\n edgeData.style = style;\n edgeData.labelStyle = labelStyle;\n\n if (typeof edge.interpolate !== 'undefined') {\n edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);\n } else if (typeof relations.defaultInterpolate !== 'undefined') {\n edgeData.curve = interpolateToCurve(relations.defaultInterpolate, curveLinear);\n } else {\n edgeData.curve = interpolateToCurve(conf.curve, curveLinear);\n }\n\n edge.text = edge.title;\n if (typeof edge.text === 'undefined') {\n if (typeof edge.style !== 'undefined') {\n edgeData.arrowheadStyle = 'fill: #333';\n }\n } else {\n edgeData.arrowheadStyle = 'fill: #333';\n edgeData.labelpos = 'c';\n\n if (getConfig().flowchart.htmlLabels) {\n // eslint-disable-line\n edgeData.labelType = 'html';\n edgeData.label = '' + edge.text + '';\n } else {\n edgeData.labelType = 'text';\n edgeData.label = edge.text.replace(common.lineBreakRegex, '\\n');\n\n if (typeof edge.style === 'undefined') {\n edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none';\n }\n\n edgeData.labelStyle = edgeData.labelStyle.replace('color:', 'fill:');\n }\n }\n // Add the edge to the graph\n g.setEdge(edge.id1, edge.id2, edgeData, cnt);\n });\n};\n\n/**\n * Gets the ID with the same label as in the cache\n *\n * @param {string} label The label to look for\n * @returns {string} The resulting ID\n */\nconst getGraphId = function (label) {\n const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);\n\n if (foundEntry) {\n return foundEntry[0];\n }\n};\n\n/**\n * Merges the value of `conf` with the passed `cnf`\n *\n * @param {object} cnf Config to merge\n */\nexport const setConf = function (cnf) {\n const keys = Object.keys(cnf);\n\n keys.forEach(function (key) {\n conf[key] = cnf[key];\n });\n};\n\n/**\n * Draws a flowchart in the tag with id: id based on the graph definition in text.\n *\n * @param {string} text\n * @param {string} id\n * @param _version\n * @param diagObj\n */\nexport const draw = function (text, id, _version, diagObj) {\n log.info('Drawing class - ', id);\n // diagObj.db.clear();\n // const parser = diagObj.db.parser;\n // parser.yy = classDb;\n\n // Parse the graph definition\n // try {\n // parser.parse(text);\n // } catch (err) {\n // log.debug('Parsing failed');\n // }\n\n // Fetch the default direction, use TD if none was found\n //let dir = 'TD';\n\n const conf = getConfig().flowchart;\n const securityLevel = getConfig().securityLevel;\n log.info('config:', conf);\n const nodeSpacing = conf.nodeSpacing || 50;\n const rankSpacing = conf.rankSpacing || 50;\n\n // Create the input mermaid.graph\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true,\n })\n .setGraph({\n rankdir: diagObj.db.getDirection(),\n nodesep: nodeSpacing,\n ranksep: rankSpacing,\n marginx: 8,\n marginy: 8,\n })\n .setDefaultEdgeLabel(function () {\n return {};\n });\n\n // let subG;\n // const subGraphs = flowDb.getSubGraphs();\n // log.info('Subgraphs - ', subGraphs);\n // for (let i = subGraphs.length - 1; i >= 0; i--) {\n // subG = subGraphs[i];\n // log.info('Subgraph - ', subG);\n // flowDb.addVertex(subG.id, subG.title, 'group', undefined, subG.classes);\n // }\n\n // Fetch the vertices/nodes and edges/links from the parsed graph definition\n const classes = diagObj.db.getClasses();\n const relations = diagObj.db.getRelations();\n\n log.info(relations);\n addClasses(classes, g, id);\n addRelations(relations, g);\n\n // Add custom shapes\n // flowChartShapes.addToRenderV2(addShape);\n\n // Set up an SVG group so that we can translate the final graph.\n let sandboxElement;\n if (securityLevel === 'sandbox') {\n sandboxElement = select('#i' + id);\n }\n const root =\n securityLevel === 'sandbox'\n ? select(sandboxElement.nodes()[0].contentDocument.body)\n : select('body');\n const svg = root.select(`[id=\"${id}\"]`);\n\n // Run the renderer. This is what draws the final graph.\n const element = root.select('#' + id + ' g');\n render(element, g, ['aggregation', 'extension', 'composition', 'dependency'], 'classDiagram', id);\n\n setupGraphViewbox(g, svg, conf.diagramPadding, conf.useMaxWidth);\n\n // Add label rects for non html labels\n if (!conf.htmlLabels) {\n const doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document;\n const labels = doc.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n for (let k = 0; k < labels.length; k++) {\n const label = labels[k];\n\n // Get dimensions of label\n const dim = label.getBBox();\n\n const rect = doc.createElementNS('http://www.w3.org/2000/svg', 'rect');\n rect.setAttribute('rx', 0);\n rect.setAttribute('ry', 0);\n rect.setAttribute('width', dim.width);\n rect.setAttribute('height', dim.height);\n // rect.setAttribute('style', 'fill:#e8e8e8;');\n\n label.insertBefore(rect, label.firstChild);\n }\n }\n\n addSVGAccessibilityFields(diagObj.db, svg, id);\n // If node has a link, wrap it in an anchor SVG object.\n // const keys = Object.keys(classes);\n // keys.forEach(function(key) {\n // const vertex = classes[key];\n\n // if (vertex.link) {\n // const node = select('#' + id + ' [id=\"' + key + '\"]');\n // if (node) {\n // const link = document.createElementNS('http://www.w3.org/2000/svg', 'a');\n // link.setAttributeNS('http://www.w3.org/2000/svg', 'class', vertex.classes.join(' '));\n // link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertex.link);\n // link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener');\n\n // const linkNode = node.insert(function() {\n // return link;\n // }, ':first-child');\n\n // const shape = node.select('.label-container');\n // if (shape) {\n // linkNode.append(function() {\n // return shape.node();\n // });\n // }\n\n // const label = node.select('.label');\n // if (label) {\n // linkNode.append(function() {\n // return label.node();\n // });\n // }\n // }\n // }\n // });\n};\n\n/**\n * Gets the arrow marker for a type index\n *\n * @param {number} type The type to look for\n * @returns {'aggregation' | 'extension' | 'composition' | 'dependency'} The arrow marker\n */\nfunction getArrowMarker(type) {\n let marker;\n switch (type) {\n case 0:\n marker = 'aggregation';\n break;\n case 1:\n marker = 'extension';\n break;\n case 2:\n marker = 'composition';\n break;\n case 3:\n marker = 'dependency';\n break;\n default:\n marker = 'none';\n }\n return marker;\n}\n\nexport default {\n setConf,\n draw,\n};\n","import { select } from 'd3';\nimport dagre from 'dagre';\nimport graphlib from 'graphlib';\nimport { log } from '../../logger';\nimport svgDraw from './svgDraw';\nimport { configureSvgSize } from '../../utils';\nimport { getConfig } from '../../config';\nimport addSVGAccessibilityFields from '../../accessibility';\n\nlet idCache = {};\nconst padding = 20;\n\nconst confa = {\n dividerMargin: 10,\n padding: 5,\n textHeight: 10,\n};\n\n/**\n * Gets the ID with the same label as in the cache\n *\n * @param {string} label The label to look for\n * @returns {string} The resulting ID\n */\nconst getGraphId = function (label) {\n const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);\n\n if (foundEntry) {\n return foundEntry[0];\n }\n};\n\n/**\n * Setup arrow head and define the marker. The result is appended to the svg.\n *\n * @param {SVGSVGElement} elem The SVG element to append to\n */\nconst insertMarkers = function (elem) {\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'extensionStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,7 L18,13 V 1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'extensionEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,1 V 13 L18,7 Z'); // this is actual shape for arrowhead\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'compositionStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'compositionEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'aggregationStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'aggregationEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'dependencyStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'dependencyEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');\n};\n\n/**\n * Draws a flowchart in the tag with id: id based on the graph definition in text.\n *\n * @param {string} text\n * @param {string} id\n * @param version\n * @param _version\n * @param diagObj\n */\nexport const draw = function (text, id, _version, diagObj) {\n const conf = getConfig().class;\n idCache = {};\n // diagObj.db.clear();\n // diagObj.parser.parse(text);\n\n log.info('Rendering diagram ' + text);\n\n const securityLevel = getConfig().securityLevel;\n // Handle root and Document for when rendering in sanbox mode\n let sandboxElement;\n if (securityLevel === 'sandbox') {\n sandboxElement = select('#i' + id);\n }\n const root =\n securityLevel === 'sandbox'\n ? select(sandboxElement.nodes()[0].contentDocument.body)\n : select('body');\n const doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document;\n\n // Fetch the default direction, use TD if none was found\n const diagram = root.select(`[id='${id}']`);\n insertMarkers(diagram);\n\n // Layout graph, Create a new directed graph\n const g = new graphlib.Graph({\n multigraph: true,\n });\n\n // Set an object for the graph label\n g.setGraph({\n isMultiGraph: true,\n });\n\n // Default to assigning a new object as a label for each new edge.\n g.setDefaultEdgeLabel(function () {\n return {};\n });\n\n const classes = diagObj.db.getClasses();\n const keys = Object.keys(classes);\n\n for (let i = 0; i < keys.length; i++) {\n const classDef = classes[keys[i]];\n const node = svgDraw.drawClass(diagram, classDef, conf, diagObj);\n idCache[node.id] = node;\n\n // Add nodes to the graph. The first argument is the node id. The second is\n // metadata about the node. In this case we're going to add labels to each of\n // our nodes.\n g.setNode(node.id, node);\n\n log.info('Org height: ' + node.height);\n }\n\n const relations = diagObj.db.getRelations();\n relations.forEach(function (relation) {\n log.info(\n 'tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)\n );\n g.setEdge(\n getGraphId(relation.id1),\n getGraphId(relation.id2),\n {\n relation: relation,\n },\n relation.title || 'DEFAULT'\n );\n });\n\n dagre.layout(g);\n g.nodes().forEach(function (v) {\n if (typeof v !== 'undefined' && typeof g.node(v) !== 'undefined') {\n log.debug('Node ' + v + ': ' + JSON.stringify(g.node(v)));\n root\n .select('#' + diagObj.db.lookUpDomId(v))\n .attr(\n 'transform',\n 'translate(' +\n (g.node(v).x - g.node(v).width / 2) +\n ',' +\n (g.node(v).y - g.node(v).height / 2) +\n ' )'\n );\n }\n });\n\n g.edges().forEach(function (e) {\n if (typeof e !== 'undefined' && typeof g.edge(e) !== 'undefined') {\n log.debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e)));\n svgDraw.drawEdge(diagram, g.edge(e), g.edge(e).relation, conf, diagObj);\n }\n });\n\n const svgBounds = diagram.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n\n configureSvgSize(diagram, height, width, conf.useMaxWidth);\n\n // Ensure the viewBox includes the whole svgBounds area with extra space for padding\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;\n log.debug(`viewBox ${vBox}`);\n diagram.attr('viewBox', vBox);\n addSVGAccessibilityFields(diagObj.db, diagram, id);\n};\n\nexport default {\n draw,\n};\n","const getStyles = (options) =>\n `g.classGroup text {\n fill: ${options.nodeBorder};\n fill: ${options.classText};\n stroke: none;\n font-family: ${options.fontFamily};\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ${options.classText};\n}\n.edgeLabel .label rect {\n fill: ${options.mainBkg};\n}\n.label text {\n fill: ${options.classText};\n}\n.edgeLabel .label span {\n background: ${options.mainBkg};\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ${options.nodeBorder};\n stroke: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n}\n\ng.classGroup line {\n stroke: ${options.nodeBorder};\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${options.mainBkg};\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ${options.nodeBorder};\n font-size: 10px;\n}\n\n.relation {\n stroke: ${options.lineColor};\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n#compositionStart, .composition {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n}\n\n`;\n\nexport default getStyles;\n","import { line, curveBasis } from 'd3';\nimport utils from '../../utils';\nimport { log } from '../../logger';\n\nlet edgeCount = 0;\nexport const drawEdge = function (elem, path, relation, conf, diagObj) {\n const getRelationType = function (type) {\n switch (type) {\n case diagObj.db.relationType.AGGREGATION:\n return 'aggregation';\n case diagObj.db.EXTENSION:\n return 'extension';\n case diagObj.db.COMPOSITION:\n return 'composition';\n case diagObj.db.DEPENDENCY:\n return 'dependency';\n }\n };\n\n path.points = path.points.filter((p) => !Number.isNaN(p.y));\n\n // The data for our line\n const lineData = path.points;\n\n // This is the accessor function we talked about above\n const lineFunction = line()\n .x(function (d) {\n return d.x;\n })\n .y(function (d) {\n return d.y;\n })\n .curve(curveBasis);\n\n const svgPath = elem\n .append('path')\n .attr('d', lineFunction(lineData))\n .attr('id', 'edge' + edgeCount)\n .attr('class', 'relation');\n let url = '';\n if (conf.arrowMarkerAbsolute) {\n url =\n window.location.protocol +\n '//' +\n window.location.host +\n window.location.pathname +\n window.location.search;\n url = url.replace(/\\(/g, '\\\\(');\n url = url.replace(/\\)/g, '\\\\)');\n }\n\n if (relation.relation.lineType == 1) {\n svgPath.attr('class', 'relation dashed-line');\n }\n if (relation.relation.type1 !== 'none') {\n svgPath.attr(\n 'marker-start',\n 'url(' + url + '#' + getRelationType(relation.relation.type1) + 'Start' + ')'\n );\n }\n if (relation.relation.type2 !== 'none') {\n svgPath.attr(\n 'marker-end',\n 'url(' + url + '#' + getRelationType(relation.relation.type2) + 'End' + ')'\n );\n }\n\n let x, y;\n const l = path.points.length;\n // Calculate Label position\n let labelPosition = utils.calcLabelPosition(path.points);\n x = labelPosition.x;\n y = labelPosition.y;\n\n let p1_card_x, p1_card_y;\n let p2_card_x, p2_card_y;\n\n if (l % 2 !== 0 && l > 1) {\n let cardinality_1_point = utils.calcCardinalityPosition(\n relation.relation.type1 !== 'none',\n path.points,\n path.points[0]\n );\n let cardinality_2_point = utils.calcCardinalityPosition(\n relation.relation.type2 !== 'none',\n path.points,\n path.points[l - 1]\n );\n\n log.debug('cardinality_1_point ' + JSON.stringify(cardinality_1_point));\n log.debug('cardinality_2_point ' + JSON.stringify(cardinality_2_point));\n\n p1_card_x = cardinality_1_point.x;\n p1_card_y = cardinality_1_point.y;\n p2_card_x = cardinality_2_point.x;\n p2_card_y = cardinality_2_point.y;\n }\n\n if (typeof relation.title !== 'undefined') {\n const g = elem.append('g').attr('class', 'classLabel');\n const label = g\n .append('text')\n .attr('class', 'label')\n .attr('x', x)\n .attr('y', y)\n .attr('fill', 'red')\n .attr('text-anchor', 'middle')\n .text(relation.title);\n\n window.label = label;\n const bounds = label.node().getBBox();\n\n g.insert('rect', ':first-child')\n .attr('class', 'box')\n .attr('x', bounds.x - conf.padding / 2)\n .attr('y', bounds.y - conf.padding / 2)\n .attr('width', bounds.width + conf.padding)\n .attr('height', bounds.height + conf.padding);\n }\n\n log.info('Rendering relation ' + JSON.stringify(relation));\n if (typeof relation.relationTitle1 !== 'undefined' && relation.relationTitle1 !== 'none') {\n const g = elem.append('g').attr('class', 'cardinality');\n g.append('text')\n .attr('class', 'type1')\n .attr('x', p1_card_x)\n .attr('y', p1_card_y)\n .attr('fill', 'black')\n .attr('font-size', '6')\n .text(relation.relationTitle1);\n }\n if (typeof relation.relationTitle2 !== 'undefined' && relation.relationTitle2 !== 'none') {\n const g = elem.append('g').attr('class', 'cardinality');\n g.append('text')\n .attr('class', 'type2')\n .attr('x', p2_card_x)\n .attr('y', p2_card_y)\n .attr('fill', 'black')\n .attr('font-size', '6')\n .text(relation.relationTitle2);\n }\n\n edgeCount++;\n};\n\n/**\n * Renders a class diagram\n *\n * @param {SVGSVGElement} elem The element to draw it into\n * @param classDef\n * @param conf\n * @param diagObj\n * @todo Add more information in the JSDOC here\n */\nexport const drawClass = function (elem, classDef, conf, diagObj) {\n log.debug('Rendering class ', classDef, conf);\n\n const id = classDef.id;\n const classInfo = {\n id: id,\n label: classDef.id,\n width: 0,\n height: 0,\n };\n\n // add class group\n const g = elem.append('g').attr('id', diagObj.db.lookUpDomId(id)).attr('class', 'classGroup');\n\n // add title\n let title;\n if (classDef.link) {\n title = g\n .append('svg:a')\n .attr('xlink:href', classDef.link)\n .attr('target', classDef.linkTarget)\n .append('text')\n .attr('y', conf.textHeight + conf.padding)\n .attr('x', 0);\n } else {\n title = g\n .append('text')\n .attr('y', conf.textHeight + conf.padding)\n .attr('x', 0);\n }\n\n // add annotations\n let isFirst = true;\n classDef.annotations.forEach(function (member) {\n const titleText2 = title.append('tspan').text('«' + member + '»');\n if (!isFirst) titleText2.attr('dy', conf.textHeight);\n isFirst = false;\n });\n\n let classTitleString = classDef.id;\n\n if (classDef.type !== undefined && classDef.type !== '') {\n classTitleString += '<' + classDef.type + '>';\n }\n\n const classTitle = title.append('tspan').text(classTitleString).attr('class', 'title');\n\n // If class has annotations the title needs to have an offset of the text height\n if (!isFirst) classTitle.attr('dy', conf.textHeight);\n\n const titleHeight = title.node().getBBox().height;\n\n const membersLine = g\n .append('line') // text label for the x axis\n .attr('x1', 0)\n .attr('y1', conf.padding + titleHeight + conf.dividerMargin / 2)\n .attr('y2', conf.padding + titleHeight + conf.dividerMargin / 2);\n\n const members = g\n .append('text') // text label for the x axis\n .attr('x', conf.padding)\n .attr('y', titleHeight + conf.dividerMargin + conf.textHeight)\n .attr('fill', 'white')\n .attr('class', 'classText');\n\n isFirst = true;\n classDef.members.forEach(function (member) {\n addTspan(members, member, isFirst, conf);\n isFirst = false;\n });\n\n const membersBox = members.node().getBBox();\n\n const methodsLine = g\n .append('line') // text label for the x axis\n .attr('x1', 0)\n .attr('y1', conf.padding + titleHeight + conf.dividerMargin + membersBox.height)\n .attr('y2', conf.padding + titleHeight + conf.dividerMargin + membersBox.height);\n\n const methods = g\n .append('text') // text label for the x axis\n .attr('x', conf.padding)\n .attr('y', titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight)\n .attr('fill', 'white')\n .attr('class', 'classText');\n\n isFirst = true;\n\n classDef.methods.forEach(function (method) {\n addTspan(methods, method, isFirst, conf);\n isFirst = false;\n });\n\n const classBox = g.node().getBBox();\n var cssClassStr = ' ';\n\n if (classDef.cssClasses.length > 0) {\n cssClassStr = cssClassStr + classDef.cssClasses.join(' ');\n }\n\n const rect = g\n .insert('rect', ':first-child')\n .attr('x', 0)\n .attr('y', 0)\n .attr('width', classBox.width + 2 * conf.padding)\n .attr('height', classBox.height + conf.padding + 0.5 * conf.dividerMargin)\n .attr('class', cssClassStr);\n\n const rectWidth = rect.node().getBBox().width;\n\n // Center title\n // We subtract the width of each text element from the class box width and divide it by 2\n title.node().childNodes.forEach(function (x) {\n x.setAttribute('x', (rectWidth - x.getBBox().width) / 2);\n });\n\n if (classDef.tooltip) {\n title.insert('title').text(classDef.tooltip);\n }\n\n membersLine.attr('x2', rectWidth);\n methodsLine.attr('x2', rectWidth);\n\n classInfo.width = rectWidth;\n classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin;\n\n return classInfo;\n};\n\nexport const parseMember = function (text) {\n const fieldRegEx = /^(\\+|-|~|#)?(\\w+)(~\\w+~|\\[\\])?\\s+(\\w+) *(\\*|\\$)?$/;\n const methodRegEx = /^([+|\\-|~|#])?(\\w+) *\\( *(.*)\\) *(\\*|\\$)? *(\\w*[~|[\\]]*\\s*\\w*~?)$/;\n\n let fieldMatch = text.match(fieldRegEx);\n let methodMatch = text.match(methodRegEx);\n\n if (fieldMatch && !methodMatch) {\n return buildFieldDisplay(fieldMatch);\n } else if (methodMatch) {\n return buildMethodDisplay(methodMatch);\n } else {\n return buildLegacyDisplay(text);\n }\n};\n\nconst buildFieldDisplay = function (parsedText) {\n let cssStyle = '';\n let displayText = '';\n\n try {\n let visibility = parsedText[1] ? parsedText[1].trim() : '';\n let fieldType = parsedText[2] ? parsedText[2].trim() : '';\n let genericType = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : '';\n let fieldName = parsedText[4] ? parsedText[4].trim() : '';\n let classifier = parsedText[5] ? parsedText[5].trim() : '';\n\n displayText = visibility + fieldType + genericType + ' ' + fieldName;\n cssStyle = parseClassifier(classifier);\n } catch (err) {\n displayText = parsedText;\n }\n\n return {\n displayText: displayText,\n cssStyle: cssStyle,\n };\n};\n\nconst buildMethodDisplay = function (parsedText) {\n let cssStyle = '';\n let displayText = '';\n\n try {\n let visibility = parsedText[1] ? parsedText[1].trim() : '';\n let methodName = parsedText[2] ? parsedText[2].trim() : '';\n let parameters = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : '';\n let classifier = parsedText[4] ? parsedText[4].trim() : '';\n let returnType = parsedText[5] ? ' : ' + parseGenericTypes(parsedText[5]).trim() : '';\n\n displayText = visibility + methodName + '(' + parameters + ')' + returnType;\n cssStyle = parseClassifier(classifier);\n } catch (err) {\n displayText = parsedText;\n }\n\n return {\n displayText: displayText,\n cssStyle: cssStyle,\n };\n};\n\nconst buildLegacyDisplay = function (text) {\n // if for some reason we dont have any match, use old format to parse text\n let displayText = '';\n let cssStyle = '';\n let memberText = '';\n let returnType = '';\n let methodStart = text.indexOf('(');\n let methodEnd = text.indexOf(')');\n\n if (methodStart > 1 && methodEnd > methodStart && methodEnd <= text.length) {\n let visibility = '';\n let methodName = '';\n\n let firstChar = text.substring(0, 1);\n if (firstChar.match(/\\w/)) {\n methodName = text.substring(0, methodStart).trim();\n } else {\n if (firstChar.match(/\\+|-|~|#/)) {\n visibility = firstChar;\n }\n\n methodName = text.substring(1, methodStart).trim();\n }\n\n let parameters = text.substring(methodStart + 1, methodEnd);\n let classifier = text.substring(methodEnd + 1, 1);\n cssStyle = parseClassifier(classifier);\n\n displayText = visibility + methodName + '(' + parseGenericTypes(parameters.trim()) + ')';\n\n if (methodEnd < memberText.length) {\n returnType = text.substring(methodEnd + 2).trim();\n if (returnType !== '') {\n returnType = ' : ' + parseGenericTypes(returnType);\n }\n }\n } else {\n // finally - if all else fails, just send the text back as written (other than parsing for generic types)\n displayText = parseGenericTypes(text);\n }\n\n return {\n displayText: displayText,\n cssStyle: cssStyle,\n };\n};\n\n/**\n * Adds a for a member in a diagram\n *\n * @param {SVGElement} textEl The element to append to\n * @param {string} txt The member\n * @param {boolean} isFirst\n * @param {{ padding: string; textHeight: string }} conf The configuration for the member\n */\nconst addTspan = function (textEl, txt, isFirst, conf) {\n let member = parseMember(txt);\n\n const tSpan = textEl.append('tspan').attr('x', conf.padding).text(member.displayText);\n\n if (member.cssStyle !== '') {\n tSpan.attr('style', member.cssStyle);\n }\n\n if (!isFirst) {\n tSpan.attr('dy', conf.textHeight);\n }\n};\n\n/**\n * Makes generics in typescript syntax\n *\n * @example Array of array of strings in typescript syntax\n * // returns \"Array>\"\n * parseGenericTypes('Array~Array~string~~');\n *\n * @param {string} text The text to convert\n * @returns {string} The converted string\n */\nconst parseGenericTypes = function (text) {\n let cleanedText = text;\n\n if (text.indexOf('~') != -1) {\n cleanedText = cleanedText.replace('~', '<');\n cleanedText = cleanedText.replace('~', '>');\n\n return parseGenericTypes(cleanedText);\n } else {\n return cleanedText;\n }\n};\n\n/**\n * Gives the styles for a classifier\n *\n * @param {'+' | '-' | '#' | '~' | '*' | '$'} classifier The classifier string\n * @returns {string} Styling for the classifier\n */\nconst parseClassifier = function (classifier) {\n switch (classifier) {\n case '*':\n return 'font-style:italic;';\n case '$':\n return 'text-decoration:underline;';\n default:\n return '';\n }\n};\n\nexport default {\n drawClass,\n drawEdge,\n parseMember,\n};\n","import DOMPurify from 'dompurify';\n\n/**\n * Gets the number of lines in a string\n *\n * @param {string | undefined} s The string to check the lines for\n * @returns {number} The number of lines in that string\n */\nexport const getRows = (s) => {\n if (!s) return 1;\n let str = breakToPlaceholder(s);\n str = str.replace(/\\\\n/g, '#br#');\n return str.split('#br#');\n};\n\nexport const removeEscapes = (text) => {\n let newStr = text.replace(/\\\\u[\\dA-F]{4}/gi, function (match) {\n return String.fromCharCode(parseInt(match.replace(/\\\\u/g, ''), 16));\n });\n\n newStr = newStr.replace(/\\\\x([0-9a-f]{2})/gi, (_, c) => String.fromCharCode(parseInt(c, 16)));\n newStr = newStr.replace(/\\\\[\\d\\d\\d]{3}/gi, function (match) {\n return String.fromCharCode(parseInt(match.replace(/\\\\/g, ''), 8));\n });\n newStr = newStr.replace(/\\\\[\\d\\d\\d]{2}/gi, function (match) {\n return String.fromCharCode(parseInt(match.replace(/\\\\/g, ''), 8));\n });\n\n return newStr;\n};\n\n/**\n * Removes script tags from a text\n *\n * @param {string} txt The text to sanitize\n * @returns {string} The safer text\n */\nexport const removeScript = (txt) => {\n var rs = '';\n var idx = 0;\n\n while (idx >= 0) {\n idx = txt.indexOf('= 0) {\n rs += txt.substr(0, idx);\n txt = txt.substr(idx + 1);\n\n idx = txt.indexOf('');\n if (idx >= 0) {\n idx += 9;\n txt = txt.substr(idx);\n }\n } else {\n rs += txt;\n idx = -1;\n break;\n }\n }\n let decodedText = removeEscapes(rs);\n decodedText = decodedText.replaceAll(/script>/gi, '#');\n decodedText = decodedText.replaceAll(/javascript:/gi, '#');\n decodedText = decodedText.replaceAll(/javascript&colon/gi, '#');\n decodedText = decodedText.replaceAll(/onerror=/gi, 'onerror:');\n decodedText = decodedText.replaceAll(/`;\n } else {\n if (cnf.securityLevel !== 'loose') {\n svgCode = DOMPurify.sanitize(svgCode, {\n ADD_TAGS: ['foreignobject'],\n ADD_ATTR: ['dominant-baseline'],\n });\n }\n }\n\n if (typeof cb !== 'undefined') {\n switch (graphType) {\n case 'flowchart':\n case 'flowchart-v2':\n cb(svgCode, flowDb.bindFunctions);\n break;\n case 'gantt':\n cb(svgCode, ganttDb.bindFunctions);\n break;\n case 'class':\n case 'classDiagram':\n cb(svgCode, classDb.bindFunctions);\n break;\n default:\n cb(svgCode);\n }\n } else {\n log.debug('CB = undefined!');\n }\n attachFunctions();\n\n const tmpElementSelector = cnf.securityLevel === 'sandbox' ? '#i' + id : '#d' + id;\n const node = select(tmpElementSelector).node();\n if (node !== null && typeof node.remove === 'function') {\n select(tmpElementSelector).node().remove();\n }\n\n return svgCode;\n};\n\nlet currentDirective = {};\n\nconst parseDirective = function (p, statement, context, type) {\n try {\n if (statement !== undefined) {\n statement = statement.trim();\n switch (context) {\n case 'open_directive':\n currentDirective = {};\n break;\n case 'type_directive':\n currentDirective.type = statement.toLowerCase();\n break;\n case 'arg_directive':\n currentDirective.args = JSON.parse(statement);\n break;\n case 'close_directive':\n handleDirective(p, currentDirective, type);\n currentDirective = null;\n break;\n }\n }\n } catch (error) {\n log.error(\n `Error while rendering sequenceDiagram directive: ${statement} jison context: ${context}`\n );\n log.error(error.message);\n }\n};\n\nconst handleDirective = function (p, directive, type) {\n log.debug(`Directive type=${directive.type} with args:`, directive.args);\n switch (directive.type) {\n case 'init':\n case 'initialize': {\n ['config'].forEach((prop) => {\n if (typeof directive.args[prop] !== 'undefined') {\n if (type === 'flowchart-v2') {\n type = 'flowchart';\n }\n directive.args[type] = directive.args[prop];\n delete directive.args[prop];\n }\n });\n log.debug('sanitize in handleDirective', directive.args);\n directiveSanitizer(directive.args);\n log.debug('sanitize in handleDirective (done)', directive.args);\n configApi.addDirective(directive.args);\n break;\n }\n case 'wrap':\n case 'nowrap':\n if (p && p['setWrap']) {\n p.setWrap(directive.type === 'wrap');\n }\n break;\n case 'themeCss':\n log.warn('themeCss encountered');\n break;\n default:\n log.warn(\n `Unhandled directive: source: '%%{${directive.type}: ${JSON.stringify(\n directive.args ? directive.args : {}\n )}}%%`,\n directive\n );\n break;\n }\n};\n\n/** @param {any} conf */\nfunction updateRendererConfigs(conf) {\n // Todo remove, all diagrams should get config on demand from the config object, no need for this\n\n flowRenderer.setConf(conf.flowchart);\n flowRendererV2.setConf(conf.flowchart);\n if (typeof conf['sequenceDiagram'] !== 'undefined') {\n sequenceRenderer.setConf(assignWithDepth(conf.sequence, conf['sequenceDiagram']));\n }\n sequenceRenderer.setConf(conf.sequence);\n ganttRenderer.setConf(conf.gantt);\n // classRenderer.setConf(conf.class);\n stateRenderer.setConf(conf.state);\n stateRendererV2.setConf(conf.state);\n // infoRenderer.setConf(conf.class);\n journeyRenderer.setConf(conf.journey);\n errorRenderer.setConf(conf.class);\n}\n\n/** @param {any} options */\nfunction initialize(options) {\n // Handle legacy location of font-family configuration\n if (options && options.fontFamily) {\n if (!options.themeVariables) {\n options.themeVariables = { fontFamily: options.fontFamily };\n } else {\n if (!options.themeVariables.fontFamily) {\n options.themeVariables = { fontFamily: options.fontFamily };\n }\n }\n }\n // Set default options\n configApi.saveConfigFromInitialize(options);\n\n if (options && options.theme && theme[options.theme]) {\n // Todo merge with user options\n options.themeVariables = theme[options.theme].getThemeVariables(options.themeVariables);\n } else {\n if (options) options.themeVariables = theme.default.getThemeVariables(options.themeVariables);\n }\n\n const config =\n typeof options === 'object' ? configApi.setSiteConfig(options) : configApi.getSiteConfig();\n\n updateRendererConfigs(config);\n setLogLevel(config.logLevel);\n addDiagrams();\n}\n\nconst mermaidAPI = Object.freeze({\n render,\n parse,\n parseDirective,\n initialize,\n getConfig: configApi.getConfig,\n setConfig: configApi.setConfig,\n getSiteConfig: configApi.getSiteConfig,\n updateSiteConfig: configApi.updateSiteConfig,\n reset: () => {\n configApi.reset();\n },\n globalReset: () => {\n configApi.reset(configApi.defaultConfig);\n updateRendererConfigs(configApi.getConfig());\n },\n defaultConfig: configApi.defaultConfig,\n});\n\nsetLogLevel(configApi.getConfig().logLevel);\nconfigApi.reset(configApi.getConfig());\n\nexport default mermaidAPI;\n/**\n * ## mermaidAPI configuration defaults\n *\n * ```html\n * \n * ```\n */\n","import classDiagram from './diagrams/class/styles';\nimport er from './diagrams/er/styles';\nimport flowchart from './diagrams/flowchart/styles';\nimport gantt from './diagrams/gantt/styles';\nimport gitGraph from './diagrams/git/styles';\nimport info from './diagrams/info/styles';\nimport pie from './diagrams/pie/styles';\nimport requirement from './diagrams/requirement/styles';\nimport sequence from './diagrams/sequence/styles';\nimport stateDiagram from './diagrams/state/styles';\nimport journey from './diagrams/user-journey/styles';\nimport c4 from './diagrams/c4/styles';\nimport { log } from './logger';\n\nconst themes = {\n flowchart,\n 'flowchart-v2': flowchart,\n sequence,\n gantt,\n classDiagram,\n 'classDiagram-v2': classDiagram,\n class: classDiagram,\n stateDiagram,\n state: stateDiagram,\n gitGraph,\n info,\n pie,\n er,\n journey,\n requirement,\n c4,\n};\n\nexport const calcThemeVariables = (theme, userOverRides) => {\n log.info('userOverides', userOverRides);\n return theme.calcColors(userOverRides);\n};\n\nconst getStyles = (type, userStyles, options) => {\n return ` {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n fill: ${options.textColor}\n }\n\n /* Classes common for multiple diagrams */\n\n .error-icon {\n fill: ${options.errorBkgColor};\n }\n .error-text {\n fill: ${options.errorTextColor};\n stroke: ${options.errorTextColor};\n }\n\n .edge-thickness-normal {\n stroke-width: 2px;\n }\n .edge-thickness-thick {\n stroke-width: 3.5px\n }\n .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n .marker {\n fill: ${options.lineColor};\n stroke: ${options.lineColor};\n }\n .marker.cross {\n stroke: ${options.lineColor};\n }\n\n svg {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n }\n\n ${themes[type](options)}\n\n ${userStyles}\n`;\n};\n\nexport default getStyles;\n","import { getThemeVariables as baseThemeVariables } from './theme-base';\nimport { getThemeVariables as darkThemeVariables } from './theme-dark';\nimport { getThemeVariables as defaultThemeVariables } from './theme-default';\nimport { getThemeVariables as forestThemeVariables } from './theme-forest';\nimport { getThemeVariables as neutralThemeVariables } from './theme-neutral';\n\nexport default {\n base: {\n getThemeVariables: baseThemeVariables,\n },\n dark: {\n getThemeVariables: darkThemeVariables,\n },\n default: {\n getThemeVariables: defaultThemeVariables,\n },\n forest: {\n getThemeVariables: forestThemeVariables,\n },\n neutral: {\n getThemeVariables: neutralThemeVariables,\n },\n};\n","import { darken, lighten, adjust, invert } from 'khroma';\nimport { mkBorder } from './theme-helpers';\nclass Theme {\n constructor() {\n /** # Base variables */\n /**\n * - Background - used to know what the background color is of the diagram. This is used for\n * deducing colors for instance line color. Default value is #f4f4f4.\n */\n this.background = '#f4f4f4';\n this.darkMode = false;\n\n this.primaryColor = '#fff4dd';\n\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = '#333';\n\n // dark\n\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = '16px';\n }\n updateColors() {\n // The || is to make sure that if the variable has been defined by a user override that value is to be used\n\n /* Main */\n this.primaryTextColor = this.primaryTextColor || (this.darkMode ? '#eee' : '#333'); // invert(this.primaryColor);\n this.secondaryColor = this.secondaryColor || adjust(this.primaryColor, { h: -120 });\n this.tertiaryColor = this.tertiaryColor || adjust(this.primaryColor, { h: 180, l: 5 });\n\n this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor =\n this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor =\n this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);\n this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);\n this.noteBkgColor = this.noteBkgColor || '#fff5ad';\n this.noteTextColor = this.noteTextColor || '#333';\n\n this.secondaryTextColor = this.secondaryTextColor || invert(this.secondaryColor);\n this.tertiaryTextColor = this.tertiaryTextColor || invert(this.tertiaryColor);\n this.lineColor = this.lineColor || invert(this.background);\n this.textColor = this.textColor || this.primaryTextColor;\n\n /* Flowchart variables */\n this.nodeBkg = this.nodeBkg || this.primaryColor;\n this.mainBkg = this.mainBkg || this.primaryColor;\n this.nodeBorder = this.nodeBorder || this.primaryBorderColor;\n this.clusterBkg = this.clusterBkg || this.tertiaryColor;\n this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;\n this.defaultLinkColor = this.defaultLinkColor || this.lineColor;\n this.titleColor = this.titleColor || this.tertiaryTextColor;\n this.edgeLabelBackground =\n this.edgeLabelBackground ||\n (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;\n /* Sequence Diagram variables */\n\n // this.actorBorder = lighten(this.border1, 0.5);\n this.actorBorder = this.actorBorder || this.primaryBorderColor;\n this.actorBkg = this.actorBkg || this.mainBkg;\n this.actorTextColor = this.actorTextColor || this.primaryTextColor;\n this.actorLineColor = this.actorLineColor || 'grey';\n this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;\n this.signalColor = this.signalColor || this.textColor;\n this.signalTextColor = this.signalTextColor || this.textColor;\n this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;\n this.labelTextColor = this.labelTextColor || this.actorTextColor;\n this.loopTextColor = this.loopTextColor || this.actorTextColor;\n this.activationBorderColor = this.activationBorderColor || darken(this.secondaryColor, 10);\n this.activationBkgColor = this.activationBkgColor || this.secondaryColor;\n this.sequenceNumberColor = this.sequenceNumberColor || invert(this.lineColor);\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;\n this.altSectionBkgColor = this.altSectionBkgColor || 'white';\n this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;\n this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;\n this.excludeBkgColor = this.excludeBkgColor || '#eeeeee';\n this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;\n this.taskBkgColor = this.taskBkgColor || this.primaryColor;\n this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;\n this.activeTaskBkgColor = this.activeTaskBkgColor || lighten(this.primaryColor, 23);\n this.gridColor = this.gridColor || 'lightgrey';\n this.doneTaskBkgColor = this.doneTaskBkgColor || 'lightgrey';\n this.doneTaskBorderColor = this.doneTaskBorderColor || 'grey';\n this.critBorderColor = this.critBorderColor || '#ff8888';\n this.critBkgColor = this.critBkgColor || 'red';\n this.todayLineColor = this.todayLineColor || 'red';\n this.taskTextColor = this.taskTextColor || this.textColor;\n this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;\n this.taskTextLightColor = this.taskTextLightColor || this.textColor;\n this.taskTextColor = this.taskTextColor || this.primaryTextColor;\n this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;\n this.taskTextClickableColor = this.taskTextClickableColor || '#003163';\n\n /* Sequence Diagram variables */\n\n this.personBorder = this.personBorder || this.primaryBorderColor;\n this.personBkg = this.personBkg || this.mainBkg;\n\n /* state colors */\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n /* The color of the text tables of the states*/\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || this.tertiaryColor;\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.specialStateColor = this.lineColor;\n\n /* class */\n this.classText = this.classText || this.textColor;\n\n /* user-journey */\n this.fillType0 = this.fillType0 || this.primaryColor;\n this.fillType1 = this.fillType1 || this.secondaryColor;\n this.fillType2 = this.fillType2 || adjust(this.primaryColor, { h: 64 });\n this.fillType3 = this.fillType3 || adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = this.fillType4 || adjust(this.primaryColor, { h: -64 });\n this.fillType5 = this.fillType5 || adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = this.fillType6 || adjust(this.primaryColor, { h: 128 });\n this.fillType7 = this.fillType7 || adjust(this.secondaryColor, { h: 128 });\n\n /* pie */\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -10 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -10 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: +60, l: -10 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: +60, l: -20 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -20 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -10 });\n this.pieTitleTextSize = this.pieTitleTextSize || '25px';\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || '17px';\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || '17px';\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || 'black';\n this.pieStrokeWidth = this.pieStrokeWidth || '2px';\n this.pieOpacity = this.pieOpacity || '0.7';\n\n /* requirement-diagram */\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground =\n this.relationLabelBackground ||\n (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n\n /* git */\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust(this.primaryColor, { h: +60 });\n this.git7 = this.git7 || adjust(this.primaryColor, { h: +120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.branchLabelColor =\n this.branchLabelColor || (this.darkMode ? 'black' : this.labelTextColor);\n this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor;\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor;\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor;\n\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || '10px';\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || '10px';\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = (userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n};\n","import { invert, lighten, darken, rgba, adjust } from 'khroma';\nimport { mkBorder } from './theme-helpers';\nclass Theme {\n constructor() {\n this.background = '#333';\n this.primaryColor = '#1f2020';\n this.secondaryColor = lighten(this.primaryColor, 16);\n\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = invert(this.background);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n this.mainBkg = '#1f2020';\n this.secondBkg = 'calculated';\n this.mainContrastColor = 'lightgrey';\n this.darkTextColor = lighten(invert('#323D47'), 10);\n this.lineColor = 'calculated';\n this.border1 = '#81B1DB';\n this.border2 = rgba(255, 255, 255, 0.25);\n this.arrowheadColor = 'calculated';\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = '16px';\n this.labelBackground = '#181818';\n this.textColor = '#ccc';\n /* Flowchart variables */\n\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = '#F9FFFE';\n this.edgeLabelBackground = 'calculated';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'calculated';\n this.actorLineColor = 'calculated';\n this.signalColor = 'calculated';\n this.signalTextColor = 'calculated';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = 'calculated';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = 'calculated';\n this.activationBkgColor = 'calculated';\n this.sequenceNumberColor = 'black';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = darken('#EAE8D9', 30);\n this.altSectionBkgColor = 'calculated';\n this.sectionBkgColor2 = '#EAE8D9';\n this.taskBorderColor = rgba(255, 255, 255, 70);\n this.taskBkgColor = 'calculated';\n this.taskTextColor = 'calculated';\n this.taskTextLightColor = 'calculated';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = rgba(255, 255, 255, 50);\n this.activeTaskBkgColor = '#81B1DB';\n this.gridColor = 'calculated';\n this.doneTaskBkgColor = 'calculated';\n this.doneTaskBorderColor = 'grey';\n this.critBorderColor = '#E83737';\n this.critBkgColor = '#E83737';\n this.taskTextDarkColor = 'calculated';\n this.todayLineColor = '#DB5757';\n\n /* C4 Context Diagram variables */\n\n this.personBorder = 'calculated';\n this.personBkg = 'calculated';\n\n /* state colors */\n this.labelColor = 'calculated';\n\n this.errorBkgColor = '#a44141';\n this.errorTextColor = '#ddd';\n }\n updateColors() {\n this.secondBkg = lighten(this.mainBkg, 16);\n this.lineColor = this.mainContrastColor;\n this.arrowheadColor = this.mainContrastColor;\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.edgeLabelBackground = lighten(this.labelBackground, 25);\n\n /* Sequence Diagram variables */\n\n this.actorBorder = this.border1;\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.mainContrastColor;\n this.actorLineColor = this.mainContrastColor;\n this.signalColor = this.mainContrastColor;\n this.signalTextColor = this.mainContrastColor;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.mainContrastColor;\n this.loopTextColor = this.mainContrastColor;\n this.noteBorderColor = this.secondaryBorderColor;\n this.noteBkgColor = this.secondBkg;\n this.noteTextColor = this.secondaryTextColor;\n this.activationBorderColor = this.border1;\n this.activationBkgColor = this.secondBkg;\n\n /* Gantt chart variables */\n\n this.altSectionBkgColor = this.background;\n this.taskBkgColor = lighten(this.mainBkg, 23);\n this.taskTextColor = this.darkTextColor;\n this.taskTextLightColor = this.mainContrastColor;\n this.taskTextOutsideColor = this.taskTextLightColor;\n this.gridColor = this.mainContrastColor;\n this.doneTaskBkgColor = this.mainContrastColor;\n this.taskTextDarkColor = this.darkTextColor;\n\n /* state colors */\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || '#555';\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = '#f4f4f4'; // this.lineColor;\n\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n\n /* pie */\n this.pie1 = this.pie1 || '#0b0000';\n this.pie2 = this.pie2 || '#4d1037';\n this.pie3 = this.pie3 || '#3f5258';\n this.pie4 = this.pie4 || '#4f2f1b';\n this.pie5 = this.pie5 || '#6e0a0a';\n this.pie6 = this.pie6 || '#3b0048';\n this.pie7 = this.pie7 || '#995a01';\n this.pie8 = this.pie8 || '#154706';\n this.pie9 = this.pie9 || '#161722';\n this.pie10 = this.pie10 || '#00296f';\n this.pie11 = this.pie11 || '#01629c';\n this.pie12 = this.pie12 || '#010029';\n this.pieTitleTextSize = this.pieTitleTextSize || '25px';\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || '17px';\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || '17px';\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || 'black';\n this.pieStrokeWidth = this.pieStrokeWidth || '2px';\n this.pieOpacity = this.pieOpacity || '0.7';\n\n /* class */\n this.classText = this.primaryTextColor;\n\n /* requirement-diagram */\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground =\n this.relationLabelBackground ||\n (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n\n /* git */\n this.git0 = lighten(this.secondaryColor, 20);\n this.git1 = lighten(this.pie2 || this.secondaryColor, 20);\n this.git2 = lighten(this.pie3 || this.tertiaryColor, 20);\n this.git3 = lighten(this.pie4 || adjust(this.primaryColor, { h: -30 }), 20);\n this.git4 = lighten(this.pie5 || adjust(this.primaryColor, { h: -60 }), 20);\n this.git5 = lighten(this.pie6 || adjust(this.primaryColor, { h: -90 }), 10);\n this.git6 = lighten(this.pie7 || adjust(this.primaryColor, { h: +60 }), 10);\n this.git7 = lighten(this.pie8 || adjust(this.primaryColor, { h: +120 }), 20);\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || '10px';\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || '10px';\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = (userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n};\n","import { invert, lighten, rgba, adjust, darken } from 'khroma';\nimport { mkBorder } from './theme-helpers';\n\nclass Theme {\n constructor() {\n /* Base variables */\n this.background = '#f4f4f4';\n this.primaryColor = '#ECECFF';\n\n this.secondaryColor = adjust(this.primaryColor, { h: 120 });\n this.secondaryColor = '#ffffde';\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n // this.noteBorderColor = mkBorder(this.noteBkgColor, this.darkMode);\n\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n this.background = 'white';\n this.mainBkg = '#ECECFF';\n this.secondBkg = '#ffffde';\n this.lineColor = '#333333';\n this.border1 = '#9370DB';\n this.border2 = '#aaaa33';\n this.arrowheadColor = '#333333';\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = '16px';\n this.labelBackground = '#e8e8e8';\n this.textColor = '#333';\n\n /* Flowchart variables */\n\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = 'calculated';\n this.edgeLabelBackground = 'calculated';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'black';\n this.actorLineColor = 'grey';\n this.signalColor = 'calculated';\n this.signalTextColor = 'calculated';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = 'calculated';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = '#666';\n this.activationBkgColor = '#f4f4f4';\n this.sequenceNumberColor = 'white';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = 'calculated';\n this.altSectionBkgColor = 'calculated';\n this.sectionBkgColor2 = 'calculated';\n this.excludeBkgColor = '#eeeeee';\n this.taskBorderColor = 'calculated';\n this.taskBkgColor = 'calculated';\n this.taskTextLightColor = 'calculated';\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = 'calculated';\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.taskTextClickableColor = 'calculated';\n this.activeTaskBorderColor = 'calculated';\n this.activeTaskBkgColor = 'calculated';\n this.gridColor = 'calculated';\n this.doneTaskBkgColor = 'calculated';\n this.doneTaskBorderColor = 'calculated';\n this.critBorderColor = 'calculated';\n this.critBkgColor = 'calculated';\n this.todayLineColor = 'calculated';\n\n this.sectionBkgColor = rgba(102, 102, 255, 0.49);\n this.altSectionBkgColor = 'white';\n this.sectionBkgColor2 = '#fff400';\n this.taskBorderColor = '#534fbc';\n this.taskBkgColor = '#8a90dd';\n this.taskTextLightColor = 'white';\n this.taskTextColor = 'calculated';\n this.taskTextDarkColor = 'black';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = '#534fbc';\n this.activeTaskBkgColor = '#bfc7ff';\n this.gridColor = 'lightgrey';\n this.doneTaskBkgColor = 'lightgrey';\n this.doneTaskBorderColor = 'grey';\n this.critBorderColor = '#ff8888';\n this.critBkgColor = 'red';\n this.todayLineColor = 'red';\n\n /* C4 Context Diagram variables */\n\n this.personBorder = 'calculated';\n this.personBkg = 'calculated';\n\n /* state colors */\n this.labelColor = 'black';\n this.errorBkgColor = '#552222';\n this.errorTextColor = '#552222';\n this.updateColors();\n }\n updateColors() {\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1; // border 1\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.textColor;\n this.edgeLabelBackground = this.labelBackground;\n\n /* Sequence Diagram variables */\n\n // this.actorBorder = lighten(this.border1, 0.5);\n this.actorBorder = lighten(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.signalColor = this.textColor;\n this.signalTextColor = this.textColor;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n\n /* Gantt chart variables */\n\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n\n /* state colors */\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || '#f0f0f0';\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.specialStateColor = this.lineColor;\n\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n /* class */\n this.classText = this.primaryTextColor;\n /* journey */\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n\n /* pie */\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || adjust(this.tertiaryColor, { l: -40 });\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -20 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: +60, l: -20 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -40 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: -40 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: +60, l: -40 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -90, l: -40 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -30 });\n this.pieTitleTextSize = this.pieTitleTextSize || '25px';\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || '17px';\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || '17px';\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || 'black';\n this.pieStrokeWidth = this.pieStrokeWidth || '2px';\n this.pieOpacity = this.pieOpacity || '0.7';\n\n /* requirement-diagram */\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n\n /* git */\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust(this.primaryColor, { h: +60 });\n this.git7 = this.git7 || adjust(this.primaryColor, { h: +120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || darken(invert(this.git0), 25);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || '10px';\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || '10px';\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = (userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n};\n","import { darken, lighten, adjust, invert } from 'khroma';\nimport { mkBorder } from './theme-helpers';\nclass Theme {\n constructor() {\n /* Base vales */\n this.background = '#f4f4f4';\n this.primaryColor = '#cde498';\n this.secondaryColor = '#cdffb2';\n this.background = 'white';\n this.mainBkg = '#cde498';\n this.secondBkg = '#cdffb2';\n this.lineColor = 'green';\n this.border1 = '#13540c';\n this.border2 = '#6eaa49';\n this.arrowheadColor = 'green';\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = '16px';\n\n this.tertiaryColor = lighten('#cde498', 10);\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.primaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n /* Flowchart variables */\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = '#333';\n this.edgeLabelBackground = '#e8e8e8';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'black';\n this.actorLineColor = 'grey';\n this.signalColor = '#333';\n this.signalTextColor = '#333';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = '#326932';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = '#666';\n this.activationBkgColor = '#f4f4f4';\n this.sequenceNumberColor = 'white';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = '#6eaa49';\n this.altSectionBkgColor = 'white';\n this.sectionBkgColor2 = '#6eaa49';\n this.excludeBkgColor = '#eeeeee';\n this.taskBorderColor = 'calculated';\n this.taskBkgColor = '#487e3a';\n this.taskTextLightColor = 'white';\n this.taskTextColor = 'calculated';\n this.taskTextDarkColor = 'black';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = 'calculated';\n this.activeTaskBkgColor = 'calculated';\n this.gridColor = 'lightgrey';\n this.doneTaskBkgColor = 'lightgrey';\n this.doneTaskBorderColor = 'grey';\n this.critBorderColor = '#ff8888';\n this.critBkgColor = 'red';\n this.todayLineColor = 'red';\n\n /* C4 Context Diagram variables */\n\n this.personBorder = 'calculated';\n this.personBkg = 'calculated';\n\n /* state colors */\n this.labelColor = 'black';\n\n this.errorBkgColor = '#552222';\n this.errorTextColor = '#552222';\n }\n updateColors() {\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n\n /* Sequence Diagram variables */\n\n this.actorBorder = darken(this.mainBkg, 20);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n\n /* Gantt chart variables */\n\n this.taskBorderColor = this.border1;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n\n /* state colors */\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || '#f0f0f0';\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = this.lineColor;\n\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n /* class */\n this.classText = this.primaryTextColor;\n /* journey */\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n\n /* pie */\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -30 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { h: +40, l: -40 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: +60, l: -10 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: +60, l: -50 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -50 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -50 });\n this.pieTitleTextSize = this.pieTitleTextSize || '25px';\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || '17px';\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || '17px';\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || 'black';\n this.pieStrokeWidth = this.pieStrokeWidth || '2px';\n this.pieOpacity = this.pieOpacity || '0.7';\n\n /* requirement-diagram */\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n\n /* git */\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust(this.primaryColor, { h: +60 });\n this.git7 = this.git7 || adjust(this.primaryColor, { h: +120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || '10px';\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || '10px';\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = (userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n};\n","import { adjust } from 'khroma';\r\n\r\nexport const mkBorder = (col, darkMode) =>\r\n darkMode ? adjust(col, { s: -40, l: 10 }) : adjust(col, { s: -40, l: -10 });\r\n","import { invert, darken, lighten, adjust } from 'khroma';\nimport { mkBorder } from './theme-helpers';\n\n// const Color = require ( 'khroma/dist/color' ).default\n// Color.format.hex.stringify(Color.parse('hsl(210, 66.6666666667%, 95%)')); // => \"#EAF2FB\"\n\nclass Theme {\n constructor() {\n this.primaryColor = '#eee';\n this.contrast = '#707070';\n this.secondaryColor = lighten(this.contrast, 55);\n this.background = '#ffffff';\n\n // this.secondaryColor = adjust(this.primaryColor, { h: 120 });\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n // this.noteBorderColor = mkBorder(this.noteBkgColor, this.darkMode);\n\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n // this.altBackground = lighten(this.contrast, 55);\n this.mainBkg = '#eee';\n this.secondBkg = 'calculated';\n this.lineColor = '#666';\n this.border1 = '#999';\n this.border2 = 'calculated';\n this.note = '#ffa';\n this.text = '#333';\n this.critical = '#d42';\n this.done = '#bbb';\n this.arrowheadColor = '#333333';\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = '16px';\n\n /* Flowchart variables */\n\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = 'calculated';\n this.edgeLabelBackground = 'white';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'calculated';\n this.actorLineColor = 'calculated';\n this.signalColor = 'calculated';\n this.signalTextColor = 'calculated';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = 'calculated';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = 'calculated';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = '#666';\n this.activationBkgColor = '#f4f4f4';\n this.sequenceNumberColor = 'white';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = 'calculated';\n this.altSectionBkgColor = 'white';\n this.sectionBkgColor2 = 'calculated';\n this.excludeBkgColor = '#eeeeee';\n this.taskBorderColor = 'calculated';\n this.taskBkgColor = 'calculated';\n this.taskTextLightColor = 'white';\n this.taskTextColor = 'calculated';\n this.taskTextDarkColor = 'calculated';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = 'calculated';\n this.activeTaskBkgColor = 'calculated';\n this.gridColor = 'calculated';\n this.doneTaskBkgColor = 'calculated';\n this.doneTaskBorderColor = 'calculated';\n this.critBkgColor = 'calculated';\n this.critBorderColor = 'calculated';\n this.todayLineColor = 'calculated';\n\n /* C4 Context Diagram variables */\n\n this.personBorder = 'calculated';\n this.personBkg = 'calculated';\n\n /* state colors */\n this.labelColor = 'black';\n\n this.errorBkgColor = '#552222';\n this.errorTextColor = '#552222';\n }\n updateColors() {\n this.secondBkg = lighten(this.contrast, 55);\n this.border2 = this.contrast;\n\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.text;\n\n /* Sequence Diagram variables */\n\n this.actorBorder = lighten(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.text;\n this.actorLineColor = this.lineColor;\n this.signalColor = this.text;\n this.signalTextColor = this.text;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.text;\n this.loopTextColor = this.text;\n this.noteBorderColor = '#999';\n this.noteBkgColor = '#666';\n this.noteTextColor = '#fff';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = lighten(this.contrast, 30);\n this.sectionBkgColor2 = lighten(this.contrast, 30);\n\n this.taskBorderColor = darken(this.contrast, 10);\n\n this.taskBkgColor = this.contrast;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = this.text;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.gridColor = lighten(this.border1, 30);\n\n this.doneTaskBkgColor = this.done;\n this.doneTaskBorderColor = this.lineColor;\n this.critBkgColor = this.critical;\n this.critBorderColor = darken(this.critBkgColor, 10);\n\n this.todayLineColor = this.critBkgColor;\n\n /* state colors */\n this.transitionColor = this.transitionColor || '#000';\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || '#f4f4f4';\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.stateBorder = this.stateBorder || '#000';\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = '#222';\n\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n\n /* class */\n this.classText = this.primaryTextColor;\n /* journey */\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n\n // /* pie */\n this.pie1 = this.pie1 || '#F4F4F4';\n this.pie2 = this.pie2 || '#555';\n this.pie3 = this.pie3 || '#BBB';\n this.pie4 = this.pie4 || '#777';\n this.pie5 = this.pie5 || '#999';\n this.pie6 = this.pie6 || '#DDD';\n this.pie7 = this.pie7 || '#FFF';\n this.pie8 = this.pie8 || '#DDD';\n this.pie9 = this.pie9 || '#BBB';\n this.pie10 = this.pie10 || '#999';\n this.pie11 = this.pie11 || '#777';\n this.pie12 = this.pie12 || '#555';\n this.pieTitleTextSize = this.pieTitleTextSize || '25px';\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || '17px';\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || '17px';\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || 'black';\n this.pieStrokeWidth = this.pieStrokeWidth || '2px';\n this.pieOpacity = this.pieOpacity || '0.7';\n\n // this.pie1 = this.pie1 || '#212529';\n // this.pie2 = this.pie2 || '#343A40';\n // this.pie3 = this.pie3 || '#495057';\n // this.pie4 = this.pie4 || '#6C757D';\n // this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -10 });\n // this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -10 });\n // this.pie7 = this.pie7 || adjust(this.primaryColor, { h: +60, l: -10 });\n // this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });\n // this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });\n // this.pie10 = this.pie10 || adjust(this.primaryColor, { h: +60, l: -20 });\n // this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -20 });\n // this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -10 });\n\n /* requirement-diagram */\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n\n /* git */\n this.git0 = darken(this.pie1, 25) || this.primaryColor;\n this.git1 = this.pie2 || this.secondaryColor;\n this.git2 = this.pie3 || this.tertiaryColor;\n this.git3 = this.pie4 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.pie5 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.pie6 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.pie7 || adjust(this.primaryColor, { h: +60 });\n this.git7 = this.pie8 || adjust(this.primaryColor, { h: +120 });\n\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n\n this.branchLabelColor = this.branchLabelColor || this.labelTextColor;\n this.gitBranchLabel0 = this.branchLabelColor;\n this.gitBranchLabel1 = 'white';\n this.gitBranchLabel2 = this.branchLabelColor;\n this.gitBranchLabel3 = 'white';\n this.gitBranchLabel4 = this.branchLabelColor;\n this.gitBranchLabel5 = this.branchLabelColor;\n this.gitBranchLabel6 = this.branchLabelColor;\n this.gitBranchLabel7 = this.branchLabelColor;\n\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || '10px';\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || '10px';\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = (userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n};\n","import { sanitizeUrl } from '@braintree/sanitize-url';\nimport {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore,\n select,\n} from 'd3';\nimport common from './diagrams/common/common';\nimport { configKeys } from './defaultConfig';\nimport { log } from './logger';\nimport detectType from './diagram-api/detectType';\nimport assignWithDepth from './assignWithDepth';\n\n// Effectively an enum of the supported curve types, accessible by name\nconst d3CurveTypes = {\n curveBasis: curveBasis,\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveLinear: curveLinear,\n curveLinearClosed: curveLinearClosed,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore,\n};\nconst directive =\n /[%]{2}[{]\\s*(?:(?:(\\w+)\\s*:|(\\w+))\\s*(?:(?:(\\w+))|((?:(?![}][%]{2}).|\\r?\\n)*))?\\s*)(?:[}][%]{2})?/gi;\nconst directiveWithoutOpen =\n /\\s*(?:(?:(\\w+)(?=:):|(\\w+))\\s*(?:(?:(\\w+))|((?:(?![}][%]{2}).|\\r?\\n)*))?\\s*)(?:[}][%]{2})?/gi;\nconst anyComment = /\\s*%%.*\\n/gm;\n\n/**\n * @function detectInit Detects the init config object from the text\n *\n * ```mermaid\n * %%{init: {\"theme\": \"debug\", \"logLevel\": 1 }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * Or\n *\n * ```mermaid\n * %%{initialize: {\"theme\": \"dark\", logLevel: \"debug\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n * @param {string} text The text defining the graph\n * @param {any} cnf\n * @returns {object} The json object representing the init passed to mermaid.initialize()\n */\nexport const detectInit = function (text, cnf) {\n let inits = detectDirective(text, /(?:init\\b)|(?:initialize\\b)/);\n let results = {};\n\n if (Array.isArray(inits)) {\n let args = inits.map((init) => init.args);\n directiveSanitizer(args);\n\n results = assignWithDepth(results, [...args]);\n } else {\n results = inits.args;\n }\n if (results) {\n let type = detectType(text, cnf);\n ['config'].forEach((prop) => {\n if (typeof results[prop] !== 'undefined') {\n if (type === 'flowchart-v2') {\n type = 'flowchart';\n }\n results[type] = results[prop];\n delete results[prop];\n }\n });\n }\n\n // Todo: refactor this, these results are never used\n return results;\n};\n\n/**\n * @function detectDirective Detects the directive from the text. Text can be single line or\n * multiline. If type is null or omitted the first directive encountered in text will be returned\n *\n * ```mermaid\n * graph LR\n * %%{somedirective}%%\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n * @param {string} text The text defining the graph\n * @param {string | RegExp} type The directive to return (default: null)\n * @returns {object | Array} An object or Array representing the directive(s): { type: string, args:\n * object|null } matched by the input type if a single directive was found, that directive object\n * will be returned.\n */\nexport const detectDirective = function (text, type = null) {\n try {\n const commentWithoutDirectives = new RegExp(\n `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*\\n`,\n 'ig'\n );\n text = text.trim().replace(commentWithoutDirectives, '').replace(/'/gm, '\"');\n log.debug(\n `Detecting diagram directive${type !== null ? ' type:' + type : ''} based on the text:${text}`\n );\n let match,\n result = [];\n while ((match = directive.exec(text)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (match.index === directive.lastIndex) {\n directive.lastIndex++;\n }\n if (\n (match && !type) ||\n (type && match[1] && match[1].match(type)) ||\n (type && match[2] && match[2].match(type))\n ) {\n let type = match[1] ? match[1] : match[2];\n let args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;\n result.push({ type, args });\n }\n }\n if (result.length === 0) {\n result.push({ type: text, args: null });\n }\n\n return result.length === 1 ? result[0] : result;\n } catch (error) {\n log.error(\n `ERROR: ${error.message} - Unable to parse directive\n ${type !== null ? ' type:' + type : ''} based on the text:${text}`\n );\n return { type: null, args: null };\n }\n};\n\n/**\n * Caches results of functions based on input\n *\n * @param {Function} fn Function to run\n * @param {Function} resolver Function that resolves to an ID given arguments the `fn` takes\n * @returns {Function} An optimized caching function\n */\nconst memoize = (fn, resolver) => {\n let cache = {};\n return (...args) => {\n let n = resolver ? resolver.apply(this, args) : args[0];\n if (n in cache) {\n return cache[n];\n } else {\n let result = fn(...args);\n cache[n] = result;\n return result;\n }\n };\n};\n\n/**\n * @function isSubstringInArray Detects whether a substring in present in a given array\n * @param {string} str The substring to detect\n * @param {Array} arr The array to search\n * @returns {number} The array index containing the substring or -1 if not present\n */\nexport const isSubstringInArray = function (str, arr) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i].match(str)) return i;\n }\n return -1;\n};\n\n/**\n * Returns a d3 curve given a curve name\n *\n * @param {string | undefined} interpolate The interpolation name\n * @param {any} defaultCurve The default curve to return\n * @returns {import('d3-shape').CurveFactory} The curve factory to use\n */\nexport const interpolateToCurve = (interpolate, defaultCurve) => {\n if (!interpolate) {\n return defaultCurve;\n }\n const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;\n return d3CurveTypes[curveName] || defaultCurve;\n};\n\n/**\n * Formats a URL string\n *\n * @param {string} linkStr String of the URL\n * @param {{ securityLevel: string }} config Configuration passed to MermaidJS\n * @returns {string | undefined} The formatted URL\n */\nexport const formatUrl = (linkStr, config) => {\n let url = linkStr.trim();\n\n if (url) {\n if (config.securityLevel !== 'loose') {\n return sanitizeUrl(url);\n }\n\n return url;\n }\n};\n\n/**\n * Runs a function\n *\n * @param {string} functionName A dot seperated path to the function relative to the `window`\n * @param {...any} params Parameters to pass to the function\n */\nexport const runFunc = (functionName, ...params) => {\n const arrPaths = functionName.split('.');\n\n const len = arrPaths.length - 1;\n const fnName = arrPaths[len];\n\n let obj = window;\n for (let i = 0; i < len; i++) {\n obj = obj[arrPaths[i]];\n if (!obj) return;\n }\n\n obj[fnName](...params);\n};\n\n/**\n * @typedef {object} Point A (x, y) point\n * @property {number} x The x value\n * @property {number} y The y value\n */\n\n/**\n * Finds the distance between two points using the Distance Formula\n *\n * @param {Point} p1 The first point\n * @param {Point} p2 The second point\n * @returns {number} The distance\n */\nconst distance = (p1, p2) =>\n p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0;\n\n/**\n * @param {Point[]} points List of points\n * @returns {Point}\n * @todo Give this a description\n */\nconst traverseEdge = (points) => {\n let prevPoint;\n let totalDistance = 0;\n\n points.forEach((point) => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse half of total distance along points\n let remainingDistance = totalDistance / 2;\n let center = undefined;\n prevPoint = undefined;\n points.forEach((point) => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y,\n };\n }\n }\n }\n prevPoint = point;\n });\n return center;\n};\n\n/**\n * Alias for `traverseEdge`\n *\n * @param {Point[]} points List of points\n * @returns {Point} Return result of `transverseEdge`\n */\nconst calcLabelPosition = (points) => {\n if (points.length === 1) {\n return points[0];\n }\n return traverseEdge(points);\n};\n\nconst calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => {\n let prevPoint;\n let totalDistance = 0; // eslint-disable-line\n log.info('our points', points);\n if (points[0] !== initialPosition) {\n points = points.reverse();\n }\n points.forEach((point) => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse only 25 total distance along points to find cardinality point\n const distanceToCardinalityPoint = 25;\n\n let remainingDistance = distanceToCardinalityPoint;\n let center;\n prevPoint = undefined;\n points.forEach((point) => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y,\n };\n }\n }\n }\n prevPoint = point;\n });\n // if relation is present (Arrows will be added), change cardinality point off-set distance (d)\n let d = isRelationTypePresent ? 10 : 5;\n //Calculate Angle for x and y axis\n let angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n let cardinalityPosition = { x: 0, y: 0 };\n //Calculation cardinality position using angle, center point on the line/curve but pendicular and with offset-distance\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n return cardinalityPosition;\n};\n\n/**\n * Position ['start_left', 'start_right', 'end_left', 'end_right']\n *\n * @param {any} terminalMarkerSize\n * @param {any} position\n * @param {any} _points\n * @returns {any}\n */\nconst calcTerminalLabelPosition = (terminalMarkerSize, position, _points) => {\n // Todo looking to faster cloning method\n let points = JSON.parse(JSON.stringify(_points));\n let prevPoint;\n let totalDistance = 0; // eslint-disable-line\n log.info('our points', points);\n if (position !== 'start_left' && position !== 'start_right') {\n points = points.reverse();\n }\n\n points.forEach((point) => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse only 25 total distance along points to find cardinality point\n const distanceToCardinalityPoint = 25 + terminalMarkerSize;\n\n let remainingDistance = distanceToCardinalityPoint;\n let center;\n prevPoint = undefined;\n points.forEach((point) => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y,\n };\n }\n }\n }\n prevPoint = point;\n });\n // if relation is present (Arrows will be added), change cardinality point off-set distance (d)\n let d = 10 + terminalMarkerSize * 0.5;\n //Calculate Angle for x and y axis\n let angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n\n let cardinalityPosition = { x: 0, y: 0 };\n\n //Calculation cardinality position using angle, center point on the line/curve but pendicular and with offset-distance\n\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n if (position === 'start_left') {\n cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center.y) / 2;\n }\n if (position === 'end_right') {\n cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center.y) / 2 - 5;\n }\n if (position === 'end_left') {\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5;\n }\n return cardinalityPosition;\n};\n\n/**\n * Gets styles from an array of declarations\n *\n * @param {string[]} arr Declarations\n * @returns {{ style: string; labelStyle: string }} The styles grouped as strings\n */\nexport const getStylesFromArray = (arr) => {\n let style = '';\n let labelStyle = '';\n\n for (let i = 0; i < arr.length; i++) {\n if (typeof arr[i] !== 'undefined') {\n // add text properties to label style definition\n if (arr[i].startsWith('color:') || arr[i].startsWith('text-align:')) {\n labelStyle = labelStyle + arr[i] + ';';\n } else {\n style = style + arr[i] + ';';\n }\n }\n }\n\n return { style: style, labelStyle: labelStyle };\n};\n\nlet cnt = 0;\nexport const generateId = () => {\n cnt++;\n return 'id-' + Math.random().toString(36).substr(2, 12) + '-' + cnt;\n};\n\n/**\n * @param {any} length\n * @returns {any}\n */\nfunction makeid(length) {\n var result = '';\n var characters = '0123456789abcdef';\n var charactersLength = characters.length;\n for (var i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\n\nexport const random = (options) => {\n return makeid(options.length);\n};\n\nexport const getTextObj = function () {\n return {\n x: 0,\n y: 0,\n fill: undefined,\n anchor: 'start',\n style: '#666',\n width: 100,\n height: 100,\n textMargin: 0,\n rx: 0,\n ry: 0,\n valign: undefined,\n };\n};\n\n/**\n * Adds text to an element\n *\n * @param {SVGElement} elem Element to add text to\n * @param {{\n * text: string;\n * x: number;\n * y: number;\n * anchor: 'start' | 'middle' | 'end';\n * fontFamily: string;\n * fontSize: string | number;\n * fontWeight: string | number;\n * fill: string;\n * class: string | undefined;\n * textMargin: number;\n * }} textData\n * @returns {SVGTextElement} Text element with given styling and content\n */\nexport const drawSimpleText = function (elem, textData) {\n // Remove and ignore br:s\n const nText = textData.text.replace(common.lineBreakRegex, ' ');\n\n const textElem = elem.append('text');\n textElem.attr('x', textData.x);\n textElem.attr('y', textData.y);\n textElem.style('text-anchor', textData.anchor);\n textElem.style('font-family', textData.fontFamily);\n textElem.style('font-size', textData.fontSize);\n textElem.style('font-weight', textData.fontWeight);\n textElem.attr('fill', textData.fill);\n if (typeof textData.class !== 'undefined') {\n textElem.attr('class', textData.class);\n }\n\n const span = textElem.append('tspan');\n span.attr('x', textData.x + textData.textMargin * 2);\n span.attr('fill', textData.fill);\n span.text(nText);\n\n return textElem;\n};\n\nexport const wrapLabel = memoize(\n (label, maxWidth, config) => {\n if (!label) {\n return label;\n }\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', joinWith: '
' },\n config\n );\n if (common.lineBreakRegex.test(label)) {\n return label;\n }\n const words = label.split(' ');\n const completedLines = [];\n let nextLine = '';\n words.forEach((word, index) => {\n const wordLength = calculateTextWidth(`${word} `, config);\n const nextLineLength = calculateTextWidth(nextLine, config);\n if (wordLength > maxWidth) {\n const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, '-', config);\n completedLines.push(nextLine, ...hyphenatedStrings);\n nextLine = remainingWord;\n } else if (nextLineLength + wordLength >= maxWidth) {\n completedLines.push(nextLine);\n nextLine = word;\n } else {\n nextLine = [nextLine, word].filter(Boolean).join(' ');\n }\n const currentWord = index + 1;\n const isLastWord = currentWord === words.length;\n if (isLastWord) {\n completedLines.push(nextLine);\n }\n });\n return completedLines.filter((line) => line !== '').join(config.joinWith);\n },\n (label, maxWidth, config) =>\n `${label}-${maxWidth}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}-${config.joinWith}`\n);\n\nconst breakString = memoize(\n (word, maxWidth, hyphenCharacter = '-', config) => {\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', margin: 0 },\n config\n );\n const characters = word.split('');\n const lines = [];\n let currentLine = '';\n characters.forEach((character, index) => {\n const nextLine = `${currentLine}${character}`;\n const lineWidth = calculateTextWidth(nextLine, config);\n if (lineWidth >= maxWidth) {\n const currentCharacter = index + 1;\n const isLastLine = characters.length === currentCharacter;\n const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`;\n lines.push(isLastLine ? nextLine : hyphenatedNextLine);\n currentLine = '';\n } else {\n currentLine = nextLine;\n }\n });\n return { hyphenatedStrings: lines, remainingWord: currentLine };\n },\n (word, maxWidth, hyphenCharacter = '-', config) =>\n `${word}-${maxWidth}-${hyphenCharacter}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}`\n);\n\n/**\n * This calculates the text's height, taking into account the wrap breaks and both the statically\n * configured height, width, and the length of the text (in pixels).\n *\n * If the wrapped text text has greater height, we extend the height, so it's value won't overflow.\n *\n * @param {any} text The text to measure\n * @param {any} config - The config for fontSize, fontFamily, and fontWeight all impacting the resulting size\n * @returns {any} - The height for the given text\n */\nexport const calculateTextHeight = function (text, config) {\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', margin: 15 },\n config\n );\n return calculateTextDimensions(text, config).height;\n};\n\n/**\n * This calculates the width of the given text, font size and family.\n *\n * @param {any} text - The text to calculate the width of\n * @param {any} config - The config for fontSize, fontFamily, and fontWeight all impacting the resulting size\n * @returns {any} - The width for the given text\n */\nexport const calculateTextWidth = function (text, config) {\n config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: 'Arial' }, config);\n return calculateTextDimensions(text, config).width;\n};\n\n/**\n * This calculates the dimensions of the given text, font size, font family, font weight, and margins.\n *\n * @param {any} text - The text to calculate the width of\n * @param {any} config - The config for fontSize, fontFamily, fontWeight, and margin all impacting\n * the resulting size\n * @returns - The width for the given text\n */\nexport const calculateTextDimensions = memoize(\n function (text, config) {\n config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: 'Arial' }, config);\n const { fontSize, fontFamily, fontWeight } = config;\n if (!text) {\n return { width: 0, height: 0 };\n }\n\n // We can't really know if the user supplied font family will render on the user agent;\n // thus, we'll take the max width between the user supplied font family, and a default\n // of sans-serif.\n const fontFamilies = ['sans-serif', fontFamily];\n const lines = text.split(common.lineBreakRegex);\n let dims = [];\n\n const body = select('body');\n // We don't want to leak DOM elements - if a removal operation isn't available\n // for any reason, do not continue.\n if (!body.remove) {\n return { width: 0, height: 0, lineHeight: 0 };\n }\n\n const g = body.append('svg');\n\n for (let fontFamily of fontFamilies) {\n let cheight = 0;\n let dim = { width: 0, height: 0, lineHeight: 0 };\n for (let line of lines) {\n const textObj = getTextObj();\n textObj.text = line;\n const textElem = drawSimpleText(g, textObj)\n .style('font-size', fontSize)\n .style('font-weight', fontWeight)\n .style('font-family', fontFamily);\n\n let bBox = (textElem._groups || textElem)[0][0].getBBox();\n dim.width = Math.round(Math.max(dim.width, bBox.width));\n cheight = Math.round(bBox.height);\n dim.height += cheight;\n dim.lineHeight = Math.round(Math.max(dim.lineHeight, cheight));\n }\n dims.push(dim);\n }\n\n g.remove();\n\n let index =\n isNaN(dims[1].height) ||\n isNaN(dims[1].width) ||\n isNaN(dims[1].lineHeight) ||\n (dims[0].height > dims[1].height &&\n dims[0].width > dims[1].width &&\n dims[0].lineHeight > dims[1].lineHeight)\n ? 0\n : 1;\n return dims[index];\n },\n (text, config) => `${text}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}`\n);\n\n/**\n * Applys d3 attributes\n *\n * @param {any} d3Elem D3 Element to apply the attributes onto\n * @param {[string, string][]} attrs Object.keys equivalent format of key to value mapping of attributes\n */\nconst d3Attrs = function (d3Elem, attrs) {\n for (let attr of attrs) {\n d3Elem.attr(attr[0], attr[1]);\n }\n};\n\n/**\n * Gives attributes for an SVG's size given arguments\n *\n * @param {number} height The height of the SVG\n * @param {number} width The width of the SVG\n * @param {boolean} useMaxWidth Whether or not to use max-width and set width to 100%\n * @returns {Map<'height' | 'width' | 'style', string>} Attributes for the SVG\n */\nexport const calculateSvgSizeAttrs = function (height, width, useMaxWidth) {\n let attrs = new Map();\n attrs.set('height', height);\n if (useMaxWidth) {\n attrs.set('width', '100%');\n attrs.set('style', `max-width: ${width}px;`);\n } else {\n attrs.set('width', width);\n }\n return attrs;\n};\n\n/**\n * Applies attributes from `calculateSvgSizeAttrs`\n *\n * @param {SVGSVGElement} svgElem The SVG Element to configure\n * @param {number} height The height of the SVG\n * @param {number} width The width of the SVG\n * @param {boolean} useMaxWidth Whether or not to use max-width and set width to 100%\n */\nexport const configureSvgSize = function (svgElem, height, width, useMaxWidth) {\n const attrs = calculateSvgSizeAttrs(height, width, useMaxWidth);\n d3Attrs(svgElem, attrs);\n};\nexport const setupGraphViewbox = function (graph, svgElem, padding, useMaxWidth) {\n const svgBounds = svgElem.node().getBBox();\n const sWidth = svgBounds.width;\n const sHeight = svgBounds.height;\n\n let width = graph._label.width;\n let height = graph._label.height;\n let tx = 0;\n let ty = 0;\n if (sWidth > width) {\n tx = (sWidth - width) / 2 + padding;\n width = sWidth + padding * 2;\n } else {\n if (Math.abs(sWidth - width) >= 2 * padding + 1) {\n width = width - padding;\n }\n }\n if (sHeight > height) {\n ty = (sHeight - height) / 2 + padding;\n height = sHeight + padding * 2;\n }\n configureSvgSize(svgElem, height, width, useMaxWidth);\n\n // Ensure the viewBox includes the whole svgBounds area with extra space for padding\n const vBox = `0 0 ${width} ${height}`;\n log.debug(\n 'Graph.label',\n graph._label,\n 'swidth',\n sWidth,\n 'sheight',\n sHeight,\n 'width',\n width,\n 'height',\n height,\n 'tx',\n tx,\n 'ty',\n ty,\n 'vBox',\n vBox\n );\n svgElem.attr('viewBox', vBox);\n svgElem.select('g').attr('transform', `translate(${tx}, ${ty})`);\n};\n\nexport const initIdGenerator = class iterator {\n constructor(deterministic, seed) {\n this.deterministic = deterministic;\n this.seed = seed;\n\n this.count = seed ? seed.length : 0;\n }\n\n next() {\n if (!this.deterministic) return Date.now();\n\n return this.count++;\n }\n};\n\nlet decoder;\n\n/**\n * Decodes HTML, source: {@link https://github.com/shrpne/entity-decode/blob/v2.0.1/browser.js}\n *\n * @param {string} html HTML as a string\n * @returns Unescaped HTML\n */\nexport const entityDecode = function (html) {\n decoder = decoder || document.createElement('div');\n // Escape HTML before decoding for HTML Entities\n html = escape(html).replace(/%26/g, '&').replace(/%23/g, '#').replace(/%3B/g, ';');\n // decoding\n decoder.innerHTML = html;\n return unescape(decoder.textContent);\n};\n\n/**\n * Sanitizes directive objects\n *\n * @param {object} args Directive's JSON\n */\nexport const directiveSanitizer = (args) => {\n log.debug('directiveSanitizer called with', args);\n if (typeof args === 'object') {\n // check for array\n if (args.length) {\n args.forEach((arg) => directiveSanitizer(arg));\n } else {\n // This is an object\n Object.keys(args).forEach((key) => {\n log.debug('Checking key', key);\n if (key.indexOf('__') === 0) {\n log.debug('sanitize deleting __ option', key);\n delete args[key];\n }\n\n if (key.indexOf('proto') >= 0) {\n log.debug('sanitize deleting proto option', key);\n delete args[key];\n }\n\n if (key.indexOf('constr') >= 0) {\n log.debug('sanitize deleting constr option', key);\n delete args[key];\n }\n\n if (key.indexOf('themeCSS') >= 0) {\n log.debug('sanitizing themeCss option');\n args[key] = sanitizeCss(args[key]);\n }\n if (key.indexOf('fontFamily') >= 0) {\n log.debug('sanitizing fontFamily option');\n args[key] = sanitizeCss(args[key]);\n }\n if (key.indexOf('altFontFamily') >= 0) {\n log.debug('sanitizing altFontFamily option');\n args[key] = sanitizeCss(args[key]);\n }\n if (configKeys.indexOf(key) < 0) {\n log.debug('sanitize deleting option', key);\n delete args[key];\n } else {\n if (typeof args[key] === 'object') {\n log.debug('sanitize deleting object', key);\n directiveSanitizer(args[key]);\n }\n }\n });\n }\n }\n if (args.themeVariables) {\n const kArr = Object.keys(args.themeVariables);\n for (let i = 0; i < kArr.length; i++) {\n const k = kArr[i];\n const val = args.themeVariables[k];\n if (val && val.match && !val.match(/^[a-zA-Z0-9#,\";()%. ]+$/)) {\n args.themeVariables[k] = '';\n }\n }\n }\n log.debug('After sanitization', args);\n};\nexport const sanitizeCss = (str) => {\n let startCnt = 0;\n let endCnt = 0;\n\n for (let i = 0; i < str.length; i++) {\n if (startCnt < endCnt) {\n return '{ /* ERROR: Unbalanced CSS */ }';\n }\n if (str[i] === '{') {\n startCnt++;\n } else if (str[i] === '}') {\n endCnt++;\n }\n }\n if (startCnt !== endCnt) {\n return '{ /* ERROR: Unbalanced CSS */ }';\n }\n // Todo add more checks here\n return str;\n};\n\nexport default {\n assignWithDepth,\n wrapLabel,\n calculateTextHeight,\n calculateTextWidth,\n calculateTextDimensions,\n calculateSvgSizeAttrs,\n configureSvgSize,\n setupGraphViewbox,\n detectInit,\n detectDirective,\n isSubstringInArray,\n interpolateToCurve,\n calcLabelPosition,\n calcCardinalityPosition,\n calcTerminalLabelPosition,\n formatUrl,\n getStylesFromArray,\n generateId,\n random,\n memoize,\n runFunc,\n entityDecode,\n initIdGenerator: initIdGenerator,\n directiveSanitizer,\n sanitizeCss,\n};\n","/**\n * @license\n * Copyright (c) 2012-2013 Chris Pettitt\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nmodule.exports = {\n graphlib: require(\"./lib/graphlib\"),\n dagre: require(\"./lib/dagre\"),\n intersect: require(\"./lib/intersect\"),\n render: require(\"./lib/render\"),\n util: require(\"./lib/util\"),\n version: require(\"./lib/version\")\n};\n","var util = require(\"./util\");\n\nmodule.exports = {\n \"default\": normal,\n \"normal\": normal,\n \"vee\": vee,\n \"undirected\": undirected\n};\n\nfunction normal(parent, id, edge, type) {\n var marker = parent.append(\"marker\")\n .attr(\"id\", id)\n .attr(\"viewBox\", \"0 0 10 10\")\n .attr(\"refX\", 9)\n .attr(\"refY\", 5)\n .attr(\"markerUnits\", \"strokeWidth\")\n .attr(\"markerWidth\", 8)\n .attr(\"markerHeight\", 6)\n .attr(\"orient\", \"auto\");\n\n var path = marker.append(\"path\")\n .attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\")\n .style(\"stroke-width\", 1)\n .style(\"stroke-dasharray\", \"1,0\");\n util.applyStyle(path, edge[type + \"Style\"]);\n if (edge[type + \"Class\"]) {\n path.attr(\"class\", edge[type + \"Class\"]);\n }\n}\n\nfunction vee(parent, id, edge, type) {\n var marker = parent.append(\"marker\")\n .attr(\"id\", id)\n .attr(\"viewBox\", \"0 0 10 10\")\n .attr(\"refX\", 9)\n .attr(\"refY\", 5)\n .attr(\"markerUnits\", \"strokeWidth\")\n .attr(\"markerWidth\", 8)\n .attr(\"markerHeight\", 6)\n .attr(\"orient\", \"auto\");\n\n var path = marker.append(\"path\")\n .attr(\"d\", \"M 0 0 L 10 5 L 0 10 L 4 5 z\")\n .style(\"stroke-width\", 1)\n .style(\"stroke-dasharray\", \"1,0\");\n util.applyStyle(path, edge[type + \"Style\"]);\n if (edge[type + \"Class\"]) {\n path.attr(\"class\", edge[type + \"Class\"]);\n }\n}\n\nfunction undirected(parent, id, edge, type) {\n var marker = parent.append(\"marker\")\n .attr(\"id\", id)\n .attr(\"viewBox\", \"0 0 10 10\")\n .attr(\"refX\", 9)\n .attr(\"refY\", 5)\n .attr(\"markerUnits\", \"strokeWidth\")\n .attr(\"markerWidth\", 8)\n .attr(\"markerHeight\", 6)\n .attr(\"orient\", \"auto\");\n\n var path = marker.append(\"path\")\n .attr(\"d\", \"M 0 5 L 10 5\")\n .style(\"stroke-width\", 1)\n .style(\"stroke-dasharray\", \"1,0\");\n util.applyStyle(path, edge[type + \"Style\"]);\n if (edge[type + \"Class\"]) {\n path.attr(\"class\", edge[type + \"Class\"]);\n }\n}\n","var util = require(\"./util\");\nvar d3 = require(\"./d3\");\nvar addLabel = require(\"./label/add-label\");\n\nmodule.exports = createClusters;\n\nfunction createClusters(selection, g) {\n var clusters = g.nodes().filter(function(v) { return util.isSubgraph(g, v); });\n var svgClusters = selection.selectAll(\"g.cluster\")\n .data(clusters, function(v) { return v; });\n\n svgClusters.selectAll(\"*\").remove();\n svgClusters.enter().append(\"g\")\n .attr(\"class\", \"cluster\")\n .attr(\"id\",function(v){\n var node = g.node(v);\n return node.id;\n })\n .style(\"opacity\", 0);\n \n svgClusters = selection.selectAll(\"g.cluster\");\n\n util.applyTransition(svgClusters, g)\n .style(\"opacity\", 1);\n\n svgClusters.each(function(v) {\n var node = g.node(v);\n var thisGroup = d3.select(this);\n d3.select(this).append(\"rect\");\n var labelGroup = thisGroup.append(\"g\").attr(\"class\", \"label\");\n addLabel(labelGroup, node, node.clusterLabelPos);\n });\n\n svgClusters.selectAll(\"rect\").each(function(c) {\n var node = g.node(c);\n var domCluster = d3.select(this);\n util.applyStyle(domCluster, node.style);\n });\n\n var exitSelection;\n\n if (svgClusters.exit) {\n exitSelection = svgClusters.exit();\n } else {\n exitSelection = svgClusters.selectAll(null); // empty selection\n }\n\n util.applyTransition(exitSelection, g)\n .style(\"opacity\", 0)\n .remove();\n\n return svgClusters;\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar addLabel = require(\"./label/add-label\");\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\n\nmodule.exports = createEdgeLabels;\n\nfunction createEdgeLabels(selection, g) {\n var svgEdgeLabels = selection.selectAll(\"g.edgeLabel\")\n .data(g.edges(), function(e) { return util.edgeToId(e); })\n .classed(\"update\", true);\n\n svgEdgeLabels.exit().remove();\n svgEdgeLabels.enter().append(\"g\")\n .classed(\"edgeLabel\", true)\n .style(\"opacity\", 0);\n\n svgEdgeLabels = selection.selectAll(\"g.edgeLabel\");\n\n svgEdgeLabels.each(function(e) {\n var root = d3.select(this);\n root.select(\".label\").remove();\n var edge = g.edge(e);\n var label = addLabel(root, g.edge(e), 0, 0).classed(\"label\", true);\n var bbox = label.node().getBBox();\n\n if (edge.labelId) { label.attr(\"id\", edge.labelId); }\n if (!_.has(edge, \"width\")) { edge.width = bbox.width; }\n if (!_.has(edge, \"height\")) { edge.height = bbox.height; }\n });\n\n var exitSelection;\n\n if (svgEdgeLabels.exit) {\n exitSelection = svgEdgeLabels.exit();\n } else {\n exitSelection = svgEdgeLabels.selectAll(null); // empty selection\n }\n\n util.applyTransition(exitSelection, g)\n .style(\"opacity\", 0)\n .remove();\n\n return svgEdgeLabels;\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar intersectNode = require(\"./intersect/intersect-node\");\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\nmodule.exports = createEdgePaths;\n\nfunction createEdgePaths(selection, g, arrows) {\n var previousPaths = selection.selectAll(\"g.edgePath\")\n .data(g.edges(), function(e) { return util.edgeToId(e); })\n .classed(\"update\", true);\n\n var newPaths = enter(previousPaths, g);\n exit(previousPaths, g);\n\n var svgPaths = previousPaths.merge !== undefined ? previousPaths.merge(newPaths) : previousPaths;\n util.applyTransition(svgPaths, g)\n .style(\"opacity\", 1);\n\n // Save DOM element in the path group, and set ID and class\n svgPaths.each(function(e) {\n var domEdge = d3.select(this);\n var edge = g.edge(e);\n edge.elem = this;\n\n if (edge.id) {\n domEdge.attr(\"id\", edge.id);\n }\n\n util.applyClass(domEdge, edge[\"class\"],\n (domEdge.classed(\"update\") ? \"update \" : \"\") + \"edgePath\");\n });\n\n svgPaths.selectAll(\"path.path\")\n .each(function(e) {\n var edge = g.edge(e);\n edge.arrowheadId = _.uniqueId(\"arrowhead\");\n\n var domEdge = d3.select(this)\n .attr(\"marker-end\", function() {\n return \"url(\" + makeFragmentRef(location.href, edge.arrowheadId) + \")\";\n })\n .style(\"fill\", \"none\");\n\n util.applyTransition(domEdge, g)\n .attr(\"d\", function(e) { return calcPoints(g, e); });\n\n util.applyStyle(domEdge, edge.style);\n });\n\n svgPaths.selectAll(\"defs *\").remove();\n svgPaths.selectAll(\"defs\")\n .each(function(e) {\n var edge = g.edge(e);\n var arrowhead = arrows[edge.arrowhead];\n arrowhead(d3.select(this), edge.arrowheadId, edge, \"arrowhead\");\n });\n\n return svgPaths;\n}\n\nfunction makeFragmentRef(url, fragmentId) {\n var baseUrl = url.split(\"#\")[0];\n return baseUrl + \"#\" + fragmentId;\n}\n\nfunction calcPoints(g, e) {\n var edge = g.edge(e);\n var tail = g.node(e.v);\n var head = g.node(e.w);\n var points = edge.points.slice(1, edge.points.length - 1);\n points.unshift(intersectNode(tail, points[0]));\n points.push(intersectNode(head, points[points.length - 1]));\n\n return createLine(edge, points);\n}\n\nfunction createLine(edge, points) {\n var line = (d3.line || d3.svg.line)()\n .x(function(d) { return d.x; })\n .y(function(d) { return d.y; });\n \n (line.curve || line.interpolate)(edge.curve);\n\n return line(points);\n}\n\nfunction getCoords(elem) {\n var bbox = elem.getBBox();\n var matrix = elem.ownerSVGElement.getScreenCTM()\n .inverse()\n .multiply(elem.getScreenCTM())\n .translate(bbox.width / 2, bbox.height / 2);\n return { x: matrix.e, y: matrix.f };\n}\n\nfunction enter(svgPaths, g) {\n var svgPathsEnter = svgPaths.enter().append(\"g\")\n .attr(\"class\", \"edgePath\")\n .style(\"opacity\", 0);\n svgPathsEnter.append(\"path\")\n .attr(\"class\", \"path\")\n .attr(\"d\", function(e) {\n var edge = g.edge(e);\n var sourceElem = g.node(e.v).elem;\n var points = _.range(edge.points.length).map(function() { return getCoords(sourceElem); });\n return createLine(edge, points);\n });\n svgPathsEnter.append(\"defs\");\n return svgPathsEnter;\n}\n\nfunction exit(svgPaths, g) {\n var svgPathExit = svgPaths.exit();\n util.applyTransition(svgPathExit, g)\n .style(\"opacity\", 0)\n .remove();\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar addLabel = require(\"./label/add-label\");\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\n\nmodule.exports = createNodes;\n\nfunction createNodes(selection, g, shapes) {\n var simpleNodes = g.nodes().filter(function(v) { return !util.isSubgraph(g, v); });\n var svgNodes = selection.selectAll(\"g.node\")\n .data(simpleNodes, function(v) { return v; })\n .classed(\"update\", true);\n\n svgNodes.exit().remove();\n\n svgNodes.enter().append(\"g\")\n .attr(\"class\", \"node\")\n .style(\"opacity\", 0);\n\n svgNodes = selection.selectAll(\"g.node\"); \n\n svgNodes.each(function(v) {\n var node = g.node(v);\n var thisGroup = d3.select(this);\n util.applyClass(thisGroup, node[\"class\"],\n (thisGroup.classed(\"update\") ? \"update \" : \"\") + \"node\");\n\n thisGroup.select(\"g.label\").remove();\n var labelGroup = thisGroup.append(\"g\").attr(\"class\", \"label\");\n var labelDom = addLabel(labelGroup, node);\n var shape = shapes[node.shape];\n var bbox = _.pick(labelDom.node().getBBox(), \"width\", \"height\");\n\n node.elem = this;\n\n if (node.id) { thisGroup.attr(\"id\", node.id); }\n if (node.labelId) { labelGroup.attr(\"id\", node.labelId); }\n\n if (_.has(node, \"width\")) { bbox.width = node.width; }\n if (_.has(node, \"height\")) { bbox.height = node.height; }\n\n bbox.width += node.paddingLeft + node.paddingRight;\n bbox.height += node.paddingTop + node.paddingBottom;\n labelGroup.attr(\"transform\", \"translate(\" +\n ((node.paddingLeft - node.paddingRight) / 2) + \",\" +\n ((node.paddingTop - node.paddingBottom) / 2) + \")\");\n\n var root = d3.select(this);\n root.select(\".label-container\").remove();\n var shapeSvg = shape(root, bbox, node).classed(\"label-container\", true);\n util.applyStyle(shapeSvg, node.style);\n\n var shapeBBox = shapeSvg.node().getBBox();\n node.width = shapeBBox.width;\n node.height = shapeBBox.height;\n });\n\n var exitSelection;\n\n if (svgNodes.exit) {\n exitSelection = svgNodes.exit();\n } else {\n exitSelection = svgNodes.selectAll(null); // empty selection\n }\n\n util.applyTransition(exitSelection, g)\n .style(\"opacity\", 0)\n .remove();\n\n return svgNodes;\n}\n","// Stub to get D3 either via NPM or from the global object\nvar d3;\n\nif (!d3) {\n if (typeof require === \"function\") {\n try {\n d3 = require(\"d3\");\n }\n catch (e) {\n // continue regardless of error\n }\n }\n}\n\nif (!d3) {\n d3 = window.d3;\n}\n\nmodule.exports = d3;\n","/* global window */\n\nvar dagre;\n\nif (typeof require === \"function\") {\n try {\n dagre = require(\"dagre\");\n } catch (e) {\n // continue regardless of error\n }\n}\n\nif (!dagre) {\n dagre = window.dagre;\n}\n\nmodule.exports = dagre;\n","/* global window */\n\nvar graphlib;\n\nif (typeof require === \"function\") {\n try {\n graphlib = require(\"graphlib\");\n }\n catch (e) {\n // continue regardless of error\n }\n}\n\nif (!graphlib) {\n graphlib = window.graphlib;\n}\n\nmodule.exports = graphlib;\n","module.exports = {\n node: require(\"./intersect-node\"),\n circle: require(\"./intersect-circle\"),\n ellipse: require(\"./intersect-ellipse\"),\n polygon: require(\"./intersect-polygon\"),\n rect: require(\"./intersect-rect\")\n};\n","var intersectEllipse = require(\"./intersect-ellipse\");\n\nmodule.exports = intersectCircle;\n\nfunction intersectCircle(node, rx, point) {\n return intersectEllipse(node, rx, rx, point);\n}\n","module.exports = intersectEllipse;\n\nfunction intersectEllipse(node, rx, ry, point) {\n // Formulae from: http://mathworld.wolfram.com/Ellipse-LineIntersection.html\n\n var cx = node.x;\n var cy = node.y;\n\n var px = cx - point.x;\n var py = cy - point.y;\n\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n\n var dx = Math.abs(rx * ry * px / det);\n if (point.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs(rx * ry * py / det);\n if (point.y < cy) {\n dy = -dy;\n }\n\n return {x: cx + dx, y: cy + dy};\n}\n\n","module.exports = intersectLine;\n\n/*\n * Returns the point at which two lines, p and q, intersect or returns\n * undefined if they do not intersect.\n */\nfunction intersectLine(p1, p2, q1, q2) {\n // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994,\n // p7 and p473.\n\n var a1, a2, b1, b2, c1, c2;\n var r1, r2 , r3, r4;\n var denom, offset, num;\n var x, y;\n\n // Compute a1, b1, c1, where line joining points 1 and 2 is F(x,y) = a1 x +\n // b1 y + c1 = 0.\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = (p2.x * p1.y) - (p1.x * p2.y);\n\n // Compute r3 and r4.\n r3 = ((a1 * q1.x) + (b1 * q1.y) + c1);\n r4 = ((a1 * q2.x) + (b1 * q2.y) + c1);\n\n // Check signs of r3 and r4. If both point 3 and point 4 lie on\n // same side of line 1, the line segments do not intersect.\n if ((r3 !== 0) && (r4 !== 0) && sameSign(r3, r4)) {\n return /*DONT_INTERSECT*/;\n }\n\n // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = (q2.x * q1.y) - (q1.x * q2.y);\n\n // Compute r1 and r2\n r1 = (a2 * p1.x) + (b2 * p1.y) + c2;\n r2 = (a2 * p2.x) + (b2 * p2.y) + c2;\n\n // Check signs of r1 and r2. If both point 1 and point 2 lie\n // on same side of second line segment, the line segments do\n // not intersect.\n if ((r1 !== 0) && (r2 !== 0) && (sameSign(r1, r2))) {\n return /*DONT_INTERSECT*/;\n }\n\n // Line segments intersect: compute intersection point.\n denom = (a1 * b2) - (a2 * b1);\n if (denom === 0) {\n return /*COLLINEAR*/;\n }\n\n offset = Math.abs(denom / 2);\n\n // The denom/2 is to get rounding instead of truncating. It\n // is added or subtracted to the numerator, depending upon the\n // sign of the numerator.\n num = (b1 * c2) - (b2 * c1);\n x = (num < 0) ? ((num - offset) / denom) : ((num + offset) / denom);\n\n num = (a2 * c1) - (a1 * c2);\n y = (num < 0) ? ((num - offset) / denom) : ((num + offset) / denom);\n\n return { x: x, y: y };\n}\n\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n","module.exports = intersectNode;\n\nfunction intersectNode(node, point) {\n return node.intersect(point);\n}\n","/* eslint \"no-console\": off */\n\nvar intersectLine = require(\"./intersect-line\");\n\nmodule.exports = intersectPolygon;\n\n/*\n * Returns the point ({x, y}) at which the point argument intersects with the\n * node argument assuming that it has the shape specified by polygon.\n */\nfunction intersectPolygon(node, polyPoints, point) {\n var x1 = node.x;\n var y1 = node.y;\n\n var intersections = [];\n\n var minX = Number.POSITIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n polyPoints.forEach(function(entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n\n var left = x1 - node.width / 2 - minX;\n var top = y1 - node.height / 2 - minY;\n\n for (var i = 0; i < polyPoints.length; i++) {\n var p1 = polyPoints[i];\n var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n var intersect = intersectLine(node, point,\n {x: left + p1.x, y: top + p1.y}, {x: left + p2.x, y: top + p2.y});\n if (intersect) {\n intersections.push(intersect);\n }\n }\n\n if (!intersections.length) {\n console.log(\"NO INTERSECTION FOUND, RETURN NODE CENTER\", node);\n return node;\n }\n\n if (intersections.length > 1) {\n // More intersections, find the one nearest to edge end point\n intersections.sort(function(p, q) {\n var pdx = p.x - point.x;\n var pdy = p.y - point.y;\n var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n\n var qdx = q.x - point.x;\n var qdy = q.y - point.y;\n var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n\n return (distp < distq) ? -1 : (distp === distq ? 0 : 1);\n });\n }\n return intersections[0];\n}\n","module.exports = intersectRect;\n\nfunction intersectRect(node, point) {\n var x = node.x;\n var y = node.y;\n\n // Rectangle intersection algorithm from:\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n var dx = point.x - x;\n var dy = point.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n // Intersection is top or bottom of rect.\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : h * dx / dy;\n sy = h;\n } else {\n // Intersection is left or right of rect.\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : w * dy / dx;\n }\n\n return {x: x + sx, y: y + sy};\n}\n","var util = require(\"../util\");\n\nmodule.exports = addHtmlLabel;\n\nfunction addHtmlLabel(root, node) {\n var fo = root\n .append(\"foreignObject\")\n .attr(\"width\", \"100000\");\n\n var div = fo\n .append(\"xhtml:div\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n\n var label = node.label;\n switch(typeof label) {\n case \"function\":\n div.insert(label);\n break;\n case \"object\":\n // Currently we assume this is a DOM object.\n div.insert(function() { return label; });\n break;\n default: div.html(label);\n }\n\n util.applyStyle(div, node.labelStyle);\n div.style(\"display\", \"inline-block\");\n // Fix for firefox\n div.style(\"white-space\", \"nowrap\");\n\n var client = div.node().getBoundingClientRect();\n fo\n .attr(\"width\", client.width)\n .attr(\"height\", client.height); \n\n return fo;\n}\n","var addTextLabel = require(\"./add-text-label\");\nvar addHtmlLabel = require(\"./add-html-label\");\nvar addSVGLabel = require(\"./add-svg-label\");\n\nmodule.exports = addLabel;\n\nfunction addLabel(root, node, location) {\n var label = node.label;\n var labelSvg = root.append(\"g\");\n\n // Allow the label to be a string, a function that returns a DOM element, or\n // a DOM element itself.\n if (node.labelType === \"svg\") {\n addSVGLabel(labelSvg, node);\n } else if (typeof label !== \"string\" || node.labelType === \"html\") {\n addHtmlLabel(labelSvg, node);\n } else {\n addTextLabel(labelSvg, node);\n }\n\n var labelBBox = labelSvg.node().getBBox();\n var y;\n switch(location) {\n case \"top\":\n y = (-node.height / 2);\n break;\n case \"bottom\":\n y = (node.height / 2) - labelBBox.height;\n break;\n default:\n y = (-labelBBox.height / 2);\n }\n labelSvg.attr(\n \"transform\",\n \"translate(\" + (-labelBBox.width / 2) + \",\" + y + \")\");\n\n return labelSvg;\n}\n","var util = require(\"../util\");\n\nmodule.exports = addSVGLabel;\n\nfunction addSVGLabel(root, node) {\n var domNode = root;\n\n domNode.node().appendChild(node.label);\n\n util.applyStyle(domNode, node.labelStyle);\n\n return domNode;\n}\n","var util = require(\"../util\");\n\nmodule.exports = addTextLabel;\n\n/*\n * Attaches a text label to the specified root. Handles escape sequences.\n */\nfunction addTextLabel(root, node) {\n var domNode = root.append(\"text\");\n\n var lines = processEscapeSequences(node.label).split(\"\\n\");\n for (var i = 0; i < lines.length; i++) {\n domNode.append(\"tspan\")\n .attr(\"xml:space\", \"preserve\")\n .attr(\"dy\", \"1em\")\n .attr(\"x\", \"1\")\n .text(lines[i]);\n }\n\n util.applyStyle(domNode, node.labelStyle);\n\n return domNode;\n}\n\nfunction processEscapeSequences(text) {\n var newText = \"\";\n var escaped = false;\n var ch;\n for (var i = 0; i < text.length; ++i) {\n ch = text[i];\n if (escaped) {\n switch(ch) {\n case \"n\": newText += \"\\n\"; break;\n default: newText += ch;\n }\n escaped = false;\n } else if (ch === \"\\\\\") {\n escaped = true;\n } else {\n newText += ch;\n }\n }\n return newText;\n}\n","/* global window */\n\nvar lodash;\n\nif (typeof require === \"function\") {\n try {\n lodash = {\n defaults: require(\"lodash/defaults\"),\n each: require(\"lodash/each\"),\n isFunction: require(\"lodash/isFunction\"),\n isPlainObject: require(\"lodash/isPlainObject\"),\n pick: require(\"lodash/pick\"),\n has: require(\"lodash/has\"),\n range: require(\"lodash/range\"),\n uniqueId: require(\"lodash/uniqueId\")\n };\n }\n catch (e) {\n // continue regardless of error\n }\n}\n\nif (!lodash) {\n lodash = window._;\n}\n\nmodule.exports = lodash;\n","\"use strict\";\n\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\n\nmodule.exports = positionClusters;\n\nfunction positionClusters(selection, g) {\n var created = selection.filter(function() { return !d3.select(this).classed(\"update\"); });\n\n function translate(v) {\n var node = g.node(v);\n return \"translate(\" + node.x + \",\" + node.y + \")\";\n }\n\n created.attr(\"transform\", translate);\n\n util.applyTransition(selection, g)\n .style(\"opacity\", 1)\n .attr(\"transform\", translate);\n\n util.applyTransition(created.selectAll(\"rect\"), g)\n .attr(\"width\", function(v) { return g.node(v).width; })\n .attr(\"height\", function(v) { return g.node(v).height; })\n .attr(\"x\", function(v) {\n var node = g.node(v);\n return -node.width / 2;\n })\n .attr(\"y\", function(v) {\n var node = g.node(v);\n return -node.height / 2;\n });\n}\n","\"use strict\";\n\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\nvar _ = require(\"./lodash\");\n\nmodule.exports = positionEdgeLabels;\n\nfunction positionEdgeLabels(selection, g) {\n var created = selection.filter(function() { return !d3.select(this).classed(\"update\"); });\n\n function translate(e) {\n var edge = g.edge(e);\n return _.has(edge, \"x\") ? \"translate(\" + edge.x + \",\" + edge.y + \")\" : \"\";\n }\n\n created.attr(\"transform\", translate);\n\n util.applyTransition(selection, g)\n .style(\"opacity\", 1)\n .attr(\"transform\", translate);\n}\n","\"use strict\";\n\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\n\nmodule.exports = positionNodes;\n\nfunction positionNodes(selection, g) {\n var created = selection.filter(function() { return !d3.select(this).classed(\"update\"); });\n\n function translate(v) {\n var node = g.node(v);\n return \"translate(\" + node.x + \",\" + node.y + \")\";\n }\n\n created.attr(\"transform\", translate);\n\n util.applyTransition(selection, g)\n .style(\"opacity\", 1)\n .attr(\"transform\", translate);\n}\n","var _ = require(\"./lodash\");\nvar d3 = require(\"./d3\");\nvar layout = require(\"./dagre\").layout;\n\nmodule.exports = render;\n\n// This design is based on http://bost.ocks.org/mike/chart/.\nfunction render() {\n var createNodes = require(\"./create-nodes\");\n var createClusters = require(\"./create-clusters\");\n var createEdgeLabels = require(\"./create-edge-labels\");\n var createEdgePaths = require(\"./create-edge-paths\");\n var positionNodes = require(\"./position-nodes\");\n var positionEdgeLabels = require(\"./position-edge-labels\");\n var positionClusters = require(\"./position-clusters\");\n var shapes = require(\"./shapes\");\n var arrows = require(\"./arrows\");\n\n var fn = function(svg, g) {\n preProcessGraph(g);\n\n var outputGroup = createOrSelectGroup(svg, \"output\");\n var clustersGroup = createOrSelectGroup(outputGroup, \"clusters\");\n var edgePathsGroup = createOrSelectGroup(outputGroup, \"edgePaths\");\n var edgeLabels = createEdgeLabels(createOrSelectGroup(outputGroup, \"edgeLabels\"), g);\n var nodes = createNodes(createOrSelectGroup(outputGroup, \"nodes\"), g, shapes);\n\n layout(g);\n\n positionNodes(nodes, g);\n positionEdgeLabels(edgeLabels, g);\n createEdgePaths(edgePathsGroup, g, arrows);\n\n var clusters = createClusters(clustersGroup, g);\n positionClusters(clusters, g);\n\n postProcessGraph(g);\n };\n\n fn.createNodes = function(value) {\n if (!arguments.length) return createNodes;\n createNodes = value;\n return fn;\n };\n\n fn.createClusters = function(value) {\n if (!arguments.length) return createClusters;\n createClusters = value;\n return fn;\n };\n\n fn.createEdgeLabels = function(value) {\n if (!arguments.length) return createEdgeLabels;\n createEdgeLabels = value;\n return fn;\n };\n\n fn.createEdgePaths = function(value) {\n if (!arguments.length) return createEdgePaths;\n createEdgePaths = value;\n return fn;\n };\n\n fn.shapes = function(value) {\n if (!arguments.length) return shapes;\n shapes = value;\n return fn;\n };\n\n fn.arrows = function(value) {\n if (!arguments.length) return arrows;\n arrows = value;\n return fn;\n };\n\n return fn;\n}\n\nvar NODE_DEFAULT_ATTRS = {\n paddingLeft: 10,\n paddingRight: 10,\n paddingTop: 10,\n paddingBottom: 10,\n rx: 0,\n ry: 0,\n shape: \"rect\"\n};\n\nvar EDGE_DEFAULT_ATTRS = {\n arrowhead: \"normal\",\n curve: d3.curveLinear\n};\n\nfunction preProcessGraph(g) {\n g.nodes().forEach(function(v) {\n var node = g.node(v);\n if (!_.has(node, \"label\") && !g.children(v).length) { node.label = v; }\n\n if (_.has(node, \"paddingX\")) {\n _.defaults(node, {\n paddingLeft: node.paddingX,\n paddingRight: node.paddingX\n });\n }\n\n if (_.has(node, \"paddingY\")) {\n _.defaults(node, {\n paddingTop: node.paddingY,\n paddingBottom: node.paddingY\n });\n }\n\n if (_.has(node, \"padding\")) {\n _.defaults(node, {\n paddingLeft: node.padding,\n paddingRight: node.padding,\n paddingTop: node.padding,\n paddingBottom: node.padding\n });\n }\n\n _.defaults(node, NODE_DEFAULT_ATTRS);\n\n _.each([\"paddingLeft\", \"paddingRight\", \"paddingTop\", \"paddingBottom\"], function(k) {\n node[k] = Number(node[k]);\n });\n\n // Save dimensions for restore during post-processing\n if (_.has(node, \"width\")) { node._prevWidth = node.width; }\n if (_.has(node, \"height\")) { node._prevHeight = node.height; }\n });\n\n g.edges().forEach(function(e) {\n var edge = g.edge(e);\n if (!_.has(edge, \"label\")) { edge.label = \"\"; }\n _.defaults(edge, EDGE_DEFAULT_ATTRS);\n });\n}\n\nfunction postProcessGraph(g) {\n _.each(g.nodes(), function(v) {\n var node = g.node(v);\n\n // Restore original dimensions\n if (_.has(node, \"_prevWidth\")) {\n node.width = node._prevWidth;\n } else {\n delete node.width;\n }\n\n if (_.has(node, \"_prevHeight\")) {\n node.height = node._prevHeight;\n } else {\n delete node.height;\n }\n\n delete node._prevWidth;\n delete node._prevHeight;\n });\n}\n\nfunction createOrSelectGroup(root, name) {\n var selection = root.select(\"g.\" + name);\n if (selection.empty()) {\n selection = root.append(\"g\").attr(\"class\", name);\n }\n return selection;\n}\n","\"use strict\";\n\nvar intersectRect = require(\"./intersect/intersect-rect\");\nvar intersectEllipse = require(\"./intersect/intersect-ellipse\");\nvar intersectCircle = require(\"./intersect/intersect-circle\");\nvar intersectPolygon = require(\"./intersect/intersect-polygon\");\n\nmodule.exports = {\n rect: rect,\n ellipse: ellipse,\n circle: circle,\n diamond: diamond\n};\n\nfunction rect(parent, bbox, node) {\n var shapeSvg = parent.insert(\"rect\", \":first-child\")\n .attr(\"rx\", node.rx)\n .attr(\"ry\", node.ry)\n .attr(\"x\", -bbox.width / 2)\n .attr(\"y\", -bbox.height / 2)\n .attr(\"width\", bbox.width)\n .attr(\"height\", bbox.height);\n\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n}\n\nfunction ellipse(parent, bbox, node) {\n var rx = bbox.width / 2;\n var ry = bbox.height / 2;\n var shapeSvg = parent.insert(\"ellipse\", \":first-child\")\n .attr(\"x\", -bbox.width / 2)\n .attr(\"y\", -bbox.height / 2)\n .attr(\"rx\", rx)\n .attr(\"ry\", ry);\n\n node.intersect = function(point) {\n return intersectEllipse(node, rx, ry, point);\n };\n\n return shapeSvg;\n}\n\nfunction circle(parent, bbox, node) {\n var r = Math.max(bbox.width, bbox.height) / 2;\n var shapeSvg = parent.insert(\"circle\", \":first-child\")\n .attr(\"x\", -bbox.width / 2)\n .attr(\"y\", -bbox.height / 2)\n .attr(\"r\", r);\n\n node.intersect = function(point) {\n return intersectCircle(node, r, point);\n };\n\n return shapeSvg;\n}\n\n// Circumscribe an ellipse for the bounding box with a diamond shape. I derived\n// the function to calculate the diamond shape from:\n// http://mathforum.org/kb/message.jspa?messageID=3750236\nfunction diamond(parent, bbox, node) {\n var w = (bbox.width * Math.SQRT2) / 2;\n var h = (bbox.height * Math.SQRT2) / 2;\n var points = [\n { x: 0, y: -h },\n { x: -w, y: 0 },\n { x: 0, y: h },\n { x: w, y: 0 }\n ];\n var shapeSvg = parent.insert(\"polygon\", \":first-child\")\n .attr(\"points\", points.map(function(p) { return p.x + \",\" + p.y; }).join(\" \"));\n\n node.intersect = function(p) {\n return intersectPolygon(node, points, p);\n };\n\n return shapeSvg;\n}\n","var _ = require(\"./lodash\");\n\n// Public utility functions\nmodule.exports = {\n isSubgraph: isSubgraph,\n edgeToId: edgeToId,\n applyStyle: applyStyle,\n applyClass: applyClass,\n applyTransition: applyTransition\n};\n\n/*\n * Returns true if the specified node in the graph is a subgraph node. A\n * subgraph node is one that contains other nodes.\n */\nfunction isSubgraph(g, v) {\n return !!g.children(v).length;\n}\n\nfunction edgeToId(e) {\n return escapeId(e.v) + \":\" + escapeId(e.w) + \":\" + escapeId(e.name);\n}\n\nvar ID_DELIM = /:/g;\nfunction escapeId(str) {\n return str ? String(str).replace(ID_DELIM, \"\\\\:\") : \"\";\n}\n\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\n\nfunction applyClass(dom, classFn, otherClasses) {\n if (classFn) {\n dom\n .attr(\"class\", classFn)\n .attr(\"class\", otherClasses + \" \" + dom.attr(\"class\"));\n }\n}\n\nfunction applyTransition(selection, g) {\n var graph = g.graph();\n\n if (_.isPlainObject(graph)) {\n var transition = graph.transition;\n if (_.isFunction(transition)) {\n return transition(selection);\n }\n }\n\n return selection;\n}\n","module.exports = \"0.6.4\";\n","/*\nCopyright (c) 2012-2014 Chris Pettitt\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nmodule.exports = {\n graphlib: require(\"./lib/graphlib\"),\n\n layout: require(\"./lib/layout\"),\n debug: require(\"./lib/debug\"),\n util: {\n time: require(\"./lib/util\").time,\n notime: require(\"./lib/util\").notime\n },\n version: require(\"./lib/version\")\n};\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar greedyFAS = require(\"./greedy-fas\");\n\nmodule.exports = {\n run: run,\n undo: undo\n};\n\nfunction run(g) {\n var fas = (g.graph().acyclicer === \"greedy\"\n ? greedyFAS(g, weightFn(g))\n : dfsFAS(g));\n _.forEach(fas, function(e) {\n var label = g.edge(e);\n g.removeEdge(e);\n label.forwardName = e.name;\n label.reversed = true;\n g.setEdge(e.w, e.v, label, _.uniqueId(\"rev\"));\n });\n\n function weightFn(g) {\n return function(e) {\n return g.edge(e).weight;\n };\n }\n}\n\nfunction dfsFAS(g) {\n var fas = [];\n var stack = {};\n var visited = {};\n\n function dfs(v) {\n if (_.has(visited, v)) {\n return;\n }\n visited[v] = true;\n stack[v] = true;\n _.forEach(g.outEdges(v), function(e) {\n if (_.has(stack, e.w)) {\n fas.push(e);\n } else {\n dfs(e.w);\n }\n });\n delete stack[v];\n }\n\n _.forEach(g.nodes(), dfs);\n return fas;\n}\n\nfunction undo(g) {\n _.forEach(g.edges(), function(e) {\n var label = g.edge(e);\n if (label.reversed) {\n g.removeEdge(e);\n\n var forwardName = label.forwardName;\n delete label.reversed;\n delete label.forwardName;\n g.setEdge(e.w, e.v, label, forwardName);\n }\n });\n}\n","var _ = require(\"./lodash\");\nvar util = require(\"./util\");\n\nmodule.exports = addBorderSegments;\n\nfunction addBorderSegments(g) {\n function dfs(v) {\n var children = g.children(v);\n var node = g.node(v);\n if (children.length) {\n _.forEach(children, dfs);\n }\n\n if (_.has(node, \"minRank\")) {\n node.borderLeft = [];\n node.borderRight = [];\n for (var rank = node.minRank, maxRank = node.maxRank + 1;\n rank < maxRank;\n ++rank) {\n addBorderNode(g, \"borderLeft\", \"_bl\", v, node, rank);\n addBorderNode(g, \"borderRight\", \"_br\", v, node, rank);\n }\n }\n }\n\n _.forEach(g.children(), dfs);\n}\n\nfunction addBorderNode(g, prop, prefix, sg, sgNode, rank) {\n var label = { width: 0, height: 0, rank: rank, borderType: prop };\n var prev = sgNode[prop][rank - 1];\n var curr = util.addDummyNode(g, \"border\", label, prefix);\n sgNode[prop][rank] = curr;\n g.setParent(curr, sg);\n if (prev) {\n g.setEdge(prev, curr, { weight: 1 });\n }\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\n\nmodule.exports = {\n adjust: adjust,\n undo: undo\n};\n\nfunction adjust(g) {\n var rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === \"lr\" || rankDir === \"rl\") {\n swapWidthHeight(g);\n }\n}\n\nfunction undo(g) {\n var rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === \"bt\" || rankDir === \"rl\") {\n reverseY(g);\n }\n\n if (rankDir === \"lr\" || rankDir === \"rl\") {\n swapXY(g);\n swapWidthHeight(g);\n }\n}\n\nfunction swapWidthHeight(g) {\n _.forEach(g.nodes(), function(v) { swapWidthHeightOne(g.node(v)); });\n _.forEach(g.edges(), function(e) { swapWidthHeightOne(g.edge(e)); });\n}\n\nfunction swapWidthHeightOne(attrs) {\n var w = attrs.width;\n attrs.width = attrs.height;\n attrs.height = w;\n}\n\nfunction reverseY(g) {\n _.forEach(g.nodes(), function(v) { reverseYOne(g.node(v)); });\n\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n _.forEach(edge.points, reverseYOne);\n if (_.has(edge, \"y\")) {\n reverseYOne(edge);\n }\n });\n}\n\nfunction reverseYOne(attrs) {\n attrs.y = -attrs.y;\n}\n\nfunction swapXY(g) {\n _.forEach(g.nodes(), function(v) { swapXYOne(g.node(v)); });\n\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n _.forEach(edge.points, swapXYOne);\n if (_.has(edge, \"x\")) {\n swapXYOne(edge);\n }\n });\n}\n\nfunction swapXYOne(attrs) {\n var x = attrs.x;\n attrs.x = attrs.y;\n attrs.y = x;\n}\n","/*\n * Simple doubly linked list implementation derived from Cormen, et al.,\n * \"Introduction to Algorithms\".\n */\n\nmodule.exports = List;\n\nfunction List() {\n var sentinel = {};\n sentinel._next = sentinel._prev = sentinel;\n this._sentinel = sentinel;\n}\n\nList.prototype.dequeue = function() {\n var sentinel = this._sentinel;\n var entry = sentinel._prev;\n if (entry !== sentinel) {\n unlink(entry);\n return entry;\n }\n};\n\nList.prototype.enqueue = function(entry) {\n var sentinel = this._sentinel;\n if (entry._prev && entry._next) {\n unlink(entry);\n }\n entry._next = sentinel._next;\n sentinel._next._prev = entry;\n sentinel._next = entry;\n entry._prev = sentinel;\n};\n\nList.prototype.toString = function() {\n var strs = [];\n var sentinel = this._sentinel;\n var curr = sentinel._prev;\n while (curr !== sentinel) {\n strs.push(JSON.stringify(curr, filterOutLinks));\n curr = curr._prev;\n }\n return \"[\" + strs.join(\", \") + \"]\";\n};\n\nfunction unlink(entry) {\n entry._prev._next = entry._next;\n entry._next._prev = entry._prev;\n delete entry._next;\n delete entry._prev;\n}\n\nfunction filterOutLinks(k, v) {\n if (k !== \"_next\" && k !== \"_prev\") {\n return v;\n }\n}\n","var _ = require(\"./lodash\");\nvar util = require(\"./util\");\nvar Graph = require(\"./graphlib\").Graph;\n\nmodule.exports = {\n debugOrdering: debugOrdering\n};\n\n/* istanbul ignore next */\nfunction debugOrdering(g) {\n var layerMatrix = util.buildLayerMatrix(g);\n\n var h = new Graph({ compound: true, multigraph: true }).setGraph({});\n\n _.forEach(g.nodes(), function(v) {\n h.setNode(v, { label: v });\n h.setParent(v, \"layer\" + g.node(v).rank);\n });\n\n _.forEach(g.edges(), function(e) {\n h.setEdge(e.v, e.w, {}, e.name);\n });\n\n _.forEach(layerMatrix, function(layer, i) {\n var layerV = \"layer\" + i;\n h.setNode(layerV, { rank: \"same\" });\n _.reduce(layer, function(u, v) {\n h.setEdge(u, v, { style: \"invis\" });\n return v;\n });\n });\n\n return h;\n}\n","/* global window */\n\nvar graphlib;\n\nif (typeof require === \"function\") {\n try {\n graphlib = require(\"graphlib\");\n } catch (e) {\n // continue regardless of error\n }\n}\n\nif (!graphlib) {\n graphlib = window.graphlib;\n}\n\nmodule.exports = graphlib;\n","var _ = require(\"./lodash\");\nvar Graph = require(\"./graphlib\").Graph;\nvar List = require(\"./data/list\");\n\n/*\n * A greedy heuristic for finding a feedback arc set for a graph. A feedback\n * arc set is a set of edges that can be removed to make a graph acyclic.\n * The algorithm comes from: P. Eades, X. Lin, and W. F. Smyth, \"A fast and\n * effective heuristic for the feedback arc set problem.\" This implementation\n * adjusts that from the paper to allow for weighted edges.\n */\nmodule.exports = greedyFAS;\n\nvar DEFAULT_WEIGHT_FN = _.constant(1);\n\nfunction greedyFAS(g, weightFn) {\n if (g.nodeCount() <= 1) {\n return [];\n }\n var state = buildState(g, weightFn || DEFAULT_WEIGHT_FN);\n var results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx);\n\n // Expand multi-edges\n return _.flatten(_.map(results, function(e) {\n return g.outEdges(e.v, e.w);\n }), true);\n}\n\nfunction doGreedyFAS(g, buckets, zeroIdx) {\n var results = [];\n var sources = buckets[buckets.length - 1];\n var sinks = buckets[0];\n\n var entry;\n while (g.nodeCount()) {\n while ((entry = sinks.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }\n while ((entry = sources.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }\n if (g.nodeCount()) {\n for (var i = buckets.length - 2; i > 0; --i) {\n entry = buckets[i].dequeue();\n if (entry) {\n results = results.concat(removeNode(g, buckets, zeroIdx, entry, true));\n break;\n }\n }\n }\n }\n\n return results;\n}\n\nfunction removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {\n var results = collectPredecessors ? [] : undefined;\n\n _.forEach(g.inEdges(entry.v), function(edge) {\n var weight = g.edge(edge);\n var uEntry = g.node(edge.v);\n\n if (collectPredecessors) {\n results.push({ v: edge.v, w: edge.w });\n }\n\n uEntry.out -= weight;\n assignBucket(buckets, zeroIdx, uEntry);\n });\n\n _.forEach(g.outEdges(entry.v), function(edge) {\n var weight = g.edge(edge);\n var w = edge.w;\n var wEntry = g.node(w);\n wEntry[\"in\"] -= weight;\n assignBucket(buckets, zeroIdx, wEntry);\n });\n\n g.removeNode(entry.v);\n\n return results;\n}\n\nfunction buildState(g, weightFn) {\n var fasGraph = new Graph();\n var maxIn = 0;\n var maxOut = 0;\n\n _.forEach(g.nodes(), function(v) {\n fasGraph.setNode(v, { v: v, \"in\": 0, out: 0 });\n });\n\n // Aggregate weights on nodes, but also sum the weights across multi-edges\n // into a single edge for the fasGraph.\n _.forEach(g.edges(), function(e) {\n var prevWeight = fasGraph.edge(e.v, e.w) || 0;\n var weight = weightFn(e);\n var edgeWeight = prevWeight + weight;\n fasGraph.setEdge(e.v, e.w, edgeWeight);\n maxOut = Math.max(maxOut, fasGraph.node(e.v).out += weight);\n maxIn = Math.max(maxIn, fasGraph.node(e.w)[\"in\"] += weight);\n });\n\n var buckets = _.range(maxOut + maxIn + 3).map(function() { return new List(); });\n var zeroIdx = maxIn + 1;\n\n _.forEach(fasGraph.nodes(), function(v) {\n assignBucket(buckets, zeroIdx, fasGraph.node(v));\n });\n\n return { graph: fasGraph, buckets: buckets, zeroIdx: zeroIdx };\n}\n\nfunction assignBucket(buckets, zeroIdx, entry) {\n if (!entry.out) {\n buckets[0].enqueue(entry);\n } else if (!entry[\"in\"]) {\n buckets[buckets.length - 1].enqueue(entry);\n } else {\n buckets[entry.out - entry[\"in\"] + zeroIdx].enqueue(entry);\n }\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar acyclic = require(\"./acyclic\");\nvar normalize = require(\"./normalize\");\nvar rank = require(\"./rank\");\nvar normalizeRanks = require(\"./util\").normalizeRanks;\nvar parentDummyChains = require(\"./parent-dummy-chains\");\nvar removeEmptyRanks = require(\"./util\").removeEmptyRanks;\nvar nestingGraph = require(\"./nesting-graph\");\nvar addBorderSegments = require(\"./add-border-segments\");\nvar coordinateSystem = require(\"./coordinate-system\");\nvar order = require(\"./order\");\nvar position = require(\"./position\");\nvar util = require(\"./util\");\nvar Graph = require(\"./graphlib\").Graph;\n\nmodule.exports = layout;\n\nfunction layout(g, opts) {\n var time = opts && opts.debugTiming ? util.time : util.notime;\n time(\"layout\", function() {\n var layoutGraph = \n time(\" buildLayoutGraph\", function() { return buildLayoutGraph(g); });\n time(\" runLayout\", function() { runLayout(layoutGraph, time); });\n time(\" updateInputGraph\", function() { updateInputGraph(g, layoutGraph); });\n });\n}\n\nfunction runLayout(g, time) {\n time(\" makeSpaceForEdgeLabels\", function() { makeSpaceForEdgeLabels(g); });\n time(\" removeSelfEdges\", function() { removeSelfEdges(g); });\n time(\" acyclic\", function() { acyclic.run(g); });\n time(\" nestingGraph.run\", function() { nestingGraph.run(g); });\n time(\" rank\", function() { rank(util.asNonCompoundGraph(g)); });\n time(\" injectEdgeLabelProxies\", function() { injectEdgeLabelProxies(g); });\n time(\" removeEmptyRanks\", function() { removeEmptyRanks(g); });\n time(\" nestingGraph.cleanup\", function() { nestingGraph.cleanup(g); });\n time(\" normalizeRanks\", function() { normalizeRanks(g); });\n time(\" assignRankMinMax\", function() { assignRankMinMax(g); });\n time(\" removeEdgeLabelProxies\", function() { removeEdgeLabelProxies(g); });\n time(\" normalize.run\", function() { normalize.run(g); });\n time(\" parentDummyChains\", function() { parentDummyChains(g); });\n time(\" addBorderSegments\", function() { addBorderSegments(g); });\n time(\" order\", function() { order(g); });\n time(\" insertSelfEdges\", function() { insertSelfEdges(g); });\n time(\" adjustCoordinateSystem\", function() { coordinateSystem.adjust(g); });\n time(\" position\", function() { position(g); });\n time(\" positionSelfEdges\", function() { positionSelfEdges(g); });\n time(\" removeBorderNodes\", function() { removeBorderNodes(g); });\n time(\" normalize.undo\", function() { normalize.undo(g); });\n time(\" fixupEdgeLabelCoords\", function() { fixupEdgeLabelCoords(g); });\n time(\" undoCoordinateSystem\", function() { coordinateSystem.undo(g); });\n time(\" translateGraph\", function() { translateGraph(g); });\n time(\" assignNodeIntersects\", function() { assignNodeIntersects(g); });\n time(\" reversePoints\", function() { reversePointsForReversedEdges(g); });\n time(\" acyclic.undo\", function() { acyclic.undo(g); });\n}\n\n/*\n * Copies final layout information from the layout graph back to the input\n * graph. This process only copies whitelisted attributes from the layout graph\n * to the input graph, so it serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction updateInputGraph(inputGraph, layoutGraph) {\n _.forEach(inputGraph.nodes(), function(v) {\n var inputLabel = inputGraph.node(v);\n var layoutLabel = layoutGraph.node(v);\n\n if (inputLabel) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n\n if (layoutGraph.children(v).length) {\n inputLabel.width = layoutLabel.width;\n inputLabel.height = layoutLabel.height;\n }\n }\n });\n\n _.forEach(inputGraph.edges(), function(e) {\n var inputLabel = inputGraph.edge(e);\n var layoutLabel = layoutGraph.edge(e);\n\n inputLabel.points = layoutLabel.points;\n if (_.has(layoutLabel, \"x\")) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n }\n });\n\n inputGraph.graph().width = layoutGraph.graph().width;\n inputGraph.graph().height = layoutGraph.graph().height;\n}\n\nvar graphNumAttrs = [\"nodesep\", \"edgesep\", \"ranksep\", \"marginx\", \"marginy\"];\nvar graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: \"tb\" };\nvar graphAttrs = [\"acyclicer\", \"ranker\", \"rankdir\", \"align\"];\nvar nodeNumAttrs = [\"width\", \"height\"];\nvar nodeDefaults = { width: 0, height: 0 };\nvar edgeNumAttrs = [\"minlen\", \"weight\", \"width\", \"height\", \"labeloffset\"];\nvar edgeDefaults = {\n minlen: 1, weight: 1, width: 0, height: 0,\n labeloffset: 10, labelpos: \"r\"\n};\nvar edgeAttrs = [\"labelpos\"];\n\n/*\n * Constructs a new graph from the input graph, which can be used for layout.\n * This process copies only whitelisted attributes from the input graph to the\n * layout graph. Thus this function serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction buildLayoutGraph(inputGraph) {\n var g = new Graph({ multigraph: true, compound: true });\n var graph = canonicalize(inputGraph.graph());\n\n g.setGraph(_.merge({},\n graphDefaults,\n selectNumberAttrs(graph, graphNumAttrs),\n _.pick(graph, graphAttrs)));\n\n _.forEach(inputGraph.nodes(), function(v) {\n var node = canonicalize(inputGraph.node(v));\n g.setNode(v, _.defaults(selectNumberAttrs(node, nodeNumAttrs), nodeDefaults));\n g.setParent(v, inputGraph.parent(v));\n });\n\n _.forEach(inputGraph.edges(), function(e) {\n var edge = canonicalize(inputGraph.edge(e));\n g.setEdge(e, _.merge({},\n edgeDefaults,\n selectNumberAttrs(edge, edgeNumAttrs),\n _.pick(edge, edgeAttrs)));\n });\n\n return g;\n}\n\n/*\n * This idea comes from the Gansner paper: to account for edge labels in our\n * layout we split each rank in half by doubling minlen and halving ranksep.\n * Then we can place labels at these mid-points between nodes.\n *\n * We also add some minimal padding to the width to push the label for the edge\n * away from the edge itself a bit.\n */\nfunction makeSpaceForEdgeLabels(g) {\n var graph = g.graph();\n graph.ranksep /= 2;\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n edge.minlen *= 2;\n if (edge.labelpos.toLowerCase() !== \"c\") {\n if (graph.rankdir === \"TB\" || graph.rankdir === \"BT\") {\n edge.width += edge.labeloffset;\n } else {\n edge.height += edge.labeloffset;\n }\n }\n });\n}\n\n/*\n * Creates temporary dummy nodes that capture the rank in which each edge's\n * label is going to, if it has one of non-zero width and height. We do this\n * so that we can safely remove empty ranks while preserving balance for the\n * label's position.\n */\nfunction injectEdgeLabelProxies(g) {\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (edge.width && edge.height) {\n var v = g.node(e.v);\n var w = g.node(e.w);\n var label = { rank: (w.rank - v.rank) / 2 + v.rank, e: e };\n util.addDummyNode(g, \"edge-proxy\", label, \"_ep\");\n }\n });\n}\n\nfunction assignRankMinMax(g) {\n var maxRank = 0;\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n if (node.borderTop) {\n node.minRank = g.node(node.borderTop).rank;\n node.maxRank = g.node(node.borderBottom).rank;\n maxRank = _.max(maxRank, node.maxRank);\n }\n });\n g.graph().maxRank = maxRank;\n}\n\nfunction removeEdgeLabelProxies(g) {\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n if (node.dummy === \"edge-proxy\") {\n g.edge(node.e).labelRank = node.rank;\n g.removeNode(v);\n }\n });\n}\n\nfunction translateGraph(g) {\n var minX = Number.POSITIVE_INFINITY;\n var maxX = 0;\n var minY = Number.POSITIVE_INFINITY;\n var maxY = 0;\n var graphLabel = g.graph();\n var marginX = graphLabel.marginx || 0;\n var marginY = graphLabel.marginy || 0;\n\n function getExtremes(attrs) {\n var x = attrs.x;\n var y = attrs.y;\n var w = attrs.width;\n var h = attrs.height;\n minX = Math.min(minX, x - w / 2);\n maxX = Math.max(maxX, x + w / 2);\n minY = Math.min(minY, y - h / 2);\n maxY = Math.max(maxY, y + h / 2);\n }\n\n _.forEach(g.nodes(), function(v) { getExtremes(g.node(v)); });\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (_.has(edge, \"x\")) {\n getExtremes(edge);\n }\n });\n\n minX -= marginX;\n minY -= marginY;\n\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n node.x -= minX;\n node.y -= minY;\n });\n\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n _.forEach(edge.points, function(p) {\n p.x -= minX;\n p.y -= minY;\n });\n if (_.has(edge, \"x\")) { edge.x -= minX; }\n if (_.has(edge, \"y\")) { edge.y -= minY; }\n });\n\n graphLabel.width = maxX - minX + marginX;\n graphLabel.height = maxY - minY + marginY;\n}\n\nfunction assignNodeIntersects(g) {\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n var nodeV = g.node(e.v);\n var nodeW = g.node(e.w);\n var p1, p2;\n if (!edge.points) {\n edge.points = [];\n p1 = nodeW;\n p2 = nodeV;\n } else {\n p1 = edge.points[0];\n p2 = edge.points[edge.points.length - 1];\n }\n edge.points.unshift(util.intersectRect(nodeV, p1));\n edge.points.push(util.intersectRect(nodeW, p2));\n });\n}\n\nfunction fixupEdgeLabelCoords(g) {\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (_.has(edge, \"x\")) {\n if (edge.labelpos === \"l\" || edge.labelpos === \"r\") {\n edge.width -= edge.labeloffset;\n }\n switch (edge.labelpos) {\n case \"l\": edge.x -= edge.width / 2 + edge.labeloffset; break;\n case \"r\": edge.x += edge.width / 2 + edge.labeloffset; break;\n }\n }\n });\n}\n\nfunction reversePointsForReversedEdges(g) {\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (edge.reversed) {\n edge.points.reverse();\n }\n });\n}\n\nfunction removeBorderNodes(g) {\n _.forEach(g.nodes(), function(v) {\n if (g.children(v).length) {\n var node = g.node(v);\n var t = g.node(node.borderTop);\n var b = g.node(node.borderBottom);\n var l = g.node(_.last(node.borderLeft));\n var r = g.node(_.last(node.borderRight));\n\n node.width = Math.abs(r.x - l.x);\n node.height = Math.abs(b.y - t.y);\n node.x = l.x + node.width / 2;\n node.y = t.y + node.height / 2;\n }\n });\n\n _.forEach(g.nodes(), function(v) {\n if (g.node(v).dummy === \"border\") {\n g.removeNode(v);\n }\n });\n}\n\nfunction removeSelfEdges(g) {\n _.forEach(g.edges(), function(e) {\n if (e.v === e.w) {\n var node = g.node(e.v);\n if (!node.selfEdges) {\n node.selfEdges = [];\n }\n node.selfEdges.push({ e: e, label: g.edge(e) });\n g.removeEdge(e);\n }\n });\n}\n\nfunction insertSelfEdges(g) {\n var layers = util.buildLayerMatrix(g);\n _.forEach(layers, function(layer) {\n var orderShift = 0;\n _.forEach(layer, function(v, i) {\n var node = g.node(v);\n node.order = i + orderShift;\n _.forEach(node.selfEdges, function(selfEdge) {\n util.addDummyNode(g, \"selfedge\", {\n width: selfEdge.label.width,\n height: selfEdge.label.height,\n rank: node.rank,\n order: i + (++orderShift),\n e: selfEdge.e,\n label: selfEdge.label\n }, \"_se\");\n });\n delete node.selfEdges;\n });\n });\n}\n\nfunction positionSelfEdges(g) {\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n if (node.dummy === \"selfedge\") {\n var selfNode = g.node(node.e.v);\n var x = selfNode.x + selfNode.width / 2;\n var y = selfNode.y;\n var dx = node.x - x;\n var dy = selfNode.height / 2;\n g.setEdge(node.e, node.label);\n g.removeNode(v);\n node.label.points = [\n { x: x + 2 * dx / 3, y: y - dy },\n { x: x + 5 * dx / 6, y: y - dy },\n { x: x + dx , y: y },\n { x: x + 5 * dx / 6, y: y + dy },\n { x: x + 2 * dx / 3, y: y + dy }\n ];\n node.label.x = node.x;\n node.label.y = node.y;\n }\n });\n}\n\nfunction selectNumberAttrs(obj, attrs) {\n return _.mapValues(_.pick(obj, attrs), Number);\n}\n\nfunction canonicalize(attrs) {\n var newAttrs = {};\n _.forEach(attrs, function(v, k) {\n newAttrs[k.toLowerCase()] = v;\n });\n return newAttrs;\n}\n","/* global window */\n\nvar lodash;\n\nif (typeof require === \"function\") {\n try {\n lodash = {\n cloneDeep: require(\"lodash/cloneDeep\"),\n constant: require(\"lodash/constant\"),\n defaults: require(\"lodash/defaults\"),\n each: require(\"lodash/each\"),\n filter: require(\"lodash/filter\"),\n find: require(\"lodash/find\"),\n flatten: require(\"lodash/flatten\"),\n forEach: require(\"lodash/forEach\"),\n forIn: require(\"lodash/forIn\"),\n has: require(\"lodash/has\"),\n isUndefined: require(\"lodash/isUndefined\"),\n last: require(\"lodash/last\"),\n map: require(\"lodash/map\"),\n mapValues: require(\"lodash/mapValues\"),\n max: require(\"lodash/max\"),\n merge: require(\"lodash/merge\"),\n min: require(\"lodash/min\"),\n minBy: require(\"lodash/minBy\"),\n now: require(\"lodash/now\"),\n pick: require(\"lodash/pick\"),\n range: require(\"lodash/range\"),\n reduce: require(\"lodash/reduce\"),\n sortBy: require(\"lodash/sortBy\"),\n uniqueId: require(\"lodash/uniqueId\"),\n values: require(\"lodash/values\"),\n zipObject: require(\"lodash/zipObject\"),\n };\n } catch (e) {\n // continue regardless of error\n }\n}\n\nif (!lodash) {\n lodash = window._;\n}\n\nmodule.exports = lodash;\n","var _ = require(\"./lodash\");\nvar util = require(\"./util\");\n\nmodule.exports = {\n run: run,\n cleanup: cleanup\n};\n\n/*\n * A nesting graph creates dummy nodes for the tops and bottoms of subgraphs,\n * adds appropriate edges to ensure that all cluster nodes are placed between\n * these boundries, and ensures that the graph is connected.\n *\n * In addition we ensure, through the use of the minlen property, that nodes\n * and subgraph border nodes to not end up on the same rank.\n *\n * Preconditions:\n *\n * 1. Input graph is a DAG\n * 2. Nodes in the input graph has a minlen attribute\n *\n * Postconditions:\n *\n * 1. Input graph is connected.\n * 2. Dummy nodes are added for the tops and bottoms of subgraphs.\n * 3. The minlen attribute for nodes is adjusted to ensure nodes do not\n * get placed on the same rank as subgraph border nodes.\n *\n * The nesting graph idea comes from Sander, \"Layout of Compound Directed\n * Graphs.\"\n */\nfunction run(g) {\n var root = util.addDummyNode(g, \"root\", {}, \"_root\");\n var depths = treeDepths(g);\n var height = _.max(_.values(depths)) - 1; // Note: depths is an Object not an array\n var nodeSep = 2 * height + 1;\n\n g.graph().nestingRoot = root;\n\n // Multiply minlen by nodeSep to align nodes on non-border ranks.\n _.forEach(g.edges(), function(e) { g.edge(e).minlen *= nodeSep; });\n\n // Calculate a weight that is sufficient to keep subgraphs vertically compact\n var weight = sumWeights(g) + 1;\n\n // Create border nodes and link them up\n _.forEach(g.children(), function(child) {\n dfs(g, root, nodeSep, weight, height, depths, child);\n });\n\n // Save the multiplier for node layers for later removal of empty border\n // layers.\n g.graph().nodeRankFactor = nodeSep;\n}\n\nfunction dfs(g, root, nodeSep, weight, height, depths, v) {\n var children = g.children(v);\n if (!children.length) {\n if (v !== root) {\n g.setEdge(root, v, { weight: 0, minlen: nodeSep });\n }\n return;\n }\n\n var top = util.addBorderNode(g, \"_bt\");\n var bottom = util.addBorderNode(g, \"_bb\");\n var label = g.node(v);\n\n g.setParent(top, v);\n label.borderTop = top;\n g.setParent(bottom, v);\n label.borderBottom = bottom;\n\n _.forEach(children, function(child) {\n dfs(g, root, nodeSep, weight, height, depths, child);\n\n var childNode = g.node(child);\n var childTop = childNode.borderTop ? childNode.borderTop : child;\n var childBottom = childNode.borderBottom ? childNode.borderBottom : child;\n var thisWeight = childNode.borderTop ? weight : 2 * weight;\n var minlen = childTop !== childBottom ? 1 : height - depths[v] + 1;\n\n g.setEdge(top, childTop, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true\n });\n\n g.setEdge(childBottom, bottom, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true\n });\n });\n\n if (!g.parent(v)) {\n g.setEdge(root, top, { weight: 0, minlen: height + depths[v] });\n }\n}\n\nfunction treeDepths(g) {\n var depths = {};\n function dfs(v, depth) {\n var children = g.children(v);\n if (children && children.length) {\n _.forEach(children, function(child) {\n dfs(child, depth + 1);\n });\n }\n depths[v] = depth;\n }\n _.forEach(g.children(), function(v) { dfs(v, 1); });\n return depths;\n}\n\nfunction sumWeights(g) {\n return _.reduce(g.edges(), function(acc, e) {\n return acc + g.edge(e).weight;\n }, 0);\n}\n\nfunction cleanup(g) {\n var graphLabel = g.graph();\n g.removeNode(graphLabel.nestingRoot);\n delete graphLabel.nestingRoot;\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (edge.nestingEdge) {\n g.removeEdge(e);\n }\n });\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar util = require(\"./util\");\n\nmodule.exports = {\n run: run,\n undo: undo\n};\n\n/*\n * Breaks any long edges in the graph into short segments that span 1 layer\n * each. This operation is undoable with the denormalize function.\n *\n * Pre-conditions:\n *\n * 1. The input graph is a DAG.\n * 2. Each node in the graph has a \"rank\" property.\n *\n * Post-condition:\n *\n * 1. All edges in the graph have a length of 1.\n * 2. Dummy nodes are added where edges have been split into segments.\n * 3. The graph is augmented with a \"dummyChains\" attribute which contains\n * the first dummy in each chain of dummy nodes produced.\n */\nfunction run(g) {\n g.graph().dummyChains = [];\n _.forEach(g.edges(), function(edge) { normalizeEdge(g, edge); });\n}\n\nfunction normalizeEdge(g, e) {\n var v = e.v;\n var vRank = g.node(v).rank;\n var w = e.w;\n var wRank = g.node(w).rank;\n var name = e.name;\n var edgeLabel = g.edge(e);\n var labelRank = edgeLabel.labelRank;\n\n if (wRank === vRank + 1) return;\n\n g.removeEdge(e);\n\n var dummy, attrs, i;\n for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) {\n edgeLabel.points = [];\n attrs = {\n width: 0, height: 0,\n edgeLabel: edgeLabel, edgeObj: e,\n rank: vRank\n };\n dummy = util.addDummyNode(g, \"edge\", attrs, \"_d\");\n if (vRank === labelRank) {\n attrs.width = edgeLabel.width;\n attrs.height = edgeLabel.height;\n attrs.dummy = \"edge-label\";\n attrs.labelpos = edgeLabel.labelpos;\n }\n g.setEdge(v, dummy, { weight: edgeLabel.weight }, name);\n if (i === 0) {\n g.graph().dummyChains.push(dummy);\n }\n v = dummy;\n }\n\n g.setEdge(v, w, { weight: edgeLabel.weight }, name);\n}\n\nfunction undo(g) {\n _.forEach(g.graph().dummyChains, function(v) {\n var node = g.node(v);\n var origLabel = node.edgeLabel;\n var w;\n g.setEdge(node.edgeObj, origLabel);\n while (node.dummy) {\n w = g.successors(v)[0];\n g.removeNode(v);\n origLabel.points.push({ x: node.x, y: node.y });\n if (node.dummy === \"edge-label\") {\n origLabel.x = node.x;\n origLabel.y = node.y;\n origLabel.width = node.width;\n origLabel.height = node.height;\n }\n v = w;\n node = g.node(v);\n }\n });\n}\n","var _ = require(\"../lodash\");\n\nmodule.exports = addSubgraphConstraints;\n\nfunction addSubgraphConstraints(g, cg, vs) {\n var prev = {},\n rootPrev;\n\n _.forEach(vs, function(v) {\n var child = g.parent(v),\n parent,\n prevChild;\n while (child) {\n parent = g.parent(child);\n if (parent) {\n prevChild = prev[parent];\n prev[parent] = child;\n } else {\n prevChild = rootPrev;\n rootPrev = child;\n }\n if (prevChild && prevChild !== child) {\n cg.setEdge(prevChild, child);\n return;\n }\n child = parent;\n }\n });\n\n /*\n function dfs(v) {\n var children = v ? g.children(v) : g.children();\n if (children.length) {\n var min = Number.POSITIVE_INFINITY,\n subgraphs = [];\n _.each(children, function(child) {\n var childMin = dfs(child);\n if (g.children(child).length) {\n subgraphs.push({ v: child, order: childMin });\n }\n min = Math.min(min, childMin);\n });\n _.reduce(_.sortBy(subgraphs, \"order\"), function(prev, curr) {\n cg.setEdge(prev.v, curr.v);\n return curr;\n });\n return min;\n }\n return g.node(v).order;\n }\n dfs(undefined);\n */\n}\n","var _ = require(\"../lodash\");\n\nmodule.exports = barycenter;\n\nfunction barycenter(g, movable) {\n return _.map(movable, function(v) {\n var inV = g.inEdges(v);\n if (!inV.length) {\n return { v: v };\n } else {\n var result = _.reduce(inV, function(acc, e) {\n var edge = g.edge(e),\n nodeU = g.node(e.v);\n return {\n sum: acc.sum + (edge.weight * nodeU.order),\n weight: acc.weight + edge.weight\n };\n }, { sum: 0, weight: 0 });\n\n return {\n v: v,\n barycenter: result.sum / result.weight,\n weight: result.weight\n };\n }\n });\n}\n\n","var _ = require(\"../lodash\");\nvar Graph = require(\"../graphlib\").Graph;\n\nmodule.exports = buildLayerGraph;\n\n/*\n * Constructs a graph that can be used to sort a layer of nodes. The graph will\n * contain all base and subgraph nodes from the request layer in their original\n * hierarchy and any edges that are incident on these nodes and are of the type\n * requested by the \"relationship\" parameter.\n *\n * Nodes from the requested rank that do not have parents are assigned a root\n * node in the output graph, which is set in the root graph attribute. This\n * makes it easy to walk the hierarchy of movable nodes during ordering.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG\n * 2. Base nodes in the input graph have a rank attribute\n * 3. Subgraph nodes in the input graph has minRank and maxRank attributes\n * 4. Edges have an assigned weight\n *\n * Post-conditions:\n *\n * 1. Output graph has all nodes in the movable rank with preserved\n * hierarchy.\n * 2. Root nodes in the movable layer are made children of the node\n * indicated by the root attribute of the graph.\n * 3. Non-movable nodes incident on movable nodes, selected by the\n * relationship parameter, are included in the graph (without hierarchy).\n * 4. Edges incident on movable nodes, selected by the relationship\n * parameter, are added to the output graph.\n * 5. The weights for copied edges are aggregated as need, since the output\n * graph is not a multi-graph.\n */\nfunction buildLayerGraph(g, rank, relationship) {\n var root = createRootNode(g),\n result = new Graph({ compound: true }).setGraph({ root: root })\n .setDefaultNodeLabel(function(v) { return g.node(v); });\n\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v),\n parent = g.parent(v);\n\n if (node.rank === rank || node.minRank <= rank && rank <= node.maxRank) {\n result.setNode(v);\n result.setParent(v, parent || root);\n\n // This assumes we have only short edges!\n _.forEach(g[relationship](v), function(e) {\n var u = e.v === v ? e.w : e.v,\n edge = result.edge(u, v),\n weight = !_.isUndefined(edge) ? edge.weight : 0;\n result.setEdge(u, v, { weight: g.edge(e).weight + weight });\n });\n\n if (_.has(node, \"minRank\")) {\n result.setNode(v, {\n borderLeft: node.borderLeft[rank],\n borderRight: node.borderRight[rank]\n });\n }\n }\n });\n\n return result;\n}\n\nfunction createRootNode(g) {\n var v;\n while (g.hasNode((v = _.uniqueId(\"_root\"))));\n return v;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\n\nmodule.exports = crossCount;\n\n/*\n * A function that takes a layering (an array of layers, each with an array of\n * ordererd nodes) and a graph and returns a weighted crossing count.\n *\n * Pre-conditions:\n *\n * 1. Input graph must be simple (not a multigraph), directed, and include\n * only simple edges.\n * 2. Edges in the input graph must have assigned weights.\n *\n * Post-conditions:\n *\n * 1. The graph and layering matrix are left unchanged.\n *\n * This algorithm is derived from Barth, et al., \"Bilayer Cross Counting.\"\n */\nfunction crossCount(g, layering) {\n var cc = 0;\n for (var i = 1; i < layering.length; ++i) {\n cc += twoLayerCrossCount(g, layering[i-1], layering[i]);\n }\n return cc;\n}\n\nfunction twoLayerCrossCount(g, northLayer, southLayer) {\n // Sort all of the edges between the north and south layers by their position\n // in the north layer and then the south. Map these edges to the position of\n // their head in the south layer.\n var southPos = _.zipObject(southLayer,\n _.map(southLayer, function (v, i) { return i; }));\n var southEntries = _.flatten(_.map(northLayer, function(v) {\n return _.sortBy(_.map(g.outEdges(v), function(e) {\n return { pos: southPos[e.w], weight: g.edge(e).weight };\n }), \"pos\");\n }), true);\n\n // Build the accumulator tree\n var firstIndex = 1;\n while (firstIndex < southLayer.length) firstIndex <<= 1;\n var treeSize = 2 * firstIndex - 1;\n firstIndex -= 1;\n var tree = _.map(new Array(treeSize), function() { return 0; });\n\n // Calculate the weighted crossings\n var cc = 0;\n _.forEach(southEntries.forEach(function(entry) {\n var index = entry.pos + firstIndex;\n tree[index] += entry.weight;\n var weightSum = 0;\n while (index > 0) {\n if (index % 2) {\n weightSum += tree[index + 1];\n }\n index = (index - 1) >> 1;\n tree[index] += entry.weight;\n }\n cc += entry.weight * weightSum;\n }));\n\n return cc;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar initOrder = require(\"./init-order\");\nvar crossCount = require(\"./cross-count\");\nvar sortSubgraph = require(\"./sort-subgraph\");\nvar buildLayerGraph = require(\"./build-layer-graph\");\nvar addSubgraphConstraints = require(\"./add-subgraph-constraints\");\nvar Graph = require(\"../graphlib\").Graph;\nvar util = require(\"../util\");\n\nmodule.exports = order;\n\n/*\n * Applies heuristics to minimize edge crossings in the graph and sets the best\n * order solution as an order attribute on each node.\n *\n * Pre-conditions:\n *\n * 1. Graph must be DAG\n * 2. Graph nodes must be objects with a \"rank\" attribute\n * 3. Graph edges must have the \"weight\" attribute\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have an \"order\" attribute based on the results of the\n * algorithm.\n */\nfunction order(g) {\n var maxRank = util.maxRank(g),\n downLayerGraphs = buildLayerGraphs(g, _.range(1, maxRank + 1), \"inEdges\"),\n upLayerGraphs = buildLayerGraphs(g, _.range(maxRank - 1, -1, -1), \"outEdges\");\n\n var layering = initOrder(g);\n assignOrder(g, layering);\n\n var bestCC = Number.POSITIVE_INFINITY,\n best;\n\n for (var i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {\n sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2);\n\n layering = util.buildLayerMatrix(g);\n var cc = crossCount(g, layering);\n if (cc < bestCC) {\n lastBest = 0;\n best = _.cloneDeep(layering);\n bestCC = cc;\n }\n }\n\n assignOrder(g, best);\n}\n\nfunction buildLayerGraphs(g, ranks, relationship) {\n return _.map(ranks, function(rank) {\n return buildLayerGraph(g, rank, relationship);\n });\n}\n\nfunction sweepLayerGraphs(layerGraphs, biasRight) {\n var cg = new Graph();\n _.forEach(layerGraphs, function(lg) {\n var root = lg.graph().root;\n var sorted = sortSubgraph(lg, root, cg, biasRight);\n _.forEach(sorted.vs, function(v, i) {\n lg.node(v).order = i;\n });\n addSubgraphConstraints(lg, cg, sorted.vs);\n });\n}\n\nfunction assignOrder(g, layering) {\n _.forEach(layering, function(layer) {\n _.forEach(layer, function(v, i) {\n g.node(v).order = i;\n });\n });\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\n\nmodule.exports = initOrder;\n\n/*\n * Assigns an initial order value for each node by performing a DFS search\n * starting from nodes in the first rank. Nodes are assigned an order in their\n * rank as they are first visited.\n *\n * This approach comes from Gansner, et al., \"A Technique for Drawing Directed\n * Graphs.\"\n *\n * Returns a layering matrix with an array per layer and each layer sorted by\n * the order of its nodes.\n */\nfunction initOrder(g) {\n var visited = {};\n var simpleNodes = _.filter(g.nodes(), function(v) {\n return !g.children(v).length;\n });\n var maxRank = _.max(_.map(simpleNodes, function(v) { return g.node(v).rank; }));\n var layers = _.map(_.range(maxRank + 1), function() { return []; });\n\n function dfs(v) {\n if (_.has(visited, v)) return;\n visited[v] = true;\n var node = g.node(v);\n layers[node.rank].push(v);\n _.forEach(g.successors(v), dfs);\n }\n\n var orderedVs = _.sortBy(simpleNodes, function(v) { return g.node(v).rank; });\n _.forEach(orderedVs, dfs);\n\n return layers;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\n\nmodule.exports = resolveConflicts;\n\n/*\n * Given a list of entries of the form {v, barycenter, weight} and a\n * constraint graph this function will resolve any conflicts between the\n * constraint graph and the barycenters for the entries. If the barycenters for\n * an entry would violate a constraint in the constraint graph then we coalesce\n * the nodes in the conflict into a new node that respects the contraint and\n * aggregates barycenter and weight information.\n *\n * This implementation is based on the description in Forster, \"A Fast and\n * Simple Hueristic for Constrained Two-Level Crossing Reduction,\" thought it\n * differs in some specific details.\n *\n * Pre-conditions:\n *\n * 1. Each entry has the form {v, barycenter, weight}, or if the node has\n * no barycenter, then {v}.\n *\n * Returns:\n *\n * A new list of entries of the form {vs, i, barycenter, weight}. The list\n * `vs` may either be a singleton or it may be an aggregation of nodes\n * ordered such that they do not violate constraints from the constraint\n * graph. The property `i` is the lowest original index of any of the\n * elements in `vs`.\n */\nfunction resolveConflicts(entries, cg) {\n var mappedEntries = {};\n _.forEach(entries, function(entry, i) {\n var tmp = mappedEntries[entry.v] = {\n indegree: 0,\n \"in\": [],\n out: [],\n vs: [entry.v],\n i: i\n };\n if (!_.isUndefined(entry.barycenter)) {\n tmp.barycenter = entry.barycenter;\n tmp.weight = entry.weight;\n }\n });\n\n _.forEach(cg.edges(), function(e) {\n var entryV = mappedEntries[e.v];\n var entryW = mappedEntries[e.w];\n if (!_.isUndefined(entryV) && !_.isUndefined(entryW)) {\n entryW.indegree++;\n entryV.out.push(mappedEntries[e.w]);\n }\n });\n\n var sourceSet = _.filter(mappedEntries, function(entry) {\n return !entry.indegree;\n });\n\n return doResolveConflicts(sourceSet);\n}\n\nfunction doResolveConflicts(sourceSet) {\n var entries = [];\n\n function handleIn(vEntry) {\n return function(uEntry) {\n if (uEntry.merged) {\n return;\n }\n if (_.isUndefined(uEntry.barycenter) ||\n _.isUndefined(vEntry.barycenter) ||\n uEntry.barycenter >= vEntry.barycenter) {\n mergeEntries(vEntry, uEntry);\n }\n };\n }\n\n function handleOut(vEntry) {\n return function(wEntry) {\n wEntry[\"in\"].push(vEntry);\n if (--wEntry.indegree === 0) {\n sourceSet.push(wEntry);\n }\n };\n }\n\n while (sourceSet.length) {\n var entry = sourceSet.pop();\n entries.push(entry);\n _.forEach(entry[\"in\"].reverse(), handleIn(entry));\n _.forEach(entry.out, handleOut(entry));\n }\n\n return _.map(_.filter(entries, function(entry) { return !entry.merged; }),\n function(entry) {\n return _.pick(entry, [\"vs\", \"i\", \"barycenter\", \"weight\"]);\n });\n\n}\n\nfunction mergeEntries(target, source) {\n var sum = 0;\n var weight = 0;\n\n if (target.weight) {\n sum += target.barycenter * target.weight;\n weight += target.weight;\n }\n\n if (source.weight) {\n sum += source.barycenter * source.weight;\n weight += source.weight;\n }\n\n target.vs = source.vs.concat(target.vs);\n target.barycenter = sum / weight;\n target.weight = weight;\n target.i = Math.min(source.i, target.i);\n source.merged = true;\n}\n","var _ = require(\"../lodash\");\nvar barycenter = require(\"./barycenter\");\nvar resolveConflicts = require(\"./resolve-conflicts\");\nvar sort = require(\"./sort\");\n\nmodule.exports = sortSubgraph;\n\nfunction sortSubgraph(g, v, cg, biasRight) {\n var movable = g.children(v);\n var node = g.node(v);\n var bl = node ? node.borderLeft : undefined;\n var br = node ? node.borderRight: undefined;\n var subgraphs = {};\n\n if (bl) {\n movable = _.filter(movable, function(w) {\n return w !== bl && w !== br;\n });\n }\n\n var barycenters = barycenter(g, movable);\n _.forEach(barycenters, function(entry) {\n if (g.children(entry.v).length) {\n var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight);\n subgraphs[entry.v] = subgraphResult;\n if (_.has(subgraphResult, \"barycenter\")) {\n mergeBarycenters(entry, subgraphResult);\n }\n }\n });\n\n var entries = resolveConflicts(barycenters, cg);\n expandSubgraphs(entries, subgraphs);\n\n var result = sort(entries, biasRight);\n\n if (bl) {\n result.vs = _.flatten([bl, result.vs, br], true);\n if (g.predecessors(bl).length) {\n var blPred = g.node(g.predecessors(bl)[0]),\n brPred = g.node(g.predecessors(br)[0]);\n if (!_.has(result, \"barycenter\")) {\n result.barycenter = 0;\n result.weight = 0;\n }\n result.barycenter = (result.barycenter * result.weight +\n blPred.order + brPred.order) / (result.weight + 2);\n result.weight += 2;\n }\n }\n\n return result;\n}\n\nfunction expandSubgraphs(entries, subgraphs) {\n _.forEach(entries, function(entry) {\n entry.vs = _.flatten(entry.vs.map(function(v) {\n if (subgraphs[v]) {\n return subgraphs[v].vs;\n }\n return v;\n }), true);\n });\n}\n\nfunction mergeBarycenters(target, other) {\n if (!_.isUndefined(target.barycenter)) {\n target.barycenter = (target.barycenter * target.weight +\n other.barycenter * other.weight) /\n (target.weight + other.weight);\n target.weight += other.weight;\n } else {\n target.barycenter = other.barycenter;\n target.weight = other.weight;\n }\n}\n","var _ = require(\"../lodash\");\nvar util = require(\"../util\");\n\nmodule.exports = sort;\n\nfunction sort(entries, biasRight) {\n var parts = util.partition(entries, function(entry) {\n return _.has(entry, \"barycenter\");\n });\n var sortable = parts.lhs,\n unsortable = _.sortBy(parts.rhs, function(entry) { return -entry.i; }),\n vs = [],\n sum = 0,\n weight = 0,\n vsIndex = 0;\n\n sortable.sort(compareWithBias(!!biasRight));\n\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n\n _.forEach(sortable, function (entry) {\n vsIndex += entry.vs.length;\n vs.push(entry.vs);\n sum += entry.barycenter * entry.weight;\n weight += entry.weight;\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n });\n\n var result = { vs: _.flatten(vs, true) };\n if (weight) {\n result.barycenter = sum / weight;\n result.weight = weight;\n }\n return result;\n}\n\nfunction consumeUnsortable(vs, unsortable, index) {\n var last;\n while (unsortable.length && (last = _.last(unsortable)).i <= index) {\n unsortable.pop();\n vs.push(last.vs);\n index++;\n }\n return index;\n}\n\nfunction compareWithBias(bias) {\n return function(entryV, entryW) {\n if (entryV.barycenter < entryW.barycenter) {\n return -1;\n } else if (entryV.barycenter > entryW.barycenter) {\n return 1;\n }\n\n return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;\n };\n}\n","var _ = require(\"./lodash\");\n\nmodule.exports = parentDummyChains;\n\nfunction parentDummyChains(g) {\n var postorderNums = postorder(g);\n\n _.forEach(g.graph().dummyChains, function(v) {\n var node = g.node(v);\n var edgeObj = node.edgeObj;\n var pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w);\n var path = pathData.path;\n var lca = pathData.lca;\n var pathIdx = 0;\n var pathV = path[pathIdx];\n var ascending = true;\n\n while (v !== edgeObj.w) {\n node = g.node(v);\n\n if (ascending) {\n while ((pathV = path[pathIdx]) !== lca &&\n g.node(pathV).maxRank < node.rank) {\n pathIdx++;\n }\n\n if (pathV === lca) {\n ascending = false;\n }\n }\n\n if (!ascending) {\n while (pathIdx < path.length - 1 &&\n g.node(pathV = path[pathIdx + 1]).minRank <= node.rank) {\n pathIdx++;\n }\n pathV = path[pathIdx];\n }\n\n g.setParent(v, pathV);\n v = g.successors(v)[0];\n }\n });\n}\n\n// Find a path from v to w through the lowest common ancestor (LCA). Return the\n// full path and the LCA.\nfunction findPath(g, postorderNums, v, w) {\n var vPath = [];\n var wPath = [];\n var low = Math.min(postorderNums[v].low, postorderNums[w].low);\n var lim = Math.max(postorderNums[v].lim, postorderNums[w].lim);\n var parent;\n var lca;\n\n // Traverse up from v to find the LCA\n parent = v;\n do {\n parent = g.parent(parent);\n vPath.push(parent);\n } while (parent &&\n (postorderNums[parent].low > low || lim > postorderNums[parent].lim));\n lca = parent;\n\n // Traverse from w to LCA\n parent = w;\n while ((parent = g.parent(parent)) !== lca) {\n wPath.push(parent);\n }\n\n return { path: vPath.concat(wPath.reverse()), lca: lca };\n}\n\nfunction postorder(g) {\n var result = {};\n var lim = 0;\n\n function dfs(v) {\n var low = lim;\n _.forEach(g.children(v), dfs);\n result[v] = { low: low, lim: lim++ };\n }\n _.forEach(g.children(), dfs);\n\n return result;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar Graph = require(\"../graphlib\").Graph;\nvar util = require(\"../util\");\n\n/*\n * This module provides coordinate assignment based on Brandes and Köpf, \"Fast\n * and Simple Horizontal Coordinate Assignment.\"\n */\n\nmodule.exports = {\n positionX: positionX,\n findType1Conflicts: findType1Conflicts,\n findType2Conflicts: findType2Conflicts,\n addConflict: addConflict,\n hasConflict: hasConflict,\n verticalAlignment: verticalAlignment,\n horizontalCompaction: horizontalCompaction,\n alignCoordinates: alignCoordinates,\n findSmallestWidthAlignment: findSmallestWidthAlignment,\n balance: balance\n};\n\n/*\n * Marks all edges in the graph with a type-1 conflict with the \"type1Conflict\"\n * property. A type-1 conflict is one where a non-inner segment crosses an\n * inner segment. An inner segment is an edge with both incident nodes marked\n * with the \"dummy\" property.\n *\n * This algorithm scans layer by layer, starting with the second, for type-1\n * conflicts between the current layer and the previous layer. For each layer\n * it scans the nodes from left to right until it reaches one that is incident\n * on an inner segment. It then scans predecessors to determine if they have\n * edges that cross that inner segment. At the end a final scan is done for all\n * nodes on the current rank to see if they cross the last visited inner\n * segment.\n *\n * This algorithm (safely) assumes that a dummy node will only be incident on a\n * single node in the layers being scanned.\n */\nfunction findType1Conflicts(g, layering) {\n var conflicts = {};\n\n function visitLayer(prevLayer, layer) {\n var\n // last visited node in the previous layer that is incident on an inner\n // segment.\n k0 = 0,\n // Tracks the last node in this layer scanned for crossings with a type-1\n // segment.\n scanPos = 0,\n prevLayerLength = prevLayer.length,\n lastNode = _.last(layer);\n\n _.forEach(layer, function(v, i) {\n var w = findOtherInnerSegmentNode(g, v),\n k1 = w ? g.node(w).order : prevLayerLength;\n\n if (w || v === lastNode) {\n _.forEach(layer.slice(scanPos, i +1), function(scanNode) {\n _.forEach(g.predecessors(scanNode), function(u) {\n var uLabel = g.node(u),\n uPos = uLabel.order;\n if ((uPos < k0 || k1 < uPos) &&\n !(uLabel.dummy && g.node(scanNode).dummy)) {\n addConflict(conflicts, u, scanNode);\n }\n });\n });\n scanPos = i + 1;\n k0 = k1;\n }\n });\n\n return layer;\n }\n\n _.reduce(layering, visitLayer);\n return conflicts;\n}\n\nfunction findType2Conflicts(g, layering) {\n var conflicts = {};\n\n function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {\n var v;\n _.forEach(_.range(southPos, southEnd), function(i) {\n v = south[i];\n if (g.node(v).dummy) {\n _.forEach(g.predecessors(v), function(u) {\n var uNode = g.node(u);\n if (uNode.dummy &&\n (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) {\n addConflict(conflicts, u, v);\n }\n });\n }\n });\n }\n\n\n function visitLayer(north, south) {\n var prevNorthPos = -1,\n nextNorthPos,\n southPos = 0;\n\n _.forEach(south, function(v, southLookahead) {\n if (g.node(v).dummy === \"border\") {\n var predecessors = g.predecessors(v);\n if (predecessors.length) {\n nextNorthPos = g.node(predecessors[0]).order;\n scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos);\n southPos = southLookahead;\n prevNorthPos = nextNorthPos;\n }\n }\n scan(south, southPos, south.length, nextNorthPos, north.length);\n });\n\n return south;\n }\n\n _.reduce(layering, visitLayer);\n return conflicts;\n}\n\nfunction findOtherInnerSegmentNode(g, v) {\n if (g.node(v).dummy) {\n return _.find(g.predecessors(v), function(u) {\n return g.node(u).dummy;\n });\n }\n}\n\nfunction addConflict(conflicts, v, w) {\n if (v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n\n var conflictsV = conflicts[v];\n if (!conflictsV) {\n conflicts[v] = conflictsV = {};\n }\n conflictsV[w] = true;\n}\n\nfunction hasConflict(conflicts, v, w) {\n if (v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return _.has(conflicts[v], w);\n}\n\n/*\n * Try to align nodes into vertical \"blocks\" where possible. This algorithm\n * attempts to align a node with one of its median neighbors. If the edge\n * connecting a neighbor is a type-1 conflict then we ignore that possibility.\n * If a previous node has already formed a block with a node after the node\n * we're trying to form a block with, we also ignore that possibility - our\n * blocks would be split in that scenario.\n */\nfunction verticalAlignment(g, layering, conflicts, neighborFn) {\n var root = {},\n align = {},\n pos = {};\n\n // We cache the position here based on the layering because the graph and\n // layering may be out of sync. The layering matrix is manipulated to\n // generate different extreme alignments.\n _.forEach(layering, function(layer) {\n _.forEach(layer, function(v, order) {\n root[v] = v;\n align[v] = v;\n pos[v] = order;\n });\n });\n\n _.forEach(layering, function(layer) {\n var prevIdx = -1;\n _.forEach(layer, function(v) {\n var ws = neighborFn(v);\n if (ws.length) {\n ws = _.sortBy(ws, function(w) { return pos[w]; });\n var mp = (ws.length - 1) / 2;\n for (var i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) {\n var w = ws[i];\n if (align[v] === v &&\n prevIdx < pos[w] &&\n !hasConflict(conflicts, v, w)) {\n align[w] = v;\n align[v] = root[v] = root[w];\n prevIdx = pos[w];\n }\n }\n }\n });\n });\n\n return { root: root, align: align };\n}\n\nfunction horizontalCompaction(g, layering, root, align, reverseSep) {\n // This portion of the algorithm differs from BK due to a number of problems.\n // Instead of their algorithm we construct a new block graph and do two\n // sweeps. The first sweep places blocks with the smallest possible\n // coordinates. The second sweep removes unused space by moving blocks to the\n // greatest coordinates without violating separation.\n var xs = {},\n blockG = buildBlockGraph(g, layering, root, reverseSep),\n borderType = reverseSep ? \"borderLeft\" : \"borderRight\";\n\n function iterate(setXsFunc, nextNodesFunc) {\n var stack = blockG.nodes();\n var elem = stack.pop();\n var visited = {};\n while (elem) {\n if (visited[elem]) {\n setXsFunc(elem);\n } else {\n visited[elem] = true;\n stack.push(elem);\n stack = stack.concat(nextNodesFunc(elem));\n }\n\n elem = stack.pop();\n }\n }\n\n // First pass, assign smallest coordinates\n function pass1(elem) {\n xs[elem] = blockG.inEdges(elem).reduce(function(acc, e) {\n return Math.max(acc, xs[e.v] + blockG.edge(e));\n }, 0);\n }\n\n // Second pass, assign greatest coordinates\n function pass2(elem) {\n var min = blockG.outEdges(elem).reduce(function(acc, e) {\n return Math.min(acc, xs[e.w] - blockG.edge(e));\n }, Number.POSITIVE_INFINITY);\n\n var node = g.node(elem);\n if (min !== Number.POSITIVE_INFINITY && node.borderType !== borderType) {\n xs[elem] = Math.max(xs[elem], min);\n }\n }\n\n iterate(pass1, blockG.predecessors.bind(blockG));\n iterate(pass2, blockG.successors.bind(blockG));\n\n // Assign x coordinates to all nodes\n _.forEach(align, function(v) {\n xs[v] = xs[root[v]];\n });\n\n return xs;\n}\n\n\nfunction buildBlockGraph(g, layering, root, reverseSep) {\n var blockGraph = new Graph(),\n graphLabel = g.graph(),\n sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep);\n\n _.forEach(layering, function(layer) {\n var u;\n _.forEach(layer, function(v) {\n var vRoot = root[v];\n blockGraph.setNode(vRoot);\n if (u) {\n var uRoot = root[u],\n prevMax = blockGraph.edge(uRoot, vRoot);\n blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u), prevMax || 0));\n }\n u = v;\n });\n });\n\n return blockGraph;\n}\n\n/*\n * Returns the alignment that has the smallest width of the given alignments.\n */\nfunction findSmallestWidthAlignment(g, xss) {\n return _.minBy(_.values(xss), function (xs) {\n var max = Number.NEGATIVE_INFINITY;\n var min = Number.POSITIVE_INFINITY;\n\n _.forIn(xs, function (x, v) {\n var halfWidth = width(g, v) / 2;\n\n max = Math.max(x + halfWidth, max);\n min = Math.min(x - halfWidth, min);\n });\n\n return max - min;\n });\n}\n\n/*\n * Align the coordinates of each of the layout alignments such that\n * left-biased alignments have their minimum coordinate at the same point as\n * the minimum coordinate of the smallest width alignment and right-biased\n * alignments have their maximum coordinate at the same point as the maximum\n * coordinate of the smallest width alignment.\n */\nfunction alignCoordinates(xss, alignTo) {\n var alignToVals = _.values(alignTo),\n alignToMin = _.min(alignToVals),\n alignToMax = _.max(alignToVals);\n\n _.forEach([\"u\", \"d\"], function(vert) {\n _.forEach([\"l\", \"r\"], function(horiz) {\n var alignment = vert + horiz,\n xs = xss[alignment],\n delta;\n if (xs === alignTo) return;\n\n var xsVals = _.values(xs);\n delta = horiz === \"l\" ? alignToMin - _.min(xsVals) : alignToMax - _.max(xsVals);\n\n if (delta) {\n xss[alignment] = _.mapValues(xs, function(x) { return x + delta; });\n }\n });\n });\n}\n\nfunction balance(xss, align) {\n return _.mapValues(xss.ul, function(ignore, v) {\n if (align) {\n return xss[align.toLowerCase()][v];\n } else {\n var xs = _.sortBy(_.map(xss, v));\n return (xs[1] + xs[2]) / 2;\n }\n });\n}\n\nfunction positionX(g) {\n var layering = util.buildLayerMatrix(g);\n var conflicts = _.merge(\n findType1Conflicts(g, layering),\n findType2Conflicts(g, layering));\n\n var xss = {};\n var adjustedLayering;\n _.forEach([\"u\", \"d\"], function(vert) {\n adjustedLayering = vert === \"u\" ? layering : _.values(layering).reverse();\n _.forEach([\"l\", \"r\"], function(horiz) {\n if (horiz === \"r\") {\n adjustedLayering = _.map(adjustedLayering, function(inner) {\n return _.values(inner).reverse();\n });\n }\n\n var neighborFn = (vert === \"u\" ? g.predecessors : g.successors).bind(g);\n var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);\n var xs = horizontalCompaction(g, adjustedLayering,\n align.root, align.align, horiz === \"r\");\n if (horiz === \"r\") {\n xs = _.mapValues(xs, function(x) { return -x; });\n }\n xss[vert + horiz] = xs;\n });\n });\n\n var smallestWidth = findSmallestWidthAlignment(g, xss);\n alignCoordinates(xss, smallestWidth);\n return balance(xss, g.graph().align);\n}\n\nfunction sep(nodeSep, edgeSep, reverseSep) {\n return function(g, v, w) {\n var vLabel = g.node(v);\n var wLabel = g.node(w);\n var sum = 0;\n var delta;\n\n sum += vLabel.width / 2;\n if (_.has(vLabel, \"labelpos\")) {\n switch (vLabel.labelpos.toLowerCase()) {\n case \"l\": delta = -vLabel.width / 2; break;\n case \"r\": delta = vLabel.width / 2; break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n sum += (vLabel.dummy ? edgeSep : nodeSep) / 2;\n sum += (wLabel.dummy ? edgeSep : nodeSep) / 2;\n\n sum += wLabel.width / 2;\n if (_.has(wLabel, \"labelpos\")) {\n switch (wLabel.labelpos.toLowerCase()) {\n case \"l\": delta = wLabel.width / 2; break;\n case \"r\": delta = -wLabel.width / 2; break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n return sum;\n };\n}\n\nfunction width(g, v) {\n return g.node(v).width;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar util = require(\"../util\");\nvar positionX = require(\"./bk\").positionX;\n\nmodule.exports = position;\n\nfunction position(g) {\n g = util.asNonCompoundGraph(g);\n\n positionY(g);\n _.forEach(positionX(g), function(x, v) {\n g.node(v).x = x;\n });\n}\n\nfunction positionY(g) {\n var layering = util.buildLayerMatrix(g);\n var rankSep = g.graph().ranksep;\n var prevY = 0;\n _.forEach(layering, function(layer) {\n var maxHeight = _.max(_.map(layer, function(v) { return g.node(v).height; }));\n _.forEach(layer, function(v) {\n g.node(v).y = prevY + maxHeight / 2;\n });\n prevY += maxHeight + rankSep;\n });\n}\n\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar Graph = require(\"../graphlib\").Graph;\nvar slack = require(\"./util\").slack;\n\nmodule.exports = feasibleTree;\n\n/*\n * Constructs a spanning tree with tight edges and adjusted the input node's\n * ranks to achieve this. A tight edge is one that is has a length that matches\n * its \"minlen\" attribute.\n *\n * The basic structure for this function is derived from Gansner, et al., \"A\n * Technique for Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a DAG.\n * 2. Graph must be connected.\n * 3. Graph must have at least one node.\n * 5. Graph nodes must have been previously assigned a \"rank\" property that\n * respects the \"minlen\" property of incident edges.\n * 6. Graph edges must have a \"minlen\" property.\n *\n * Post-conditions:\n *\n * - Graph nodes will have their rank adjusted to ensure that all edges are\n * tight.\n *\n * Returns a tree (undirected graph) that is constructed using only \"tight\"\n * edges.\n */\nfunction feasibleTree(g) {\n var t = new Graph({ directed: false });\n\n // Choose arbitrary node from which to start our tree\n var start = g.nodes()[0];\n var size = g.nodeCount();\n t.setNode(start, {});\n\n var edge, delta;\n while (tightTree(t, g) < size) {\n edge = findMinSlackEdge(t, g);\n delta = t.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge);\n shiftRanks(t, g, delta);\n }\n\n return t;\n}\n\n/*\n * Finds a maximal tree of tight edges and returns the number of nodes in the\n * tree.\n */\nfunction tightTree(t, g) {\n function dfs(v) {\n _.forEach(g.nodeEdges(v), function(e) {\n var edgeV = e.v,\n w = (v === edgeV) ? e.w : edgeV;\n if (!t.hasNode(w) && !slack(g, e)) {\n t.setNode(w, {});\n t.setEdge(v, w, {});\n dfs(w);\n }\n });\n }\n\n _.forEach(t.nodes(), dfs);\n return t.nodeCount();\n}\n\n/*\n * Finds the edge with the smallest slack that is incident on tree and returns\n * it.\n */\nfunction findMinSlackEdge(t, g) {\n return _.minBy(g.edges(), function(e) {\n if (t.hasNode(e.v) !== t.hasNode(e.w)) {\n return slack(g, e);\n }\n });\n}\n\nfunction shiftRanks(t, g, delta) {\n _.forEach(t.nodes(), function(v) {\n g.node(v).rank += delta;\n });\n}\n","\"use strict\";\n\nvar rankUtil = require(\"./util\");\nvar longestPath = rankUtil.longestPath;\nvar feasibleTree = require(\"./feasible-tree\");\nvar networkSimplex = require(\"./network-simplex\");\n\nmodule.exports = rank;\n\n/*\n * Assigns a rank to each node in the input graph that respects the \"minlen\"\n * constraint specified on edges between nodes.\n *\n * This basic structure is derived from Gansner, et al., \"A Technique for\n * Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a connected DAG\n * 2. Graph nodes must be objects\n * 3. Graph edges must have \"weight\" and \"minlen\" attributes\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have a \"rank\" attribute based on the results of the\n * algorithm. Ranks can start at any index (including negative), we'll\n * fix them up later.\n */\nfunction rank(g) {\n switch(g.graph().ranker) {\n case \"network-simplex\": networkSimplexRanker(g); break;\n case \"tight-tree\": tightTreeRanker(g); break;\n case \"longest-path\": longestPathRanker(g); break;\n default: networkSimplexRanker(g);\n }\n}\n\n// A fast and simple ranker, but results are far from optimal.\nvar longestPathRanker = longestPath;\n\nfunction tightTreeRanker(g) {\n longestPath(g);\n feasibleTree(g);\n}\n\nfunction networkSimplexRanker(g) {\n networkSimplex(g);\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar feasibleTree = require(\"./feasible-tree\");\nvar slack = require(\"./util\").slack;\nvar initRank = require(\"./util\").longestPath;\nvar preorder = require(\"../graphlib\").alg.preorder;\nvar postorder = require(\"../graphlib\").alg.postorder;\nvar simplify = require(\"../util\").simplify;\n\nmodule.exports = networkSimplex;\n\n// Expose some internals for testing purposes\nnetworkSimplex.initLowLimValues = initLowLimValues;\nnetworkSimplex.initCutValues = initCutValues;\nnetworkSimplex.calcCutValue = calcCutValue;\nnetworkSimplex.leaveEdge = leaveEdge;\nnetworkSimplex.enterEdge = enterEdge;\nnetworkSimplex.exchangeEdges = exchangeEdges;\n\n/*\n * The network simplex algorithm assigns ranks to each node in the input graph\n * and iteratively improves the ranking to reduce the length of edges.\n *\n * Preconditions:\n *\n * 1. The input graph must be a DAG.\n * 2. All nodes in the graph must have an object value.\n * 3. All edges in the graph must have \"minlen\" and \"weight\" attributes.\n *\n * Postconditions:\n *\n * 1. All nodes in the graph will have an assigned \"rank\" attribute that has\n * been optimized by the network simplex algorithm. Ranks start at 0.\n *\n *\n * A rough sketch of the algorithm is as follows:\n *\n * 1. Assign initial ranks to each node. We use the longest path algorithm,\n * which assigns ranks to the lowest position possible. In general this\n * leads to very wide bottom ranks and unnecessarily long edges.\n * 2. Construct a feasible tight tree. A tight tree is one such that all\n * edges in the tree have no slack (difference between length of edge\n * and minlen for the edge). This by itself greatly improves the assigned\n * rankings by shorting edges.\n * 3. Iteratively find edges that have negative cut values. Generally a\n * negative cut value indicates that the edge could be removed and a new\n * tree edge could be added to produce a more compact graph.\n *\n * Much of the algorithms here are derived from Gansner, et al., \"A Technique\n * for Drawing Directed Graphs.\" The structure of the file roughly follows the\n * structure of the overall algorithm.\n */\nfunction networkSimplex(g) {\n g = simplify(g);\n initRank(g);\n var t = feasibleTree(g);\n initLowLimValues(t);\n initCutValues(t, g);\n\n var e, f;\n while ((e = leaveEdge(t))) {\n f = enterEdge(t, g, e);\n exchangeEdges(t, g, e, f);\n }\n}\n\n/*\n * Initializes cut values for all edges in the tree.\n */\nfunction initCutValues(t, g) {\n var vs = postorder(t, t.nodes());\n vs = vs.slice(0, vs.length - 1);\n _.forEach(vs, function(v) {\n assignCutValue(t, g, v);\n });\n}\n\nfunction assignCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n t.edge(child, parent).cutvalue = calcCutValue(t, g, child);\n}\n\n/*\n * Given the tight tree, its graph, and a child in the graph calculate and\n * return the cut value for the edge between the child and its parent.\n */\nfunction calcCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n // True if the child is on the tail end of the edge in the directed graph\n var childIsTail = true;\n // The graph's view of the tree edge we're inspecting\n var graphEdge = g.edge(child, parent);\n // The accumulated cut value for the edge between this node and its parent\n var cutValue = 0;\n\n if (!graphEdge) {\n childIsTail = false;\n graphEdge = g.edge(parent, child);\n }\n\n cutValue = graphEdge.weight;\n\n _.forEach(g.nodeEdges(child), function(e) {\n var isOutEdge = e.v === child,\n other = isOutEdge ? e.w : e.v;\n\n if (other !== parent) {\n var pointsToHead = isOutEdge === childIsTail,\n otherWeight = g.edge(e).weight;\n\n cutValue += pointsToHead ? otherWeight : -otherWeight;\n if (isTreeEdge(t, child, other)) {\n var otherCutValue = t.edge(child, other).cutvalue;\n cutValue += pointsToHead ? -otherCutValue : otherCutValue;\n }\n }\n });\n\n return cutValue;\n}\n\nfunction initLowLimValues(tree, root) {\n if (arguments.length < 2) {\n root = tree.nodes()[0];\n }\n dfsAssignLowLim(tree, {}, 1, root);\n}\n\nfunction dfsAssignLowLim(tree, visited, nextLim, v, parent) {\n var low = nextLim;\n var label = tree.node(v);\n\n visited[v] = true;\n _.forEach(tree.neighbors(v), function(w) {\n if (!_.has(visited, w)) {\n nextLim = dfsAssignLowLim(tree, visited, nextLim, w, v);\n }\n });\n\n label.low = low;\n label.lim = nextLim++;\n if (parent) {\n label.parent = parent;\n } else {\n // TODO should be able to remove this when we incrementally update low lim\n delete label.parent;\n }\n\n return nextLim;\n}\n\nfunction leaveEdge(tree) {\n return _.find(tree.edges(), function(e) {\n return tree.edge(e).cutvalue < 0;\n });\n}\n\nfunction enterEdge(t, g, edge) {\n var v = edge.v;\n var w = edge.w;\n\n // For the rest of this function we assume that v is the tail and w is the\n // head, so if we don't have this edge in the graph we should flip it to\n // match the correct orientation.\n if (!g.hasEdge(v, w)) {\n v = edge.w;\n w = edge.v;\n }\n\n var vLabel = t.node(v);\n var wLabel = t.node(w);\n var tailLabel = vLabel;\n var flip = false;\n\n // If the root is in the tail of the edge then we need to flip the logic that\n // checks for the head and tail nodes in the candidates function below.\n if (vLabel.lim > wLabel.lim) {\n tailLabel = wLabel;\n flip = true;\n }\n\n var candidates = _.filter(g.edges(), function(edge) {\n return flip === isDescendant(t, t.node(edge.v), tailLabel) &&\n flip !== isDescendant(t, t.node(edge.w), tailLabel);\n });\n\n return _.minBy(candidates, function(edge) { return slack(g, edge); });\n}\n\nfunction exchangeEdges(t, g, e, f) {\n var v = e.v;\n var w = e.w;\n t.removeEdge(v, w);\n t.setEdge(f.v, f.w, {});\n initLowLimValues(t);\n initCutValues(t, g);\n updateRanks(t, g);\n}\n\nfunction updateRanks(t, g) {\n var root = _.find(t.nodes(), function(v) { return !g.node(v).parent; });\n var vs = preorder(t, root);\n vs = vs.slice(1);\n _.forEach(vs, function(v) {\n var parent = t.node(v).parent,\n edge = g.edge(v, parent),\n flipped = false;\n\n if (!edge) {\n edge = g.edge(parent, v);\n flipped = true;\n }\n\n g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen);\n });\n}\n\n/*\n * Returns true if the edge is in the tree.\n */\nfunction isTreeEdge(tree, u, v) {\n return tree.hasEdge(u, v);\n}\n\n/*\n * Returns true if the specified node is descendant of the root node per the\n * assigned low and lim attributes in the tree.\n */\nfunction isDescendant(tree, vLabel, rootLabel) {\n return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\n\nmodule.exports = {\n longestPath: longestPath,\n slack: slack\n};\n\n/*\n * Initializes ranks for the input graph using the longest path algorithm. This\n * algorithm scales well and is fast in practice, it yields rather poor\n * solutions. Nodes are pushed to the lowest layer possible, leaving the bottom\n * ranks wide and leaving edges longer than necessary. However, due to its\n * speed, this algorithm is good for getting an initial ranking that can be fed\n * into other algorithms.\n *\n * This algorithm does not normalize layers because it will be used by other\n * algorithms in most cases. If using this algorithm directly, be sure to\n * run normalize at the end.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG.\n * 2. Input graph node labels can be assigned properties.\n *\n * Post-conditions:\n *\n * 1. Each node will be assign an (unnormalized) \"rank\" property.\n */\nfunction longestPath(g) {\n var visited = {};\n\n function dfs(v) {\n var label = g.node(v);\n if (_.has(visited, v)) {\n return label.rank;\n }\n visited[v] = true;\n\n var rank = _.min(_.map(g.outEdges(v), function(e) {\n return dfs(e.w) - g.edge(e).minlen;\n }));\n\n if (rank === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3\n rank === undefined || // return value of _.map([]) for Lodash 4\n rank === null) { // return value of _.map([null])\n rank = 0;\n }\n\n return (label.rank = rank);\n }\n\n _.forEach(g.sources(), dfs);\n}\n\n/*\n * Returns the amount of slack for the given edge. The slack is defined as the\n * difference between the length of the edge and its minimum length.\n */\nfunction slack(g, e) {\n return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen;\n}\n","/* eslint \"no-console\": off */\n\n\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar Graph = require(\"./graphlib\").Graph;\n\nmodule.exports = {\n addDummyNode: addDummyNode,\n simplify: simplify,\n asNonCompoundGraph: asNonCompoundGraph,\n successorWeights: successorWeights,\n predecessorWeights: predecessorWeights,\n intersectRect: intersectRect,\n buildLayerMatrix: buildLayerMatrix,\n normalizeRanks: normalizeRanks,\n removeEmptyRanks: removeEmptyRanks,\n addBorderNode: addBorderNode,\n maxRank: maxRank,\n partition: partition,\n time: time,\n notime: notime\n};\n\n/*\n * Adds a dummy node to the graph and return v.\n */\nfunction addDummyNode(g, type, attrs, name) {\n var v;\n do {\n v = _.uniqueId(name);\n } while (g.hasNode(v));\n\n attrs.dummy = type;\n g.setNode(v, attrs);\n return v;\n}\n\n/*\n * Returns a new graph with only simple edges. Handles aggregation of data\n * associated with multi-edges.\n */\nfunction simplify(g) {\n var simplified = new Graph().setGraph(g.graph());\n _.forEach(g.nodes(), function(v) { simplified.setNode(v, g.node(v)); });\n _.forEach(g.edges(), function(e) {\n var simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 };\n var label = g.edge(e);\n simplified.setEdge(e.v, e.w, {\n weight: simpleLabel.weight + label.weight,\n minlen: Math.max(simpleLabel.minlen, label.minlen)\n });\n });\n return simplified;\n}\n\nfunction asNonCompoundGraph(g) {\n var simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph());\n _.forEach(g.nodes(), function(v) {\n if (!g.children(v).length) {\n simplified.setNode(v, g.node(v));\n }\n });\n _.forEach(g.edges(), function(e) {\n simplified.setEdge(e, g.edge(e));\n });\n return simplified;\n}\n\nfunction successorWeights(g) {\n var weightMap = _.map(g.nodes(), function(v) {\n var sucs = {};\n _.forEach(g.outEdges(v), function(e) {\n sucs[e.w] = (sucs[e.w] || 0) + g.edge(e).weight;\n });\n return sucs;\n });\n return _.zipObject(g.nodes(), weightMap);\n}\n\nfunction predecessorWeights(g) {\n var weightMap = _.map(g.nodes(), function(v) {\n var preds = {};\n _.forEach(g.inEdges(v), function(e) {\n preds[e.v] = (preds[e.v] || 0) + g.edge(e).weight;\n });\n return preds;\n });\n return _.zipObject(g.nodes(), weightMap);\n}\n\n/*\n * Finds where a line starting at point ({x, y}) would intersect a rectangle\n * ({x, y, width, height}) if it were pointing at the rectangle's center.\n */\nfunction intersectRect(rect, point) {\n var x = rect.x;\n var y = rect.y;\n\n // Rectangle intersection algorithm from:\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n var dx = point.x - x;\n var dy = point.y - y;\n var w = rect.width / 2;\n var h = rect.height / 2;\n\n if (!dx && !dy) {\n throw new Error(\"Not possible to find intersection inside of the rectangle\");\n }\n\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n // Intersection is top or bottom of rect.\n if (dy < 0) {\n h = -h;\n }\n sx = h * dx / dy;\n sy = h;\n } else {\n // Intersection is left or right of rect.\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = w * dy / dx;\n }\n\n return { x: x + sx, y: y + sy };\n}\n\n/*\n * Given a DAG with each node assigned \"rank\" and \"order\" properties, this\n * function will produce a matrix with the ids of each node.\n */\nfunction buildLayerMatrix(g) {\n var layering = _.map(_.range(maxRank(g) + 1), function() { return []; });\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n var rank = node.rank;\n if (!_.isUndefined(rank)) {\n layering[rank][node.order] = v;\n }\n });\n return layering;\n}\n\n/*\n * Adjusts the ranks for all nodes in the graph such that all nodes v have\n * rank(v) >= 0 and at least one node w has rank(w) = 0.\n */\nfunction normalizeRanks(g) {\n var min = _.min(_.map(g.nodes(), function(v) { return g.node(v).rank; }));\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n if (_.has(node, \"rank\")) {\n node.rank -= min;\n }\n });\n}\n\nfunction removeEmptyRanks(g) {\n // Ranks may not start at 0, so we need to offset them\n var offset = _.min(_.map(g.nodes(), function(v) { return g.node(v).rank; }));\n\n var layers = [];\n _.forEach(g.nodes(), function(v) {\n var rank = g.node(v).rank - offset;\n if (!layers[rank]) {\n layers[rank] = [];\n }\n layers[rank].push(v);\n });\n\n var delta = 0;\n var nodeRankFactor = g.graph().nodeRankFactor;\n _.forEach(layers, function(vs, i) {\n if (_.isUndefined(vs) && i % nodeRankFactor !== 0) {\n --delta;\n } else if (delta) {\n _.forEach(vs, function(v) { g.node(v).rank += delta; });\n }\n });\n}\n\nfunction addBorderNode(g, prefix, rank, order) {\n var node = {\n width: 0,\n height: 0\n };\n if (arguments.length >= 4) {\n node.rank = rank;\n node.order = order;\n }\n return addDummyNode(g, \"border\", node, prefix);\n}\n\nfunction maxRank(g) {\n return _.max(_.map(g.nodes(), function(v) {\n var rank = g.node(v).rank;\n if (!_.isUndefined(rank)) {\n return rank;\n }\n }));\n}\n\n/*\n * Partition a collection into two groups: `lhs` and `rhs`. If the supplied\n * function returns true for an entry it goes into `lhs`. Otherwise it goes\n * into `rhs.\n */\nfunction partition(collection, fn) {\n var result = { lhs: [], rhs: [] };\n _.forEach(collection, function(value) {\n if (fn(value)) {\n result.lhs.push(value);\n } else {\n result.rhs.push(value);\n }\n });\n return result;\n}\n\n/*\n * Returns a new function that wraps `fn` with a timer. The wrapper logs the\n * time it takes to execute the function.\n */\nfunction time(name, fn) {\n var start = _.now();\n try {\n return fn();\n } finally {\n console.log(name + \" time: \" + (_.now() - start) + \"ms\");\n }\n}\n\nfunction notime(name, fn) {\n return fn();\n}\n","module.exports = \"0.8.5\";\n","/*! @license DOMPurify 2.3.10 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.10/LICENSE */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DOMPurify = factory());\n})(this, (function () { 'use strict';\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\n\n var _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n\n if (!construct) {\n construct = function construct(Func, args) {\n return _construct(Func, _toConsumableArray(args));\n };\n }\n\n var arrayForEach = unapply(Array.prototype.forEach);\n var arrayPop = unapply(Array.prototype.pop);\n var arrayPush = unapply(Array.prototype.push);\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\n var stringMatch = unapply(String.prototype.match);\n var stringReplace = unapply(String.prototype.replace);\n var stringIndexOf = unapply(String.prototype.indexOf);\n var stringTrim = unapply(String.prototype.trim);\n var regExpTest = unapply(RegExp.prototype.test);\n var typeErrorCreate = unconstruct(TypeError);\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n }\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n }\n /* Add properties to a lookup table */\n\n function addToSet(set, array, transformCaseFunc) {\n transformCaseFunc = transformCaseFunc ? transformCaseFunc : stringToLowerCase;\n\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n\n while (l--) {\n var element = array[l];\n\n if (typeof element === 'string') {\n var lcElement = transformCaseFunc(element);\n\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n }\n /* Shallow clone an object */\n\n function clone(object) {\n var newObject = create(null);\n var property;\n\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n }\n /* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\n\n function lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n }\n\n var html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']); // SVG\n\n var svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']); // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n\n var svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n var mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']); // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n\n var mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n var text = freeze(['#text']);\n\n var html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\n var svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n var mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n var MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n\n var ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n\n var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n var DOCTYPE_NAME = seal(/^html$/i);\n\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\n\n\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if (_typeof(trustedTypes) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n } // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n\n\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html) {\n return html;\n },\n createScriptURL: function createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n\n function createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n\n\n DOMPurify.version = '2.3.10';\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n HTMLFormElement = window.HTMLFormElement,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n var ElementPrototype = Element.prototype;\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode'); // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n\n var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n var importNode = originalDocument.importNode;\n var documentMode = {};\n\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n var hooks = {};\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n var MUSTACHE_EXPR$1 = MUSTACHE_EXPR,\n ERB_EXPR$1 = ERB_EXPR,\n DATA_ATTR$1 = DATA_ATTR,\n ARIA_ATTR$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$1 = IS_ALLOWED_URI;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));\n /* Allowed attribute names */\n\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n\n var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n\n var FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n\n var FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n\n var ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n\n var ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n\n var SAFE_FOR_TEMPLATES = false;\n /* Decide if document with ... should be returned */\n\n var WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n\n var SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n\n var FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n\n var RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n\n var RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n\n var RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks? */\n\n var SANITIZE_DOM = true;\n /* Keep element content when removing element? */\n\n var KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n\n var IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n\n var USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n\n var FORBID_CONTENTS = null;\n var DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n\n var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n /* Parsing of strict XHTML documents */\n\n var PARSER_MEDIA_TYPE;\n var SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n var transformCaseFunc;\n /* Keep a reference to config to pass to hooks */\n\n var CONFIG = null;\n /* Ideally, do not touch anything below this line */\n\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n var isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n\n\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n\n\n if (!cfg || _typeof(cfg) !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n\n\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE = // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE; // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? function (x) {\n return x;\n } : stringToLowerCase;\n /* Set configuration parameters */\n\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n\n\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));\n ALLOWED_ATTR = [];\n\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n\n\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n\n\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n\n\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n\n\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n } // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n\n\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']); // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n\n var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n\n var ALL_SVG_TAGS = addToSet({}, svg$1);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n var ALL_MATHML_TAGS = addToSet({}, mathMl$1);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element); // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: HTML_NAMESPACE,\n tagName: 'template'\n };\n }\n\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n } // The only way to switch from MathML to SVG is via\n // svg if parent is either or MathML\n // text integration points.\n\n\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n } // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n\n\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n } // The only way to switch from SVG to MathML is via\n // and HTML integration points\n\n\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n } // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n\n\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n } // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n\n\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n } // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG or MathML). Return false just in case.\n\n\n return false;\n };\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n\n\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n\n\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name); // We void attribute values for unremovable \"is\"\" attributes\n\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n\n\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc;\n var leadingWhitespace;\n\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml') {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '' + dirty + '';\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n\n\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;\n } catch (_) {// Syntax error if dirtyPayload is invalid xml\n }\n }\n\n var body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n\n\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n\n\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n };\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n\n\n var _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function');\n };\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n\n\n var _isNode = function _isNode(object) {\n return _typeof(Node) === 'object' ? object instanceof Node : object && _typeof(object) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n\n\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n\n\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content;\n /* Execute a hook if present */\n\n _executeHook('beforeSanitizeElements', currentNode, null);\n /* Check if element is clobbered or can clobber */\n\n\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Check if tagname contains Unicode */\n\n\n if (regExpTest(/[\\u0080-\\uFFFF]/, currentNode.nodeName)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Now let's check the element's type and name */\n\n\n var tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n\n\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Mitigate a problem with templates inside select */\n\n\n if (tagName === 'select' && regExpTest(/