All Downloads are FREE. Search and download functionalities are using the official Maven repository.

webapp.quadrantDiagram-c759a472.01f9dd4d.js.map Maven / Gradle / Ivy

{"mappings":"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GAAI,GAAI,GAAI,EAAG,CAAC,EAAG,EAAE,CAAE,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,GAAI,EAAE,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,EAAG,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,EAAE,EAAK,EAAK,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,GAAI,EAAE,EAAK,CAAC,EAAG,EAAE,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,CAAE,EAAG,EAAK,GAAI,CAAC,EAAG,GAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,EAAE,EAAG,EAAE,EAAK,CAAC,EAAG,EAAE,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,EAAK,GAAI,CAAC,EAAG,GAAG,CAAE,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,GAAI,EAAE,EAAK,CAAC,EAAG,GAAG,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,EAAK,GAAI,CAAC,EAAG,GAAG,CAAE,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,GAAI,EAAE,EAAK,CAAC,EAAG,GAAG,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,GAAI,EAAE,EAAK,CAAC,EAAG,GAAG,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,GAAI,EAAE,EAAK,CAAC,EAAG,GAAG,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,GAAI,EAAE,EAAK,CAAC,EAAG,GAAG,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,GAAI,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,GAAI,EAAE,EAAK,CAAC,EAAG,GAAG,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,GAAI,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,GAAI,EAAE,EAAK,CAAC,EAAG,GAAG,CAAE,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,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","sources":["","node_modules/mermaid/dist/quadrantDiagram-c759a472.js"],"sourcesContent":["\nfunction $parcel$export(e, n, v, s) {\n  Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n      var $parcel$global = globalThis;\n    var parcelRequire = $parcel$global[\"parcelRequire3bab\"];\nvar parcelRegister = parcelRequire.register;\nparcelRegister(\"4EBVK\", function(module, exports) {\n\n$parcel$export(module.exports, \"diagram\", () => $3638520e3a9ea8ca$export$6118d022d940d562);\n\nvar $4jcZX = parcelRequire(\"4jcZX\");\n\nvar $2YFJl = parcelRequire(\"2YFJl\");\nparcelRequire(\"eJNXH\");\nparcelRequire(\"gngdn\");\nparcelRequire(\"2ujND\");\nparcelRequire(\"i8Fxz\");\n\n\n\n\n\nvar $3638520e3a9ea8ca$var$parser = function() {\n    var o = function(k, v, o2, l) {\n        for(o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v);\n        return o2;\n    }, $V0 = [\n        1,\n        3\n    ], $V1 = [\n        1,\n        4\n    ], $V2 = [\n        1,\n        5\n    ], $V3 = [\n        1,\n        6\n    ], $V4 = [\n        1,\n        7\n    ], $V5 = [\n        1,\n        5,\n        13,\n        15,\n        17,\n        19,\n        20,\n        25,\n        27,\n        28,\n        29,\n        30,\n        31,\n        32,\n        33,\n        34,\n        37,\n        38,\n        40,\n        41,\n        42,\n        43,\n        44,\n        45,\n        46,\n        47,\n        48,\n        49,\n        50\n    ], $V6 = [\n        1,\n        5,\n        6,\n        13,\n        15,\n        17,\n        19,\n        20,\n        25,\n        27,\n        28,\n        29,\n        30,\n        31,\n        32,\n        33,\n        34,\n        37,\n        38,\n        40,\n        41,\n        42,\n        43,\n        44,\n        45,\n        46,\n        47,\n        48,\n        49,\n        50\n    ], $V7 = [\n        32,\n        33,\n        34\n    ], $V8 = [\n        2,\n        7\n    ], $V9 = [\n        1,\n        13\n    ], $Va = [\n        1,\n        17\n    ], $Vb = [\n        1,\n        18\n    ], $Vc = [\n        1,\n        19\n    ], $Vd = [\n        1,\n        20\n    ], $Ve = [\n        1,\n        21\n    ], $Vf = [\n        1,\n        22\n    ], $Vg = [\n        1,\n        23\n    ], $Vh = [\n        1,\n        24\n    ], $Vi = [\n        1,\n        25\n    ], $Vj = [\n        1,\n        26\n    ], $Vk = [\n        1,\n        27\n    ], $Vl = [\n        1,\n        30\n    ], $Vm = [\n        1,\n        31\n    ], $Vn = [\n        1,\n        32\n    ], $Vo = [\n        1,\n        33\n    ], $Vp = [\n        1,\n        34\n    ], $Vq = [\n        1,\n        35\n    ], $Vr = [\n        1,\n        36\n    ], $Vs = [\n        1,\n        37\n    ], $Vt = [\n        1,\n        38\n    ], $Vu = [\n        1,\n        39\n    ], $Vv = [\n        1,\n        40\n    ], $Vw = [\n        1,\n        41\n    ], $Vx = [\n        1,\n        42\n    ], $Vy = [\n        1,\n        57\n    ], $Vz = [\n        1,\n        58\n    ], $VA = [\n        5,\n        22,\n        26,\n        32,\n        33,\n        34,\n        40,\n        41,\n        42,\n        43,\n        44,\n        45,\n        46,\n        47,\n        48,\n        49,\n        50,\n        51\n    ];\n    var parser2 = {\n        trace: function trace() {},\n        yy: {},\n        symbols_: {\n            \"error\": 2,\n            \"start\": 3,\n            \"eol\": 4,\n            \"SPACE\": 5,\n            \"QUADRANT\": 6,\n            \"document\": 7,\n            \"line\": 8,\n            \"statement\": 9,\n            \"axisDetails\": 10,\n            \"quadrantDetails\": 11,\n            \"points\": 12,\n            \"title\": 13,\n            \"title_value\": 14,\n            \"acc_title\": 15,\n            \"acc_title_value\": 16,\n            \"acc_descr\": 17,\n            \"acc_descr_value\": 18,\n            \"acc_descr_multiline_value\": 19,\n            \"section\": 20,\n            \"text\": 21,\n            \"point_start\": 22,\n            \"point_x\": 23,\n            \"point_y\": 24,\n            \"X-AXIS\": 25,\n            \"AXIS-TEXT-DELIMITER\": 26,\n            \"Y-AXIS\": 27,\n            \"QUADRANT_1\": 28,\n            \"QUADRANT_2\": 29,\n            \"QUADRANT_3\": 30,\n            \"QUADRANT_4\": 31,\n            \"NEWLINE\": 32,\n            \"SEMI\": 33,\n            \"EOF\": 34,\n            \"alphaNumToken\": 35,\n            \"textNoTagsToken\": 36,\n            \"STR\": 37,\n            \"MD_STR\": 38,\n            \"alphaNum\": 39,\n            \"PUNCTUATION\": 40,\n            \"AMP\": 41,\n            \"NUM\": 42,\n            \"ALPHA\": 43,\n            \"COMMA\": 44,\n            \"PLUS\": 45,\n            \"EQUALS\": 46,\n            \"MULT\": 47,\n            \"DOT\": 48,\n            \"BRKT\": 49,\n            \"UNDERSCORE\": 50,\n            \"MINUS\": 51,\n            \"$accept\": 0,\n            \"$end\": 1\n        },\n        terminals_: {\n            2: \"error\",\n            5: \"SPACE\",\n            6: \"QUADRANT\",\n            13: \"title\",\n            14: \"title_value\",\n            15: \"acc_title\",\n            16: \"acc_title_value\",\n            17: \"acc_descr\",\n            18: \"acc_descr_value\",\n            19: \"acc_descr_multiline_value\",\n            20: \"section\",\n            22: \"point_start\",\n            23: \"point_x\",\n            24: \"point_y\",\n            25: \"X-AXIS\",\n            26: \"AXIS-TEXT-DELIMITER\",\n            27: \"Y-AXIS\",\n            28: \"QUADRANT_1\",\n            29: \"QUADRANT_2\",\n            30: \"QUADRANT_3\",\n            31: \"QUADRANT_4\",\n            32: \"NEWLINE\",\n            33: \"SEMI\",\n            34: \"EOF\",\n            37: \"STR\",\n            38: \"MD_STR\",\n            40: \"PUNCTUATION\",\n            41: \"AMP\",\n            42: \"NUM\",\n            43: \"ALPHA\",\n            44: \"COMMA\",\n            45: \"PLUS\",\n            46: \"EQUALS\",\n            47: \"MULT\",\n            48: \"DOT\",\n            49: \"BRKT\",\n            50: \"UNDERSCORE\",\n            51: \"MINUS\"\n        },\n        productions_: [\n            0,\n            [\n                3,\n                2\n            ],\n            [\n                3,\n                2\n            ],\n            [\n                3,\n                2\n            ],\n            [\n                7,\n                0\n            ],\n            [\n                7,\n                2\n            ],\n            [\n                8,\n                2\n            ],\n            [\n                9,\n                0\n            ],\n            [\n                9,\n                2\n            ],\n            [\n                9,\n                1\n            ],\n            [\n                9,\n                1\n            ],\n            [\n                9,\n                1\n            ],\n            [\n                9,\n                2\n            ],\n            [\n                9,\n                2\n            ],\n            [\n                9,\n                2\n            ],\n            [\n                9,\n                1\n            ],\n            [\n                9,\n                1\n            ],\n            [\n                12,\n                4\n            ],\n            [\n                10,\n                4\n            ],\n            [\n                10,\n                3\n            ],\n            [\n                10,\n                2\n            ],\n            [\n                10,\n                4\n            ],\n            [\n                10,\n                3\n            ],\n            [\n                10,\n                2\n            ],\n            [\n                11,\n                2\n            ],\n            [\n                11,\n                2\n            ],\n            [\n                11,\n                2\n            ],\n            [\n                11,\n                2\n            ],\n            [\n                4,\n                1\n            ],\n            [\n                4,\n                1\n            ],\n            [\n                4,\n                1\n            ],\n            [\n                21,\n                1\n            ],\n            [\n                21,\n                2\n            ],\n            [\n                21,\n                1\n            ],\n            [\n                21,\n                1\n            ],\n            [\n                39,\n                1\n            ],\n            [\n                39,\n                2\n            ],\n            [\n                35,\n                1\n            ],\n            [\n                35,\n                1\n            ],\n            [\n                35,\n                1\n            ],\n            [\n                35,\n                1\n            ],\n            [\n                35,\n                1\n            ],\n            [\n                35,\n                1\n            ],\n            [\n                35,\n                1\n            ],\n            [\n                35,\n                1\n            ],\n            [\n                35,\n                1\n            ],\n            [\n                35,\n                1\n            ],\n            [\n                35,\n                1\n            ],\n            [\n                36,\n                1\n            ],\n            [\n                36,\n                1\n            ],\n            [\n                36,\n                1\n            ]\n        ],\n        performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n            var $0 = $$.length - 1;\n            switch(yystate){\n                case 12:\n                    this.$ = $$[$0].trim();\n                    yy.setDiagramTitle(this.$);\n                    break;\n                case 13:\n                    this.$ = $$[$0].trim();\n                    yy.setAccTitle(this.$);\n                    break;\n                case 14:\n                case 15:\n                    this.$ = $$[$0].trim();\n                    yy.setAccDescription(this.$);\n                    break;\n                case 16:\n                    yy.addSection($$[$0].substr(8));\n                    this.$ = $$[$0].substr(8);\n                    break;\n                case 17:\n                    yy.addPoint($$[$0 - 3], $$[$0 - 1], $$[$0]);\n                    break;\n                case 18:\n                    yy.setXAxisLeftText($$[$0 - 2]);\n                    yy.setXAxisRightText($$[$0]);\n                    break;\n                case 19:\n                    $$[$0 - 1].text += \" \\u27F6 \";\n                    yy.setXAxisLeftText($$[$0 - 1]);\n                    break;\n                case 20:\n                    yy.setXAxisLeftText($$[$0]);\n                    break;\n                case 21:\n                    yy.setYAxisBottomText($$[$0 - 2]);\n                    yy.setYAxisTopText($$[$0]);\n                    break;\n                case 22:\n                    $$[$0 - 1].text += \" \\u27F6 \";\n                    yy.setYAxisBottomText($$[$0 - 1]);\n                    break;\n                case 23:\n                    yy.setYAxisBottomText($$[$0]);\n                    break;\n                case 24:\n                    yy.setQuadrant1Text($$[$0]);\n                    break;\n                case 25:\n                    yy.setQuadrant2Text($$[$0]);\n                    break;\n                case 26:\n                    yy.setQuadrant3Text($$[$0]);\n                    break;\n                case 27:\n                    yy.setQuadrant4Text($$[$0]);\n                    break;\n                case 31:\n                    this.$ = {\n                        text: $$[$0],\n                        type: \"text\"\n                    };\n                    break;\n                case 32:\n                    this.$ = {\n                        text: $$[$0 - 1].text + \"\" + $$[$0],\n                        type: $$[$0 - 1].type\n                    };\n                    break;\n                case 33:\n                    this.$ = {\n                        text: $$[$0],\n                        type: \"text\"\n                    };\n                    break;\n                case 34:\n                    this.$ = {\n                        text: $$[$0],\n                        type: \"markdown\"\n                    };\n                    break;\n                case 35:\n                    this.$ = $$[$0];\n                    break;\n                case 36:\n                    this.$ = $$[$0 - 1] + \"\" + $$[$0];\n                    break;\n            }\n        },\n        table: [\n            {\n                3: 1,\n                4: 2,\n                5: $V0,\n                6: $V1,\n                32: $V2,\n                33: $V3,\n                34: $V4\n            },\n            {\n                1: [\n                    3\n                ]\n            },\n            {\n                3: 8,\n                4: 2,\n                5: $V0,\n                6: $V1,\n                32: $V2,\n                33: $V3,\n                34: $V4\n            },\n            {\n                3: 9,\n                4: 2,\n                5: $V0,\n                6: $V1,\n                32: $V2,\n                33: $V3,\n                34: $V4\n            },\n            o($V5, [\n                2,\n                4\n            ], {\n                7: 10\n            }),\n            o($V6, [\n                2,\n                28\n            ]),\n            o($V6, [\n                2,\n                29\n            ]),\n            o($V6, [\n                2,\n                30\n            ]),\n            {\n                1: [\n                    2,\n                    1\n                ]\n            },\n            {\n                1: [\n                    2,\n                    2\n                ]\n            },\n            o($V7, $V8, {\n                8: 11,\n                9: 12,\n                10: 14,\n                11: 15,\n                12: 16,\n                21: 28,\n                35: 29,\n                1: [\n                    2,\n                    3\n                ],\n                5: $V9,\n                13: $Va,\n                15: $Vb,\n                17: $Vc,\n                19: $Vd,\n                20: $Ve,\n                25: $Vf,\n                27: $Vg,\n                28: $Vh,\n                29: $Vi,\n                30: $Vj,\n                31: $Vk,\n                37: $Vl,\n                38: $Vm,\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx\n            }),\n            o($V5, [\n                2,\n                5\n            ]),\n            {\n                4: 43,\n                32: $V2,\n                33: $V3,\n                34: $V4\n            },\n            o($V7, $V8, {\n                10: 14,\n                11: 15,\n                12: 16,\n                21: 28,\n                35: 29,\n                9: 44,\n                5: $V9,\n                13: $Va,\n                15: $Vb,\n                17: $Vc,\n                19: $Vd,\n                20: $Ve,\n                25: $Vf,\n                27: $Vg,\n                28: $Vh,\n                29: $Vi,\n                30: $Vj,\n                31: $Vk,\n                37: $Vl,\n                38: $Vm,\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx\n            }),\n            o($V7, [\n                2,\n                9\n            ]),\n            o($V7, [\n                2,\n                10\n            ]),\n            o($V7, [\n                2,\n                11\n            ]),\n            {\n                14: [\n                    1,\n                    45\n                ]\n            },\n            {\n                16: [\n                    1,\n                    46\n                ]\n            },\n            {\n                18: [\n                    1,\n                    47\n                ]\n            },\n            o($V7, [\n                2,\n                15\n            ]),\n            o($V7, [\n                2,\n                16\n            ]),\n            {\n                21: 48,\n                35: 29,\n                37: $Vl,\n                38: $Vm,\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx\n            },\n            {\n                21: 49,\n                35: 29,\n                37: $Vl,\n                38: $Vm,\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx\n            },\n            {\n                21: 50,\n                35: 29,\n                37: $Vl,\n                38: $Vm,\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx\n            },\n            {\n                21: 51,\n                35: 29,\n                37: $Vl,\n                38: $Vm,\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx\n            },\n            {\n                21: 52,\n                35: 29,\n                37: $Vl,\n                38: $Vm,\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx\n            },\n            {\n                21: 53,\n                35: 29,\n                37: $Vl,\n                38: $Vm,\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx\n            },\n            {\n                5: $Vy,\n                22: [\n                    1,\n                    54\n                ],\n                35: 56,\n                36: 55,\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx,\n                51: $Vz\n            },\n            o($VA, [\n                2,\n                31\n            ]),\n            o($VA, [\n                2,\n                33\n            ]),\n            o($VA, [\n                2,\n                34\n            ]),\n            o($VA, [\n                2,\n                37\n            ]),\n            o($VA, [\n                2,\n                38\n            ]),\n            o($VA, [\n                2,\n                39\n            ]),\n            o($VA, [\n                2,\n                40\n            ]),\n            o($VA, [\n                2,\n                41\n            ]),\n            o($VA, [\n                2,\n                42\n            ]),\n            o($VA, [\n                2,\n                43\n            ]),\n            o($VA, [\n                2,\n                44\n            ]),\n            o($VA, [\n                2,\n                45\n            ]),\n            o($VA, [\n                2,\n                46\n            ]),\n            o($VA, [\n                2,\n                47\n            ]),\n            o($V5, [\n                2,\n                6\n            ]),\n            o($V7, [\n                2,\n                8\n            ]),\n            o($V7, [\n                2,\n                12\n            ]),\n            o($V7, [\n                2,\n                13\n            ]),\n            o($V7, [\n                2,\n                14\n            ]),\n            o($V7, [\n                2,\n                20\n            ], {\n                36: 55,\n                35: 56,\n                5: $Vy,\n                26: [\n                    1,\n                    59\n                ],\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx,\n                51: $Vz\n            }),\n            o($V7, [\n                2,\n                23\n            ], {\n                36: 55,\n                35: 56,\n                5: $Vy,\n                26: [\n                    1,\n                    60\n                ],\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx,\n                51: $Vz\n            }),\n            o($V7, [\n                2,\n                24\n            ], {\n                36: 55,\n                35: 56,\n                5: $Vy,\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx,\n                51: $Vz\n            }),\n            o($V7, [\n                2,\n                25\n            ], {\n                36: 55,\n                35: 56,\n                5: $Vy,\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx,\n                51: $Vz\n            }),\n            o($V7, [\n                2,\n                26\n            ], {\n                36: 55,\n                35: 56,\n                5: $Vy,\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx,\n                51: $Vz\n            }),\n            o($V7, [\n                2,\n                27\n            ], {\n                36: 55,\n                35: 56,\n                5: $Vy,\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx,\n                51: $Vz\n            }),\n            {\n                23: [\n                    1,\n                    61\n                ]\n            },\n            o($VA, [\n                2,\n                32\n            ]),\n            o($VA, [\n                2,\n                48\n            ]),\n            o($VA, [\n                2,\n                49\n            ]),\n            o($VA, [\n                2,\n                50\n            ]),\n            o($V7, [\n                2,\n                19\n            ], {\n                35: 29,\n                21: 62,\n                37: $Vl,\n                38: $Vm,\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx\n            }),\n            o($V7, [\n                2,\n                22\n            ], {\n                35: 29,\n                21: 63,\n                37: $Vl,\n                38: $Vm,\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx\n            }),\n            {\n                24: [\n                    1,\n                    64\n                ]\n            },\n            o($V7, [\n                2,\n                18\n            ], {\n                36: 55,\n                35: 56,\n                5: $Vy,\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx,\n                51: $Vz\n            }),\n            o($V7, [\n                2,\n                21\n            ], {\n                36: 55,\n                35: 56,\n                5: $Vy,\n                40: $Vn,\n                41: $Vo,\n                42: $Vp,\n                43: $Vq,\n                44: $Vr,\n                45: $Vs,\n                46: $Vt,\n                47: $Vu,\n                48: $Vv,\n                49: $Vw,\n                50: $Vx,\n                51: $Vz\n            }),\n            o($V7, [\n                2,\n                17\n            ])\n        ],\n        defaultActions: {\n            8: [\n                2,\n                1\n            ],\n            9: [\n                2,\n                2\n            ]\n        },\n        parseError: function parseError(str, hash) {\n            if (hash.recoverable) this.trace(str);\n            else {\n                var error = new Error(str);\n                error.hash = hash;\n                throw error;\n            }\n        },\n        parse: function parse(input) {\n            var self = this, stack = [\n                0\n            ], tstack = [], vstack = [\n                null\n            ], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n            var args = lstack.slice.call(arguments, 1);\n            var lexer2 = Object.create(this.lexer);\n            var sharedState = {\n                yy: {}\n            };\n            for(var k in this.yy)if (Object.prototype.hasOwnProperty.call(this.yy, k)) sharedState.yy[k] = this.yy[k];\n            lexer2.setInput(input, sharedState.yy);\n            sharedState.yy.lexer = lexer2;\n            sharedState.yy.parser = this;\n            if (typeof lexer2.yylloc == \"undefined\") lexer2.yylloc = {};\n            var yyloc = lexer2.yylloc;\n            lstack.push(yyloc);\n            var ranges = lexer2.options && lexer2.options.ranges;\n            if (typeof sharedState.yy.parseError === \"function\") this.parseError = sharedState.yy.parseError;\n            else this.parseError = Object.getPrototypeOf(this).parseError;\n            function lex() {\n                var token;\n                token = tstack.pop() || lexer2.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, state, action, r, yyval = {}, p, len, newState, expected;\n            while(true){\n                state = stack[stack.length - 1];\n                if (this.defaultActions[state]) action = this.defaultActions[state];\n                else {\n                    if (symbol === null || typeof symbol == \"undefined\") symbol = lex();\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])if (this.terminals_[p] && p > TERROR) expected.push(\"'\" + this.terminals_[p] + \"'\");\n                    if (lexer2.showPosition) errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n                    else errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n                    this.parseError(errStr, {\n                        text: lexer2.match,\n                        token: this.terminals_[symbol] || symbol,\n                        line: lexer2.yylineno,\n                        loc: yyloc,\n                        expected: expected\n                    });\n                }\n                if (action[0] instanceof Array && action.length > 1) throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n                switch(action[0]){\n                    case 1:\n                        stack.push(symbol);\n                        vstack.push(lexer2.yytext);\n                        lstack.push(lexer2.yylloc);\n                        stack.push(action[1]);\n                        symbol = null;\n                        yyleng = lexer2.yyleng;\n                        yytext = lexer2.yytext;\n                        yylineno = lexer2.yylineno;\n                        yyloc = lexer2.yylloc;\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) yyval._$.range = [\n                            lstack[lstack.length - (len || 1)].range[0],\n                            lstack[lstack.length - 1].range[1]\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\") return r;\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    var lexer = function() {\n        var lexer2 = {\n            EOF: 1,\n            parseError: function parseError(str, hash) {\n                if (this.yy.parser) this.yy.parser.parseError(str, hash);\n                else throw new Error(str);\n            },\n            // resets the lexer, sets new input\n            setInput: 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 = [\n                    \"INITIAL\"\n                ];\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) this.yylloc.range = [\n                    0,\n                    0\n                ];\n                this.offset = 0;\n                return this;\n            },\n            // consumes and returns one char from the input\n            input: 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 this.yylloc.last_column++;\n                if (this.options.ranges) this.yylloc.range[1]++;\n                this._input = this._input.slice(1);\n                return ch;\n            },\n            // unshifts one char (or a string) into the input\n            unput: function(ch) {\n                var len = ch.length;\n                var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n                this._input = ch + this._input;\n                this.yytext = this.yytext.substr(0, this.yytext.length - 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                if (lines.length - 1) this.yylineno -= lines.length - 1;\n                var r = this.yylloc.range;\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 ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n                };\n                if (this.options.ranges) this.yylloc.range = [\n                    r[0],\n                    r[0] + this.yyleng - len\n                ];\n                this.yyleng = this.yytext.length;\n                return this;\n            },\n            // When called from action, caches matched text and appends it on next action\n            more: function() {\n                this._more = true;\n                return this;\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.\n            reject: function() {\n                if (this.options.backtrack_lexer) this._backtrack = true;\n                else 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                return this;\n            },\n            // retain first n characters of the match\n            less: function(n) {\n                this.unput(this.match.slice(n));\n            },\n            // displays already matched input, i.e. for error messages\n            pastInput: 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            // displays upcoming input, i.e. for error messages\n            upcomingInput: function() {\n                var next = this.match;\n                if (next.length < 20) next += this._input.substr(0, 20 - next.length);\n                return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n            },\n            // displays the character position where the lexing error occurred, i.e. for error messages\n            showPosition: function() {\n                var pre = this.pastInput();\n                var c = new Array(pre.length + 1).join(\"-\");\n                return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n            },\n            // test the lexed token: return FALSE when not a match, otherwise return token\n            test_match: function(match, indexed_rule) {\n                var token, lines, backup;\n                if (this.options.backtrack_lexer) {\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) backup.yylloc.range = this.yylloc.range.slice(0);\n                }\n                lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n                if (lines) this.yylineno += lines.length;\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 ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : 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) this.yylloc.range = [\n                    this.offset,\n                    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) this.done = false;\n                if (token) return token;\n                else if (this._backtrack) {\n                    for(var k in backup)this[k] = backup[k];\n                    return false;\n                }\n                return false;\n            },\n            // return next match in input\n            next: function() {\n                if (this.done) return this.EOF;\n                if (!this._input) this.done = true;\n                var token, match, tempMatch, 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) return token;\n                            else if (this._backtrack) {\n                                match = false;\n                                continue;\n                            } else return false;\n                        } else if (!this.options.flex) break;\n                    }\n                }\n                if (match) {\n                    token = this.test_match(match, rules[index]);\n                    if (token !== false) return token;\n                    return false;\n                }\n                if (this._input === \"\") return this.EOF;\n                else 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            // return next match that has a token\n            lex: function lex() {\n                var r = this.next();\n                if (r) return r;\n                else return this.lex();\n            },\n            // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n            begin: function begin(condition) {\n                this.conditionStack.push(condition);\n            },\n            // pop the previously active lexer condition state off the condition stack\n            popState: function popState() {\n                var n = this.conditionStack.length - 1;\n                if (n > 0) return this.conditionStack.pop();\n                else return this.conditionStack[0];\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]) return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n                else return this.conditions[\"INITIAL\"].rules;\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\n            topState: function topState(n) {\n                n = this.conditionStack.length - 1 - Math.abs(n || 0);\n                if (n >= 0) return this.conditionStack[n];\n                else return \"INITIAL\";\n            },\n            // alias for begin(condition)\n            pushState: function pushState(condition) {\n                this.begin(condition);\n            },\n            // return the number of states currently on the stack\n            stateStackSize: function stateStackSize() {\n                return this.conditionStack.length;\n            },\n            options: {\n                \"case-insensitive\": true\n            },\n            performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n                switch($avoiding_name_collisions){\n                    case 0:\n                        break;\n                    case 1:\n                        break;\n                    case 2:\n                        return 32;\n                    case 3:\n                        break;\n                    case 4:\n                        this.begin(\"title\");\n                        return 13;\n                    case 5:\n                        this.popState();\n                        return \"title_value\";\n                    case 6:\n                        this.begin(\"acc_title\");\n                        return 15;\n                    case 7:\n                        this.popState();\n                        return \"acc_title_value\";\n                    case 8:\n                        this.begin(\"acc_descr\");\n                        return 17;\n                    case 9:\n                        this.popState();\n                        return \"acc_descr_value\";\n                    case 10:\n                        this.begin(\"acc_descr_multiline\");\n                        break;\n                    case 11:\n                        this.popState();\n                        break;\n                    case 12:\n                        return \"acc_descr_multiline_value\";\n                    case 13:\n                        return 25;\n                    case 14:\n                        return 27;\n                    case 15:\n                        return 26;\n                    case 16:\n                        return 28;\n                    case 17:\n                        return 29;\n                    case 18:\n                        return 30;\n                    case 19:\n                        return 31;\n                    case 20:\n                        this.begin(\"md_string\");\n                        break;\n                    case 21:\n                        return \"MD_STR\";\n                    case 22:\n                        this.popState();\n                        break;\n                    case 23:\n                        this.begin(\"string\");\n                        break;\n                    case 24:\n                        this.popState();\n                        break;\n                    case 25:\n                        return \"STR\";\n                    case 26:\n                        this.begin(\"point_start\");\n                        return 22;\n                    case 27:\n                        this.begin(\"point_x\");\n                        return 23;\n                    case 28:\n                        this.popState();\n                        break;\n                    case 29:\n                        this.popState();\n                        this.begin(\"point_y\");\n                        break;\n                    case 30:\n                        this.popState();\n                        return 24;\n                    case 31:\n                        return 6;\n                    case 32:\n                        return 43;\n                    case 33:\n                        return \"COLON\";\n                    case 34:\n                        return 45;\n                    case 35:\n                        return 44;\n                    case 36:\n                        return 46;\n                    case 37:\n                        return 46;\n                    case 38:\n                        return 47;\n                    case 39:\n                        return 49;\n                    case 40:\n                        return 50;\n                    case 41:\n                        return 48;\n                    case 42:\n                        return 41;\n                    case 43:\n                        return 51;\n                    case 44:\n                        return 42;\n                    case 45:\n                        return 5;\n                    case 46:\n                        return 33;\n                    case 47:\n                        return 40;\n                    case 48:\n                        return 34;\n                }\n            },\n            rules: [\n                /^(?:%%(?!\\{)[^\\n]*)/i,\n                /^(?:[^\\}]%%[^\\n]*)/i,\n                /^(?:[\\n\\r]+)/i,\n                /^(?:%%[^\\n]*)/i,\n                /^(?:title\\b)/i,\n                /^(?:(?!\\n||)*[^\\n]*)/i,\n                /^(?:accTitle\\s*:\\s*)/i,\n                /^(?:(?!\\n||)*[^\\n]*)/i,\n                /^(?:accDescr\\s*:\\s*)/i,\n                /^(?:(?!\\n||)*[^\\n]*)/i,\n                /^(?:accDescr\\s*\\{\\s*)/i,\n                /^(?:[\\}])/i,\n                /^(?:[^\\}]*)/i,\n                /^(?: *x-axis *)/i,\n                /^(?: *y-axis *)/i,\n                /^(?: *--+> *)/i,\n                /^(?: *quadrant-1 *)/i,\n                /^(?: *quadrant-2 *)/i,\n                /^(?: *quadrant-3 *)/i,\n                /^(?: *quadrant-4 *)/i,\n                /^(?:[\"][`])/i,\n                /^(?:[^`\"]+)/i,\n                /^(?:[`][\"])/i,\n                /^(?:[\"])/i,\n                /^(?:[\"])/i,\n                /^(?:[^\"]*)/i,\n                /^(?:\\s*:\\s*\\[\\s*)/i,\n                /^(?:(1)|(0(.\\d+)?))/i,\n                /^(?:\\s*\\] *)/i,\n                /^(?:\\s*,\\s*)/i,\n                /^(?:(1)|(0(.\\d+)?))/i,\n                /^(?: *quadrantChart *)/i,\n                /^(?:[A-Za-z]+)/i,\n                /^(?::)/i,\n                /^(?:\\+)/i,\n                /^(?:,)/i,\n                /^(?:=)/i,\n                /^(?:=)/i,\n                /^(?:\\*)/i,\n                /^(?:#)/i,\n                /^(?:[\\_])/i,\n                /^(?:\\.)/i,\n                /^(?:&)/i,\n                /^(?:-)/i,\n                /^(?:[0-9]+)/i,\n                /^(?:\\s)/i,\n                /^(?:;)/i,\n                /^(?:[!\"#$%&'*+,-.`?\\\\_/])/i,\n                /^(?:$)/i\n            ],\n            conditions: {\n                \"point_y\": {\n                    \"rules\": [\n                        30\n                    ],\n                    \"inclusive\": false\n                },\n                \"point_x\": {\n                    \"rules\": [\n                        29\n                    ],\n                    \"inclusive\": false\n                },\n                \"point_start\": {\n                    \"rules\": [\n                        27,\n                        28\n                    ],\n                    \"inclusive\": false\n                },\n                \"acc_descr_multiline\": {\n                    \"rules\": [\n                        11,\n                        12\n                    ],\n                    \"inclusive\": false\n                },\n                \"acc_descr\": {\n                    \"rules\": [\n                        9\n                    ],\n                    \"inclusive\": false\n                },\n                \"acc_title\": {\n                    \"rules\": [\n                        7\n                    ],\n                    \"inclusive\": false\n                },\n                \"title\": {\n                    \"rules\": [\n                        5\n                    ],\n                    \"inclusive\": false\n                },\n                \"md_string\": {\n                    \"rules\": [\n                        21,\n                        22\n                    ],\n                    \"inclusive\": false\n                },\n                \"string\": {\n                    \"rules\": [\n                        24,\n                        25\n                    ],\n                    \"inclusive\": false\n                },\n                \"INITIAL\": {\n                    \"rules\": [\n                        0,\n                        1,\n                        2,\n                        3,\n                        4,\n                        6,\n                        8,\n                        10,\n                        13,\n                        14,\n                        15,\n                        16,\n                        17,\n                        18,\n                        19,\n                        20,\n                        23,\n                        26,\n                        31,\n                        32,\n                        33,\n                        34,\n                        35,\n                        36,\n                        37,\n                        38,\n                        39,\n                        40,\n                        41,\n                        42,\n                        43,\n                        44,\n                        45,\n                        46,\n                        47,\n                        48\n                    ],\n                    \"inclusive\": true\n                }\n            }\n        };\n        return lexer2;\n    }();\n    parser2.lexer = lexer;\n    function Parser() {\n        this.yy = {};\n    }\n    Parser.prototype = parser2;\n    parser2.Parser = Parser;\n    return new Parser();\n}();\n$3638520e3a9ea8ca$var$parser.parser = $3638520e3a9ea8ca$var$parser;\nconst $3638520e3a9ea8ca$var$parser$1 = $3638520e3a9ea8ca$var$parser;\nconst $3638520e3a9ea8ca$var$defaultThemeVariables = (0, $4jcZX.E)();\nclass $3638520e3a9ea8ca$var$QuadrantBuilder {\n    constructor(){\n        this.config = this.getDefaultConfig();\n        this.themeConfig = this.getDefaultThemeConfig();\n        this.data = this.getDefaultData();\n    }\n    getDefaultData() {\n        return {\n            titleText: \"\",\n            quadrant1Text: \"\",\n            quadrant2Text: \"\",\n            quadrant3Text: \"\",\n            quadrant4Text: \"\",\n            xAxisLeftText: \"\",\n            xAxisRightText: \"\",\n            yAxisBottomText: \"\",\n            yAxisTopText: \"\",\n            points: []\n        };\n    }\n    getDefaultConfig() {\n        var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n        return {\n            showXAxis: true,\n            showYAxis: true,\n            showTitle: true,\n            chartHeight: ((_a = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _a.chartWidth) || 500,\n            chartWidth: ((_b = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _b.chartHeight) || 500,\n            titlePadding: ((_c = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _c.titlePadding) || 10,\n            titleFontSize: ((_d = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _d.titleFontSize) || 20,\n            quadrantPadding: ((_e = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _e.quadrantPadding) || 5,\n            xAxisLabelPadding: ((_f = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _f.xAxisLabelPadding) || 5,\n            yAxisLabelPadding: ((_g = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _g.yAxisLabelPadding) || 5,\n            xAxisLabelFontSize: ((_h = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _h.xAxisLabelFontSize) || 16,\n            yAxisLabelFontSize: ((_i = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _i.yAxisLabelFontSize) || 16,\n            quadrantLabelFontSize: ((_j = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _j.quadrantLabelFontSize) || 16,\n            quadrantTextTopPadding: ((_k = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _k.quadrantTextTopPadding) || 5,\n            pointTextPadding: ((_l = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _l.pointTextPadding) || 5,\n            pointLabelFontSize: ((_m = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _m.pointLabelFontSize) || 12,\n            pointRadius: ((_n = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _n.pointRadius) || 5,\n            xAxisPosition: ((_o = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _o.xAxisPosition) || \"top\",\n            yAxisPosition: ((_p = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _p.yAxisPosition) || \"left\",\n            quadrantInternalBorderStrokeWidth: ((_q = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _q.quadrantInternalBorderStrokeWidth) || 1,\n            quadrantExternalBorderStrokeWidth: ((_r = (0, $4jcZX.B).quadrantChart) == null ? void 0 : _r.quadrantExternalBorderStrokeWidth) || 2\n        };\n    }\n    getDefaultThemeConfig() {\n        return {\n            quadrant1Fill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrant1Fill,\n            quadrant2Fill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrant2Fill,\n            quadrant3Fill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrant3Fill,\n            quadrant4Fill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrant4Fill,\n            quadrant1TextFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrant1TextFill,\n            quadrant2TextFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrant2TextFill,\n            quadrant3TextFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrant3TextFill,\n            quadrant4TextFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrant4TextFill,\n            quadrantPointFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrantPointFill,\n            quadrantPointTextFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrantPointTextFill,\n            quadrantXAxisTextFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrantXAxisTextFill,\n            quadrantYAxisTextFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrantYAxisTextFill,\n            quadrantTitleFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrantTitleFill,\n            quadrantInternalBorderStrokeFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrantInternalBorderStrokeFill,\n            quadrantExternalBorderStrokeFill: $3638520e3a9ea8ca$var$defaultThemeVariables.quadrantExternalBorderStrokeFill\n        };\n    }\n    clear() {\n        this.config = this.getDefaultConfig();\n        this.themeConfig = this.getDefaultThemeConfig();\n        this.data = this.getDefaultData();\n        (0, $4jcZX.l).info(\"clear called\");\n    }\n    setData(data) {\n        this.data = {\n            ...this.data,\n            ...data\n        };\n    }\n    addPoints(points) {\n        this.data.points = [\n            ...points,\n            ...this.data.points\n        ];\n    }\n    setConfig(config2) {\n        (0, $4jcZX.l).trace(\"setConfig called with: \", config2);\n        this.config = {\n            ...this.config,\n            ...config2\n        };\n    }\n    setThemeConfig(themeConfig) {\n        (0, $4jcZX.l).trace(\"setThemeConfig called with: \", themeConfig);\n        this.themeConfig = {\n            ...this.themeConfig,\n            ...themeConfig\n        };\n    }\n    calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle) {\n        const xAxisSpaceCalculation = this.config.xAxisLabelPadding * 2 + this.config.xAxisLabelFontSize;\n        const xAxisSpace = {\n            top: xAxisPosition === \"top\" && showXAxis ? xAxisSpaceCalculation : 0,\n            bottom: xAxisPosition === \"bottom\" && showXAxis ? xAxisSpaceCalculation : 0\n        };\n        const yAxisSpaceCalculation = this.config.yAxisLabelPadding * 2 + this.config.yAxisLabelFontSize;\n        const yAxisSpace = {\n            left: this.config.yAxisPosition === \"left\" && showYAxis ? yAxisSpaceCalculation : 0,\n            right: this.config.yAxisPosition === \"right\" && showYAxis ? yAxisSpaceCalculation : 0\n        };\n        const titleSpaceCalculation = this.config.titleFontSize + this.config.titlePadding * 2;\n        const titleSpace = {\n            top: showTitle ? titleSpaceCalculation : 0\n        };\n        const quadrantLeft = this.config.quadrantPadding + yAxisSpace.left;\n        const quadrantTop = this.config.quadrantPadding + xAxisSpace.top + titleSpace.top;\n        const quadrantWidth = this.config.chartWidth - this.config.quadrantPadding * 2 - yAxisSpace.left - yAxisSpace.right;\n        const quadrantHeight = this.config.chartHeight - this.config.quadrantPadding * 2 - xAxisSpace.top - xAxisSpace.bottom - titleSpace.top;\n        const quadrantHalfWidth = quadrantWidth / 2;\n        const quadrantHalfHeight = quadrantHeight / 2;\n        const quadrantSpace = {\n            quadrantLeft: quadrantLeft,\n            quadrantTop: quadrantTop,\n            quadrantWidth: quadrantWidth,\n            quadrantHalfWidth: quadrantHalfWidth,\n            quadrantHeight: quadrantHeight,\n            quadrantHalfHeight: quadrantHalfHeight\n        };\n        return {\n            xAxisSpace: xAxisSpace,\n            yAxisSpace: yAxisSpace,\n            titleSpace: titleSpace,\n            quadrantSpace: quadrantSpace\n        };\n    }\n    getAxisLabels(xAxisPosition, showXAxis, showYAxis, spaceData) {\n        const { quadrantSpace: quadrantSpace, titleSpace: titleSpace } = spaceData;\n        const { quadrantHalfHeight: quadrantHalfHeight, quadrantHeight: quadrantHeight, quadrantLeft: quadrantLeft, quadrantHalfWidth: quadrantHalfWidth, quadrantTop: quadrantTop, quadrantWidth: quadrantWidth } = quadrantSpace;\n        const drawXAxisLabelsInMiddle = Boolean(this.data.xAxisRightText);\n        const drawYAxisLabelsInMiddle = Boolean(this.data.yAxisTopText);\n        const axisLabels = [];\n        if (this.data.xAxisLeftText && showXAxis) axisLabels.push({\n            text: this.data.xAxisLeftText,\n            fill: this.themeConfig.quadrantXAxisTextFill,\n            x: quadrantLeft + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),\n            y: xAxisPosition === \"top\" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,\n            fontSize: this.config.xAxisLabelFontSize,\n            verticalPos: drawXAxisLabelsInMiddle ? \"center\" : \"left\",\n            horizontalPos: \"top\",\n            rotation: 0\n        });\n        if (this.data.xAxisRightText && showXAxis) axisLabels.push({\n            text: this.data.xAxisRightText,\n            fill: this.themeConfig.quadrantXAxisTextFill,\n            x: quadrantLeft + quadrantHalfWidth + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),\n            y: xAxisPosition === \"top\" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,\n            fontSize: this.config.xAxisLabelFontSize,\n            verticalPos: drawXAxisLabelsInMiddle ? \"center\" : \"left\",\n            horizontalPos: \"top\",\n            rotation: 0\n        });\n        if (this.data.yAxisBottomText && showYAxis) axisLabels.push({\n            text: this.data.yAxisBottomText,\n            fill: this.themeConfig.quadrantYAxisTextFill,\n            x: this.config.yAxisPosition === \"left\" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,\n            y: quadrantTop + quadrantHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),\n            fontSize: this.config.yAxisLabelFontSize,\n            verticalPos: drawYAxisLabelsInMiddle ? \"center\" : \"left\",\n            horizontalPos: \"top\",\n            rotation: -90\n        });\n        if (this.data.yAxisTopText && showYAxis) axisLabels.push({\n            text: this.data.yAxisTopText,\n            fill: this.themeConfig.quadrantYAxisTextFill,\n            x: this.config.yAxisPosition === \"left\" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,\n            y: quadrantTop + quadrantHalfHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),\n            fontSize: this.config.yAxisLabelFontSize,\n            verticalPos: drawYAxisLabelsInMiddle ? \"center\" : \"left\",\n            horizontalPos: \"top\",\n            rotation: -90\n        });\n        return axisLabels;\n    }\n    getQuadrants(spaceData) {\n        const { quadrantSpace: quadrantSpace } = spaceData;\n        const { quadrantHalfHeight: quadrantHalfHeight, quadrantLeft: quadrantLeft, quadrantHalfWidth: quadrantHalfWidth, quadrantTop: quadrantTop } = quadrantSpace;\n        const quadrants = [\n            {\n                text: {\n                    text: this.data.quadrant1Text,\n                    fill: this.themeConfig.quadrant1TextFill,\n                    x: 0,\n                    y: 0,\n                    fontSize: this.config.quadrantLabelFontSize,\n                    verticalPos: \"center\",\n                    horizontalPos: \"middle\",\n                    rotation: 0\n                },\n                x: quadrantLeft + quadrantHalfWidth,\n                y: quadrantTop,\n                width: quadrantHalfWidth,\n                height: quadrantHalfHeight,\n                fill: this.themeConfig.quadrant1Fill\n            },\n            {\n                text: {\n                    text: this.data.quadrant2Text,\n                    fill: this.themeConfig.quadrant2TextFill,\n                    x: 0,\n                    y: 0,\n                    fontSize: this.config.quadrantLabelFontSize,\n                    verticalPos: \"center\",\n                    horizontalPos: \"middle\",\n                    rotation: 0\n                },\n                x: quadrantLeft,\n                y: quadrantTop,\n                width: quadrantHalfWidth,\n                height: quadrantHalfHeight,\n                fill: this.themeConfig.quadrant2Fill\n            },\n            {\n                text: {\n                    text: this.data.quadrant3Text,\n                    fill: this.themeConfig.quadrant3TextFill,\n                    x: 0,\n                    y: 0,\n                    fontSize: this.config.quadrantLabelFontSize,\n                    verticalPos: \"center\",\n                    horizontalPos: \"middle\",\n                    rotation: 0\n                },\n                x: quadrantLeft,\n                y: quadrantTop + quadrantHalfHeight,\n                width: quadrantHalfWidth,\n                height: quadrantHalfHeight,\n                fill: this.themeConfig.quadrant3Fill\n            },\n            {\n                text: {\n                    text: this.data.quadrant4Text,\n                    fill: this.themeConfig.quadrant4TextFill,\n                    x: 0,\n                    y: 0,\n                    fontSize: this.config.quadrantLabelFontSize,\n                    verticalPos: \"center\",\n                    horizontalPos: \"middle\",\n                    rotation: 0\n                },\n                x: quadrantLeft + quadrantHalfWidth,\n                y: quadrantTop + quadrantHalfHeight,\n                width: quadrantHalfWidth,\n                height: quadrantHalfHeight,\n                fill: this.themeConfig.quadrant4Fill\n            }\n        ];\n        for (const quadrant of quadrants){\n            quadrant.text.x = quadrant.x + quadrant.width / 2;\n            if (this.data.points.length === 0) {\n                quadrant.text.y = quadrant.y + quadrant.height / 2;\n                quadrant.text.horizontalPos = \"middle\";\n            } else {\n                quadrant.text.y = quadrant.y + this.config.quadrantTextTopPadding;\n                quadrant.text.horizontalPos = \"top\";\n            }\n        }\n        return quadrants;\n    }\n    getQuadrantPoints(spaceData) {\n        const { quadrantSpace: quadrantSpace } = spaceData;\n        const { quadrantHeight: quadrantHeight, quadrantLeft: quadrantLeft, quadrantTop: quadrantTop, quadrantWidth: quadrantWidth } = quadrantSpace;\n        const xAxis = (0, $2YFJl.scaleLinear)().domain([\n            0,\n            1\n        ]).range([\n            quadrantLeft,\n            quadrantWidth + quadrantLeft\n        ]);\n        const yAxis = (0, $2YFJl.scaleLinear)().domain([\n            0,\n            1\n        ]).range([\n            quadrantHeight + quadrantTop,\n            quadrantTop\n        ]);\n        const points = this.data.points.map((point)=>{\n            const props = {\n                x: xAxis(point.x),\n                y: yAxis(point.y),\n                fill: this.themeConfig.quadrantPointFill,\n                radius: this.config.pointRadius,\n                text: {\n                    text: point.text,\n                    fill: this.themeConfig.quadrantPointTextFill,\n                    x: xAxis(point.x),\n                    y: yAxis(point.y) + this.config.pointTextPadding,\n                    verticalPos: \"center\",\n                    horizontalPos: \"top\",\n                    fontSize: this.config.pointLabelFontSize,\n                    rotation: 0\n                }\n            };\n            return props;\n        });\n        return points;\n    }\n    getBorders(spaceData) {\n        const halfExternalBorderWidth = this.config.quadrantExternalBorderStrokeWidth / 2;\n        const { quadrantSpace: quadrantSpace } = spaceData;\n        const { quadrantHalfHeight: quadrantHalfHeight, quadrantHeight: quadrantHeight, quadrantLeft: quadrantLeft, quadrantHalfWidth: quadrantHalfWidth, quadrantTop: quadrantTop, quadrantWidth: quadrantWidth } = quadrantSpace;\n        const borderLines = [\n            // top border\n            {\n                strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n                strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n                x1: quadrantLeft - halfExternalBorderWidth,\n                y1: quadrantTop,\n                x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,\n                y2: quadrantTop\n            },\n            // right border\n            {\n                strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n                strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n                x1: quadrantLeft + quadrantWidth,\n                y1: quadrantTop + halfExternalBorderWidth,\n                x2: quadrantLeft + quadrantWidth,\n                y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n            },\n            // bottom border\n            {\n                strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n                strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n                x1: quadrantLeft - halfExternalBorderWidth,\n                y1: quadrantTop + quadrantHeight,\n                x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,\n                y2: quadrantTop + quadrantHeight\n            },\n            // left border\n            {\n                strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n                strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n                x1: quadrantLeft,\n                y1: quadrantTop + halfExternalBorderWidth,\n                x2: quadrantLeft,\n                y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n            },\n            // vertical inner border\n            {\n                strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,\n                strokeWidth: this.config.quadrantInternalBorderStrokeWidth,\n                x1: quadrantLeft + quadrantHalfWidth,\n                y1: quadrantTop + halfExternalBorderWidth,\n                x2: quadrantLeft + quadrantHalfWidth,\n                y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n            },\n            // horizontal inner border\n            {\n                strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,\n                strokeWidth: this.config.quadrantInternalBorderStrokeWidth,\n                x1: quadrantLeft + halfExternalBorderWidth,\n                y1: quadrantTop + quadrantHalfHeight,\n                x2: quadrantLeft + quadrantWidth - halfExternalBorderWidth,\n                y2: quadrantTop + quadrantHalfHeight\n            }\n        ];\n        return borderLines;\n    }\n    getTitle(showTitle) {\n        if (showTitle) return {\n            text: this.data.titleText,\n            fill: this.themeConfig.quadrantTitleFill,\n            fontSize: this.config.titleFontSize,\n            horizontalPos: \"top\",\n            verticalPos: \"center\",\n            rotation: 0,\n            y: this.config.titlePadding,\n            x: this.config.chartWidth / 2\n        };\n        return;\n    }\n    build() {\n        const showXAxis = this.config.showXAxis && !!(this.data.xAxisLeftText || this.data.xAxisRightText);\n        const showYAxis = this.config.showYAxis && !!(this.data.yAxisTopText || this.data.yAxisBottomText);\n        const showTitle = this.config.showTitle && !!this.data.titleText;\n        const xAxisPosition = this.data.points.length > 0 ? \"bottom\" : this.config.xAxisPosition;\n        const calculatedSpace = this.calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle);\n        return {\n            points: this.getQuadrantPoints(calculatedSpace),\n            quadrants: this.getQuadrants(calculatedSpace),\n            axisLabels: this.getAxisLabels(xAxisPosition, showXAxis, showYAxis, calculatedSpace),\n            borderLines: this.getBorders(calculatedSpace),\n            title: this.getTitle(showTitle)\n        };\n    }\n}\nconst $3638520e3a9ea8ca$var$config = (0, $4jcZX.c)();\nfunction $3638520e3a9ea8ca$var$textSanitizer(text) {\n    return (0, $4jcZX.d)(text.trim(), $3638520e3a9ea8ca$var$config);\n}\nconst $3638520e3a9ea8ca$var$quadrantBuilder = new $3638520e3a9ea8ca$var$QuadrantBuilder();\nfunction $3638520e3a9ea8ca$var$setQuadrant1Text(textObj) {\n    $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n        quadrant1Text: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n    });\n}\nfunction $3638520e3a9ea8ca$var$setQuadrant2Text(textObj) {\n    $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n        quadrant2Text: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n    });\n}\nfunction $3638520e3a9ea8ca$var$setQuadrant3Text(textObj) {\n    $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n        quadrant3Text: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n    });\n}\nfunction $3638520e3a9ea8ca$var$setQuadrant4Text(textObj) {\n    $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n        quadrant4Text: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n    });\n}\nfunction $3638520e3a9ea8ca$var$setXAxisLeftText(textObj) {\n    $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n        xAxisLeftText: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n    });\n}\nfunction $3638520e3a9ea8ca$var$setXAxisRightText(textObj) {\n    $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n        xAxisRightText: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n    });\n}\nfunction $3638520e3a9ea8ca$var$setYAxisTopText(textObj) {\n    $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n        yAxisTopText: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n    });\n}\nfunction $3638520e3a9ea8ca$var$setYAxisBottomText(textObj) {\n    $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n        yAxisBottomText: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n    });\n}\nfunction $3638520e3a9ea8ca$var$addPoint(textObj, x, y) {\n    $3638520e3a9ea8ca$var$quadrantBuilder.addPoints([\n        {\n            x: x,\n            y: y,\n            text: $3638520e3a9ea8ca$var$textSanitizer(textObj.text)\n        }\n    ]);\n}\nfunction $3638520e3a9ea8ca$var$setWidth(width) {\n    $3638520e3a9ea8ca$var$quadrantBuilder.setConfig({\n        chartWidth: width\n    });\n}\nfunction $3638520e3a9ea8ca$var$setHeight(height) {\n    $3638520e3a9ea8ca$var$quadrantBuilder.setConfig({\n        chartHeight: height\n    });\n}\nfunction $3638520e3a9ea8ca$var$getQuadrantData() {\n    const config2 = (0, $4jcZX.c)();\n    const { themeVariables: themeVariables, quadrantChart: quadrantChartConfig } = config2;\n    if (quadrantChartConfig) $3638520e3a9ea8ca$var$quadrantBuilder.setConfig(quadrantChartConfig);\n    $3638520e3a9ea8ca$var$quadrantBuilder.setThemeConfig({\n        quadrant1Fill: themeVariables.quadrant1Fill,\n        quadrant2Fill: themeVariables.quadrant2Fill,\n        quadrant3Fill: themeVariables.quadrant3Fill,\n        quadrant4Fill: themeVariables.quadrant4Fill,\n        quadrant1TextFill: themeVariables.quadrant1TextFill,\n        quadrant2TextFill: themeVariables.quadrant2TextFill,\n        quadrant3TextFill: themeVariables.quadrant3TextFill,\n        quadrant4TextFill: themeVariables.quadrant4TextFill,\n        quadrantPointFill: themeVariables.quadrantPointFill,\n        quadrantPointTextFill: themeVariables.quadrantPointTextFill,\n        quadrantXAxisTextFill: themeVariables.quadrantXAxisTextFill,\n        quadrantYAxisTextFill: themeVariables.quadrantYAxisTextFill,\n        quadrantExternalBorderStrokeFill: themeVariables.quadrantExternalBorderStrokeFill,\n        quadrantInternalBorderStrokeFill: themeVariables.quadrantInternalBorderStrokeFill,\n        quadrantTitleFill: themeVariables.quadrantTitleFill\n    });\n    $3638520e3a9ea8ca$var$quadrantBuilder.setData({\n        titleText: (0, $4jcZX.t)()\n    });\n    return $3638520e3a9ea8ca$var$quadrantBuilder.build();\n}\nconst $3638520e3a9ea8ca$var$clear = function() {\n    $3638520e3a9ea8ca$var$quadrantBuilder.clear();\n    (0, $4jcZX.v)();\n};\nconst $3638520e3a9ea8ca$var$db = {\n    setWidth: $3638520e3a9ea8ca$var$setWidth,\n    setHeight: $3638520e3a9ea8ca$var$setHeight,\n    setQuadrant1Text: $3638520e3a9ea8ca$var$setQuadrant1Text,\n    setQuadrant2Text: $3638520e3a9ea8ca$var$setQuadrant2Text,\n    setQuadrant3Text: $3638520e3a9ea8ca$var$setQuadrant3Text,\n    setQuadrant4Text: $3638520e3a9ea8ca$var$setQuadrant4Text,\n    setXAxisLeftText: $3638520e3a9ea8ca$var$setXAxisLeftText,\n    setXAxisRightText: $3638520e3a9ea8ca$var$setXAxisRightText,\n    setYAxisTopText: $3638520e3a9ea8ca$var$setYAxisTopText,\n    setYAxisBottomText: $3638520e3a9ea8ca$var$setYAxisBottomText,\n    addPoint: $3638520e3a9ea8ca$var$addPoint,\n    getQuadrantData: $3638520e3a9ea8ca$var$getQuadrantData,\n    clear: $3638520e3a9ea8ca$var$clear,\n    setAccTitle: $4jcZX.s,\n    getAccTitle: $4jcZX.g,\n    setDiagramTitle: $4jcZX.q,\n    getDiagramTitle: $4jcZX.t,\n    getAccDescription: $4jcZX.a,\n    setAccDescription: $4jcZX.b\n};\nconst $3638520e3a9ea8ca$var$draw = (txt, id, _version, diagObj)=>{\n    var _a, _b, _c;\n    function getDominantBaseLine(horizontalPos) {\n        return horizontalPos === \"top\" ? \"hanging\" : \"middle\";\n    }\n    function getTextAnchor(verticalPos) {\n        return verticalPos === \"left\" ? \"start\" : \"middle\";\n    }\n    function getTransformation(data) {\n        return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`;\n    }\n    const conf = (0, $4jcZX.c)();\n    (0, $4jcZX.l).debug(\"Rendering quadrant chart\\n\" + txt);\n    const securityLevel = conf.securityLevel;\n    let sandboxElement;\n    if (securityLevel === \"sandbox\") sandboxElement = (0, $2YFJl.select)(\"#i\" + id);\n    const root = securityLevel === \"sandbox\" ? (0, $2YFJl.select)(sandboxElement.nodes()[0].contentDocument.body) : (0, $2YFJl.select)(\"body\");\n    const svg = root.select(`[id=\"${id}\"]`);\n    const group = svg.append(\"g\").attr(\"class\", \"main\");\n    const width = ((_a = conf.quadrantChart) == null ? void 0 : _a.chartWidth) || 500;\n    const height = ((_b = conf.quadrantChart) == null ? void 0 : _b.chartHeight) || 500;\n    (0, $4jcZX.i)(svg, height, width, ((_c = conf.quadrantChart) == null ? void 0 : _c.useMaxWidth) || true);\n    svg.attr(\"viewBox\", \"0 0 \" + width + \" \" + height);\n    diagObj.db.setHeight(height);\n    diagObj.db.setWidth(width);\n    const quadrantData = diagObj.db.getQuadrantData();\n    const quadrantsGroup = group.append(\"g\").attr(\"class\", \"quadrants\");\n    const borderGroup = group.append(\"g\").attr(\"class\", \"border\");\n    const dataPointGroup = group.append(\"g\").attr(\"class\", \"data-points\");\n    const labelGroup = group.append(\"g\").attr(\"class\", \"labels\");\n    const titleGroup = group.append(\"g\").attr(\"class\", \"title\");\n    if (quadrantData.title) titleGroup.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", quadrantData.title.fill).attr(\"font-size\", quadrantData.title.fontSize).attr(\"dominant-baseline\", getDominantBaseLine(quadrantData.title.horizontalPos)).attr(\"text-anchor\", getTextAnchor(quadrantData.title.verticalPos)).attr(\"transform\", getTransformation(quadrantData.title)).text(quadrantData.title.text);\n    if (quadrantData.borderLines) borderGroup.selectAll(\"line\").data(quadrantData.borderLines).enter().append(\"line\").attr(\"x1\", (data)=>data.x1).attr(\"y1\", (data)=>data.y1).attr(\"x2\", (data)=>data.x2).attr(\"y2\", (data)=>data.y2).style(\"stroke\", (data)=>data.strokeFill).style(\"stroke-width\", (data)=>data.strokeWidth);\n    const quadrants = quadrantsGroup.selectAll(\"g.quadrant\").data(quadrantData.quadrants).enter().append(\"g\").attr(\"class\", \"quadrant\");\n    quadrants.append(\"rect\").attr(\"x\", (data)=>data.x).attr(\"y\", (data)=>data.y).attr(\"width\", (data)=>data.width).attr(\"height\", (data)=>data.height).attr(\"fill\", (data)=>data.fill);\n    quadrants.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", (data)=>data.text.fill).attr(\"font-size\", (data)=>data.text.fontSize).attr(\"dominant-baseline\", (data)=>getDominantBaseLine(data.text.horizontalPos)).attr(\"text-anchor\", (data)=>getTextAnchor(data.text.verticalPos)).attr(\"transform\", (data)=>getTransformation(data.text)).text((data)=>data.text.text);\n    const labels = labelGroup.selectAll(\"g.label\").data(quadrantData.axisLabels).enter().append(\"g\").attr(\"class\", \"label\");\n    labels.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).text((data)=>data.text).attr(\"fill\", (data)=>data.fill).attr(\"font-size\", (data)=>data.fontSize).attr(\"dominant-baseline\", (data)=>getDominantBaseLine(data.horizontalPos)).attr(\"text-anchor\", (data)=>getTextAnchor(data.verticalPos)).attr(\"transform\", (data)=>getTransformation(data));\n    const dataPoints = dataPointGroup.selectAll(\"g.data-point\").data(quadrantData.points).enter().append(\"g\").attr(\"class\", \"data-point\");\n    dataPoints.append(\"circle\").attr(\"cx\", (data)=>data.x).attr(\"cy\", (data)=>data.y).attr(\"r\", (data)=>data.radius).attr(\"fill\", (data)=>data.fill);\n    dataPoints.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).text((data)=>data.text.text).attr(\"fill\", (data)=>data.text.fill).attr(\"font-size\", (data)=>data.text.fontSize).attr(\"dominant-baseline\", (data)=>getDominantBaseLine(data.text.horizontalPos)).attr(\"text-anchor\", (data)=>getTextAnchor(data.text.verticalPos)).attr(\"transform\", (data)=>getTransformation(data.text));\n};\nconst $3638520e3a9ea8ca$var$renderer = {\n    draw: $3638520e3a9ea8ca$var$draw\n};\nconst $3638520e3a9ea8ca$export$6118d022d940d562 = {\n    parser: $3638520e3a9ea8ca$var$parser$1,\n    db: $3638520e3a9ea8ca$var$db,\n    renderer: $3638520e3a9ea8ca$var$renderer,\n    styles: ()=>\"\"\n};\n\n});\n\n\n//# sourceMappingURL=quadrantDiagram-c759a472.01f9dd4d.js.map\n","import { E as getThemeVariables, B as defaultConfig, l as log, s as setAccTitle, g as getAccTitle, q as setDiagramTitle, t as getDiagramTitle, a as getAccDescription, b as setAccDescription, c as getConfig, v as clear$1, d as sanitizeText, i as configureSvgSize } from \"./mermaid-6dc72991.js\";\nimport { scaleLinear, select } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n  var o = function(k, v, o2, l) {\n    for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n      ;\n    return o2;\n  }, $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [1, 7], $V5 = [1, 5, 13, 15, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $V6 = [1, 5, 6, 13, 15, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $V7 = [32, 33, 34], $V8 = [2, 7], $V9 = [1, 13], $Va = [1, 17], $Vb = [1, 18], $Vc = [1, 19], $Vd = [1, 20], $Ve = [1, 21], $Vf = [1, 22], $Vg = [1, 23], $Vh = [1, 24], $Vi = [1, 25], $Vj = [1, 26], $Vk = [1, 27], $Vl = [1, 30], $Vm = [1, 31], $Vn = [1, 32], $Vo = [1, 33], $Vp = [1, 34], $Vq = [1, 35], $Vr = [1, 36], $Vs = [1, 37], $Vt = [1, 38], $Vu = [1, 39], $Vv = [1, 40], $Vw = [1, 41], $Vx = [1, 42], $Vy = [1, 57], $Vz = [1, 58], $VA = [5, 22, 26, 32, 33, 34, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51];\n  var parser2 = {\n    trace: function trace() {\n    },\n    yy: {},\n    symbols_: { \"error\": 2, \"start\": 3, \"eol\": 4, \"SPACE\": 5, \"QUADRANT\": 6, \"document\": 7, \"line\": 8, \"statement\": 9, \"axisDetails\": 10, \"quadrantDetails\": 11, \"points\": 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, \"text\": 21, \"point_start\": 22, \"point_x\": 23, \"point_y\": 24, \"X-AXIS\": 25, \"AXIS-TEXT-DELIMITER\": 26, \"Y-AXIS\": 27, \"QUADRANT_1\": 28, \"QUADRANT_2\": 29, \"QUADRANT_3\": 30, \"QUADRANT_4\": 31, \"NEWLINE\": 32, \"SEMI\": 33, \"EOF\": 34, \"alphaNumToken\": 35, \"textNoTagsToken\": 36, \"STR\": 37, \"MD_STR\": 38, \"alphaNum\": 39, \"PUNCTUATION\": 40, \"AMP\": 41, \"NUM\": 42, \"ALPHA\": 43, \"COMMA\": 44, \"PLUS\": 45, \"EQUALS\": 46, \"MULT\": 47, \"DOT\": 48, \"BRKT\": 49, \"UNDERSCORE\": 50, \"MINUS\": 51, \"$accept\": 0, \"$end\": 1 },\n    terminals_: { 2: \"error\", 5: \"SPACE\", 6: \"QUADRANT\", 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\", 22: \"point_start\", 23: \"point_x\", 24: \"point_y\", 25: \"X-AXIS\", 26: \"AXIS-TEXT-DELIMITER\", 27: \"Y-AXIS\", 28: \"QUADRANT_1\", 29: \"QUADRANT_2\", 30: \"QUADRANT_3\", 31: \"QUADRANT_4\", 32: \"NEWLINE\", 33: \"SEMI\", 34: \"EOF\", 37: \"STR\", 38: \"MD_STR\", 40: \"PUNCTUATION\", 41: \"AMP\", 42: \"NUM\", 43: \"ALPHA\", 44: \"COMMA\", 45: \"PLUS\", 46: \"EQUALS\", 47: \"MULT\", 48: \"DOT\", 49: \"BRKT\", 50: \"UNDERSCORE\", 51: \"MINUS\" },\n    productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [9, 0], [9, 2], [9, 1], [9, 1], [9, 1], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [12, 4], [10, 4], [10, 3], [10, 2], [10, 4], [10, 3], [10, 2], [11, 2], [11, 2], [11, 2], [11, 2], [4, 1], [4, 1], [4, 1], [21, 1], [21, 2], [21, 1], [21, 1], [39, 1], [39, 2], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [36, 1], [36, 1], [36, 1]],\n    performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n      var $0 = $$.length - 1;\n      switch (yystate) {\n        case 12:\n          this.$ = $$[$0].trim();\n          yy.setDiagramTitle(this.$);\n          break;\n        case 13:\n          this.$ = $$[$0].trim();\n          yy.setAccTitle(this.$);\n          break;\n        case 14:\n        case 15:\n          this.$ = $$[$0].trim();\n          yy.setAccDescription(this.$);\n          break;\n        case 16:\n          yy.addSection($$[$0].substr(8));\n          this.$ = $$[$0].substr(8);\n          break;\n        case 17:\n          yy.addPoint($$[$0 - 3], $$[$0 - 1], $$[$0]);\n          break;\n        case 18:\n          yy.setXAxisLeftText($$[$0 - 2]);\n          yy.setXAxisRightText($$[$0]);\n          break;\n        case 19:\n          $$[$0 - 1].text += \" ⟶ \";\n          yy.setXAxisLeftText($$[$0 - 1]);\n          break;\n        case 20:\n          yy.setXAxisLeftText($$[$0]);\n          break;\n        case 21:\n          yy.setYAxisBottomText($$[$0 - 2]);\n          yy.setYAxisTopText($$[$0]);\n          break;\n        case 22:\n          $$[$0 - 1].text += \" ⟶ \";\n          yy.setYAxisBottomText($$[$0 - 1]);\n          break;\n        case 23:\n          yy.setYAxisBottomText($$[$0]);\n          break;\n        case 24:\n          yy.setQuadrant1Text($$[$0]);\n          break;\n        case 25:\n          yy.setQuadrant2Text($$[$0]);\n          break;\n        case 26:\n          yy.setQuadrant3Text($$[$0]);\n          break;\n        case 27:\n          yy.setQuadrant4Text($$[$0]);\n          break;\n        case 31:\n          this.$ = { text: $$[$0], type: \"text\" };\n          break;\n        case 32:\n          this.$ = { text: $$[$0 - 1].text + \"\" + $$[$0], type: $$[$0 - 1].type };\n          break;\n        case 33:\n          this.$ = { text: $$[$0], type: \"text\" };\n          break;\n        case 34:\n          this.$ = { text: $$[$0], type: \"markdown\" };\n          break;\n        case 35:\n          this.$ = $$[$0];\n          break;\n        case 36:\n          this.$ = $$[$0 - 1] + \"\" + $$[$0];\n          break;\n      }\n    },\n    table: [{ 3: 1, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, { 1: [3] }, { 3: 8, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, { 3: 9, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, o($V5, [2, 4], { 7: 10 }), o($V6, [2, 28]), o($V6, [2, 29]), o($V6, [2, 30]), { 1: [2, 1] }, { 1: [2, 2] }, o($V7, $V8, { 8: 11, 9: 12, 10: 14, 11: 15, 12: 16, 21: 28, 35: 29, 1: [2, 3], 5: $V9, 13: $Va, 15: $Vb, 17: $Vc, 19: $Vd, 20: $Ve, 25: $Vf, 27: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V5, [2, 5]), { 4: 43, 32: $V2, 33: $V3, 34: $V4 }, o($V7, $V8, { 10: 14, 11: 15, 12: 16, 21: 28, 35: 29, 9: 44, 5: $V9, 13: $Va, 15: $Vb, 17: $Vc, 19: $Vd, 20: $Ve, 25: $Vf, 27: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V7, [2, 9]), o($V7, [2, 10]), o($V7, [2, 11]), { 14: [1, 45] }, { 16: [1, 46] }, { 18: [1, 47] }, o($V7, [2, 15]), o($V7, [2, 16]), { 21: 48, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 49, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 50, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 51, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 52, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 53, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 5: $Vy, 22: [1, 54], 35: 56, 36: 55, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }, o($VA, [2, 31]), o($VA, [2, 33]), o($VA, [2, 34]), o($VA, [2, 37]), o($VA, [2, 38]), o($VA, [2, 39]), o($VA, [2, 40]), o($VA, [2, 41]), o($VA, [2, 42]), o($VA, [2, 43]), o($VA, [2, 44]), o($VA, [2, 45]), o($VA, [2, 46]), o($VA, [2, 47]), o($V5, [2, 6]), o($V7, [2, 8]), o($V7, [2, 12]), o($V7, [2, 13]), o($V7, [2, 14]), o($V7, [2, 20], { 36: 55, 35: 56, 5: $Vy, 26: [1, 59], 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 23], { 36: 55, 35: 56, 5: $Vy, 26: [1, 60], 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 24], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 25], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 26], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 27], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), { 23: [1, 61] }, o($VA, [2, 32]), o($VA, [2, 48]), o($VA, [2, 49]), o($VA, [2, 50]), o($V7, [2, 19], { 35: 29, 21: 62, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V7, [2, 22], { 35: 29, 21: 63, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), { 24: [1, 64] }, o($V7, [2, 18], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 21], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 17])],\n    defaultActions: { 8: [2, 1], 9: [2, 2] },\n    parseError: 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    },\n    parse: function parse(input) {\n      var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n      var args = lstack.slice.call(arguments, 1);\n      var lexer2 = 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      lexer2.setInput(input, sharedState.yy);\n      sharedState.yy.lexer = lexer2;\n      sharedState.yy.parser = this;\n      if (typeof lexer2.yylloc == \"undefined\") {\n        lexer2.yylloc = {};\n      }\n      var yyloc = lexer2.yylloc;\n      lstack.push(yyloc);\n      var ranges = lexer2.options && lexer2.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 lex() {\n        var token;\n        token = tstack.pop() || lexer2.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, state, action, 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 (lexer2.showPosition) {\n            errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.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: lexer2.match,\n            token: this.terminals_[symbol] || symbol,\n            line: lexer2.yylineno,\n            loc: yyloc,\n            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(lexer2.yytext);\n            lstack.push(lexer2.yylloc);\n            stack.push(action[1]);\n            symbol = null;\n            {\n              yyleng = lexer2.yyleng;\n              yytext = lexer2.yytext;\n              yylineno = lexer2.yylineno;\n              yyloc = lexer2.yylloc;\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  var lexer = function() {\n    var lexer2 = {\n      EOF: 1,\n      parseError: 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      // resets the lexer, sets new input\n      setInput: 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      // consumes and returns one char from the input\n      input: 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        this._input = this._input.slice(1);\n        return ch;\n      },\n      // unshifts one char (or a string) into the input\n      unput: function(ch) {\n        var len = ch.length;\n        var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n        this._input = ch + this._input;\n        this.yytext = this.yytext.substr(0, this.yytext.length - 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        if (lines.length - 1) {\n          this.yylineno -= lines.length - 1;\n        }\n        var r = this.yylloc.range;\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 ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\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      // When called from action, caches matched text and appends it on next action\n      more: function() {\n        this._more = true;\n        return this;\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.\n      reject: 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        return this;\n      },\n      // retain first n characters of the match\n      less: function(n) {\n        this.unput(this.match.slice(n));\n      },\n      // displays already matched input, i.e. for error messages\n      pastInput: 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      // displays upcoming input, i.e. for error messages\n      upcomingInput: 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      // displays the character position where the lexing error occurred, i.e. for error messages\n      showPosition: function() {\n        var pre = this.pastInput();\n        var c = new Array(pre.length + 1).join(\"-\");\n        return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n      },\n      // test the lexed token: return FALSE when not a match, otherwise return token\n      test_match: function(match, indexed_rule) {\n        var token, lines, backup;\n        if (this.options.backtrack_lexer) {\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        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 ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : 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          for (var k in backup) {\n            this[k] = backup[k];\n          }\n          return false;\n        }\n        return false;\n      },\n      // return next match in input\n      next: function() {\n        if (this.done) {\n          return this.EOF;\n        }\n        if (!this._input) {\n          this.done = true;\n        }\n        var token, match, tempMatch, 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;\n              } else {\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          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      // return next match that has a token\n      lex: function lex() {\n        var r = this.next();\n        if (r) {\n          return r;\n        } else {\n          return this.lex();\n        }\n      },\n      // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n      begin: function begin(condition) {\n        this.conditionStack.push(condition);\n      },\n      // pop the previously active lexer condition state off the condition stack\n      popState: 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      // 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      // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n      topState: 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      // alias for begin(condition)\n      pushState: function pushState(condition) {\n        this.begin(condition);\n      },\n      // return the number of states currently on the stack\n      stateStackSize: function stateStackSize() {\n        return this.conditionStack.length;\n      },\n      options: { \"case-insensitive\": true },\n      performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n        switch ($avoiding_name_collisions) {\n          case 0:\n            break;\n          case 1:\n            break;\n          case 2:\n            return 32;\n          case 3:\n            break;\n          case 4:\n            this.begin(\"title\");\n            return 13;\n          case 5:\n            this.popState();\n            return \"title_value\";\n          case 6:\n            this.begin(\"acc_title\");\n            return 15;\n          case 7:\n            this.popState();\n            return \"acc_title_value\";\n          case 8:\n            this.begin(\"acc_descr\");\n            return 17;\n          case 9:\n            this.popState();\n            return \"acc_descr_value\";\n          case 10:\n            this.begin(\"acc_descr_multiline\");\n            break;\n          case 11:\n            this.popState();\n            break;\n          case 12:\n            return \"acc_descr_multiline_value\";\n          case 13:\n            return 25;\n          case 14:\n            return 27;\n          case 15:\n            return 26;\n          case 16:\n            return 28;\n          case 17:\n            return 29;\n          case 18:\n            return 30;\n          case 19:\n            return 31;\n          case 20:\n            this.begin(\"md_string\");\n            break;\n          case 21:\n            return \"MD_STR\";\n          case 22:\n            this.popState();\n            break;\n          case 23:\n            this.begin(\"string\");\n            break;\n          case 24:\n            this.popState();\n            break;\n          case 25:\n            return \"STR\";\n          case 26:\n            this.begin(\"point_start\");\n            return 22;\n          case 27:\n            this.begin(\"point_x\");\n            return 23;\n          case 28:\n            this.popState();\n            break;\n          case 29:\n            this.popState();\n            this.begin(\"point_y\");\n            break;\n          case 30:\n            this.popState();\n            return 24;\n          case 31:\n            return 6;\n          case 32:\n            return 43;\n          case 33:\n            return \"COLON\";\n          case 34:\n            return 45;\n          case 35:\n            return 44;\n          case 36:\n            return 46;\n          case 37:\n            return 46;\n          case 38:\n            return 47;\n          case 39:\n            return 49;\n          case 40:\n            return 50;\n          case 41:\n            return 48;\n          case 42:\n            return 41;\n          case 43:\n            return 51;\n          case 44:\n            return 42;\n          case 45:\n            return 5;\n          case 46:\n            return 33;\n          case 47:\n            return 40;\n          case 48:\n            return 34;\n        }\n      },\n      rules: [/^(?:%%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n\\r]+)/i, /^(?:%%[^\\n]*)/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, /^(?: *x-axis *)/i, /^(?: *y-axis *)/i, /^(?: *--+> *)/i, /^(?: *quadrant-1 *)/i, /^(?: *quadrant-2 *)/i, /^(?: *quadrant-3 *)/i, /^(?: *quadrant-4 *)/i, /^(?:[\"][`])/i, /^(?:[^`\"]+)/i, /^(?:[`][\"])/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:\\s*:\\s*\\[\\s*)/i, /^(?:(1)|(0(.\\d+)?))/i, /^(?:\\s*\\] *)/i, /^(?:\\s*,\\s*)/i, /^(?:(1)|(0(.\\d+)?))/i, /^(?: *quadrantChart *)/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:=)/i, /^(?:\\*)/i, /^(?:#)/i, /^(?:[\\_])/i, /^(?:\\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\\s)/i, /^(?:;)/i, /^(?:[!\"#$%&'*+,-.`?\\\\_/])/i, /^(?:$)/i],\n      conditions: { \"point_y\": { \"rules\": [30], \"inclusive\": false }, \"point_x\": { \"rules\": [29], \"inclusive\": false }, \"point_start\": { \"rules\": [27, 28], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [11, 12], \"inclusive\": false }, \"acc_descr\": { \"rules\": [9], \"inclusive\": false }, \"acc_title\": { \"rules\": [7], \"inclusive\": false }, \"title\": { \"rules\": [5], \"inclusive\": false }, \"md_string\": { \"rules\": [21, 22], \"inclusive\": false }, \"string\": { \"rules\": [24, 25], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 23, 26, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48], \"inclusive\": true } }\n    };\n    return lexer2;\n  }();\n  parser2.lexer = lexer;\n  function Parser() {\n    this.yy = {};\n  }\n  Parser.prototype = parser2;\n  parser2.Parser = Parser;\n  return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nconst defaultThemeVariables = getThemeVariables();\nclass QuadrantBuilder {\n  constructor() {\n    this.config = this.getDefaultConfig();\n    this.themeConfig = this.getDefaultThemeConfig();\n    this.data = this.getDefaultData();\n  }\n  getDefaultData() {\n    return {\n      titleText: \"\",\n      quadrant1Text: \"\",\n      quadrant2Text: \"\",\n      quadrant3Text: \"\",\n      quadrant4Text: \"\",\n      xAxisLeftText: \"\",\n      xAxisRightText: \"\",\n      yAxisBottomText: \"\",\n      yAxisTopText: \"\",\n      points: []\n    };\n  }\n  getDefaultConfig() {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n    return {\n      showXAxis: true,\n      showYAxis: true,\n      showTitle: true,\n      chartHeight: ((_a = defaultConfig.quadrantChart) == null ? void 0 : _a.chartWidth) || 500,\n      chartWidth: ((_b = defaultConfig.quadrantChart) == null ? void 0 : _b.chartHeight) || 500,\n      titlePadding: ((_c = defaultConfig.quadrantChart) == null ? void 0 : _c.titlePadding) || 10,\n      titleFontSize: ((_d = defaultConfig.quadrantChart) == null ? void 0 : _d.titleFontSize) || 20,\n      quadrantPadding: ((_e = defaultConfig.quadrantChart) == null ? void 0 : _e.quadrantPadding) || 5,\n      xAxisLabelPadding: ((_f = defaultConfig.quadrantChart) == null ? void 0 : _f.xAxisLabelPadding) || 5,\n      yAxisLabelPadding: ((_g = defaultConfig.quadrantChart) == null ? void 0 : _g.yAxisLabelPadding) || 5,\n      xAxisLabelFontSize: ((_h = defaultConfig.quadrantChart) == null ? void 0 : _h.xAxisLabelFontSize) || 16,\n      yAxisLabelFontSize: ((_i = defaultConfig.quadrantChart) == null ? void 0 : _i.yAxisLabelFontSize) || 16,\n      quadrantLabelFontSize: ((_j = defaultConfig.quadrantChart) == null ? void 0 : _j.quadrantLabelFontSize) || 16,\n      quadrantTextTopPadding: ((_k = defaultConfig.quadrantChart) == null ? void 0 : _k.quadrantTextTopPadding) || 5,\n      pointTextPadding: ((_l = defaultConfig.quadrantChart) == null ? void 0 : _l.pointTextPadding) || 5,\n      pointLabelFontSize: ((_m = defaultConfig.quadrantChart) == null ? void 0 : _m.pointLabelFontSize) || 12,\n      pointRadius: ((_n = defaultConfig.quadrantChart) == null ? void 0 : _n.pointRadius) || 5,\n      xAxisPosition: ((_o = defaultConfig.quadrantChart) == null ? void 0 : _o.xAxisPosition) || \"top\",\n      yAxisPosition: ((_p = defaultConfig.quadrantChart) == null ? void 0 : _p.yAxisPosition) || \"left\",\n      quadrantInternalBorderStrokeWidth: ((_q = defaultConfig.quadrantChart) == null ? void 0 : _q.quadrantInternalBorderStrokeWidth) || 1,\n      quadrantExternalBorderStrokeWidth: ((_r = defaultConfig.quadrantChart) == null ? void 0 : _r.quadrantExternalBorderStrokeWidth) || 2\n    };\n  }\n  getDefaultThemeConfig() {\n    return {\n      quadrant1Fill: defaultThemeVariables.quadrant1Fill,\n      quadrant2Fill: defaultThemeVariables.quadrant2Fill,\n      quadrant3Fill: defaultThemeVariables.quadrant3Fill,\n      quadrant4Fill: defaultThemeVariables.quadrant4Fill,\n      quadrant1TextFill: defaultThemeVariables.quadrant1TextFill,\n      quadrant2TextFill: defaultThemeVariables.quadrant2TextFill,\n      quadrant3TextFill: defaultThemeVariables.quadrant3TextFill,\n      quadrant4TextFill: defaultThemeVariables.quadrant4TextFill,\n      quadrantPointFill: defaultThemeVariables.quadrantPointFill,\n      quadrantPointTextFill: defaultThemeVariables.quadrantPointTextFill,\n      quadrantXAxisTextFill: defaultThemeVariables.quadrantXAxisTextFill,\n      quadrantYAxisTextFill: defaultThemeVariables.quadrantYAxisTextFill,\n      quadrantTitleFill: defaultThemeVariables.quadrantTitleFill,\n      quadrantInternalBorderStrokeFill: defaultThemeVariables.quadrantInternalBorderStrokeFill,\n      quadrantExternalBorderStrokeFill: defaultThemeVariables.quadrantExternalBorderStrokeFill\n    };\n  }\n  clear() {\n    this.config = this.getDefaultConfig();\n    this.themeConfig = this.getDefaultThemeConfig();\n    this.data = this.getDefaultData();\n    log.info(\"clear called\");\n  }\n  setData(data) {\n    this.data = { ...this.data, ...data };\n  }\n  addPoints(points) {\n    this.data.points = [...points, ...this.data.points];\n  }\n  setConfig(config2) {\n    log.trace(\"setConfig called with: \", config2);\n    this.config = { ...this.config, ...config2 };\n  }\n  setThemeConfig(themeConfig) {\n    log.trace(\"setThemeConfig called with: \", themeConfig);\n    this.themeConfig = { ...this.themeConfig, ...themeConfig };\n  }\n  calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle) {\n    const xAxisSpaceCalculation = this.config.xAxisLabelPadding * 2 + this.config.xAxisLabelFontSize;\n    const xAxisSpace = {\n      top: xAxisPosition === \"top\" && showXAxis ? xAxisSpaceCalculation : 0,\n      bottom: xAxisPosition === \"bottom\" && showXAxis ? xAxisSpaceCalculation : 0\n    };\n    const yAxisSpaceCalculation = this.config.yAxisLabelPadding * 2 + this.config.yAxisLabelFontSize;\n    const yAxisSpace = {\n      left: this.config.yAxisPosition === \"left\" && showYAxis ? yAxisSpaceCalculation : 0,\n      right: this.config.yAxisPosition === \"right\" && showYAxis ? yAxisSpaceCalculation : 0\n    };\n    const titleSpaceCalculation = this.config.titleFontSize + this.config.titlePadding * 2;\n    const titleSpace = {\n      top: showTitle ? titleSpaceCalculation : 0\n    };\n    const quadrantLeft = this.config.quadrantPadding + yAxisSpace.left;\n    const quadrantTop = this.config.quadrantPadding + xAxisSpace.top + titleSpace.top;\n    const quadrantWidth = this.config.chartWidth - this.config.quadrantPadding * 2 - yAxisSpace.left - yAxisSpace.right;\n    const quadrantHeight = this.config.chartHeight - this.config.quadrantPadding * 2 - xAxisSpace.top - xAxisSpace.bottom - titleSpace.top;\n    const quadrantHalfWidth = quadrantWidth / 2;\n    const quadrantHalfHeight = quadrantHeight / 2;\n    const quadrantSpace = {\n      quadrantLeft,\n      quadrantTop,\n      quadrantWidth,\n      quadrantHalfWidth,\n      quadrantHeight,\n      quadrantHalfHeight\n    };\n    return {\n      xAxisSpace,\n      yAxisSpace,\n      titleSpace,\n      quadrantSpace\n    };\n  }\n  getAxisLabels(xAxisPosition, showXAxis, showYAxis, spaceData) {\n    const { quadrantSpace, titleSpace } = spaceData;\n    const {\n      quadrantHalfHeight,\n      quadrantHeight,\n      quadrantLeft,\n      quadrantHalfWidth,\n      quadrantTop,\n      quadrantWidth\n    } = quadrantSpace;\n    const drawXAxisLabelsInMiddle = Boolean(this.data.xAxisRightText);\n    const drawYAxisLabelsInMiddle = Boolean(this.data.yAxisTopText);\n    const axisLabels = [];\n    if (this.data.xAxisLeftText && showXAxis) {\n      axisLabels.push({\n        text: this.data.xAxisLeftText,\n        fill: this.themeConfig.quadrantXAxisTextFill,\n        x: quadrantLeft + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),\n        y: xAxisPosition === \"top\" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,\n        fontSize: this.config.xAxisLabelFontSize,\n        verticalPos: drawXAxisLabelsInMiddle ? \"center\" : \"left\",\n        horizontalPos: \"top\",\n        rotation: 0\n      });\n    }\n    if (this.data.xAxisRightText && showXAxis) {\n      axisLabels.push({\n        text: this.data.xAxisRightText,\n        fill: this.themeConfig.quadrantXAxisTextFill,\n        x: quadrantLeft + quadrantHalfWidth + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),\n        y: xAxisPosition === \"top\" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,\n        fontSize: this.config.xAxisLabelFontSize,\n        verticalPos: drawXAxisLabelsInMiddle ? \"center\" : \"left\",\n        horizontalPos: \"top\",\n        rotation: 0\n      });\n    }\n    if (this.data.yAxisBottomText && showYAxis) {\n      axisLabels.push({\n        text: this.data.yAxisBottomText,\n        fill: this.themeConfig.quadrantYAxisTextFill,\n        x: this.config.yAxisPosition === \"left\" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,\n        y: quadrantTop + quadrantHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),\n        fontSize: this.config.yAxisLabelFontSize,\n        verticalPos: drawYAxisLabelsInMiddle ? \"center\" : \"left\",\n        horizontalPos: \"top\",\n        rotation: -90\n      });\n    }\n    if (this.data.yAxisTopText && showYAxis) {\n      axisLabels.push({\n        text: this.data.yAxisTopText,\n        fill: this.themeConfig.quadrantYAxisTextFill,\n        x: this.config.yAxisPosition === \"left\" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,\n        y: quadrantTop + quadrantHalfHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),\n        fontSize: this.config.yAxisLabelFontSize,\n        verticalPos: drawYAxisLabelsInMiddle ? \"center\" : \"left\",\n        horizontalPos: \"top\",\n        rotation: -90\n      });\n    }\n    return axisLabels;\n  }\n  getQuadrants(spaceData) {\n    const { quadrantSpace } = spaceData;\n    const { quadrantHalfHeight, quadrantLeft, quadrantHalfWidth, quadrantTop } = quadrantSpace;\n    const quadrants = [\n      {\n        text: {\n          text: this.data.quadrant1Text,\n          fill: this.themeConfig.quadrant1TextFill,\n          x: 0,\n          y: 0,\n          fontSize: this.config.quadrantLabelFontSize,\n          verticalPos: \"center\",\n          horizontalPos: \"middle\",\n          rotation: 0\n        },\n        x: quadrantLeft + quadrantHalfWidth,\n        y: quadrantTop,\n        width: quadrantHalfWidth,\n        height: quadrantHalfHeight,\n        fill: this.themeConfig.quadrant1Fill\n      },\n      {\n        text: {\n          text: this.data.quadrant2Text,\n          fill: this.themeConfig.quadrant2TextFill,\n          x: 0,\n          y: 0,\n          fontSize: this.config.quadrantLabelFontSize,\n          verticalPos: \"center\",\n          horizontalPos: \"middle\",\n          rotation: 0\n        },\n        x: quadrantLeft,\n        y: quadrantTop,\n        width: quadrantHalfWidth,\n        height: quadrantHalfHeight,\n        fill: this.themeConfig.quadrant2Fill\n      },\n      {\n        text: {\n          text: this.data.quadrant3Text,\n          fill: this.themeConfig.quadrant3TextFill,\n          x: 0,\n          y: 0,\n          fontSize: this.config.quadrantLabelFontSize,\n          verticalPos: \"center\",\n          horizontalPos: \"middle\",\n          rotation: 0\n        },\n        x: quadrantLeft,\n        y: quadrantTop + quadrantHalfHeight,\n        width: quadrantHalfWidth,\n        height: quadrantHalfHeight,\n        fill: this.themeConfig.quadrant3Fill\n      },\n      {\n        text: {\n          text: this.data.quadrant4Text,\n          fill: this.themeConfig.quadrant4TextFill,\n          x: 0,\n          y: 0,\n          fontSize: this.config.quadrantLabelFontSize,\n          verticalPos: \"center\",\n          horizontalPos: \"middle\",\n          rotation: 0\n        },\n        x: quadrantLeft + quadrantHalfWidth,\n        y: quadrantTop + quadrantHalfHeight,\n        width: quadrantHalfWidth,\n        height: quadrantHalfHeight,\n        fill: this.themeConfig.quadrant4Fill\n      }\n    ];\n    for (const quadrant of quadrants) {\n      quadrant.text.x = quadrant.x + quadrant.width / 2;\n      if (this.data.points.length === 0) {\n        quadrant.text.y = quadrant.y + quadrant.height / 2;\n        quadrant.text.horizontalPos = \"middle\";\n      } else {\n        quadrant.text.y = quadrant.y + this.config.quadrantTextTopPadding;\n        quadrant.text.horizontalPos = \"top\";\n      }\n    }\n    return quadrants;\n  }\n  getQuadrantPoints(spaceData) {\n    const { quadrantSpace } = spaceData;\n    const { quadrantHeight, quadrantLeft, quadrantTop, quadrantWidth } = quadrantSpace;\n    const xAxis = scaleLinear().domain([0, 1]).range([quadrantLeft, quadrantWidth + quadrantLeft]);\n    const yAxis = scaleLinear().domain([0, 1]).range([quadrantHeight + quadrantTop, quadrantTop]);\n    const points = this.data.points.map((point) => {\n      const props = {\n        x: xAxis(point.x),\n        y: yAxis(point.y),\n        fill: this.themeConfig.quadrantPointFill,\n        radius: this.config.pointRadius,\n        text: {\n          text: point.text,\n          fill: this.themeConfig.quadrantPointTextFill,\n          x: xAxis(point.x),\n          y: yAxis(point.y) + this.config.pointTextPadding,\n          verticalPos: \"center\",\n          horizontalPos: \"top\",\n          fontSize: this.config.pointLabelFontSize,\n          rotation: 0\n        }\n      };\n      return props;\n    });\n    return points;\n  }\n  getBorders(spaceData) {\n    const halfExternalBorderWidth = this.config.quadrantExternalBorderStrokeWidth / 2;\n    const { quadrantSpace } = spaceData;\n    const {\n      quadrantHalfHeight,\n      quadrantHeight,\n      quadrantLeft,\n      quadrantHalfWidth,\n      quadrantTop,\n      quadrantWidth\n    } = quadrantSpace;\n    const borderLines = [\n      // top border\n      {\n        strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n        strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n        x1: quadrantLeft - halfExternalBorderWidth,\n        y1: quadrantTop,\n        x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,\n        y2: quadrantTop\n      },\n      // right border\n      {\n        strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n        strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n        x1: quadrantLeft + quadrantWidth,\n        y1: quadrantTop + halfExternalBorderWidth,\n        x2: quadrantLeft + quadrantWidth,\n        y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n      },\n      // bottom border\n      {\n        strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n        strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n        x1: quadrantLeft - halfExternalBorderWidth,\n        y1: quadrantTop + quadrantHeight,\n        x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,\n        y2: quadrantTop + quadrantHeight\n      },\n      // left border\n      {\n        strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n        strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n        x1: quadrantLeft,\n        y1: quadrantTop + halfExternalBorderWidth,\n        x2: quadrantLeft,\n        y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n      },\n      // vertical inner border\n      {\n        strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,\n        strokeWidth: this.config.quadrantInternalBorderStrokeWidth,\n        x1: quadrantLeft + quadrantHalfWidth,\n        y1: quadrantTop + halfExternalBorderWidth,\n        x2: quadrantLeft + quadrantHalfWidth,\n        y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n      },\n      // horizontal inner border\n      {\n        strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,\n        strokeWidth: this.config.quadrantInternalBorderStrokeWidth,\n        x1: quadrantLeft + halfExternalBorderWidth,\n        y1: quadrantTop + quadrantHalfHeight,\n        x2: quadrantLeft + quadrantWidth - halfExternalBorderWidth,\n        y2: quadrantTop + quadrantHalfHeight\n      }\n    ];\n    return borderLines;\n  }\n  getTitle(showTitle) {\n    if (showTitle) {\n      return {\n        text: this.data.titleText,\n        fill: this.themeConfig.quadrantTitleFill,\n        fontSize: this.config.titleFontSize,\n        horizontalPos: \"top\",\n        verticalPos: \"center\",\n        rotation: 0,\n        y: this.config.titlePadding,\n        x: this.config.chartWidth / 2\n      };\n    }\n    return;\n  }\n  build() {\n    const showXAxis = this.config.showXAxis && !!(this.data.xAxisLeftText || this.data.xAxisRightText);\n    const showYAxis = this.config.showYAxis && !!(this.data.yAxisTopText || this.data.yAxisBottomText);\n    const showTitle = this.config.showTitle && !!this.data.titleText;\n    const xAxisPosition = this.data.points.length > 0 ? \"bottom\" : this.config.xAxisPosition;\n    const calculatedSpace = this.calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle);\n    return {\n      points: this.getQuadrantPoints(calculatedSpace),\n      quadrants: this.getQuadrants(calculatedSpace),\n      axisLabels: this.getAxisLabels(xAxisPosition, showXAxis, showYAxis, calculatedSpace),\n      borderLines: this.getBorders(calculatedSpace),\n      title: this.getTitle(showTitle)\n    };\n  }\n}\nconst config = getConfig();\nfunction textSanitizer(text) {\n  return sanitizeText(text.trim(), config);\n}\nconst quadrantBuilder = new QuadrantBuilder();\nfunction setQuadrant1Text(textObj) {\n  quadrantBuilder.setData({ quadrant1Text: textSanitizer(textObj.text) });\n}\nfunction setQuadrant2Text(textObj) {\n  quadrantBuilder.setData({ quadrant2Text: textSanitizer(textObj.text) });\n}\nfunction setQuadrant3Text(textObj) {\n  quadrantBuilder.setData({ quadrant3Text: textSanitizer(textObj.text) });\n}\nfunction setQuadrant4Text(textObj) {\n  quadrantBuilder.setData({ quadrant4Text: textSanitizer(textObj.text) });\n}\nfunction setXAxisLeftText(textObj) {\n  quadrantBuilder.setData({ xAxisLeftText: textSanitizer(textObj.text) });\n}\nfunction setXAxisRightText(textObj) {\n  quadrantBuilder.setData({ xAxisRightText: textSanitizer(textObj.text) });\n}\nfunction setYAxisTopText(textObj) {\n  quadrantBuilder.setData({ yAxisTopText: textSanitizer(textObj.text) });\n}\nfunction setYAxisBottomText(textObj) {\n  quadrantBuilder.setData({ yAxisBottomText: textSanitizer(textObj.text) });\n}\nfunction addPoint(textObj, x, y) {\n  quadrantBuilder.addPoints([{ x, y, text: textSanitizer(textObj.text) }]);\n}\nfunction setWidth(width) {\n  quadrantBuilder.setConfig({ chartWidth: width });\n}\nfunction setHeight(height) {\n  quadrantBuilder.setConfig({ chartHeight: height });\n}\nfunction getQuadrantData() {\n  const config2 = getConfig();\n  const { themeVariables, quadrantChart: quadrantChartConfig } = config2;\n  if (quadrantChartConfig) {\n    quadrantBuilder.setConfig(quadrantChartConfig);\n  }\n  quadrantBuilder.setThemeConfig({\n    quadrant1Fill: themeVariables.quadrant1Fill,\n    quadrant2Fill: themeVariables.quadrant2Fill,\n    quadrant3Fill: themeVariables.quadrant3Fill,\n    quadrant4Fill: themeVariables.quadrant4Fill,\n    quadrant1TextFill: themeVariables.quadrant1TextFill,\n    quadrant2TextFill: themeVariables.quadrant2TextFill,\n    quadrant3TextFill: themeVariables.quadrant3TextFill,\n    quadrant4TextFill: themeVariables.quadrant4TextFill,\n    quadrantPointFill: themeVariables.quadrantPointFill,\n    quadrantPointTextFill: themeVariables.quadrantPointTextFill,\n    quadrantXAxisTextFill: themeVariables.quadrantXAxisTextFill,\n    quadrantYAxisTextFill: themeVariables.quadrantYAxisTextFill,\n    quadrantExternalBorderStrokeFill: themeVariables.quadrantExternalBorderStrokeFill,\n    quadrantInternalBorderStrokeFill: themeVariables.quadrantInternalBorderStrokeFill,\n    quadrantTitleFill: themeVariables.quadrantTitleFill\n  });\n  quadrantBuilder.setData({ titleText: getDiagramTitle() });\n  return quadrantBuilder.build();\n}\nconst clear = function() {\n  quadrantBuilder.clear();\n  clear$1();\n};\nconst db = {\n  setWidth,\n  setHeight,\n  setQuadrant1Text,\n  setQuadrant2Text,\n  setQuadrant3Text,\n  setQuadrant4Text,\n  setXAxisLeftText,\n  setXAxisRightText,\n  setYAxisTopText,\n  setYAxisBottomText,\n  addPoint,\n  getQuadrantData,\n  clear,\n  setAccTitle,\n  getAccTitle,\n  setDiagramTitle,\n  getDiagramTitle,\n  getAccDescription,\n  setAccDescription\n};\nconst draw = (txt, id, _version, diagObj) => {\n  var _a, _b, _c;\n  function getDominantBaseLine(horizontalPos) {\n    return horizontalPos === \"top\" ? \"hanging\" : \"middle\";\n  }\n  function getTextAnchor(verticalPos) {\n    return verticalPos === \"left\" ? \"start\" : \"middle\";\n  }\n  function getTransformation(data) {\n    return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`;\n  }\n  const conf = getConfig();\n  log.debug(\"Rendering quadrant chart\\n\" + txt);\n  const securityLevel = conf.securityLevel;\n  let sandboxElement;\n  if (securityLevel === \"sandbox\") {\n    sandboxElement = select(\"#i\" + id);\n  }\n  const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n  const svg = root.select(`[id=\"${id}\"]`);\n  const group = svg.append(\"g\").attr(\"class\", \"main\");\n  const width = ((_a = conf.quadrantChart) == null ? void 0 : _a.chartWidth) || 500;\n  const height = ((_b = conf.quadrantChart) == null ? void 0 : _b.chartHeight) || 500;\n  configureSvgSize(svg, height, width, ((_c = conf.quadrantChart) == null ? void 0 : _c.useMaxWidth) || true);\n  svg.attr(\"viewBox\", \"0 0 \" + width + \" \" + height);\n  diagObj.db.setHeight(height);\n  diagObj.db.setWidth(width);\n  const quadrantData = diagObj.db.getQuadrantData();\n  const quadrantsGroup = group.append(\"g\").attr(\"class\", \"quadrants\");\n  const borderGroup = group.append(\"g\").attr(\"class\", \"border\");\n  const dataPointGroup = group.append(\"g\").attr(\"class\", \"data-points\");\n  const labelGroup = group.append(\"g\").attr(\"class\", \"labels\");\n  const titleGroup = group.append(\"g\").attr(\"class\", \"title\");\n  if (quadrantData.title) {\n    titleGroup.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", quadrantData.title.fill).attr(\"font-size\", quadrantData.title.fontSize).attr(\"dominant-baseline\", getDominantBaseLine(quadrantData.title.horizontalPos)).attr(\"text-anchor\", getTextAnchor(quadrantData.title.verticalPos)).attr(\"transform\", getTransformation(quadrantData.title)).text(quadrantData.title.text);\n  }\n  if (quadrantData.borderLines) {\n    borderGroup.selectAll(\"line\").data(quadrantData.borderLines).enter().append(\"line\").attr(\"x1\", (data) => data.x1).attr(\"y1\", (data) => data.y1).attr(\"x2\", (data) => data.x2).attr(\"y2\", (data) => data.y2).style(\"stroke\", (data) => data.strokeFill).style(\"stroke-width\", (data) => data.strokeWidth);\n  }\n  const quadrants = quadrantsGroup.selectAll(\"g.quadrant\").data(quadrantData.quadrants).enter().append(\"g\").attr(\"class\", \"quadrant\");\n  quadrants.append(\"rect\").attr(\"x\", (data) => data.x).attr(\"y\", (data) => data.y).attr(\"width\", (data) => data.width).attr(\"height\", (data) => data.height).attr(\"fill\", (data) => data.fill);\n  quadrants.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", (data) => data.text.fill).attr(\"font-size\", (data) => data.text.fontSize).attr(\n    \"dominant-baseline\",\n    (data) => getDominantBaseLine(data.text.horizontalPos)\n  ).attr(\"text-anchor\", (data) => getTextAnchor(data.text.verticalPos)).attr(\"transform\", (data) => getTransformation(data.text)).text((data) => data.text.text);\n  const labels = labelGroup.selectAll(\"g.label\").data(quadrantData.axisLabels).enter().append(\"g\").attr(\"class\", \"label\");\n  labels.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).text((data) => data.text).attr(\"fill\", (data) => data.fill).attr(\"font-size\", (data) => data.fontSize).attr(\"dominant-baseline\", (data) => getDominantBaseLine(data.horizontalPos)).attr(\"text-anchor\", (data) => getTextAnchor(data.verticalPos)).attr(\"transform\", (data) => getTransformation(data));\n  const dataPoints = dataPointGroup.selectAll(\"g.data-point\").data(quadrantData.points).enter().append(\"g\").attr(\"class\", \"data-point\");\n  dataPoints.append(\"circle\").attr(\"cx\", (data) => data.x).attr(\"cy\", (data) => data.y).attr(\"r\", (data) => data.radius).attr(\"fill\", (data) => data.fill);\n  dataPoints.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).text((data) => data.text.text).attr(\"fill\", (data) => data.text.fill).attr(\"font-size\", (data) => data.text.fontSize).attr(\n    \"dominant-baseline\",\n    (data) => getDominantBaseLine(data.text.horizontalPos)\n  ).attr(\"text-anchor\", (data) => getTextAnchor(data.text.verticalPos)).attr(\"transform\", (data) => getTransformation(data.text));\n};\nconst renderer = {\n  draw\n};\nconst diagram = {\n  parser: parser$1,\n  db,\n  renderer,\n  styles: () => \"\"\n};\nexport {\n  diagram\n};\n"],"names":["parcelRequire","$parcel$global","globalThis","parcelRegister","register","module","exports","Object","defineProperty","get","$3638520e3a9ea8ca$export$6118d022d940d562","set","s","enumerable","configurable","$4jcZX","$2YFJl","$3638520e3a9ea8ca$var$parser","o","k","v","o2","l","length","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","parser2","trace","yy","symbols_","terminals_","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","trim","setDiagramTitle","setAccTitle","setAccDescription","addSection","substr","addPoint","setXAxisLeftText","setXAxisRightText","text","setYAxisBottomText","setYAxisTopText","setQuadrant1Text","setQuadrant2Text","setQuadrant3Text","setQuadrant4Text","type","table","defaultActions","parseError","str","hash","recoverable","error","Error","parse","input","self","stack","tstack","vstack","lstack","args","slice","call","arguments","lexer2","create","lexer","sharedState","prototype","hasOwnProperty","setInput","parser","yylloc","yyloc","push","ranges","options","getPrototypeOf","symbol","state","action","r","p","len","newState","expected","yyval","lex","token","pop","Array","errStr","showPosition","join","match","line","loc","first_line","last_line","first_column","last_column","range","apply","concat","Parser","EOF","_input","_more","_backtrack","done","matched","conditionStack","offset","ch","unput","lines","split","oldLines","more","reject","backtrack_lexer","less","n","pastInput","past","replace","upcomingInput","next","pre","c","test_match","indexed_rule","backup","matches","tempMatch","index","rules","_currentRules","i","flex","begin","condition","popState","conditions","topState","Math","abs","pushState","stateStackSize","yy_","$avoiding_name_collisions","YY_START","$3638520e3a9ea8ca$var$defaultThemeVariables","E","$3638520e3a9ea8ca$var$config","$3638520e3a9ea8ca$var$textSanitizer","d","$3638520e3a9ea8ca$var$quadrantBuilder","constructor","config","getDefaultConfig","themeConfig","getDefaultThemeConfig","data","getDefaultData","titleText","quadrant1Text","quadrant2Text","quadrant3Text","quadrant4Text","xAxisLeftText","xAxisRightText","yAxisBottomText","yAxisTopText","points","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","showXAxis","showYAxis","showTitle","chartHeight","B","quadrantChart","chartWidth","titlePadding","titleFontSize","quadrantPadding","xAxisLabelPadding","yAxisLabelPadding","xAxisLabelFontSize","yAxisLabelFontSize","quadrantLabelFontSize","quadrantTextTopPadding","pointTextPadding","pointLabelFontSize","pointRadius","xAxisPosition","yAxisPosition","quadrantInternalBorderStrokeWidth","quadrantExternalBorderStrokeWidth","quadrant1Fill","quadrant2Fill","quadrant3Fill","quadrant4Fill","quadrant1TextFill","quadrant2TextFill","quadrant3TextFill","quadrant4TextFill","quadrantPointFill","quadrantPointTextFill","quadrantXAxisTextFill","quadrantYAxisTextFill","quadrantTitleFill","quadrantInternalBorderStrokeFill","quadrantExternalBorderStrokeFill","clear","info","setData","addPoints","setConfig","config2","setThemeConfig","calculateSpace","xAxisSpaceCalculation","xAxisSpace","top","bottom","yAxisSpaceCalculation","yAxisSpace","left","right","titleSpaceCalculation","titleSpace","quadrantLeft","quadrantTop","quadrantWidth","quadrantHeight","quadrantSpace","quadrantHalfWidth","quadrantHalfHeight","getAxisLabels","spaceData","drawXAxisLabelsInMiddle","Boolean","drawYAxisLabelsInMiddle","axisLabels","fill","x","y","fontSize","verticalPos","horizontalPos","rotation","getQuadrants","quadrants","width","height","quadrant","getQuadrantPoints","xAxis","scaleLinear","domain","yAxis","map","point","radius","getBorders","halfExternalBorderWidth","strokeFill","strokeWidth","x1","y1","x2","y2","getTitle","build","calculatedSpace","borderLines","title","db","setWidth","setHeight","textObj","getQuadrantData","themeVariables","quadrantChartConfig","t","getAccTitle","g","q","getDiagramTitle","getAccDescription","a","b","renderer","draw","txt","id","_version","diagObj","sandboxElement","getDominantBaseLine","getTextAnchor","getTransformation","conf","debug","securityLevel","select","svg","root","nodes","contentDocument","body","group","append","attr","useMaxWidth","quadrantData","quadrantsGroup","borderGroup","dataPointGroup","labelGroup","titleGroup","selectAll","enter","style","labels","dataPoints","styles"],"version":3,"file":"quadrantDiagram-c759a472.01f9dd4d.js.map"}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy