\n * mermaid.initialize({\n * flowchart:{\n * htmlLabels: false\n * }\n * });\n *\n *\n * **Example 2:**\n *
\n * <script>\n * var config = {\n * startOnLoad:true,\n * flowchart:{\n * useMaxWidth:true,\n * htmlLabels:true,\n * curve:'cardinal',\n * },\n *\n * securityLevel:'loose',\n * };\n * mermaid.initialize(config);\n * </script>\n *\n * A summary of all options and their defaults is found [here](https://github.com/knsv/mermaid/blob/master/docs/mermaidAPI.md#mermaidapi-configuration-defaults). A description of each option follows below.\n *\n * @name Configuration\n */\nconst config = {\n /** theme , the CSS style sheet\n *\n * **theme** - Choose one of the built-in themes:\n * * default\n * * forest\n * * dark\n * * neutral.\n * To disable any pre-defined mermaid theme, use \"null\".\n *\n * **themeCSS** - Use your own CSS. This overrides **theme**.\n *
\n * \"theme\": \"forest\",\n * \"themeCSS\": \".node rect { fill: red; }\"\n *\n */\n theme: 'default',\n themeCSS: undefined,\n multilineDirectives: false,\n /* **maxTextSize** - The maximum allowed size of the users text diamgram */\n maxTextSize: 50000,\n\n /**\n * **fontFamily** The font to be used for the rendered diagrams. Default value is \\\"trebuchet ms\\\", verdana, arial;\n */\n fontFamily: '\"trebuchet ms\", verdana, arial;',\n\n /**\n * This option decides the amount of logging to be used.\n * * debug: 1\n * * info: 2\n * * warn: 3\n * * error: 4\n * * fatal: (**default**) 5\n */\n logLevel: 5,\n\n /**\n * Sets the level of trust to be used on the parsed diagrams.\n * * **strict**: (**default**) tags in text are encoded, click functionality is disabeled\n * * **loose**: tags in text are allowed, click functionality is enabled\n */\n securityLevel: 'strict',\n\n /**\n * This options controls whether or mermaid starts when the page loads\n * **Default value true**.\n */\n startOnLoad: true,\n\n /**\n * This options controls whether or arrow markers in html code will be absolute paths or\n * an anchor, #. This matters if you are using base tag settings.\n * **Default value false**.\n */\n arrowMarkerAbsolute: false,\n\n /**\n * The object containing configurations specific for flowcharts\n */\n flowchart: {\n /**\n * Flag for setting whether or not a html tag should be used for rendering labels\n * on the edges.\n * **Default value true**.\n */\n htmlLabels: true,\n\n /**\n * Defines the spacing between nodes on the same level (meaning horizontal spacing for\n * TB or BT graphs, and the vertical spacing for LR as well as RL graphs).\n * **Default value 50**.\n */\n nodeSpacing: 50,\n\n /**\n * Defines the spacing between nodes on different levels (meaning vertical spacing for\n * TB or BT graphs, and the horizontal spacing for LR as well as RL graphs).\n * **Default value 50**.\n */\n rankSpacing: 50,\n\n /**\n * How mermaid renders curves for flowcharts. Possible values are\n * * basis\n * * linear **default**\n * * cardinal\n */\n curve: 'linear',\n // Only used in new experimental rendering\n // repreesents the padding between the labels and the shape\n padding: 15\n },\n\n /**\n * The object containing configurations specific for sequence diagrams\n */\n sequence: {\n /**\n * margin to the right and left of the sequence diagram.\n * **Default value 50**.\n */\n diagramMarginX: 50,\n\n /**\n * margin to the over and under the sequence diagram.\n * **Default value 10**.\n */\n diagramMarginY: 10,\n\n /**\n * Margin between actors.\n * **Default value 50**.\n */\n actorMargin: 50,\n\n /**\n * Width of actor boxes\n * **Default value 150**.\n */\n width: 150,\n\n /**\n * Height of actor boxes\n * **Default value 65**.\n */\n height: 65,\n\n /**\n * Margin around loop boxes\n * **Default value 10**.\n */\n boxMargin: 10,\n\n /**\n * margin around the text in loop/alt/opt boxes\n * **Default value 5**.\n */\n boxTextMargin: 5,\n\n /**\n * margin around notes.\n * **Default value 10**.\n */\n noteMargin: 10,\n\n /**\n * Space between messages.\n * **Default value 35**.\n */\n messageMargin: 35,\n\n /**\n * Multiline message alignment. Possible values are:\n * * left\n * * center **default**\n * * right\n */\n messageAlign: 'center',\n\n /**\n * mirror actors under diagram.\n * **Default value true**.\n */\n mirrorActors: true,\n\n /**\n * Depending on css styling this might need adjustment.\n * Prolongs the edge of the diagram downwards.\n * **Default value 1**.\n */\n bottomMarginAdj: 1,\n\n /**\n * when this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n * **Default value true**.\n */\n useMaxWidth: true,\n\n /**\n * This will display arrows that start and begin at the same node as right angles, rather than a curve\n * **Default value false**.\n */\n rightAngles: false,\n /**\n * This will show the node numbers\n * **Default value false**.\n */\n showSequenceNumbers: false,\n /**\n * This sets the font size of the actor's description\n * **Default value 14**.\n */\n actorFontSize: 14,\n /**\n * This sets the font family of the actor's description\n * **Default value \"Open-Sans\", \"sans-serif\"**.\n */\n actorFontFamily: '\"Open-Sans\", \"sans-serif\"',\n /**\n * This sets the font weight of the actor's description\n * **Default value 400.\n */\n actorFontWeight: 400,\n /**\n * This sets the font size of actor-attached notes.\n * **Default value 14**.\n */\n noteFontSize: 14,\n /**\n * This sets the font family of actor-attached notes.\n * **Default value \"trebuchet ms\", verdana, arial**.\n */\n noteFontFamily: '\"trebuchet ms\", verdana, arial',\n /**\n * This sets the font weight of the note's description\n * **Default value 400.\n */\n noteFontWeight: 400,\n /**\n * This sets the text alignment of actor-attached notes.\n * **Default value center**.\n */\n noteAlign: 'center',\n /**\n * This sets the font size of actor messages.\n * **Default value 16**.\n */\n messageFontSize: 16,\n /**\n * This sets the font family of actor messages.\n * **Default value \"trebuchet ms\", verdana, arial**.\n */\n messageFontFamily: '\"trebuchet ms\", verdana, arial',\n /**\n * This sets the font weight of the message's description\n * **Default value 400.\n */\n messageFontWeight: 400,\n /**\n * This sets the auto-wrap state for the diagram\n * **Default value false.\n */\n wrapEnabled: false,\n /**\n * This sets the auto-wrap padding for the diagram (sides only)\n * **Default value 15.\n */\n wrapPadding: 15\n },\n\n /**\n * The object containing configurations specific for gantt diagrams*\n */\n gantt: {\n /**\n * Margin top for the text over the gantt diagram\n * **Default value 25**.\n */\n titleTopMargin: 25,\n\n /**\n * The height of the bars in the graph\n * **Default value 20**.\n */\n barHeight: 20,\n\n /**\n * The margin between the different activities in the gantt diagram.\n * **Default value 4**.\n */\n barGap: 4,\n\n /**\n * Margin between title and gantt diagram and between axis and gantt diagram.\n * **Default value 50**.\n */\n topPadding: 50,\n\n /**\n * The space allocated for the section name to the left of the activities.\n * **Default value 75**.\n */\n leftPadding: 75,\n\n /**\n * Vertical starting position of the grid lines.\n * **Default value 35**.\n */\n gridLineStartPadding: 35,\n\n /**\n * Font size ...\n * **Default value 11**.\n */\n fontSize: 11,\n\n /**\n * font family ...\n * **Default value '\"Open-Sans\", \"sans-serif\"'**.\n */\n fontFamily: '\"Open-Sans\", \"sans-serif\"',\n\n /**\n * The number of alternating section styles.\n * **Default value 4**.\n */\n numberSectionStyles: 4,\n\n /**\n * Datetime format of the axis. This might need adjustment to match your locale and preferences\n * **Default value '%Y-%m-%d'**.\n */\n axisFormat: '%Y-%m-%d'\n },\n /**\n * The object containing configurations specific for sequence diagrams\n */\n journey: {\n /**\n * margin to the right and left of the sequence diagram.\n * **Default value 50**.\n */\n diagramMarginX: 50,\n\n /**\n * margin to the over and under the sequence diagram.\n * **Default value 10**.\n */\n diagramMarginY: 10,\n\n /**\n * Margin between actors.\n * **Default value 50**.\n */\n actorMargin: 50,\n\n /**\n * Width of actor boxes\n * **Default value 150**.\n */\n width: 150,\n\n /**\n * Height of actor boxes\n * **Default value 65**.\n */\n height: 65,\n\n /**\n * Margin around loop boxes\n * **Default value 10**.\n */\n boxMargin: 10,\n\n /**\n * margin around the text in loop/alt/opt boxes\n * **Default value 5**.\n */\n boxTextMargin: 5,\n\n /**\n * margin around notes.\n * **Default value 10**.\n */\n noteMargin: 10,\n\n /**\n * Space between messages.\n * **Default value 35**.\n */\n messageMargin: 35,\n\n /**\n * Multiline message alignment. Possible values are:\n * * left\n * * center **default**\n * * right\n */\n messageAlign: 'center',\n\n /**\n * Depending on css styling this might need adjustment.\n * Prolongs the edge of the diagram downwards.\n * **Default value 1**.\n */\n bottomMarginAdj: 1,\n\n /**\n * when this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n * **Default value true**.\n */\n useMaxWidth: true,\n\n /**\n * This will display arrows that start and begin at the same node as right angles, rather than a curve\n * **Default value false**.\n */\n rightAngles: false\n },\n class: {},\n git: {},\n state: {\n dividerMargin: 10,\n sizeUnit: 5,\n padding: 8,\n textHeight: 10,\n titleShift: -15,\n noteMargin: 10,\n forkWidth: 70,\n forkHeight: 7,\n // Used\n miniPadding: 2,\n // Font size factor, this is used to guess the width of the edges labels before rendering by dagre\n // layout. This might need updating if/when switching font\n fontSizeFactor: 5.02,\n fontSize: 24,\n labelHeight: 16,\n edgeLengthFactor: '20',\n compositTitleSize: 35,\n radius: 5\n },\n\n /**\n * The object containing configurations specific for entity relationship diagrams\n */\n er: {\n /**\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins, expressed in pixels\n */\n diagramPadding: 20,\n\n /**\n * Directional bias for layout of entities. Can be either 'TB', 'BT', 'LR', or 'RL',\n * where T = top, B = bottom, L = left, and R = right.\n */\n layoutDirection: 'TB',\n\n /**\n * The mimimum width of an entity box, expressed in pixels\n */\n minEntityWidth: 100,\n\n /**\n * The minimum height of an entity box, expressed in pixels\n */\n minEntityHeight: 75,\n\n /**\n * The minimum internal padding between the text in an entity box and the enclosing box borders, expressed in pixels\n */\n entityPadding: 15,\n\n /**\n * Stroke color of box edges and lines\n */\n stroke: 'gray',\n\n /**\n * Fill color of entity boxes\n */\n fill: 'honeydew',\n\n /**\n * Font size (expressed as an integer representing a number of pixels)\n */\n fontSize: 12\n }\n};\n\nsetLogLevel(config.logLevel);\nsetConfig(config);\n\nfunction parse(text) {\n const graphInit = utils.detectInit(text);\n if (graphInit) {\n reinitialize(graphInit);\n logger.debug('Init ', graphInit);\n }\n const graphType = utils.detectType(text);\n let parser;\n\n logger.debug('Type ' + graphType);\n switch (graphType) {\n case 'git':\n parser = gitGraphParser;\n parser.parser.yy = gitGraphAst;\n break;\n case 'flowchart':\n flowDb.clear();\n parser = flowParser;\n parser.parser.yy = flowDb;\n break;\n case 'flowchart-v2':\n flowDb.clear();\n parser = flowParser;\n parser.parser.yy = flowDb;\n break;\n case 'sequence':\n parser = sequenceParser;\n parser.parser.yy = sequenceDb;\n break;\n case 'gantt':\n parser = ganttParser;\n parser.parser.yy = ganttDb;\n break;\n case 'class':\n parser = classParser;\n parser.parser.yy = classDb;\n break;\n case 'state':\n parser = stateParser;\n parser.parser.yy = stateDb;\n break;\n case 'stateDiagram':\n parser = stateParser;\n parser.parser.yy = stateDb;\n break;\n case 'info':\n logger.debug('info info info');\n parser = infoParser;\n parser.parser.yy = infoDb;\n break;\n case 'pie':\n logger.debug('pie');\n parser = pieParser;\n parser.parser.yy = pieDb;\n break;\n case 'er':\n logger.debug('er');\n parser = erParser;\n parser.parser.yy = erDb;\n break;\n case 'journey':\n logger.debug('Journey');\n parser = journeyParser;\n parser.parser.yy = journeyDb;\n break;\n }\n\n parser.parser.yy.parseError = (str, hash) => {\n const error = { str, hash };\n throw error;\n };\n\n parser.parse(text);\n}\n\nexport const encodeEntities = function(text) {\n let txt = text;\n\n txt = txt.replace(/style.*:\\S*#.*;/g, function(s) {\n const innerTxt = s.substring(0, s.length - 1);\n return innerTxt;\n });\n txt = txt.replace(/classDef.*:\\S*#.*;/g, function(s) {\n const innerTxt = s.substring(0, s.length - 1);\n return innerTxt;\n });\n\n txt = txt.replace(/#\\w+;/g, function(s) {\n const innerTxt = s.substring(1, s.length - 1);\n\n const isInt = /^\\+?\\d+$/.test(innerTxt);\n if (isInt) {\n return 'fl°°' + innerTxt + '¶ß';\n } else {\n return 'fl°' + innerTxt + '¶ß';\n }\n });\n\n return txt;\n};\n\nexport const decodeEntities = function(text) {\n let txt = text;\n\n txt = txt.replace(/fl°°/g, function() {\n return '';\n });\n txt = txt.replace(/fl°/g, function() {\n return '&';\n });\n txt = txt.replace(/¶ß/g, function() {\n return ';';\n });\n\n return txt;\n};\n/**\n * Function that renders an svg with a graph from a chart definition. Usage example below.\n *\n * ```js\n * mermaidAPI.initialize({\n * startOnLoad:true\n * });\n * $(function(){\n * const graphDefinition = 'graph TB\\na-->b';\n * const cb = function(svgGraph){\n * console.log(svgGraph);\n * };\n * mermaidAPI.render('id1',graphDefinition,cb);\n * });\n *```\n * @param id the id of the element to be rendered\n * @param txt the graph definition\n * @param cb callback which is called after rendering is finished with the svg code as inparam.\n * @param container selector to element in which a div with the graph temporarily will be inserted. In one is\n * provided a hidden div will be inserted in the body of the page instead. The element will be removed when rendering is\n * completed.\n */\nconst render = function(id, _txt, cb, container) {\n // Check the maximum allowed text size\n let txt = _txt;\n if (_txt.length > config.maxTextSize) {\n txt = 'graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa';\n }\n\n if (typeof container !== 'undefined') {\n container.innerHTML = '';\n\n select(container)\n .append('div')\n .attr('id', 'd' + id)\n .attr('style', 'font-family: ' + config.fontFamily)\n .append('svg')\n .attr('id', id)\n .attr('width', '100%')\n .attr('xmlns', 'http://www.w3.org/2000/svg')\n .append('g');\n } else {\n const existingSvg = document.getElementById(id);\n if (existingSvg) {\n existingSvg.remove();\n }\n const element = document.querySelector('#' + 'd' + id);\n if (element) {\n element.innerHTML = '';\n }\n\n select('body')\n .append('div')\n .attr('id', 'd' + id)\n .append('svg')\n .attr('id', id)\n .attr('width', '100%')\n .attr('xmlns', 'http://www.w3.org/2000/svg')\n .append('g');\n }\n\n window.txt = txt;\n txt = encodeEntities(txt);\n\n const element = select('#d' + id).node();\n const graphInit = utils.detectInit(txt);\n if (graphInit) {\n reinitialize(graphInit);\n }\n const graphType = utils.detectType(txt);\n\n // insert inline style into svg\n const svg = element.firstChild;\n const firstChild = svg.firstChild;\n\n // pre-defined theme\n let style = themes[config.theme];\n if (style === undefined) {\n style = '';\n }\n\n // user provided theme CSS\n if (config.themeCSS !== undefined) {\n style += `\\n${config.themeCSS}`;\n }\n // user provided theme CSS\n if (config.fontFamily !== undefined) {\n style += `\\n:root { --mermaid-font-family: ${config.fontFamily}}`;\n }\n // user provided theme CSS\n if (config.altFontFamily !== undefined) {\n style += `\\n:root { --mermaid-alt-font-family: ${config.altFontFamily}}`;\n }\n\n // classDef\n if (graphType === 'flowchart' || graphType === 'flowchart-v2') {\n const classes = flowRenderer.getClasses(txt);\n for (const className in classes) {\n style += `\\n.${className} > * { ${classes[className].styles.join(\n ' !important; '\n )} !important; }`;\n if (classes[className].textStyles) {\n style += `\\n.${className} tspan { ${classes[className].textStyles.join(\n ' !important; '\n )} !important; }`;\n }\n }\n }\n\n const style1 = document.createElement('style');\n style1.innerHTML = scope(style, `#${id}`);\n svg.insertBefore(style1, firstChild);\n\n const style2 = document.createElement('style');\n const cs = window.getComputedStyle(svg);\n style2.innerHTML = `#${id} {\n color: ${cs.color};\n font: ${cs.font};\n }`;\n svg.insertBefore(style2, firstChild);\n\n try {\n switch (graphType) {\n case 'git':\n config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n gitGraphRenderer.setConf(config.git);\n gitGraphRenderer.draw(txt, id, false);\n break;\n case 'flowchart':\n config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n flowRenderer.setConf(config.flowchart);\n flowRenderer.draw(txt, id, false);\n break;\n case 'flowchart-v2':\n config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n flowRendererV2.setConf(config.flowchart);\n flowRendererV2.draw(txt, id, false);\n break;\n case 'sequence':\n config.sequence.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n if (config.sequenceDiagram) {\n // backwards compatibility\n sequenceRenderer.setConf(Object.assign(config.sequence, config.sequenceDiagram));\n console.error(\n '`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.'\n );\n } else {\n sequenceRenderer.setConf(config.sequence);\n }\n sequenceRenderer.draw(txt, id);\n break;\n case 'gantt':\n config.gantt.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n ganttRenderer.setConf(config.gantt);\n ganttRenderer.draw(txt, id);\n break;\n case 'class':\n config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n classRenderer.setConf(config.class);\n classRenderer.draw(txt, id);\n break;\n case 'state':\n // config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n stateRenderer.setConf(config.state);\n stateRenderer.draw(txt, id);\n break;\n case 'stateDiagram':\n // config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n stateRendererV2.setConf(config.state);\n stateRendererV2.draw(txt, id);\n break;\n case 'info':\n config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n infoRenderer.setConf(config.class);\n infoRenderer.draw(txt, id, pkg.version);\n break;\n case 'pie':\n config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n pieRenderer.setConf(config.class);\n pieRenderer.draw(txt, id, pkg.version);\n break;\n case 'er':\n erRenderer.setConf(config.er);\n erRenderer.draw(txt, id, pkg.version);\n break;\n case 'journey':\n journeyRenderer.setConf(config.journey);\n journeyRenderer.draw(txt, id, pkg.version);\n break;\n }\n } catch (e) {\n errorRenderer.setConf(config.class);\n errorRenderer.draw(id, pkg.version);\n throw e;\n }\n\n select(`[id=\"${id}\"]`)\n .selectAll('foreignobject > *')\n .attr('xmlns', 'http://www.w3.org/1999/xhtml');\n\n // if (config.arrowMarkerAbsolute) {\n // url =\n // window.location.protocol +\n // '//' +\n // window.location.host +\n // window.location.pathname +\n // window.location.search;\n // url = url.replace(/\\(/g, '\\\\(');\n // url = url.replace(/\\)/g, '\\\\)');\n // }\n\n // Fix for when the base tag is used\n let svgCode = select('#d' + id).node().innerHTML;\n\n if (!config.arrowMarkerAbsolute || config.arrowMarkerAbsolute === 'false') {\n svgCode = svgCode.replace(/marker-end=\"url\\(.*?#/g, 'marker-end=\"url(#', 'g');\n }\n\n svgCode = decodeEntities(svgCode);\n\n if (typeof cb !== 'undefined') {\n switch (graphType) {\n case 'flowchart':\n case 'flowchart-v2':\n cb(svgCode, flowDb.bindFunctions);\n break;\n case 'gantt':\n cb(svgCode, ganttDb.bindFunctions);\n break;\n case 'class':\n cb(svgCode, classDb.bindFunctions);\n break;\n default:\n cb(svgCode);\n }\n } else {\n logger.debug('CB = undefined!');\n }\n\n const node = select('#d' + id).node();\n if (node !== null && typeof node.remove === 'function') {\n select('#d' + id)\n .node()\n .remove();\n }\n\n return svgCode;\n};\n\nconst setConf = function(cnf) {\n // Top level initially mermaid, gflow, sequenceDiagram and gantt\n const lvl1Keys = Object.keys(cnf);\n for (let i = 0; i < lvl1Keys.length; i++) {\n if (typeof cnf[lvl1Keys[i]] === 'object' && cnf[lvl1Keys[i]] != null) {\n const lvl2Keys = Object.keys(cnf[lvl1Keys[i]]);\n\n for (let j = 0; j < lvl2Keys.length; j++) {\n logger.debug('Setting conf ', lvl1Keys[i], '-', lvl2Keys[j]);\n if (typeof config[lvl1Keys[i]] === 'undefined') {\n config[lvl1Keys[i]] = {};\n }\n logger.debug(\n 'Setting config: ' +\n lvl1Keys[i] +\n ' ' +\n lvl2Keys[j] +\n ' to ' +\n cnf[lvl1Keys[i]][lvl2Keys[j]]\n );\n config[lvl1Keys[i]][lvl2Keys[j]] = cnf[lvl1Keys[i]][lvl2Keys[j]];\n }\n } else {\n config[lvl1Keys[i]] = cnf[lvl1Keys[i]];\n }\n }\n};\n\nfunction reinitialize(options) {\n if (typeof options === 'object') {\n setConf(options);\n }\n setConfig(config);\n setLogLevel(config.logLevel);\n logger.debug('RE-Initializing mermaidAPI ', { version: pkg.version, options, config });\n}\n\nfunction initialize(options) {\n let _config = config;\n logger.debug('Initializing mermaidAPI ', { version: pkg.version, options, _config });\n // Update default config with options supplied at initialization\n if (typeof options === 'object') {\n _config = Object.assign(_config, options);\n setConf(_config);\n }\n setConfig(_config);\n setLogLevel(_config.logLevel);\n}\n\n// function getConfig () {\n// console.warn('get config')\n// return config\n// }\n\nconst mermaidAPI = {\n render,\n parse,\n initialize,\n reinitialize,\n getConfig\n};\n\nexport default mermaidAPI;\n/**\n * ## mermaidAPI configuration defaults\n *
\n *\n * <script>\n * var config = {\n * theme:'default',\n * logLevel:'fatal',\n * securityLevel:'strict',\n * startOnLoad:true,\n * arrowMarkerAbsolute:false,\n *\n * flowchart:{\n * htmlLabels:true,\n * curve:'linear',\n * },\n * sequence:{\n * diagramMarginX:50,\n * diagramMarginY:10,\n * actorMargin:50,\n * width:150,\n * height:65,\n * boxMargin:10,\n * boxTextMargin:5,\n * noteMargin:10,\n * messageMargin:35,\n * messageAlign:'center',\n * mirrorActors:true,\n * bottomMarginAdj:1,\n * useMaxWidth:true,\n * rightAngles:false,\n * showSequenceNumbers:false,\n * },\n * gantt:{\n * titleTopMargin:25,\n * barHeight:20,\n * barGap:4,\n * topPadding:50,\n * leftPadding:75,\n * gridLineStartPadding:35,\n * fontSize:11,\n * fontFamily:'\"Open-Sans\", \"sans-serif\"',\n * numberSectionStyles:4,\n * axisFormat:'%Y-%m-%d',\n * }\n * };\n * mermaid.initialize(config);\n * </script>\n *\n */\n","var map = {\n\t\"./dark/index.scss\": \"./src/themes/dark/index.scss\",\n\t\"./default/index.scss\": \"./src/themes/default/index.scss\",\n\t\"./forest/index.scss\": \"./src/themes/forest/index.scss\",\n\t\"./neutral/index.scss\": \"./src/themes/neutral/index.scss\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./src/themes sync recursive ^\\\\.\\\\/.*\\\\/index\\\\.scss$\";","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","import {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore\n} from 'd3';\nimport { logger } from './logger';\nimport { sanitizeUrl } from '@braintree/sanitize-url';\n\n// Effectively an enum of the supported curve types, accessible by name\nconst d3CurveTypes = {\n curveBasis: curveBasis,\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveLinear: curveLinear,\n curveLinearClosed: curveLinearClosed,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\nconst fullDirective = /%%\\{(\\w+)[:]?\\s*(\\{.*}(?!%%))?\\s*}%%/;\nconst directiveWithoutOpen = /\\{(\\w+)[:]?\\s*(\\{.*}(?!%%))?\\s*}%%/;\nconst commentWithoutDirectives = new RegExp(\n `\\\\s*%%(?!${directiveWithoutOpen.source})(?=}%%).*\\n`,\n 'gm'\n);\nconst anyComment = new RegExp(`\\\\s*%%.*\\n`, 'gm');\n\n/**\n * @function detectInit\n * Detects the init config object from the text\n * ```mermaid\n * %%{init: {\"startOnLoad\": true, \"logLevel\": 1 }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n * or\n * ```mermaid\n * %%{initialize: {\"startOnLoad\": true, logLevel: \"fatal\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * @param {string} text The text defining the graph\n * @returns {object} An object representing the initialization to pass to mermaidAPI.initialize()\n */\nexport const detectInit = function(text) {\n text = text.replace(commentWithoutDirectives, '\\n');\n logger.debug('Detecting diagram init based on the text ' + text);\n const matches = text.match(fullDirective);\n if (matches && /init(?:ialize)?/.test(matches[1])) {\n return JSON.parse(\n matches[2]\n .trim()\n .replace(/\\\\n/g, '\\n')\n .replace(/'/g, '\"')\n );\n }\n};\n\n/**\n * @function detectType\n * Detects the type of the graph text. Takes into consideration the possible existence of an %%init\n * directive\n * ```mermaid\n * %%{initialize: {\"startOnLoad\": true, logLevel: \"fatal\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * @param {string} text The text defining the graph\n * @returns {string} A graph definition key\n */\nexport const detectType = function(text) {\n text = text.replace(anyComment, '\\n');\n logger.debug('Detecting diagram type based on the text ' + text);\n if (text.match(/^\\s*sequenceDiagram/)) {\n return 'sequence';\n }\n\n if (text.match(/^\\s*gantt/)) {\n return 'gantt';\n }\n\n if (text.match(/^\\s*classDiagram/)) {\n return 'class';\n }\n if (text.match(/^\\s*stateDiagram-v2/)) {\n return 'stateDiagram';\n }\n\n if (text.match(/^\\s*stateDiagram/)) {\n return 'state';\n }\n\n if (text.match(/^\\s*gitGraph/)) {\n return 'git';\n }\n if (text.match(/^\\s*flowchart/)) {\n return 'flowchart-v2';\n }\n\n if (text.match(/^\\s*info/)) {\n return 'info';\n }\n if (text.match(/^\\s*pie/)) {\n return 'pie';\n }\n\n if (text.match(/^\\s*erDiagram/)) {\n return 'er';\n }\n\n if (text.match(/^\\s*journey/)) {\n return 'journey';\n }\n\n return 'flowchart';\n};\n\n/**\n * @function isSubstringInArray\n * Detects whether a substring in present in a given array\n * @param {string} str The substring to detect\n * @param {array} arr The array to search\n * @returns {number} the array index containing the substring or -1 if not present\n **/\nexport const isSubstringInArray = function(str, arr) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i].match(str)) return i;\n }\n return -1;\n};\n\nexport const interpolateToCurve = (interpolate, defaultCurve) => {\n if (!interpolate) {\n return defaultCurve;\n }\n const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;\n return d3CurveTypes[curveName] || defaultCurve;\n};\n\nexport const formatUrl = (linkStr, config) => {\n let url = linkStr.trim();\n\n if (url) {\n if (config.securityLevel !== 'loose') {\n return sanitizeUrl(url);\n }\n\n return url;\n }\n};\n\nconst distance = (p1, p2) =>\n p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0;\n\nconst traverseEdge = points => {\n let prevPoint;\n let totalDistance = 0;\n\n points.forEach(point => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse half of total distance along points\n const distanceToLabel = totalDistance / 2;\n\n let remainingDistance = distanceToLabel;\n let center;\n prevPoint = undefined;\n points.forEach(point => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y\n };\n }\n }\n }\n prevPoint = point;\n });\n return center;\n};\n\nconst calcLabelPosition = points => {\n const p = traverseEdge(points);\n return p;\n};\n\nconst calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => {\n let prevPoint;\n let totalDistance = 0; // eslint-disable-line\n if (points[0] !== initialPosition) {\n points = points.reverse();\n }\n points.forEach(point => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse only 25 total distance along points to find cardinality point\n const distanceToCardinalityPoint = 25;\n\n let remainingDistance = distanceToCardinalityPoint;\n let center;\n prevPoint = undefined;\n points.forEach(point => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y\n };\n }\n }\n }\n prevPoint = point;\n });\n // if relation is present (Arrows will be added), change cardinality point off-set distance (d)\n let d = isRelationTypePresent ? 10 : 5;\n //Calculate Angle for x and y axis\n let angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n let cardinalityPosition = { x: 0, y: 0 };\n //Calculation cardinality position using angle, center point on the line/curve but pendicular and with offset-distance\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n return cardinalityPosition;\n};\n\nexport const getStylesFromArray = arr => {\n let style = '';\n let labelStyle = '';\n\n for (let i = 0; i < arr.length; i++) {\n if (typeof arr[i] !== 'undefined') {\n // add text properties to label style definition\n if (arr[i].startsWith('color:') || arr[i].startsWith('text-align:')) {\n labelStyle = labelStyle + arr[i] + ';';\n } else {\n style = style + arr[i] + ';';\n }\n }\n }\n\n return { style: style, labelStyle: labelStyle };\n};\n\nlet cnt = 0;\nexport const generateId = () => {\n cnt++;\n return (\n 'id-' +\n Math.random()\n .toString(36)\n .substr(2, 12) +\n '-' +\n cnt\n );\n};\n\nexport default {\n detectInit,\n detectType,\n isSubstringInArray,\n interpolateToCurve,\n calcLabelPosition,\n calcCardinalityPosition,\n formatUrl,\n getStylesFromArray,\n generateId\n};\n","module.exports = require(\"@braintree/sanitize-url\");","module.exports = require(\"d3\");","module.exports = require(\"dagre\");","module.exports = require(\"dagre-d3\");","module.exports = require(\"dagre-d3/lib/label/add-html-label.js\");","module.exports = require(\"entity-decode/browser\");","module.exports = require(\"graphlib\");","module.exports = require(\"moment-mini\");","module.exports = require(\"scope-css\");"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://mermaid/webpack/universalModuleDefinition","webpack://mermaid/webpack/bootstrap","webpack://mermaid/./src/themes/dark/index.scss","webpack://mermaid/./src/themes/default/index.scss","webpack://mermaid/./src/themes/forest/index.scss","webpack://mermaid/./src/themes/neutral/index.scss","webpack://mermaid/./node_modules/css-loader/dist/runtime/api.js","webpack://mermaid/./node_modules/path-browserify/index.js","webpack://mermaid/./node_modules/process/browser.js","webpack://mermaid/(webpack)/buildin/module.js","webpack://mermaid/./src/config.js","webpack://mermaid/./src/dagre-wrapper/clusters.js","webpack://mermaid/./src/dagre-wrapper/createLabel.js","webpack://mermaid/./src/dagre-wrapper/edges.js","webpack://mermaid/./src/dagre-wrapper/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-circle.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-ellipse.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-line.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-node.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-polygon.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-rect.js","webpack://mermaid/./src/dagre-wrapper/markers.js","webpack://mermaid/./src/dagre-wrapper/mermaid-graphlib.js","webpack://mermaid/./src/dagre-wrapper/nodes.js","webpack://mermaid/./src/dagre-wrapper/shapes/note.js","webpack://mermaid/./src/dagre-wrapper/shapes/util.js","webpack://mermaid/./src/diagrams/class/classDb.js","webpack://mermaid/./src/diagrams/class/classRenderer.js","webpack://mermaid/./src/diagrams/class/parser/classDiagram.jison","webpack://mermaid/./src/diagrams/class/svgDraw.js","webpack://mermaid/./src/diagrams/common/common.js","webpack://mermaid/./src/diagrams/er/erDb.js","webpack://mermaid/./src/diagrams/er/erMarkers.js","webpack://mermaid/./src/diagrams/er/erRenderer.js","webpack://mermaid/./src/diagrams/er/parser/erDiagram.jison","webpack://mermaid/./src/diagrams/flowchart/flowChartShapes.js","webpack://mermaid/./src/diagrams/flowchart/flowDb.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer-v2.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer.js","webpack://mermaid/./src/diagrams/flowchart/parser/flow.jison","webpack://mermaid/./src/diagrams/gantt/ganttDb.js","webpack://mermaid/./src/diagrams/gantt/ganttRenderer.js","webpack://mermaid/./src/diagrams/gantt/parser/gantt.jison","webpack://mermaid/./src/diagrams/git/gitGraphAst.js","webpack://mermaid/./src/diagrams/git/gitGraphRenderer.js","webpack://mermaid/./src/diagrams/git/parser/gitGraph.jison","webpack://mermaid/./src/diagrams/info/infoDb.js","webpack://mermaid/./src/diagrams/info/infoRenderer.js","webpack://mermaid/./src/diagrams/info/parser/info.jison","webpack://mermaid/./src/diagrams/pie/parser/pie.jison","webpack://mermaid/./src/diagrams/pie/pieDb.js","webpack://mermaid/./src/diagrams/pie/pieRenderer.js","webpack://mermaid/./src/diagrams/sequence/parser/sequenceDiagram.jison","webpack://mermaid/./src/diagrams/sequence/sequenceDb.js","webpack://mermaid/./src/diagrams/sequence/sequenceRenderer.js","webpack://mermaid/./src/diagrams/sequence/svgDraw.js","webpack://mermaid/./src/diagrams/state/id-cache.js","webpack://mermaid/./src/diagrams/state/parser/stateDiagram.jison","webpack://mermaid/./src/diagrams/state/shapes.js","webpack://mermaid/./src/diagrams/state/stateDb.js","webpack://mermaid/./src/diagrams/state/stateRenderer-v2.js","webpack://mermaid/./src/diagrams/state/stateRenderer.js","webpack://mermaid/./src/diagrams/user-journey/journeyDb.js","webpack://mermaid/./src/diagrams/user-journey/journeyRenderer.js","webpack://mermaid/./src/diagrams/user-journey/parser/journey.jison","webpack://mermaid/./src/diagrams/user-journey/svgDraw.js","webpack://mermaid/./src/errorRenderer.js","webpack://mermaid/./src/logger.js","webpack://mermaid/./src/mermaid.js","webpack://mermaid/./src/mermaidAPI.js","webpack://mermaid/./src/themes sync ^\\.\\/.*\\/index\\.scss$","webpack://mermaid/./src/themes/dark/index.scss?55a3","webpack://mermaid/./src/themes/default/index.scss?1e22","webpack://mermaid/./src/themes/forest/index.scss?c8cd","webpack://mermaid/./src/themes/neutral/index.scss?96e0","webpack://mermaid/./src/utils.js","webpack://mermaid/external \"@braintree/sanitize-url\"","webpack://mermaid/external \"d3\"","webpack://mermaid/external \"dagre\"","webpack://mermaid/external \"dagre-d3\"","webpack://mermaid/external \"dagre-d3/lib/label/add-html-label.js\"","webpack://mermaid/external \"entity-decode/browser\"","webpack://mermaid/external \"graphlib\"","webpack://mermaid/external \"moment-mini\"","webpack://mermaid/external \"scope-css\""],"names":["config","setConf","cnf","lvl1Keys","Object","keys","i","length","lvl2Keys","j","setConfig","conf","getConfig","configApi","rect","parent","node","log","trace","id","shapeSvg","insert","attr","label","text","appendChild","createLabel","labelText","labelStyle","undefined","bbox","getBBox","flowchart","htmlLabels","div","children","dv","select","getBoundingClientRect","width","height","padding","halfPadding","JSON","stringify","rx","ry","x","y","rectBox","intersect","point","intersectRect","noteGroup","roundedWithTitle","classes","innerRect","append","divider","shapes","clusterElems","insertCluster","elem","shape","getClusterTitleWidth","removeChild","clear","positionCluster","info","el","applyStyle","dom","styleFn","addHtmlLabel","fo","document","createElementNS","labelClass","isNode","html","style","_vertexText","isTitle","vertexText","replace","logger","s","vertexNode","svgLabel","setAttribute","rows","split","Array","isArray","tspan","setAttributeNS","textContent","trim","edgeLabels","insertEdgeLabel","edge","labelElement","edgeLabel","positionEdgeLabel","outsideNode","dx","Math","abs","dy","w","h","intersection","outsidePoint","insidePoint","r","q","Q","R","insertEdge","e","clusterDb","diagramType","graph","points","tail","v","head","slice","unshift","push","toCluster","lastPointOutside","isInside","forEach","insterection","fromCluster","updatedPoints","lineData","filter","p","Number","isNaN","lineFunction","line","d","curve","curveBasis","svgPath","url","state","arrowMarkerAbsolute","window","location","protocol","host","pathname","search","arrowType","recursiveRender","_elem","diagramtype","parentCluster","graphlib","json","write","dir","rankdir","warn","nodes","edges","clusters","edgePaths","data","parse","clusterData","setNode","setParent","clusterNode","newEl","updateNodeBounds","setNodeElem","findNonClusterChild","insertNode","name","dagre","layout","positionNode","render","markers","insertMarkers","clearNodes","clearEdges","clearClusters","clearGraphlib","adjustClustersAndEdges","circle","ellipse","polygon","intersectCircle","intersectEllipse","cx","cy","px","py","det","sqrt","intersectLine","p1","p2","q1","q2","a1","a2","b1","b2","c1","c2","r1","r2","r3","r4","denom","offset","num","sameSign","module","exports","intersectNode","console","intersectPolygon","polyPoints","x1","y1","intersections","minX","POSITIVE_INFINITY","minY","entry","min","left","top","sort","pdx","pdy","distp","qdx","qdy","distq","sx","sy","markerArray","type","markerName","extension","composition","aggregation","dependency","cross","barb","decendants","parents","isDecendant","ancenstorId","debug","indexOf","edgeInCluster","clusterId","copy","newGraph","rootId","setEdge","error","removeNode","extractDecendants","res","concat","validate","_id","getAnchorId","externalConnections","depth","d1","d2","extractor","removeEdge","hasChildren","graphSettings","clusterGraph","Graph","multigraph","compound","setGraph","nodesep","ranksep","marginx","marginy","setDefaultEdgeLabel","question","labelHelper","questionElem","insertPolygonShape","hexagon","f","m","hex","rect_left_inv_arrow","lean_right","lean_left","trapezoid","inv_trapezoid","rect_right_inv_arrow","cylinder","pos","rectWithTitle","innerLine","text2","flat","textRows","titleBox","descr","join","stadium","subroutine","start","forkJoin","end","innerCircle","note","fork","nodeElems","_classes","element","map","MERMAID_DOM_ID_PREFIX","relations","classCounter","funs","splitClassNameAndType","genericType","className","addClass","classId","cssClasses","methods","members","annotations","domId","lookUpDomId","classKeys","setupToolTips","getClass","getClasses","getRelations","addRelation","relation","id1","id2","addAnnotation","annotation","validatedClassName","addMember","member","theClass","memberString","startsWith","endsWith","substring","addMembers","reverse","cleanupLabel","substr","setCssClass","ids","match","setLink","linkStr","tooltip","link","utils","formatUrl","common","sanitizeText","setClickEvent","functionName","setClickFunc","elemId","securityLevel","querySelector","addEventListener","bindFunctions","fun","lineType","LINE","DOTTED_LINE","relationType","AGGREGATION","EXTENSION","COMPOSITION","DEPENDENCY","tooltipElem","_groups","svg","selectAll","on","title","transition","duration","right","body","scrollTop","classed","parser","yy","classDb","idCache","dividerMargin","textHeight","getGraphId","key","draw","diagram","g","isMultiGraph","classDef","svgDraw","drawClass","drawEdge","svgBounds","useMaxWidth","vBox","edgeCount","path","getRelationType","type1","type2","l","labelPosition","calcLabelPosition","p1_card_x","p1_card_y","p2_card_x","p2_card_y","cardinality_1_point","calcCardinalityPosition","cardinality_2_point","bounds","relationTitle1","relationTitle2","cssClassStr","classInfo","isFirst","titleText2","classTitleString","classTitle","titleHeight","membersLine","addTspan","membersBox","methodsLine","method","classBox","rectWidth","childNodes","parseMember","fieldRegEx","methodRegEx","fieldMatch","methodMatch","buildFieldDisplay","buildMethodDisplay","buildLegacyDisplay","parsedText","visibility","fieldType","parseGenericTypes","fieldName","displayText","cssStyle","methodName","parameters","classifier","returnType","parseClassifier","memberText","methodStart","methodEnd","textEl","txt","tSpan","cleanedText","getRows","str","breakToPlaceholder","placeholderToBreak","lineBreakRegex","entities","relationships","Cardinality","ZERO_OR_ONE","ZERO_OR_MORE","ONE_OR_MORE","ONLY_ONE","Identification","NON_IDENTIFYING","IDENTIFYING","addEntity","getEntities","addRelationship","entA","rolA","entB","rSpec","rel","entityA","roleA","entityB","relSpec","getRelationships","setTitle","getTitle","ERMarkers","ONLY_ONE_START","ONLY_ONE_END","ZERO_OR_ONE_START","ZERO_OR_ONE_END","ONE_OR_MORE_START","ONE_OR_MORE_END","ZERO_OR_MORE_START","ZERO_OR_MORE_END","marker","stroke","drawEntities","svgNode","firstOne","groupNode","textId","textNode","fontFamily","fontSize","textBBox","entityWidth","max","minEntityWidth","entityPadding","entityHeight","minEntityHeight","rectNode","fill","rectBBox","adjustEntities","getEdgeName","addRelationships","relationship","relCnt","drawRelationshipFromLayout","relType","erDb","cardA","erMarkers","cardB","len","getTotalLength","labelPoint","getPointAtLength","labelId","labelNode","labelBBox","erParser","err","directed","layoutDirection","edgesep","firstEntity","diagramPadding","dagreD3","addToRender","addToRenderV2","addShape","vertices","subGraphs","subGraphLookup","tooltips","subCount","firstGraphFlag","direction","addVertex","styles","addSingleLink","_start","_end","linktext","addLink","updateLinkInterpolate","positions","interp","defaultInterpolate","interpolate","updateLink","defaultStyle","isSubstringInArray","textStyles","newStyle1","newStyle2","setDirection","setClass","setTooltip","setClickFun","getTooltip","getDirection","getVertices","getEdges","addSubGraph","list","_title","uniq","a","prims","boolean","number","string","objs","item","hasOwnProperty","nodeList","apply","subGraph","getPosForId","secCount","posCrossRef","indexNodes2","result","count","posCount","childPos","getDepthFirstPos","indexNodes","getSubGraphs","firstGraph","destructStartLink","_str","destructEndLink","destructLink","_startStr","startInfo","lex","addVertices","vert","svgId","vertex","classStr","getStylesFromArray","parentNode","radious","_shape","class","addEdges","cnt","defaultLabelStyle","defaultStyles","edgeData","arrowhead","interpolateToCurve","curveLinear","arrowheadStyle","labelpos","labelType","flowDb","flow","nodeSpacing","rankSpacing","subG","_label","labels","querySelectorAll","k","dim","insertBefore","firstChild","linkNode","Render","flowChartShapes","arrows","none","normal","util","clusterRects","clusterEl","xPos","baseVal","value","yPos","cluster","te","classList","add","dateFormat","axisFormat","todayMarker","excludes","sections","tasks","currentSection","tags","inclusiveEndDates","taskCnt","lastTask","lastTaskID","rawTasks","setAxisFormat","getAxisFormat","setTodayMarker","getTodayMarker","setDateFormat","enableInclusiveEndDates","endDatesAreInclusive","getDateFormat","setExcludes","toLowerCase","getExcludes","addSection","getSections","getTasks","allItemsPricessed","compileTasks","maxDepth","iterationCount","isInvalidDate","date","isoWeekday","format","checkTaskDates","task","manualEndTime","startTime","moment","endTime","renderEndTime","fixTaskDates","toDate","invalid","getStartDate","prevTime","re","afterStatement","exec","latestEndingTask","findTaskById","dt","Date","setHours","mDate","isValid","durationToDate","durationStatement","relativeTime","getEndDate","inclusive","parseId","idStr","compileData","prevTask","dataStr","ds","getTaskTags","endTimeData","parseData","prevTaskId","startData","taskDb","addTask","rawTask","section","processed","raw","taskInfo","active","done","crit","milestone","addTaskOrg","newTask","description","compileTask","allProcessed","_linkStr","sanitizeUrl","pushFun","open","functionArgs","argList","charAt","callbackFunction","matchFound","t","pattern","regex","RegExp","shift","ganttDb","titleTopMargin","barHeight","barGap","topPadding","rightPadding","leftPadding","gridLineStartPadding","getElementById","parentElement","offsetWidth","useWidth","taskArray","timeScale","scaleTime","domain","rangeRound","categories","catsUnfiltered","checkUnique","makeGant","pageWidth","pageHeight","gap","colorScale","scaleLinear","range","interpolateHcl","makeGrid","drawRects","vertLabels","drawToday","theArray","theGap","theTopPad","theSidePad","theBarHeight","theColorScale","enter","numberSectionStyles","rectangles","toString","secNum","taskClass","startX","endX","textWidth","taskType","xAxis","axisBottom","tickSize","tickFormat","timeFormat","call","numOccurances","prevGap","getCount","todayG","today","todayLine","arr","hash","getCounts","obj","word","commits","branches","master","curBranch","seq","makeid","characters","charactersLength","floor","random","getId","isfastforwardable","currentCommit","otherCommit","isReachableFrom","currentSeq","otherSeq","uniqBy","fn","recordMap","create","reduce","out","options","setOptions","rawOptString","message","getOptions","commit","msg","branch","merge","otherBranch","checkout","reset","commitRef","ref","parentCount","parseInt","upsert","newval","index","splice","prettyPrintCommitHistory","commitArr","c","newCommit","nextCommit","prettyPrint","getCommitsArray","getBranchesAsObjArray","branchArr","getBranches","getCommits","o","b","getCurrentBranch","getHead","allCommitsDict","branchNum","nodeFillColor","nodeStrokeWidth","nodeStrokeColor","lineStrokeWidth","branchOffset","lineColor","leftMargin","branchColors","nodeRadius","nodeLabel","apiConfig","svgCreateDefs","svgDrawLine","colorIdx","color","lineGen","round","getElementCoords","coords","ctm","getCTM","xn","yn","svgDrawLineForCommits","fromId","toId","fromBbox","toBbox","lineStart","lineEnd","cloneNode","selector","renderCommitHistory","commitid","numCommits","size","branchName","renderLines","branchColor","lineDrawn","ver","gitGraphParser","db","assign","setMessage","getMessage","setInfo","inf","getInfo","infoParser","cleanupValue","pieParser","pieData","margin","legendRectSize","legendSpacing","radius","sum","scaleOrdinal","schemeSet2","pie","d3pie","dataReady","entries","arcGenerator","arc","innerRadius","outerRadius","toFixed","centroid","legend","horz","prevActor","actors","messages","notes","titleWrapped","sequenceNumbersEnabled","wrapEnabled","configUpdated","currentDirective","parseDirective","statement","context","args","handleDirective","directive","mermaidAPI","initialize","updateConfig","addActor","old","wrap","autoWrap","nextActor","activationCount","part","LINETYPE","ACTIVE_START","from","actor","ACTIVE_END","addMessage","idFrom","idTo","answer","to","addSignal","messageType","Error","token","loc","first_line","last_line","first_column","last_column","expected","getMessages","getActors","getActor","getActorKeys","getTitleWrapped","enableSequenceNumbers","showSequenceNumbers","enableWrap","disableWrap","parseMessage","SOLID","DOTTED","NOTE","SOLID_CROSS","DOTTED_CROSS","SOLID_OPEN","DOTTED_OPEN","LOOP_START","LOOP_END","ALT_START","ALT_ELSE","ALT_END","OPT_START","OPT_END","PAR_START","PAR_AND","PAR_END","RECT_START","RECT_END","ARROWTYPE","FILLED","OPEN","PLACEMENT","LEFTOF","RIGHTOF","OVER","addNote","placement","titleWrap","hasConfigChange","param","signalType","loopText","optText","altText","parText","sequenceDb","diagramMarginX","diagramMarginY","actorMargin","actorFontSize","actorFontFamily","actorFontWeight","noteFontSize","noteFontFamily","noteFontWeight","noteAlign","messageFontSize","messageFontFamily","messageFontWeight","boxMargin","boxTextMargin","noteMargin","messageMargin","messageAlign","mirrorActors","bottomMarginAdj","activationWidth","textPlacement","wrapPadding","startx","stopx","starty","stopy","verticalPos","sequenceItems","activations","init","updateVal","val","updateBounds","_self","updateFn","updateItemBounds","n","_startx","_stopx","_starty","_stopy","newActivation","actorRect","stackedSize","actorActivations","anchored","anchorElement","endActivation","lastActorActivationIdx","activation","lastIndexOf","newLoop","endLoop","pop","addSectionToLoop","loop","sectionTitles","getVerticalPos","bumpVerticalPos","bump","getBounds","wrapLabel","maxWidth","joinWith","test","words","completedLines","nextLine","wordLength","calculateTextWidth","nextLineLength","breakString","hyphenatedStrings","remainingWord","Boolean","currentWord","isLastWord","hyphenCharacter","lines","currentLine","character","lineWidth","currentCharacter","isLastLine","hyphenatedNextLine","_drawLongText","prevTextHeight","alignmentToAnchor","center","middle","textObj","getTextObj","alignment","textElem","drawText","drawNote","forceWidth","getNoteRect","rectElem","drawRect","drawMessage","sequenceIndex","txtCenter","textElems","counterBreaklines","breaklineOffset","breaklines","breakline","offsetLineCounter","totalOffset","textWidths","rightAngles","drawActors","actorKeys","prevWidth","prevMargin","maxActorHeight","calculateActorWidth","calculateTextHeight","drawActor","fontWeight","actorFlowVerticaBounds","actorObj","acc","elementHeight","elementWidth","lineHeightFactor","fontFamilies","remove","maxMessageWidthPerActor","getMaxMessageWidthPerActor","calculateActorMargins","insertArrowHead","insertArrowCrossHead","insertSequenceNumber","activeEnd","activationData","drawActivation","loopData","noteWidth","shouldWrap","drawLoop","rectData","drawBackgroundRect","fromBounds","toBounds","fromIdx","toIdx","allBounds","includes","box","actorLines","extraVertForTitle","isNote","isMessage","messageWidth","actorToMessageWidth","maxHeight","actorKey","act","actorWidth","textData","nText","anchor","span","textMargin","drawLabel","txtObject","genPoints","cut","labelMargin","actorCnt","_drawTextCandidateFunc","drawLoopLine","minSize","idx","lower","defs","byText","content","textAttrs","_setTextAttrs","byTspan","byFo","toText","fromTextAttrsDict","set","get","drawStartState","sizeUnit","drawDivider","drawSimpleState","stateDef","drawDescrState","descriptions","isSecond","descrLine","descrBox","addTitleAndBox","altBkg","pad","dblPad","orgBox","orgWidth","orgX","titleShift","titleWidth","graphBox","doc","lineY","drawEndState","miniPadding","drawForkJoinState","forkWidth","forkHeight","parentId","tmp","_text","tHeight","textBounds","drawState","stateInfo","stateBox","stateDb","titleRows","boundstmp","boxHeight","heightAdj","clone","rootDoc","setRootDoc","getRootDoc","docTranslator","first","stmt","state1","state2","currentDoc","newNode","generateId","docNode","getRootDocV2","extract","_doc","addState","newDoc","states","documents","root","currentDocument","startCnt","endCnt","addDescription","des","getState","getStates","logDocuments","_id1","_id2","_descr","theState","dividerCnt","getDividerId","trimColon","nodeDb","setupNode","altFlag","nodeData","noteData","groupData","position","setupDoc","startId","endId","transformationLog","renderDoc","getLabelWidth","fontSizeFactor","edgeFreeDoc","ranker","edgeLengthFactor","nodeSep","sub","boxBounds","compositTitleSize","noteDef","nodeCount","labelHeight","svgElem","dividers","pWidth","pShift","getAttribute","allItemsProcessed","updateActors","tempActors","people","unique","Set","taskData","pieces","score","peeps","peopleList","journeyDb","taskMargin","taskFontSize","taskFontFamily","actorColours","sectionFills","sectionColours","drawActorLegend","person","colour","circleData","drawCircle","labelData","LEFT_MARGIN","initGraphics","actorNames","actorPos","actorName","drawTasks","fills","textColours","lastSection","sectionVHeight","taskPos","sectionNumber","drawSection","taskActors","drawTask","drawFace","faceData","circleElement","face","smile","d3arc","startAngle","PI","endAngle","sad","ambivalent","taskCount","graphics","LEVELS","fatal","setLogLevel","level","bind","time","arguments","mermaid","sequenceConfig","callback","Node","startOnLoad","ganttConfig","gantt","now","innerHTML","decode","svgCode","parseError","contentLoaded","themes","themeName","require","theme","themeCSS","maxTextSize","logLevel","sequence","journey","git","er","graphInit","detectInit","reinitialize","graphType","detectType","gitGraphAst","flowParser","sequenceParser","ganttParser","classParser","stateParser","infoDb","pieDb","journeyParser","encodeEntities","innerTxt","isInt","decodeEntities","_txt","cb","container","existingSvg","altFontFamily","flowRenderer","style1","createElement","scope","style2","cs","getComputedStyle","font","gitGraphRenderer","flowRendererV2","sequenceDiagram","sequenceRenderer","ganttRenderer","classRenderer","stateRenderer","stateRendererV2","infoRenderer","pkg","version","pieRenderer","erRenderer","journeyRenderer","errorRenderer","_config","d3CurveTypes","curveBasisClosed","curveBasisOpen","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","directiveWithoutOpen","anyComment","inits","detectDirective","results","commentWithoutDirectives","source","lastIndex","defaultCurve","curveName","toUpperCase","distance","pow","traverseEdge","prevPoint","totalDistance","distanceToLabel","remainingDistance","vectorDistance","distanceRatio","isRelationTypePresent","initialPosition","distanceToCardinalityPoint","angle","atan2","cardinalityPosition","sin","cos"],"mappings":"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AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,CAAC;;;AAGD;AACA;AACA;AACA,qDAAqD,cAAc;AACnE;AACA,C;;;;;;;;;;;;;;;;;;;;;;ACpFA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,8BAA8B;AAClE;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;;AAEA;AACA,UAAU,UAAU;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,sBAAsB;AACrD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7SA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAC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T,SAAO,CAAC9Y,IAAR,CAAa,SAAb,EAAwBuZ,IAAxB;AACD,CA9FM;AAgGQ;AACb5a,SAAO,EAAPA,OADa;AAEbka,MAAI,EAAJA;AAFa,CAAf,E;;;;;;;;;;;ACtPA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,4yBAA4yB;AACvzB,aAAa,2dAA2d;AACxe;AACA;AACA;;AAEA;AACA;AACA;AACA,wB;AACA;AACA;AACA,e;AACA;AACA;AACA,qC;AACA;AACA;AACA,4B;AACA;AACA;AACA,wB;AACA;AACA;AACA,2CAA2C,0B;AAC3C;AACA;AACA;AACA;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA;AACA,mC;AACA;AACA;AACA,mB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,WAAW,8F;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW,6F;AACX;AACA;AACA,WAAW,8F;AACX;AACA;AACA,SAAS,+C;AACT;AACA;AACA,SAAS,6C;AACT;AACA;AACA,SAAS,6C;AACT;AACA;AACA,SAAS,2C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,CAAC;AACD,SAAS,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,8GAA8G,EAAE,SAAS,EAAE,iBAAiB,eAAe,UAAU,wEAAwE,gFAAgF,GAAG,iCAAiC,8BAA8B,2BAA2B,EAAE,iCAAiC,EAAE,iCAAiC,cAAc,2CAA2C,6CAA6C,QAAQ,EAAE,uHAAuH,gBAAgB,2CAA2C,EAAE,4DAA4D,gBAAgB,oBAAoB,eAAe,kCAAkC,oGAAoG,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,2BAA2B,iCAAiC,GAAG,QAAQ,gBAAgB,iCAAiC,EAAE,2CAA2C,eAAe,kCAAkC,iBAAiB,aAAa,EAAE,iCAAiC,eAAe,UAAU,gBAAgB,UAAU,4CAA4C,iCAAiC,gBAAgB,UAAU,EAAE,uBAAuB,wEAAwE,UAAU;AAC3nD,iBAAiB,oCAAoC;AACrD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA;AACA;AACA;AACA,uCAAuC,kBAAkB;AACzD;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,uBAAuB,EAAE,QAAQ,eAAe,qCAAqC,4BAA4B,YAAY,EAAE,0BAA0B,uDAAuD,UAAU,EAAE,kCAAkC,8BAA8B,0BAA0B,EAAE,SAAS;AACnX,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,2FAA2F,cAAc,uCAAuC,aAAa;AAC7J,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;;;;ACtqBA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA,SAAS1H,QAAT,CAAkB1R,MAAlB,EAA0Be,IAA1B,EAAgCd,IAAhC,EAAsC;AACpC,MAAM6F,CAAC,GAAG/E,IAAI,CAACS,KAAf;AACA,MAAMuE,CAAC,GAAGhF,IAAI,CAACU,MAAf;AACA,MAAM8C,CAAC,GAAG,CAACuB,CAAC,GAAGC,CAAL,IAAU,GAApB;AACA,MAAMa,MAAM,GAAG,CACb;AAAE5E,KAAC,EAAEuC,CAAC,GAAG,CAAT;AAAYtC,KAAC,EAAE;AAAf,GADa,EAEb;AAAED,KAAC,EAAEuC,CAAL;AAA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AW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,k8CAAk8C;AAC78C,aAAa,40BAA40B;AACz1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8CAA8C,WAAW,qD;AACrG;AACA;AACA,8CAA8C,gDAAgD,WAAW,yD;AACzG;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC,qDAAqD;AACvF;AACA;AACA,oBAAoB;AACpB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA,uBAAuB;AACvB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,icAAic,25KAA25K,UAAU;AACt2L,aAAa,UAAU,6BAA6B,QAAQ,0DAA0D,WAAW,gCAAgC,YAAY;AAC7K,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACt+BA;AACA;AACA;AACA;AAEA,IAAMna,MAAM,GAAGY,yDAAS,EAAxB;AACA,IAAI2qB,UAAU,GAAG,EAAjB;A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CA,iB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,oCAAoC;AACpC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,2CAA2C;AAC7D;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB,yCAAyC;AAC3D;AACA;AACA,kBAAkB,6CAA6C;AAC/D;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,sGAAsG,cAAc,QAAQ,gBAAgB,0EAA0E,0IAA0I,UAAU,EAAE,oBAAoB,0CAA0C,oBAAoB,gBAAgB,UAAU,gBAAgB,UAAU,8BAA8B,UAAU;AAC5kB,kBAAkB;AAClB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iSAAiS,yDAAyD,2BAA2B,6BAA6B,qDAAqD,2BAA2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B;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,cAAc,gBAAgB,gBAAgB,sBAAsB,EAAE,QAAQ,EAAE,gFAAgF,eAAe,SAAS,eAAe,UAAU,gBAAgB,0BAA0B,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,0BAA0B,EAAE,QAAQ,eAAe,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU,EAAE,UAAU;AAC1lB,iBAAiB,2GAA2G;AAC5H;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,aAAa,WAAW,kCAAkC,WAAW,kCAAkC,YAAY;AACnH,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AA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;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,mHAAmH;AAC9H,aAAa,gDAAgD;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA,W;AACA;AACA;;AAEA;AACA;AACA,kB;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,iCAAiC,EAAE,QAAQ;AAC7F,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;;;AC7mBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,mIAAmI;AAC9I,aAAa,gEAAgE;AAC7E;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kD;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,0CAA0C,EAAE,QAAQ,yCAAyC,UAAU;AACzJ,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qGAAqG;AACrG,aAAa,UAAU,gCAAgC,YAAY;AACnE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;;;;ACznBA;AAAA;AAAA;;;AAGA;AAEA,IAAIwR,QAAQ,GAAG,EAAf;AACA,IAAIvS,KAAK,GAAG,EAAZ;;AAEA,IAAM2T,UAAU,GAAG,SAAbA,UAAa,CAAS5rB,EAAT,EAAa8pB,KAAb,EAAoB;AACrC,MAAI,OAAOU,QAAQ,CAACxqB,EAAD,CAAf,KAAwB,WAA5B,EAAyC;AACvCwqB,YAAQ,CAACxqB,EAAD,CAAR,GAAe8pB,KAAf;AACA5lB,kDAA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AAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,W;AAC1B;AACA,wCAAwC,qBAAqB,W;AAC7D;AACA,yBAAyB,iBAAiB,oBAAoB,W;AAC9D;AACA,yBAAyB,iBAAiB,U;AAC1C;AACA,4BAA4B,W;AAC5B;AACA,4BAA4B,W;AAC5B;AACA,4BAA4B,W;AAC5B;AACA,4BAA4B,W;AAC5B;AACA,4BAA4B,W;AAC5B;AACA,4BAA4B,W;AAC5B;AACA,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B,8CAA8C,IAAI,GAAG,QAAQ,EAAE,QAAQ,EAAE,yGAAyG,eAAe,iFAAiF,wCAAwC,oBAAoB,iBAAiB,UAAU,eAAe,UAAU,GAAG,UAAU,4CAA4C,oCAAoC,yDAAyD,oBAAoB,0BAA0B,KAAK,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,eAAe,UAAU,GAAG,2GAA2G,eAAe,UAAU,GAAG,UAAU,EAAE,UAAU,wCAAwC,KAAK,+BAA+B,2GAA2G;AAC/kC,iBAAiB,oCAAoC;AACrD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yCAAyC,a;AACzE;AACA;AACA;AACA;AACA;AACA,gC;AACA;AACA,uBAAuB,yCAAyC,0CAA0C;AAC1G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA,wBAAwB,uCAAuC;AAC/D;AACA;AACA;AACA,wDAAwD;AACxD;AACA,oDAAoD;AACpD;AACA;AACA;AACA,wBAAwB,yBAAyB,2CAA2C;AAC5F;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA,4BAA4B,W;AAC5B;AACA,yBAAyB,0BAA0B;AACnD;AACA,yBAAyB,0BAA0B;AACnD;AACA,yBAAyB;AACzB;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,wBAAwB,8CAA8C;AACtE;AACA,yBAAyB,4BAA4B,6CAA6C;AAClG;AACA,yBAAyB,mDAAmD,2CAA2C;AACvH;AACA,yBAAyB,mDAAmD,6CAA6C;AACzH;AACA,4DAA4D,W;AAC5D;AACA,4DAA4D,W;AAC5D;AACA,qDAAqD,Y;AACrD;AAC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AEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,uKAAuK;AAClL,aAAa,oGAAoG;AACjH;AACA;AACA;;AAEA;AACA;AACA;AACA,iB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,sDAAsD,cAAc,QAAQ,gBAAgB,0BAA0B,sDAAsD,UAAU;AACxO,kBAAkB;AAClB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,sGAAsG,2BAA2B,kBAAkB,kBAAkB;AACrK,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;;;;ACroBA;AAAA;A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","file":"mermaid.core.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mermaid\"] = factory();\n\telse\n\t\troot[\"mermaid\"] = factory();\n})(typeof self !== \"undefined\" ? self : this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/mermaid.js\");\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/* Flowchart variables */\\n/* Sequence Diagram variables */\\n/* Gantt chart variables */\\n/* state colors */\\n.label {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n color: #333; }\\n\\n.label text {\\n fill: #333; }\\n\\n.node rect,\\n.node circle,\\n.node ellipse,\\n.node polygon,\\n.node path {\\n fill: #1f2020;\\n stroke: purple;\\n stroke-width: 1px; }\\n\\n.node .label {\\n text-align: center; }\\n\\n.node.clickable {\\n cursor: pointer; }\\n\\n.arrowheadPath {\\n fill: lightgrey; }\\n\\n.edgePath .path {\\n stroke: lightgrey;\\n stroke-width: 1.5px; }\\n\\n.edgeLabel {\\n background-color: #e8e8e8;\\n text-align: center; }\\n .edgeLabel rect {\\n opacity: 0.5; }\\n\\n.cluster rect {\\n fill: #474949;\\n stroke: rgba(255, 255, 255, 0.25);\\n stroke-width: 1px; }\\n\\n.cluster text {\\n fill: #F9FFFE; }\\n\\ndiv.mermaidTooltip {\\n position: absolute;\\n text-align: center;\\n max-width: 200px;\\n padding: 2px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 12px;\\n background: #474949;\\n border: 1px solid rgba(255, 255, 255, 0.25);\\n border-radius: 2px;\\n pointer-events: none;\\n z-index: 100; }\\n\\n.actor {\\n stroke: #81B1DB;\\n fill: #1f2020; }\\n\\ntext.actor > tspan {\\n fill: lightgrey;\\n stroke: none; }\\n\\n.actor-line {\\n stroke: lightgrey; }\\n\\n.messageLine0 {\\n stroke-width: 1.5;\\n stroke-dasharray: none;\\n stroke: lightgrey; }\\n\\n.messageLine1 {\\n stroke-width: 1.5;\\n stroke-dasharray: 2, 2;\\n stroke: lightgrey; }\\n\\n#arrowhead path {\\n fill: lightgrey;\\n stroke: lightgrey; }\\n\\n.sequenceNumber {\\n fill: white; }\\n\\n#sequencenumber {\\n fill: lightgrey; }\\n\\n#crosshead path {\\n fill: lightgrey;\\n stroke: lightgrey; }\\n\\n.messageText {\\n fill: lightgrey;\\n stroke: lightgrey; }\\n\\n.labelBox {\\n stroke: #81B1DB;\\n fill: #1f2020; }\\n\\n.labelText, .labelText > tspan {\\n fill: lightgrey;\\n stroke: none; }\\n\\n.loopText, .loopText > tspan {\\n fill: lightgrey;\\n stroke: none; }\\n\\n.loopLine {\\n stroke-width: 2px;\\n stroke-dasharray: 2, 2;\\n stroke: #81B1DB;\\n fill: #81B1DB; }\\n\\n.note {\\n stroke: rgba(255, 255, 255, 0.25);\\n fill: #fff5ad; }\\n\\n.noteText {\\n fill: #1f2020;\\n stroke: none; }\\n\\n.activation0 {\\n fill: #474949;\\n stroke: #81B1DB; }\\n\\n.activation1 {\\n fill: #474949;\\n stroke: #81B1DB; }\\n\\n.activation2 {\\n fill: #474949;\\n stroke: #81B1DB; }\\n\\ng > rect[class=\\\"note\\\"] {\\n stroke: rgba(255, 255, 255, 0.25);\\n fill: #fff5ad; }\\n\\ng > text[class=\\\"noteText\\\"] > tspan {\\n stroke: #1f2020;\\n fill: #1f2020;\\n stroke-width: 1px; }\\n\\n/** Section styling */\\n.mermaid-main-font {\\n font-family: \\\"trebuchet ms\\\", verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.section {\\n stroke: none;\\n opacity: 0.2; }\\n\\n.section0 {\\n fill: rgba(255, 255, 255, 0.3); }\\n\\n.section2 {\\n fill: #EAE8B9; }\\n\\n.section1,\\n.section3 {\\n fill: white;\\n opacity: 0.2; }\\n\\n.sectionTitle0 {\\n fill: #F9FFFE; }\\n\\n.sectionTitle1 {\\n fill: #F9FFFE; }\\n\\n.sectionTitle2 {\\n fill: #F9FFFE; }\\n\\n.sectionTitle3 {\\n fill: #F9FFFE; }\\n\\n.sectionTitle {\\n text-anchor: start;\\n font-size: 11px;\\n text-height: 14px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n/* Grid and axis */\\n.grid .tick {\\n stroke: lightgrey;\\n opacity: 0.8;\\n shape-rendering: crispEdges; }\\n .grid .tick text {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.grid path {\\n stroke-width: 0; }\\n\\n/* Today line */\\n.today {\\n fill: none;\\n stroke: #DB5757;\\n stroke-width: 2px; }\\n\\n/* Task styling */\\n/* Default task */\\n.task {\\n stroke-width: 2; }\\n\\n.taskText {\\n text-anchor: middle;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskText:not([font-size]) {\\n font-size: 11px; }\\n\\n.taskTextOutsideRight {\\n fill: #323D47;\\n text-anchor: start;\\n font-size: 11px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskTextOutsideLeft {\\n fill: #323D47;\\n text-anchor: end;\\n font-size: 11px; }\\n\\n/* Special case clickable */\\n.task.clickable {\\n cursor: pointer; }\\n\\n.taskText.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideLeft.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideRight.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n/* Specific task settings for the sections*/\\n.taskText0,\\n.taskText1,\\n.taskText2,\\n.taskText3 {\\n fill: #323D47; }\\n\\n.task0,\\n.task1,\\n.task2,\\n.task3 {\\n fill: #1f2020;\\n stroke: rgba(255, 255, 255, 0.5); }\\n\\n.taskTextOutside0,\\n.taskTextOutside2 {\\n fill: lightgrey; }\\n\\n.taskTextOutside1,\\n.taskTextOutside3 {\\n fill: lightgrey; }\\n\\n/* Active task */\\n.active0,\\n.active1,\\n.active2,\\n.active3 {\\n fill: #81B1DB;\\n stroke: rgba(255, 255, 255, 0.5); }\\n\\n.activeText0,\\n.activeText1,\\n.activeText2,\\n.activeText3 {\\n fill: #323D47 !important; }\\n\\n/* Completed task */\\n.done0,\\n.done1,\\n.done2,\\n.done3 {\\n stroke: grey;\\n fill: lightgrey;\\n stroke-width: 2; }\\n\\n.doneText0,\\n.doneText1,\\n.doneText2,\\n.doneText3 {\\n fill: #323D47 !important; }\\n\\n/* Tasks on the critical line */\\n.crit0,\\n.crit1,\\n.crit2,\\n.crit3 {\\n stroke: #E83737;\\n fill: #E83737;\\n stroke-width: 2; }\\n\\n.activeCrit0,\\n.activeCrit1,\\n.activeCrit2,\\n.activeCrit3 {\\n stroke: #E83737;\\n fill: #81B1DB;\\n stroke-width: 2; }\\n\\n.doneCrit0,\\n.doneCrit1,\\n.doneCrit2,\\n.doneCrit3 {\\n stroke: #E83737;\\n fill: lightgrey;\\n stroke-width: 2;\\n cursor: pointer;\\n shape-rendering: crispEdges; }\\n\\n.milestone {\\n transform: rotate(45deg) scale(0.8, 0.8); }\\n\\n.milestoneText {\\n font-style: italic; }\\n\\n.doneCritText0,\\n.doneCritText1,\\n.doneCritText2,\\n.doneCritText3 {\\n fill: #323D47 !important; }\\n\\n.activeCritText0,\\n.activeCritText1,\\n.activeCritText2,\\n.activeCritText3 {\\n fill: #323D47 !important; }\\n\\n.titleText {\\n text-anchor: middle;\\n font-size: 18px;\\n fill: #323D47;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.classGroup text {\\n fill: purple;\\n stroke: none;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 10px; }\\n g.classGroup text .title {\\n font-weight: bolder; }\\n\\ng.clickable {\\n cursor: pointer; }\\n\\ng.classGroup rect {\\n fill: #1f2020;\\n stroke: purple; }\\n\\ng.classGroup line {\\n stroke: purple;\\n stroke-width: 1; }\\n\\n.classLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #1f2020;\\n opacity: 0.5; }\\n\\n.classLabel .label {\\n fill: purple;\\n font-size: 10px; }\\n\\n.relation {\\n stroke: purple;\\n stroke-width: 1;\\n fill: none; }\\n\\n.dashed-line {\\n stroke-dasharray: 3; }\\n\\n#compositionStart {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#compositionEnd {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#aggregationStart {\\n fill: #1f2020;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#aggregationEnd {\\n fill: #1f2020;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#dependencyStart {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#dependencyEnd {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#extensionStart {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#extensionEnd {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n.commit-id,\\n.commit-msg,\\n.branch-label {\\n fill: lightgrey;\\n color: lightgrey;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.pieTitleText {\\n text-anchor: middle;\\n font-size: 25px;\\n fill: #323D47;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.slice {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: purple;\\n stroke: none;\\n font-size: 10px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: purple;\\n stroke: none;\\n font-size: 10px; }\\n\\ng.stateGroup .state-title {\\n font-weight: bolder;\\n fill: black; }\\n\\ng.stateGroup rect {\\n fill: #1f2020;\\n stroke: purple; }\\n\\ng.stateGroup line {\\n stroke: purple;\\n stroke-width: 1; }\\n\\n.transition {\\n stroke: purple;\\n stroke-width: 1;\\n fill: none; }\\n\\n.stateGroup .composit {\\n fill: white;\\n border-bottom: 1px; }\\n\\n.stateGroup .alt-composit {\\n fill: #e0e0e0;\\n border-bottom: 1px; }\\n\\n.state-note {\\n stroke: rgba(255, 255, 255, 0.25);\\n fill: #fff5ad; }\\n .state-note text {\\n fill: black;\\n stroke: none;\\n font-size: 10px; }\\n\\n.stateLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #1f2020;\\n opacity: 0.5; }\\n\\n.stateLabel text {\\n fill: black;\\n font-size: 10px;\\n font-weight: bold;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.node circle.state-start {\\n fill: black;\\n stroke: black; }\\n\\n.node circle.state-end {\\n fill: black;\\n stroke: white;\\n stroke-width: 1.5; }\\n\\n#statediagram-barbEnd {\\n fill: purple; }\\n\\n.statediagram-cluster rect {\\n fill: #1f2020;\\n stroke: purple;\\n stroke-width: 1px; }\\n\\n.statediagram-cluster rect.outer {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state .divider {\\n stroke: purple; }\\n\\n.statediagram-state .title-state {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-cluster.statediagram-cluster .inner {\\n fill: white; }\\n\\n.statediagram-cluster.statediagram-cluster-alt .inner {\\n fill: #e0e0e0; }\\n\\n.statediagram-cluster .inner {\\n rx: 0;\\n ry: 0; }\\n\\n.statediagram-state rect.basic {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state rect.divider {\\n stroke-dasharray: 10,10;\\n fill: #efefef; }\\n\\n.note-edge {\\n stroke-dasharray: 5; }\\n\\n.statediagram-note rect {\\n fill: #fff5ad;\\n stroke: rgba(255, 255, 255, 0.25);\\n stroke-width: 1px;\\n rx: 0;\\n ry: 0; }\\n\\n:root {\\n --mermaid-font-family: '\\\"trebuchet ms\\\", verdana, arial, \\\"Comic Sans MS\\\", \\\"Comic Sans\\\", cursive'; }\\n\\n.error-icon {\\n fill: #a44141; }\\n\\n.error-text {\\n fill: #ddd;\\n stroke: #ddd; }\\n\", \"\"]);\n\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/* Flowchart variables */\\n/* Sequence Diagram variables */\\n/* Gantt chart variables */\\n/* state colors */\\n.label {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n color: #333; }\\n\\n.label text {\\n fill: #333; }\\n\\n.node rect,\\n.node circle,\\n.node ellipse,\\n.node polygon,\\n.node path {\\n fill: #ECECFF;\\n stroke: #9370DB;\\n stroke-width: 1px; }\\n\\n.node .label {\\n text-align: center; }\\n\\n.node.clickable {\\n cursor: pointer; }\\n\\n.arrowheadPath {\\n fill: #333333; }\\n\\n.edgePath .path {\\n stroke: #333333;\\n stroke-width: 1.5px; }\\n\\n.edgeLabel {\\n background-color: #e8e8e8;\\n text-align: center; }\\n .edgeLabel rect {\\n opacity: 0.5; }\\n\\n.cluster rect {\\n fill: #ffffde;\\n stroke: #aaaa33;\\n stroke-width: 1px; }\\n\\n.cluster text {\\n fill: #333; }\\n\\ndiv.mermaidTooltip {\\n position: absolute;\\n text-align: center;\\n max-width: 200px;\\n padding: 2px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 12px;\\n background: #ffffde;\\n border: 1px solid #aaaa33;\\n border-radius: 2px;\\n pointer-events: none;\\n z-index: 100; }\\n\\n.actor {\\n stroke: #CCCCFF;\\n fill: #ECECFF; }\\n\\ntext.actor > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.actor-line {\\n stroke: grey; }\\n\\n.messageLine0 {\\n stroke-width: 1.5;\\n stroke-dasharray: none;\\n stroke: #333; }\\n\\n.messageLine1 {\\n stroke-width: 1.5;\\n stroke-dasharray: 2, 2;\\n stroke: #333; }\\n\\n#arrowhead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.sequenceNumber {\\n fill: white; }\\n\\n#sequencenumber {\\n fill: #333; }\\n\\n#crosshead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.messageText {\\n fill: #333;\\n stroke: #333; }\\n\\n.labelBox {\\n stroke: #CCCCFF;\\n fill: #ECECFF; }\\n\\n.labelText, .labelText > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.loopText, .loopText > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.loopLine {\\n stroke-width: 2px;\\n stroke-dasharray: 2, 2;\\n stroke: #CCCCFF;\\n fill: #CCCCFF; }\\n\\n.note {\\n stroke: #aaaa33;\\n fill: #fff5ad; }\\n\\n.noteText {\\n fill: #ECECFF;\\n stroke: none; }\\n\\n.activation0 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation1 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation2 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\ng > rect[class=\\\"note\\\"] {\\n stroke: #aaaa33;\\n fill: #fff5ad; }\\n\\ng > text[class=\\\"noteText\\\"] > tspan {\\n stroke: #ECECFF;\\n fill: #ECECFF;\\n stroke-width: 1px; }\\n\\n/** Section styling */\\n.mermaid-main-font {\\n font-family: \\\"trebuchet ms\\\", verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.section {\\n stroke: none;\\n opacity: 0.2; }\\n\\n.section0 {\\n fill: rgba(102, 102, 255, 0.49); }\\n\\n.section2 {\\n fill: #fff400; }\\n\\n.section1,\\n.section3 {\\n fill: white;\\n opacity: 0.2; }\\n\\n.sectionTitle0 {\\n fill: #333; }\\n\\n.sectionTitle1 {\\n fill: #333; }\\n\\n.sectionTitle2 {\\n fill: #333; }\\n\\n.sectionTitle3 {\\n fill: #333; }\\n\\n.sectionTitle {\\n text-anchor: start;\\n font-size: 11px;\\n text-height: 14px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n/* Grid and axis */\\n.grid .tick {\\n stroke: lightgrey;\\n opacity: 0.8;\\n shape-rendering: crispEdges; }\\n .grid .tick text {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.grid path {\\n stroke-width: 0; }\\n\\n/* Today line */\\n.today {\\n fill: none;\\n stroke: red;\\n stroke-width: 2px; }\\n\\n/* Task styling */\\n/* Default task */\\n.task {\\n stroke-width: 2; }\\n\\n.taskText {\\n text-anchor: middle;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskText:not([font-size]) {\\n font-size: 11px; }\\n\\n.taskTextOutsideRight {\\n fill: black;\\n text-anchor: start;\\n font-size: 11px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskTextOutsideLeft {\\n fill: black;\\n text-anchor: end;\\n font-size: 11px; }\\n\\n/* Special case clickable */\\n.task.clickable {\\n cursor: pointer; }\\n\\n.taskText.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideLeft.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideRight.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n/* Specific task settings for the sections*/\\n.taskText0,\\n.taskText1,\\n.taskText2,\\n.taskText3 {\\n fill: white; }\\n\\n.task0,\\n.task1,\\n.task2,\\n.task3 {\\n fill: #8a90dd;\\n stroke: #534fbc; }\\n\\n.taskTextOutside0,\\n.taskTextOutside2 {\\n fill: black; }\\n\\n.taskTextOutside1,\\n.taskTextOutside3 {\\n fill: black; }\\n\\n/* Active task */\\n.active0,\\n.active1,\\n.active2,\\n.active3 {\\n fill: #bfc7ff;\\n stroke: #534fbc; }\\n\\n.activeText0,\\n.activeText1,\\n.activeText2,\\n.activeText3 {\\n fill: black !important; }\\n\\n/* Completed task */\\n.done0,\\n.done1,\\n.done2,\\n.done3 {\\n stroke: grey;\\n fill: lightgrey;\\n stroke-width: 2; }\\n\\n.doneText0,\\n.doneText1,\\n.doneText2,\\n.doneText3 {\\n fill: black !important; }\\n\\n/* Tasks on the critical line */\\n.crit0,\\n.crit1,\\n.crit2,\\n.crit3 {\\n stroke: #ff8888;\\n fill: red;\\n stroke-width: 2; }\\n\\n.activeCrit0,\\n.activeCrit1,\\n.activeCrit2,\\n.activeCrit3 {\\n stroke: #ff8888;\\n fill: #bfc7ff;\\n stroke-width: 2; }\\n\\n.doneCrit0,\\n.doneCrit1,\\n.doneCrit2,\\n.doneCrit3 {\\n stroke: #ff8888;\\n fill: lightgrey;\\n stroke-width: 2;\\n cursor: pointer;\\n shape-rendering: crispEdges; }\\n\\n.milestone {\\n transform: rotate(45deg) scale(0.8, 0.8); }\\n\\n.milestoneText {\\n font-style: italic; }\\n\\n.doneCritText0,\\n.doneCritText1,\\n.doneCritText2,\\n.doneCritText3 {\\n fill: black !important; }\\n\\n.activeCritText0,\\n.activeCritText1,\\n.activeCritText2,\\n.activeCritText3 {\\n fill: black !important; }\\n\\n.titleText {\\n text-anchor: middle;\\n font-size: 18px;\\n fill: black;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.classGroup text {\\n fill: #9370DB;\\n stroke: none;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 10px; }\\n g.classGroup text .title {\\n font-weight: bolder; }\\n\\ng.clickable {\\n cursor: pointer; }\\n\\ng.classGroup rect {\\n fill: #ECECFF;\\n stroke: #9370DB; }\\n\\ng.classGroup line {\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n.classLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #ECECFF;\\n opacity: 0.5; }\\n\\n.classLabel .label {\\n fill: #9370DB;\\n font-size: 10px; }\\n\\n.relation {\\n stroke: #9370DB;\\n stroke-width: 1;\\n fill: none; }\\n\\n.dashed-line {\\n stroke-dasharray: 3; }\\n\\n#compositionStart {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#compositionEnd {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#aggregationStart {\\n fill: #ECECFF;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#aggregationEnd {\\n fill: #ECECFF;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#dependencyStart {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#dependencyEnd {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#extensionStart {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#extensionEnd {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n.commit-id,\\n.commit-msg,\\n.branch-label {\\n fill: lightgrey;\\n color: lightgrey;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.pieTitleText {\\n text-anchor: middle;\\n font-size: 25px;\\n fill: black;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.slice {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #9370DB;\\n stroke: none;\\n font-size: 10px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #9370DB;\\n stroke: none;\\n font-size: 10px; }\\n\\ng.stateGroup .state-title {\\n font-weight: bolder;\\n fill: black; }\\n\\ng.stateGroup rect {\\n fill: #ECECFF;\\n stroke: #9370DB; }\\n\\ng.stateGroup line {\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n.transition {\\n stroke: #9370DB;\\n stroke-width: 1;\\n fill: none; }\\n\\n.stateGroup .composit {\\n fill: white;\\n border-bottom: 1px; }\\n\\n.stateGroup .alt-composit {\\n fill: #e0e0e0;\\n border-bottom: 1px; }\\n\\n.state-note {\\n stroke: #aaaa33;\\n fill: #fff5ad; }\\n .state-note text {\\n fill: black;\\n stroke: none;\\n font-size: 10px; }\\n\\n.stateLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #ECECFF;\\n opacity: 0.5; }\\n\\n.stateLabel text {\\n fill: black;\\n font-size: 10px;\\n font-weight: bold;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.node circle.state-start {\\n fill: black;\\n stroke: black; }\\n\\n.node circle.state-end {\\n fill: black;\\n stroke: white;\\n stroke-width: 1.5; }\\n\\n#statediagram-barbEnd {\\n fill: #9370DB; }\\n\\n.statediagram-cluster rect {\\n fill: #ECECFF;\\n stroke: #9370DB;\\n stroke-width: 1px; }\\n\\n.statediagram-cluster rect.outer {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state .divider {\\n stroke: #9370DB; }\\n\\n.statediagram-state .title-state {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-cluster.statediagram-cluster .inner {\\n fill: white; }\\n\\n.statediagram-cluster.statediagram-cluster-alt .inner {\\n fill: #e0e0e0; }\\n\\n.statediagram-cluster .inner {\\n rx: 0;\\n ry: 0; }\\n\\n.statediagram-state rect.basic {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state rect.divider {\\n stroke-dasharray: 10,10;\\n fill: #efefef; }\\n\\n.note-edge {\\n stroke-dasharray: 5; }\\n\\n.statediagram-note rect {\\n fill: #fff5ad;\\n stroke: #aaaa33;\\n stroke-width: 1px;\\n rx: 0;\\n ry: 0; }\\n\\n:root {\\n --mermaid-font-family: '\\\"trebuchet ms\\\", verdana, arial, \\\"Comic Sans MS\\\", \\\"Comic Sans\\\", cursive'; }\\n\\n.error-icon {\\n fill: #552222; }\\n\\n.error-text {\\n fill: #552222;\\n stroke: #552222; }\\n\", \"\"]);\n\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/* Flowchart variables */\\n/* Sequence Diagram variables */\\n/* Gantt chart variables */\\n/* state colors */\\n.label {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n color: #333; }\\n\\n.label text {\\n fill: #333; }\\n\\n.node rect,\\n.node circle,\\n.node ellipse,\\n.node polygon,\\n.node path {\\n fill: #cde498;\\n stroke: #13540c;\\n stroke-width: 1px; }\\n\\n.node .label {\\n text-align: center; }\\n\\n.node.clickable {\\n cursor: pointer; }\\n\\n.arrowheadPath {\\n fill: green; }\\n\\n.edgePath .path {\\n stroke: green;\\n stroke-width: 1.5px; }\\n\\n.edgeLabel {\\n background-color: #e8e8e8;\\n text-align: center; }\\n .edgeLabel rect {\\n opacity: 0.5; }\\n\\n.cluster rect {\\n fill: #cdffb2;\\n stroke: #6eaa49;\\n stroke-width: 1px; }\\n\\n.cluster text {\\n fill: #333; }\\n\\ndiv.mermaidTooltip {\\n position: absolute;\\n text-align: center;\\n max-width: 200px;\\n padding: 2px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 12px;\\n background: #cdffb2;\\n border: 1px solid #6eaa49;\\n border-radius: 2px;\\n pointer-events: none;\\n z-index: 100; }\\n\\n.actor {\\n stroke: #13540c;\\n fill: #cde498; }\\n\\ntext.actor > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.actor-line {\\n stroke: grey; }\\n\\n.messageLine0 {\\n stroke-width: 1.5;\\n stroke-dasharray: none;\\n stroke: #333; }\\n\\n.messageLine1 {\\n stroke-width: 1.5;\\n stroke-dasharray: 2, 2;\\n stroke: #333; }\\n\\n#arrowhead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.sequenceNumber {\\n fill: white; }\\n\\n#sequencenumber {\\n fill: #333; }\\n\\n#crosshead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.messageText {\\n fill: #333;\\n stroke: #333; }\\n\\n.labelBox {\\n stroke: #326932;\\n fill: #cde498; }\\n\\n.labelText, .labelText > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.loopText, .loopText > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.loopLine {\\n stroke-width: 2px;\\n stroke-dasharray: 2, 2;\\n stroke: #326932;\\n fill: #326932; }\\n\\n.note {\\n stroke: #6eaa49;\\n fill: #fff5ad; }\\n\\n.noteText {\\n fill: #cde498;\\n stroke: none; }\\n\\n.activation0 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation1 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation2 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\ng > rect[class=\\\"note\\\"] {\\n stroke: #6eaa49;\\n fill: #fff5ad; }\\n\\ng > text[class=\\\"noteText\\\"] > tspan {\\n stroke: #cde498;\\n fill: #cde498;\\n stroke-width: 1px; }\\n\\n/** Section styling */\\n.mermaid-main-font {\\n font-family: \\\"trebuchet ms\\\", verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.section {\\n stroke: none;\\n opacity: 0.2; }\\n\\n.section0 {\\n fill: #6eaa49; }\\n\\n.section2 {\\n fill: #6eaa49; }\\n\\n.section1,\\n.section3 {\\n fill: white;\\n opacity: 0.2; }\\n\\n.sectionTitle0 {\\n fill: #333; }\\n\\n.sectionTitle1 {\\n fill: #333; }\\n\\n.sectionTitle2 {\\n fill: #333; }\\n\\n.sectionTitle3 {\\n fill: #333; }\\n\\n.sectionTitle {\\n text-anchor: start;\\n font-size: 11px;\\n text-height: 14px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n/* Grid and axis */\\n.grid .tick {\\n stroke: lightgrey;\\n opacity: 0.8;\\n shape-rendering: crispEdges; }\\n .grid .tick text {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.grid path {\\n stroke-width: 0; }\\n\\n/* Today line */\\n.today {\\n fill: none;\\n stroke: red;\\n stroke-width: 2px; }\\n\\n/* Task styling */\\n/* Default task */\\n.task {\\n stroke-width: 2; }\\n\\n.taskText {\\n text-anchor: middle;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskText:not([font-size]) {\\n font-size: 11px; }\\n\\n.taskTextOutsideRight {\\n fill: black;\\n text-anchor: start;\\n font-size: 11px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskTextOutsideLeft {\\n fill: black;\\n text-anchor: end;\\n font-size: 11px; }\\n\\n/* Special case clickable */\\n.task.clickable {\\n cursor: pointer; }\\n\\n.taskText.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideLeft.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideRight.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n/* Specific task settings for the sections*/\\n.taskText0,\\n.taskText1,\\n.taskText2,\\n.taskText3 {\\n fill: white; }\\n\\n.task0,\\n.task1,\\n.task2,\\n.task3 {\\n fill: #487e3a;\\n stroke: #13540c; }\\n\\n.taskTextOutside0,\\n.taskTextOutside2 {\\n fill: black; }\\n\\n.taskTextOutside1,\\n.taskTextOutside3 {\\n fill: black; }\\n\\n/* Active task */\\n.active0,\\n.active1,\\n.active2,\\n.active3 {\\n fill: #cde498;\\n stroke: #13540c; }\\n\\n.activeText0,\\n.activeText1,\\n.activeText2,\\n.activeText3 {\\n fill: black !important; }\\n\\n/* Completed task */\\n.done0,\\n.done1,\\n.done2,\\n.done3 {\\n stroke: grey;\\n fill: lightgrey;\\n stroke-width: 2; }\\n\\n.doneText0,\\n.doneText1,\\n.doneText2,\\n.doneText3 {\\n fill: black !important; }\\n\\n/* Tasks on the critical line */\\n.crit0,\\n.crit1,\\n.crit2,\\n.crit3 {\\n stroke: #ff8888;\\n fill: red;\\n stroke-width: 2; }\\n\\n.activeCrit0,\\n.activeCrit1,\\n.activeCrit2,\\n.activeCrit3 {\\n stroke: #ff8888;\\n fill: #cde498;\\n stroke-width: 2; }\\n\\n.doneCrit0,\\n.doneCrit1,\\n.doneCrit2,\\n.doneCrit3 {\\n stroke: #ff8888;\\n fill: lightgrey;\\n stroke-width: 2;\\n cursor: pointer;\\n shape-rendering: crispEdges; }\\n\\n.milestone {\\n transform: rotate(45deg) scale(0.8, 0.8); }\\n\\n.milestoneText {\\n font-style: italic; }\\n\\n.doneCritText0,\\n.doneCritText1,\\n.doneCritText2,\\n.doneCritText3 {\\n fill: black !important; }\\n\\n.activeCritText0,\\n.activeCritText1,\\n.activeCritText2,\\n.activeCritText3 {\\n fill: black !important; }\\n\\n.titleText {\\n text-anchor: middle;\\n font-size: 18px;\\n fill: black;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.classGroup text {\\n fill: #13540c;\\n stroke: none;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 10px; }\\n g.classGroup text .title {\\n font-weight: bolder; }\\n\\ng.clickable {\\n cursor: pointer; }\\n\\ng.classGroup rect {\\n fill: #cde498;\\n stroke: #13540c; }\\n\\ng.classGroup line {\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n.classLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #cde498;\\n opacity: 0.5; }\\n\\n.classLabel .label {\\n fill: #13540c;\\n font-size: 10px; }\\n\\n.relation {\\n stroke: #13540c;\\n stroke-width: 1;\\n fill: none; }\\n\\n.dashed-line {\\n stroke-dasharray: 3; }\\n\\n#compositionStart {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#compositionEnd {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#aggregationStart {\\n fill: #cde498;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#aggregationEnd {\\n fill: #cde498;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#dependencyStart {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#dependencyEnd {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#extensionStart {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#extensionEnd {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n.commit-id,\\n.commit-msg,\\n.branch-label {\\n fill: lightgrey;\\n color: lightgrey;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.pieTitleText {\\n text-anchor: middle;\\n font-size: 25px;\\n fill: black;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.slice {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #13540c;\\n stroke: none;\\n font-size: 10px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #13540c;\\n stroke: none;\\n font-size: 10px; }\\n\\ng.stateGroup .state-title {\\n font-weight: bolder;\\n fill: black; }\\n\\ng.stateGroup rect {\\n fill: #cde498;\\n stroke: #13540c; }\\n\\ng.stateGroup line {\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n.transition {\\n stroke: #13540c;\\n stroke-width: 1;\\n fill: none; }\\n\\n.stateGroup .composit {\\n fill: white;\\n border-bottom: 1px; }\\n\\n.stateGroup .alt-composit {\\n fill: #e0e0e0;\\n border-bottom: 1px; }\\n\\n.state-note {\\n stroke: #6eaa49;\\n fill: #fff5ad; }\\n .state-note text {\\n fill: black;\\n stroke: none;\\n font-size: 10px; }\\n\\n.stateLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #cde498;\\n opacity: 0.5; }\\n\\n.stateLabel text {\\n fill: black;\\n font-size: 10px;\\n font-weight: bold;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.node circle.state-start {\\n fill: black;\\n stroke: black; }\\n\\n.node circle.state-end {\\n fill: black;\\n stroke: white;\\n stroke-width: 1.5; }\\n\\n#statediagram-barbEnd {\\n fill: #13540c; }\\n\\n.statediagram-cluster rect {\\n fill: #cde498;\\n stroke: #13540c;\\n stroke-width: 1px; }\\n\\n.statediagram-cluster rect.outer {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state .divider {\\n stroke: #13540c; }\\n\\n.statediagram-state .title-state {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-cluster.statediagram-cluster .inner {\\n fill: white; }\\n\\n.statediagram-cluster.statediagram-cluster-alt .inner {\\n fill: #e0e0e0; }\\n\\n.statediagram-cluster .inner {\\n rx: 0;\\n ry: 0; }\\n\\n.statediagram-state rect.basic {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state rect.divider {\\n stroke-dasharray: 10,10;\\n fill: #efefef; }\\n\\n.note-edge {\\n stroke-dasharray: 5; }\\n\\n.statediagram-note rect {\\n fill: #fff5ad;\\n stroke: #6eaa49;\\n stroke-width: 1px;\\n rx: 0;\\n ry: 0; }\\n\\n:root {\\n --mermaid-font-family: '\\\"trebuchet ms\\\", verdana, arial, \\\"Comic Sans MS\\\", \\\"Comic Sans\\\", cursive'; }\\n\\n.error-icon {\\n fill: #552222; }\\n\\n.error-text {\\n fill: #552222;\\n stroke: #552222; }\\n\", \"\"]);\n\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/* Flowchart variables */\\n/* Sequence Diagram variables */\\n/* Gantt chart variables */\\n/* state colors */\\n.label {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n color: #333; }\\n\\n.label text {\\n fill: #333; }\\n\\n.node rect,\\n.node circle,\\n.node ellipse,\\n.node polygon,\\n.node path {\\n fill: #eee;\\n stroke: #999;\\n stroke-width: 1px; }\\n\\n.node .label {\\n text-align: center; }\\n\\n.node.clickable {\\n cursor: pointer; }\\n\\n.arrowheadPath {\\n fill: #333333; }\\n\\n.edgePath .path {\\n stroke: #666;\\n stroke-width: 1.5px; }\\n\\n.edgeLabel {\\n background-color: white;\\n text-align: center; }\\n .edgeLabel rect {\\n opacity: 0.5; }\\n\\n.cluster rect {\\n fill: #eaf2fb;\\n stroke: #26a;\\n stroke-width: 1px; }\\n\\n.cluster text {\\n fill: #333; }\\n\\ndiv.mermaidTooltip {\\n position: absolute;\\n text-align: center;\\n max-width: 200px;\\n padding: 2px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 12px;\\n background: #eaf2fb;\\n border: 1px solid #26a;\\n border-radius: 2px;\\n pointer-events: none;\\n z-index: 100; }\\n\\n.actor {\\n stroke: #999;\\n fill: #eee; }\\n\\ntext.actor > tspan {\\n fill: #333;\\n stroke: none; }\\n\\n.actor-line {\\n stroke: #666; }\\n\\n.messageLine0 {\\n stroke-width: 1.5;\\n stroke-dasharray: none;\\n stroke: #333; }\\n\\n.messageLine1 {\\n stroke-width: 1.5;\\n stroke-dasharray: 2, 2;\\n stroke: #333; }\\n\\n#arrowhead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.sequenceNumber {\\n fill: white; }\\n\\n#sequencenumber {\\n fill: #333; }\\n\\n#crosshead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.messageText {\\n fill: #333;\\n stroke: #333; }\\n\\n.labelBox {\\n stroke: #999;\\n fill: #eee; }\\n\\n.labelText, .labelText > tspan {\\n fill: #333;\\n stroke: none; }\\n\\n.loopText, .loopText > tspan {\\n fill: #333;\\n stroke: none; }\\n\\n.loopLine {\\n stroke-width: 2px;\\n stroke-dasharray: 2, 2;\\n stroke: #999;\\n fill: #999; }\\n\\n.note {\\n stroke: #777700;\\n fill: #ffa; }\\n\\n.noteText {\\n fill: #eee;\\n stroke: none; }\\n\\n.activation0 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation1 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation2 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\ng > rect[class=\\\"note\\\"] {\\n stroke: #777700;\\n fill: #ffa; }\\n\\ng > text[class=\\\"noteText\\\"] > tspan {\\n stroke: #eee;\\n fill: #eee;\\n stroke-width: 1px; }\\n\\n/** Section styling */\\n.mermaid-main-font {\\n font-family: \\\"trebuchet ms\\\", verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.section {\\n stroke: none;\\n opacity: 0.2; }\\n\\n.section0 {\\n fill: #80b3e6; }\\n\\n.section2 {\\n fill: #80b3e6; }\\n\\n.section1,\\n.section3 {\\n fill: white;\\n opacity: 0.2; }\\n\\n.sectionTitle0 {\\n fill: #333; }\\n\\n.sectionTitle1 {\\n fill: #333; }\\n\\n.sectionTitle2 {\\n fill: #333; }\\n\\n.sectionTitle3 {\\n fill: #333; }\\n\\n.sectionTitle {\\n text-anchor: start;\\n font-size: 11px;\\n text-height: 14px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n/* Grid and axis */\\n.grid .tick {\\n stroke: #e6e6e6;\\n opacity: 0.8;\\n shape-rendering: crispEdges; }\\n .grid .tick text {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.grid path {\\n stroke-width: 0; }\\n\\n/* Today line */\\n.today {\\n fill: none;\\n stroke: #d42;\\n stroke-width: 2px; }\\n\\n/* Task styling */\\n/* Default task */\\n.task {\\n stroke-width: 2; }\\n\\n.taskText {\\n text-anchor: middle;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskText:not([font-size]) {\\n font-size: 11px; }\\n\\n.taskTextOutsideRight {\\n fill: #333;\\n text-anchor: start;\\n font-size: 11px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskTextOutsideLeft {\\n fill: #333;\\n text-anchor: end;\\n font-size: 11px; }\\n\\n/* Special case clickable */\\n.task.clickable {\\n cursor: pointer; }\\n\\n.taskText.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideLeft.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideRight.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n/* Specific task settings for the sections*/\\n.taskText0,\\n.taskText1,\\n.taskText2,\\n.taskText3 {\\n fill: white; }\\n\\n.task0,\\n.task1,\\n.task2,\\n.task3 {\\n fill: #26a;\\n stroke: #1a4d80; }\\n\\n.taskTextOutside0,\\n.taskTextOutside2 {\\n fill: #333; }\\n\\n.taskTextOutside1,\\n.taskTextOutside3 {\\n fill: #333; }\\n\\n/* Active task */\\n.active0,\\n.active1,\\n.active2,\\n.active3 {\\n fill: #eee;\\n stroke: #1a4d80; }\\n\\n.activeText0,\\n.activeText1,\\n.activeText2,\\n.activeText3 {\\n fill: #333 !important; }\\n\\n/* Completed task */\\n.done0,\\n.done1,\\n.done2,\\n.done3 {\\n stroke: #666;\\n fill: #bbb;\\n stroke-width: 2; }\\n\\n.doneText0,\\n.doneText1,\\n.doneText2,\\n.doneText3 {\\n fill: #333 !important; }\\n\\n/* Tasks on the critical line */\\n.crit0,\\n.crit1,\\n.crit2,\\n.crit3 {\\n stroke: #b1361b;\\n fill: #d42;\\n stroke-width: 2; }\\n\\n.activeCrit0,\\n.activeCrit1,\\n.activeCrit2,\\n.activeCrit3 {\\n stroke: #b1361b;\\n fill: #eee;\\n stroke-width: 2; }\\n\\n.doneCrit0,\\n.doneCrit1,\\n.doneCrit2,\\n.doneCrit3 {\\n stroke: #b1361b;\\n fill: #bbb;\\n stroke-width: 2;\\n cursor: pointer;\\n shape-rendering: crispEdges; }\\n\\n.milestone {\\n transform: rotate(45deg) scale(0.8, 0.8); }\\n\\n.milestoneText {\\n font-style: italic; }\\n\\n.doneCritText0,\\n.doneCritText1,\\n.doneCritText2,\\n.doneCritText3 {\\n fill: #333 !important; }\\n\\n.activeCritText0,\\n.activeCritText1,\\n.activeCritText2,\\n.activeCritText3 {\\n fill: #333 !important; }\\n\\n.titleText {\\n text-anchor: middle;\\n font-size: 18px;\\n fill: #333;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.classGroup text {\\n fill: #999;\\n stroke: none;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 10px; }\\n g.classGroup text .title {\\n font-weight: bolder; }\\n\\ng.clickable {\\n cursor: pointer; }\\n\\ng.classGroup rect {\\n fill: #eee;\\n stroke: #999; }\\n\\ng.classGroup line {\\n stroke: #999;\\n stroke-width: 1; }\\n\\n.classLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #eee;\\n opacity: 0.5; }\\n\\n.classLabel .label {\\n fill: #999;\\n font-size: 10px; }\\n\\n.relation {\\n stroke: #999;\\n stroke-width: 1;\\n fill: none; }\\n\\n.dashed-line {\\n stroke-dasharray: 3; }\\n\\n#compositionStart {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#compositionEnd {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#aggregationStart {\\n fill: #eee;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#aggregationEnd {\\n fill: #eee;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#dependencyStart {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#dependencyEnd {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#extensionStart {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#extensionEnd {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n.commit-id,\\n.commit-msg,\\n.branch-label {\\n fill: lightgrey;\\n color: lightgrey;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.pieTitleText {\\n text-anchor: middle;\\n font-size: 25px;\\n fill: #333;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.slice {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #999;\\n stroke: none;\\n font-size: 10px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #999;\\n stroke: none;\\n font-size: 10px; }\\n\\ng.stateGroup .state-title {\\n font-weight: bolder;\\n fill: black; }\\n\\ng.stateGroup rect {\\n fill: #eee;\\n stroke: #999; }\\n\\ng.stateGroup line {\\n stroke: #999;\\n stroke-width: 1; }\\n\\n.transition {\\n stroke: #999;\\n stroke-width: 1;\\n fill: none; }\\n\\n.stateGroup .composit {\\n fill: white;\\n border-bottom: 1px; }\\n\\n.stateGroup .alt-composit {\\n fill: #e0e0e0;\\n border-bottom: 1px; }\\n\\n.state-note {\\n stroke: #777700;\\n fill: #ffa; }\\n .state-note text {\\n fill: black;\\n stroke: none;\\n font-size: 10px; }\\n\\n.stateLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #eee;\\n opacity: 0.5; }\\n\\n.stateLabel text {\\n fill: black;\\n font-size: 10px;\\n font-weight: bold;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.node circle.state-start {\\n fill: black;\\n stroke: black; }\\n\\n.node circle.state-end {\\n fill: black;\\n stroke: white;\\n stroke-width: 1.5; }\\n\\n#statediagram-barbEnd {\\n fill: #999; }\\n\\n.statediagram-cluster rect {\\n fill: #eee;\\n stroke: #999;\\n stroke-width: 1px; }\\n\\n.statediagram-cluster rect.outer {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state .divider {\\n stroke: #999; }\\n\\n.statediagram-state .title-state {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-cluster.statediagram-cluster .inner {\\n fill: white; }\\n\\n.statediagram-cluster.statediagram-cluster-alt .inner {\\n fill: #e0e0e0; }\\n\\n.statediagram-cluster .inner {\\n rx: 0;\\n ry: 0; }\\n\\n.statediagram-state rect.basic {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state rect.divider {\\n stroke-dasharray: 10,10;\\n fill: #efefef; }\\n\\n.note-edge {\\n stroke-dasharray: 5; }\\n\\n.statediagram-note rect {\\n fill: #ffa;\\n stroke: #777700;\\n stroke-width: 1px;\\n rx: 0;\\n ry: 0; }\\n\\n:root {\\n --mermaid-font-family: '\\\"trebuchet ms\\\", verdana, arial, \\\"Comic Sans MS\\\", \\\"Comic Sans\\\", cursive'; }\\n\\n.error-icon {\\n fill: #552222; }\\n\\n.error-text {\\n fill: #552222;\\n stroke: #552222; }\\n\", \"\"]);\n\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return '@media ' + item[2] + '{' + content + '}';\n } else {\n return content;\n }\n }).join('');\n }; // import a list of modules into the list\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n for (var i = 0; i < this.length; i++) {\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n\n for (i = 0; i < modules.length; i++) {\n var item = modules[i]; // skip already imported module\n // this implementation is not 100% perfect for weird media query combinations\n // when a module is imported multiple times with different media queries.\n // I hope this will never occur (Hey this way we have smaller bundles)\n\n if (item[0] == null || !alreadyImportedModules[item[0]]) {\n if (mediaQuery && !item[2]) {\n item[2] = mediaQuery;\n } else if (mediaQuery) {\n item[2] = '(' + item[2] + ') and (' + mediaQuery + ')';\n }\n\n list.push(item);\n }\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || '';\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */';\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n return '/*# ' + data + ' */';\n}","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","let config = {};\n\nconst setConf = function(cnf) {\n // Top level initially mermaid, gflow, sequenceDiagram and gantt\n const lvl1Keys = Object.keys(cnf);\n for (let i = 0; i < lvl1Keys.length; i++) {\n if (typeof cnf[lvl1Keys[i]] === 'object' && cnf[lvl1Keys[i]] != null) {\n const lvl2Keys = Object.keys(cnf[lvl1Keys[i]]);\n\n for (let j = 0; j < lvl2Keys.length; j++) {\n // logger.debug('Setting conf ', lvl1Keys[i], '-', lvl2Keys[j])\n if (typeof config[lvl1Keys[i]] === 'undefined') {\n config[lvl1Keys[i]] = {};\n }\n // logger.debug('Setting config: ' + lvl1Keys[i] + ' ' + lvl2Keys[j] + ' to ' + cnf[lvl1Keys[i]][lvl2Keys[j]])\n config[lvl1Keys[i]][lvl2Keys[j]] = cnf[lvl1Keys[i]][lvl2Keys[j]];\n }\n } else {\n config[lvl1Keys[i]] = cnf[lvl1Keys[i]];\n }\n }\n};\n\nexport const setConfig = conf => {\n setConf(conf);\n};\nexport const getConfig = () => config;\n\nconst configApi = {\n setConfig,\n getConfig\n // get conf() {\n // return config;\n // }\n};\nexport default configApi;\n","import intersectRect from './intersect/intersect-rect';\nimport { logger as log } from '../logger'; // eslint-disable-line\nimport createLabel from './createLabel';\nimport { select } from 'd3';\nimport { getConfig } from '../config';\n\nconst rect = (parent, node) => {\n log.trace('Creating subgraph rect for ', node.id, node);\n\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'cluster')\n .attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'cluster-label');\n\n const text = label\n .node()\n .appendChild(createLabel(node.labelText, node.labelStyle, undefined, true));\n\n // Get the size of the label\n let bbox = text.getBBox();\n\n if (getConfig().flowchart.htmlLabels) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n log.trace('Data ', node, JSON.stringify(node));\n // center the rect around its coordinate\n rect\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', node.x - node.width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', node.width + padding)\n .attr('height', node.height + padding);\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' +\n (node.x - bbox.width / 2) +\n ', ' +\n (node.y - node.height / 2 - node.padding / 3 + 3) +\n ')'\n );\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\n/**\n * Non visiable cluster where the note is group with its\n */\nconst noteGroup = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'note-cluster')\n .attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n // center the rect around its coordinate\n rect\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', node.x - node.width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', node.width + padding)\n .attr('height', node.height + padding)\n .attr('fill', 'none');\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\nconst roundedWithTitle = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', node.classes)\n .attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'cluster-label');\n const innerRect = shapeSvg.append('rect');\n\n const text = label\n .node()\n .appendChild(createLabel(node.labelText, node.labelStyle, undefined, true));\n\n // Get the size of the label\n let bbox = text.getBBox();\n if (getConfig().flowchart.htmlLabels) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n bbox = text.getBBox();\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n // center the rect around its coordinate\n rect\n .attr('class', 'outer')\n .attr('x', node.x - node.width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', node.width + padding)\n .attr('height', node.height + padding);\n innerRect\n .attr('class', 'inner')\n .attr('x', node.x - node.width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding + bbox.height - 1)\n .attr('width', node.width + padding)\n .attr('height', node.height + padding - bbox.height - 3);\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' +\n (node.x - bbox.width / 2) +\n ', ' +\n (node.y - node.height / 2 - node.padding / 3 + (getConfig().flowchart.htmlLabels ? 5 : 3)) +\n ')'\n );\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst divider = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', node.classes)\n .attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n // center the rect around its coordinate\n rect\n .attr('class', 'divider')\n .attr('x', node.x - node.width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2)\n .attr('width', node.width + padding)\n .attr('height', node.height + padding);\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst shapes = { rect, roundedWithTitle, noteGroup, divider };\n\nlet clusterElems = {};\n\nexport const insertCluster = (elem, node) => {\n log.trace('Inserting cluster');\n const shape = node.shape || 'rect';\n clusterElems[node.id] = shapes[shape](elem, node);\n};\nexport const getClusterTitleWidth = (elem, node) => {\n const label = createLabel(node.labelText, node.labelStyle, undefined, true);\n elem.node().appendChild(label);\n const width = label.getBBox().width;\n elem.node().removeChild(label);\n return width;\n};\n\nexport const clear = () => {\n clusterElems = {};\n};\n\nexport const positionCluster = node => {\n log.info('Position cluster');\n const el = clusterElems[node.id];\n\n el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');\n};\n","import { select } from 'd3';\nimport { logger } from '../logger'; // eslint-disable-line\n// let vertexNode;\n// if (getConfig().flowchart.htmlLabels) {\n// // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?\n// const node = {\n// label: vertexText.replace(/fa[lrsb]?:fa-[\\w-]+/g, s => ``)\n// };\n// vertexNode = addHtmlLabel(svg, node).node();\n// vertexNode.parentNode.removeChild(vertexNode);\n// } else {\n// const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n// svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));\n\n// const rows = vertexText.split(common.lineBreakRegex);\n\n// for (let j = 0; j < rows.length; j++) {\n// const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');\n// tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n// tspan.setAttribute('dy', '1em');\n// tspan.setAttribute('x', '1');\n// tspan.textContent = rows[j];\n// svgLabel.appendChild(tspan);\n// }\n// vertexNode = svgLabel;\n// }\nimport { getConfig } from '../config';\n\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr('style', styleFn);\n }\n}\n\nfunction addHtmlLabel(node) {\n // var fo = root.append('foreignObject').attr('width', '100000');\n\n // var div = fo.append('xhtml:div');\n // div.attr('xmlns', 'http://www.w3.org/1999/xhtml');\n\n // var label = node.label;\n // switch (typeof label) {\n // case 'function':\n // div.insert(label);\n // break;\n // case 'object':\n // // Currently we assume this is a DOM object.\n // div.insert(function() {\n // return label;\n // });\n // break;\n // default:\n // div.html(label);\n // }\n\n // applyStyle(div, node.labelStyle);\n // div.style('display', 'inline-block');\n // // Fix for firefox\n // div.style('white-space', 'nowrap');\n\n // var client = div.node().getBoundingClientRect();\n // fo.attr('width', client.width).attr('height', client.height);\n const fo = select(document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject'));\n const div = fo.append('xhtml:div');\n\n const label = node.label;\n const labelClass = node.isNode ? 'nodeLabel' : 'edgeLabel';\n div.html('' + label + '');\n\n applyStyle(div, node.labelStyle);\n div.style('display', 'inline-block');\n // Fix for firefox\n div.style('white-space', 'nowrap');\n div.attr('xmlns', 'http://www.w3.org/1999/xhtml');\n return fo.node();\n}\n\nconst createLabel = (_vertexText, style, isTitle, isNode) => {\n let vertexText = _vertexText || '';\n if (getConfig().flowchart.htmlLabels) {\n // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?\n vertexText = vertexText.replace(/\\\\n|\\n/g, '
\n * mermaid.initialize({\n * flowchart:{\n * htmlLabels: false\n * }\n * });\n *\n *\n * **Example 2:**\n *
\n * <script>\n * var config = {\n * startOnLoad:true,\n * flowchart:{\n * useMaxWidth:true,\n * htmlLabels:true,\n * curve:'cardinal',\n * },\n *\n * securityLevel:'loose',\n * };\n * mermaid.initialize(config);\n * </script>\n *\n * A summary of all options and their defaults is found [here](https://github.com/knsv/mermaid/blob/master/docs/mermaidAPI.md#mermaidapi-configuration-defaults). A description of each option follows below.\n *\n * @name Configuration\n */\nconst config = {\n /** theme , the CSS style sheet\n *\n * **theme** - Choose one of the built-in themes:\n * * default\n * * forest\n * * dark\n * * neutral.\n * To disable any pre-defined mermaid theme, use \"null\".\n *\n * **themeCSS** - Use your own CSS. This overrides **theme**.\n *
\n * \"theme\": \"forest\",\n * \"themeCSS\": \".node rect { fill: red; }\"\n *\n */\n theme: 'default',\n themeCSS: undefined,\n /* **maxTextSize** - The maximum allowed size of the users text diamgram */\n maxTextSize: 50000,\n\n /**\n * **fontFamily** The font to be used for the rendered diagrams. Default value is \\\"trebuchet ms\\\", verdana, arial;\n */\n fontFamily: '\"trebuchet ms\", verdana, arial;',\n\n /**\n * This option decides the amount of logging to be used.\n * * debug: 1\n * * info: 2\n * * warn: 3\n * * error: 4\n * * fatal: (**default**) 5\n */\n logLevel: 5,\n\n /**\n * Sets the level of trust to be used on the parsed diagrams.\n * * **strict**: (**default**) tags in text are encoded, click functionality is disabeled\n * * **loose**: tags in text are allowed, click functionality is enabled\n */\n securityLevel: 'strict',\n\n /**\n * This options controls whether or mermaid starts when the page loads\n * **Default value true**.\n */\n startOnLoad: true,\n\n /**\n * This options controls whether or arrow markers in html code will be absolute paths or\n * an anchor, #. This matters if you are using base tag settings.\n * **Default value false**.\n */\n arrowMarkerAbsolute: false,\n\n /**\n * The object containing configurations specific for flowcharts\n */\n flowchart: {\n /**\n * Flag for setting whether or not a html tag should be used for rendering labels\n * on the edges.\n * **Default value true**.\n */\n htmlLabels: true,\n\n /**\n * Defines the spacing between nodes on the same level (meaning horizontal spacing for\n * TB or BT graphs, and the vertical spacing for LR as well as RL graphs).\n * **Default value 50**.\n */\n nodeSpacing: 50,\n\n /**\n * Defines the spacing between nodes on different levels (meaning vertical spacing for\n * TB or BT graphs, and the horizontal spacing for LR as well as RL graphs).\n * **Default value 50**.\n */\n rankSpacing: 50,\n\n /**\n * How mermaid renders curves for flowcharts. Possible values are\n * * basis\n * * linear **default**\n * * cardinal\n */\n curve: 'linear',\n // Only used in new experimental rendering\n // repreesents the padding between the labels and the shape\n padding: 15\n },\n\n /**\n * The object containing configurations specific for sequence diagrams\n */\n sequence: {\n /**\n * margin to the right and left of the sequence diagram.\n * **Default value 50**.\n */\n diagramMarginX: 50,\n\n /**\n * margin to the over and under the sequence diagram.\n * **Default value 10**.\n */\n diagramMarginY: 10,\n\n /**\n * Margin between actors.\n * **Default value 50**.\n */\n actorMargin: 50,\n\n /**\n * Width of actor boxes\n * **Default value 150**.\n */\n width: 150,\n\n /**\n * Height of actor boxes\n * **Default value 65**.\n */\n height: 65,\n\n /**\n * Margin around loop boxes\n * **Default value 10**.\n */\n boxMargin: 10,\n\n /**\n * margin around the text in loop/alt/opt boxes\n * **Default value 5**.\n */\n boxTextMargin: 5,\n\n /**\n * margin around notes.\n * **Default value 10**.\n */\n noteMargin: 10,\n\n /**\n * Space between messages.\n * **Default value 35**.\n */\n messageMargin: 35,\n\n /**\n * Multiline message alignment. Possible values are:\n * * left\n * * center **default**\n * * right\n */\n messageAlign: 'center',\n\n /**\n * mirror actors under diagram.\n * **Default value true**.\n */\n mirrorActors: true,\n\n /**\n * Depending on css styling this might need adjustment.\n * Prolongs the edge of the diagram downwards.\n * **Default value 1**.\n */\n bottomMarginAdj: 1,\n\n /**\n * when this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n * **Default value true**.\n */\n useMaxWidth: true,\n\n /**\n * This will display arrows that start and begin at the same node as right angles, rather than a curve\n * **Default value false**.\n */\n rightAngles: false,\n /**\n * This will show the node numbers\n * **Default value false**.\n */\n showSequenceNumbers: false,\n /**\n * This sets the font size of the actor's description\n * **Default value 14**.\n */\n actorFontSize: 14,\n /**\n * This sets the font family of the actor's description\n * **Default value \"Open-Sans\", \"sans-serif\"**.\n */\n actorFontFamily: '\"Open-Sans\", \"sans-serif\"',\n /**\n * This sets the font weight of the actor's description\n * **Default value 400.\n */\n actorFontWeight: 400,\n /**\n * This sets the font size of actor-attached notes.\n * **Default value 14**.\n */\n noteFontSize: 14,\n /**\n * This sets the font family of actor-attached notes.\n * **Default value \"trebuchet ms\", verdana, arial**.\n */\n noteFontFamily: '\"trebuchet ms\", verdana, arial',\n /**\n * This sets the font weight of the note's description\n * **Default value 400.\n */\n noteFontWeight: 400,\n /**\n * This sets the text alignment of actor-attached notes.\n * **Default value center**.\n */\n noteAlign: 'center',\n /**\n * This sets the font size of actor messages.\n * **Default value 16**.\n */\n messageFontSize: 16,\n /**\n * This sets the font family of actor messages.\n * **Default value \"trebuchet ms\", verdana, arial**.\n */\n messageFontFamily: '\"trebuchet ms\", verdana, arial',\n /**\n * This sets the font weight of the message's description\n * **Default value 400.\n */\n messageFontWeight: 400,\n /**\n * This sets the auto-wrap state for the diagram\n * **Default value false.\n */\n wrapEnabled: false,\n /**\n * This sets the auto-wrap padding for the diagram (sides only)\n * **Default value 15.\n */\n wrapPadding: 15\n },\n\n /**\n * The object containing configurations specific for gantt diagrams*\n */\n gantt: {\n /**\n * Margin top for the text over the gantt diagram\n * **Default value 25**.\n */\n titleTopMargin: 25,\n\n /**\n * The height of the bars in the graph\n * **Default value 20**.\n */\n barHeight: 20,\n\n /**\n * The margin between the different activities in the gantt diagram.\n * **Default value 4**.\n */\n barGap: 4,\n\n /**\n * Margin between title and gantt diagram and between axis and gantt diagram.\n * **Default value 50**.\n */\n topPadding: 50,\n\n /**\n * The space allocated for the section name to the left of the activities.\n * **Default value 75**.\n */\n leftPadding: 75,\n\n /**\n * Vertical starting position of the grid lines.\n * **Default value 35**.\n */\n gridLineStartPadding: 35,\n\n /**\n * Font size ...\n * **Default value 11**.\n */\n fontSize: 11,\n\n /**\n * font family ...\n * **Default value '\"Open-Sans\", \"sans-serif\"'**.\n */\n fontFamily: '\"Open-Sans\", \"sans-serif\"',\n\n /**\n * The number of alternating section styles.\n * **Default value 4**.\n */\n numberSectionStyles: 4,\n\n /**\n * Datetime format of the axis. This might need adjustment to match your locale and preferences\n * **Default value '%Y-%m-%d'**.\n */\n axisFormat: '%Y-%m-%d'\n },\n /**\n * The object containing configurations specific for sequence diagrams\n */\n journey: {\n /**\n * margin to the right and left of the sequence diagram.\n * **Default value 50**.\n */\n diagramMarginX: 50,\n\n /**\n * margin to the over and under the sequence diagram.\n * **Default value 10**.\n */\n diagramMarginY: 10,\n\n /**\n * Margin between actors.\n * **Default value 50**.\n */\n actorMargin: 50,\n\n /**\n * Width of actor boxes\n * **Default value 150**.\n */\n width: 150,\n\n /**\n * Height of actor boxes\n * **Default value 65**.\n */\n height: 65,\n\n /**\n * Margin around loop boxes\n * **Default value 10**.\n */\n boxMargin: 10,\n\n /**\n * margin around the text in loop/alt/opt boxes\n * **Default value 5**.\n */\n boxTextMargin: 5,\n\n /**\n * margin around notes.\n * **Default value 10**.\n */\n noteMargin: 10,\n\n /**\n * Space between messages.\n * **Default value 35**.\n */\n messageMargin: 35,\n\n /**\n * Multiline message alignment. Possible values are:\n * * left\n * * center **default**\n * * right\n */\n messageAlign: 'center',\n\n /**\n * Depending on css styling this might need adjustment.\n * Prolongs the edge of the diagram downwards.\n * **Default value 1**.\n */\n bottomMarginAdj: 1,\n\n /**\n * when this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n * **Default value true**.\n */\n useMaxWidth: true,\n\n /**\n * This will display arrows that start and begin at the same node as right angles, rather than a curve\n * **Default value false**.\n */\n rightAngles: false\n },\n class: {},\n git: {},\n state: {\n dividerMargin: 10,\n sizeUnit: 5,\n padding: 8,\n textHeight: 10,\n titleShift: -15,\n noteMargin: 10,\n forkWidth: 70,\n forkHeight: 7,\n // Used\n miniPadding: 2,\n // Font size factor, this is used to guess the width of the edges labels before rendering by dagre\n // layout. This might need updating if/when switching font\n fontSizeFactor: 5.02,\n fontSize: 24,\n labelHeight: 16,\n edgeLengthFactor: '20',\n compositTitleSize: 35,\n radius: 5\n },\n\n /**\n * The object containing configurations specific for entity relationship diagrams\n */\n er: {\n /**\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins, expressed in pixels\n */\n diagramPadding: 20,\n\n /**\n * Directional bias for layout of entities. Can be either 'TB', 'BT', 'LR', or 'RL',\n * where T = top, B = bottom, L = left, and R = right.\n */\n layoutDirection: 'TB',\n\n /**\n * The mimimum width of an entity box, expressed in pixels\n */\n minEntityWidth: 100,\n\n /**\n * The minimum height of an entity box, expressed in pixels\n */\n minEntityHeight: 75,\n\n /**\n * The minimum internal padding between the text in an entity box and the enclosing box borders, expressed in pixels\n */\n entityPadding: 15,\n\n /**\n * Stroke color of box edges and lines\n */\n stroke: 'gray',\n\n /**\n * Fill color of entity boxes\n */\n fill: 'honeydew',\n\n /**\n * Font size (expressed as an integer representing a number of pixels)\n */\n fontSize: 12\n }\n};\n\nsetLogLevel(config.logLevel);\nsetConfig(config);\n\nfunction parse(text) {\n const graphInit = utils.detectInit(text);\n if (graphInit) {\n reinitialize(graphInit);\n logger.debug('Init ', graphInit);\n }\n const graphType = utils.detectType(text);\n let parser;\n\n logger.debug('Type ' + graphType);\n switch (graphType) {\n case 'git':\n parser = gitGraphParser;\n parser.parser.yy = gitGraphAst;\n break;\n case 'flowchart':\n flowDb.clear();\n parser = flowParser;\n parser.parser.yy = flowDb;\n break;\n case 'flowchart-v2':\n flowDb.clear();\n parser = flowParser;\n parser.parser.yy = flowDb;\n break;\n case 'sequence':\n parser = sequenceParser;\n parser.parser.yy = sequenceDb;\n break;\n case 'gantt':\n parser = ganttParser;\n parser.parser.yy = ganttDb;\n break;\n case 'class':\n parser = classParser;\n parser.parser.yy = classDb;\n break;\n case 'state':\n parser = stateParser;\n parser.parser.yy = stateDb;\n break;\n case 'stateDiagram':\n parser = stateParser;\n parser.parser.yy = stateDb;\n break;\n case 'info':\n logger.debug('info info info');\n parser = infoParser;\n parser.parser.yy = infoDb;\n break;\n case 'pie':\n logger.debug('pie');\n parser = pieParser;\n parser.parser.yy = pieDb;\n break;\n case 'er':\n logger.debug('er');\n parser = erParser;\n parser.parser.yy = erDb;\n break;\n case 'journey':\n logger.debug('Journey');\n parser = journeyParser;\n parser.parser.yy = journeyDb;\n break;\n }\n\n parser.parser.yy.parseError = (str, hash) => {\n const error = { str, hash };\n throw error;\n };\n\n parser.parse(text);\n}\n\nexport const encodeEntities = function(text) {\n let txt = text;\n\n txt = txt.replace(/style.*:\\S*#.*;/g, function(s) {\n const innerTxt = s.substring(0, s.length - 1);\n return innerTxt;\n });\n txt = txt.replace(/classDef.*:\\S*#.*;/g, function(s) {\n const innerTxt = s.substring(0, s.length - 1);\n return innerTxt;\n });\n\n txt = txt.replace(/#\\w+;/g, function(s) {\n const innerTxt = s.substring(1, s.length - 1);\n\n const isInt = /^\\+?\\d+$/.test(innerTxt);\n if (isInt) {\n return 'fl°°' + innerTxt + '¶ß';\n } else {\n return 'fl°' + innerTxt + '¶ß';\n }\n });\n\n return txt;\n};\n\nexport const decodeEntities = function(text) {\n let txt = text;\n\n txt = txt.replace(/fl°°/g, function() {\n return '';\n });\n txt = txt.replace(/fl°/g, function() {\n return '&';\n });\n txt = txt.replace(/¶ß/g, function() {\n return ';';\n });\n\n return txt;\n};\n/**\n * Function that renders an svg with a graph from a chart definition. Usage example below.\n *\n * ```js\n * mermaidAPI.initialize({\n * startOnLoad:true\n * });\n * $(function(){\n * const graphDefinition = 'graph TB\\na-->b';\n * const cb = function(svgGraph){\n * console.log(svgGraph);\n * };\n * mermaidAPI.render('id1',graphDefinition,cb);\n * });\n *```\n * @param id the id of the element to be rendered\n * @param txt the graph definition\n * @param cb callback which is called after rendering is finished with the svg code as inparam.\n * @param container selector to element in which a div with the graph temporarily will be inserted. In one is\n * provided a hidden div will be inserted in the body of the page instead. The element will be removed when rendering is\n * completed.\n */\nconst render = function(id, _txt, cb, container) {\n // Check the maximum allowed text size\n let txt = _txt;\n if (_txt.length > config.maxTextSize) {\n txt = 'graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa';\n }\n\n if (typeof container !== 'undefined') {\n container.innerHTML = '';\n\n select(container)\n .append('div')\n .attr('id', 'd' + id)\n .attr('style', 'font-family: ' + config.fontFamily)\n .append('svg')\n .attr('id', id)\n .attr('width', '100%')\n .attr('xmlns', 'http://www.w3.org/2000/svg')\n .append('g');\n } else {\n const existingSvg = document.getElementById(id);\n if (existingSvg) {\n existingSvg.remove();\n }\n const element = document.querySelector('#' + 'd' + id);\n if (element) {\n element.innerHTML = '';\n }\n\n select('body')\n .append('div')\n .attr('id', 'd' + id)\n .append('svg')\n .attr('id', id)\n .attr('width', '100%')\n .attr('xmlns', 'http://www.w3.org/2000/svg')\n .append('g');\n }\n\n window.txt = txt;\n txt = encodeEntities(txt);\n\n const element = select('#d' + id).node();\n const graphInit = utils.detectInit(txt);\n if (graphInit) {\n reinitialize(graphInit);\n }\n const graphType = utils.detectType(txt);\n\n // insert inline style into svg\n const svg = element.firstChild;\n const firstChild = svg.firstChild;\n\n // pre-defined theme\n let style = themes[config.theme];\n if (style === undefined) {\n style = '';\n }\n\n // user provided theme CSS\n if (config.themeCSS !== undefined) {\n style += `\\n${config.themeCSS}`;\n }\n // user provided theme CSS\n if (config.fontFamily !== undefined) {\n style += `\\n:root { --mermaid-font-family: ${config.fontFamily}}`;\n }\n // user provided theme CSS\n if (config.altFontFamily !== undefined) {\n style += `\\n:root { --mermaid-alt-font-family: ${config.altFontFamily}}`;\n }\n\n // classDef\n if (graphType === 'flowchart' || graphType === 'flowchart-v2') {\n const classes = flowRenderer.getClasses(txt);\n for (const className in classes) {\n style += `\\n.${className} > * { ${classes[className].styles.join(\n ' !important; '\n )} !important; }`;\n if (classes[className].textStyles) {\n style += `\\n.${className} tspan { ${classes[className].textStyles.join(\n ' !important; '\n )} !important; }`;\n }\n }\n }\n\n const style1 = document.createElement('style');\n style1.innerHTML = scope(style, `#${id}`);\n svg.insertBefore(style1, firstChild);\n\n const style2 = document.createElement('style');\n const cs = window.getComputedStyle(svg);\n style2.innerHTML = `#${id} {\n color: ${cs.color};\n font: ${cs.font};\n }`;\n svg.insertBefore(style2, firstChild);\n\n try {\n switch (graphType) {\n case 'git':\n config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n gitGraphRenderer.setConf(config.git);\n gitGraphRenderer.draw(txt, id, false);\n break;\n case 'flowchart':\n config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n flowRenderer.setConf(config.flowchart);\n flowRenderer.draw(txt, id, false);\n break;\n case 'flowchart-v2':\n config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n flowRendererV2.setConf(config.flowchart);\n flowRendererV2.draw(txt, id, false);\n break;\n case 'sequence':\n config.sequence.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n if (config.sequenceDiagram) {\n // backwards compatibility\n sequenceRenderer.setConf(Object.assign(config.sequence, config.sequenceDiagram));\n console.error(\n '`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.'\n );\n } else {\n sequenceRenderer.setConf(config.sequence);\n }\n sequenceRenderer.draw(txt, id);\n break;\n case 'gantt':\n config.gantt.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n ganttRenderer.setConf(config.gantt);\n ganttRenderer.draw(txt, id);\n break;\n case 'class':\n config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n classRenderer.setConf(config.class);\n classRenderer.draw(txt, id);\n break;\n case 'state':\n // config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n stateRenderer.setConf(config.state);\n stateRenderer.draw(txt, id);\n break;\n case 'stateDiagram':\n // config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n stateRendererV2.setConf(config.state);\n stateRendererV2.draw(txt, id);\n break;\n case 'info':\n config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n infoRenderer.setConf(config.class);\n infoRenderer.draw(txt, id, pkg.version);\n break;\n case 'pie':\n config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n pieRenderer.setConf(config.class);\n pieRenderer.draw(txt, id, pkg.version);\n break;\n case 'er':\n erRenderer.setConf(config.er);\n erRenderer.draw(txt, id, pkg.version);\n break;\n case 'journey':\n journeyRenderer.setConf(config.journey);\n journeyRenderer.draw(txt, id, pkg.version);\n break;\n }\n } catch (e) {\n errorRenderer.setConf(config.class);\n errorRenderer.draw(id, pkg.version);\n throw e;\n }\n\n select(`[id=\"${id}\"]`)\n .selectAll('foreignobject > *')\n .attr('xmlns', 'http://www.w3.org/1999/xhtml');\n\n // if (config.arrowMarkerAbsolute) {\n // url =\n // window.location.protocol +\n // '//' +\n // window.location.host +\n // window.location.pathname +\n // window.location.search;\n // url = url.replace(/\\(/g, '\\\\(');\n // url = url.replace(/\\)/g, '\\\\)');\n // }\n\n // Fix for when the base tag is used\n let svgCode = select('#d' + id).node().innerHTML;\n\n if (!config.arrowMarkerAbsolute || config.arrowMarkerAbsolute === 'false') {\n svgCode = svgCode.replace(/marker-end=\"url\\(.*?#/g, 'marker-end=\"url(#', 'g');\n }\n\n svgCode = decodeEntities(svgCode);\n\n if (typeof cb !== 'undefined') {\n switch (graphType) {\n case 'flowchart':\n case 'flowchart-v2':\n cb(svgCode, flowDb.bindFunctions);\n break;\n case 'gantt':\n cb(svgCode, ganttDb.bindFunctions);\n break;\n case 'class':\n cb(svgCode, classDb.bindFunctions);\n break;\n default:\n cb(svgCode);\n }\n } else {\n logger.debug('CB = undefined!');\n }\n\n const node = select('#d' + id).node();\n if (node !== null && typeof node.remove === 'function') {\n select('#d' + id)\n .node()\n .remove();\n }\n\n return svgCode;\n};\n\nconst setConf = function(cnf) {\n // Top level initially mermaid, gflow, sequenceDiagram and gantt\n const lvl1Keys = Object.keys(cnf);\n for (let i = 0; i < lvl1Keys.length; i++) {\n if (typeof cnf[lvl1Keys[i]] === 'object' && cnf[lvl1Keys[i]] != null) {\n const lvl2Keys = Object.keys(cnf[lvl1Keys[i]]);\n\n for (let j = 0; j < lvl2Keys.length; j++) {\n logger.debug('Setting conf ', lvl1Keys[i], '-', lvl2Keys[j]);\n if (typeof config[lvl1Keys[i]] === 'undefined') {\n config[lvl1Keys[i]] = {};\n }\n logger.debug(\n 'Setting config: ' +\n lvl1Keys[i] +\n ' ' +\n lvl2Keys[j] +\n ' to ' +\n cnf[lvl1Keys[i]][lvl2Keys[j]]\n );\n config[lvl1Keys[i]][lvl2Keys[j]] = cnf[lvl1Keys[i]][lvl2Keys[j]];\n }\n } else {\n config[lvl1Keys[i]] = cnf[lvl1Keys[i]];\n }\n }\n};\n\nfunction reinitialize(options) {\n if (typeof options === 'object') {\n setConf(options);\n }\n setConfig(config);\n setLogLevel(config.logLevel);\n logger.debug('RE-Initializing mermaidAPI ', { version: pkg.version, options, config });\n}\n\nfunction initialize(options) {\n let _config = config;\n logger.debug('Initializing mermaidAPI ', { version: pkg.version, options, _config });\n // Update default config with options supplied at initialization\n if (typeof options === 'object') {\n _config = Object.assign(_config, options);\n setConf(_config);\n }\n setConfig(_config);\n setLogLevel(_config.logLevel);\n}\n\n// function getConfig () {\n// console.warn('get config')\n// return config\n// }\n\nconst mermaidAPI = {\n render,\n parse,\n initialize,\n reinitialize,\n getConfig\n};\n\nexport default mermaidAPI;\n/**\n * ## mermaidAPI configuration defaults\n *
\n *\n * <script>\n * var config = {\n * theme:'default',\n * logLevel:'fatal',\n * securityLevel:'strict',\n * startOnLoad:true,\n * arrowMarkerAbsolute:false,\n *\n * flowchart:{\n * htmlLabels:true,\n * curve:'linear',\n * },\n * sequence:{\n * diagramMarginX:50,\n * diagramMarginY:10,\n * actorMargin:50,\n * width:150,\n * height:65,\n * boxMargin:10,\n * boxTextMargin:5,\n * noteMargin:10,\n * messageMargin:35,\n * messageAlign:'center',\n * mirrorActors:true,\n * bottomMarginAdj:1,\n * useMaxWidth:true,\n * rightAngles:false,\n * showSequenceNumbers:false,\n * },\n * gantt:{\n * titleTopMargin:25,\n * barHeight:20,\n * barGap:4,\n * topPadding:50,\n * leftPadding:75,\n * gridLineStartPadding:35,\n * fontSize:11,\n * fontFamily:'\"Open-Sans\", \"sans-serif\"',\n * numberSectionStyles:4,\n * axisFormat:'%Y-%m-%d',\n * }\n * };\n * mermaid.initialize(config);\n * </script>\n *\n */\n","var map = {\n\t\"./dark/index.scss\": \"./src/themes/dark/index.scss\",\n\t\"./default/index.scss\": \"./src/themes/default/index.scss\",\n\t\"./forest/index.scss\": \"./src/themes/forest/index.scss\",\n\t\"./neutral/index.scss\": \"./src/themes/neutral/index.scss\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./src/themes sync recursive ^\\\\.\\\\/.*\\\\/index\\\\.scss$\";","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","import {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore\n} from 'd3';\nimport { logger } from './logger';\nimport { sanitizeUrl } from '@braintree/sanitize-url';\n\n// Effectively an enum of the supported curve types, accessible by name\nconst d3CurveTypes = {\n curveBasis: curveBasis,\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveLinear: curveLinear,\n curveLinearClosed: curveLinearClosed,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\nconst directive = /[%]{2}[{]\\s*(?:(?:(\\w+)\\s*:|(\\w+))\\s*(?:(?:(\\w+))|((?:(?![}][%]{2}).|\\r?\\n)*))?\\s*)(?:[}][%]{2})?/gi;\nconst directiveWithoutOpen = /\\s*(?:(?:(\\w+)(?=:):|(\\w+))\\s*(?:(?:(\\w+))|((?:(?![}][%]{2}).|\\r?\\n)*))?\\s*)(?:[}][%]{2})?/gi;\nconst anyComment = /\\s*%%.*\\n/gm;\n\n/**\n * @function detectInit\n * Detects the init config object from the text\n * ```mermaid\n * %%{init: {\"theme\": \"debug\", \"logLevel\": 1 }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n * or\n * ```mermaid\n * %%{initialize: {\"theme\": \"dark\", logLevel: \"debug\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * @param {string} text The text defining the graph\n * @returns {object} the json object representing the init to pass to mermaid.initialize()\n */\nexport const detectInit = function(text) {\n let inits = detectDirective(text, /(?:init\\b)|(?:initialize\\b)/);\n let results = {};\n if (Array.isArray(inits)) {\n let args = inits.map(init => init.args);\n results = Object.assign(results, ...args);\n } else {\n results = inits.args;\n }\n return results;\n};\n\n/**\n * @function detectDirective\n * Detects the directive from the text. Text can be single line or multiline. If type is null or omitted\n * the first directive encountered in text will be returned\n * ```mermaid\n * graph LR\n * %%{somedirective}%%\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * @param {string} text The text defining the graph\n * @param {string|RegExp} type The directive to return (default: null\n * @returns {object | Array} An object or Array representing the directive(s): { type: string, args: object|null } matchd by the input type\n * if a single directive was found, that directive object will be returned.\n */\nexport const detectDirective = function(text, type = null) {\n try {\n const commentWithoutDirectives = new RegExp(\n `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*\\n`,\n 'ig'\n );\n text = text\n .trim()\n .replace(commentWithoutDirectives, '')\n .replace(/'/gm, '\"');\n logger.debug(\n `Detecting diagram directive${type !== null ? ' type:' + type : ''} based on the text:${text}`\n );\n let match,\n result = [];\n while ((match = directive.exec(text)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (match.index === directive.lastIndex) {\n directive.lastIndex++;\n }\n if (\n (match && !type) ||\n (type && match[1] && match[1].match(type)) ||\n (type && match[2] && match[2].match(type))\n ) {\n let type = match[1] ? match[1] : match[2];\n let args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;\n result.push({ type, args });\n }\n }\n if (result.length === 0) {\n result.push({ type: text, args: null });\n }\n\n return result.length === 1 ? result[0] : result;\n } catch (error) {\n logger.error(\n `ERROR: ${error.message} - Unable to parse directive${\n type !== null ? ' type:' + type : ''\n } based on the text:${text}`\n );\n return { type: null, args: null };\n }\n};\n\n/**\n * @function detectType\n * Detects the type of the graph text. Takes into consideration the possible existence of an %%init\n * directive\n * ```mermaid\n * %%{initialize: {\"startOnLoad\": true, logLevel: \"fatal\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * @param {string} text The text defining the graph\n * @returns {string} A graph definition key\n */\nexport const detectType = function(text) {\n text = text.replace(directive, '').replace(anyComment, '\\n');\n logger.debug('Detecting diagram type based on the text ' + text);\n if (text.match(/^\\s*sequenceDiagram/)) {\n return 'sequence';\n }\n\n if (text.match(/^\\s*gantt/)) {\n return 'gantt';\n }\n\n if (text.match(/^\\s*classDiagram/)) {\n return 'class';\n }\n if (text.match(/^\\s*stateDiagram-v2/)) {\n return 'stateDiagram';\n }\n\n if (text.match(/^\\s*stateDiagram/)) {\n return 'state';\n }\n\n if (text.match(/^\\s*gitGraph/)) {\n return 'git';\n }\n if (text.match(/^\\s*flowchart/)) {\n return 'flowchart-v2';\n }\n\n if (text.match(/^\\s*info/)) {\n return 'info';\n }\n if (text.match(/^\\s*pie/)) {\n return 'pie';\n }\n\n if (text.match(/^\\s*erDiagram/)) {\n return 'er';\n }\n\n if (text.match(/^\\s*journey/)) {\n return 'journey';\n }\n\n return 'flowchart';\n};\n\n/**\n * @function isSubstringInArray\n * Detects whether a substring in present in a given array\n * @param {string} str The substring to detect\n * @param {array} arr The array to search\n * @returns {number} the array index containing the substring or -1 if not present\n **/\nexport const isSubstringInArray = function(str, arr) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i].match(str)) return i;\n }\n return -1;\n};\n\nexport const interpolateToCurve = (interpolate, defaultCurve) => {\n if (!interpolate) {\n return defaultCurve;\n }\n const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;\n return d3CurveTypes[curveName] || defaultCurve;\n};\n\nexport const formatUrl = (linkStr, config) => {\n let url = linkStr.trim();\n\n if (url) {\n if (config.securityLevel !== 'loose') {\n return sanitizeUrl(url);\n }\n\n return url;\n }\n};\n\nconst distance = (p1, p2) =>\n p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0;\n\nconst traverseEdge = points => {\n let prevPoint;\n let totalDistance = 0;\n\n points.forEach(point => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse half of total distance along points\n const distanceToLabel = totalDistance / 2;\n\n let remainingDistance = distanceToLabel;\n let center;\n prevPoint = undefined;\n points.forEach(point => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y\n };\n }\n }\n }\n prevPoint = point;\n });\n return center;\n};\n\nconst calcLabelPosition = points => {\n const p = traverseEdge(points);\n return p;\n};\n\nconst calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => {\n let prevPoint;\n let totalDistance = 0; // eslint-disable-line\n if (points[0] !== initialPosition) {\n points = points.reverse();\n }\n points.forEach(point => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse only 25 total distance along points to find cardinality point\n const distanceToCardinalityPoint = 25;\n\n let remainingDistance = distanceToCardinalityPoint;\n let center;\n prevPoint = undefined;\n points.forEach(point => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y\n };\n }\n }\n }\n prevPoint = point;\n });\n // if relation is present (Arrows will be added), change cardinality point off-set distance (d)\n let d = isRelationTypePresent ? 10 : 5;\n //Calculate Angle for x and y axis\n let angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n let cardinalityPosition = { x: 0, y: 0 };\n //Calculation cardinality position using angle, center point on the line/curve but pendicular and with offset-distance\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n return cardinalityPosition;\n};\n\nexport const getStylesFromArray = arr => {\n let style = '';\n let labelStyle = '';\n\n for (let i = 0; i < arr.length; i++) {\n if (typeof arr[i] !== 'undefined') {\n // add text properties to label style definition\n if (arr[i].startsWith('color:') || arr[i].startsWith('text-align:')) {\n labelStyle = labelStyle + arr[i] + ';';\n } else {\n style = style + arr[i] + ';';\n }\n }\n }\n\n return { style: style, labelStyle: labelStyle };\n};\n\nlet cnt = 0;\nexport const generateId = () => {\n cnt++;\n return (\n 'id-' +\n Math.random()\n .toString(36)\n .substr(2, 12) +\n '-' +\n cnt\n );\n};\n\nexport default {\n detectInit,\n detectDirective,\n detectType,\n isSubstringInArray,\n interpolateToCurve,\n calcLabelPosition,\n calcCardinalityPosition,\n formatUrl,\n getStylesFromArray,\n generateId\n};\n","module.exports = require(\"@braintree/sanitize-url\");","module.exports = require(\"d3\");","module.exports = require(\"dagre\");","module.exports = require(\"dagre-d3\");","module.exports = require(\"dagre-d3/lib/label/add-html-label.js\");","module.exports = require(\"entity-decode/browser\");","module.exports = require(\"graphlib\");","module.exports = require(\"moment-mini\");","module.exports = require(\"scope-css\");"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/mermaid.js b/dist/mermaid.js index fd7ca5f56..30ac325a3 100644 --- a/dist/mermaid.js +++ b/dist/mermaid.js @@ -60374,7 +60374,7 @@ case 46:return 'INVALID'; break; } }, -rules: [/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).)*))/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:participant\b)/i,/^(?:[^\->:\n,;]+?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:and\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\b)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i], +rules: [/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:participant\b)/i,/^(?:[^\->:\n,;]+?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:and\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\b)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i], conditions: {"LINE":{"rules":[7,8,22],"inclusive":false},"ARG_DIRECTIVE":{"rules":[3,4,8],"inclusive":false},"TYPE_DIRECTIVE":{"rules":[2,3,8],"inclusive":false},"OPEN_DIRECTIVE":{"rules":[1,8],"inclusive":false},"ALIAS":{"rules":[7,8,13,14],"inclusive":false},"ID":{"rules":[7,8,12],"inclusive":false},"INITIAL":{"rules":[0,5,6,8,9,10,11,15,16,17,18,19,20,21,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"inclusive":true}} }); return lexer; @@ -60459,8 +60459,6 @@ var wrapEnabled = false; var configUpdated = false; var currentDirective = {}; var parseDirective = function parseDirective(statement, context) { - _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info("statement: ".concat(statement, " ctx: ").concat(context)); - try { if (statement !== undefined) { statement = statement.trim(); @@ -65894,7 +65892,17 @@ var logger = { error: function error() {}, fatal: function fatal() {} }; -var setLogLevel = function setLogLevel(level) { +var setLogLevel = function setLogLevel() { + var level = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'fatal'; + + if (isNaN(level)) { + level = level.toLowerCase(); + + if (LEVELS[level] !== undefined) { + level = LEVELS[level]; + } + } + logger.trace = function () {}; logger.debug = function () {}; @@ -66313,7 +66321,6 @@ var config = { */ theme: 'default', themeCSS: undefined, - multilineDirectives: false, /* **maxTextSize** - The maximum allowed size of the users text diamgram */ maxTextSize: 50000, @@ -67401,12 +67408,13 @@ if (typeof styles === 'string') { /*!**********************!*\ !*** ./src/utils.js ***! \**********************/ -/*! exports provided: detectInit, detectType, isSubstringInArray, interpolateToCurve, formatUrl, getStylesFromArray, generateId, default */ +/*! exports provided: detectInit, detectDirective, detectType, isSubstringInArray, interpolateToCurve, formatUrl, getStylesFromArray, generateId, default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detectInit", function() { return detectInit; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detectDirective", function() { return detectDirective; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detectType", function() { return detectType; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isSubstringInArray", function() { return isSubstringInArray; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "interpolateToCurve", function() { return interpolateToCurve; }); @@ -67417,6 +67425,14 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ "./src/logger.js"); /* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @braintree/sanitize-url */ "./node_modules/@braintree/sanitize-url/index.js"); /* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_2__); +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } + +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } + +function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } + +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } + // Effectively an enum of the supported curve types, accessible by name @@ -67434,15 +67450,14 @@ var d3CurveTypes = { curveStepAfter: d3__WEBPACK_IMPORTED_MODULE_0__["curveStepAfter"], curveStepBefore: d3__WEBPACK_IMPORTED_MODULE_0__["curveStepBefore"] }; -var fullDirective = /%%\{(\w+)[:]?\s*(\{.*}(?!%%))?\s*}%%/; -var directiveWithoutOpen = /\{(\w+)[:]?\s*(\{.*}(?!%%))?\s*}%%/; -var commentWithoutDirectives = new RegExp("\\s*%%(?!".concat(directiveWithoutOpen.source, ")(?=}%%).*\n"), 'gm'); -var anyComment = new RegExp("\\s*%%.*\n", 'gm'); +var directive = /[%]{2}[{]\s*(?:(?:(\w+)\s*:|(\w+))\s*(?:(?:(\w+))|((?:(?![}][%]{2}).|\r?\n)*))?\s*)(?:[}][%]{2})?/gi; +var directiveWithoutOpen = /\s*(?:(?:(\w+)(?=:):|(\w+))\s*(?:(?:(\w+))|((?:(?![}][%]{2}).|\r?\n)*))?\s*)(?:[}][%]{2})?/gi; +var anyComment = /\s*%%.*\n/gm; /** * @function detectInit * Detects the init config object from the text * ```mermaid - * %%{init: {"startOnLoad": true, "logLevel": 1 }}%% + * %%{init: {"theme": "debug", "logLevel": 1 }}%% * graph LR * a-->b * b-->c @@ -67454,7 +67469,7 @@ var anyComment = new RegExp("\\s*%%.*\n", 'gm'); * ``` * or * ```mermaid - * %%{initialize: {"startOnLoad": true, logLevel: "fatal" }}%% + * %%{initialize: {"theme": "dark", logLevel: "debug" }}%% * graph LR * a-->b * b-->c @@ -67466,16 +67481,87 @@ var anyComment = new RegExp("\\s*%%.*\n", 'gm'); * ``` * * @param {string} text The text defining the graph - * @returns {object} An object representing the initialization to pass to mermaidAPI.initialize() + * @returns {object} the json object representing the init to pass to mermaid.initialize() */ var detectInit = function detectInit(text) { - text = text.replace(commentWithoutDirectives, '\n'); - _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('Detecting diagram init based on the text ' + text); - var matches = text.match(fullDirective); + var inits = detectDirective(text, /(?:init\b)|(?:initialize\b)/); + var results = {}; - if (matches && /init(?:ialize)?/.test(matches[1])) { - return JSON.parse(matches[2].trim().replace(/\\n/g, '\n').replace(/'/g, '"')); + if (Array.isArray(inits)) { + var args = inits.map(function (init) { + return init.args; + }); + results = Object.assign.apply(Object, [results].concat(_toConsumableArray(args))); + } else { + results = inits.args; + } + + return results; +}; +/** + * @function detectDirective + * Detects the directive from the text. Text can be single line or multiline. If type is null or omitted + * the first directive encountered in text will be returned + * ```mermaid + * graph LR + * %%{somedirective}%% + * a-->b + * b-->c + * c-->d + * d-->e + * e-->f + * f-->g + * g-->h + * ``` + * + * @param {string} text The text defining the graph + * @param {string|RegExp} type The directive to return (default: null + * @returns {object | Array} An object or Array representing the directive(s): { type: string, args: object|null } matchd by the input type + * if a single directive was found, that directive object will be returned. + */ + +var detectDirective = function detectDirective(text) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + try { + var commentWithoutDirectives = new RegExp("[%]{2}(?![{]".concat(directiveWithoutOpen.source, ")(?=[}][%]{2}).*\n"), 'ig'); + text = text.trim().replace(commentWithoutDirectives, '').replace(/'/gm, '"'); + _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug("Detecting diagram directive".concat(type !== null ? ' type:' + type : '', " based on the text:").concat(text)); + var match, + result = []; + + while ((match = directive.exec(text)) !== null) { + // This is necessary to avoid infinite loops with zero-width matches + if (match.index === directive.lastIndex) { + directive.lastIndex++; + } + + if (match && !type || type && match[1] && match[1].match(type) || type && match[2] && match[2].match(type)) { + var _type = match[1] ? match[1] : match[2]; + + var args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null; + result.push({ + type: _type, + args: args + }); + } + } + + if (result.length === 0) { + result.push({ + type: text, + args: null + }); + } + + return result.length === 1 ? result[0] : result; + } catch (error) { + _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].error("ERROR: ".concat(error.message, " - Unable to parse directive").concat(type !== null ? ' type:' + type : '', " based on the text:").concat(text)); + return { + type: null, + args: null + }; } }; /** @@ -67499,7 +67585,7 @@ var detectInit = function detectInit(text) { */ var detectType = function detectType(text) { - text = text.replace(anyComment, '\n'); + text = text.replace(directive, '').replace(anyComment, '\n'); _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('Detecting diagram type based on the text ' + text); if (text.match(/^\s*sequenceDiagram/)) { @@ -67719,6 +67805,7 @@ var generateId = function generateId() { }; /* harmony default export */ __webpack_exports__["default"] = ({ detectInit: detectInit, + detectDirective: detectDirective, detectType: detectType, isSubstringInArray: isSubstringInArray, interpolateToCurve: interpolateToCurve, diff --git a/dist/mermaid.js.map b/dist/mermaid.js.map index 7a0976b77..c65a95a97 100644 --- a/dist/mermaid.js.map +++ b/dist/mermaid.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://mermaid/webpack/universalModuleDefinition","webpack://mermaid/webpack/bootstrap","webpack://mermaid/./node_modules/@braintree/sanitize-url/index.js","webpack://mermaid/./src/themes/dark/index.scss","webpack://mermaid/./src/themes/default/index.scss","webpack://mermaid/./src/themes/forest/index.scss","webpack://mermaid/./src/themes/neutral/index.scss","webpack://mermaid/./node_modules/css-loader/dist/runtime/api.js","webpack://mermaid/./node_modules/d3-array/src/array.js","webpack://mermaid/./node_modules/d3-array/src/ascending.js","webpack://mermaid/./node_modules/d3-array/src/bisect.js","webpack://mermaid/./node_modules/d3-array/src/bisector.js","webpack://mermaid/./node_modules/d3-array/src/constant.js","webpack://mermaid/./node_modules/d3-array/src/cross.js","webpack://mermaid/./node_modules/d3-array/src/descending.js","webpack://mermaid/./node_modules/d3-array/src/deviation.js","webpack://mermaid/./node_modules/d3-array/src/extent.js","webpack://mermaid/./node_modules/d3-array/src/histogram.js","webpack://mermaid/./node_modules/d3-array/src/identity.js","webpack://mermaid/./node_modules/d3-array/src/index.js","webpack://mermaid/./node_modules/d3-array/src/max.js","webpack://mermaid/./node_modules/d3-array/src/mean.js","webpack://mermaid/./node_modules/d3-array/src/median.js","webpack://mermaid/./node_modules/d3-array/src/merge.js","webpack://mermaid/./node_modules/d3-array/src/min.js","webpack://mermaid/./node_modules/d3-array/src/number.js","webpack://mermaid/./node_modules/d3-array/src/pairs.js","webpack://mermaid/./node_modules/d3-array/src/permute.js","webpack://mermaid/./node_modules/d3-array/src/quantile.js","webpack://mermaid/./node_modules/d3-array/src/range.js","webpack://mermaid/./node_modules/d3-array/src/scan.js","webpack://mermaid/./node_modules/d3-array/src/shuffle.js","webpack://mermaid/./node_modules/d3-array/src/sum.js","webpack://mermaid/./node_modules/d3-array/src/threshold/freedmanDiaconis.js","webpack://mermaid/./node_modules/d3-array/src/threshold/scott.js","webpack://mermaid/./node_modules/d3-array/src/threshold/sturges.js","webpack://mermaid/./node_modules/d3-array/src/ticks.js","webpack://mermaid/./node_modules/d3-array/src/transpose.js","webpack://mermaid/./node_modules/d3-array/src/variance.js","webpack://mermaid/./node_modules/d3-array/src/zip.js","webpack://mermaid/./node_modules/d3-axis/src/array.js","webpack://mermaid/./node_modules/d3-axis/src/axis.js","webpack://mermaid/./node_modules/d3-axis/src/identity.js","webpack://mermaid/./node_modules/d3-axis/src/index.js","webpack://mermaid/./node_modules/d3-brush/src/brush.js","webpack://mermaid/./node_modules/d3-brush/src/constant.js","webpack://mermaid/./node_modules/d3-brush/src/event.js","webpack://mermaid/./node_modules/d3-brush/src/index.js","webpack://mermaid/./node_modules/d3-brush/src/noevent.js","webpack://mermaid/./node_modules/d3-chord/src/array.js","webpack://mermaid/./node_modules/d3-chord/src/chord.js","webpack://mermaid/./node_modules/d3-chord/src/constant.js","webpack://mermaid/./node_modules/d3-chord/src/index.js","webpack://mermaid/./node_modules/d3-chord/src/math.js","webpack://mermaid/./node_modules/d3-chord/src/ribbon.js","webpack://mermaid/./node_modules/d3-collection/src/entries.js","webpack://mermaid/./node_modules/d3-collection/src/index.js","webpack://mermaid/./node_modules/d3-collection/src/keys.js","webpack://mermaid/./node_modules/d3-collection/src/map.js","webpack://mermaid/./node_modules/d3-collection/src/nest.js","webpack://mermaid/./node_modules/d3-collection/src/set.js","webpack://mermaid/./node_modules/d3-collection/src/values.js","webpack://mermaid/./node_modules/d3-color/src/color.js","webpack://mermaid/./node_modules/d3-color/src/cubehelix.js","webpack://mermaid/./node_modules/d3-color/src/define.js","webpack://mermaid/./node_modules/d3-color/src/index.js","webpack://mermaid/./node_modules/d3-color/src/lab.js","webpack://mermaid/./node_modules/d3-color/src/math.js","webpack://mermaid/./node_modules/d3-contour/src/area.js","webpack://mermaid/./node_modules/d3-contour/src/array.js","webpack://mermaid/./node_modules/d3-contour/src/ascending.js","webpack://mermaid/./node_modules/d3-contour/src/blur.js","webpack://mermaid/./node_modules/d3-contour/src/constant.js","webpack://mermaid/./node_modules/d3-contour/src/contains.js","webpack://mermaid/./node_modules/d3-contour/src/contours.js","webpack://mermaid/./node_modules/d3-contour/src/density.js","webpack://mermaid/./node_modules/d3-contour/src/index.js","webpack://mermaid/./node_modules/d3-contour/src/noop.js","webpack://mermaid/./node_modules/d3-dispatch/src/dispatch.js","webpack://mermaid/./node_modules/d3-dispatch/src/index.js","webpack://mermaid/./node_modules/d3-drag/src/constant.js","webpack://mermaid/./node_modules/d3-drag/src/drag.js","webpack://mermaid/./node_modules/d3-drag/src/event.js","webpack://mermaid/./node_modules/d3-drag/src/index.js","webpack://mermaid/./node_modules/d3-drag/src/nodrag.js","webpack://mermaid/./node_modules/d3-drag/src/noevent.js","webpack://mermaid/./node_modules/d3-dsv/src/autoType.js","webpack://mermaid/./node_modules/d3-dsv/src/csv.js","webpack://mermaid/./node_modules/d3-dsv/src/dsv.js","webpack://mermaid/./node_modules/d3-dsv/src/index.js","webpack://mermaid/./node_modules/d3-dsv/src/tsv.js","webpack://mermaid/./node_modules/d3-ease/src/back.js","webpack://mermaid/./node_modules/d3-ease/src/bounce.js","webpack://mermaid/./node_modules/d3-ease/src/circle.js","webpack://mermaid/./node_modules/d3-ease/src/cubic.js","webpack://mermaid/./node_modules/d3-ease/src/elastic.js","webpack://mermaid/./node_modules/d3-ease/src/exp.js","webpack://mermaid/./node_modules/d3-ease/src/index.js","webpack://mermaid/./node_modules/d3-ease/src/linear.js","webpack://mermaid/./node_modules/d3-ease/src/poly.js","webpack://mermaid/./node_modules/d3-ease/src/quad.js","webpack://mermaid/./node_modules/d3-ease/src/sin.js","webpack://mermaid/./node_modules/d3-fetch/src/blob.js","webpack://mermaid/./node_modules/d3-fetch/src/buffer.js","webpack://mermaid/./node_modules/d3-fetch/src/dsv.js","webpack://mermaid/./node_modules/d3-fetch/src/image.js","webpack://mermaid/./node_modules/d3-fetch/src/index.js","webpack://mermaid/./node_modules/d3-fetch/src/json.js","webpack://mermaid/./node_modules/d3-fetch/src/text.js","webpack://mermaid/./node_modules/d3-fetch/src/xml.js","webpack://mermaid/./node_modules/d3-force/src/center.js","webpack://mermaid/./node_modules/d3-force/src/collide.js","webpack://mermaid/./node_modules/d3-force/src/constant.js","webpack://mermaid/./node_modules/d3-force/src/index.js","webpack://mermaid/./node_modules/d3-force/src/jiggle.js","webpack://mermaid/./node_modules/d3-force/src/link.js","webpack://mermaid/./node_modules/d3-force/src/manyBody.js","webpack://mermaid/./node_modules/d3-force/src/radial.js","webpack://mermaid/./node_modules/d3-force/src/simulation.js","webpack://mermaid/./node_modules/d3-force/src/x.js","webpack://mermaid/./node_modules/d3-force/src/y.js","webpack://mermaid/./node_modules/d3-format/src/defaultLocale.js","webpack://mermaid/./node_modules/d3-format/src/exponent.js","webpack://mermaid/./node_modules/d3-format/src/formatDecimal.js","webpack://mermaid/./node_modules/d3-format/src/formatGroup.js","webpack://mermaid/./node_modules/d3-format/src/formatNumerals.js","webpack://mermaid/./node_modules/d3-format/src/formatPrefixAuto.js","webpack://mermaid/./node_modules/d3-format/src/formatRounded.js","webpack://mermaid/./node_modules/d3-format/src/formatSpecifier.js","webpack://mermaid/./node_modules/d3-format/src/formatTrim.js","webpack://mermaid/./node_modules/d3-format/src/formatTypes.js","webpack://mermaid/./node_modules/d3-format/src/identity.js","webpack://mermaid/./node_modules/d3-format/src/index.js","webpack://mermaid/./node_modules/d3-format/src/locale.js","webpack://mermaid/./node_modules/d3-format/src/precisionFixed.js","webpack://mermaid/./node_modules/d3-format/src/precisionPrefix.js","webpack://mermaid/./node_modules/d3-format/src/precisionRound.js","webpack://mermaid/./node_modules/d3-geo/src/adder.js","webpack://mermaid/./node_modules/d3-geo/src/area.js","webpack://mermaid/./node_modules/d3-geo/src/bounds.js","webpack://mermaid/./node_modules/d3-geo/src/cartesian.js","webpack://mermaid/./node_modules/d3-geo/src/centroid.js","webpack://mermaid/./node_modules/d3-geo/src/circle.js","webpack://mermaid/./node_modules/d3-geo/src/clip/antimeridian.js","webpack://mermaid/./node_modules/d3-geo/src/clip/buffer.js","webpack://mermaid/./node_modules/d3-geo/src/clip/circle.js","webpack://mermaid/./node_modules/d3-geo/src/clip/extent.js","webpack://mermaid/./node_modules/d3-geo/src/clip/index.js","webpack://mermaid/./node_modules/d3-geo/src/clip/line.js","webpack://mermaid/./node_modules/d3-geo/src/clip/rectangle.js","webpack://mermaid/./node_modules/d3-geo/src/clip/rejoin.js","webpack://mermaid/./node_modules/d3-geo/src/compose.js","webpack://mermaid/./node_modules/d3-geo/src/constant.js","webpack://mermaid/./node_modules/d3-geo/src/contains.js","webpack://mermaid/./node_modules/d3-geo/src/distance.js","webpack://mermaid/./node_modules/d3-geo/src/graticule.js","webpack://mermaid/./node_modules/d3-geo/src/identity.js","webpack://mermaid/./node_modules/d3-geo/src/index.js","webpack://mermaid/./node_modules/d3-geo/src/interpolate.js","webpack://mermaid/./node_modules/d3-geo/src/length.js","webpack://mermaid/./node_modules/d3-geo/src/math.js","webpack://mermaid/./node_modules/d3-geo/src/noop.js","webpack://mermaid/./node_modules/d3-geo/src/path/area.js","webpack://mermaid/./node_modules/d3-geo/src/path/bounds.js","webpack://mermaid/./node_modules/d3-geo/src/path/centroid.js","webpack://mermaid/./node_modules/d3-geo/src/path/context.js","webpack://mermaid/./node_modules/d3-geo/src/path/index.js","webpack://mermaid/./node_modules/d3-geo/src/path/measure.js","webpack://mermaid/./node_modules/d3-geo/src/path/string.js","webpack://mermaid/./node_modules/d3-geo/src/pointEqual.js","webpack://mermaid/./node_modules/d3-geo/src/polygonContains.js","webpack://mermaid/./node_modules/d3-geo/src/projection/albers.js","webpack://mermaid/./node_modules/d3-geo/src/projection/albersUsa.js","webpack://mermaid/./node_modules/d3-geo/src/projection/azimuthal.js","webpack://mermaid/./node_modules/d3-geo/src/projection/azimuthalEqualArea.js","webpack://mermaid/./node_modules/d3-geo/src/projection/azimuthalEquidistant.js","webpack://mermaid/./node_modules/d3-geo/src/projection/conic.js","webpack://mermaid/./node_modules/d3-geo/src/projection/conicConformal.js","webpack://mermaid/./node_modules/d3-geo/src/projection/conicEqualArea.js","webpack://mermaid/./node_modules/d3-geo/src/projection/conicEquidistant.js","webpack://mermaid/./node_modules/d3-geo/src/projection/cylindricalEqualArea.js","webpack://mermaid/./node_modules/d3-geo/src/projection/equalEarth.js","webpack://mermaid/./node_modules/d3-geo/src/projection/equirectangular.js","webpack://mermaid/./node_modules/d3-geo/src/projection/fit.js","webpack://mermaid/./node_modules/d3-geo/src/projection/gnomonic.js","webpack://mermaid/./node_modules/d3-geo/src/projection/identity.js","webpack://mermaid/./node_modules/d3-geo/src/projection/index.js","webpack://mermaid/./node_modules/d3-geo/src/projection/mercator.js","webpack://mermaid/./node_modules/d3-geo/src/projection/naturalEarth1.js","webpack://mermaid/./node_modules/d3-geo/src/projection/orthographic.js","webpack://mermaid/./node_modules/d3-geo/src/projection/resample.js","webpack://mermaid/./node_modules/d3-geo/src/projection/stereographic.js","webpack://mermaid/./node_modules/d3-geo/src/projection/transverseMercator.js","webpack://mermaid/./node_modules/d3-geo/src/rotation.js","webpack://mermaid/./node_modules/d3-geo/src/stream.js","webpack://mermaid/./node_modules/d3-geo/src/transform.js","webpack://mermaid/./node_modules/d3-hierarchy/src/accessors.js","webpack://mermaid/./node_modules/d3-hierarchy/src/array.js","webpack://mermaid/./node_modules/d3-hierarchy/src/cluster.js","webpack://mermaid/./node_modules/d3-hierarchy/src/constant.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/count.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/each.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/index.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/links.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/path.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack://mermaid/./node_modules/d3-hierarchy/src/index.js","webpack://mermaid/./node_modules/d3-hierarchy/src/pack/enclose.js","webpack://mermaid/./node_modules/d3-hierarchy/src/pack/index.js","webpack://mermaid/./node_modules/d3-hierarchy/src/pack/siblings.js","webpack://mermaid/./node_modules/d3-hierarchy/src/partition.js","webpack://mermaid/./node_modules/d3-hierarchy/src/stratify.js","webpack://mermaid/./node_modules/d3-hierarchy/src/tree.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/binary.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/dice.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/index.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/round.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/slice.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/sliceDice.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/squarify.js","webpack://mermaid/./node_modules/d3-interpolate/src/array.js","webpack://mermaid/./node_modules/d3-interpolate/src/basis.js","webpack://mermaid/./node_modules/d3-interpolate/src/basisClosed.js","webpack://mermaid/./node_modules/d3-interpolate/src/color.js","webpack://mermaid/./node_modules/d3-interpolate/src/constant.js","webpack://mermaid/./node_modules/d3-interpolate/src/cubehelix.js","webpack://mermaid/./node_modules/d3-interpolate/src/date.js","webpack://mermaid/./node_modules/d3-interpolate/src/discrete.js","webpack://mermaid/./node_modules/d3-interpolate/src/hcl.js","webpack://mermaid/./node_modules/d3-interpolate/src/hsl.js","webpack://mermaid/./node_modules/d3-interpolate/src/hue.js","webpack://mermaid/./node_modules/d3-interpolate/src/index.js","webpack://mermaid/./node_modules/d3-interpolate/src/lab.js","webpack://mermaid/./node_modules/d3-interpolate/src/number.js","webpack://mermaid/./node_modules/d3-interpolate/src/numberArray.js","webpack://mermaid/./node_modules/d3-interpolate/src/object.js","webpack://mermaid/./node_modules/d3-interpolate/src/piecewise.js","webpack://mermaid/./node_modules/d3-interpolate/src/quantize.js","webpack://mermaid/./node_modules/d3-interpolate/src/rgb.js","webpack://mermaid/./node_modules/d3-interpolate/src/round.js","webpack://mermaid/./node_modules/d3-interpolate/src/string.js","webpack://mermaid/./node_modules/d3-interpolate/src/transform/decompose.js","webpack://mermaid/./node_modules/d3-interpolate/src/transform/index.js","webpack://mermaid/./node_modules/d3-interpolate/src/transform/parse.js","webpack://mermaid/./node_modules/d3-interpolate/src/value.js","webpack://mermaid/./node_modules/d3-interpolate/src/zoom.js","webpack://mermaid/./node_modules/d3-path/src/index.js","webpack://mermaid/./node_modules/d3-path/src/path.js","webpack://mermaid/./node_modules/d3-polygon/src/area.js","webpack://mermaid/./node_modules/d3-polygon/src/centroid.js","webpack://mermaid/./node_modules/d3-polygon/src/contains.js","webpack://mermaid/./node_modules/d3-polygon/src/cross.js","webpack://mermaid/./node_modules/d3-polygon/src/hull.js","webpack://mermaid/./node_modules/d3-polygon/src/index.js","webpack://mermaid/./node_modules/d3-polygon/src/length.js","webpack://mermaid/./node_modules/d3-quadtree/src/add.js","webpack://mermaid/./node_modules/d3-quadtree/src/cover.js","webpack://mermaid/./node_modules/d3-quadtree/src/data.js","webpack://mermaid/./node_modules/d3-quadtree/src/extent.js","webpack://mermaid/./node_modules/d3-quadtree/src/find.js","webpack://mermaid/./node_modules/d3-quadtree/src/index.js","webpack://mermaid/./node_modules/d3-quadtree/src/quad.js","webpack://mermaid/./node_modules/d3-quadtree/src/quadtree.js","webpack://mermaid/./node_modules/d3-quadtree/src/remove.js","webpack://mermaid/./node_modules/d3-quadtree/src/root.js","webpack://mermaid/./node_modules/d3-quadtree/src/size.js","webpack://mermaid/./node_modules/d3-quadtree/src/visit.js","webpack://mermaid/./node_modules/d3-quadtree/src/visitAfter.js","webpack://mermaid/./node_modules/d3-quadtree/src/x.js","webpack://mermaid/./node_modules/d3-quadtree/src/y.js","webpack://mermaid/./node_modules/d3-random/src/bates.js","webpack://mermaid/./node_modules/d3-random/src/defaultSource.js","webpack://mermaid/./node_modules/d3-random/src/exponential.js","webpack://mermaid/./node_modules/d3-random/src/index.js","webpack://mermaid/./node_modules/d3-random/src/irwinHall.js","webpack://mermaid/./node_modules/d3-random/src/logNormal.js","webpack://mermaid/./node_modules/d3-random/src/normal.js","webpack://mermaid/./node_modules/d3-random/src/uniform.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Accent.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Dark2.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Paired.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Set1.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Set2.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Set3.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Tableau10.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/category10.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/colors.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/BrBG.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/PRGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/PiYG.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/PuOr.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/RdBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/RdGy.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/Spectral.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/index.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/ramp.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Blues.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Greens.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Greys.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Purples.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Reds.js","webpack://mermaid/./node_modules/d3-scale/src/array.js","webpack://mermaid/./node_modules/d3-scale/src/band.js","webpack://mermaid/./node_modules/d3-scale/src/constant.js","webpack://mermaid/./node_modules/d3-scale/src/continuous.js","webpack://mermaid/./node_modules/d3-scale/src/diverging.js","webpack://mermaid/./node_modules/d3-scale/src/identity.js","webpack://mermaid/./node_modules/d3-scale/src/index.js","webpack://mermaid/./node_modules/d3-scale/src/init.js","webpack://mermaid/./node_modules/d3-scale/src/linear.js","webpack://mermaid/./node_modules/d3-scale/src/log.js","webpack://mermaid/./node_modules/d3-scale/src/nice.js","webpack://mermaid/./node_modules/d3-scale/src/number.js","webpack://mermaid/./node_modules/d3-scale/src/ordinal.js","webpack://mermaid/./node_modules/d3-scale/src/pow.js","webpack://mermaid/./node_modules/d3-scale/src/quantile.js","webpack://mermaid/./node_modules/d3-scale/src/quantize.js","webpack://mermaid/./node_modules/d3-scale/src/sequential.js","webpack://mermaid/./node_modules/d3-scale/src/sequentialQuantile.js","webpack://mermaid/./node_modules/d3-scale/src/symlog.js","webpack://mermaid/./node_modules/d3-scale/src/threshold.js","webpack://mermaid/./node_modules/d3-scale/src/tickFormat.js","webpack://mermaid/./node_modules/d3-scale/src/time.js","webpack://mermaid/./node_modules/d3-scale/src/utcTime.js","webpack://mermaid/./node_modules/d3-selection/src/constant.js","webpack://mermaid/./node_modules/d3-selection/src/create.js","webpack://mermaid/./node_modules/d3-selection/src/creator.js","webpack://mermaid/./node_modules/d3-selection/src/index.js","webpack://mermaid/./node_modules/d3-selection/src/local.js","webpack://mermaid/./node_modules/d3-selection/src/matcher.js","webpack://mermaid/./node_modules/d3-selection/src/mouse.js","webpack://mermaid/./node_modules/d3-selection/src/namespace.js","webpack://mermaid/./node_modules/d3-selection/src/namespaces.js","webpack://mermaid/./node_modules/d3-selection/src/point.js","webpack://mermaid/./node_modules/d3-selection/src/select.js","webpack://mermaid/./node_modules/d3-selection/src/selectAll.js","webpack://mermaid/./node_modules/d3-selection/src/selection/append.js","webpack://mermaid/./node_modules/d3-selection/src/selection/attr.js","webpack://mermaid/./node_modules/d3-selection/src/selection/call.js","webpack://mermaid/./node_modules/d3-selection/src/selection/classed.js","webpack://mermaid/./node_modules/d3-selection/src/selection/clone.js","webpack://mermaid/./node_modules/d3-selection/src/selection/data.js","webpack://mermaid/./node_modules/d3-selection/src/selection/datum.js","webpack://mermaid/./node_modules/d3-selection/src/selection/dispatch.js","webpack://mermaid/./node_modules/d3-selection/src/selection/each.js","webpack://mermaid/./node_modules/d3-selection/src/selection/empty.js","webpack://mermaid/./node_modules/d3-selection/src/selection/enter.js","webpack://mermaid/./node_modules/d3-selection/src/selection/exit.js","webpack://mermaid/./node_modules/d3-selection/src/selection/filter.js","webpack://mermaid/./node_modules/d3-selection/src/selection/html.js","webpack://mermaid/./node_modules/d3-selection/src/selection/index.js","webpack://mermaid/./node_modules/d3-selection/src/selection/insert.js","webpack://mermaid/./node_modules/d3-selection/src/selection/join.js","webpack://mermaid/./node_modules/d3-selection/src/selection/lower.js","webpack://mermaid/./node_modules/d3-selection/src/selection/merge.js","webpack://mermaid/./node_modules/d3-selection/src/selection/node.js","webpack://mermaid/./node_modules/d3-selection/src/selection/nodes.js","webpack://mermaid/./node_modules/d3-selection/src/selection/on.js","webpack://mermaid/./node_modules/d3-selection/src/selection/order.js","webpack://mermaid/./node_modules/d3-selection/src/selection/property.js","webpack://mermaid/./node_modules/d3-selection/src/selection/raise.js","webpack://mermaid/./node_modules/d3-selection/src/selection/remove.js","webpack://mermaid/./node_modules/d3-selection/src/selection/select.js","webpack://mermaid/./node_modules/d3-selection/src/selection/selectAll.js","webpack://mermaid/./node_modules/d3-selection/src/selection/size.js","webpack://mermaid/./node_modules/d3-selection/src/selection/sort.js","webpack://mermaid/./node_modules/d3-selection/src/selection/sparse.js","webpack://mermaid/./node_modules/d3-selection/src/selection/style.js","webpack://mermaid/./node_modules/d3-selection/src/selection/text.js","webpack://mermaid/./node_modules/d3-selection/src/selector.js","webpack://mermaid/./node_modules/d3-selection/src/selectorAll.js","webpack://mermaid/./node_modules/d3-selection/src/sourceEvent.js","webpack://mermaid/./node_modules/d3-selection/src/touch.js","webpack://mermaid/./node_modules/d3-selection/src/touches.js","webpack://mermaid/./node_modules/d3-selection/src/window.js","webpack://mermaid/./node_modules/d3-shape/src/arc.js","webpack://mermaid/./node_modules/d3-shape/src/area.js","webpack://mermaid/./node_modules/d3-shape/src/areaRadial.js","webpack://mermaid/./node_modules/d3-shape/src/array.js","webpack://mermaid/./node_modules/d3-shape/src/constant.js","webpack://mermaid/./node_modules/d3-shape/src/curve/basis.js","webpack://mermaid/./node_modules/d3-shape/src/curve/basisClosed.js","webpack://mermaid/./node_modules/d3-shape/src/curve/basisOpen.js","webpack://mermaid/./node_modules/d3-shape/src/curve/bundle.js","webpack://mermaid/./node_modules/d3-shape/src/curve/cardinal.js","webpack://mermaid/./node_modules/d3-shape/src/curve/cardinalClosed.js","webpack://mermaid/./node_modules/d3-shape/src/curve/cardinalOpen.js","webpack://mermaid/./node_modules/d3-shape/src/curve/catmullRom.js","webpack://mermaid/./node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack://mermaid/./node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack://mermaid/./node_modules/d3-shape/src/curve/linear.js","webpack://mermaid/./node_modules/d3-shape/src/curve/linearClosed.js","webpack://mermaid/./node_modules/d3-shape/src/curve/monotone.js","webpack://mermaid/./node_modules/d3-shape/src/curve/natural.js","webpack://mermaid/./node_modules/d3-shape/src/curve/radial.js","webpack://mermaid/./node_modules/d3-shape/src/curve/step.js","webpack://mermaid/./node_modules/d3-shape/src/descending.js","webpack://mermaid/./node_modules/d3-shape/src/identity.js","webpack://mermaid/./node_modules/d3-shape/src/index.js","webpack://mermaid/./node_modules/d3-shape/src/line.js","webpack://mermaid/./node_modules/d3-shape/src/lineRadial.js","webpack://mermaid/./node_modules/d3-shape/src/link/index.js","webpack://mermaid/./node_modules/d3-shape/src/math.js","webpack://mermaid/./node_modules/d3-shape/src/noop.js","webpack://mermaid/./node_modules/d3-shape/src/offset/diverging.js","webpack://mermaid/./node_modules/d3-shape/src/offset/expand.js","webpack://mermaid/./node_modules/d3-shape/src/offset/none.js","webpack://mermaid/./node_modules/d3-shape/src/offset/silhouette.js","webpack://mermaid/./node_modules/d3-shape/src/offset/wiggle.js","webpack://mermaid/./node_modules/d3-shape/src/order/appearance.js","webpack://mermaid/./node_modules/d3-shape/src/order/ascending.js","webpack://mermaid/./node_modules/d3-shape/src/order/descending.js","webpack://mermaid/./node_modules/d3-shape/src/order/insideOut.js","webpack://mermaid/./node_modules/d3-shape/src/order/none.js","webpack://mermaid/./node_modules/d3-shape/src/order/reverse.js","webpack://mermaid/./node_modules/d3-shape/src/pie.js","webpack://mermaid/./node_modules/d3-shape/src/point.js","webpack://mermaid/./node_modules/d3-shape/src/pointRadial.js","webpack://mermaid/./node_modules/d3-shape/src/stack.js","webpack://mermaid/./node_modules/d3-shape/src/symbol.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/circle.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/cross.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/diamond.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/square.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/star.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/triangle.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/wye.js","webpack://mermaid/./node_modules/d3-time-format/src/defaultLocale.js","webpack://mermaid/./node_modules/d3-time-format/src/index.js","webpack://mermaid/./node_modules/d3-time-format/src/isoFormat.js","webpack://mermaid/./node_modules/d3-time-format/src/isoParse.js","webpack://mermaid/./node_modules/d3-time-format/src/locale.js","webpack://mermaid/./node_modules/d3-time/src/day.js","webpack://mermaid/./node_modules/d3-time/src/duration.js","webpack://mermaid/./node_modules/d3-time/src/hour.js","webpack://mermaid/./node_modules/d3-time/src/index.js","webpack://mermaid/./node_modules/d3-time/src/interval.js","webpack://mermaid/./node_modules/d3-time/src/millisecond.js","webpack://mermaid/./node_modules/d3-time/src/minute.js","webpack://mermaid/./node_modules/d3-time/src/month.js","webpack://mermaid/./node_modules/d3-time/src/second.js","webpack://mermaid/./node_modules/d3-time/src/utcDay.js","webpack://mermaid/./node_modules/d3-time/src/utcHour.js","webpack://mermaid/./node_modules/d3-time/src/utcMinute.js","webpack://mermaid/./node_modules/d3-time/src/utcMonth.js","webpack://mermaid/./node_modules/d3-time/src/utcWeek.js","webpack://mermaid/./node_modules/d3-time/src/utcYear.js","webpack://mermaid/./node_modules/d3-time/src/week.js","webpack://mermaid/./node_modules/d3-time/src/year.js","webpack://mermaid/./node_modules/d3-timer/src/index.js","webpack://mermaid/./node_modules/d3-timer/src/interval.js","webpack://mermaid/./node_modules/d3-timer/src/timeout.js","webpack://mermaid/./node_modules/d3-timer/src/timer.js","webpack://mermaid/./node_modules/d3-transition/src/active.js","webpack://mermaid/./node_modules/d3-transition/src/index.js","webpack://mermaid/./node_modules/d3-transition/src/interrupt.js","webpack://mermaid/./node_modules/d3-transition/src/selection/index.js","webpack://mermaid/./node_modules/d3-transition/src/selection/interrupt.js","webpack://mermaid/./node_modules/d3-transition/src/selection/transition.js","webpack://mermaid/./node_modules/d3-transition/src/transition/attr.js","webpack://mermaid/./node_modules/d3-transition/src/transition/attrTween.js","webpack://mermaid/./node_modules/d3-transition/src/transition/delay.js","webpack://mermaid/./node_modules/d3-transition/src/transition/duration.js","webpack://mermaid/./node_modules/d3-transition/src/transition/ease.js","webpack://mermaid/./node_modules/d3-transition/src/transition/end.js","webpack://mermaid/./node_modules/d3-transition/src/transition/filter.js","webpack://mermaid/./node_modules/d3-transition/src/transition/index.js","webpack://mermaid/./node_modules/d3-transition/src/transition/interpolate.js","webpack://mermaid/./node_modules/d3-transition/src/transition/merge.js","webpack://mermaid/./node_modules/d3-transition/src/transition/on.js","webpack://mermaid/./node_modules/d3-transition/src/transition/remove.js","webpack://mermaid/./node_modules/d3-transition/src/transition/schedule.js","webpack://mermaid/./node_modules/d3-transition/src/transition/select.js","webpack://mermaid/./node_modules/d3-transition/src/transition/selectAll.js","webpack://mermaid/./node_modules/d3-transition/src/transition/selection.js","webpack://mermaid/./node_modules/d3-transition/src/transition/style.js","webpack://mermaid/./node_modules/d3-transition/src/transition/styleTween.js","webpack://mermaid/./node_modules/d3-transition/src/transition/text.js","webpack://mermaid/./node_modules/d3-transition/src/transition/textTween.js","webpack://mermaid/./node_modules/d3-transition/src/transition/transition.js","webpack://mermaid/./node_modules/d3-transition/src/transition/tween.js","webpack://mermaid/./node_modules/d3-voronoi/src/Beach.js","webpack://mermaid/./node_modules/d3-voronoi/src/Cell.js","webpack://mermaid/./node_modules/d3-voronoi/src/Circle.js","webpack://mermaid/./node_modules/d3-voronoi/src/Diagram.js","webpack://mermaid/./node_modules/d3-voronoi/src/Edge.js","webpack://mermaid/./node_modules/d3-voronoi/src/RedBlackTree.js","webpack://mermaid/./node_modules/d3-voronoi/src/constant.js","webpack://mermaid/./node_modules/d3-voronoi/src/index.js","webpack://mermaid/./node_modules/d3-voronoi/src/point.js","webpack://mermaid/./node_modules/d3-voronoi/src/voronoi.js","webpack://mermaid/./node_modules/d3-zoom/src/constant.js","webpack://mermaid/./node_modules/d3-zoom/src/event.js","webpack://mermaid/./node_modules/d3-zoom/src/index.js","webpack://mermaid/./node_modules/d3-zoom/src/noevent.js","webpack://mermaid/./node_modules/d3-zoom/src/transform.js","webpack://mermaid/./node_modules/d3-zoom/src/zoom.js","webpack://mermaid/./node_modules/d3/dist/package.js","webpack://mermaid/./node_modules/d3/index.js","webpack://mermaid/./node_modules/dagre-d3/index.js","webpack://mermaid/./node_modules/dagre-d3/lib/arrows.js","webpack://mermaid/./node_modules/dagre-d3/lib/create-clusters.js","webpack://mermaid/./node_modules/dagre-d3/lib/create-edge-labels.js","webpack://mermaid/./node_modules/dagre-d3/lib/create-edge-paths.js","webpack://mermaid/./node_modules/dagre-d3/lib/create-nodes.js","webpack://mermaid/./node_modules/dagre-d3/lib/d3.js","webpack://mermaid/./node_modules/dagre-d3/lib/dagre.js","webpack://mermaid/./node_modules/dagre-d3/lib/graphlib.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/index.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-circle.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-line.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-node.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-polygon.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-rect.js","webpack://mermaid/./node_modules/dagre-d3/lib/label/add-html-label.js","webpack://mermaid/./node_modules/dagre-d3/lib/label/add-label.js","webpack://mermaid/./node_modules/dagre-d3/lib/label/add-svg-label.js","webpack://mermaid/./node_modules/dagre-d3/lib/label/add-text-label.js","webpack://mermaid/./node_modules/dagre-d3/lib/lodash.js","webpack://mermaid/./node_modules/dagre-d3/lib/position-clusters.js","webpack://mermaid/./node_modules/dagre-d3/lib/position-edge-labels.js","webpack://mermaid/./node_modules/dagre-d3/lib/position-nodes.js","webpack://mermaid/./node_modules/dagre-d3/lib/render.js","webpack://mermaid/./node_modules/dagre-d3/lib/shapes.js","webpack://mermaid/./node_modules/dagre-d3/lib/util.js","webpack://mermaid/./node_modules/dagre-d3/lib/version.js","webpack://mermaid/./node_modules/dagre/index.js","webpack://mermaid/./node_modules/dagre/lib/acyclic.js","webpack://mermaid/./node_modules/dagre/lib/add-border-segments.js","webpack://mermaid/./node_modules/dagre/lib/coordinate-system.js","webpack://mermaid/./node_modules/dagre/lib/data/list.js","webpack://mermaid/./node_modules/dagre/lib/debug.js","webpack://mermaid/./node_modules/dagre/lib/graphlib.js","webpack://mermaid/./node_modules/dagre/lib/greedy-fas.js","webpack://mermaid/./node_modules/dagre/lib/layout.js","webpack://mermaid/./node_modules/dagre/lib/lodash.js","webpack://mermaid/./node_modules/dagre/lib/nesting-graph.js","webpack://mermaid/./node_modules/dagre/lib/normalize.js","webpack://mermaid/./node_modules/dagre/lib/order/add-subgraph-constraints.js","webpack://mermaid/./node_modules/dagre/lib/order/barycenter.js","webpack://mermaid/./node_modules/dagre/lib/order/build-layer-graph.js","webpack://mermaid/./node_modules/dagre/lib/order/cross-count.js","webpack://mermaid/./node_modules/dagre/lib/order/index.js","webpack://mermaid/./node_modules/dagre/lib/order/init-order.js","webpack://mermaid/./node_modules/dagre/lib/order/resolve-conflicts.js","webpack://mermaid/./node_modules/dagre/lib/order/sort-subgraph.js","webpack://mermaid/./node_modules/dagre/lib/order/sort.js","webpack://mermaid/./node_modules/dagre/lib/parent-dummy-chains.js","webpack://mermaid/./node_modules/dagre/lib/position/bk.js","webpack://mermaid/./node_modules/dagre/lib/position/index.js","webpack://mermaid/./node_modules/dagre/lib/rank/feasible-tree.js","webpack://mermaid/./node_modules/dagre/lib/rank/index.js","webpack://mermaid/./node_modules/dagre/lib/rank/network-simplex.js","webpack://mermaid/./node_modules/dagre/lib/rank/util.js","webpack://mermaid/./node_modules/dagre/lib/util.js","webpack://mermaid/./node_modules/dagre/lib/version.js","webpack://mermaid/./node_modules/entity-decode/browser.js","webpack://mermaid/./node_modules/escaper/dist/escaper.js","webpack://mermaid/./node_modules/graphlib/index.js","webpack://mermaid/./node_modules/graphlib/lib/alg/components.js","webpack://mermaid/./node_modules/graphlib/lib/alg/dfs.js","webpack://mermaid/./node_modules/graphlib/lib/alg/dijkstra-all.js","webpack://mermaid/./node_modules/graphlib/lib/alg/dijkstra.js","webpack://mermaid/./node_modules/graphlib/lib/alg/find-cycles.js","webpack://mermaid/./node_modules/graphlib/lib/alg/floyd-warshall.js","webpack://mermaid/./node_modules/graphlib/lib/alg/index.js","webpack://mermaid/./node_modules/graphlib/lib/alg/is-acyclic.js","webpack://mermaid/./node_modules/graphlib/lib/alg/postorder.js","webpack://mermaid/./node_modules/graphlib/lib/alg/preorder.js","webpack://mermaid/./node_modules/graphlib/lib/alg/prim.js","webpack://mermaid/./node_modules/graphlib/lib/alg/tarjan.js","webpack://mermaid/./node_modules/graphlib/lib/alg/topsort.js","webpack://mermaid/./node_modules/graphlib/lib/data/priority-queue.js","webpack://mermaid/./node_modules/graphlib/lib/graph.js","webpack://mermaid/./node_modules/graphlib/lib/index.js","webpack://mermaid/./node_modules/graphlib/lib/json.js","webpack://mermaid/./node_modules/graphlib/lib/lodash.js","webpack://mermaid/./node_modules/graphlib/lib/version.js","webpack://mermaid/./node_modules/is-regexp/index.js","webpack://mermaid/./node_modules/lodash/_DataView.js","webpack://mermaid/./node_modules/lodash/_Hash.js","webpack://mermaid/./node_modules/lodash/_ListCache.js","webpack://mermaid/./node_modules/lodash/_Map.js","webpack://mermaid/./node_modules/lodash/_MapCache.js","webpack://mermaid/./node_modules/lodash/_Promise.js","webpack://mermaid/./node_modules/lodash/_Set.js","webpack://mermaid/./node_modules/lodash/_SetCache.js","webpack://mermaid/./node_modules/lodash/_Stack.js","webpack://mermaid/./node_modules/lodash/_Symbol.js","webpack://mermaid/./node_modules/lodash/_Uint8Array.js","webpack://mermaid/./node_modules/lodash/_WeakMap.js","webpack://mermaid/./node_modules/lodash/_apply.js","webpack://mermaid/./node_modules/lodash/_arrayEach.js","webpack://mermaid/./node_modules/lodash/_arrayFilter.js","webpack://mermaid/./node_modules/lodash/_arrayIncludes.js","webpack://mermaid/./node_modules/lodash/_arrayIncludesWith.js","webpack://mermaid/./node_modules/lodash/_arrayLikeKeys.js","webpack://mermaid/./node_modules/lodash/_arrayMap.js","webpack://mermaid/./node_modules/lodash/_arrayPush.js","webpack://mermaid/./node_modules/lodash/_arrayReduce.js","webpack://mermaid/./node_modules/lodash/_arraySome.js","webpack://mermaid/./node_modules/lodash/_asciiSize.js","webpack://mermaid/./node_modules/lodash/_assignMergeValue.js","webpack://mermaid/./node_modules/lodash/_assignValue.js","webpack://mermaid/./node_modules/lodash/_assocIndexOf.js","webpack://mermaid/./node_modules/lodash/_baseAssign.js","webpack://mermaid/./node_modules/lodash/_baseAssignIn.js","webpack://mermaid/./node_modules/lodash/_baseAssignValue.js","webpack://mermaid/./node_modules/lodash/_baseClone.js","webpack://mermaid/./node_modules/lodash/_baseCreate.js","webpack://mermaid/./node_modules/lodash/_baseEach.js","webpack://mermaid/./node_modules/lodash/_baseExtremum.js","webpack://mermaid/./node_modules/lodash/_baseFilter.js","webpack://mermaid/./node_modules/lodash/_baseFindIndex.js","webpack://mermaid/./node_modules/lodash/_baseFlatten.js","webpack://mermaid/./node_modules/lodash/_baseFor.js","webpack://mermaid/./node_modules/lodash/_baseForOwn.js","webpack://mermaid/./node_modules/lodash/_baseGet.js","webpack://mermaid/./node_modules/lodash/_baseGetAllKeys.js","webpack://mermaid/./node_modules/lodash/_baseGetTag.js","webpack://mermaid/./node_modules/lodash/_baseGt.js","webpack://mermaid/./node_modules/lodash/_baseHas.js","webpack://mermaid/./node_modules/lodash/_baseHasIn.js","webpack://mermaid/./node_modules/lodash/_baseIndexOf.js","webpack://mermaid/./node_modules/lodash/_baseIsArguments.js","webpack://mermaid/./node_modules/lodash/_baseIsEqual.js","webpack://mermaid/./node_modules/lodash/_baseIsEqualDeep.js","webpack://mermaid/./node_modules/lodash/_baseIsMap.js","webpack://mermaid/./node_modules/lodash/_baseIsMatch.js","webpack://mermaid/./node_modules/lodash/_baseIsNaN.js","webpack://mermaid/./node_modules/lodash/_baseIsNative.js","webpack://mermaid/./node_modules/lodash/_baseIsSet.js","webpack://mermaid/./node_modules/lodash/_baseIsTypedArray.js","webpack://mermaid/./node_modules/lodash/_baseIteratee.js","webpack://mermaid/./node_modules/lodash/_baseKeys.js","webpack://mermaid/./node_modules/lodash/_baseKeysIn.js","webpack://mermaid/./node_modules/lodash/_baseLt.js","webpack://mermaid/./node_modules/lodash/_baseMap.js","webpack://mermaid/./node_modules/lodash/_baseMatches.js","webpack://mermaid/./node_modules/lodash/_baseMatchesProperty.js","webpack://mermaid/./node_modules/lodash/_baseMerge.js","webpack://mermaid/./node_modules/lodash/_baseMergeDeep.js","webpack://mermaid/./node_modules/lodash/_baseOrderBy.js","webpack://mermaid/./node_modules/lodash/_basePick.js","webpack://mermaid/./node_modules/lodash/_basePickBy.js","webpack://mermaid/./node_modules/lodash/_baseProperty.js","webpack://mermaid/./node_modules/lodash/_basePropertyDeep.js","webpack://mermaid/./node_modules/lodash/_baseRange.js","webpack://mermaid/./node_modules/lodash/_baseReduce.js","webpack://mermaid/./node_modules/lodash/_baseRest.js","webpack://mermaid/./node_modules/lodash/_baseSet.js","webpack://mermaid/./node_modules/lodash/_baseSetToString.js","webpack://mermaid/./node_modules/lodash/_baseSortBy.js","webpack://mermaid/./node_modules/lodash/_baseTimes.js","webpack://mermaid/./node_modules/lodash/_baseToString.js","webpack://mermaid/./node_modules/lodash/_baseUnary.js","webpack://mermaid/./node_modules/lodash/_baseUniq.js","webpack://mermaid/./node_modules/lodash/_baseValues.js","webpack://mermaid/./node_modules/lodash/_baseZipObject.js","webpack://mermaid/./node_modules/lodash/_cacheHas.js","webpack://mermaid/./node_modules/lodash/_castFunction.js","webpack://mermaid/./node_modules/lodash/_castPath.js","webpack://mermaid/./node_modules/lodash/_cloneArrayBuffer.js","webpack://mermaid/./node_modules/lodash/_cloneBuffer.js","webpack://mermaid/./node_modules/lodash/_cloneDataView.js","webpack://mermaid/./node_modules/lodash/_cloneRegExp.js","webpack://mermaid/./node_modules/lodash/_cloneSymbol.js","webpack://mermaid/./node_modules/lodash/_cloneTypedArray.js","webpack://mermaid/./node_modules/lodash/_compareAscending.js","webpack://mermaid/./node_modules/lodash/_compareMultiple.js","webpack://mermaid/./node_modules/lodash/_copyArray.js","webpack://mermaid/./node_modules/lodash/_copyObject.js","webpack://mermaid/./node_modules/lodash/_copySymbols.js","webpack://mermaid/./node_modules/lodash/_copySymbolsIn.js","webpack://mermaid/./node_modules/lodash/_coreJsData.js","webpack://mermaid/./node_modules/lodash/_createAssigner.js","webpack://mermaid/./node_modules/lodash/_createBaseEach.js","webpack://mermaid/./node_modules/lodash/_createBaseFor.js","webpack://mermaid/./node_modules/lodash/_createFind.js","webpack://mermaid/./node_modules/lodash/_createRange.js","webpack://mermaid/./node_modules/lodash/_createSet.js","webpack://mermaid/./node_modules/lodash/_defineProperty.js","webpack://mermaid/./node_modules/lodash/_equalArrays.js","webpack://mermaid/./node_modules/lodash/_equalByTag.js","webpack://mermaid/./node_modules/lodash/_equalObjects.js","webpack://mermaid/./node_modules/lodash/_flatRest.js","webpack://mermaid/./node_modules/lodash/_freeGlobal.js","webpack://mermaid/./node_modules/lodash/_getAllKeys.js","webpack://mermaid/./node_modules/lodash/_getAllKeysIn.js","webpack://mermaid/./node_modules/lodash/_getMapData.js","webpack://mermaid/./node_modules/lodash/_getMatchData.js","webpack://mermaid/./node_modules/lodash/_getNative.js","webpack://mermaid/./node_modules/lodash/_getPrototype.js","webpack://mermaid/./node_modules/lodash/_getRawTag.js","webpack://mermaid/./node_modules/lodash/_getSymbols.js","webpack://mermaid/./node_modules/lodash/_getSymbolsIn.js","webpack://mermaid/./node_modules/lodash/_getTag.js","webpack://mermaid/./node_modules/lodash/_getValue.js","webpack://mermaid/./node_modules/lodash/_hasPath.js","webpack://mermaid/./node_modules/lodash/_hasUnicode.js","webpack://mermaid/./node_modules/lodash/_hashClear.js","webpack://mermaid/./node_modules/lodash/_hashDelete.js","webpack://mermaid/./node_modules/lodash/_hashGet.js","webpack://mermaid/./node_modules/lodash/_hashHas.js","webpack://mermaid/./node_modules/lodash/_hashSet.js","webpack://mermaid/./node_modules/lodash/_initCloneArray.js","webpack://mermaid/./node_modules/lodash/_initCloneByTag.js","webpack://mermaid/./node_modules/lodash/_initCloneObject.js","webpack://mermaid/./node_modules/lodash/_isFlattenable.js","webpack://mermaid/./node_modules/lodash/_isIndex.js","webpack://mermaid/./node_modules/lodash/_isIterateeCall.js","webpack://mermaid/./node_modules/lodash/_isKey.js","webpack://mermaid/./node_modules/lodash/_isKeyable.js","webpack://mermaid/./node_modules/lodash/_isMasked.js","webpack://mermaid/./node_modules/lodash/_isPrototype.js","webpack://mermaid/./node_modules/lodash/_isStrictComparable.js","webpack://mermaid/./node_modules/lodash/_listCacheClear.js","webpack://mermaid/./node_modules/lodash/_listCacheDelete.js","webpack://mermaid/./node_modules/lodash/_listCacheGet.js","webpack://mermaid/./node_modules/lodash/_listCacheHas.js","webpack://mermaid/./node_modules/lodash/_listCacheSet.js","webpack://mermaid/./node_modules/lodash/_mapCacheClear.js","webpack://mermaid/./node_modules/lodash/_mapCacheDelete.js","webpack://mermaid/./node_modules/lodash/_mapCacheGet.js","webpack://mermaid/./node_modules/lodash/_mapCacheHas.js","webpack://mermaid/./node_modules/lodash/_mapCacheSet.js","webpack://mermaid/./node_modules/lodash/_mapToArray.js","webpack://mermaid/./node_modules/lodash/_matchesStrictComparable.js","webpack://mermaid/./node_modules/lodash/_memoizeCapped.js","webpack://mermaid/./node_modules/lodash/_nativeCreate.js","webpack://mermaid/./node_modules/lodash/_nativeKeys.js","webpack://mermaid/./node_modules/lodash/_nativeKeysIn.js","webpack://mermaid/./node_modules/lodash/_nodeUtil.js","webpack://mermaid/./node_modules/lodash/_objectToString.js","webpack://mermaid/./node_modules/lodash/_overArg.js","webpack://mermaid/./node_modules/lodash/_overRest.js","webpack://mermaid/./node_modules/lodash/_root.js","webpack://mermaid/./node_modules/lodash/_safeGet.js","webpack://mermaid/./node_modules/lodash/_setCacheAdd.js","webpack://mermaid/./node_modules/lodash/_setCacheHas.js","webpack://mermaid/./node_modules/lodash/_setToArray.js","webpack://mermaid/./node_modules/lodash/_setToString.js","webpack://mermaid/./node_modules/lodash/_shortOut.js","webpack://mermaid/./node_modules/lodash/_stackClear.js","webpack://mermaid/./node_modules/lodash/_stackDelete.js","webpack://mermaid/./node_modules/lodash/_stackGet.js","webpack://mermaid/./node_modules/lodash/_stackHas.js","webpack://mermaid/./node_modules/lodash/_stackSet.js","webpack://mermaid/./node_modules/lodash/_strictIndexOf.js","webpack://mermaid/./node_modules/lodash/_stringSize.js","webpack://mermaid/./node_modules/lodash/_stringToPath.js","webpack://mermaid/./node_modules/lodash/_toKey.js","webpack://mermaid/./node_modules/lodash/_toSource.js","webpack://mermaid/./node_modules/lodash/_unicodeSize.js","webpack://mermaid/./node_modules/lodash/clone.js","webpack://mermaid/./node_modules/lodash/cloneDeep.js","webpack://mermaid/./node_modules/lodash/constant.js","webpack://mermaid/./node_modules/lodash/defaults.js","webpack://mermaid/./node_modules/lodash/each.js","webpack://mermaid/./node_modules/lodash/eq.js","webpack://mermaid/./node_modules/lodash/filter.js","webpack://mermaid/./node_modules/lodash/find.js","webpack://mermaid/./node_modules/lodash/findIndex.js","webpack://mermaid/./node_modules/lodash/flatten.js","webpack://mermaid/./node_modules/lodash/forEach.js","webpack://mermaid/./node_modules/lodash/forIn.js","webpack://mermaid/./node_modules/lodash/get.js","webpack://mermaid/./node_modules/lodash/has.js","webpack://mermaid/./node_modules/lodash/hasIn.js","webpack://mermaid/./node_modules/lodash/identity.js","webpack://mermaid/./node_modules/lodash/isArguments.js","webpack://mermaid/./node_modules/lodash/isArray.js","webpack://mermaid/./node_modules/lodash/isArrayLike.js","webpack://mermaid/./node_modules/lodash/isArrayLikeObject.js","webpack://mermaid/./node_modules/lodash/isBuffer.js","webpack://mermaid/./node_modules/lodash/isEmpty.js","webpack://mermaid/./node_modules/lodash/isFunction.js","webpack://mermaid/./node_modules/lodash/isLength.js","webpack://mermaid/./node_modules/lodash/isMap.js","webpack://mermaid/./node_modules/lodash/isObject.js","webpack://mermaid/./node_modules/lodash/isObjectLike.js","webpack://mermaid/./node_modules/lodash/isPlainObject.js","webpack://mermaid/./node_modules/lodash/isSet.js","webpack://mermaid/./node_modules/lodash/isString.js","webpack://mermaid/./node_modules/lodash/isSymbol.js","webpack://mermaid/./node_modules/lodash/isTypedArray.js","webpack://mermaid/./node_modules/lodash/isUndefined.js","webpack://mermaid/./node_modules/lodash/keys.js","webpack://mermaid/./node_modules/lodash/keysIn.js","webpack://mermaid/./node_modules/lodash/last.js","webpack://mermaid/./node_modules/lodash/map.js","webpack://mermaid/./node_modules/lodash/mapValues.js","webpack://mermaid/./node_modules/lodash/max.js","webpack://mermaid/./node_modules/lodash/memoize.js","webpack://mermaid/./node_modules/lodash/merge.js","webpack://mermaid/./node_modules/lodash/min.js","webpack://mermaid/./node_modules/lodash/minBy.js","webpack://mermaid/./node_modules/lodash/noop.js","webpack://mermaid/./node_modules/lodash/now.js","webpack://mermaid/./node_modules/lodash/pick.js","webpack://mermaid/./node_modules/lodash/property.js","webpack://mermaid/./node_modules/lodash/range.js","webpack://mermaid/./node_modules/lodash/reduce.js","webpack://mermaid/./node_modules/lodash/size.js","webpack://mermaid/./node_modules/lodash/sortBy.js","webpack://mermaid/./node_modules/lodash/stubArray.js","webpack://mermaid/./node_modules/lodash/stubFalse.js","webpack://mermaid/./node_modules/lodash/toFinite.js","webpack://mermaid/./node_modules/lodash/toInteger.js","webpack://mermaid/./node_modules/lodash/toNumber.js","webpack://mermaid/./node_modules/lodash/toPlainObject.js","webpack://mermaid/./node_modules/lodash/toString.js","webpack://mermaid/./node_modules/lodash/transform.js","webpack://mermaid/./node_modules/lodash/union.js","webpack://mermaid/./node_modules/lodash/uniqueId.js","webpack://mermaid/./node_modules/lodash/values.js","webpack://mermaid/./node_modules/lodash/zipObject.js","webpack://mermaid/./node_modules/moment-mini/locale sync ^\\.\\/.*$","webpack://mermaid/./node_modules/moment-mini/moment.min.js","webpack://mermaid/./node_modules/path-browserify/index.js","webpack://mermaid/./node_modules/process/browser.js","webpack://mermaid/./node_modules/scope-css/index.js","webpack://mermaid/./node_modules/slugify/slugify.js","webpack://mermaid/./node_modules/strip-css-comments/index.js","webpack://mermaid/(webpack)/buildin/global.js","webpack://mermaid/(webpack)/buildin/module.js","webpack://mermaid/./src/config.js","webpack://mermaid/./src/dagre-wrapper/clusters.js","webpack://mermaid/./src/dagre-wrapper/createLabel.js","webpack://mermaid/./src/dagre-wrapper/edges.js","webpack://mermaid/./src/dagre-wrapper/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-circle.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-ellipse.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-line.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-node.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-polygon.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-rect.js","webpack://mermaid/./src/dagre-wrapper/markers.js","webpack://mermaid/./src/dagre-wrapper/mermaid-graphlib.js","webpack://mermaid/./src/dagre-wrapper/nodes.js","webpack://mermaid/./src/dagre-wrapper/shapes/note.js","webpack://mermaid/./src/dagre-wrapper/shapes/util.js","webpack://mermaid/./src/diagrams/class/classDb.js","webpack://mermaid/./src/diagrams/class/classRenderer.js","webpack://mermaid/./src/diagrams/class/parser/classDiagram.jison","webpack://mermaid/./src/diagrams/class/svgDraw.js","webpack://mermaid/./src/diagrams/common/common.js","webpack://mermaid/./src/diagrams/er/erDb.js","webpack://mermaid/./src/diagrams/er/erMarkers.js","webpack://mermaid/./src/diagrams/er/erRenderer.js","webpack://mermaid/./src/diagrams/er/parser/erDiagram.jison","webpack://mermaid/./src/diagrams/flowchart/flowChartShapes.js","webpack://mermaid/./src/diagrams/flowchart/flowDb.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer-v2.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer.js","webpack://mermaid/./src/diagrams/flowchart/parser/flow.jison","webpack://mermaid/./src/diagrams/gantt/ganttDb.js","webpack://mermaid/./src/diagrams/gantt/ganttRenderer.js","webpack://mermaid/./src/diagrams/gantt/parser/gantt.jison","webpack://mermaid/./src/diagrams/git/gitGraphAst.js","webpack://mermaid/./src/diagrams/git/gitGraphRenderer.js","webpack://mermaid/./src/diagrams/git/parser/gitGraph.jison","webpack://mermaid/./src/diagrams/info/infoDb.js","webpack://mermaid/./src/diagrams/info/infoRenderer.js","webpack://mermaid/./src/diagrams/info/parser/info.jison","webpack://mermaid/./src/diagrams/pie/parser/pie.jison","webpack://mermaid/./src/diagrams/pie/pieDb.js","webpack://mermaid/./src/diagrams/pie/pieRenderer.js","webpack://mermaid/./src/diagrams/sequence/parser/sequenceDiagram.jison","webpack://mermaid/./src/diagrams/sequence/sequenceDb.js","webpack://mermaid/./src/diagrams/sequence/sequenceRenderer.js","webpack://mermaid/./src/diagrams/sequence/svgDraw.js","webpack://mermaid/./src/diagrams/state/id-cache.js","webpack://mermaid/./src/diagrams/state/parser/stateDiagram.jison","webpack://mermaid/./src/diagrams/state/shapes.js","webpack://mermaid/./src/diagrams/state/stateDb.js","webpack://mermaid/./src/diagrams/state/stateRenderer-v2.js","webpack://mermaid/./src/diagrams/state/stateRenderer.js","webpack://mermaid/./src/diagrams/user-journey/journeyDb.js","webpack://mermaid/./src/diagrams/user-journey/journeyRenderer.js","webpack://mermaid/./src/diagrams/user-journey/parser/journey.jison","webpack://mermaid/./src/diagrams/user-journey/svgDraw.js","webpack://mermaid/./src/errorRenderer.js","webpack://mermaid/./src/logger.js","webpack://mermaid/./src/mermaid.js","webpack://mermaid/./src/mermaidAPI.js","webpack://mermaid/./src/themes sync ^\\.\\/.*\\/index\\.scss$","webpack://mermaid/./src/themes/dark/index.scss?55a3","webpack://mermaid/./src/themes/default/index.scss?1e22","webpack://mermaid/./src/themes/forest/index.scss?c8cd","webpack://mermaid/./src/themes/neutral/index.scss?96e0","webpack://mermaid/./src/utils.js"],"names":["config","setConf","cnf","lvl1Keys","Object","keys","i","length","lvl2Keys","j","setConfig","conf","getConfig","configApi","rect","parent","node","log","trace","id","shapeSvg","insert","attr","label","text","appendChild","createLabel","labelText","labelStyle","undefined","bbox","getBBox","flowchart","htmlLabels","div","children","dv","select","getBoundingClientRect","width","height","padding","halfPadding","JSON","stringify","rx","ry","x","y","rectBox","intersect","point","intersectRect","noteGroup","roundedWithTitle","classes","innerRect","append","divider","shapes","clusterElems","insertCluster","elem","shape","getClusterTitleWidth","removeChild","clear","positionCluster","info","el","applyStyle","dom","styleFn","addHtmlLabel","fo","document","createElementNS","labelClass","isNode","html","style","_vertexText","isTitle","vertexText","replace","logger","s","vertexNode","svgLabel","setAttribute","rows","split","Array","isArray","tspan","setAttributeNS","textContent","trim","edgeLabels","insertEdgeLabel","edge","labelElement","edgeLabel","positionEdgeLabel","outsideNode","dx","Math","abs","dy","w","h","intersection","outsidePoint","insidePoint","r","q","Q","R","insertEdge","e","clusterDb","diagramType","graph","points","tail","v","head","slice","unshift","push","toCluster","lastPointOutside","isInside","forEach","insterection","fromCluster","updatedPoints","lineData","filter","p","Number","isNaN","lineFunction","line","d","curve","curveBasis","svgPath","url","state","arrowMarkerAbsolute","window","location","protocol","host","pathname","search","arrowType","recursiveRender","_elem","diagramtype","parentCluster","graphlib","json","write","dir","rankdir","warn","nodes","edges","clusters","edgePaths","data","parse","clusterData","setNode","setParent","clusterNode","newEl","updateNodeBounds","setNodeElem","findNonClusterChild","insertNode","name","dagre","layout","positionNode","render","markers","insertMarkers","clearNodes","clearEdges","clearClusters","clearGraphlib","adjustClustersAndEdges","circle","ellipse","polygon","intersectCircle","intersectEllipse","cx","cy","px","py","det","sqrt","intersectLine","p1","p2","q1","q2","a1","a2","b1","b2","c1","c2","r1","r2","r3","r4","denom","offset","num","sameSign","module","exports","intersectNode","console","intersectPolygon","polyPoints","x1","y1","intersections","minX","POSITIVE_INFINITY","minY","entry","min","left","top","sort","pdx","pdy","distp","qdx","qdy","distq","sx","sy","markerArray","type","markerName","extension","composition","aggregation","dependency","cross","barb","decendants","parents","isDecendant","ancenstorId","debug","indexOf","edgeInCluster","clusterId","copy","newGraph","rootId","setEdge","error","removeNode","extractDecendants","res","concat","validate","_id","getAnchorId","externalConnections","depth","d1","d2","extractor","removeEdge","hasChildren","graphSettings","clusterGraph","Graph","multigraph","compound","setGraph","nodesep","ranksep","marginx","marginy","setDefaultEdgeLabel","question","labelHelper","questionElem","insertPolygonShape","hexagon","f","m","hex","rect_left_inv_arrow","lean_right","lean_left","trapezoid","inv_trapezoid","rect_right_inv_arrow","cylinder","pos","rectWithTitle","innerLine","text2","flat","textRows","titleBox","descr","join","stadium","subroutine","start","forkJoin","end","innerCircle","note","fork","nodeElems","_classes","element","map","MERMAID_DOM_ID_PREFIX","relations","classCounter","funs","splitClassNameAndType","genericType","className","addClass","classId","cssClasses","methods","members","annotations","domId","lookUpDomId","classKeys","setupToolTips","getClass","getClasses","getRelations","addRelation","relation","id1","id2","addAnnotation","annotation","validatedClassName","addMember","member","theClass","memberString","startsWith","endsWith","substring","addMembers","reverse","cleanupLabel","substr","setCssClass","ids","match","setLink","linkStr","tooltip","link","utils","formatUrl","common","sanitizeText","setClickEvent","functionName","setClickFunc","elemId","securityLevel","querySelector","addEventListener","bindFunctions","fun","lineType","LINE","DOTTED_LINE","relationType","AGGREGATION","EXTENSION","COMPOSITION","DEPENDENCY","tooltipElem","_groups","svg","selectAll","on","title","transition","duration","right","body","scrollTop","classed","parser","yy","classDb","idCache","dividerMargin","textHeight","getGraphId","key","draw","diagram","g","isMultiGraph","classDef","svgDraw","drawClass","drawEdge","svgBounds","useMaxWidth","vBox","edgeCount","path","getRelationType","type1","type2","l","labelPosition","calcLabelPosition","p1_card_x","p1_card_y","p2_card_x","p2_card_y","cardinality_1_point","calcCardinalityPosition","cardinality_2_point","bounds","relationTitle1","relationTitle2","cssClassStr","classInfo","isFirst","titleText2","classTitleString","classTitle","titleHeight","membersLine","addTspan","membersBox","methodsLine","method","classBox","rectWidth","childNodes","parseMember","fieldRegEx","methodRegEx","fieldMatch","methodMatch","buildFieldDisplay","buildMethodDisplay","buildLegacyDisplay","parsedText","visibility","fieldType","parseGenericTypes","fieldName","displayText","cssStyle","methodName","parameters","classifier","returnType","parseClassifier","memberText","methodStart","methodEnd","textEl","txt","tSpan","cleanedText","getRows","str","breakToPlaceholder","placeholderToBreak","lineBreakRegex","entities","relationships","Cardinality","ZERO_OR_ONE","ZERO_OR_MORE","ONE_OR_MORE","ONLY_ONE","Identification","NON_IDENTIFYING","IDENTIFYING","addEntity","getEntities","addRelationship","entA","rolA","entB","rSpec","rel","entityA","roleA","entityB","relSpec","getRelationships","setTitle","getTitle","ERMarkers","ONLY_ONE_START","ONLY_ONE_END","ZERO_OR_ONE_START","ZERO_OR_ONE_END","ONE_OR_MORE_START","ONE_OR_MORE_END","ZERO_OR_MORE_START","ZERO_OR_MORE_END","marker","stroke","drawEntities","svgNode","firstOne","groupNode","textId","textNode","fontFamily","fontSize","textBBox","entityWidth","max","minEntityWidth","entityPadding","entityHeight","minEntityHeight","rectNode","fill","rectBBox","adjustEntities","getEdgeName","addRelationships","relationship","relCnt","drawRelationshipFromLayout","relType","erDb","cardA","erMarkers","cardB","len","getTotalLength","labelPoint","getPointAtLength","labelId","labelNode","labelBBox","erParser","err","directed","layoutDirection","edgesep","firstEntity","diagramPadding","dagreD3","addToRender","addToRenderV2","addShape","vertices","subGraphs","subGraphLookup","tooltips","subCount","firstGraphFlag","direction","addVertex","styles","addSingleLink","_start","_end","linktext","addLink","updateLinkInterpolate","positions","interp","defaultInterpolate","interpolate","updateLink","defaultStyle","isSubstringInArray","textStyles","newStyle1","newStyle2","setDirection","setClass","setTooltip","setClickFun","getTooltip","getDirection","getVertices","getEdges","addSubGraph","list","_title","uniq","a","prims","boolean","number","string","objs","item","hasOwnProperty","nodeList","apply","subGraph","getPosForId","secCount","posCrossRef","indexNodes2","result","count","posCount","childPos","getDepthFirstPos","indexNodes","getSubGraphs","firstGraph","destructStartLink","_str","destructEndLink","destructLink","_startStr","startInfo","lex","addVertices","vert","svgId","vertex","classStr","getStylesFromArray","parentNode","radious","_shape","class","addEdges","cnt","defaultLabelStyle","defaultStyles","edgeData","arrowhead","interpolateToCurve","curveLinear","arrowheadStyle","labelpos","labelType","flowDb","flow","nodeSpacing","rankSpacing","subG","_label","labels","querySelectorAll","k","dim","insertBefore","firstChild","linkNode","Render","flowChartShapes","arrows","none","normal","util","clusterRects","clusterEl","xPos","baseVal","value","yPos","cluster","te","classList","add","dateFormat","axisFormat","todayMarker","excludes","sections","tasks","currentSection","tags","inclusiveEndDates","taskCnt","lastTask","lastTaskID","rawTasks","setAxisFormat","getAxisFormat","setTodayMarker","getTodayMarker","setDateFormat","enableInclusiveEndDates","endDatesAreInclusive","getDateFormat","setExcludes","toLowerCase","getExcludes","addSection","getSections","getTasks","allItemsPricessed","compileTasks","maxDepth","iterationCount","isInvalidDate","date","isoWeekday","format","checkTaskDates","task","manualEndTime","startTime","moment","endTime","renderEndTime","fixTaskDates","toDate","invalid","getStartDate","prevTime","re","afterStatement","exec","latestEndingTask","findTaskById","dt","Date","setHours","mDate","isValid","durationToDate","durationStatement","relativeTime","getEndDate","inclusive","parseId","idStr","compileData","prevTask","dataStr","ds","getTaskTags","endTimeData","parseData","prevTaskId","startData","taskDb","addTask","rawTask","section","processed","raw","taskInfo","active","done","crit","milestone","addTaskOrg","newTask","description","compileTask","allProcessed","_linkStr","sanitizeUrl","pushFun","open","functionArgs","argList","charAt","callbackFunction","matchFound","t","pattern","regex","RegExp","shift","ganttDb","titleTopMargin","barHeight","barGap","topPadding","rightPadding","leftPadding","gridLineStartPadding","getElementById","parentElement","offsetWidth","useWidth","taskArray","timeScale","scaleTime","domain","rangeRound","categories","catsUnfiltered","checkUnique","makeGant","pageWidth","pageHeight","gap","colorScale","scaleLinear","range","interpolateHcl","makeGrid","drawRects","vertLabels","drawToday","theArray","theGap","theTopPad","theSidePad","theBarHeight","theColorScale","enter","numberSectionStyles","rectangles","toString","secNum","taskClass","startX","endX","textWidth","taskType","xAxis","axisBottom","tickSize","tickFormat","timeFormat","call","numOccurances","prevGap","getCount","todayG","today","todayLine","arr","hash","getCounts","obj","word","commits","branches","master","curBranch","seq","makeid","characters","charactersLength","floor","random","getId","isfastforwardable","currentCommit","otherCommit","isReachableFrom","currentSeq","otherSeq","uniqBy","fn","recordMap","create","reduce","out","options","setOptions","rawOptString","message","getOptions","commit","msg","branch","merge","otherBranch","checkout","reset","commitRef","ref","parentCount","parseInt","upsert","newval","index","splice","prettyPrintCommitHistory","commitArr","c","newCommit","nextCommit","prettyPrint","getCommitsArray","getBranchesAsObjArray","branchArr","getBranches","getCommits","o","b","getCurrentBranch","getHead","allCommitsDict","branchNum","nodeFillColor","nodeStrokeWidth","nodeStrokeColor","lineStrokeWidth","branchOffset","lineColor","leftMargin","branchColors","nodeRadius","nodeLabel","apiConfig","svgCreateDefs","svgDrawLine","colorIdx","color","lineGen","round","getElementCoords","coords","ctm","getCTM","xn","yn","svgDrawLineForCommits","fromId","toId","fromBbox","toBbox","lineStart","lineEnd","cloneNode","selector","renderCommitHistory","commitid","numCommits","size","branchName","renderLines","branchColor","lineDrawn","ver","gitGraphParser","db","assign","setMessage","getMessage","setInfo","inf","getInfo","infoParser","cleanupValue","pieParser","pieData","margin","legendRectSize","legendSpacing","radius","sum","scaleOrdinal","schemeSet2","pie","d3pie","dataReady","entries","arcGenerator","arc","innerRadius","outerRadius","toFixed","centroid","legend","horz","prevActor","actors","messages","notes","titleWrapped","sequenceNumbersEnabled","wrapEnabled","configUpdated","currentDirective","parseDirective","statement","context","args","handleDirective","directive","mermaidAPI","initialize","updateConfig","addActor","old","wrap","autoWrap","nextActor","activationCount","part","LINETYPE","ACTIVE_START","from","actor","ACTIVE_END","addMessage","idFrom","idTo","answer","to","addSignal","messageType","Error","token","loc","first_line","last_line","first_column","last_column","expected","getMessages","getActors","getActor","getActorKeys","getTitleWrapped","enableSequenceNumbers","showSequenceNumbers","enableWrap","disableWrap","parseMessage","SOLID","DOTTED","NOTE","SOLID_CROSS","DOTTED_CROSS","SOLID_OPEN","DOTTED_OPEN","LOOP_START","LOOP_END","ALT_START","ALT_ELSE","ALT_END","OPT_START","OPT_END","PAR_START","PAR_AND","PAR_END","RECT_START","RECT_END","ARROWTYPE","FILLED","OPEN","PLACEMENT","LEFTOF","RIGHTOF","OVER","addNote","placement","titleWrap","hasConfigChange","param","signalType","loopText","optText","altText","parText","sequenceDb","diagramMarginX","diagramMarginY","actorMargin","actorFontSize","actorFontFamily","actorFontWeight","noteFontSize","noteFontFamily","noteFontWeight","noteAlign","messageFontSize","messageFontFamily","messageFontWeight","boxMargin","boxTextMargin","noteMargin","messageMargin","messageAlign","mirrorActors","bottomMarginAdj","activationWidth","textPlacement","wrapPadding","startx","stopx","starty","stopy","verticalPos","sequenceItems","activations","init","updateVal","val","updateBounds","_self","updateFn","updateItemBounds","n","_startx","_stopx","_starty","_stopy","newActivation","actorRect","stackedSize","actorActivations","anchored","anchorElement","endActivation","lastActorActivationIdx","activation","lastIndexOf","newLoop","endLoop","pop","addSectionToLoop","loop","sectionTitles","getVerticalPos","bumpVerticalPos","bump","getBounds","wrapLabel","maxWidth","joinWith","test","words","completedLines","nextLine","wordLength","calculateTextWidth","nextLineLength","breakString","hyphenatedStrings","remainingWord","Boolean","currentWord","isLastWord","hyphenCharacter","lines","currentLine","character","lineWidth","currentCharacter","isLastLine","hyphenatedNextLine","_drawLongText","prevTextHeight","alignmentToAnchor","center","middle","textObj","getTextObj","alignment","textElem","drawText","drawNote","forceWidth","getNoteRect","rectElem","drawRect","drawMessage","sequenceIndex","txtCenter","textElems","counterBreaklines","breaklineOffset","breaklines","breakline","offsetLineCounter","totalOffset","textWidths","rightAngles","drawActors","actorKeys","prevWidth","prevMargin","maxActorHeight","calculateActorWidth","calculateTextHeight","drawActor","fontWeight","actorFlowVerticaBounds","actorObj","acc","elementHeight","elementWidth","lineHeightFactor","fontFamilies","remove","maxMessageWidthPerActor","getMaxMessageWidthPerActor","calculateActorMargins","insertArrowHead","insertArrowCrossHead","insertSequenceNumber","activeEnd","activationData","drawActivation","loopData","noteWidth","shouldWrap","drawLoop","rectData","drawBackgroundRect","fromBounds","toBounds","fromIdx","toIdx","allBounds","includes","box","actorLines","extraVertForTitle","isNote","isMessage","messageWidth","actorToMessageWidth","maxHeight","actorKey","act","actorWidth","textData","nText","anchor","span","textMargin","drawLabel","txtObject","genPoints","cut","labelMargin","actorCnt","_drawTextCandidateFunc","drawLoopLine","minSize","idx","lower","defs","byText","content","textAttrs","_setTextAttrs","byTspan","byFo","toText","fromTextAttrsDict","set","get","drawStartState","sizeUnit","drawDivider","drawSimpleState","stateDef","drawDescrState","descriptions","isSecond","descrLine","descrBox","addTitleAndBox","altBkg","pad","dblPad","orgBox","orgWidth","orgX","titleShift","titleWidth","graphBox","doc","lineY","drawEndState","miniPadding","drawForkJoinState","forkWidth","forkHeight","parentId","tmp","_text","tHeight","textBounds","drawState","stateInfo","stateBox","stateDb","titleRows","boundstmp","boxHeight","heightAdj","clone","rootDoc","setRootDoc","getRootDoc","docTranslator","first","stmt","state1","state2","currentDoc","newNode","generateId","docNode","getRootDocV2","extract","_doc","addState","newDoc","states","documents","root","currentDocument","startCnt","endCnt","addDescription","des","getState","getStates","logDocuments","_id1","_id2","_descr","theState","dividerCnt","getDividerId","trimColon","nodeDb","setupNode","altFlag","nodeData","noteData","groupData","position","setupDoc","startId","endId","transformationLog","renderDoc","getLabelWidth","fontSizeFactor","edgeFreeDoc","ranker","edgeLengthFactor","nodeSep","sub","boxBounds","compositTitleSize","noteDef","nodeCount","labelHeight","svgElem","dividers","pWidth","pShift","getAttribute","allItemsProcessed","updateActors","tempActors","people","unique","Set","taskData","pieces","score","peeps","peopleList","journeyDb","taskMargin","taskFontSize","taskFontFamily","actorColours","sectionFills","sectionColours","drawActorLegend","person","colour","circleData","drawCircle","labelData","LEFT_MARGIN","initGraphics","actorNames","actorPos","actorName","drawTasks","fills","textColours","lastSection","sectionVHeight","taskPos","sectionNumber","drawSection","taskActors","drawTask","drawFace","faceData","circleElement","face","smile","d3arc","startAngle","PI","endAngle","sad","ambivalent","taskCount","graphics","LEVELS","fatal","setLogLevel","level","bind","time","arguments","mermaid","sequenceConfig","callback","Node","startOnLoad","ganttConfig","gantt","now","innerHTML","decode","svgCode","parseError","contentLoaded","themes","themeName","require","theme","themeCSS","multilineDirectives","maxTextSize","logLevel","sequence","journey","git","er","graphInit","detectInit","reinitialize","graphType","detectType","gitGraphAst","flowParser","sequenceParser","ganttParser","classParser","stateParser","infoDb","pieDb","journeyParser","encodeEntities","innerTxt","isInt","decodeEntities","_txt","cb","container","existingSvg","altFontFamily","flowRenderer","style1","createElement","scope","style2","cs","getComputedStyle","font","gitGraphRenderer","flowRendererV2","sequenceDiagram","sequenceRenderer","ganttRenderer","classRenderer","stateRenderer","stateRendererV2","infoRenderer","pkg","version","pieRenderer","erRenderer","journeyRenderer","errorRenderer","_config","d3CurveTypes","curveBasisClosed","curveBasisOpen","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","fullDirective","directiveWithoutOpen","commentWithoutDirectives","source","anyComment","matches","defaultCurve","curveName","toUpperCase","distance","pow","traverseEdge","prevPoint","totalDistance","distanceToLabel","remainingDistance","vectorDistance","distanceRatio","isRelationTypePresent","initialPosition","distanceToCardinalityPoint","angle","atan2","cardinalityPosition","sin","cos"],"mappings":"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AACA;;AAEA;;AAEA,mBAAmB,iBAAiB;AACpC;;AAEA;AACA;AACA;AACA;;AAEA,eAAe,oBAAoB;AACnC,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,CAAC;;;AAGD;AACA;AACA;AACA,qDAAqD,cAAc;AACnE;AACA,C;;;;;;;;;;;;ACpFA;AAAA;AAAA;AAAA;;AAEO;AACA;;;;;;;;;;;;;ACHP;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AAAA;AAAoC;AACF;;AAElC,sBAAsB,yDAAQ,CAAC,kDAAS;AACjC;AACA;AACQ,0EAAW,EAAC;;;;;;;;;;;;;ACN3B;AAAA;AAAoC;;AAErB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,WAAW,0DAAS;AACpB;AACA;;;;;;;;;;;;;AChCA;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAA6B;;AAEd;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,2CAAI;;AAEnC,kBAAkB,SAAS;AAC3B,sCAAsC,SAAS;AAC/C;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACpBD;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAkC;;AAEnB;AACf,UAAU,yDAAQ;AAClB;AACA,CAAC;;;;;;;;;;;;;ACLD;AAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACpCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8B;AACA;AACI;AACJ;AACI;AACN;AACK;AACS;;AAE3B;AACf,cAAc,iDAAQ;AACtB,eAAe,+CAAM;AACrB,kBAAkB,0DAAO;;AAEzB;AACA;AACA;AACA;AACA;;AAEA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,uDAAQ;AACnB,WAAW,sDAAK,kCAAkC;AAClD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;AACA,aAAa,uDAAM;AACnB;AACA;;AAEA;AACA;;AAEA;AACA,qEAAqE,yDAAQ;AAC7E;;AAEA;AACA,sEAAsE,yDAAQ;AAC9E;;AAEA;AACA,4FAA4F,yDAAQ,CAAC,4CAAK,YAAY,yDAAQ;AAC9H;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC1ED;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoE;AACnB;AACF;AACN;AACU;AACF;AACN;AACM;AACiC;AACtB;AACI;AAC3B;AACE;AACI;AACF;AACJ;AACI;AACI;AACE;AACN;AACF;AACM;AACR;AAC6B;AACjB;AACF;AACV;;;;;;;;;;;;;AC1BrC;AAAe;AACf;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACjCD;AAAA;AAA8B;;AAEf;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACxBD;AAAA;AAAA;AAAA;AAAoC;AACN;AACI;;AAEnB;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;AACA;;AAEA,SAAS,yDAAQ,cAAc,kDAAS;AACxC,CAAC;;;;;;;;;;;;;AC3BD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACpBD;AAAe;AACf;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACjCD;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA,CAAC;;AAEM;AACP;AACA;;;;;;;;;;;;;ACTA;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAA8B;;AAEf;AACf,iCAAiC,+CAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACbD;AAAe;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAA;AAAoC;;AAErB;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kDAAS;;AAE1C;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACnBD;AAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACbD;AAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACnBD;AAAA;AAAA;AAAA;AAAA;AAA6B;AACQ;AACN;AACI;;AAEpB;AACf,WAAW,0CAAG,cAAc,+CAAM,OAAO,kDAAS;AAClD,uCAAuC,yDAAQ,iBAAiB,yDAAQ;AACxE,CAAC;;;;;;;;;;;;;ACRD;AAAA;AAAqC;;AAEtB;AACf,wCAAwC,0DAAS;AACjD,CAAC;;;;;;;;;;;;;ACJD;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAEM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClDA;AAAA;AAAwB;;AAET;AACf;AACA,uBAAuB,oDAAG,2CAA2C,SAAS;AAC9E,0DAA0D,SAAS;AACnE;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;;;;;;;;;;;;ACdA;AAAA;AAA8B;;AAEf;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AChCD;AAAA;AAAoC;;AAErB;AACf,SAAS,0DAAS;AAClB,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAO;;;;;;;;;;;;;ACAP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8B;AACI;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yGAAyG,iDAAQ;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,kFAAkF,EAAE;;AAE9H;AACA;AACA,0CAA0C,gCAAgC,6DAA6D,EAAE;AACzI;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,+BAA+B,EAAE;;AAEzE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,wBAAwB,EAAE;AACpD;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,4CAAK;AAChC;;AAEA;AACA,gEAAgE,4CAAK;AACrE;;AAEA;AACA,+DAA+D,4CAAK;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;AC7KA;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKgB;;;;;;;;;;;;;ACLhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACW;AACL;AAC2B;AAC9B;AACH;AACD;AACgB;;AAEpD,iBAAiB,aAAa;AAC9B,kBAAkB,cAAc;AAChC,mBAAmB,eAAe;AAClC,mBAAmB;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,0DAAK,SAAS,kDAAK;AAC9B;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,gEAAgE,EAAE;AAC3F,wBAAwB,mCAAmC;AAC3D;;AAEA;AACA;AACA;AACA,yBAAyB,gEAAgE,EAAE;AAC3F,wBAAwB,mCAAmC;AAC3D;;AAEA;AACA;AACA;AACA,uBAAuB,wCAAwC,EAAE;AACjE,wBAAwB,WAAW;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEA;AACA;AACA,UAAU,kDAAK,aAAa,kDAAK;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEe;AACf;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,kBAAkB,4DAAQ;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,2DAAM;AAChB;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,eAAe,EAAE;;AAEvD;;AAEA;AACA,oCAAoC,mCAAmC,EAAE;AACzE,qCAAqC,wBAAwB,EAAE;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,gDAAgD,EAAE;AAC3F,uDAAuD,gCAAgC,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kEAAW;;AAE/B;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,+DAAS;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,2DAAM;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,gHAAgH,EAAE;AACpJ,kCAAkC,gGAAgG,EAAE;AACpI,sCAAsC,uGAAuG,EAAE;AAC/I,uCAAuC,uGAAuG,EAAE;AAChJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,MAAM,gEAAW,KAAK,iDAAU;AAChC;AACA;;AAEA;AACA,wBAAwB,kDAAK;AAC7B;;AAEA;AACA,eAAe,kDAAK;AACpB,wBAAwB,kDAAK,2EAA2E,kDAAK;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kDAAK;AAClD;AACA;AACA,kBAAkB,kDAAK,mBAAmB,kDAAK,iCAAiC,kDAAK;AACrF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,2DAAM;AACtB;;AAEA;AACA;;AAEA,QAAQ,kDAAK;AACb;AACA;AACA,KAAK;AACL,iBAAiB,2DAAM,CAAC,kDAAK;AAC7B;AACA;AACA;AACA;AACA;;AAEA,MAAM,2DAAW,CAAC,kDAAK;AACvB;;AAEA,IAAI,iEAAa;AACjB,IAAI,+DAAS;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAAO;AACb;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAuD;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,iEAAa;AACnB,UAAU,kDAAK;AACf,YAAY,kDAAK;AACjB;AACA,6CAA6C,oBAAoB,EAAE,OAAO;AAC1E,OAAO;AACP,QAAQ,0DAAU,CAAC,kDAAK;AACxB;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;;AAEA;AACA,cAAc,kDAAK;AACnB,kBAAkB;AAClB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA,wCAAwC;AACxC,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAAO;AACb;;AAEA;AACA,cAAc,kDAAK;AACnB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,gBAAgB,kDAAK;AACrB;AACA;AACA;AACA,aAAa;AACb,qCAAqC;AACrC,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAAO;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AA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,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,yEAAyE,8CAA8C;AACvH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+DAA+D,qBAAqB,EAAE;;AAEtF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;AC1EnB;AAAA;AAAwB;;AAET;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oDAAG;AACzB;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,aAAa,kCAAkC,EAAE,EAAE;AACjG,wDAAwD,8BAA8B,EAAE;AACxF;;AAEA;AACA,6BAA6B,iDAAiD,EAAE;AAChF,0BAA0B,2CAA2C,EAAE;AACvE,8BAA8B,uDAAuD,EAAE;AACvF,sBAAsB,cAAc,aAAa,EAAE;AACnD,+BAA+B,mCAAmC,aAAa,EAAE;AACjF,iCAAiC,oBAAoB,aAAa,EAAE;AACpE,yBAAyB,YAAY,aAAa;AAClD;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS,oDAAG;AACZ;;AAEA;AACA;AACA;;;;;;;;;;;;;ACxEA;AAAA;AAA6C;;AAE7C;;AAEA,YAAY,4CAAG;;AAEf;AACA;AACA;AACA;AACA;AACA,SAAS,2CAAM;AACf;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0DAA0D,gBAAgB,EAAE;;AAE5E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;ACtCnB;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;;AAEpC;;AAEA;AACA;;AAEP;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,0DAAM,WAAW,yDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAM,WAAW,yDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClXA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACyB;AACzB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,6CAAG,OAAO,4DAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gDAAO;AACzC;AACA;;AAEe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,0DAAM,uBAAuB,yDAAM,CAAC,+CAAK;AACzC;AACA,oBAAoB,kDAAQ,YAAY,kDAAQ;AAChD;AACA,GAAG;AACH;AACA,oBAAoB,gDAAM,YAAY,gDAAM;AAC5C;AACA,GAAG;AACH;AACA,iDAAiD,gDAAO;AACxD;AACA;AACA;AACA;AACA,eAAe,6CAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC5DD;AAAA;AAAe;AACf;AACA;AACA,CAAC;;AAEM;AACP;AACA;AACA;AACA;;;;;;;;;;;;;ACTA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsD;AACE;AACJ;;;;;;;;;;;;;ACFpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACO;AACP;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,6CAAG,OAAO,4DAAU;AACzC;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,0DAAM,WAAW,yDAAM,CAAC,+CAAK;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6CAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC,gDAAO;AACxC;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,gDAAO;AACvB;AACA;;AAEA,0DAAM,WAAW,yDAAM,CAAC,+CAAK;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC1HD;AAAA;AAAA;AAAO;AACA;;;;;;;;;;;;;ACDP;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;;AAEO;;;;;;;;;;;;;ACFP;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1CA;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAe;AACf;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmE;AACrC;AACM;AACV;AACQ;AACA;AACR;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA,kBAAkB,yDAAgB;AAClC;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,uDAAM;AACzB,WAAW,yDAAQ;AACnB,WAAW,sDAAK;AAChB,KAAK;AACL,2BAA2B,kDAAS;AACpC;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,qDAAI;AACd;AACA,KAAK;;AAEL;AACA,mDAAmD,OAAO;AAC1D,YAAY,yDAAQ;AACpB;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,+DAA+D;AAC/D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,+DAA+D;AAC/D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP,iEAAiE;AACjE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAA4F,yDAAQ,CAAC,4CAAK,YAAY,yDAAQ;AAC9H;;AAEA;AACA,2DAA2D,6CAAI;AAC/D;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC1MD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AAChB;AACM;AACF;AACA;;AAElC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yDAAQ;;AAE1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,IAAI,mDAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,mDAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,mDAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,mDAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,mDAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,mDAAK,EAAE,mCAAmC,GAAG,mCAAmC;;AAEpF;;AAEA;AACA;AACA,iBAAiB,oDAAG;AACpB,WAAW,yDAAQ;AACnB,WAAW,sDAAK;AAChB;AACA;;AAEA,WAAW,yDAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C;AACA;AACA;;AAEA;AACA;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DAAQ;AACzB;AACA;;AAEA,6CAA6C,yDAAQ;AACrD;AACA;;AAEA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wEAAwE,yDAAQ;AAChF;;AAEA;AACA,sEAAsE,yDAAQ;AAC9E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACxDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACH;AACH;;AAExB;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yDAAG;AAClB,gBAAgB,sDAAK;AACrB,cAAc,4DAAQ;;AAEtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,mBAAmB,gBAAgB;AACnC;;AAEA;AACA;AACA,OAAO;;AAEP,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACtJD;AAAA;AAAkC;;AAEnB;AACf,iBAAiB,yDAAQ;AACzB;AACA;AA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AAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,oDAAG;AACpB,GAAG;AACH;AACA;AACA,EAAE,mDAAU;AACZ;AACA;;AAEA;AACA,EAAE,mDAAU;AACZ;;AAEA;AACA;AACA,EAAE,mDAAU;AACZ,MAAM,oDAAG,aAAa,gDAAO;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;;AAEA;AACA;AACA,EAAE,0DAAM;;AAER;AACA;AACA;;AAEA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,2EAA2E,QAAQ;AACnF;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AClLD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsD;;AAE/C;AACP,UAAU,sDAAK,8BAA8B,qDAAI;AACjD;;AAEO;AACP,0DAA0D,oDAAG;AAC7D,mBAAmB,oDAAG,mBAAmB,oDAAG,UAAU,oDAAG;AACzD;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACO;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACO;AACP,UAAU,qDAAI;AACd;AACA;;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAA2F;AAC9D;AACI;;AAEjC;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA,UAAU,gDAAI;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,gDAAO,SAAS,gDAAO;AACnC,eAAe,oDAAG;AAClB,kCAAkC,oDAAG,mBAAmB,oDAAG,UAAU,oDAAG;AACxE;;AAEA;AACA;AACA;AACA;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AY,oDAAG,oBAAoB,oDAAG,UAAU,oDAAG;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,+CAAM;AAC5B,kBAAkB,2CAAE;AACpB;AACA,iBAAiB,2CAAE;AACnB,iBAAiB,2CAAE;AACnB,iBAAiB,2CAAE;AACnB;AACA,kBAAkB,2CAAE;AACpB,kBAAkB,2CAAE;AACpB,kBAAkB,2CAAE;AACpB,GAAG,UAAU,oDAAG,oBAAoB,gDAAO;AAC3C,mCAAmC,2CAAE,IAAI,2CAAE;AAC3C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;;AC3FA;AAAA;AAA8B;;AAEf;AACf;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,aAAa,gDAAI;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwH;AAC9E;AACsB;AACtB;AACZ;;AAEf;AACf,WAAW,oDAAG;AACd,kBAAkB,gDAAO;AACzB;AACA,sBAAsB,oDAAG,OAAO,gDAAO,CAAC;;AAExC;AACA,IAAI,+DAAY;AAChB;;AAEA;AACA,WAAW,oDAAG,WAAW,oDAAG;AAC5B;;AAEA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,2CAAE,IAAI,2CAAE;AACxD;AACA;AACA;AACA;AACA;AACA,yBAAyB,8DAAU,oBAAoB,8DAAU;AACjE,yBAAyB,gDAAO;AAChC,yBAAyB,gDAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8DAAU;AACxC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,+DAAS;AACtB,aAAa,+DAAS;;AAEtB;AACA;AACA;AACA,aAAa,oEAAc;AAC3B,eAAe,kEAAY;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB,oEAAc;AAC9B,YAAY,oEAAc;AAC1B,YAAY,oEAAc;AAC1B,IAAI,yEAAmB;;AAEvB;AACA;AACA,YAAY,kEAAY;AACxB,aAAa,kEAAY;AACzB,2BAA2B,kEAAY;;AAEvC;;AAEA,YAAY,qDAAI;AAChB,YAAY,oEAAc;AAC1B,IAAI,yEAAmB;AACvB,QAAQ,+DAAS;;AAEjB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gBAAgB,oDAAG,SAAS,2CAAE,IAAI,gDAAO;AACzC,oCAAoC,gDAAO;;AAE3C;;AAEA;AACA;AACA;AACA,sCAAsC,oDAAG,mBAAmB,gDAAO;AACnE;AACA,kBAAkB,2CAAE;AACpB,eAAe,oEAAc;AAC7B,MAAM,yEAAmB;AACzB,iBAAiB,+DAAS;AAC1B;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,2CAAE;AACrC;AACA,+BAA+B;AAC/B,mCAAmC;AACnC,4BAA4B;AAC5B,gCAAgC;AAChC;AACA;;AAEA,SAAS,yDAAI,gEAAgE,2CAAE,WAAW,2CAAE;AAC5F,CAAC;;;;;;;;;;;;;ACrLD;AAAA;AAA2C;;AAE5B;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+DAA+D,6DAAa;AAC5E,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACnBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACA;AACM;AACS;AACrB;;AAEhB;AACf;AACA;AACA,qBAAqB,0DAAU;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,mBAAmB,sDAAK;AACxB,0BAA0B,mEAAe;AACzC;AACA;AACA,UAAU,0DAAU;AACpB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,+CAAM,GAAG,gDAAO,GAAG,+CAAM;AAC7D,oCAAoC,+CAAM,GAAG,gDAAO,GAAG,+CAAM;AAC7D;;;;;;;;;;;;;AClIA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC1DD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACH;AACJ;AACI;AACN;;AAE/B;;AAEA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,WAAW,oDAAG,cAAc,gDAAO;AACnC,UAAU,oDAAG,cAAc,gDAAO;AAClC,UAAU,oDAAG,cAAc,gDAAO;AAClC,gCAAgC;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,0DAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,yCAAyC,OAAO;AAChD,kHAAkH,OAAO;AACzH;AACA,yBAAyB,yEAAyE;AAClG,gBAAgB,0EAA0E;AAC1F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC,sDAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0DAAU;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,cAAc,wDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;ACvKA;AAAA;AAA0C;;AAE1C;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,yBAAyB;AACzB;;AAEA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,8DAAU;AAClB;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;;AAEA,8BAA8B,OAAO;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,qCAAqC,QAAQ;AAC7C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpGA;AAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACXD;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAAgE;AACd;AACN;;AAE5C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,4DAAQ;AACjB;;AAEA;AACA;AACA,yCAAyC,OAAO;AAChD,SAAS,4DAAQ;AACjB;AACA;AACA,WAAW,4DAAQ;AACnB;AACA;AACA;AACA;AACA,6DAA6D,iDAAQ;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,mEAAe;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB,gDAAO,aAAa,gDAAO;AAChD;;AAEe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AChGD;AAAA;AAAiC;;AAEjC;AACA,cAAc;;AAEC;AACf;AACA;AACA,SAAS,0DAAM;AACf,CAAC;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAA+B;AACc;;AAE7C;AACA,UAAU,sDAAK,UAAU,gDAAO;AAChC,sBAAsB,2BAA2B,eAAe,EAAE,EAAE;AACpE;;AAEA;AACA,UAAU,sDAAK,UAAU,gDAAO;AAChC,sBAAsB,2BAA2B,eAAe,EAAE,EAAE;AACpE;;AAEe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA,WAAW,sDAAK,CAAC,q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CA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,qDAAI;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,qDAAI;;AAEd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe,6EAAc,EAAC;;;;;;;;;;;;;ACnG9B;AAAA;AAAA;AAAA;AAA+B;AACD;;AAEf;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4CAAG;AACpD;AACA;AACA;AACA,GAAG;AACH,UAAU,gDAAI;AACd;;;;;;;;;;;;;AC5CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACJ;AACD;AACI;AACI;AACF;AACA;AACF;;AAEtB;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,0DAAM;AACZ;AACA;AACA;;AAEA;AACA,IAAI,0DAAM,0BAA0B,gDAAQ;AAC5C,WAAW,gDAAQ;AACnB;;AAEA;AACA,IAAI,0DAAM,0BAA0B,mDAAW;AAC/C,WAAW,mDAAW;AACtB;;AAEA;AACA,IAAI,0DAAM,0BAA0B,kDAAU;AAC9C,WAAW,kDAAU;AACrB;;AAEA;AACA,IAAI,0DAAM,0BAA0B,oDAAY;AAChD,WAAW,oDAAY;AACvB;;AAEA;AACA,kFAAkF,oDAAQ;AAC1F;;AAEA;AACA;AACA,qDAAqD,kDAAU,QAAQ,mDAAW;AAClF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC5DD;AAAA;AAAA;AAAA;AAAgC;AACA;AACF;;AAE9B,gBAAgB,yDAAK;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,gDAAI;AACb;AACA;AACA,GAAG;AACH;AACA;AACA,yBAAyB,gDAAI;AAC7B,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,qDAAI;AACpB;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AC5C5B;AAAA;AAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1DA;AAAA;AAAuC;;AAExB;AACf,SAAS,oDAAG,gBAAgB,gDAAO,IAAI,oDAAG,gBAAgB,gDAAO;AACjE,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAA+B;AACqD;AACY;;AAEhG,UAAU,yDAAK;;AAEf;AACA,MAAM,oDAAG,cAAc,2CAAE;AACzB;AACA;AACA,WAAW,qDAAI,eAAe,oDAAG,aAAa,2CAAE,IAAI,4CAAG,GAAG,2CAAE;AAC5D;;AAEe;AACf;AACA;AACA,eAAe,oDAAG;AAClB,gBAAgB,oDAAG,WAAW,oDAAG;AACjC;AACA;;AAEA;;AAEA,0BAA0B,+CAAM,GAAG,gDAAO;AAC1C,iCAAiC,+CAAM,GAAG,gDAAO;;AAEjD,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA,+BAA+B,kDAAS;AACxC,kBAAkB,oDAAG;AACrB,kBAAkB,oDAAG;;AAErB,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AACH;AACA;AACA,CAAC;;;;;;;;;;;;;ACpED;AAAA;AAAe;AACf;AACA;AACA;AACA,CAAC;;AAEM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,yBAAyB,yBAAyB,EAAE;AACpD,sBAAsB,sBAAsB,EAAE;AAC9C,yBAAyB,yBAAyB,EAAE;AACpD,uBAAuB,uBAAuB,EAAE;AAChD,4BAA4B,4BAA4B,EAAE;AAC1D,0BAA0B,0BAA0B;AACpD;;;;;;;;;;;;;ACzBA;AAAA;AAAA;AAAO;AACP;AACA;;AAEO;AACP;AACA;AACA;;;;;;;;;;;;;ACPA;AAAA;AAAA;AAAO;;AAEA;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACfA;AAAA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACnFD;AAAA;AAAO;AACP;AACA;;AAEe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACRD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACXD;AAAe;AACf;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACND;AAAe;AACf;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAe;AACf;AACA;AACA;AACA,kDAAkD,OAAO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAe;AACf;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoC;AACF;AACY;AACF;AACZ;AACE;AACA;AACU;AACI;AACV;AACF;;AAErB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,iDAAU;AACnB,QAAQ,gDAAS;AACjB,aAAa,qDAAc;AAC3B,cAAc,sDAAe;AAC7B,OAAO,+CAAQ;AACf,QAAQ,gDAAS;AACjB,QAAQ,gDAAS;AACjB,aAAa,qDAAc;AAC3B,eAAe,uDAAgB;AAC/B,UAAU,kDAAW;AACrB,SAAS,kDAAU;AACnB;AACA;;;;;;;;;;;;;AC9EA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACRD;AAAe;AACf;AACA;AACA,wBAAwB;AACxB,kBAAkB,kCAAkC;AACpD;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACRD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7BA;AAAe;AACf;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;ACND;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;ACRD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgD;AACU;AACV;AACW;AACF;AACL;AACF;AACR;AACY;AACO;AACJ;AACE;AACQ;AACF;AACI;;;;;;;;;;;;;ACdrE;AAAA;AAA2C;;AAE5B;AACf,4BAA4B,yDAAO,CAAC,+CAAK;;AAEzC;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,kBAAkB;AAC/B,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrHA;AAAA;AAAA;AAAA;AAA0C;AACD;AACa;;AAEtD;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA,gBAAgB,yDAAY;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kCAAkC,yDAAY;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,8DAAQ;AAChD;;AAEA;AACA;AACA;;AAEA;AACA,uEAAuE,4DAAQ;AAC/E;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,OAAO;AAC/B,UAAU,gEAAW;AACrB,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9EA;AAAA;AAAA;AAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,OAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,wCAAwC,KAAK,2DAAO;;AAEvE;AACA,aAAa,OAAO;;AAEpB;AACA;;AAEe;AACf;AACA;AACA,CAAC;;;;;;;;;;;;;ACrHD;AAAA;AAAA;AAA2C;AACC;;AAE7B;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yDAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA,QAAQ,gEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACnDD;AAAA;AAAA;AAAwC;AACiB;;AAEzD;AACA,eAAe,UAAU;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,OAAO;AACtB,yCAAyC,wDAAI;AAC7C;AACA;AACA;AACA;AACA;;AAEA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,oCAAoC,KAAK,EAAE,aAAa,iEAAa;AACzG;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,8DAAQ;AAC5C;;AAEA;AACA,0CAA0C,8DAAQ;AAClD;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACxED;AAAA;AAA0C;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,gBAAgB;AAChB,aAAa;AACb,aAAa;AACb,aAAa;AACb,aAAa;AACb,gBAAgB;AAChB,aAAa;AACb;;AAEA,mCAAmC,wDAAI;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACe;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC5OD;AAAe;AACf;AACA;AACA;;AAEA,6BAA6B,OAAO;AACpC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC7CD;AAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAAmC;AACE;AACI;AACa;;AAEvC;AACf,aAAa,oDAAQ;AACrB;AACA;AACA;AACA;AACA,qBAAqB,yDAAY;AACjC,mBAAmB,yDAAY;AAC/B,qBAAqB,yDAAY;AACjC,sBAAsB,yDAAY;AAClC,oBAAoB,yDAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iDAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;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;;;;;;;;;;;ACrBD;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC/DD;AAAA;AAAA;AAAA;AAA0C;;;;;;;;;;;;;ACA1C;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;ACjIpB;AAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACdD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACnBD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACfD;AAAA;AACA;AACA;AACA;AACe;AACf;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AAA+B;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,OAAO;AACxB,uBAAuB,yDAAK;AAC5B;AACA;;AAEA,gCAAgC;AAChC;;AAEe;AACf;;AAEA;AACA;AACA;AACA;;AAEA,aAAa,OAAO;AACpB;AACA,aAAa,OAAO;;AAEpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,QAAQ;AAC3C,qBAAqB,qCAAqC;;AAE1D;AACA,CAAC;;;;;;;;;;;;;AChDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiD;AACQ;AACR;AACQ;AACJ;;;;;;;;;;;;;ACJrD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACtBD;AAAA;AAAe;AACf;AACA;AACA;AACA,CAAC;;AAED;AACA,wCAAwC;;AAExC;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mDAAmD;AACnD,oDAAoD;AACpD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD;AACnD,oDAAoD;AACpD,GAAG;AACH;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;;;;;;;;;;;;;ACnFA;AAAe;AACf,kDAAkD;;AAElD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC1CD;AAAe;AACf;AACA;AACA,8CAA8C;AAC9C,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACND;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAA6B;;AAEd;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,gDAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,gDAAI;AAChB,YAAY,gDAAI;AAChB,YAAY,gDAAI;AAChB,YAAY,gDAAI;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACrED;AAAA;AAAA;AAAA;AAAkD;;;;;;;;;;;;;ACAlD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyD;AACrB;AACF;AACI;AACJ;AACmC;AACnC;AACA;AACE;AACU;AACN;AACA;;AAEzB;AACf,sCAAsC,+CAAQ,kBAAkB,+CAAQ;AACxE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,gBAAgB;AAC9B,+CAA+C;AAC/C;AACA;;AAEA;;AAEA;AACA;AACA;A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A;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sDAAQ,qBAAqB,yBAAyB,EAAE;AACzE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,+CAAS;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACnGA;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACoE;AACjE;AACD;AACJ;;AAE9B;;AAEO;AACP;AACA;;AAEA;AACA;AACA,qBAAqB,oBAAoB;AACzC,QAAQ,yDAAQ;AAChB;;AAEA;AACA;AACA;AACA,sBAAsB,oCAAoC;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,uDAAM;AAClB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,oBAAoB,0DAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wFAAwF,gEAAiB;AACzG;;AAEA;AACA,wCAAwC,0CAAG,SAAS,+CAAM;AAC1D;;AAEA;AACA,uCAAuC,4CAAK;AAC5C;;AAEA;AACA,mBAAmB,4CAAK,wBAAwB,+DAAgB;AAChE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AAC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;AAEA,EAAE,+CAAS;;AAEX;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACjDA;AAAA;AAAA;AAAA;AAAA;AAAkE;AACpC;AACG;;AAElB;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,yDAAS;AACjD;AACA;;AAEA;AACA,2CAA2C,uDAAM;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C,gBAAgB,kDAAS;AACzB;AACA;;AAEA;AACA,uCAAuC,4CAAK;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,+CAAS;AAClB;;;;;;;;;;;;;ACzDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACF;AACK;AACF;;AAElB;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,uDAAM;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,4CAAK;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,+CAAS,OAAO,yDAAS;AAClC;;;;;;;;;;;;;ACxDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACE;AACL;AACL;AACK;AACN;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAQ;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,cAAc,yDAAS,eAAe,oDAAQ;;AAE9C;AACA;AACA;;AAEA,SAAS,sDAAgB;AACzB;;AAEO;AACP,cAAc,oDAAO;;AAErB;AACA;AACA;;AAEA,SAAS,sD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ACrB,YAAY,0DAAS,eAAe,qDAAI;AACxC,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAkD;;AAEnC;AACf;AACA,YAAY,0DAAS;AACrB,YAAY,0DAAS,qCAAqC,qDAAI;AAC9D,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAiC;;AAElB;AACf,mDAAmD,wDAAO;AAC1D;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;ACPD;AAAA;AAAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,iBAAiB,0DAAS;;AAE1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACxDD;AAAe;AACf;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACLD;AAAA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC1ED;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAA;AAAA;AAAA;AAAkC;AACA;AACC;;AAEnC,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA,KAAK;AACL,qBAAqB,gDAAS;AAC9B;AACA;;AAEA;AACA,QAAQ,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;AACA;AACA;AACA;AACA,CAAC;;AAEM;AACP;AACA,SAAS,uDAAW;AACpB;;;;;;;;;;;;;AClCA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACxBD;AAAA;;AAEe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACRD;AAAA;AAAqC;;AAEtB;AACf,gBAAgB,mDAAK;AACrB;AACA;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAA;AAAwC;AACZ;;AAEb;AACf,4DAA4D,4DAAW;;AAEvE,0DAA0D,OAAO;AACjE;AACA,aAAa,sDAAK;AAClB;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACbD;AAAA;AAAA;AAAwC;AACZ;;AAEb;AACf,iCAAiC,4DAAW;;AAE5C,0EAA0E,OAAO;AACjF,gBAAgB,sDAAK;AACrB;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACXD;AAAe;AACf;AACA;AACA,0BAA0B;AAC1B,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAA6B;AACQ;AACgE;;AAErG;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA,cAAc,gDAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qDAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qDAAI,CAAC,oDAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA,qBAAqB,4DAAQ;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AAC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AEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B,oFAAoF,0EAA0E;AAC5L,8BAA8B;AAC9B,eAAe,uDAAK,aAAa;AACjC;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACtCD;AAAA;AAAiC;;AAEjC;AACA,oBAAoB,+CAAK;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA,4BAA4B,+CAAK;AACjC;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,OAAO,EAAC;;;;;;;;;;;;;ACvDT;AAAA;AAAA;AAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uDAAuD;AACvD,8CAA8C;AAC9C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B,4BAA4B;AAC1D,8BAA8B;AAC9B,iCAAiC;AACjC;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;AC5DN;AAAA;AAAA;AAAA;AAA8B;AACM;;AAE7B;AACP;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,4BAA4B;AAC1D,8BAA8B,kDAAkD;AAChF,8BAA8B,4BAA4B;AAC1D,eAAe,0DAAK,aAAa;AACjC;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;AC5DN;AAAA;AAAA;AAAoC;;AAE7B;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B,kGAAkG;AAChI,8BAA8B;AAC9B,eAAe,0DAAK,aAAa;AACjC;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;AChDN;AAAA;AAAA;AAAA;AAAmC;AACI;;AAEhC;AACP;AACA;AACA;AACA;;AAEA,oBAAoB,gDAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gDAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uDAAuD;AACvD,6CAA6C;AAC7C;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B;AAC9B,8BAA8B;AAC9B,iCAAiC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA,wDAAwD,qDAAQ;AAChE;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;ACvFR;AAAA;AAAA;AAAA;AAAmD;AACrB;AACQ;;AAEtC;AACA;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,4BAA4B;AAC1D,8BAA8B,kDAAkD;AAChF,8BAA8B,4BAA4B;AAC1D,eAAe,4DAAK,aAAa;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA,8DAA8D,iEAAc;AAC5E;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;ACzER;AAAA;AAAA;AAA+C;AACT;;AAEtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B,kGAAkG;AAChI,8BAA8B;AAC9B,eAAe,4DAAK,aAAa;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA,4DAA4D,6DAAY;AACxE;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;AC7DR;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B;AAC9B,0CAA0C;AAC1C;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;AC9BD;AAAA;AAA8B;;AAE9B;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACxBD;AAAA;AAAA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uDAAuD;AACvD,4DAA4D;AAC5D;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,iDAAiD;AACjD;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B;AAC9B,8BAA8B,wDAAwD;AACtF,8DAA8D;AAC9D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0BAA0B,4BAA4B,EAAE;AACxD,yBAAyB,2BAA2B,EAAE;AACtD,0BAA0B,4BAA4B,EAAE;AACxD,iDAAiD,mDAAmD;AACpG;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACvGA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB;AACA,aAAa,OAAO;AACpB;AACA,iBAAiB,QAAQ;AACzB;AACA,aAAa,WAAW;AACxB;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;AChED;AAAA;AAAA;AAAA;AAAsC;;AAE/B,oCAAoC,kDAAW;;AAEtD;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;A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A;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iDAAS,cAAc,yDAAS;AACxE,iBAAiB,8CAAM;AACvB;AACA;AACA;AACA,SAAS;AACT;AACA,wCAAwC,kDAAU,cAAc,0DAAU;AAC1E,iBAAiB,+CAAO;AACxB;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA,KAAK;AACL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA,KAAK;AACL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA,KAAK;AACL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,+CAAO,OAAO,wDAAQ;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AAC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CZvB;AAAA;AAAsC;;AAEvB;AACf,cAAc,+CAAK;AACnB;AACA,wCAAwC,qDAAG;AAC3C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAA;AAAiC;;AAElB;AACf,cAAc,+CAAK;AACnB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qIAAqI,mBAAmB;;AAEjJ;AACP;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP,QAAQ;AACR,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;AC7GA;AAAA;AAAA;AAAiD;AACE;;AAEnD;;AAEe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,iEAAS;AACrD,mBAAmB,+DAAU;AAC7B;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACpBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8B;AAC8B;AACd;AACM;;;;;;;;;;;;;ACHpD;AAAA;AAAiE;;AAElD;AACf;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,kDAAkD,eAAe,UAAU;AAC3E,8BAA8B,gEAAQ,qBAAqB,8DAAM;AACjE,qBAAqB,6DAAK;AAC1B;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAAA;AAAuC;AACU;AACE;;AAEnD,sDAAS,uBAAuB,qDAAmB;AACnD,sDAAS,wBAAwB,sDAAoB;;;;;;;;;;;;;ACLrD;AAAA;AAAwC;;AAEzB;AACf;AACA,IAAI,6DAAS;AACb,GAAG;AACH,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAA;AAAA;AAAA;AAAyD;AACR;AACV;AACV;;AAE7B;AACA;AACA;AACA;AACA,QAAQ,sDAAc;AACtB;;AAEA;AACA;AACA;AACA;AACA,kCAAkC,oDAAG;AACrC;AACA;AACA;AACA;;AAEe;AACf;AACA;;AAEA,sBAAsB,+DAAU;AAChC;AACA,GAAG;AACH,SAAS,kEAAK,oCAAoC,oDAAG;AACrD;;AAEA,2DAA2D,OAAO;AAClE,8DAA8D,OAAO;AACrE;AACA,QAAQ,uEAAQ;AAChB;AACA;AACA;;AAEA,aAAa,+DAAU;AACvB,CAAC;;;;;;;;;;;;;ACzCD;AAAA;AAAA;AAAA;AAAA;AAA+E;AACxC;AACD;AACK;;AAE3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,iBAAiB,8DAAS,uCAAuC,sEAAoB,GAAG,uDAAW;AACnG;AACA,sEAAsE,4DAAU;AAChF;AACA;AACA,CAAC;;;;;;;;;;;;;AC7ED;AAAA;AAAuC;;AAEvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;A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;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAEM;AACP;AACA,0DAA0D;AAC1D;AACA;;AAEO;AACP;AACA,0DAA0D;AAC1D;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,sDAAK;;AAEpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C,sCAAsC,wDAAO;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAwD;AACxD;AACA,0DAA0D;AAC1D;AACA,IAAI,wDAAO;AACX;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,wCAAwC;AACxC;;AAEA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;;;;;;;;;;;;;ACxJA;AAAA;AAAA;AAAA;AAAsC;AACA;AACM;;AAE7B;AACf;AACA;;AAEA,6CAA6C,6DAAQ;;AAErD,qFAAqF,OAAO;AAC5F,+GAA+G,OAAO;AACtH;AACA;AACA;AACA,QAAQ,4DAAQ,qCAAqC,wDAAG;AACxD;AACA;AACA;;AAEA,aAAa,oDAAU;AACvB,CAAC;;;;;;;;;;;;;ACrBD;AAAA;AAAA;AAAA;AAAyC;AACH;AACM;;AAE7B;AACf;AACA;;AAEA,6CAA6C,gEAAW;;AAExD,yFAAyF,OAAO;AAChG,8DAA8D,OAAO;AACrE;AACA,yFAAyF,wDAAG,uCAAuC,OAAO;AAC1I;AACA,YAAY,4DAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,oDAAU;AACvB,CAAC;;;;;;;;;;;;;ACzBD;AAAA;AAAuC;;AAEvC,gBAAgB,sDAAS;;AAEV;AACf;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+E;AAC5C;AACD;AACI;AACK;;AAE3C;AACA;AACA;AACA;AACA;AACA,kBAAkB,0DAAK;AACvB,oDAAoD,0DAAK;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0DAAK;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0DAAK;AACvB;AACA;AACA,6EAA6E,0DAAK;AAClF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,wDAAG;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf,yCAAyC,sEAAoB,GAAG,uDAAW;AAC3E;AACA;AACA;AACA;AACA,+CAA+C,4DAAU;AACzD;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC/ED;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAsC;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,qBAAqB,4DAAU;AAC/B;AACA,CAAC;;;;;;;;;;;;;ACnBD;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAA6C;AACD;;AAE7B;AACf;AACA;AACA,YAAY,uDAAK;;AAEjB,2DAA2D,OAAO;AAClE,8DAA8D,OAAO;AACrE;AACA,sBAAsB,wDAAG;AACzB,QAAQ,4DAAQ;AAChB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,aAAa,oDAAU;AACvB,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAAuC;;AAEvC;AACA;AACA;AACA,mBAAmB,wDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,wDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB,2BAA2B,OAAO;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;;AAEA;;AAEA;AACA,gBAAgB,wDAAG;AACnB,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAEM;AACP;;AAEA;AACA,mBAAmB,wDAAG;AACtB,2CAA2C;AAC3C,GAAG;;AAEH;AACA,WAAW,wDAAG;AACd;AACA;;;;;;;;;;;;;AChFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACV;AACkB;AACN;AACH;;AAE3C;;AAEA;AACA,EAAE,kEAAY;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,4DAAY;AACd,EAAE,gDAAO;AACT;AACA,EAAE,kEAAY;AACd;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uCAAuC,gDAAO;AAC9C,wCAAwC,gDAAO;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,4DAAY;;AAEd;AACA;AACA,uCAAuC,gDAAO;AAC9C,wCAAwC,gDAAO;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,4DAAY;;AAEd;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA,IAAI,wDAAU;AACd;;AAEA;AACA;AACA,cAAc,wDAAU;;AAExB,EAAE,4DAAY;AACd,EAAE,4DAAY;AACd;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gDAAO;;AAEpB;AACA;AACA,cAAc,gDAAO,gBAAgB;AACrC;AACA,gBAAgB,gDAAO;AACvB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,mBAAmB,gDAAO;AAC1B;AACA;AACA,SAAS,iBAAiB,gDAAO;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,wDAAU;AACZ;AACA,EAAE,gDAAO;;AAET;;AAEA;AACA,IAAI,4DAAY;AAChB;AACA,IAAI,gDAAO;AACX,8BAA8B,wDAAU;AACxC,IAAI,4DAAY;AAChB,IAAI,4DAAY;AAChB;AACA;;AAEA,cAAc;AACd,kBAAkB,wDAAU;AAC5B;AACA;;AAEA;AACA,EAAE,4DAAY;AACd,EAAE,4DAAY;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,wDAAU;AACZ,gBAAgB,wDAAU;AAC1B,cAAc,wDAAU;AACxB,EAAE,4DAAY;AACd,EAAE,4DAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACQ;;AAEzC;AACP,SAAS,8CAAK;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP,sBAAsB,8CAAK,+BAA+B,OAAO;AACjE,gBAAgB,8CAAK;AACrB;AACA;AACA,iBAAiB,OAAO,uDAAuD,8CAAK;AACpF,iCAAiC,4BAA4B,EAAE;AAC/D,iBAAiB,OAAO;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;;AAEO;AACP,eAAe,8CAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,gBAAgB;AACjC,eAAe,8CAAK;AACpB;AACA;AACA;;AAEA;AACA;AACA,aAAa,8CAAK;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,8CAAK;AACzC,wCAAwC,8CAAK;AAC7C,sCAAsC,gDAAO,8BAA8B,gDAAO;AAClF,yCAAyC,8CAAK,MAAM,8DAAgB;AACpE,oCAAoC,gDAAO,gBAAgB,gDAAO,gCAAgC,gDAAO;AACzG,sCAAsC,gDAAO,gBAAgB,gDAAO,4BAA4B,gDAAO;AACvG,sCAAsC,gDAAO,gBAAgB,gDAAO,gCAAgC,gDAAO;AAC3G,sCAAsC,gDAAO,gBAAgB,gDAAO,4BAA4B,gDAAO;AACvG;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC,gBAAgB;AACjD,iBAAiB,8CAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,8CAAK,MAAM,8DAAgB;AACnC,QAAQ,8CAAK,MAAM,8DAAgB;AACnC,QAAQ,8CAAK,MAAM,8DAAgB;AACnC,QAAQ,8CAAK,MAAM,8DAAgB;AACnC;AACA;AACA;;AAEA,2CAA2C;AAC3C,iBAAiB,gBAAgB;AACjC,eAAe,8CAAK;AACpB;AACA,eAAe,8CAAK;AACpB;AACA;AACA;AACA;;;;;;;;;;;;;AC7HA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACA;;AAE5C;;AAEO;;AAEP;AACA,EAAE,kEAAY;AACd;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,iDAAQ;;AAEpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6DAA6D;;AAE7D;;AAEA;AACA,aAAa,gDAAO;;AAEpB;AACA;AACA;AACA,YAAY,iBAAiB,OAAO;AACpC,KAAK;AACL;AACA,YAAY,eAAe,OAAO;AAClC;AACA;;AAEA,EAAE,gDAAO;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,IAAI,gDAAO;AACX;AACA,IAAI,kEAAY;AAChB;AACA;AACA;;;;;;;;;;;;;AC7EA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACyB;AAClC;AACJ;AACS;;AAEnC;AACA;AACA;AACA;AACA;AACA;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,qDAAY;AAC5B,gBAAgB,qDAAY;;AAE5B;AACA,aAAa,mDAAW;AACxB;AACA;AACA,QAAQ,uDAAQ;AAChB;AACA;AACA;AACA,KAAK;AACL,MAAM,0DAAW;AACjB,KAAK;AACL;AACA;AACA;;AAEA,EAAE,+DAAiB;;AAEnB;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb,IAAI,uDAAS;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oDAAoD,QAAQ,+DAAiB,iBAAiB,EAAE;AAChG;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;;AAEA;AACA;AACA;;;;;;;;;;;;;AC7IA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgD;;AAEzC;AACP;AACA,cAAc,8CAAK;AACnB;AACA;AACA;AACA;AACA,EAAE,8CAAK;AACP,EAAE,8CAAK;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,0CAA0C;;AAE1C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP,UAAU,8CAAK;AACf;;AAEA;AACA,4BAA4B,8CAAK;AACjC;AACA,iDAAiD,gDAAO;AACxD,mDAAmD,gDAAO;AAC1D,aAAa,8CAAK;AAClB;AACA;AACA;;;;;;;;;;;;;ACvKA;AAAA;AAAA;AACA,gBAAgB;AAChB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,gBAAgB,QAAQ;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AC5O5B;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAA6C;;;;;;;;;;;;;ACA7C;AAAA;AAAA;AAAO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACNA;AAAA;AAAA;AAAA;AAAkC;AACe;AACN;;AAE5B;AACf,UAAU,wCAAM;AAChB,UAAU,wCAAM;AAChB;;AAEA;AACA,eAAe,gDAAO;AACtB,0CAA0C,gDAAO,IAAI,gDAAO,6BAA6B,gDAAO,IAAI,gDAAO;AAC3G;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iEAAiE,yDAAQ;AACzE;;AAEA;AACA,iEAAiE,yDAAQ;AACzE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC/CD;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;ACJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACwC;;;;;;;;;;;;;ACDlF;AAAA;AAAA;AAAmC;;AAE5B;AACP,EAAE,kDAAK;AACP;;AAEe;AACf,EAAE,kDAAK;AACP,EAAE,kDAAK;AACP,CAAC;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEO;;AAEP;;AAEe;AACf;AACA;AACA;;;;;;;;;;;;;AClDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACW;AACD;AACuB;AAC9B;AACH;AACF;AACgB;AACC;;AAEpD;AACA;AACA,UAAU,kDAAK,aAAa,kDAAK;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,sDAAQ;AAChC;;AAEA;AACA,UAAU,kDAAK,WAAW,kDAAK,0BAA0B,kDAAK;AAC9D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8DAAe;AACnC,kBAAkB,4DAAQ;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sDAAQ;AAC/B;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,+CAA+C,uDAAS;AACxD;;AAEA;AACA;AACA,oEAAoE,uDAAS;AAC7E;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,kCAAkC,EAAE;AAC1E,mDAAmD,gCAAgC,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,kBAAkB,4BAA4B,SAAS,uDAAS,sCAAsC;AACtG;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,MAAM,gEAAW,KAAK,iDAAS;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,0DAAK;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM,+DAAS;AACf;AACA;;AAEA,IAAI,2DAAO;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,2DAAM,CAAC,kDAAK;AACxB,YAAY,0DAAK;AACjB,aAAa,kDAAK;AAClB,aAAa,kDAAK;;AAElB,IAAI,2DAAW,CAAC,kDAAK;AACrB,IAAI,iEAAa;AACjB;AACA,IAAI,+DAAS;AACb;;AAEA;AACA,MAAM,2DAAO;AACb;AACA,iBAAiB,kDAAK,oBAAoB,kDAAK;AAC/C;AACA;AACA,sEAAsE,0DAAK;AAC3E;;AAEA;AACA;AACA,MAAM,0DAAU,CAAC,kDAAK;AACtB,MAAM,2DAAO;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,0DAAK;AAClB;AACA,qBAAqB,kDAAK;AAC1B;;AAEA,IAAI,2DAAO;AACX,sBAAsB,2DAAM;AAC5B,SAAS,2DAAM;AACf;;AAEA;AACA;AACA,kBAAkB,kDAAK;AACvB;AACA,qCAAqC,kDAAK;AAC1C;;AAEA,IAAI,iEAAa;AACjB,eAAe,OAAO;AACtB,0BAA0B,0DAAK;AAC/B;AACA;AACA;AACA;;AAEA;;AAEA;AACA,6DAA6D,sBAAsB,EAAE;AACrF,MAAM,+DAAS;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,kDAAK;AACvB;;AAEA,IAAI,2DAAO;AACX;AACA;AACA,eAAe,OAAO;AACtB,0BAA0B,0DAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,kDAAK;AACvB;;AAEA,IAAI,iEAAa;AACjB;AACA,yCAAyC,oBAAoB,EAAE;AAC/D,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2DAAM;AACtB;AACA;AACA;AACA;;AAEA;AACA,0EAA0E,4DAAQ;AAClF;;AAEA;AACA,sEAAsE,4DAAQ;AAC9E;;AAEA;AACA,yEAAyE,4DAAQ;AACjF;;AAEA;AACA,sEAAsE,4DAAQ;AAC9E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AClaD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,eAAe,+WAA+W,oBAAoB,sMAAsM,oBAAoB,sBAAsB,oBAAoB,MAAM,oBAAoB;AAChrB,uBAAuB;AACvB,oBAAoB;;;;;;;;;;;;;ACf3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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EA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA;AACA,QAAQ,mBAAO,CAAC,iFAAkB;AAClC,UAAU,mBAAO,CAAC,qFAAoB;AACtC,WAAW,mBAAO,CAAC,uFAAqB;AACxC,WAAW,mBAAO,CAAC,uFAAqB;AACxC,QAAQ,mBAAO,CAAC,iFAAkB;AAClC;;;;;;;;;;;;ACNA,uBAAuB,mBAAO,CAAC,uFAAqB;;AAEpD;;AAEA;AACA;AACA;;;;;;;;;;;;ACNA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;;;;;;;;;;;;ACvBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;AACA;;;;;;;;;;;;ACrEA;;AAEA;AACA;AACA;;;;;;;;;;;;ACJA;;AAEA,oBAAoB,mBAAO,CAAC,iFAAkB;;AAE9C;;AAEA;AACA,uBAAuB,KAAK;AAC5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA,OAAO,8BAA8B,GAAG,8BAA8B;AACtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;ACxDA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;A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AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yDAAyD,gBAAgB;;AAEzE;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA,+BAA+B,8BAA8B;AAC7D,gCAAgC,gCAAgC;AAChE,GAAG;;AAEH;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvKa;;AAEb,oBAAoB,mBAAO,CAAC,2FAA4B;AACxD,uBAAuB,mBAAO,CAAC,iGAA+B;AAC9D,sBAAsB,mBAAO,CAAC,+FAA8B;AAC5D,uBAAuB,mBAAO,CAAC,iGAA+B;;AAE9D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,eAAe;AACpB,KAAK,eAAe;AACpB,KAAK,eAAe;AACpB,KAAK;AACL;AACA;AACA,4CAA4C,wBAAwB,EAAE;;AAEtE;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;AChFA,QAAQ,mBAAO,CAAC,uDAAU;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACrDA;;;;;;;;;;;;ACAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,mBAAO,CAAC,4DAAgB;;AAEpC,UAAU,mBAAO,CAAC,wDAAc;AAChC,SAAS,mBAAO,CAAC,sDAAa;AAC9B;AACA,UAAU,mBAAO,CAAC,oDAAY;AAC9B,YAAY,mBAAO,CAAC,oDAAY;AAChC,GAAG;AACH,WAAW,mBAAO,CAAC,0DAAe;AAClC;;;;;;;;;;;;;AChCa;;AAEb,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,gBAAgB,mBAAO,CAAC,4DAAc;;AAEtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;AClEA,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,WAAW,mBAAO,CAAC,gDAAQ;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;;;;;;;;;;;;;ACrCa;;AAEb,QAAQ,mBAAO,CAAC,oDAAU;;AAE1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,+BAA+B,EAAE;AACrE,oCAAoC,+BAA+B,EAAE;AACrE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,wBAAwB,EAAE;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA,oCAAoC,sBAAsB,EAAE;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvDA,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,WAAW,mBAAO,CAAC,gDAAQ;AAC3B,YAAY,mBAAO,CAAC,wDAAY;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,mCAAmC,aAAa;;AAErE;AACA,kBAAkB,WAAW;AAC7B;AACA,GAAG;;AAEH;AACA,0BAA0B;AAC1B,GAAG;;AAEH;AACA;AACA,uBAAuB,eAAe;AACtC;AACA,uBAAuB,iBAAiB;AACxC;AACA,KAAK;AACL,GAAG;;AAEH;AACA;;;;;;;;;;;;ACjCA;;AAEA;;AAEA,IAAI,IAA6B;AACjC;AACA,eAAe,mBAAO,CAAC,kDAAU;AACjC,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,YAAY,mBAAO,CAAC,wDAAY;AAChC,WAAW,mBAAO,CAAC,0DAAa;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;A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,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,wBAAwB,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,2BAA2B,gBAAgB;AAC3C,2BAA2B,gBAAgB;AAC3C,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,4DAA4D;AAC5D;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,+BAA+B;AACxC,SAAS,+BAA+B;AACxC,SAAS,0BAA0B;AACnC,SAAS,+BAA+B;AACxC,SAAS;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;ACvYA;;AAEA;;AAEA,IAAI,IAA6B;AACjC;AACA;AACA,iBAAiB,mBAAO,CAAC,4DAAkB;AAC3C,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,YAAY,mBAAO,CAAC,kDAAa;AACjC,cAAc,mBAAO,CAAC,sDAAe;AACrC,YAAY,mBAAO,CAAC,kDAAa;AACjC,eAAe,mBAAO,CAAC,wDAAgB;AACvC,eAAe,mBAAO,CAAC,wDAAgB;AACvC,aAAa,mBAAO,CAAC,oDAAc;AACnC,YAAY,mBAAO,CAAC,gDAAY;AAChC,mBAAmB,mBAAO,CAAC,gEAAoB;AAC/C,YAAY,mBAAO,CAAC,kDAAa;AACjC,WAAW,mBAAO,CAAC,gDAAY;AAC/B,iBAAiB,mBAAO,CAAC,4DAAkB;AAC3C,WAAW,mBAAO,CAAC,gDAAY;AAC/B,aAAa,mBAAO,CAAC,oDAAc;AACnC,WAAW,mBAAO,CAAC,gDAAY;AAC/B,aAAa,mBAAO,CAAC,oDAAc;AACnC,WAAW,mBAAO,CAAC,gDAAY;AAC/B,YAAY,mBAAO,CAAC,kDAAa;AACjC,aAAa,mBAAO,CAAC,oDAAc;AACnC,cAAc,mBAAO,CAAC,sDAAe;AACrC,cAAc,mBAAO,CAAC,sDAAe;AACrC,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,cAAc,mBAAO,CAAC,sDAAe;AACrC,iBAAiB,mBAAO,CAAC,4DAAkB;AAC3C;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3CA,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,WAAW,mBAAO,CAAC,gDAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,2CAA2C;AAC3C;;AAEA;;AAEA;AACA,oCAAoC,6BAA6B,EAAE;;AAEnE;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,6BAA6B;AACvD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA,0BAA0B,wCAAwC;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,uCAAuC,WAAW,EAAE;AACpD;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACnIa;;AAEb,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,WAAW,mBAAO,CAAC,gDAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB,EAAE;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2BAA2B;AACpD;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,2BAA2B;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACzFA,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA,eAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4BAA4B;AACtD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpDA,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,GAAG,oBAAoB;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;AC1BA,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,YAAY,mBAAO,CAAC,yDAAa;;AAEjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB,YAAY,aAAa;AAClE,wCAAwC,kBAAkB,EAAE;;AAE5D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oCAAoC;AAClE,OAAO;;AAEP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxEa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU,EAAE;AACnD;AACA;AACA,cAAc;AACd,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,oDAAoD,UAAU,EAAE;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;;AClEa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,gBAAgB,mBAAO,CAAC,kEAAc;AACtC,iBAAiB,mBAAO,CAAC,oEAAe;AACxC,mBAAmB,mBAAO,CAAC,wEAAiB;AAC5C,sBAAsB,mBAAO,CAAC,gFAAqB;AACnD,6BAA6B,mBAAO,CAAC,8FAA4B;AACjE,YAAY,mBAAO,CAAC,yDAAa;AACjC,WAAW,mBAAO,CAAC,iDAAS;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,+BAA+B,cAAc;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;;;;;;;;;;;;AC9Ea;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,sDAAsD,uBAAuB,EAAE;AAC/E,uDAAuD,WAAW,EAAE;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qDAAqD,uBAAuB,EAAE;AAC9E;;AAEA;AACA;;;;;;;;;;;;;ACrCa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sBAAsB;AACxD,8BAA8B,EAAE;AAChC;AACA;AACA;AACA,yCAAyC,0BAA0B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAkD,sBAAsB,EAAE;AAC1E;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzHA,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,iBAAiB,mBAAO,CAAC,kEAAc;AACvC,uBAAuB,mBAAO,CAAC,gFAAqB;AACpD,WAAW,mBAAO,CAAC,sDAAQ;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;AC3EA,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,WAAW,mBAAO,CAAC,iDAAS;;AAE5B;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,sDAAsD,iBAAiB,EAAE;AACzE;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACxDA,QAAQ,mBAAO,CAAC,oDAAU;;AAE1B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;;;;;;;;;;;;ACrFa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,YAAY,mBAAO,CAAC,yDAAa;AACjC,WAAW,mBAAO,CAAC,iDAAS;;AAE5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe,EAAE;AACxD;AACA,wDAAwD,SAAS;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sDAAsD,kBAAkB,EAAE;AAC1E;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAA0C,WAAW,EAAE;AACvD;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;AAC1C,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AClaa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,WAAW,mBAAO,CAAC,iDAAS;AAC5B,gBAAgB,mBAAO,CAAC,qDAAM;;AAE9B;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,oDAAoD,yBAAyB,EAAE;AAC/E;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;;;;;;;;;;;;;AC5Ba;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,YAAY,mBAAO,CAAC,yDAAa;AACjC,YAAY,mBAAO,CAAC,qDAAQ;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAkB;;AAEvC;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,0BAA0B;AAC1B;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACxFa;;AAEb,eAAe,mBAAO,CAAC,qDAAQ;AAC/B;AACA,mBAAmB,mBAAO,CAAC,uEAAiB;AAC5C,qBAAqB,mBAAO,CAAC,2EAAmB;;AAEhD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,wCAAwC;AACxC,4CAA4C;AAC5C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC/Ca;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,mBAAmB,mBAAO,CAAC,uEAAiB;AAC5C,YAAY,mBAAO,CAAC,qDAAQ;AAC5B,eAAe,mBAAO,CAAC,qDAAQ;AAC/B,eAAe,mBAAO,CAAC,yDAAa;AACpC,gBAAgB,mBAAO,CAAC,yDAAa;AACrC,eAAe,mBAAO,CAAC,iDAAS;;AAEhC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH,6CAA6C,uBAAuB,EAAE;AACtE;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,0BAA0B,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzOa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9DA;;AAEa;;AAEb,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,YAAY,mBAAO,CAAC,wDAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kCAAkC,EAAE;AACxE;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA,8BAA8B,+BAA+B;AAC7D;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;;AAEA;AACA,0CAA0C,KAAK;AAC/C,KAAK,oBAAoB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA,4DAA4D,WAAW,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uBAAuB,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,mDAAmD,uBAAuB,EAAE;;AAE5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,iCAAiC,yBAAyB,EAAE;AAC5D;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AC7OA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;;AAEe;AACf;AACA;AACA,iFAAiF;AACjF;AACA;;AAEA;AACA;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,KAA4D;AAC7D,CAAC,SACgC;AACjC,CAAC,4BAA4B;;AAE7B;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,IAAI;;AAEtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,mCAAmC;AAC9C;AACA;AACA;AACA;AACA,uEAAuE,IAAI;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,qBAAqB;AACtC;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAkB,mBAAmB;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA,KAAK,oBAAoB;AACzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+CAA+C;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA,8CAA8C,cAAc;;AAE5D,CAAC;;;;;;;;;;;;ACzdD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+BAA+B;AAC3C;AACA;AACA;AACA;;AAEA,UAAU,mBAAO,CAAC,mDAAO;;AAEzB;AACA;AACA,QAAQ,mBAAO,CAAC,uDAAY;AAC5B,OAAO,mBAAO,CAAC,2DAAW;AAC1B;AACA;;;;;;;;;;;;ACrCA,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;AC1BA,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,aAAa;AAClC;AACA;AACA,KAAK;AACL,oBAAoB,aAAa;AACjC;AACA;;;;;;;;;;;;ACzCA,eAAe,mBAAO,CAAC,+DAAY;AACnC,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;AACA;AACA;AACA,GAAG,IAAI;AACP;;;;;;;;;;;;ACTA,QAAQ,mBAAO,CAAC,wDAAW;AAC3B,oBAAoB,mBAAO,CAAC,kFAAwB;;AAEpD;;AAEA;;AAEA;AACA;AACA;AACA,2BAA2B,sBAAsB,EAAE;AACnD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;ACrDA,QAAQ,mBAAO,CAAC,wDAAW;AAC3B,aAAa,mBAAO,CAAC,2DAAU;;AAE/B;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACTA,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;;AAEA;AACA;AACA;AACA,2BAA2B,sBAAsB,EAAE;AACnD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB;AACvB,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;;AAEH;AACA;;;;;;;;;;;;ACjDA;AACA,cAAc,mBAAO,CAAC,mEAAc;AACpC,YAAY,mBAAO,CAAC,+DAAY;AAChC,eAAe,mBAAO,CAAC,uEAAgB;AACvC,cAAc,mBAAO,CAAC,qEAAe;AACrC,iBAAiB,mBAAO,CAAC,2EAAkB;AAC3C,aAAa,mBAAO,CAAC,mEAAc;AACnC,aAAa,mBAAO,CAAC,iEAAa;AAClC,YAAY,mBAAO,CAAC,+DAAY;AAChC,QAAQ,mBAAO,CAAC,uDAAQ;AACxB,UAAU,mBAAO,CAAC,2DAAU;AAC5B,WAAW,mBAAO,CAAC,6DAAW;AAC9B;;;;;;;;;;;;ACZA,cAAc,mBAAO,CAAC,6DAAW;;AAEjC;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACdA,UAAU,mBAAO,CAAC,qDAAO;;AAEzB;;AAEA;AACA;AACA;;;;;;;;;;;;ACNA,UAAU,mBAAO,CAAC,qDAAO;;AAEzB;;AAEA;AACA;AACA;;;;;;;;;;;;ACNA,QAAQ,mBAAO,CAAC,wDAAW;AAC3B,YAAY,mBAAO,CAAC,sDAAU;AAC9B,oBAAoB,mBAAO,CAAC,kFAAwB;;AAEpD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;ACnDA,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;AC9CA,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uCAAuC,gD;;;;;;;;;;;AClCvC,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,cAAc,EAAE;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvJa;;AAEb,QAAQ,mBAAO,CAAC,uDAAU;;AAE1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oEAAoE,WAAW;AAC/E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,oCAAoC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qBAAqB,EAAE;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qBAAqB,EAAE;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,kBAAkB,eAAe;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;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AW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,cAAc,mBAAO,CAAC,qDAAY;AAClC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;;AAEA;;;;;;;;;;;;ACXA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,SAAS,mBAAO,CAAC,yCAAM;;AAEvB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,SAAS,mBAAO,CAAC,yCAAM;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA,SAAS,mBAAO,CAAC,yCAAM;;AAEvB;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,YAAY,mBAAO,CAAC,iDAAU;AAC9B,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;AAChC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,YAAY,mBAAO,CAAC,+CAAS;AAC7B,eAAe,mBAAO,CAAC,qDAAY;AACnC,YAAY,mBAAO,CAAC,+CAAS;AAC7B,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACpKA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;;AAEA;;;;;;;;;;;;ACbA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;A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DAAW;AAChC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClFA,aAAa,mBAAO,CAAC,mDAAW;AAChC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,YAAY,mBAAO,CAAC,iDAAU;AAC9B,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACXA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9CA,aAAa,mBAAO,CAAC,mDAAW;AAChC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,0BAA0B,mBAAO,CAAC,6EAAwB;AAC1D,eAAe,mBAAO,CAAC,qDAAY;AACnC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,eAAe,mBAAO,CAAC,qDAAY;AACnC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACrBA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,8BAA8B,mBAAO,CAAC,qFAA4B;;AAElE;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,UAAU,mBAAO,CAAC,2CAAO;AACzB,YAAY,mBAAO,CAAC,+CAAS;AAC7B,YAAY,mBAAO,CAAC,iDAAU;AAC9B,yBAAyB,mBAAO,CAAC,2EAAuB;AACxD,8BAA8B,mBAAO,CAAC,qFAA4B;AAClE,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,YAAY,mBAAO,CAAC,iDAAU;AAC9B,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,cAAc,mBAAO,CAAC,qDAAY;AAClC,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,qDAAY;AACnC,aAAa,mBAAO,CAAC,iDAAU;AAC/B,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACzCA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,wBAAwB,mBAAO,CAAC,uEAAqB;AACrD,eAAe,mBAAO,CAAC,qDAAY;AACnC,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;AACnC,oBAAoB,mBAAO,CAAC,+DAAiB;AAC7C,mBAAmB,mBAAO,CAAC,6DAAgB;AAC3C,cAAc,mBAAO,CAAC,qDAAY;AAClC,oBAAoB,mBAAO,CAAC,+DAAiB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7FA,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,qDAAY;AAClC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,6BAA6B;AACxC,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,YAAY;AACZ,GAAG;;AAEH;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACjCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,YAAY,mBAAO,CAAC,+CAAS;;AAE7B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;AClBA,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,qDAAY;AAClC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACtBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,cAAc,mBAAO,CAAC,qDAAY;AAClC,eAAe,mBAAO,CAAC,qDAAY;AACnC,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9CA,eAAe,mBAAO,CAAC,qDAAY;AACnC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,aAAa,mBAAO,CAAC,mDAAW;AAChC,eAAe,mBAAO,CAAC,uDAAa;AACpC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,eAAe,mBAAO,CAAC,uDAAa;AACpC,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,wBAAwB,mBAAO,CAAC,yEAAsB;AACtD,eAAe,mBAAO,CAAC,uDAAa;AACpC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvEA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACZA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,cAAc,mBAAO,CAAC,mDAAW;AACjC,YAAY,mBAAO,CAAC,iDAAU;AAC9B,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,yDAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;;AClCA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxCA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,mBAAmB;AAC9B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3CA;AACA;AACA;A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MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClFA,aAAa,mBAAO,CAAC,mDAAW;AAChC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,SAAS,mBAAO,CAAC,yCAAM;AACvB,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/GA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxFA,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA;AACA;;AAEA;;;;;;;;;;;;;ACHA,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,yBAAyB,mBAAO,CAAC,2EAAuB;AACxD,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvBA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;;AAEA;;;;;;;;;;;;ACLA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;AC7BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,UAAU,mBAAO,CAAC,6CAAQ;AAC1B,cAAc,mBAAO,CAAC,qDAAY;AAClC,UAAU,mBAAO,CAAC,6CAAQ;AAC1B,cAAc,mBAAO,CAAC,qDAAY;AAClC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACZA,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,cAAc,mBAAO,CAAC,qDAAY;AAClC,eAAe,mBAAO,CAAC,qDAAY;AACnC,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAE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ACtC,UAAU,mBAAO,CAAC,6CAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;;AAEA;;;;;;;;;;;;ACLA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;;AAEA;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,+DAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACjBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,UAAU,mBAAO,CAAC,6CAAQ;AAC1B,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,oBAAoB,mBAAO,CAAC,iEAAkB;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;;;;;;;;;;;;AC1BA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3CA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA,mBAAmB,SAAS,GAAG,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA,mBAAmB,SAAS,GAAG,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,SAAS,mBAAO,CAAC,yCAAM;AACvB,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,eAAe,SAAS,GAAG,SAAS,GAAG,SAAS;AAChD,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;;;;;;;;;;;AC/DA,iBAAiB,mBAAO,CAAC,mDAAW;;;;;;;;;;;;ACApC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA,MAAM,8CAA8C;AACpD,MAAM;AACN;AACA;AACA,gCAAgC,kBAAkB,EAAE;AACpD;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/CA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA,MAAM,+CAA+C;AACrD,MAAM,gDAAgD;AACtD,MAAM;AACN;AACA;AACA,8BAA8B,mBAAmB,EAAE;AACnD;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzCA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,MAAM,qCAAqC;AAC3C,MAAM,qCAAqC;AAC3C,MAAM;AACN;AACA;AACA,mCAAmC,2BAA2B,EAAE;AAChE;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtDA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxCA,cAAc,mBAAO,CAAC,qDAAY;AAClC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtCA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB,OAAO,SAAS;AACjC,yBAAyB,gBAAgB,SAAS,GAAG;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,gBAAgB,SAAS,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,yDAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACrCA,eAAe,mBAAO,CAAC,uDAAa;AACpC,aAAa,mBAAO,CAAC,mDAAW;AAChC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,eAAe,mBAAO,CAAC,qDAAY;AACnC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5EA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7DA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,cAAc,mBAAO,CAAC,mDAAW;AACjC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;AACA;AACA;AACA,MAAM,mBAAmB;AACzB,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpDA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,iBAAiB,+BAA+B;AAChD,iBAAiB;AACjB;AACA;AACA,mCAAmC,cAAc,EAAE;AACnD,UAAU,2BAA2B;AACrC;AACA;AACA;AACA,UAAU,2BAA2B;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;AC1CA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;AAChC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACxEA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,YAAY,SAAS,GAAG,SAAS;AACjC;AACA;AACA;AACA,YAAY,SAAS,GAAG,SAAS;AACjC;AACA;AACA;AACA,UAAU,QAAQ,iBAAiB,GAAG,iBAAiB;AACvD;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACtCA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;AAChC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA,mBAAmB,SAAS,GAAG,SAAS;AACxC;AACA,iCAAiC,YAAY,EAAE;AAC/C,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,qBAAqB;AAChC,aAAa,OAAO;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,UAAU;AACV;AACA;AACA,4BAA4B;AAC5B,CAAC;;AAED;;;;;;;;;;;;ACxBA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,YAAY,mBAAO,CAAC,iDAAU;AAC9B,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA,MAAM,OAAO,SAAS,EAAE;AACxB,MAAM,OAAO,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,aAAa,yBAAyB;AACtC;AACA;AACA,IAAI,IAAI;AACR,UAAU,8BAA8B;AACxC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AClDA,eAAe,mBAAO,CAAC,uDAAa;AACpC,aAAa,mBAAO,CAAC,mDAAW;AAChC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,eAAe,mBAAO,CAAC,qDAAY;AACnC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,yBAAyB;AACpC;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM;AACN;AACA;AACA,iCAAiC,eAAe,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzCA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACnCA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjEA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;A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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7SA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;;;;;;ACvL1B;;AAEZ,cAAc,mBAAO,CAAC,kDAAS;AAC/B,cAAc,mBAAO,CAAC,uDAAS;AAC/B,oBAAoB,mBAAO,CAAC,sEAAoB;;AAEhD;AACA;;AAEA;AACA;;AAEA;;AAEA,iCAAiC;AACjC,cAAc;;AAEd;;AAEA;AACA,oDAAoD;;AAEpD;AACA,uEAAuE;;AAEvE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,kEAAkE;AAClE;AACA,4DAA4D,0BAA0B;AACtF;AACA,EAAE;AACF;AACA,6HAA6H;;AAE7H;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,8BAA8B,WAAW,GAAG,MAAM;;AAElD;AACA;;AAEA;AACA;;;;;;;;;;;;;;ACvEA,CAAC;AACD,MAAM,IAA2B;AACjC;AACA;AACA;AACA;AACA,OAAO,EAKJ;AACH,CAAC;AACD,6BAA6B,82IAA82I;AAC34I,6BAA6B,MAAM,iBAAiB;;AAEpD;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AAC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AC9Y,IAAR,CAAa,OAAb,EAAsBiB,KAAtB;AACD,GAxFoC,CA0FrC;;;AACA,MAAMsY,IAAI,aAAMF,SAAS,CAAC5X,CAAV,GAAcN,OAApB,cAA+BkY,SAAS,CAAC3X,CAAV,GAAcP,OAA7C,cAAwDF,KAAxD,cAAiEC,MAAjE,CAAV;AACA6C,gDAAM,CAACkL,KAAP,mBAAwBsK,IAAxB;AACAT,SAAO,CAAC9Y,IAAR,CAAa,SAAb,EAAwBuZ,IAAxB;AACD,CA9FM;AAgGQ;AACb5a,SAAO,EAAPA,OADa;AAEbka,MAAI,EAAJA;AAFa,CAAf,E;;;;;;;;;;;ACtPA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,4yBAA4yB;AACvzB,aAAa,2dAA2d;AACxe;AACA;AACA;;AAEA;AACA;AACA;AACA,wB;AACA;AACA;AACA,e;AACA;AACA;AACA,qC;AACA;AACA;AACA,4B;AACA;AACA;AACA,wB;AACA;AACA;AACA,2CAA2C,0B;AAC3C;AACA;AACA;AACA;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA;AACA,mC;AACA;AACA;AACA,mB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,WAAW,8F;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW,6F;AACX;AACA;AACA,WAAW,8F;AACX;AACA;AACA,SAAS,+C;AACT;AACA;AACA,SAAS,6C;AACT;AACA;AACA,SAAS,6C;AACT;AACA;AACA,SAAS,2C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,CAAC;AACD,SAAS,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,8GAA8G,EAAE,SAAS,EAAE,iBAAiB,eAAe,UAAU,wEAAwE,gFAAgF,GAAG,iCAAiC,8BAA8B,2BAA2B,EAAE,iCAAiC,EAAE,iCAAiC,cAAc,2CAA2C,6CAA6C,QAAQ,EAAE,uHAAuH,gBAAgB,2CAA2C,EAAE,4DAA4D,gBAAgB,oBAAoB,eAAe,kCAAkC,oGAAoG,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,2BAA2B,iCAAiC,GAAG,QAAQ,gBAAgB,iCAAiC,EAAE,2CAA2C,eAAe,kCAAkC,iBAAiB,aAAa,EAAE,iCAAiC,eAAe,UAAU,gBAAgB,UAAU,4CAA4C,iCAAiC,gBAAgB,UAAU,EAAE,uBAAuB,wEAAwE,UAAU;AAC3nD,iBAAiB,oCAAoC;AACrD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA;AACA;AACA;AACA,uCAAuC,kBAAkB;AACzD;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,+EAA+E,qBAAqB,WAAW,wBAAwB,EAAE,gQAAgQ;AACzY,aAAa,UAAU,kCAAkC,YAAY,kCAAkC,WAAW,sCAAsC,YAAY;AACpK,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;;;;AC7wBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA,IAAIW,SAAS,GAAG,CAAhB;AACO,IAAMJ,QAAQ,GAAG,SAAXA,QAAW,CAAS5W,IAAT,EAAeiX,IAAf,EAAqB7E,QAArB,EAA+BvV,IAA/B,EAAqC;AAC3D,MAAMqa,eAAe,GAAG,SAAlBA,eAAkB,CAASrL,IAAT,EAAe;AACrC,YAAQA,IAAR;AACE,WAAK+I,qDAAY,CAACC,WAAlB;AACE,eAAO,aAAP;;AACF,WAAKD,qDAAY,CAACE,SAAlB;AACE,eAAO,WAAP;;AACF,WAAKF,qDAAY,CAACG,WAAlB;AACE,eAAO,aAAP;;AACF,WAAKH,qDAAY,CAACI,UAAlB;AACE,eAAO,YAAP;AARJ;AAUD,GAXD;;AAaAiC,MAAI,CAACpT,MAAL,GAAcoT,IAAI,CAACpT,MAAL,CAAYe,MAAZ,CAAmB,UAAAC,CAAC;AAAA,WAAI,CAACC,MAAM,CAACC,KAAP,CAAaF,CAAC,CAAC3F,CAAf,CAAL;AAAA,GAApB,CAAd,CAd2D,CAgB3D;;AACA,MAAMyF,QAAQ,GAAGsS,IAAI,CAACpT,MAAtB,CAjB2D,CAmB3D;;AACA,MAAMmB,YAAY,GAAGC,+CAAI,GACtBhG,CADkB,CAChB,UAASiG,CAAT,EAAY;AACb,WAAOA,CAAC,CAACjG,CAAT;AACD,GAHkB,EAIlBC,CAJkB,CAIhB,UAASgG,CAAT,EAAY;AACb,WAAOA,CAAC,CAAChG,CAAT;AACD,GANkB,EAOlBiG,KAPkB,CAOZC,6CAPY,CAArB;AASA,MAAMC,OAAO,GAAGrF,IAAI,CACjBL,MADa,CACN,MADM,EAEbnC,IAFa,CAER,GAFQ,EAEHwH,YAAY,CAACL,QAAD,CAFT,EAGbnH,IAHa,CAGR,IAHQ,EAGF,SAASwZ,SAHP,EAIbxZ,IAJa,CAIR,OAJQ,EAIC,UAJD,CAAhB;AAKA,MAAI8H,GAAG,GAAG,EAAV;;AACA,MAAIzI,IAAI,CAAC2I,mBAAT,EAA8B;AAC5BF,OAAG,GACDG,MAAM,CAACC,QAAP,CAAgBC,QAAhB,GACA,IADA,GAEAF,MAAM,CAACC,QAAP,CAAgBE,IAFhB,GAGAH,MAAM,CAACC,QAAP,CAAgBG,QAHhB,GAIAJ,MAAM,CAACC,QAAP,CAAgBI,MALlB;AAMAR,OAAG,GAAGA,GAAG,CAAChE,OAAJ,CAAY,KAAZ,EAAmB,KAAnB,CAAN;AACAgE,OAAG,GAAGA,GAAG,CAAChE,OAAJ,CAAY,KAAZ,EAAmB,KAAnB,CAAN;AACD;;AAED,MAAI8Q,QAAQ,CAACA,QAAT,CAAkBqC,QAAlB,IAA8B,CAAlC,EAAqC;AACnCpP,WAAO,CAAC7H,IAAR,CAAa,OAAb,EAAsB,sBAAtB;AACD;;AACD,MAAI4U,QAAQ,CAACA,QAAT,CAAkB+E,KAAlB,KAA4B,MAAhC,EAAwC;AACtC9R,WAAO,CAAC7H,IAAR,CACE,cADF,EAEE,SAAS8H,GAAT,GAAe,GAAf,GAAqB4R,eAAe,CAAC9E,QAAQ,CAACA,QAAT,CAAkB+E,KAAnB,CAApC,GAAgE,OAAhE,GAA0E,GAF5E;AAID;;AACD,MAAI/E,QAAQ,CAACA,QAAT,CAAkBgF,KAAlB,KAA4B,MAAhC,EAAwC;AACtC/R,WAAO,CAAC7H,IAAR,CACE,YADF,EAEE,SAAS8H,GAAT,GAAe,GAAf,GAAqB4R,eAAe,CAAC9E,QAAQ,CAACA,QAAT,CAAkBgF,KAAnB,CAApC,GAAgE,KAAhE,GAAwE,GAF1E;AAID;;AAED,MAAInY,CAAJ,EAAOC,CAAP;AACA,MAAMmY,CAAC,GAAGJ,IAAI,CAACpT,MAAL,CAAYpH,MAAtB,CA/D2D,CAgE3D;;AACA,MAAI6a,aAAa,GAAG1D,8CAAK,CAAC2D,iBAAN,CAAwBN,IAAI,CAACpT,MAA7B,CAApB;AACA5E,GAAC,GAAGqY,aAAa,CAACrY,CAAlB;AACAC,GAAC,GAAGoY,aAAa,CAACpY,CAAlB;AAEA,MAAIsY,SAAJ,EAAeC,SAAf;AACA,MAAIC,SAAJ,EAAeC,SAAf;;AAEA,MAAIN,CAAC,GAAG,CAAJ,KAAU,CAAV,IAAeA,CAAC,GAAG,CAAvB,EAA0B;AACxB,QAAIO,mBAAmB,GAAGhE,8CAAK,CAACiE,uBAAN,CACxBzF,QAAQ,CAACA,QAAT,CAAkB+E,KAAlB,KAA4B,MADJ,EAExBF,IAAI,CAACpT,MAFmB,EAGxBoT,IAAI,CAACpT,MAAL,CAAY,CAAZ,CAHwB,CAA1B;AAKA,QAAIiU,mBAAmB,GAAGlE,8CAAK,CAACiE,uBAAN,CACxBzF,QAAQ,CAACA,QAAT,CAAkBgF,KAAlB,KAA4B,MADJ,EAExBH,IAAI,CAACpT,MAFmB,EAGxBoT,IAAI,CAACpT,MAAL,CAAYwT,CAAC,GAAG,CAAhB,CAHwB,CAA1B;AAMA9V,kDAAM,CAACkL,KAAP,CAAa,yBAAyB5N,IAAI,CAACC,SAAL,CAAe8Y,mBAAf,CAAtC;AACArW,kDAAM,CAACkL,KAAP,CAAa,yBAAyB5N,IAAI,CAACC,SAAL,CAAegZ,mBAAf,CAAtC;AAEAN,aAAS,GAAGI,mBAAmB,CAAC3Y,CAAhC;AACAwY,aAAS,GAAGG,mBAAmB,CAAC1Y,CAAhC;AACAwY,aAAS,GAAGI,mBAAmB,CAAC7Y,CAAhC;AACA0Y,aAAS,GAAGG,mBAAmB,CAAC5Y,CAAhC;AACD;;AAED,MAAI,OAAOkT,QAAQ,CAACkD,KAAhB,KAA0B,WAA9B,EAA2C;AACzC,QAAMiB,CAAC,GAAGvW,IAAI,CAACL,MAAL,CAAY,GAAZ,EAAiBnC,IAAjB,CAAsB,OAAtB,EAA+B,YAA/B,CAAV;AACA,QAAMC,KAAK,GAAG8Y,CAAC,CACZ5W,MADW,CACJ,MADI,EAEXnC,IAFW,CAEN,OAFM,EAEG,OAFH,EAGXA,IAHW,CAGN,GAHM,EAGDyB,CAHC,EAIXzB,IAJW,CAIN,GAJM,EAID0B,CAJC,EAKX1B,IALW,CAKN,MALM,EAKE,KALF,EAMXA,IANW,CAMN,aANM,EAMS,QANT,EAOXE,IAPW,CAON0U,QAAQ,CAACkD,KAPH,CAAd;AASA7P,UAAM,CAAChI,KAAP,GAAeA,KAAf;AACA,QAAMsa,MAAM,GAAGta,KAAK,CAACP,IAAN,GAAae,OAAb,EAAf;AAEAsY,KAAC,CAAChZ,MAAF,CAAS,MAAT,EAAiB,cAAjB,EACGC,IADH,CACQ,OADR,EACiB,KADjB,EAEGA,IAFH,CAEQ,GAFR,EAEaua,MAAM,CAAC9Y,CAAP,GAAWpC,IAAI,CAAC8B,OAAL,GAAe,CAFvC,EAGGnB,IAHH,CAGQ,GAHR,EAGaua,MAAM,CAAC7Y,CAAP,GAAWrC,IAAI,CAAC8B,OAAL,GAAe,CAHvC,EAIGnB,IAJH,CAIQ,OAJR,EAIiBua,MAAM,CAACtZ,KAAP,GAAe5B,IAAI,CAAC8B,OAJrC,EAKGnB,IALH,CAKQ,QALR,EAKkBua,MAAM,CAACrZ,MAAP,GAAgB7B,IAAI,CAAC8B,OALvC;AAMD;;AAED4C,gDAAM,CAACjB,IAAP,CAAY,wBAAwBzB,IAAI,CAACC,SAAL,CAAesT,QAAf,CAApC;;AACA,MAAI,OAAOA,QAAQ,CAAC4F,cAAhB,KAAmC,WAAnC,IAAkD5F,QAAQ,CAAC4F,cAAT,KAA4B,MAAlF,EAA0F;AACxF,QAAMzB,EAAC,GAAGvW,IAAI,CAACL,MAAL,CAAY,GAAZ,EAAiBnC,IAAjB,CAAsB,OAAtB,EAA+B,aAA/B,CAAV;;AACA+Y,MAAC,CAAC5W,MAAF,CAAS,MAAT,EACGnC,IADH,CACQ,OADR,EACiB,OADjB,EAEGA,IAFH,CAEQ,GAFR,EAEaga,SAFb,EAGGha,IAHH,CAGQ,GAHR,EAGaia,SAHb,EAIGja,IAJH,CAIQ,MAJR,EAIgB,OAJhB,EAKGA,IALH,CAKQ,WALR,EAKqB,GALrB,EAMGE,IANH,CAMQ0U,QAAQ,CAAC4F,cANjB;AAOD;;AACD,MAAI,OAAO5F,QAAQ,CAAC6F,cAAhB,KAAmC,WAAnC,IAAkD7F,QAAQ,CAAC6F,cAAT,KAA4B,MAAlF,EAA0F;AACxF,QAAM1B,GAAC,GAAGvW,IAAI,CAACL,MAAL,CAAY,GAAZ,EAAiBnC,IAAjB,CAAsB,OAAtB,EAA+B,aAA/B,CAAV;;AACA+Y,OAAC,CAAC5W,MAAF,CAAS,MAAT,EACGnC,IADH,CACQ,OADR,EACiB,OADjB,EAEGA,IAFH,CAEQ,GAFR,EAEaka,SAFb,EAGGla,IAHH,CAGQ,GAHR,EAGama,SAHb,EAIGna,IAJH,CAIQ,MAJR,EAIgB,OAJhB,EAKGA,IALH,CAKQ,WALR,EAKqB,GALrB,EAMGE,IANH,CAMQ0U,QAAQ,CAAC6F,cANjB;AAOD;;AAEDjB,WAAS;AACV,CA1IM;AA4IA,IAAML,SAAS,GAAG,SAAZA,SAAY,CAAS3W,IAAT,EAAeyW,QAAf,EAAyB5Z,IAAzB,EAA+B;AACtD0E,gDAAM,CAACjB,IAAP,CAAY,qBAAqBmW,QAAjC;AAEA,MAAIyB,WAAW,GAAG,aAAlB;;AACA,MAAIzB,QAAQ,CAACjF,UAAT,CAAoB/U,MAApB,GAA6B,CAAjC,EAAoC;AAClCyb,eAAW,GAAGA,WAAW,GAAGzB,QAAQ,CAACjF,UAAT,CAAoBtB,IAApB,CAAyB,GAAzB,CAA5B;AACD;;AAED,MAAM7S,EAAE,GAAGoZ,QAAQ,CAACpZ,EAApB;AACA,MAAM8a,SAAS,GAAG;AAChB9a,MAAE,EAAEA,EADY;AAEhBI,SAAK,EAAEgZ,QAAQ,CAACpZ,EAFA;AAGhBoB,SAAK,EAAE,CAHS;AAIhBC,UAAM,EAAE;AAJQ,GAAlB,CATsD,CAgBtD;;AACA,MAAM6X,CAAC,GAAGvW,IAAI,CACXL,MADO,CACA,GADA,EAEPnC,IAFO,CAEF,IAFE,EAEIqU,4DAAW,CAACxU,EAAD,CAFf,EAGPG,IAHO,CAGF,OAHE,EAGO0a,WAHP,CAAV,CAjBsD,CAsBtD;;AACA,MAAI5C,KAAJ;;AACA,MAAImB,QAAQ,CAAC9C,IAAb,EAAmB;AACjB2B,SAAK,GAAGiB,CAAC,CACN5W,MADK,CACE,OADF,EAELnC,IAFK,CAEA,YAFA,EAEciZ,QAAQ,CAAC9C,IAFvB,EAGLnW,IAHK,CAGA,QAHA,EAGU,QAHV,EAILmC,MAJK,CAIE,MAJF,EAKLnC,IALK,CAKA,GALA,EAKKX,IAAI,CAACqZ,UAAL,GAAkBrZ,IAAI,CAAC8B,OAL5B,EAMLnB,IANK,CAMA,GANA,EAMK,CANL,CAAR;AAOD,GARD,MAQO;AACL8X,SAAK,GAAGiB,CAAC,CACN5W,MADK,CACE,MADF,EAELnC,IAFK,CAEA,GAFA,EAEKX,IAAI,CAACqZ,UAAL,GAAkBrZ,IAAI,CAAC8B,OAF5B,EAGLnB,IAHK,CAGA,GAHA,EAGK,CAHL,CAAR;AAID,GArCqD,CAuCtD;;;AACA,MAAI4a,OAAO,GAAG,IAAd;AACA3B,UAAQ,CAAC9E,WAAT,CAAqBpN,OAArB,CAA6B,UAASoO,MAAT,EAAiB;AAC5C,QAAM0F,UAAU,GAAG/C,KAAK,CAAC3V,MAAN,CAAa,OAAb,EAAsBjC,IAAtB,CAA2B,MAAMiV,MAAN,GAAe,GAA1C,CAAnB;AACA,QAAI,CAACyF,OAAL,EAAcC,UAAU,CAAC7a,IAAX,CAAgB,IAAhB,EAAsBX,IAAI,CAACqZ,UAA3B;AACdkC,WAAO,GAAG,KAAV;AACD,GAJD;AAMA,MAAIE,gBAAgB,GAAG7B,QAAQ,CAACpZ,EAAhC;;AAEA,MAAIoZ,QAAQ,CAAC5K,IAAT,KAAkB9N,SAAlB,IAA+B0Y,QAAQ,CAAC5K,IAAT,KAAkB,EAArD,EAAyD;AACvDyM,oBAAgB,IAAI,MAAM7B,QAAQ,CAAC5K,IAAf,GAAsB,GAA1C;AACD;;AAED,MAAM0M,UAAU,GAAGjD,KAAK,CACrB3V,MADgB,CACT,OADS,EAEhBjC,IAFgB,CAEX4a,gBAFW,EAGhB9a,IAHgB,CAGX,OAHW,EAGF,OAHE,CAAnB,CArDsD,CA0DtD;;AACA,MAAI,CAAC4a,OAAL,EAAcG,UAAU,CAAC/a,IAAX,CAAgB,IAAhB,EAAsBX,IAAI,CAACqZ,UAA3B;AAEd,MAAMsC,WAAW,GAAGlD,KAAK,CAACpY,IAAN,GAAae,OAAb,GAAuBS,MAA3C;AAEA,MAAM+Z,WAAW,GAAGlC,CAAC,CAClB5W,MADiB,CACV,MADU,EACF;AADE,GAEjBnC,IAFiB,CAEZ,IAFY,EAEN,CAFM,EAGjBA,IAHiB,CAGZ,IAHY,EAGNX,IAAI,CAAC8B,OAAL,GAAe6Z,WAAf,GAA6B3b,IAAI,CAACoZ,aAAL,GAAqB,CAH5C,EAIjBzY,IAJiB,CAIZ,IAJY,EAINX,IAAI,CAAC8B,OAAL,GAAe6Z,WAAf,GAA6B3b,IAAI,CAACoZ,aAAL,GAAqB,CAJ5C,CAApB;AAMA,MAAMvE,OAAO,GAAG6E,CAAC,CACd5W,MADa,CACN,MADM,EACE;AADF,GAEbnC,IAFa,CAER,GAFQ,EAEHX,IAAI,CAAC8B,OAFF,EAGbnB,IAHa,CAGR,GAHQ,EAGHgb,WAAW,GAAG3b,IAAI,CAACoZ,aAAnB,GAAmCpZ,IAAI,CAACqZ,UAHrC,EAIb1Y,IAJa,CAIR,MAJQ,EAIA,OAJA,EAKbA,IALa,CAKR,OALQ,EAKC,WALD,CAAhB;AAOA4a,SAAO,GAAG,IAAV;AACA3B,UAAQ,CAAC/E,OAAT,CAAiBnN,OAAjB,CAAyB,UAASoO,MAAT,EAAiB;AACxC+F,YAAQ,CAAChH,OAAD,EAAUiB,MAAV,EAAkByF,OAAlB,EAA2Bvb,IAA3B,CAAR;AACAub,WAAO,GAAG,KAAV;AACD,GAHD;AAKA,MAAMO,UAAU,GAAGjH,OAAO,CAACxU,IAAR,GAAee,OAAf,EAAnB;AAEA,MAAM2a,WAAW,GAAGrC,CAAC,CAClB5W,MADiB,CACV,MADU,EACF;AADE,GAEjBnC,IAFiB,CAEZ,IAFY,EAEN,CAFM,EAGjBA,IAHiB,CAGZ,IAHY,EAGNX,IAAI,CAAC8B,OAAL,GAAe6Z,WAAf,GAA6B3b,IAAI,CAACoZ,aAAlC,GAAkD0C,UAAU,CAACja,MAHvD,EAIjBlB,IAJiB,CAIZ,IAJY,EAINX,IAAI,CAAC8B,OAAL,GAAe6Z,WAAf,GAA6B3b,IAAI,CAACoZ,aAAlC,GAAkD0C,UAAU,CAACja,MAJvD,CAApB;AAMA,MAAM+S,OAAO,GAAG8E,CAAC,CACd5W,MADa,CACN,MADM,EACE;AADF,GAEbnC,IAFa,CAER,GAFQ,EAEHX,IAAI,CAAC8B,OAFF,EAGbnB,IAHa,CAGR,GAHQ,EAGHgb,WAAW,GAAG,IAAI3b,IAAI,CAACoZ,aAAvB,GAAuC0C,UAAU,CAACja,MAAlD,GAA2D7B,IAAI,CAACqZ,UAH7D,EAIb1Y,IAJa,CAIR,MAJQ,EAIA,OAJA,EAKbA,IALa,CAKR,OALQ,EAKC,WALD,CAAhB;AAOA4a,SAAO,GAAG,IAAV;AAEA3B,UAAQ,CAAChF,OAAT,CAAiBlN,OAAjB,CAAyB,UAASsU,MAAT,EAAiB;AACxCH,YAAQ,CAACjH,OAAD,EAAUoH,MAAV,EAAkBT,OAAlB,EAA2Bvb,IAA3B,CAAR;AACAub,WAAO,GAAG,KAAV;AACD,GAHD;AAKA,MAAMU,QAAQ,GAAGvC,CAAC,CAACrZ,IAAF,GAASe,OAAT,EAAjB;AACA,MAAMjB,IAAI,GAAGuZ,CAAC,CACXhZ,MADU,CACH,MADG,EACK,cADL,EAEVC,IAFU,CAEL,GAFK,EAEA,CAFA,EAGVA,IAHU,CAGL,GAHK,EAGA,CAHA,EAIVA,IAJU,CAIL,OAJK,EAIIsb,QAAQ,CAACra,KAAT,GAAiB,IAAI5B,IAAI,CAAC8B,OAJ9B,EAKVnB,IALU,CAKL,QALK,EAKKsb,QAAQ,CAACpa,MAAT,GAAkB7B,IAAI,CAAC8B,OAAvB,GAAiC,MAAM9B,IAAI,CAACoZ,aALjD,CAAb;AAOA,MAAM8C,SAAS,GAAG/b,IAAI,CAACE,IAAL,GAAYe,OAAZ,GAAsBQ,KAAxC,CAhHsD,CAkHtD;AACA;;AACA6W,OAAK,CAACpY,IAAN,GAAa8b,UAAb,CAAwBzU,OAAxB,CAAgC,UAAStF,CAAT,EAAY;AAC1CA,KAAC,CAAC0C,YAAF,CAAe,GAAf,EAAoB,CAACoX,SAAS,GAAG9Z,CAAC,CAAChB,OAAF,GAAYQ,KAAzB,IAAkC,CAAtD;AACD,GAFD;;AAIA,MAAIgY,QAAQ,CAAC/C,OAAb,EAAsB;AACpB4B,SAAK,CAAC/X,MAAN,CAAa,OAAb,EAAsBG,IAAtB,CAA2B+Y,QAAQ,CAAC/C,OAApC;AACD;;AAED+E,aAAW,CAACjb,IAAZ,CAAiB,IAAjB,EAAuBub,SAAvB;AACAH,aAAW,CAACpb,IAAZ,CAAiB,IAAjB,EAAuBub,SAAvB;AAEAZ,WAAS,CAAC1Z,KAAV,GAAkBsa,SAAlB;AACAZ,WAAS,CAACzZ,MAAV,GAAmBoa,QAAQ,CAACpa,MAAT,GAAkB7B,IAAI,CAAC8B,OAAvB,GAAiC,MAAM9B,IAAI,CAACoZ,aAA/D;AAEA,SAAOkC,SAAP;AACD,CAnIM;AAqIA,IAAMc,WAAW,GAAG,SAAdA,WAAc,CAASvb,IAAT,EAAe;AACxC,MAAMwb,UAAU,GAAG,yCAAnB;AACA,MAAMC,WAAW,GAAG,iGAApB;AAEA,MAAIC,UAAU,GAAG1b,IAAI,CAAC6V,KAAL,CAAW2F,UAAX,CAAjB;AACA,MAAIG,WAAW,GAAG3b,IAAI,CAAC6V,KAAL,CAAW4F,WAAX,CAAlB;;AAEA,MAAIC,UAAJ,EAAgB;AACd,WAAOE,iBAAiB,CAACF,UAAD,CAAxB;AACD,GAFD,MAEO,IAAIC,WAAJ,EAAiB;AACtB,WAAOE,kBAAkB,CAACF,WAAD,CAAzB;AACD,GAFM,MAEA;AACL,WAAOG,kBAAkB,CAAC9b,IAAD,CAAzB;AACD;AACF,CAdM;;AAgBP,IAAM4b,iBAAiB,GAAG,SAApBA,iBAAoB,CAASG,UAAT,EAAqB;AAC7C,MAAIC,UAAU,GAAGD,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAAV,CAActX,IAAd,EAAhB,GAAuC,EAAxD;AACA,MAAIwX,SAAS,GAAGF,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAAV,CAActX,IAAd,EAAhB,GAAuC,EAAvD;AACA,MAAIiP,WAAW,GAAGqI,UAAU,CAAC,CAAD,CAAV,GAAgBG,iBAAiB,CAACH,UAAU,CAAC,CAAD,CAAX,CAAjC,GAAmD,EAArE;AACA,MAAII,SAAS,GAAGJ,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAAV,CAActX,IAAd,EAAhB,GAAuC,EAAvD;AAEA,SAAO;AACL2X,eAAW,EAAEJ,UAAU,GAAGC,SAAb,GAAyBvI,WAAzB,GAAuC,GAAvC,GAA6CyI,SADrD;AAELE,YAAQ,EAAE;AAFL,GAAP;AAID,CAVD;;AAYA,IAAMR,kBAAkB,GAAG,SAArBA,kBAAqB,CAASE,UAAT,EAAqB;AAC9C,MAAIM,QAAQ,GAAG,EAAf;AACA,MAAID,WAAW,GAAGL,UAAlB;AAEA,MAAIC,UAAU,GAAGD,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAAV,CAActX,IAAd,EAAhB,GAAuC,EAAxD;AACA,MAAI6X,UAAU,GAAGP,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAAV,CAActX,IAAd,EAAhB,GAAuC,EAAxD;AACA,MAAI8X,UAAU,GAAGR,UAAU,CAAC,CAAD,CAAV,GAAgBG,iBAAiB,CAACH,UAAU,CAAC,CAAD,CAAX,CAAjC,GAAmD,EAApE;AACA,MAAIS,UAAU,GAAGT,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAAV,CAActX,IAAd,EAAhB,GAAuC,EAAxD;AACA,MAAIgY,UAAU,GAAGV,UAAU,CAAC,CAAD,CAAV,GAAgB,QAAQG,iBAAiB,CAACH,UAAU,CAAC,CAAD,CAAX,CAAjB,CAAiCtX,IAAjC,EAAxB,GAAkE,EAAnF;AAEA2X,aAAW,GAAGJ,UAAU,GAAGM,UAAb,GAA0B,GAA1B,GAAgCC,UAAhC,GAA6C,GAA7C,GAAmDE,UAAjE;AAEAJ,UAAQ,GAAGK,eAAe,CAACF,UAAD,CAA1B;AAEA,MAAIvH,MAAM,GAAG;AACXmH,eAAW,EAAEA,WADF;AAEXC,YAAQ,EAAEA;AAFC,GAAb;AAKA,SAAOpH,MAAP;AACD,CApBD;;AAsBA,IAAM6G,kBAAkB,GAAG,SAArBA,kBAAqB,CAAS9b,IAAT,EAAe;AACxC;AACA,MAAI2c,UAAU,GAAG,EAAjB;AACA,MAAIN,QAAQ,GAAG,EAAf;AACA,MAAII,UAAU,GAAG,EAAjB;AACA,MAAIG,WAAW,GAAG5c,IAAI,CAACgP,OAAL,CAAa,GAAb,CAAlB;AACA,MAAI6N,SAAS,GAAG7c,IAAI,CAACgP,OAAL,CAAa,GAAb,CAAhB;;AAEA,MAAI4N,WAAW,GAAG,CAAd,IAAmBC,SAAS,GAAGD,WAA/B,IAA8CC,SAAS,IAAI7c,IAAI,CAACjB,MAApE,EAA4E;AAC1E,QAAIgd,UAAU,GAAG/b,IAAI,CAAC6V,KAAL,CAAW,kBAAX,CAAjB;AACA,QAAImG,UAAU,GAAGD,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAAV,CAActX,IAAd,EAAhB,GAAuC,EAAxD;AACA,QAAI6X,UAAU,GAAGP,UAAU,CAAC,CAAD,CAA3B;AACA,QAAIQ,UAAU,GAAGvc,IAAI,CAACsV,SAAL,CAAesH,WAAW,GAAG,CAA7B,EAAgCC,SAAhC,CAAjB;AACA,QAAIL,UAAU,GAAGxc,IAAI,CAACsV,SAAL,CAAeuH,SAAf,EAA0BA,SAAS,GAAG,CAAtC,CAAjB;AACAR,YAAQ,GAAGK,eAAe,CAACF,UAAD,CAA1B;AAEAG,cAAU,GAAGX,UAAU,GAAGM,UAAb,GAA0B,GAA1B,GAAgCJ,iBAAiB,CAACK,UAAU,CAAC9X,IAAX,EAAD,CAAjD,GAAuE,GAApF;;AAEA,QAAIoY,SAAS,GAAGF,UAAU,CAAC5d,MAA3B,EAAmC;AACjC0d,gBAAU,GAAGzc,IAAI,CAACsV,SAAL,CAAeuH,SAAS,GAAG,CAA3B,EAA8BpY,IAA9B,EAAb;;AACA,UAAIgY,UAAU,KAAK,EAAnB,EAAuB;AACrBA,kBAAU,GAAG,QAAQP,iBAAiB,CAACO,UAAD,CAAtC;AACD;AACF;AACF,GAhBD,MAgBO;AACL;AACAE,cAAU,GAAGT,iBAAiB,CAAClc,IAAD,CAA9B;AACD;;AAED,MAAIiV,MAAM,GAAG;AACXmH,eAAW,EAAEO,UAAU,GAAGF,UADf;AAEXJ,YAAQ,EAAEA;AAFC,GAAb;AAKA,SAAOpH,MAAP;AACD,CAnCD;;AAqCA,IAAM+F,QAAQ,GAAG,SAAXA,QAAW,CAAS8B,MAAT,EAAiBC,GAAjB,EAAsBrC,OAAtB,EAA+Bvb,IAA/B,EAAqC;AACpD,MAAI8V,MAAM,GAAGsG,WAAW,CAACwB,GAAD,CAAxB;AAEA,MAAMC,KAAK,GAAGF,MAAM,CACjB7a,MADW,CACJ,OADI,EAEXnC,IAFW,CAEN,GAFM,EAEDX,IAAI,CAAC8B,OAFJ,EAGXjB,IAHW,CAGNiV,MAAM,CAACmH,WAHD,CAAd;;AAKA,MAAInH,MAAM,CAACoH,QAAP,KAAoB,EAAxB,EAA4B;AAC1BW,SAAK,CAACld,IAAN,CAAW,OAAX,EAAoBmV,MAAM,CAACoH,QAA3B;AACD;;AAED,MAAI,CAAC3B,OAAL,EAAc;AACZsC,SAAK,CAACld,IAAN,CAAW,IAAX,EAAiBX,IAAI,CAACqZ,UAAtB;AACD;AACF,CAfD;;AAiBA,IAAM0D,iBAAiB,GAAG,SAApBA,iBAAoB,CAASlc,IAAT,EAAe;AACvC,MAAIid,WAAW,GAAGjd,IAAlB;;AAEA,MAAIA,IAAI,CAACgP,OAAL,CAAa,GAAb,KAAqB,CAAC,CAA1B,EAA6B;AAC3BiO,eAAW,GAAGA,WAAW,CAACrZ,OAAZ,CAAoB,GAApB,EAAyB,GAAzB,CAAd;AACAqZ,eAAW,GAAGA,WAAW,CAACrZ,OAAZ,CAAoB,GAApB,EAAyB,GAAzB,CAAd;AAEA,WAAOsY,iBAAiB,CAACe,WAAD,CAAxB;AACD,GALD,MAKO;AACL,WAAOA,WAAP;AACD;AACF,CAXD;;AAaA,IAAMP,eAAe,GAAG,SAAlBA,eAAkB,CAASF,UAAT,EAAqB;AAC3C,UAAQA,UAAR;AACE,SAAK,GAAL;AACE,aAAO,oBAAP;;AACF,SAAK,GAAL;AACE,aAAO,4BAAP;;AACF;AACE,aAAO,EAAP;AANJ;AAQD,CATD;;AAWe;AACbvD,WAAS,EAATA,SADa;AAEbC,UAAQ,EAARA,QAFa;AAGbqC,aAAW,EAAXA;AAHa,CAAf,E;;;;;;;;;;;;ACvZA;AAAA;AAAA;AAAA;AAAO,IAAM2B,OAAO,GAAG,SAAVA,OAAU,CAAApZ,CAAC,EAAI;AAC1B,MAAI,CAACA,CAAL,EAAQ,OAAO,CAAP;AACR,MAAIqZ,GAAG,GAAGC,kBAAkB,CAACtZ,CAAD,CAA5B;AACAqZ,KAAG,GAAGA,GAAG,CAACvZ,OAAJ,CAAY,MAAZ,EAAoB,MAApB,CAAN;AACA,SAAOuZ,GAAG,CAAChZ,KAAJ,CAAU,MAAV,CAAP;AACD,CALM;AAOA,IAAMkS,YAAY,GAAG,SAAfA,YAAe,CAACrW,IAAD,EAAOxB,MAAP,EAAkB;AAC5C,MAAIue,GAAG,GAAG/c,IAAV;AACA,MAAIS,UAAU,GAAG,IAAjB;AACA,MACEjC,MAAM,CAACgC,SAAP,KACChC,MAAM,CAACgC,SAAP,CAAiBC,UAAjB,KAAgC,KAAhC,IAAyCjC,MAAM,CAACgC,SAAP,CAAiBC,UAAjB,KAAgC,OAD1E,CADF,EAIEA,UAAU,GAAG,KAAb;;AAEF,MAAIjC,MAAM,CAACkY,aAAP,KAAyB,OAAzB,IAAoCjW,UAAxC,EAAoD;AAClD;AACAsc,OAAG,GAAGK,kBAAkB,CAACL,GAAD,CAAxB;AACAA,OAAG,GAAGA,GAAG,CAACnZ,OAAJ,CAAY,IAAZ,EAAkB,MAAlB,EAA0BA,OAA1B,CAAkC,IAAlC,EAAwC,MAAxC,CAAN;AACAmZ,OAAG,GAAGA,GAAG,CAACnZ,OAAJ,CAAY,IAAZ,EAAkB,UAAlB,CAAN;AACAmZ,OAAG,GAAGM,kBAAkB,CAACN,GAAD,CAAxB;AACD;;AAED,SAAOA,GAAP;AACD,CAlBM;AAoBA,IAAMO,cAAc,GAAG,cAAvB;;AAEP,IAAMF,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAtZ,CAAC,EAAI;AAC9B,SAAOA,CAAC,CAACF,OAAF,CAAU0Z,cAAV,EAA0B,MAA1B,CAAP;AACD,CAFD;;AAIA,IAAMD,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAvZ,CAAC,EAAI;AAC9B,SAAOA,CAAC,CAACF,OAAF,CAAU,OAAV,EAAmB,OAAnB,CAAP;AACD,CAFD;;AAIe;AACbsZ,SAAO,EAAPA,OADa;AAEb7G,cAAY,EAAZA,YAFa;AAGbiH,gBAAc,EAAdA;AAHa,CAAf,E;;;;;;;;;;;;ACrCA;AAAA;AAAA;;;AAGA;AAEA,IAAIC,QAAQ,GAAG,EAAf;AACA,IAAIC,aAAa,GAAG,EAApB;AACA,IAAI5F,KAAK,GAAG,EAAZ;AAEA,IAAM6F,WAAW,GAAG;AAClBC,aAAW,EAAE,aADK;AAElBC,cAAY,EAAE,cAFI;AAGlBC,aAAW,EAAE,aAHK;AAIlBC,UAAQ,EAAE;AAJQ,CAApB;AAOA,IAAMC,cAAc,GAAG;AACrBC,iBAAe,EAAE,iBADI;AAErBC,aAAW,EAAE;AAFQ,CAAvB;;AAKA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAASlU,IAAT,EAAe;AAC/B,MAAI,OAAOwT,QAAQ,CAACxT,IAAD,CAAf,KAA0B,WAA9B,EAA2C;AACzCwT,YAAQ,CAACxT,IAAD,CAAR,GAAiBA,IAAjB;AACAlG,kDAAM,CAACkL,KAAP,CAAa,oBAAb,EAAmChF,IAAnC;AACD;AACF,CALD;;AAOA,IAAMmU,WAAW,GAAG,SAAdA,WAAc;AAAA,SAAMX,QAAN;AAAA,CAApB;AAEA;;;;;;;;;AAOA,IAAMY,eAAe,GAAG,SAAlBA,eAAkB,CAASC,IAAT,EAAeC,IAAf,EAAqBC,IAArB,EAA2BC,KAA3B,EAAkC;AACxD,MAAIC,GAAG,GAAG;AACRC,WAAO,EAAEL,IADD;AAERM,SAAK,EAAEL,IAFC;AAGRM,WAAO,EAAEL,IAHD;AAIRM,WAAO,EAAEL;AAJD,GAAV;AAOAf,eAAa,CAAC/W,IAAd,CAAmB+X,GAAnB;AACA3a,gDAAM,CAACkL,KAAP,CAAa,0BAAb,EAAyCyP,GAAzC;AACD,CAVD;;AAYA,IAAMK,gBAAgB,GAAG,SAAnBA,gBAAmB;AAAA,SAAMrB,aAAN;AAAA,CAAzB,C,CAEA;;;AACA,IAAMsB,QAAQ,GAAG,SAAXA,QAAW,CAAS/B,GAAT,EAAc;AAC7BnF,OAAK,GAAGmF,GAAR;AACD,CAFD;;AAIA,IAAMgC,QAAQ,GAAG,SAAXA,QAAW,GAAW;AAC1B,SAAOnH,KAAP;AACD,CAFD;;AAIA,IAAMlV,KAAK,GAAG,SAARA,KAAQ,GAAW;AACvB6a,UAAQ,GAAG,EAAX;AACAC,eAAa,GAAG,EAAhB;AACA5F,OAAK,GAAG,EAAR;AACD,CAJD;;AAMe;AACb6F,aAAW,EAAXA,WADa;AAEbK,gBAAc,EAAdA,cAFa;AAGbG,WAAS,EAATA,SAHa;AAIbC,aAAW,EAAXA,WAJa;AAKbC,iBAAe,EAAfA,eALa;AAMbU,kBAAgB,EAAhBA,gBANa;AAObnc,OAAK,EAALA,KAPa;AAQboc,UAAQ,EAARA,QARa;AASbC,UAAQ,EAARA;AATa,CAAf,E;;;;;;;;;;;;AClEA;AAAA,IAAMC,SAAS,GAAG;AAChBC,gBAAc,EAAE,gBADA;AAEhBC,cAAY,EAAE,cAFE;AAGhBC,mBAAiB,EAAE,mBAHH;AAIhBC,iBAAe,EAAE,iBAJD;AAKhBC,mBAAiB,EAAE,mBALH;AAMhBC,iBAAe,EAAE,iBAND;AAOhBC,oBAAkB,EAAE,oBAPJ;AAQhBC,kBAAgB,EAAE;AARF,CAAlB;AAWA;;;;AAGA,IAAMnV,aAAa,GAAG,SAAhBA,aAAgB,CAAS/H,IAAT,EAAenD,IAAf,EAAqB;AACzC,MAAIsgB,MAAJ;AAEAnd,MAAI,CACDL,MADH,CACU,MADV,EAEGA,MAFH,CAEU,QAFV,EAGGnC,IAHH,CAGQ,IAHR,EAGckf,SAAS,CAACC,cAHxB,EAIGnf,IAJH,CAIQ,MAJR,EAIgB,CAJhB,EAKGA,IALH,CAKQ,MALR,EAKgB,CALhB,EAMGA,IANH,CAMQ,aANR,EAMuB,EANvB,EAOGA,IAPH,CAOQ,cAPR,EAOwB,EAPxB,EAQGA,IARH,CAQQ,QARR,EAQkB,MARlB,EASGmC,MATH,CASU,MATV,EAUGnC,IAVH,CAUQ,QAVR,EAUkBX,IAAI,CAACugB,MAVvB,EAWG5f,IAXH,CAWQ,MAXR,EAWgB,MAXhB,EAYGA,IAZH,CAYQ,GAZR,EAYa,yBAZb;AAcAwC,MAAI,CACDL,MADH,CACU,MADV,EAEGA,MAFH,CAEU,QAFV,EAGGnC,IAHH,CAGQ,IAHR,EAGckf,SAAS,CAACE,YAHxB,EAIGpf,IAJH,CAIQ,MAJR,EAIgB,EAJhB,EAKGA,IALH,CAKQ,MALR,EAKgB,CALhB,EAMGA,IANH,CAMQ,aANR,EAMuB,EANvB,EAOGA,IAPH,CAOQ,cAPR,EAOwB,EAPxB,EAQGA,IARH,CAQQ,QARR,EAQkB,MARlB,EASGmC,MATH,CASU,MATV,EAUGnC,IAVH,CAUQ,QAVR,EAUkBX,IAAI,CAACugB,MAVvB,EAWG5f,IAXH,CAWQ,MAXR,EAWgB,MAXhB,EAYGA,IAZH,CAYQ,GAZR,EAYa,uBAZb;AAcA2f,QAAM,GAAGnd,IAAI,CACVL,MADM,CACC,MADD,EAENA,MAFM,CAEC,QAFD,EAGNnC,IAHM,CAGD,IAHC,EAGKkf,SAAS,CAACG,iBAHf,EAINrf,IAJM,CAID,MAJC,EAIO,CAJP,EAKNA,IALM,CAKD,MALC,EAKO,CALP,EAMNA,IANM,CAMD,aANC,EAMc,EANd,EAONA,IAPM,CAOD,cAPC,EAOe,EAPf,EAQNA,IARM,CAQD,QARC,EAQS,MART,CAAT;AASA2f,QAAM,CACHxd,MADH,CACU,QADV,EAEGnC,IAFH,CAEQ,QAFR,EAEkBX,IAAI,CAACugB,MAFvB,EAGG5f,IAHH,CAGQ,MAHR,EAGgB,OAHhB,EAIGA,IAJH,CAIQ,IAJR,EAIc,EAJd,EAKGA,IALH,CAKQ,IALR,EAKc,CALd,EAMGA,IANH,CAMQ,GANR,EAMa,CANb;AAOA2f,QAAM,CACHxd,MADH,CACU,MADV,EAEGnC,IAFH,CAEQ,QAFR,EAEkBX,IAAI,CAACugB,MAFvB,EAGG5f,IAHH,CAGQ,MAHR,EAGgB,MAHhB,EAIGA,IAJH,CAIQ,GAJR,EAIa,YAJb;AAMA2f,QAAM,GAAGnd,IAAI,CACVL,MADM,CACC,MADD,EAENA,MAFM,CAEC,QAFD,EAGNnC,IAHM,CAGD,IAHC,EAGKkf,SAAS,CAACI,eAHf,EAINtf,IAJM,CAID,MAJC,EAIO,EAJP,EAKNA,IALM,CAKD,MALC,EAKO,CALP,EAMNA,IANM,CAMD,aANC,EAMc,EANd,EAONA,IAPM,CAOD,cAPC,EAOe,EAPf,EAQNA,IARM,CAQD,QARC,EAQS,MART,CAAT;AASA2f,QAAM,CACHxd,MADH,CACU,QADV,EAEGnC,IAFH,CAEQ,QAFR,EAEkBX,IAAI,CAACugB,MAFvB,EAGG5f,IAHH,CAGQ,MAHR,EAGgB,OAHhB,EAIGA,IAJH,CAIQ,IAJR,EAIc,CAJd,EAKGA,IALH,CAKQ,IALR,EAKc,CALd,EAMGA,IANH,CAMQ,GANR,EAMa,CANb;AAOA2f,QAAM,CACHxd,MADH,CACU,MADV,EAEGnC,IAFH,CAEQ,QAFR,EAEkBX,IAAI,CAACugB,MAFvB,EAGG5f,IAHH,CAGQ,MAHR,EAGgB,MAHhB,EAIGA,IAJH,CAIQ,GAJR,EAIa,cAJb;AAMAwC,MAAI,CACDL,MADH,CACU,MADV,EAEGA,MAFH,CAEU,QAFV,EAGGnC,IAHH,CAGQ,IAHR,EAGckf,SAAS,CAACK,iBAHxB,EAIGvf,IAJH,CAIQ,MAJR,EAIgB,EAJhB,EAKGA,IALH,CAKQ,MALR,EAKgB,EALhB,EAMGA,IANH,CAMQ,aANR,EAMuB,EANvB,EAOGA,IAPH,CAOQ,cAPR,EAOwB,EAPxB,EAQGA,IARH,CAQQ,QARR,EAQkB,MARlB,EASGmC,MATH,CASU,MATV,EAUGnC,IAVH,CAUQ,QAVR,EAUkBX,IAAI,CAACugB,MAVvB,EAWG5f,IAXH,CAWQ,MAXR,EAWgB,MAXhB,EAYGA,IAZH,CAYQ,GAZR,EAYa,8CAZb;AAcAwC,MAAI,CACDL,MADH,CACU,MADV,EAEGA,MAFH,CAEU,QAFV,EAGGnC,IAHH,CAGQ,IAHR,EAGckf,SAAS,CAACM,eAHxB,EAIGxf,IAJH,CAIQ,MAJR,EAIgB,EAJhB,EAKGA,IALH,CAKQ,MALR,EAKgB,EALhB,EAMGA,IANH,CAMQ,aANR,EAMuB,EANvB,EAOGA,IAPH,CAOQ,cAPR,EAOwB,EAPxB,EAQGA,IARH,CAQQ,QARR,EAQkB,MARlB,EASGmC,MATH,CASU,MATV,EAUGnC,IAVH,CAUQ,QAVR,EAUkBX,IAAI,CAACugB,MAVvB,EAWG5f,IAXH,CAWQ,MAXR,EAWgB,MAXhB,EAYGA,IAZH,CAYQ,GAZR,EAYa,0CAZb;AAcA2f,QAAM,GAAGnd,IAAI,CACVL,MADM,CACC,MADD,EAENA,MAFM,CAEC,QAFD,EAGNnC,IAHM,CAGD,IAHC,EAGKkf,SAAS,CAACO,kBAHf,EAINzf,IAJM,CAID,MAJC,EAIO,EAJP,EAKNA,IALM,CAKD,MALC,EAKO,EALP,EAMNA,IANM,CAMD,aANC,EAMc,EANd,EAONA,IAPM,CAOD,cAPC,EAOe,EAPf,EAQNA,IARM,CAQD,QARC,EAQS,MART,CAAT;AASA2f,QAAM,CACHxd,MADH,CACU,QADV,EAEGnC,IAFH,CAEQ,QAFR,EAEkBX,IAAI,CAACugB,MAFvB,EAGG5f,IAHH,CAGQ,MAHR,EAGgB,OAHhB,EAIGA,IAJH,CAIQ,IAJR,EAIc,EAJd,EAKGA,IALH,CAKQ,IALR,EAKc,EALd,EAMGA,IANH,CAMQ,GANR,EAMa,CANb;AAOA2f,QAAM,CACHxd,MADH,CACU,MADV,EAEGnC,IAFH,CAEQ,QAFR,EAEkBX,IAAI,CAACugB,MAFvB,EAGG5f,IAHH,CAGQ,MAHR,EAGgB,MAHhB,EAIGA,IAJH,CAIQ,GAJR,EAIa,+BAJb;AAMA2f,QAAM,GAAGnd,IAAI,CACVL,MADM,CACC,MADD,EAENA,MAFM,CAEC,QAFD,EAGNnC,IAHM,CAGD,IAHC,EAGKkf,SAAS,CAACQ,gBAHf,EAIN1f,IAJM,CAID,MAJC,EAIO,EAJP,EAKNA,IALM,CAKD,MALC,EAKO,EALP,EAMNA,IANM,CAMD,aANC,EAMc,EANd,EAONA,IAPM,CAOD,cAPC,EAOe,EAPf,EAQNA,IARM,CAQD,QARC,EAQS,MART,CAAT;AASA2f,QAAM,CACHxd,MADH,CACU,QADV,EAEGnC,IAFH,CAEQ,QAFR,EAEkBX,IAAI,CAACugB,MAFvB,EAGG5f,IAHH,CAGQ,MAHR,EAGgB,OAHhB,EAIGA,IAJH,CAIQ,IAJR,EAIc,CAJd,EAKGA,IALH,CAKQ,IALR,EAKc,EALd,EAMGA,IANH,CAMQ,GANR,EAMa,CANb;AAOA2f,QAAM,CACHxd,MADH,CACU,MADV,EAEGnC,IAFH,CAEQ,QAFR,EAEkBX,IAAI,CAACugB,MAFvB,EAGG5f,IAHH,CAGQ,MAHR,EAGgB,MAHhB,EAIGA,IAJH,CAIQ,GAJR,EAIa,iCAJb;AAMA;AACD,CApJD;;AAsJe;AACbkf,WAAS,EAATA,SADa;AAEb3U,eAAa,EAAbA;AAFa,CAAf,E;;;;;;;;;;;;ACpKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMlL,IAAI,GAAG,EAAb;AAEA;;;;;;AAKO,IAAMV,OAAO,GAAG,SAAVA,OAAU,CAASC,GAAT,EAAc;AACnC,MAAMG,IAAI,GAAGD,MAAM,CAACC,IAAP,CAAYH,GAAZ,CAAb;;AACA,OAAK,IAAII,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,IAAI,CAACE,MAAzB,EAAiCD,CAAC,EAAlC,EAAsC;AACpCK,QAAI,CAACN,IAAI,CAACC,CAAD,CAAL,CAAJ,GAAgBJ,GAAG,CAACG,IAAI,CAACC,CAAD,CAAL,CAAnB;AACD;AACF,CALM;AAOP;;;;;;;;AAOA,IAAM6gB,YAAY,GAAG,SAAfA,YAAe,CAASC,OAAT,EAAkBrC,QAAlB,EAA4BrX,KAA5B,EAAmC;AACtD,MAAMrH,IAAI,GAAGD,MAAM,CAACC,IAAP,CAAY0e,QAAZ,CAAb;AACA,MAAIsC,QAAJ;AAEAhhB,MAAI,CAACgI,OAAL,CAAa,UAASlH,EAAT,EAAa;AACxB;AACA,QAAMmgB,SAAS,GAAGF,OAAO,CAAC3d,MAAR,CAAe,GAAf,EAAoBnC,IAApB,CAAyB,IAAzB,EAA+BH,EAA/B,CAAlB;AAEAkgB,YAAQ,GAAGA,QAAQ,KAAKxf,SAAb,GAAyBV,EAAzB,GAA8BkgB,QAAzC,CAJwB,CAMxB;AACA;;AACA,QAAME,MAAM,GAAG,YAAYpgB,EAA3B;AACA,QAAMqgB,QAAQ,GAAGF,SAAS,CACvB7d,MADc,CACP,MADO,EAEdnC,IAFc,CAET,IAFS,EAEHigB,MAFG,EAGdjgB,IAHc,CAGT,GAHS,EAGJ,CAHI,EAIdA,IAJc,CAIT,GAJS,EAIJ,CAJI,EAKdA,IALc,CAKT,mBALS,EAKY,QALZ,EAMdA,IANc,CAMT,aANS,EAMM,QANN,EAOdA,IAPc,CAQb,OARa,EASb,kBAAkBV,yDAAS,GAAG6gB,UAA9B,GAA2C,eAA3C,GAA6D9gB,IAAI,CAAC+gB,QAAlE,GAA6E,IAThE,EAWdlgB,IAXc,CAWTL,EAXS,CAAjB,CATwB,CAsBxB;;AACA,QAAMwgB,QAAQ,GAAGH,QAAQ,CAACxgB,IAAT,GAAgBe,OAAhB,EAAjB;AACA,QAAM6f,WAAW,GAAGlb,IAAI,CAACmb,GAAL,CAASlhB,IAAI,CAACmhB,cAAd,EAA8BH,QAAQ,CAACpf,KAAT,GAAiB5B,IAAI,CAACohB,aAAL,GAAqB,CAApE,CAApB;AACA,QAAMC,YAAY,GAAGtb,IAAI,CAACmb,GAAL,CAASlhB,IAAI,CAACshB,eAAd,EAA+BN,QAAQ,CAACnf,MAAT,GAAkB7B,IAAI,CAACohB,aAAL,GAAqB,CAAtE,CAArB,CAzBwB,CA2BxB;;AACAP,YAAQ,CAAClgB,IAAT,CAAc,WAAd,EAA2B,eAAesgB,WAAW,GAAG,CAA7B,GAAiC,GAAjC,GAAuCI,YAAY,GAAG,CAAtD,GAA0D,GAArF,EA5BwB,CA8BxB;;AACA,QAAME,QAAQ,GAAGZ,SAAS,CACvBjgB,MADc,CACP,MADO,EACC,MAAMkgB,MADP,EAEdjgB,IAFc,CAET,MAFS,EAEDX,IAAI,CAACwhB,IAFJ,EAGd7gB,IAHc,CAGT,cAHS,EAGO,MAHP,EAIdA,IAJc,CAIT,QAJS,EAICX,IAAI,CAACugB,MAJN,EAKd5f,IALc,CAKT,GALS,EAKJ,CALI,EAMdA,IANc,CAMT,GANS,EAMJ,CANI,EAOdA,IAPc,CAOT,OAPS,EAOAsgB,WAPA,EAQdtgB,IARc,CAQT,QARS,EAQC0gB,YARD,CAAjB;AAUA,QAAMI,QAAQ,GAAGF,QAAQ,CAAClhB,IAAT,GAAgBe,OAAhB,EAAjB,CAzCwB,CA2CxB;;AACA2F,SAAK,CAACqD,OAAN,CAAc5J,EAAd,EAAkB;AAChBoB,WAAK,EAAE6f,QAAQ,CAAC7f,KADA;AAEhBC,YAAM,EAAE4f,QAAQ,CAAC5f,MAFD;AAGhBuB,WAAK,EAAE,MAHS;AAIhB5C,QAAE,EAAEA;AAJY,KAAlB;AAMD,GAlDD;AAmDA,SAAOkgB,QAAP;AACD,CAxDD,C,CAwDG;;;AAEH,IAAMgB,cAAc,GAAG,SAAjBA,cAAiB,CAASjB,OAAT,EAAkB1Z,KAAlB,EAAyB;AAC9CA,OAAK,CAAC8C,KAAN,GAAcnC,OAAd,CAAsB,UAASR,CAAT,EAAY;AAChC,QAAI,OAAOA,CAAP,KAAa,WAAb,IAA4B,OAAOH,KAAK,CAAC1G,IAAN,CAAW6G,CAAX,CAAP,KAAyB,WAAzD,EAAsE;AACpEuZ,aAAO,CACJ/e,MADH,CACU,MAAMwF,CADhB,EAEGvG,IAFH,CAGI,WAHJ,EAII,gBACGoG,KAAK,CAAC1G,IAAN,CAAW6G,CAAX,EAAc9E,CAAd,GAAkB2E,KAAK,CAAC1G,IAAN,CAAW6G,CAAX,EAActF,KAAd,GAAsB,CAD3C,IAEE,GAFF,IAGGmF,KAAK,CAAC1G,IAAN,CAAW6G,CAAX,EAAc7E,CAAd,GAAkB0E,KAAK,CAAC1G,IAAN,CAAW6G,CAAX,EAAcrF,MAAd,GAAuB,CAH5C,IAIE,IARN;AAUD;AACF,GAbD;AAcA;AACD,CAhBD;;AAkBA,IAAM8f,WAAW,GAAG,SAAdA,WAAc,CAAStC,GAAT,EAAc;AAChC,SAAO,CAACA,GAAG,CAACC,OAAJ,GAAcD,GAAG,CAACE,KAAlB,GAA0BF,GAAG,CAACG,OAA/B,EAAwC/a,OAAxC,CAAgD,KAAhD,EAAuD,EAAvD,CAAP;AACD,CAFD;AAIA;;;;;;;;AAMA,IAAMmd,gBAAgB,GAAG,SAAnBA,gBAAmB,CAASvD,aAAT,EAAwB3E,CAAxB,EAA2B;AAClD2E,eAAa,CAAC3W,OAAd,CAAsB,UAASnB,CAAT,EAAY;AAChCmT,KAAC,CAACvJ,OAAF,CAAU5J,CAAC,CAAC+Y,OAAZ,EAAqB/Y,CAAC,CAACiZ,OAAvB,EAAgC;AAAEqC,kBAAY,EAAEtb;AAAhB,KAAhC,EAAqDob,WAAW,CAACpb,CAAD,CAAhE;AACD,GAFD;AAGA,SAAO8X,aAAP;AACD,CALD,C,CAKG;;;AAEH,IAAIyD,MAAM,GAAG,CAAb;AACA;;;;;;;;AAOA,IAAMC,0BAA0B,GAAG,SAA7BA,0BAA6B,CAASzJ,GAAT,EAAc+G,GAAd,EAAmB3F,CAAnB,EAAsBhZ,MAAtB,EAA8B;AAC/DohB,QAAM,GADyD,CAG/D;;AACA,MAAMrc,IAAI,GAAGiU,CAAC,CAACjU,IAAF,CAAO4Z,GAAG,CAACC,OAAX,EAAoBD,GAAG,CAACG,OAAxB,EAAiCmC,WAAW,CAACtC,GAAD,CAA5C,CAAb,CAJ+D,CAM/D;;AACA,MAAMlX,YAAY,GAAGC,+CAAI,GACtBhG,CADkB,CAChB,UAASiG,CAAT,EAAY;AACb,WAAOA,CAAC,CAACjG,CAAT;AACD,GAHkB,EAIlBC,CAJkB,CAIhB,UAASgG,CAAT,EAAY;AACb,WAAOA,CAAC,CAAChG,CAAT;AACD,GANkB,EAOlBiG,KAPkB,CAOZC,6CAPY,CAArB,CAP+D,CAgB/D;;AACA,MAAMC,OAAO,GAAG8P,GAAG,CAChB5X,MADa,CACN,MADM,EACE,MAAMA,MADR,EAEbC,IAFa,CAER,GAFQ,EAEHwH,YAAY,CAAC1C,IAAI,CAACuB,MAAN,CAFT,EAGbrG,IAHa,CAGR,QAHQ,EAGEX,IAAI,CAACugB,MAHP,EAIb5f,IAJa,CAIR,MAJQ,EAIA,MAJA,CAAhB,CAjB+D,CAuB/D;;AACA,MAAI0e,GAAG,CAACI,OAAJ,CAAYuC,OAAZ,KAAwBC,6CAAI,CAACtD,cAAL,CAAoBC,eAAhD,EAAiE;AAC/DpW,WAAO,CAAC7H,IAAR,CAAa,kBAAb,EAAiC,KAAjC;AACD,GA1B8D,CA4B/D;;;AACA,MAAI8H,GAAG,GAAG,EAAV;;AACA,MAAIzI,IAAI,CAAC2I,mBAAT,EAA8B;AAC5BF,OAAG,GACDG,MAAM,CAACC,QAAP,CAAgBC,QAAhB,GACA,IADA,GAEAF,MAAM,CAACC,QAAP,CAAgBE,IAFhB,GAGAH,MAAM,CAACC,QAAP,CAAgBG,QAHhB,GAIAJ,MAAM,CAACC,QAAP,CAAgBI,MALlB;AAMAR,OAAG,GAAGA,GAAG,CAAChE,OAAJ,CAAY,KAAZ,EAAmB,KAAnB,CAAN;AACAgE,OAAG,GAAGA,GAAG,CAAChE,OAAJ,CAAY,KAAZ,EAAmB,KAAnB,CAAN;AACD,GAvC8D,CAyC/D;AACA;AAEA;;;AACA,UAAQ4a,GAAG,CAACI,OAAJ,CAAYyC,KAApB;AACE,SAAKD,6CAAI,CAAC3D,WAAL,CAAiBC,WAAtB;AACE/V,aAAO,CAAC7H,IAAR,CAAa,YAAb,EAA2B,SAAS8H,GAAT,GAAe,GAAf,GAAqB0Z,kDAAS,CAACtC,SAAV,CAAoBI,eAAzC,GAA2D,GAAtF;AACA;;AACF,SAAKgC,6CAAI,CAAC3D,WAAL,CAAiBE,YAAtB;AACEhW,aAAO,CAAC7H,IAAR,CAAa,YAAb,EAA2B,SAAS8H,GAAT,GAAe,GAAf,GAAqB0Z,kDAAS,CAACtC,SAAV,CAAoBQ,gBAAzC,GAA4D,GAAvF;AACA;;AACF,SAAK4B,6CAAI,CAAC3D,WAAL,CAAiBG,WAAtB;AACEjW,aAAO,CAAC7H,IAAR,CAAa,YAAb,EAA2B,SAAS8H,GAAT,GAAe,GAAf,GAAqB0Z,kDAAS,CAACtC,SAAV,CAAoBM,eAAzC,GAA2D,GAAtF;AACA;;AACF,SAAK8B,6CAAI,CAAC3D,WAAL,CAAiBI,QAAtB;AACElW,aAAO,CAAC7H,IAAR,CAAa,YAAb,EAA2B,SAAS8H,GAAT,GAAe,GAAf,GAAqB0Z,kDAAS,CAACtC,SAAV,CAAoBE,YAAzC,GAAwD,GAAnF;AACA;AAZJ;;AAeA,UAAQV,GAAG,CAACI,OAAJ,CAAY2C,KAApB;AACE,SAAKH,6CAAI,CAAC3D,WAAL,CAAiBC,WAAtB;AACE/V,aAAO,CAAC7H,IAAR,CACE,cADF,EAEE,SAAS8H,GAAT,GAAe,GAAf,GAAqB0Z,kDAAS,CAACtC,SAAV,CAAoBG,iBAAzC,GAA6D,GAF/D;AAIA;;AACF,SAAKiC,6CAAI,CAAC3D,WAAL,CAAiBE,YAAtB;AACEhW,aAAO,CAAC7H,IAAR,CACE,cADF,EAEE,SAAS8H,GAAT,GAAe,GAAf,GAAqB0Z,kDAAS,CAACtC,SAAV,CAAoBO,kBAAzC,GAA8D,GAFhE;AAIA;;AACF,SAAK6B,6CAAI,CAAC3D,WAAL,CAAiBG,WAAtB;AACEjW,aAAO,CAAC7H,IAAR,CACE,cADF,EAEE,SAAS8H,GAAT,GAAe,GAAf,GAAqB0Z,kDAAS,CAACtC,SAAV,CAAoBK,iBAAzC,GAA6D,GAF/D;AAIA;;AACF,SAAK+B,6CAAI,CAAC3D,WAAL,CAAiBI,QAAtB;AACElW,aAAO,CAAC7H,IAAR,CAAa,cAAb,EAA6B,SAAS8H,GAAT,GAAe,GAAf,GAAqB0Z,kDAAS,CAACtC,SAAV,CAAoBC,cAAzC,GAA0D,GAAvF;AACA;AArBJ,GA5D+D,CAoF/D;AAEA;;;AACA,MAAMuC,GAAG,GAAG7Z,OAAO,CAACnI,IAAR,GAAeiiB,cAAf,EAAZ;AACA,MAAMC,UAAU,GAAG/Z,OAAO,CAACnI,IAAR,GAAemiB,gBAAf,CAAgCH,GAAG,GAAG,GAAtC,CAAnB,CAxF+D,CA0F/D;;AACA,MAAMI,OAAO,GAAG,QAAQX,MAAxB;AAEA,MAAMY,SAAS,GAAGpK,GAAG,CAClBxV,MADe,CACR,MADQ,EAEfnC,IAFe,CAEV,IAFU,EAEJ8hB,OAFI,EAGf9hB,IAHe,CAGV,GAHU,EAGL4hB,UAAU,CAACngB,CAHN,EAIfzB,IAJe,CAIV,GAJU,EAIL4hB,UAAU,CAAClgB,CAJN,EAKf1B,IALe,CAKV,aALU,EAKK,QALL,EAMfA,IANe,CAMV,mBANU,EAMW,QANX,EAOfA,IAPe,CAQd,OARc,EASd,kBAAkBV,yDAAS,GAAG6gB,UAA9B,GAA2C,eAA3C,GAA6D9gB,IAAI,CAAC+gB,QAAlE,GAA6E,IAT/D,EAWflgB,IAXe,CAWVwe,GAAG,CAACE,KAXM,CAAlB,CA7F+D,CA0G/D;;AACA,MAAMoD,SAAS,GAAGD,SAAS,CAACriB,IAAV,GAAiBe,OAAjB,EAAlB,CA3G+D,CA6G/D;;AACAkX,KAAG,CACA5X,MADH,CACU,MADV,EACkB,MAAM+hB,OADxB,EAEG9hB,IAFH,CAEQ,GAFR,EAEa4hB,UAAU,CAACngB,CAAX,GAAeugB,SAAS,CAAC/gB,KAAV,GAAkB,CAF9C,EAGGjB,IAHH,CAGQ,GAHR,EAGa4hB,UAAU,CAAClgB,CAAX,GAAesgB,SAAS,CAAC9gB,MAAV,GAAmB,CAH/C,EAIGlB,IAJH,CAIQ,OAJR,EAIiBgiB,SAAS,CAAC/gB,KAJ3B,EAKGjB,IALH,CAKQ,QALR,EAKkBgiB,SAAS,CAAC9gB,MAL5B,EAMGlB,IANH,CAMQ,MANR,EAMgB,OANhB,EAOGA,IAPH,CAOQ,cAPR,EAOwB,KAPxB;AASA;AACD,CAxHD;AA0HA;;;;;;;AAKO,IAAM6Y,IAAI,GAAG,SAAPA,IAAO,CAAS3Y,IAAT,EAAeL,EAAf,EAAmB;AACrCkE,gDAAM,CAACjB,IAAP,CAAY,oBAAZ;AACAwe,+CAAI,CAAC1e,KAAL;AACA,MAAMyV,MAAM,GAAG4J,wDAAQ,CAAC5J,MAAxB;AACAA,QAAM,CAACC,EAAP,GAAYgJ,6CAAZ,CAJqC,CAMrC;;AACA,MAAI;AACFjJ,UAAM,CAAC9O,KAAP,CAAarJ,IAAb;AACD,GAFD,CAEE,OAAOgiB,GAAP,EAAY;AACZne,kDAAM,CAACkL,KAAP,CAAa,gBAAb;AACD,GAXoC,CAarC;;;AACA,MAAM0I,GAAG,GAAG5W,iDAAM,gBAASlB,EAAT,QAAlB,CAdqC,CAgBrC;;AACA2hB,oDAAS,CAACjX,aAAV,CAAwBoN,GAAxB,EAA6BtY,IAA7B,EAjBqC,CAmBrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AACA,MAAI0Z,CAAJ,CAlCqC,CAoCrC;AACA;AACA;AACA;AACA;;AACAA,GAAC,GAAG,IAAInQ,+CAAQ,CAAC8H,KAAb,CAAmB;AACrBC,cAAU,EAAE,IADS;AAErBwR,YAAQ,EAAE,IAFW;AAGrBvR,YAAQ,EAAE;AAHW,GAAnB,EAKDC,QALC,CAKQ;AACR7H,WAAO,EAAE3J,IAAI,CAAC+iB,eADN;AAERpR,WAAO,EAAE,EAFD;AAGRC,WAAO,EAAE,EAHD;AAIRH,WAAO,EAAE,GAJD;AAKRuR,WAAO,EAAE,GALD;AAMRtR,WAAO,EAAE;AAND,GALR,EAaDG,mBAbC,CAamB,YAAW;AAC9B,WAAO,EAAP;AACD,GAfC,CAAJ,CAzCqC,CA0DrC;AACA;;AACA,MAAMoR,WAAW,GAAGzC,YAAY,CAAClI,GAAD,EAAM2J,6CAAI,CAAClD,WAAL,EAAN,EAA0BrF,CAA1B,CAAhC,CA5DqC,CA8DrC;AAEA;;AACA,MAAM2E,aAAa,GAAGuD,gBAAgB,CAACK,6CAAI,CAACvC,gBAAL,EAAD,EAA0BhG,CAA1B,CAAtC;AAEA7O,8CAAK,CAACC,MAAN,CAAa4O,CAAb,EAnEqC,CAmEpB;AAEjB;;AACAgI,gBAAc,CAACpJ,GAAD,EAAMoB,CAAN,CAAd,CAtEqC,CAwErC;;AACA2E,eAAa,CAAC3W,OAAd,CAAsB,UAAS2X,GAAT,EAAc;AAClC0C,8BAA0B,CAACzJ,GAAD,EAAM+G,GAAN,EAAW3F,CAAX,EAAcuJ,WAAd,CAA1B;AACD,GAFD;AAIA,MAAMnhB,OAAO,GAAG9B,IAAI,CAACkjB,cAArB;AAEA,MAAMlJ,SAAS,GAAG1B,GAAG,CAACjY,IAAJ,GAAWe,OAAX,EAAlB;AACA,MAAMQ,KAAK,GAAGoY,SAAS,CAACpY,KAAV,GAAkBE,OAAO,GAAG,CAA1C;AACA,MAAMD,MAAM,GAAGmY,SAAS,CAACnY,MAAV,GAAmBC,OAAO,GAAG,CAA5C;AAEAwW,KAAG,CAAC3X,IAAJ,CAAS,QAAT,EAAmBkB,MAAnB;AACAyW,KAAG,CAAC3X,IAAJ,CAAS,OAAT,EAAkB,MAAlB;AACA2X,KAAG,CAAC3X,IAAJ,CAAS,OAAT,uBAAgCiB,KAAhC;AACA0W,KAAG,CAAC3X,IAAJ,CAAS,SAAT,YAAuBqZ,SAAS,CAAC5X,CAAV,GAAcN,OAArC,cAAgDkY,SAAS,CAAC3X,CAAV,GAAcP,OAA9D,cAAyEF,KAAzE,cAAkFC,MAAlF;AACD,CAvFM,C,CAuFJ;;AAEY;AACbvC,SAAO,EAAPA,OADa;AAEbka,MAAI,EAAJA;AAFa,CAAf,E;;;;;;;;;;;AC3VA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,qSAAqS;AAChT,aAAa,wKAAwK;AACrL;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;;AAEA,iC;AACA,iC;AACA;AACA,uEAAuE;;AAEvE;AACA;AACA,iBAAiB,oCAAoC;AACrD;AACA;;AAEA,kBAAkB;AAClB,kEAAkE;;AAElE;AACA;AACA,qC;AACA;AACA;AACA,sC;AACA;AACA;AACA,qC;AACA;AACA;AACA,kC;AACA;AACA;AACA,4C;AACA;AACA;AACA,wC;AACA;AACA;AACA,mC;AACA;AACA;AACA,iB;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,uBAAuB,EAAE,QAAQ,eAAe,qCAAqC,4BAA4B,YAAY,EAAE,0BAA0B,uDAAuD,UAAU,EAAE,kCAAkC,8BAA8B,0BAA0B,EAAE,SAAS;AACnX,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,2FAA2F,cAAc,uCAAuC,aAAa;AAC7J,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;;;;ACtqBA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA,SAAS1H,QAAT,CAAkB1R,MAAlB,EAA0Be,IAA1B,EAAgCd,IAAhC,EAAsC;AACpC,MAAM6F,CAAC,GAAG/E,IAAI,CAACS,KAAf;AACA,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;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,k8CAAk8C;AAC78C,aAAa,40BAA40B;AACz1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8CAA8C,WAAW,qD;AACrG;AACA;AACA,8CAA8C,gDAAgD,WAAW,yD;AACzG;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC,qDAAqD;AACvF;AACA;AACA,oBAAoB;AACpB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA,uBAAuB;AACvB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;A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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,icAAic,25KAA25K,UAAU;AACt2L,aAAa,UAAU,6BAA6B,QAAQ,0DAA0D,WAAW,gCAAgC,YAAY;AAC7K,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,q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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,gWAAgW;AAC3W,aAAa,gPAAgP;AAC7P;AACA;AACA;;AAEA;AACA;AACA;AACA,iB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,oCAAoC;AACpC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,2CAA2C;AAC7D;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB,yCAAyC;AAC3D;AACA;AACA,kBAAkB,6CAA6C;AAC/D;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,sGAAsG,cAAc,QAAQ,gBAAgB,0EAA0E,0IAA0I,UAAU,EAAE,oBAAoB,0CAA0C,oBAAoB,gBAAgB,UAAU,gBAAgB,UAAU,8BAA8B,UAAU;AAC5kB,kBAAkB;AAClB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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AAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,uSAAuS;AAClT,aAAa,0JAA0J;AACvK;AACA;AACA;;AAEA;AACA;AACA;AACA,iB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,yBAAyB;AACzB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,cAAc,gBAAgB,gBAAgB,sBAAsB,EAAE,QAAQ,EAAE,gFAAgF,eAAe,SAAS,eAAe,UAAU,gBAAgB,0BAA0B,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,0BAA0B,EAAE,QAAQ,eAAe,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU,EAAE,UAAU;AAC1lB,iBAAiB,2GAA2G;AAC5H;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;A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AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,mHAAmH;AAC9H,aAAa,gDAAgD;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA,W;AACA;AACA;;AAEA;AACA;AACA,kB;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,iCAAiC,EAAE,QAAQ;AAC7F,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;;;AC7mBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,mIAAmI;AAC9I,aAAa,gEAAgE;AAC7E;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kD;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,0CAA0C,EAAE,QAAQ,yCAAyC,UAAU;AACzJ,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qGAAqG;AACrG,aAAa,UAAU,gCAAgC,YAAY;AACnE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;;;;ACznBA;AAAA;AAAA;;;AAGA;AAEA,IAAIwR,QAAQ,GAAG,EAAf;AACA,IAAIvS,KAAK,GAAG,EAA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C9f;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,c;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,W;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,SAAS,+BAA+B;AACxC;AACA;;AAEA,oBAAoB,0FAA0F;AAC9G,iBAAiB,qEAAqE;AACtF;AACA;AACA;;AAEA,oBAAoB,wFAAwF;AAC5G,iBAAiB,oFAAoF;AACrG;AACA;AACA;;AAEA,oBAAoB,uFAAuF;AAC3G,iBAAiB,mFAAmF;AACpG;AACA;AACA;;AAEA;AACA,oBAAoB,uFAAuF;AAC3G;AACA;AACA,iBAAiB,gDAAgD;AACjE;AACA;AACA;;AAEA;AACA,oBAAoB,uFAAuF;AAC3G;AACA;AACA,iBAAiB,gDAAgD;AACjE;AACA;AACA;AACA,4BAA4B,gFAAgF,W;AAC5G;AACA;AACA,4BAA4B,kFAAkF,W;AAC9G;AACA;;AAEA,uBAAuB,sEAAsE;AAC7F;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,qFAAqF;AAC5G;AACA;AACA,6B;AACA;AACA;AACA,iB;AACA;AACA;AACA,8B;AACA;AACA;AACA,+B;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H,gBAAgB;AAChB;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H,eAAe;AACf;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H;AACA;AACA,QAAQ;AACR;AACA;AACA,iC;AACA;AACA;AACA,kC;AACA;AACA;AACA,4B;AACA;AACA;AACA,6B;AACA;AACA;AACA,kC;AACA;AACA;AACA,mC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qB;AACvB;AACA;AACA,6C;AACA;AACA;AACA,2CAA2C,4C;AAC3C;AACA;AACA,qBAAqB,wB;AACrB;AACA;AACA,CAAC;AACD,SAAS,sCAAsC,EAAE,MAAM,EAAE,sCAAsC,EAAE,sCAAsC,EAAE,uCAAuC,uDAAuD,KAAK,GAAG,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,sJAAsJ,EAAE,uBAAuB,iCAAiC,6HAA6H,4BAA4B,aAAa,EAAE,SAAS,gBAAgB,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,gBAAgB,kEAAkE,EAAE,oCAAoC,2CAA2C,SAAS,EAAE,gBAAgB,EAAE,SAAS,eAAe,mBAAmB,gBAAgB,SAAS,EAAE,SAAS,gBAAgB,SAAS,EAAE,SAAS,YAAY,KAAK,aAAa,KAAK,aAAa,KAAK,aAAa,WAAW,aAAa,WAAW,GAAG,iCAAiC,sFAAsF,aAAa,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,gBAAgB,aAAa,EAAE,UAAU,EAAE,UAAU,0DAA0D,wJAAwJ,EAAE,wJAAwJ,EAAE,wJAAwJ,EAAE,UAAU,EAAE,kKAAkK,EAAE,UAAU,EAAE,kKAAkK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,SAAS,EAAE,SAAS,0DAA0D,UAAU,gBAAgB,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,wCAAwC,YAAY,aAAa,YAAY,GAAG,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AACpsF,iBAAiB,yKAAyK;AAC1L;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,W;AAC1B;AACA,wCAAwC,qBAAqB,W;AAC7D;AACA,yBA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A;;AAEA,kFAAkF;AAClF,iBAAiB;;AAEjB;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,4GAA4G;AAC5G,gBAAgB,2CAA2C;;AAE3D;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,sBAAsB,EAAE,MAAM,EAAE,sBAAsB,EAAE,sBAAsB,8CAA8C,IAAI,GAAG,QAAQ,EAAE,QAAQ,EAAE,yGAAyG,eAAe,iFAAiF,wCAAwC,oBAAoB,iBAAiB,UAAU,eAAe,UAAU,GAAG,UAAU,4CAA4C,oCAAoC,yDAAyD,oBAAoB,0BAA0B,KAAK,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,eAAe,UAAU,GAAG,2GAA2G,eAAe,UAAU,GAAG,UAAU,EAAE,UAAU,wCAAwC,KAAK,+BAA+B,2GAA2G;AAC/kC,iBAAiB,oCAAoC;AACrD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yCAAyC,a;AACzE;AACA;AACA;AACA;AACA;AACA,gC;AACA;AACA,uBAAuB,yCAAyC,0CAA0C;AAC1G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA,wBAAwB,uCAAuC;AAC/D;AACA;AACA;AACA,wDAAwD;AACxD;AACA,oDAAoD;AACpD;AACA;AACA;AACA,wBAAwB,yBAAyB,2CAA2C;AAC5F;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA,4BAA4B,W;AAC5B;AACA,yBAAyB,0BAA0B;AACnD;AACA,yBAAyB,0BAA0B;AACnD;AACA,yBAAyB;AACzB;AAC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AEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,uKAAuK;AAClL,aAAa,oGAAoG;AACjH;AACA;AACA;;AAEA;AACA;AACA;AACA,iB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,sDAAsD,cAAc,QAAQ,gBAAgB,0BAA0B,sDAAsD,UAAU;AACxO,kBAAkB;AAClB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,sGAAsG,2BAA2B,kBAAkB,kBAAkB;AACrK,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AA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","file":"mermaid.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mermaid\"] = factory();\n\telse\n\t\troot[\"mermaid\"] = factory();\n})(typeof self !== \"undefined\" ? self : this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/mermaid.js\");\n","'use strict';\n\nvar invalidPrototcolRegex = /^(%20|\\s)*(javascript|data)/im;\nvar ctrlCharactersRegex = /[^\\x20-\\x7E]/gmi;\nvar urlSchemeRegex = /^([^:]+):/gm;\nvar relativeFirstCharacters = ['.', '/']\n\nfunction isRelativeUrl(url) {\n return relativeFirstCharacters.indexOf(url[0]) > -1;\n}\n\nfunction sanitizeUrl(url) {\n if (!url) {\n return 'about:blank';\n }\n\n var urlScheme, urlSchemeParseResults;\n var sanitizedUrl = url.replace(ctrlCharactersRegex, '').trim();\n\n if (isRelativeUrl(sanitizedUrl)) {\n return sanitizedUrl;\n }\n\n urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);\n\n if (!urlSchemeParseResults) {\n return 'about:blank';\n }\n\n urlScheme = urlSchemeParseResults[0];\n\n if (invalidPrototcolRegex.test(urlScheme)) {\n return 'about:blank';\n }\n\n return sanitizedUrl;\n}\n\nmodule.exports = {\n sanitizeUrl: sanitizeUrl\n};\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/* Flowchart variables */\\n/* Sequence Diagram variables */\\n/* Gantt chart variables */\\n/* state colors */\\n.label {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n color: #333; }\\n\\n.label text {\\n fill: #333; }\\n\\n.node rect,\\n.node circle,\\n.node ellipse,\\n.node polygon,\\n.node path {\\n fill: #1f2020;\\n stroke: purple;\\n stroke-width: 1px; }\\n\\n.node .label {\\n text-align: center; }\\n\\n.node.clickable {\\n cursor: pointer; }\\n\\n.arrowheadPath {\\n fill: lightgrey; }\\n\\n.edgePath .path {\\n stroke: lightgrey;\\n stroke-width: 1.5px; }\\n\\n.edgeLabel {\\n background-color: #e8e8e8;\\n text-align: center; }\\n .edgeLabel rect {\\n opacity: 0.5; }\\n\\n.cluster rect {\\n fill: #474949;\\n stroke: rgba(255, 255, 255, 0.25);\\n stroke-width: 1px; }\\n\\n.cluster text {\\n fill: #F9FFFE; }\\n\\ndiv.mermaidTooltip {\\n position: absolute;\\n text-align: center;\\n max-width: 200px;\\n padding: 2px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 12px;\\n background: #474949;\\n border: 1px solid rgba(255, 255, 255, 0.25);\\n border-radius: 2px;\\n pointer-events: none;\\n z-index: 100; }\\n\\n.actor {\\n stroke: #81B1DB;\\n fill: #1f2020; }\\n\\ntext.actor > tspan {\\n fill: lightgrey;\\n stroke: none; }\\n\\n.actor-line {\\n stroke: lightgrey; }\\n\\n.messageLine0 {\\n stroke-width: 1.5;\\n stroke-dasharray: none;\\n stroke: lightgrey; }\\n\\n.messageLine1 {\\n stroke-width: 1.5;\\n stroke-dasharray: 2, 2;\\n stroke: lightgrey; }\\n\\n#arrowhead path {\\n fill: lightgrey;\\n stroke: lightgrey; }\\n\\n.sequenceNumber {\\n fill: white; }\\n\\n#sequencenumber {\\n fill: lightgrey; }\\n\\n#crosshead path {\\n fill: lightgrey;\\n stroke: lightgrey; }\\n\\n.messageText {\\n fill: lightgrey;\\n stroke: lightgrey; }\\n\\n.labelBox {\\n stroke: #81B1DB;\\n fill: #1f2020; }\\n\\n.labelText, .labelText > tspan {\\n fill: lightgrey;\\n stroke: none; }\\n\\n.loopText, .loopText > tspan {\\n fill: lightgrey;\\n stroke: none; }\\n\\n.loopLine {\\n stroke-width: 2px;\\n stroke-dasharray: 2, 2;\\n stroke: #81B1DB;\\n fill: #81B1DB; }\\n\\n.note {\\n stroke: rgba(255, 255, 255, 0.25);\\n fill: #fff5ad; }\\n\\n.noteText {\\n fill: #1f2020;\\n stroke: none; }\\n\\n.activation0 {\\n fill: #474949;\\n stroke: #81B1DB; }\\n\\n.activation1 {\\n fill: #474949;\\n stroke: #81B1DB; }\\n\\n.activation2 {\\n fill: #474949;\\n stroke: #81B1DB; }\\n\\ng > rect[class=\\\"note\\\"] {\\n stroke: rgba(255, 255, 255, 0.25);\\n fill: #fff5ad; }\\n\\ng > text[class=\\\"noteText\\\"] > tspan {\\n stroke: #1f2020;\\n fill: #1f2020;\\n stroke-width: 1px; }\\n\\n/** Section styling */\\n.mermaid-main-font {\\n font-family: \\\"trebuchet ms\\\", verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.section {\\n stroke: none;\\n opacity: 0.2; }\\n\\n.section0 {\\n fill: rgba(255, 255, 255, 0.3); }\\n\\n.section2 {\\n fill: #EAE8B9; }\\n\\n.section1,\\n.section3 {\\n fill: white;\\n opacity: 0.2; }\\n\\n.sectionTitle0 {\\n fill: #F9FFFE; }\\n\\n.sectionTitle1 {\\n fill: #F9FFFE; }\\n\\n.sectionTitle2 {\\n fill: #F9FFFE; }\\n\\n.sectionTitle3 {\\n fill: #F9FFFE; }\\n\\n.sectionTitle {\\n text-anchor: start;\\n font-size: 11px;\\n text-height: 14px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n/* Grid and axis */\\n.grid .tick {\\n stroke: lightgrey;\\n opacity: 0.8;\\n shape-rendering: crispEdges; }\\n .grid .tick text {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.grid path {\\n stroke-width: 0; }\\n\\n/* Today line */\\n.today {\\n fill: none;\\n stroke: #DB5757;\\n stroke-width: 2px; }\\n\\n/* Task styling */\\n/* Default task */\\n.task {\\n stroke-width: 2; }\\n\\n.taskText {\\n text-anchor: middle;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskText:not([font-size]) {\\n font-size: 11px; }\\n\\n.taskTextOutsideRight {\\n fill: #323D47;\\n text-anchor: start;\\n font-size: 11px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskTextOutsideLeft {\\n fill: #323D47;\\n text-anchor: end;\\n font-size: 11px; }\\n\\n/* Special case clickable */\\n.task.clickable {\\n cursor: pointer; }\\n\\n.taskText.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideLeft.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideRight.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n/* Specific task settings for the sections*/\\n.taskText0,\\n.taskText1,\\n.taskText2,\\n.taskText3 {\\n fill: #323D47; }\\n\\n.task0,\\n.task1,\\n.task2,\\n.task3 {\\n fill: #1f2020;\\n stroke: rgba(255, 255, 255, 0.5); }\\n\\n.taskTextOutside0,\\n.taskTextOutside2 {\\n fill: lightgrey; }\\n\\n.taskTextOutside1,\\n.taskTextOutside3 {\\n fill: lightgrey; }\\n\\n/* Active task */\\n.active0,\\n.active1,\\n.active2,\\n.active3 {\\n fill: #81B1DB;\\n stroke: rgba(255, 255, 255, 0.5); }\\n\\n.activeText0,\\n.activeText1,\\n.activeText2,\\n.activeText3 {\\n fill: #323D47 !important; }\\n\\n/* Completed task */\\n.done0,\\n.done1,\\n.done2,\\n.done3 {\\n stroke: grey;\\n fill: lightgrey;\\n stroke-width: 2; }\\n\\n.doneText0,\\n.doneText1,\\n.doneText2,\\n.doneText3 {\\n fill: #323D47 !important; }\\n\\n/* Tasks on the critical line */\\n.crit0,\\n.crit1,\\n.crit2,\\n.crit3 {\\n stroke: #E83737;\\n fill: #E83737;\\n stroke-width: 2; }\\n\\n.activeCrit0,\\n.activeCrit1,\\n.activeCrit2,\\n.activeCrit3 {\\n stroke: #E83737;\\n fill: #81B1DB;\\n stroke-width: 2; }\\n\\n.doneCrit0,\\n.doneCrit1,\\n.doneCrit2,\\n.doneCrit3 {\\n stroke: #E83737;\\n fill: lightgrey;\\n stroke-width: 2;\\n cursor: pointer;\\n shape-rendering: crispEdges; }\\n\\n.milestone {\\n transform: rotate(45deg) scale(0.8, 0.8); }\\n\\n.milestoneText {\\n font-style: italic; }\\n\\n.doneCritText0,\\n.doneCritText1,\\n.doneCritText2,\\n.doneCritText3 {\\n fill: #323D47 !important; }\\n\\n.activeCritText0,\\n.activeCritText1,\\n.activeCritText2,\\n.activeCritText3 {\\n fill: #323D47 !important; }\\n\\n.titleText {\\n text-anchor: middle;\\n font-size: 18px;\\n fill: #323D47;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.classGroup text {\\n fill: purple;\\n stroke: none;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 10px; }\\n g.classGroup text .title {\\n font-weight: bolder; }\\n\\ng.clickable {\\n cursor: pointer; }\\n\\ng.classGroup rect {\\n fill: #1f2020;\\n stroke: purple; }\\n\\ng.classGroup line {\\n stroke: purple;\\n stroke-width: 1; }\\n\\n.classLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #1f2020;\\n opacity: 0.5; }\\n\\n.classLabel .label {\\n fill: purple;\\n font-size: 10px; }\\n\\n.relation {\\n stroke: purple;\\n stroke-width: 1;\\n fill: none; }\\n\\n.dashed-line {\\n stroke-dasharray: 3; }\\n\\n#compositionStart {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#compositionEnd {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#aggregationStart {\\n fill: #1f2020;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#aggregationEnd {\\n fill: #1f2020;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#dependencyStart {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#dependencyEnd {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#extensionStart {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#extensionEnd {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n.commit-id,\\n.commit-msg,\\n.branch-label {\\n fill: lightgrey;\\n color: lightgrey;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.pieTitleText {\\n text-anchor: middle;\\n font-size: 25px;\\n fill: #323D47;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.slice {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: purple;\\n stroke: none;\\n font-size: 10px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: purple;\\n stroke: none;\\n font-size: 10px; }\\n\\ng.stateGroup .state-title {\\n font-weight: bolder;\\n fill: black; }\\n\\ng.stateGroup rect {\\n fill: #1f2020;\\n stroke: purple; }\\n\\ng.stateGroup line {\\n stroke: purple;\\n stroke-width: 1; }\\n\\n.transition {\\n stroke: purple;\\n stroke-width: 1;\\n fill: none; }\\n\\n.stateGroup .composit {\\n fill: white;\\n border-bottom: 1px; }\\n\\n.stateGroup .alt-composit {\\n fill: #e0e0e0;\\n border-bottom: 1px; }\\n\\n.state-note {\\n stroke: rgba(255, 255, 255, 0.25);\\n fill: #fff5ad; }\\n .state-note text {\\n fill: black;\\n stroke: none;\\n font-size: 10px; }\\n\\n.stateLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #1f2020;\\n opacity: 0.5; }\\n\\n.stateLabel text {\\n fill: black;\\n font-size: 10px;\\n font-weight: bold;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.node circle.state-start {\\n fill: black;\\n stroke: black; }\\n\\n.node circle.state-end {\\n fill: black;\\n stroke: white;\\n stroke-width: 1.5; }\\n\\n#statediagram-barbEnd {\\n fill: purple; }\\n\\n.statediagram-cluster rect {\\n fill: #1f2020;\\n stroke: purple;\\n stroke-width: 1px; }\\n\\n.statediagram-cluster rect.outer {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state .divider {\\n stroke: purple; }\\n\\n.statediagram-state .title-state {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-cluster.statediagram-cluster .inner {\\n fill: white; }\\n\\n.statediagram-cluster.statediagram-cluster-alt .inner {\\n fill: #e0e0e0; }\\n\\n.statediagram-cluster .inner {\\n rx: 0;\\n ry: 0; }\\n\\n.statediagram-state rect.basic {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state rect.divider {\\n stroke-dasharray: 10,10;\\n fill: #efefef; }\\n\\n.note-edge {\\n stroke-dasharray: 5; }\\n\\n.statediagram-note rect {\\n fill: #fff5ad;\\n stroke: rgba(255, 255, 255, 0.25);\\n stroke-width: 1px;\\n rx: 0;\\n ry: 0; }\\n\\n:root {\\n --mermaid-font-family: '\\\"trebuchet ms\\\", verdana, arial, \\\"Comic Sans MS\\\", \\\"Comic Sans\\\", cursive'; }\\n\\n.error-icon {\\n fill: #a44141; }\\n\\n.error-text {\\n fill: #ddd;\\n stroke: #ddd; }\\n\", \"\"]);\n\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/* Flowchart variables */\\n/* Sequence Diagram variables */\\n/* Gantt chart variables */\\n/* state colors */\\n.label {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n color: #333; }\\n\\n.label text {\\n fill: #333; }\\n\\n.node rect,\\n.node circle,\\n.node ellipse,\\n.node polygon,\\n.node path {\\n fill: #ECECFF;\\n stroke: #9370DB;\\n stroke-width: 1px; }\\n\\n.node .label {\\n text-align: center; }\\n\\n.node.clickable {\\n cursor: pointer; }\\n\\n.arrowheadPath {\\n fill: #333333; }\\n\\n.edgePath .path {\\n stroke: #333333;\\n stroke-width: 1.5px; }\\n\\n.edgeLabel {\\n background-color: #e8e8e8;\\n text-align: center; }\\n .edgeLabel rect {\\n opacity: 0.5; }\\n\\n.cluster rect {\\n fill: #ffffde;\\n stroke: #aaaa33;\\n stroke-width: 1px; }\\n\\n.cluster text {\\n fill: #333; }\\n\\ndiv.mermaidTooltip {\\n position: absolute;\\n text-align: center;\\n max-width: 200px;\\n padding: 2px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 12px;\\n background: #ffffde;\\n border: 1px solid #aaaa33;\\n border-radius: 2px;\\n pointer-events: none;\\n z-index: 100; }\\n\\n.actor {\\n stroke: #CCCCFF;\\n fill: #ECECFF; }\\n\\ntext.actor > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.actor-line {\\n stroke: grey; }\\n\\n.messageLine0 {\\n stroke-width: 1.5;\\n stroke-dasharray: none;\\n stroke: #333; }\\n\\n.messageLine1 {\\n stroke-width: 1.5;\\n stroke-dasharray: 2, 2;\\n stroke: #333; }\\n\\n#arrowhead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.sequenceNumber {\\n fill: white; }\\n\\n#sequencenumber {\\n fill: #333; }\\n\\n#crosshead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.messageText {\\n fill: #333;\\n stroke: #333; }\\n\\n.labelBox {\\n stroke: #CCCCFF;\\n fill: #ECECFF; }\\n\\n.labelText, .labelText > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.loopText, .loopText > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.loopLine {\\n stroke-width: 2px;\\n stroke-dasharray: 2, 2;\\n stroke: #CCCCFF;\\n fill: #CCCCFF; }\\n\\n.note {\\n stroke: #aaaa33;\\n fill: #fff5ad; }\\n\\n.noteText {\\n fill: #ECECFF;\\n stroke: none; }\\n\\n.activation0 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation1 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation2 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\ng > rect[class=\\\"note\\\"] {\\n stroke: #aaaa33;\\n fill: #fff5ad; }\\n\\ng > text[class=\\\"noteText\\\"] > tspan {\\n stroke: #ECECFF;\\n fill: #ECECFF;\\n stroke-width: 1px; }\\n\\n/** Section styling */\\n.mermaid-main-font {\\n font-family: \\\"trebuchet ms\\\", verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.section {\\n stroke: none;\\n opacity: 0.2; }\\n\\n.section0 {\\n fill: rgba(102, 102, 255, 0.49); }\\n\\n.section2 {\\n fill: #fff400; }\\n\\n.section1,\\n.section3 {\\n fill: white;\\n opacity: 0.2; }\\n\\n.sectionTitle0 {\\n fill: #333; }\\n\\n.sectionTitle1 {\\n fill: #333; }\\n\\n.sectionTitle2 {\\n fill: #333; }\\n\\n.sectionTitle3 {\\n fill: #333; }\\n\\n.sectionTitle {\\n text-anchor: start;\\n font-size: 11px;\\n text-height: 14px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n/* Grid and axis */\\n.grid .tick {\\n stroke: lightgrey;\\n opacity: 0.8;\\n shape-rendering: crispEdges; }\\n .grid .tick text {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.grid path {\\n stroke-width: 0; }\\n\\n/* Today line */\\n.today {\\n fill: none;\\n stroke: red;\\n stroke-width: 2px; }\\n\\n/* Task styling */\\n/* Default task */\\n.task {\\n stroke-width: 2; }\\n\\n.taskText {\\n text-anchor: middle;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskText:not([font-size]) {\\n font-size: 11px; }\\n\\n.taskTextOutsideRight {\\n fill: black;\\n text-anchor: start;\\n font-size: 11px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskTextOutsideLeft {\\n fill: black;\\n text-anchor: end;\\n font-size: 11px; }\\n\\n/* Special case clickable */\\n.task.clickable {\\n cursor: pointer; }\\n\\n.taskText.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideLeft.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideRight.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n/* Specific task settings for the sections*/\\n.taskText0,\\n.taskText1,\\n.taskText2,\\n.taskText3 {\\n fill: white; }\\n\\n.task0,\\n.task1,\\n.task2,\\n.task3 {\\n fill: #8a90dd;\\n stroke: #534fbc; }\\n\\n.taskTextOutside0,\\n.taskTextOutside2 {\\n fill: black; }\\n\\n.taskTextOutside1,\\n.taskTextOutside3 {\\n fill: black; }\\n\\n/* Active task */\\n.active0,\\n.active1,\\n.active2,\\n.active3 {\\n fill: #bfc7ff;\\n stroke: #534fbc; }\\n\\n.activeText0,\\n.activeText1,\\n.activeText2,\\n.activeText3 {\\n fill: black !important; }\\n\\n/* Completed task */\\n.done0,\\n.done1,\\n.done2,\\n.done3 {\\n stroke: grey;\\n fill: lightgrey;\\n stroke-width: 2; }\\n\\n.doneText0,\\n.doneText1,\\n.doneText2,\\n.doneText3 {\\n fill: black !important; }\\n\\n/* Tasks on the critical line */\\n.crit0,\\n.crit1,\\n.crit2,\\n.crit3 {\\n stroke: #ff8888;\\n fill: red;\\n stroke-width: 2; }\\n\\n.activeCrit0,\\n.activeCrit1,\\n.activeCrit2,\\n.activeCrit3 {\\n stroke: #ff8888;\\n fill: #bfc7ff;\\n stroke-width: 2; }\\n\\n.doneCrit0,\\n.doneCrit1,\\n.doneCrit2,\\n.doneCrit3 {\\n stroke: #ff8888;\\n fill: lightgrey;\\n stroke-width: 2;\\n cursor: pointer;\\n shape-rendering: crispEdges; }\\n\\n.milestone {\\n transform: rotate(45deg) scale(0.8, 0.8); }\\n\\n.milestoneText {\\n font-style: italic; }\\n\\n.doneCritText0,\\n.doneCritText1,\\n.doneCritText2,\\n.doneCritText3 {\\n fill: black !important; }\\n\\n.activeCritText0,\\n.activeCritText1,\\n.activeCritText2,\\n.activeCritText3 {\\n fill: black !important; }\\n\\n.titleText {\\n text-anchor: middle;\\n font-size: 18px;\\n fill: black;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.classGroup text {\\n fill: #9370DB;\\n stroke: none;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 10px; }\\n g.classGroup text .title {\\n font-weight: bolder; }\\n\\ng.clickable {\\n cursor: pointer; }\\n\\ng.classGroup rect {\\n fill: #ECECFF;\\n stroke: #9370DB; }\\n\\ng.classGroup line {\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n.classLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #ECECFF;\\n opacity: 0.5; }\\n\\n.classLabel .label {\\n fill: #9370DB;\\n font-size: 10px; }\\n\\n.relation {\\n stroke: #9370DB;\\n stroke-width: 1;\\n fill: none; }\\n\\n.dashed-line {\\n stroke-dasharray: 3; }\\n\\n#compositionStart {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#compositionEnd {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#aggregationStart {\\n fill: #ECECFF;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#aggregationEnd {\\n fill: #ECECFF;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#dependencyStart {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#dependencyEnd {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#extensionStart {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#extensionEnd {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n.commit-id,\\n.commit-msg,\\n.branch-label {\\n fill: lightgrey;\\n color: lightgrey;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.pieTitleText {\\n text-anchor: middle;\\n font-size: 25px;\\n fill: black;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.slice {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #9370DB;\\n stroke: none;\\n font-size: 10px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #9370DB;\\n stroke: none;\\n font-size: 10px; }\\n\\ng.stateGroup .state-title {\\n font-weight: bolder;\\n fill: black; }\\n\\ng.stateGroup rect {\\n fill: #ECECFF;\\n stroke: #9370DB; }\\n\\ng.stateGroup line {\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n.transition {\\n stroke: #9370DB;\\n stroke-width: 1;\\n fill: none; }\\n\\n.stateGroup .composit {\\n fill: white;\\n border-bottom: 1px; }\\n\\n.stateGroup .alt-composit {\\n fill: #e0e0e0;\\n border-bottom: 1px; }\\n\\n.state-note {\\n stroke: #aaaa33;\\n fill: #fff5ad; }\\n .state-note text {\\n fill: black;\\n stroke: none;\\n font-size: 10px; }\\n\\n.stateLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #ECECFF;\\n opacity: 0.5; }\\n\\n.stateLabel text {\\n fill: black;\\n font-size: 10px;\\n font-weight: bold;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.node circle.state-start {\\n fill: black;\\n stroke: black; }\\n\\n.node circle.state-end {\\n fill: black;\\n stroke: white;\\n stroke-width: 1.5; }\\n\\n#statediagram-barbEnd {\\n fill: #9370DB; }\\n\\n.statediagram-cluster rect {\\n fill: #ECECFF;\\n stroke: #9370DB;\\n stroke-width: 1px; }\\n\\n.statediagram-cluster rect.outer {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state .divider {\\n stroke: #9370DB; }\\n\\n.statediagram-state .title-state {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-cluster.statediagram-cluster .inner {\\n fill: white; }\\n\\n.statediagram-cluster.statediagram-cluster-alt .inner {\\n fill: #e0e0e0; }\\n\\n.statediagram-cluster .inner {\\n rx: 0;\\n ry: 0; }\\n\\n.statediagram-state rect.basic {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state rect.divider {\\n stroke-dasharray: 10,10;\\n fill: #efefef; }\\n\\n.note-edge {\\n stroke-dasharray: 5; }\\n\\n.statediagram-note rect {\\n fill: #fff5ad;\\n stroke: #aaaa33;\\n stroke-width: 1px;\\n rx: 0;\\n ry: 0; }\\n\\n:root {\\n --mermaid-font-family: '\\\"trebuchet ms\\\", verdana, arial, \\\"Comic Sans MS\\\", \\\"Comic Sans\\\", cursive'; }\\n\\n.error-icon {\\n fill: #552222; }\\n\\n.error-text {\\n fill: #552222;\\n stroke: #552222; }\\n\", \"\"]);\n\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/* Flowchart variables */\\n/* Sequence Diagram variables */\\n/* Gantt chart variables */\\n/* state colors */\\n.label {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n color: #333; }\\n\\n.label text {\\n fill: #333; }\\n\\n.node rect,\\n.node circle,\\n.node ellipse,\\n.node polygon,\\n.node path {\\n fill: #cde498;\\n stroke: #13540c;\\n stroke-width: 1px; }\\n\\n.node .label {\\n text-align: center; }\\n\\n.node.clickable {\\n cursor: pointer; }\\n\\n.arrowheadPath {\\n fill: green; }\\n\\n.edgePath .path {\\n stroke: green;\\n stroke-width: 1.5px; }\\n\\n.edgeLabel {\\n background-color: #e8e8e8;\\n text-align: center; }\\n .edgeLabel rect {\\n opacity: 0.5; }\\n\\n.cluster rect {\\n fill: #cdffb2;\\n stroke: #6eaa49;\\n stroke-width: 1px; }\\n\\n.cluster text {\\n fill: #333; }\\n\\ndiv.mermaidTooltip {\\n position: absolute;\\n text-align: center;\\n max-width: 200px;\\n padding: 2px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 12px;\\n background: #cdffb2;\\n border: 1px solid #6eaa49;\\n border-radius: 2px;\\n pointer-events: none;\\n z-index: 100; }\\n\\n.actor {\\n stroke: #13540c;\\n fill: #cde498; }\\n\\ntext.actor > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.actor-line {\\n stroke: grey; }\\n\\n.messageLine0 {\\n stroke-width: 1.5;\\n stroke-dasharray: none;\\n stroke: #333; }\\n\\n.messageLine1 {\\n stroke-width: 1.5;\\n stroke-dasharray: 2, 2;\\n stroke: #333; }\\n\\n#arrowhead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.sequenceNumber {\\n fill: white; }\\n\\n#sequencenumber {\\n fill: #333; }\\n\\n#crosshead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.messageText {\\n fill: #333;\\n stroke: #333; }\\n\\n.labelBox {\\n stroke: #326932;\\n fill: #cde498; }\\n\\n.labelText, .labelText > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.loopText, .loopText > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.loopLine {\\n stroke-width: 2px;\\n stroke-dasharray: 2, 2;\\n stroke: #326932;\\n fill: #326932; }\\n\\n.note {\\n stroke: #6eaa49;\\n fill: #fff5ad; }\\n\\n.noteText {\\n fill: #cde498;\\n stroke: none; }\\n\\n.activation0 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation1 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation2 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\ng > rect[class=\\\"note\\\"] {\\n stroke: #6eaa49;\\n fill: #fff5ad; }\\n\\ng > text[class=\\\"noteText\\\"] > tspan {\\n stroke: #cde498;\\n fill: #cde498;\\n stroke-width: 1px; }\\n\\n/** Section styling */\\n.mermaid-main-font {\\n font-family: \\\"trebuchet ms\\\", verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.section {\\n stroke: none;\\n opacity: 0.2; }\\n\\n.section0 {\\n fill: #6eaa49; }\\n\\n.section2 {\\n fill: #6eaa49; }\\n\\n.section1,\\n.section3 {\\n fill: white;\\n opacity: 0.2; }\\n\\n.sectionTitle0 {\\n fill: #333; }\\n\\n.sectionTitle1 {\\n fill: #333; }\\n\\n.sectionTitle2 {\\n fill: #333; }\\n\\n.sectionTitle3 {\\n fill: #333; }\\n\\n.sectionTitle {\\n text-anchor: start;\\n font-size: 11px;\\n text-height: 14px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n/* Grid and axis */\\n.grid .tick {\\n stroke: lightgrey;\\n opacity: 0.8;\\n shape-rendering: crispEdges; }\\n .grid .tick text {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.grid path {\\n stroke-width: 0; }\\n\\n/* Today line */\\n.today {\\n fill: none;\\n stroke: red;\\n stroke-width: 2px; }\\n\\n/* Task styling */\\n/* Default task */\\n.task {\\n stroke-width: 2; }\\n\\n.taskText {\\n text-anchor: middle;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskText:not([font-size]) {\\n font-size: 11px; }\\n\\n.taskTextOutsideRight {\\n fill: black;\\n text-anchor: start;\\n font-size: 11px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskTextOutsideLeft {\\n fill: black;\\n text-anchor: end;\\n font-size: 11px; }\\n\\n/* Special case clickable */\\n.task.clickable {\\n cursor: pointer; }\\n\\n.taskText.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideLeft.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideRight.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n/* Specific task settings for the sections*/\\n.taskText0,\\n.taskText1,\\n.taskText2,\\n.taskText3 {\\n fill: white; }\\n\\n.task0,\\n.task1,\\n.task2,\\n.task3 {\\n fill: #487e3a;\\n stroke: #13540c; }\\n\\n.taskTextOutside0,\\n.taskTextOutside2 {\\n fill: black; }\\n\\n.taskTextOutside1,\\n.taskTextOutside3 {\\n fill: black; }\\n\\n/* Active task */\\n.active0,\\n.active1,\\n.active2,\\n.active3 {\\n fill: #cde498;\\n stroke: #13540c; }\\n\\n.activeText0,\\n.activeText1,\\n.activeText2,\\n.activeText3 {\\n fill: black !important; }\\n\\n/* Completed task */\\n.done0,\\n.done1,\\n.done2,\\n.done3 {\\n stroke: grey;\\n fill: lightgrey;\\n stroke-width: 2; }\\n\\n.doneText0,\\n.doneText1,\\n.doneText2,\\n.doneText3 {\\n fill: black !important; }\\n\\n/* Tasks on the critical line */\\n.crit0,\\n.crit1,\\n.crit2,\\n.crit3 {\\n stroke: #ff8888;\\n fill: red;\\n stroke-width: 2; }\\n\\n.activeCrit0,\\n.activeCrit1,\\n.activeCrit2,\\n.activeCrit3 {\\n stroke: #ff8888;\\n fill: #cde498;\\n stroke-width: 2; }\\n\\n.doneCrit0,\\n.doneCrit1,\\n.doneCrit2,\\n.doneCrit3 {\\n stroke: #ff8888;\\n fill: lightgrey;\\n stroke-width: 2;\\n cursor: pointer;\\n shape-rendering: crispEdges; }\\n\\n.milestone {\\n transform: rotate(45deg) scale(0.8, 0.8); }\\n\\n.milestoneText {\\n font-style: italic; }\\n\\n.doneCritText0,\\n.doneCritText1,\\n.doneCritText2,\\n.doneCritText3 {\\n fill: black !important; }\\n\\n.activeCritText0,\\n.activeCritText1,\\n.activeCritText2,\\n.activeCritText3 {\\n fill: black !important; }\\n\\n.titleText {\\n text-anchor: middle;\\n font-size: 18px;\\n fill: black;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.classGroup text {\\n fill: #13540c;\\n stroke: none;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 10px; }\\n g.classGroup text .title {\\n font-weight: bolder; }\\n\\ng.clickable {\\n cursor: pointer; }\\n\\ng.classGroup rect {\\n fill: #cde498;\\n stroke: #13540c; }\\n\\ng.classGroup line {\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n.classLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #cde498;\\n opacity: 0.5; }\\n\\n.classLabel .label {\\n fill: #13540c;\\n font-size: 10px; }\\n\\n.relation {\\n stroke: #13540c;\\n stroke-width: 1;\\n fill: none; }\\n\\n.dashed-line {\\n stroke-dasharray: 3; }\\n\\n#compositionStart {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#compositionEnd {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#aggregationStart {\\n fill: #cde498;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#aggregationEnd {\\n fill: #cde498;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#dependencyStart {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#dependencyEnd {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#extensionStart {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#extensionEnd {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n.commit-id,\\n.commit-msg,\\n.branch-label {\\n fill: lightgrey;\\n color: lightgrey;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.pieTitleText {\\n text-anchor: middle;\\n font-size: 25px;\\n fill: black;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.slice {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #13540c;\\n stroke: none;\\n font-size: 10px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #13540c;\\n stroke: none;\\n font-size: 10px; }\\n\\ng.stateGroup .state-title {\\n font-weight: bolder;\\n fill: black; }\\n\\ng.stateGroup rect {\\n fill: #cde498;\\n stroke: #13540c; }\\n\\ng.stateGroup line {\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n.transition {\\n stroke: #13540c;\\n stroke-width: 1;\\n fill: none; }\\n\\n.stateGroup .composit {\\n fill: white;\\n border-bottom: 1px; }\\n\\n.stateGroup .alt-composit {\\n fill: #e0e0e0;\\n border-bottom: 1px; }\\n\\n.state-note {\\n stroke: #6eaa49;\\n fill: #fff5ad; }\\n .state-note text {\\n fill: black;\\n stroke: none;\\n font-size: 10px; }\\n\\n.stateLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #cde498;\\n opacity: 0.5; }\\n\\n.stateLabel text {\\n fill: black;\\n font-size: 10px;\\n font-weight: bold;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.node circle.state-start {\\n fill: black;\\n stroke: black; }\\n\\n.node circle.state-end {\\n fill: black;\\n stroke: white;\\n stroke-width: 1.5; }\\n\\n#statediagram-barbEnd {\\n fill: #13540c; }\\n\\n.statediagram-cluster rect {\\n fill: #cde498;\\n stroke: #13540c;\\n stroke-width: 1px; }\\n\\n.statediagram-cluster rect.outer {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state .divider {\\n stroke: #13540c; }\\n\\n.statediagram-state .title-state {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-cluster.statediagram-cluster .inner {\\n fill: white; }\\n\\n.statediagram-cluster.statediagram-cluster-alt .inner {\\n fill: #e0e0e0; }\\n\\n.statediagram-cluster .inner {\\n rx: 0;\\n ry: 0; }\\n\\n.statediagram-state rect.basic {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state rect.divider {\\n stroke-dasharray: 10,10;\\n fill: #efefef; }\\n\\n.note-edge {\\n stroke-dasharray: 5; }\\n\\n.statediagram-note rect {\\n fill: #fff5ad;\\n stroke: #6eaa49;\\n stroke-width: 1px;\\n rx: 0;\\n ry: 0; }\\n\\n:root {\\n --mermaid-font-family: '\\\"trebuchet ms\\\", verdana, arial, \\\"Comic Sans MS\\\", \\\"Comic Sans\\\", cursive'; }\\n\\n.error-icon {\\n fill: #552222; }\\n\\n.error-text {\\n fill: #552222;\\n stroke: #552222; }\\n\", \"\"]);\n\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/* Flowchart variables */\\n/* Sequence Diagram variables */\\n/* Gantt chart variables */\\n/* state colors */\\n.label {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n color: #333; }\\n\\n.label text {\\n fill: #333; }\\n\\n.node rect,\\n.node circle,\\n.node ellipse,\\n.node polygon,\\n.node path {\\n fill: #eee;\\n stroke: #999;\\n stroke-width: 1px; }\\n\\n.node .label {\\n text-align: center; }\\n\\n.node.clickable {\\n cursor: pointer; }\\n\\n.arrowheadPath {\\n fill: #333333; }\\n\\n.edgePath .path {\\n stroke: #666;\\n stroke-width: 1.5px; }\\n\\n.edgeLabel {\\n background-color: white;\\n text-align: center; }\\n .edgeLabel rect {\\n opacity: 0.5; }\\n\\n.cluster rect {\\n fill: #eaf2fb;\\n stroke: #26a;\\n stroke-width: 1px; }\\n\\n.cluster text {\\n fill: #333; }\\n\\ndiv.mermaidTooltip {\\n position: absolute;\\n text-align: center;\\n max-width: 200px;\\n padding: 2px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 12px;\\n background: #eaf2fb;\\n border: 1px solid #26a;\\n border-radius: 2px;\\n pointer-events: none;\\n z-index: 100; }\\n\\n.actor {\\n stroke: #999;\\n fill: #eee; }\\n\\ntext.actor > tspan {\\n fill: #333;\\n stroke: none; }\\n\\n.actor-line {\\n stroke: #666; }\\n\\n.messageLine0 {\\n stroke-width: 1.5;\\n stroke-dasharray: none;\\n stroke: #333; }\\n\\n.messageLine1 {\\n stroke-width: 1.5;\\n stroke-dasharray: 2, 2;\\n stroke: #333; }\\n\\n#arrowhead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.sequenceNumber {\\n fill: white; }\\n\\n#sequencenumber {\\n fill: #333; }\\n\\n#crosshead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.messageText {\\n fill: #333;\\n stroke: #333; }\\n\\n.labelBox {\\n stroke: #999;\\n fill: #eee; }\\n\\n.labelText, .labelText > tspan {\\n fill: #333;\\n stroke: none; }\\n\\n.loopText, .loopText > tspan {\\n fill: #333;\\n stroke: none; }\\n\\n.loopLine {\\n stroke-width: 2px;\\n stroke-dasharray: 2, 2;\\n stroke: #999;\\n fill: #999; }\\n\\n.note {\\n stroke: #777700;\\n fill: #ffa; }\\n\\n.noteText {\\n fill: #eee;\\n stroke: none; }\\n\\n.activation0 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation1 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation2 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\ng > rect[class=\\\"note\\\"] {\\n stroke: #777700;\\n fill: #ffa; }\\n\\ng > text[class=\\\"noteText\\\"] > tspan {\\n stroke: #eee;\\n fill: #eee;\\n stroke-width: 1px; }\\n\\n/** Section styling */\\n.mermaid-main-font {\\n font-family: \\\"trebuchet ms\\\", verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.section {\\n stroke: none;\\n opacity: 0.2; }\\n\\n.section0 {\\n fill: #80b3e6; }\\n\\n.section2 {\\n fill: #80b3e6; }\\n\\n.section1,\\n.section3 {\\n fill: white;\\n opacity: 0.2; }\\n\\n.sectionTitle0 {\\n fill: #333; }\\n\\n.sectionTitle1 {\\n fill: #333; }\\n\\n.sectionTitle2 {\\n fill: #333; }\\n\\n.sectionTitle3 {\\n fill: #333; }\\n\\n.sectionTitle {\\n text-anchor: start;\\n font-size: 11px;\\n text-height: 14px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n/* Grid and axis */\\n.grid .tick {\\n stroke: #e6e6e6;\\n opacity: 0.8;\\n shape-rendering: crispEdges; }\\n .grid .tick text {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.grid path {\\n stroke-width: 0; }\\n\\n/* Today line */\\n.today {\\n fill: none;\\n stroke: #d42;\\n stroke-width: 2px; }\\n\\n/* Task styling */\\n/* Default task */\\n.task {\\n stroke-width: 2; }\\n\\n.taskText {\\n text-anchor: middle;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskText:not([font-size]) {\\n font-size: 11px; }\\n\\n.taskTextOutsideRight {\\n fill: #333;\\n text-anchor: start;\\n font-size: 11px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskTextOutsideLeft {\\n fill: #333;\\n text-anchor: end;\\n font-size: 11px; }\\n\\n/* Special case clickable */\\n.task.clickable {\\n cursor: pointer; }\\n\\n.taskText.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideLeft.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideRight.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n/* Specific task settings for the sections*/\\n.taskText0,\\n.taskText1,\\n.taskText2,\\n.taskText3 {\\n fill: white; }\\n\\n.task0,\\n.task1,\\n.task2,\\n.task3 {\\n fill: #26a;\\n stroke: #1a4d80; }\\n\\n.taskTextOutside0,\\n.taskTextOutside2 {\\n fill: #333; }\\n\\n.taskTextOutside1,\\n.taskTextOutside3 {\\n fill: #333; }\\n\\n/* Active task */\\n.active0,\\n.active1,\\n.active2,\\n.active3 {\\n fill: #eee;\\n stroke: #1a4d80; }\\n\\n.activeText0,\\n.activeText1,\\n.activeText2,\\n.activeText3 {\\n fill: #333 !important; }\\n\\n/* Completed task */\\n.done0,\\n.done1,\\n.done2,\\n.done3 {\\n stroke: #666;\\n fill: #bbb;\\n stroke-width: 2; }\\n\\n.doneText0,\\n.doneText1,\\n.doneText2,\\n.doneText3 {\\n fill: #333 !important; }\\n\\n/* Tasks on the critical line */\\n.crit0,\\n.crit1,\\n.crit2,\\n.crit3 {\\n stroke: #b1361b;\\n fill: #d42;\\n stroke-width: 2; }\\n\\n.activeCrit0,\\n.activeCrit1,\\n.activeCrit2,\\n.activeCrit3 {\\n stroke: #b1361b;\\n fill: #eee;\\n stroke-width: 2; }\\n\\n.doneCrit0,\\n.doneCrit1,\\n.doneCrit2,\\n.doneCrit3 {\\n stroke: #b1361b;\\n fill: #bbb;\\n stroke-width: 2;\\n cursor: pointer;\\n shape-rendering: crispEdges; }\\n\\n.milestone {\\n transform: rotate(45deg) scale(0.8, 0.8); }\\n\\n.milestoneText {\\n font-style: italic; }\\n\\n.doneCritText0,\\n.doneCritText1,\\n.doneCritText2,\\n.doneCritText3 {\\n fill: #333 !important; }\\n\\n.activeCritText0,\\n.activeCritText1,\\n.activeCritText2,\\n.activeCritText3 {\\n fill: #333 !important; }\\n\\n.titleText {\\n text-anchor: middle;\\n font-size: 18px;\\n fill: #333;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.classGroup text {\\n fill: #999;\\n stroke: none;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 10px; }\\n g.classGroup text .title {\\n font-weight: bolder; }\\n\\ng.clickable {\\n cursor: pointer; }\\n\\ng.classGroup rect {\\n fill: #eee;\\n stroke: #999; }\\n\\ng.classGroup line {\\n stroke: #999;\\n stroke-width: 1; }\\n\\n.classLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #eee;\\n opacity: 0.5; }\\n\\n.classLabel .label {\\n fill: #999;\\n font-size: 10px; }\\n\\n.relation {\\n stroke: #999;\\n stroke-width: 1;\\n fill: none; }\\n\\n.dashed-line {\\n stroke-dasharray: 3; }\\n\\n#compositionStart {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#compositionEnd {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#aggregationStart {\\n fill: #eee;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#aggregationEnd {\\n fill: #eee;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#dependencyStart {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#dependencyEnd {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#extensionStart {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#extensionEnd {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n.commit-id,\\n.commit-msg,\\n.branch-label {\\n fill: lightgrey;\\n color: lightgrey;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.pieTitleText {\\n text-anchor: middle;\\n font-size: 25px;\\n fill: #333;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.slice {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #999;\\n stroke: none;\\n font-size: 10px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #999;\\n stroke: none;\\n font-size: 10px; }\\n\\ng.stateGroup .state-title {\\n font-weight: bolder;\\n fill: black; }\\n\\ng.stateGroup rect {\\n fill: #eee;\\n stroke: #999; }\\n\\ng.stateGroup line {\\n stroke: #999;\\n stroke-width: 1; }\\n\\n.transition {\\n stroke: #999;\\n stroke-width: 1;\\n fill: none; }\\n\\n.stateGroup .composit {\\n fill: white;\\n border-bottom: 1px; }\\n\\n.stateGroup .alt-composit {\\n fill: #e0e0e0;\\n border-bottom: 1px; }\\n\\n.state-note {\\n stroke: #777700;\\n fill: #ffa; }\\n .state-note text {\\n fill: black;\\n stroke: none;\\n font-size: 10px; }\\n\\n.stateLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #eee;\\n opacity: 0.5; }\\n\\n.stateLabel text {\\n fill: black;\\n font-size: 10px;\\n font-weight: bold;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.node circle.state-start {\\n fill: black;\\n stroke: black; }\\n\\n.node circle.state-end {\\n fill: black;\\n stroke: white;\\n stroke-width: 1.5; }\\n\\n#statediagram-barbEnd {\\n fill: #999; }\\n\\n.statediagram-cluster rect {\\n fill: #eee;\\n stroke: #999;\\n stroke-width: 1px; }\\n\\n.statediagram-cluster rect.outer {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state .divider {\\n stroke: #999; }\\n\\n.statediagram-state .title-state {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-cluster.statediagram-cluster .inner {\\n fill: white; }\\n\\n.statediagram-cluster.statediagram-cluster-alt .inner {\\n fill: #e0e0e0; }\\n\\n.statediagram-cluster .inner {\\n rx: 0;\\n ry: 0; }\\n\\n.statediagram-state rect.basic {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state rect.divider {\\n stroke-dasharray: 10,10;\\n fill: #efefef; }\\n\\n.note-edge {\\n stroke-dasharray: 5; }\\n\\n.statediagram-note rect {\\n fill: #ffa;\\n stroke: #777700;\\n stroke-width: 1px;\\n rx: 0;\\n ry: 0; }\\n\\n:root {\\n --mermaid-font-family: '\\\"trebuchet ms\\\", verdana, arial, \\\"Comic Sans MS\\\", \\\"Comic Sans\\\", cursive'; }\\n\\n.error-icon {\\n fill: #552222; }\\n\\n.error-text {\\n fill: #552222;\\n stroke: #552222; }\\n\", \"\"]);\n\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return '@media ' + item[2] + '{' + content + '}';\n } else {\n return content;\n }\n }).join('');\n }; // import a list of modules into the list\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n for (var i = 0; i < this.length; i++) {\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n\n for (i = 0; i < modules.length; i++) {\n var item = modules[i]; // skip already imported module\n // this implementation is not 100% perfect for weird media query combinations\n // when a module is imported multiple times with different media queries.\n // I hope this will never occur (Hey this way we have smaller bundles)\n\n if (item[0] == null || !alreadyImportedModules[item[0]]) {\n if (mediaQuery && !item[2]) {\n item[2] = mediaQuery;\n } else if (mediaQuery) {\n item[2] = '(' + item[2] + ') and (' + mediaQuery + ')';\n }\n\n list.push(item);\n }\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || '';\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */';\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n return '/*# ' + data + ' */';\n}","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {pair} from \"./pairs\";\n\nexport default function(values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","import variance from \"./variance\";\n\nexport default function(array, f) {\n var v = variance(array, f);\n return v ? Math.sqrt(v) : v;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n return [min, max];\n}\n","import {slice} from \"./array\";\nimport bisect from \"./bisect\";\nimport constant from \"./constant\";\nimport extent from \"./extent\";\nimport identity from \"./identity\";\nimport range from \"./range\";\nimport {tickStep} from \"./ticks\";\nimport sturges from \"./threshold/sturges\";\n\nexport default function() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n tz = tickStep(x0, x1, tz);\n tz = range(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisect(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n}\n","export default function(x) {\n return x;\n}\n","export {default as bisect, bisectRight, bisectLeft} from \"./bisect\";\nexport {default as ascending} from \"./ascending\";\nexport {default as bisector} from \"./bisector\";\nexport {default as cross} from \"./cross\";\nexport {default as descending} from \"./descending\";\nexport {default as deviation} from \"./deviation\";\nexport {default as extent} from \"./extent\";\nexport {default as histogram} from \"./histogram\";\nexport {default as thresholdFreedmanDiaconis} from \"./threshold/freedmanDiaconis\";\nexport {default as thresholdScott} from \"./threshold/scott\";\nexport {default as thresholdSturges} from \"./threshold/sturges\";\nexport {default as max} from \"./max\";\nexport {default as mean} from \"./mean\";\nexport {default as median} from \"./median\";\nexport {default as merge} from \"./merge\";\nexport {default as min} from \"./min\";\nexport {default as pairs} from \"./pairs\";\nexport {default as permute} from \"./permute\";\nexport {default as quantile} from \"./quantile\";\nexport {default as range} from \"./range\";\nexport {default as scan} from \"./scan\";\nexport {default as shuffle} from \"./shuffle\";\nexport {default as sum} from \"./sum\";\nexport {default as ticks, tickIncrement, tickStep} from \"./ticks\";\nexport {default as transpose} from \"./transpose\";\nexport {default as variance} from \"./variance\";\nexport {default as zip} from \"./zip\";\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n return max;\n}\n","import number from \"./number\";\n\nexport default function(values, valueof) {\n var n = values.length,\n m = n,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) sum += value;\n else --m;\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;\n else --m;\n }\n }\n\n if (m) return sum / m;\n}\n","import ascending from \"./ascending\";\nimport number from \"./number\";\nimport quantile from \"./quantile\";\n\nexport default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n numbers = [];\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n numbers.push(value);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n numbers.push(value);\n }\n }\n }\n\n return quantile(numbers.sort(ascending), 0.5);\n}\n","export default function(arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n return min;\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n","export default function(array, f) {\n if (f == null) f = pair;\n var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = f(p, p = array[++i]);\n return pairs;\n}\n\nexport function pair(a, b) {\n return [a, b];\n}\n","export default function(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n}\n","import number from \"./number\";\n\nexport default function(values, p, valueof) {\n if (valueof == null) valueof = number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","import ascending from \"./ascending\";\n\nexport default function(values, compare) {\n if (!(n = values.length)) return;\n var n,\n i = 0,\n j = 0,\n xi,\n xj = values[j];\n\n if (compare == null) compare = ascending;\n\n while (++i < n) {\n if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {\n xj = xi, j = i;\n }\n }\n\n if (compare(xj, xj) === 0) return j;\n}\n","export default function(array, i0, i1) {\n var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n\n return array;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n }\n }\n\n else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum += value;\n }\n }\n\n return sum;\n}\n","import {map} from \"../array\";\nimport ascending from \"../ascending\";\nimport number from \"../number\";\nimport quantile from \"../quantile\";\n\nexport default function(values, min, max) {\n values = map.call(values, number).sort(ascending);\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n}\n","import deviation from \"../deviation\";\n\nexport default function(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));\n}\n","export default function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","import min from \"./min\";\n\nexport default function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n}\n\nfunction length(d) {\n return d.length;\n}\n","import number from \"./number\";\n\nexport default function(values, valueof) {\n var n = values.length,\n m = 0,\n i = -1,\n mean = 0,\n value,\n delta,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n if (m > 1) return sum / (m - 1);\n}\n","import transpose from \"./transpose\";\n\nexport default function() {\n return transpose(arguments);\n}\n","export var slice = Array.prototype.slice;\n","import {slice} from \"./array\";\nimport identity from \"./identity\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + (x + 0.5) + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + (y + 0.5) + \")\";\n}\n\nfunction number(scale) {\n return function(d) {\n return +scale(d);\n };\n}\n\nfunction center(scale) {\n var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.\n if (scale.round()) offset = Math.round(offset);\n return function(d) {\n return +scale(d) + offset;\n };\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + 0.5,\n range1 = +range[range.length - 1] + 0.5,\n position = (scale.bandwidth ? center : number)(scale.copy()),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform(p && isFinite(p = p(d)) ? p : position(d)); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient == right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H0.5V\" + range1 + \"H\" + k * tickSizeOuter : \"M0.5,\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V0.5H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",0.5H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d)); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = slice.call(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : slice.call(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : slice.call(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","export default function(x) {\n return x;\n}\n","export {\n axisTop,\n axisRight,\n axisBottom,\n axisLeft\n} from \"./axis\";\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {customEvent, event, touch, mouse, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nfunction toucher(identifier) {\n return function(target) {\n return touch(target, event.touches, identifier);\n };\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection) {\n if (group.selection) {\n group\n .on(\"start.brush\", function() { emitter(this, arguments).beforestart().start(); })\n .on(\"interrupt.brush end.brush\", function() { emitter(this, arguments).end(); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n brush.clear = function(group) {\n brush.move(group, null);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n return (!clean && that.__brush.emitter) || new Emitter(that, args);\n }\n\n function Emitter(that, args) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function() {\n if (this.starting) this.starting = false, this.emit(\"start\");\n else this.emit(\"brush\");\n return this;\n },\n brush: function() {\n this.emit(\"brush\");\n return this;\n },\n end: function() {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\");\n return this;\n },\n emit: function(type) {\n customEvent(new BrushEvent(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function started() {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n pointer = event.touches ? toucher(event.changedTouches[0].identifier) : mouse,\n point0 = pointer(that),\n point = point0,\n emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n state.selection = selection = [\n [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]],\n [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]\n ];\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n nopropagation();\n interrupt(that);\n redraw.call(that);\n emit.start();\n\n function moved() {\n var point1 = pointer(that);\n if (shifting && !lockX && !lockY) {\n if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;\n else lockX = true;\n }\n point = point1;\n moving = true;\n noevent();\n move();\n }\n\n function move() {\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));\n if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush();\n }\n }\n\n function ended() {\n nopropagation();\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end();\n }\n\n function keydowned() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n\n function keyupped() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n }\n\n function touchmoved() {\n emitter(this, arguments).moved();\n }\n\n function touchended() {\n emitter(this, arguments).ended();\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(target, type, selection) {\n this.target = target;\n this.type = type;\n this.selection = selection;\n}\n","export {\n default as brush,\n brushX,\n brushY,\n brushSelection\n} from \"./brush.js\";\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","export var slice = Array.prototype.slice;\n","import {range} from \"d3-array\";\nimport {max, tau} from \"./math\";\n\nfunction compareValue(compare) {\n return function(a, b) {\n return compare(\n a.source.value + a.target.value,\n b.source.value + b.target.value\n );\n };\n}\n\nexport default function() {\n var padAngle = 0,\n sortGroups = null,\n sortSubgroups = null,\n sortChords = null;\n\n function chord(matrix) {\n var n = matrix.length,\n groupSums = [],\n groupIndex = range(n),\n subgroupIndex = [],\n chords = [],\n groups = chords.groups = new Array(n),\n subgroups = new Array(n * n),\n k,\n x,\n x0,\n dx,\n i,\n j;\n\n // Compute the sum.\n k = 0, i = -1; while (++i < n) {\n x = 0, j = -1; while (++j < n) {\n x += matrix[i][j];\n }\n groupSums.push(x);\n subgroupIndex.push(range(n));\n k += x;\n }\n\n // Sort groups…\n if (sortGroups) groupIndex.sort(function(a, b) {\n return sortGroups(groupSums[a], groupSums[b]);\n });\n\n // Sort subgroups…\n if (sortSubgroups) subgroupIndex.forEach(function(d, i) {\n d.sort(function(a, b) {\n return sortSubgroups(matrix[i][a], matrix[i][b]);\n });\n });\n\n // Convert the sum to scaling factor for [0, 2pi].\n // TODO Allow start and end angle to be specified?\n // TODO Allow padding to be specified as percentage?\n k = max(0, tau - padAngle * n) / k;\n dx = k ? padAngle : tau / n;\n\n // Compute the start and end angle for each group and subgroup.\n // Note: Opera has a bug reordering object literal properties!\n x = 0, i = -1; while (++i < n) {\n x0 = x, j = -1; while (++j < n) {\n var di = groupIndex[i],\n dj = subgroupIndex[di][j],\n v = matrix[di][dj],\n a0 = x,\n a1 = x += v * k;\n subgroups[dj * n + di] = {\n index: di,\n subindex: dj,\n startAngle: a0,\n endAngle: a1,\n value: v\n };\n }\n groups[di] = {\n index: di,\n startAngle: x0,\n endAngle: x,\n value: groupSums[di]\n };\n x += dx;\n }\n\n // Generate chords for each (non-empty) subgroup-subgroup link.\n i = -1; while (++i < n) {\n j = i - 1; while (++j < n) {\n var source = subgroups[j * n + i],\n target = subgroups[i * n + j];\n if (source.value || target.value) {\n chords.push(source.value < target.value\n ? {source: target, target: source}\n : {source: source, target: target});\n }\n }\n }\n\n return sortChords ? chords.sort(sortChords) : chords;\n }\n\n chord.padAngle = function(_) {\n return arguments.length ? (padAngle = max(0, _), chord) : padAngle;\n };\n\n chord.sortGroups = function(_) {\n return arguments.length ? (sortGroups = _, chord) : sortGroups;\n };\n\n chord.sortSubgroups = function(_) {\n return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;\n };\n\n chord.sortChords = function(_) {\n return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;\n };\n\n return chord;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export {default as chord} from \"./chord\";\nexport {default as ribbon} from \"./ribbon\";\n","export var cos = Math.cos;\nexport var sin = Math.sin;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = pi * 2;\nexport var max = Math.max;\n","import {slice} from \"./array\";\nimport constant from \"./constant\";\nimport {cos, halfPi, sin} from \"./math\";\nimport {path} from \"d3-path\";\n\nfunction defaultSource(d) {\n return d.source;\n}\n\nfunction defaultTarget(d) {\n return d.target;\n}\n\nfunction defaultRadius(d) {\n return d.radius;\n}\n\nfunction defaultStartAngle(d) {\n return d.startAngle;\n}\n\nfunction defaultEndAngle(d) {\n return d.endAngle;\n}\n\nexport default function() {\n var source = defaultSource,\n target = defaultTarget,\n radius = defaultRadius,\n startAngle = defaultStartAngle,\n endAngle = defaultEndAngle,\n context = null;\n\n function ribbon() {\n var buffer,\n argv = slice.call(arguments),\n s = source.apply(this, argv),\n t = target.apply(this, argv),\n sr = +radius.apply(this, (argv[0] = s, argv)),\n sa0 = startAngle.apply(this, argv) - halfPi,\n sa1 = endAngle.apply(this, argv) - halfPi,\n sx0 = sr * cos(sa0),\n sy0 = sr * sin(sa0),\n tr = +radius.apply(this, (argv[0] = t, argv)),\n ta0 = startAngle.apply(this, argv) - halfPi,\n ta1 = endAngle.apply(this, argv) - halfPi;\n\n if (!context) context = buffer = path();\n\n context.moveTo(sx0, sy0);\n context.arc(0, 0, sr, sa0, sa1);\n if (sa0 !== ta0 || sa1 !== ta1) { // TODO sr !== tr?\n context.quadraticCurveTo(0, 0, tr * cos(ta0), tr * sin(ta0));\n context.arc(0, 0, tr, ta0, ta1);\n }\n context.quadraticCurveTo(0, 0, sx0, sy0);\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n ribbon.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : radius;\n };\n\n ribbon.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : startAngle;\n };\n\n ribbon.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : endAngle;\n };\n\n ribbon.source = function(_) {\n return arguments.length ? (source = _, ribbon) : source;\n };\n\n ribbon.target = function(_) {\n return arguments.length ? (target = _, ribbon) : target;\n };\n\n ribbon.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;\n };\n\n return ribbon;\n}\n","export default function(map) {\n var entries = [];\n for (var key in map) entries.push({key: key, value: map[key]});\n return entries;\n}\n","export {default as nest} from \"./nest\";\nexport {default as set} from \"./set\";\nexport {default as map} from \"./map\";\nexport {default as keys} from \"./keys\";\nexport {default as values} from \"./values\";\nexport {default as entries} from \"./entries\";\n","export default function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n}\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import map from \"./map\";\n\nexport default function() {\n var keys = [],\n sortKeys = [],\n sortValues,\n rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) {\n if (sortValues != null) array.sort(sortValues);\n return rollup != null ? rollup(array) : array;\n }\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = map(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function(values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n\n return result;\n }\n\n function entries(map, depth) {\n if (++depth > keys.length) return map;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map.entries();\n else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\n };\n}\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return map();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","export default function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? new Rgb(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? new Rgb((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","export {default as color, rgb, hsl} from \"./color.js\";\nexport {default as lab, hcl, lch, gray} from \"./lab.js\";\nexport {default as cubehelix} from \"./cubehelix.js\";\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return hcl2lab(this).rgb();\n }\n}));\n","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","export default function(ring) {\n var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];\n while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n return area;\n}\n","var array = Array.prototype;\n\nexport var slice = array.slice;\n","export default function(a, b) {\n return a - b;\n}\n","// TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\nexport function blurX(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n for (var j = 0; j < m; ++j) {\n for (var i = 0, sr = 0; i < n + r; ++i) {\n if (i < n) {\n sr += source.data[i + j * n];\n }\n if (i >= r) {\n if (i >= w) {\n sr -= source.data[i - w + j * n];\n }\n target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w);\n }\n }\n }\n}\n\n// TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\nexport function blurY(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n for (var i = 0; i < n; ++i) {\n for (var j = 0, sr = 0; j < m + r; ++j) {\n if (j < m) {\n sr += source.data[i + j * n];\n }\n if (j >= r) {\n if (j >= w) {\n sr -= source.data[i + (j - w) * n];\n }\n target.data[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w);\n }\n }\n }\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(ring, hole) {\n var i = -1, n = hole.length, c;\n while (++i < n) if (c = ringContains(ring, hole[i])) return c;\n return 0;\n}\n\nfunction ringContains(ring, point) {\n var x = point[0], y = point[1], contains = -1;\n for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {\n var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];\n if (segmentContains(pi, pj, point)) return 0;\n if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains;\n }\n return contains;\n}\n\nfunction segmentContains(a, b, c) {\n var i; return collinear(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);\n}\n\nfunction collinear(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);\n}\n\nfunction within(p, q, r) {\n return p <= q && q <= r || r <= q && q <= p;\n}\n","import {extent, thresholdSturges, tickStep, range} from \"d3-array\";\nimport {slice} from \"./array\";\nimport ascending from \"./ascending\";\nimport area from \"./area\";\nimport constant from \"./constant\";\nimport contains from \"./contains\";\nimport noop from \"./noop\";\n\nvar cases = [\n [],\n [[[1.0, 1.5], [0.5, 1.0]]],\n [[[1.5, 1.0], [1.0, 1.5]]],\n [[[1.5, 1.0], [0.5, 1.0]]],\n [[[1.0, 0.5], [1.5, 1.0]]],\n [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]],\n [[[1.0, 0.5], [1.0, 1.5]]],\n [[[1.0, 0.5], [0.5, 1.0]]],\n [[[0.5, 1.0], [1.0, 0.5]]],\n [[[1.0, 1.5], [1.0, 0.5]]],\n [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]],\n [[[1.5, 1.0], [1.0, 0.5]]],\n [[[0.5, 1.0], [1.5, 1.0]]],\n [[[1.0, 1.5], [1.5, 1.0]]],\n [[[0.5, 1.0], [1.0, 1.5]]],\n []\n];\n\nexport default function() {\n var dx = 1,\n dy = 1,\n threshold = thresholdSturges,\n smooth = smoothLinear;\n\n function contours(values) {\n var tz = threshold(values);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n var domain = extent(values), start = domain[0], stop = domain[1];\n tz = tickStep(start, stop, tz);\n tz = range(Math.floor(start / tz) * tz, Math.floor(stop / tz) * tz, tz);\n } else {\n tz = tz.slice().sort(ascending);\n }\n\n return tz.map(function(value) {\n return contour(values, value);\n });\n }\n\n // Accumulate, smooth contour rings, assign holes to exterior rings.\n // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js\n function contour(values, value) {\n var polygons = [],\n holes = [];\n\n isorings(values, value, function(ring) {\n smooth(ring, values, value);\n if (area(ring) > 0) polygons.push([ring]);\n else holes.push(ring);\n });\n\n holes.forEach(function(hole) {\n for (var i = 0, n = polygons.length, polygon; i < n; ++i) {\n if (contains((polygon = polygons[i])[0], hole) !== -1) {\n polygon.push(hole);\n return;\n }\n }\n });\n\n return {\n type: \"MultiPolygon\",\n value: value,\n coordinates: polygons\n };\n }\n\n // Marching squares with isolines stitched into rings.\n // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js\n function isorings(values, value, callback) {\n var fragmentByStart = new Array,\n fragmentByEnd = new Array,\n x, y, t0, t1, t2, t3;\n\n // Special case for the first row (y = -1, t2 = t3 = 0).\n x = y = -1;\n t1 = values[0] >= value;\n cases[t1 << 1].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[x + 1] >= value;\n cases[t0 | t1 << 1].forEach(stitch);\n }\n cases[t1 << 0].forEach(stitch);\n\n // General case for the intermediate rows.\n while (++y < dy - 1) {\n x = -1;\n t1 = values[y * dx + dx] >= value;\n t2 = values[y * dx] >= value;\n cases[t1 << 1 | t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t1 | t2 << 3].forEach(stitch);\n }\n\n // Special case for the last row (y = dy - 1, t0 = t1 = 0).\n x = -1;\n t2 = values[y * dx] >= value;\n cases[t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t2 << 3].forEach(stitch);\n\n function stitch(line) {\n var start = [line[0][0] + x, line[0][1] + y],\n end = [line[1][0] + x, line[1][1] + y],\n startIndex = index(start),\n endIndex = index(end),\n f, g;\n if (f = fragmentByEnd[startIndex]) {\n if (g = fragmentByStart[endIndex]) {\n delete fragmentByEnd[f.end];\n delete fragmentByStart[g.start];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)};\n }\n } else {\n delete fragmentByEnd[f.end];\n f.ring.push(end);\n fragmentByEnd[f.end = endIndex] = f;\n }\n } else if (f = fragmentByStart[endIndex]) {\n if (g = fragmentByEnd[startIndex]) {\n delete fragmentByStart[f.start];\n delete fragmentByEnd[g.end];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)};\n }\n } else {\n delete fragmentByStart[f.start];\n f.ring.unshift(start);\n fragmentByStart[f.start = startIndex] = f;\n }\n } else {\n fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]};\n }\n }\n }\n\n function index(point) {\n return point[0] * 2 + point[1] * (dx + 1) * 4;\n }\n\n function smoothLinear(ring, values, value) {\n ring.forEach(function(point) {\n var x = point[0],\n y = point[1],\n xt = x | 0,\n yt = y | 0,\n v0,\n v1 = values[yt * dx + xt];\n if (x > 0 && x < dx && xt === x) {\n v0 = values[yt * dx + xt - 1];\n point[0] = x + (value - v0) / (v1 - v0) - 0.5;\n }\n if (y > 0 && y < dy && yt === y) {\n v0 = values[(yt - 1) * dx + xt];\n point[1] = y + (value - v0) / (v1 - v0) - 0.5;\n }\n });\n }\n\n contours.contour = contour;\n\n contours.size = function(_) {\n if (!arguments.length) return [dx, dy];\n var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);\n if (!(_0 > 0) || !(_1 > 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, contours;\n };\n\n contours.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), contours) : threshold;\n };\n\n contours.smooth = function(_) {\n return arguments.length ? (smooth = _ ? smoothLinear : noop, contours) : smooth === smoothLinear;\n };\n\n return contours;\n}\n","import {max, range, tickStep} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {blurX, blurY} from \"./blur\";\nimport constant from \"./constant\";\nimport contours from \"./contours\";\n\nfunction defaultX(d) {\n return d[0];\n}\n\nfunction defaultY(d) {\n return d[1];\n}\n\nfunction defaultWeight() {\n return 1;\n}\n\nexport default function() {\n var x = defaultX,\n y = defaultY,\n weight = defaultWeight,\n dx = 960,\n dy = 500,\n r = 20, // blur radius\n k = 2, // log2(grid cell size)\n o = r * 3, // grid offset, to pad for blur\n n = (dx + o * 2) >> k, // grid width\n m = (dy + o * 2) >> k, // grid height\n threshold = constant(20);\n\n function density(data) {\n var values0 = new Float32Array(n * m),\n values1 = new Float32Array(n * m);\n\n data.forEach(function(d, i, data) {\n var xi = (+x(d, i, data) + o) >> k,\n yi = (+y(d, i, data) + o) >> k,\n wi = +weight(d, i, data);\n if (xi >= 0 && xi < n && yi >= 0 && yi < m) {\n values0[xi + yi * n] += wi;\n }\n });\n\n // TODO Optimize.\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n\n var tz = threshold(values0);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n var stop = max(values0);\n tz = tickStep(0, stop, tz);\n tz = range(0, Math.floor(stop / tz) * tz, tz);\n tz.shift();\n }\n\n return contours()\n .thresholds(tz)\n .size([n, m])\n (values0)\n .map(transform);\n }\n\n function transform(geometry) {\n geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel.\n geometry.coordinates.forEach(transformPolygon);\n return geometry;\n }\n\n function transformPolygon(coordinates) {\n coordinates.forEach(transformRing);\n }\n\n function transformRing(coordinates) {\n coordinates.forEach(transformPoint);\n }\n\n // TODO Optimize.\n function transformPoint(coordinates) {\n coordinates[0] = coordinates[0] * Math.pow(2, k) - o;\n coordinates[1] = coordinates[1] * Math.pow(2, k) - o;\n }\n\n function resize() {\n o = r * 3;\n n = (dx + o * 2) >> k;\n m = (dy + o * 2) >> k;\n return density;\n }\n\n density.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), density) : x;\n };\n\n density.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), density) : y;\n };\n\n density.weight = function(_) {\n return arguments.length ? (weight = typeof _ === \"function\" ? _ : constant(+_), density) : weight;\n };\n\n density.size = function(_) {\n if (!arguments.length) return [dx, dy];\n var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);\n if (!(_0 >= 0) && !(_0 >= 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, resize();\n };\n\n density.cellSize = function(_) {\n if (!arguments.length) return 1 << k;\n if (!((_ = +_) >= 1)) throw new Error(\"invalid cell size\");\n return k = Math.floor(Math.log(_) / Math.LN2), resize();\n };\n\n density.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), density) : threshold;\n };\n\n density.bandwidth = function(_) {\n if (!arguments.length) return Math.sqrt(r * (r + 1));\n if (!((_ = +_) >= 0)) throw new Error(\"invalid bandwidth\");\n return r = Math.round((Math.sqrt(4 * _ * _ + 1) - 1) / 2), resize();\n };\n\n return density;\n}\n","export {default as contours} from \"./contours\";\nexport {default as contourDensity} from \"./density\";\n","export default function() {}\n","var noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export {default as dispatch} from \"./dispatch.js\";\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var gesture = beforestart(\"mouse\", container.apply(this, arguments), mouse, this, arguments);\n if (!gesture) return;\n select(event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n nodrag(event.view);\n nopropagation();\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\");\n }\n\n function mousemoved() {\n noevent();\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\");\n }\n\n function mouseupped() {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent();\n gestures.mouse(\"end\");\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.changedTouches,\n c = container.apply(this, arguments),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {\n nopropagation();\n gesture(\"start\");\n }\n }\n }\n\n function touchmoved() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent();\n gesture(\"drag\");\n }\n }\n }\n\n function touchended() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation();\n gesture(\"end\");\n }\n }\n }\n\n function beforestart(id, container, point, that, args) {\n var p = point(container, id), s, dx, dy,\n sublisteners = listeners.copy();\n\n if (!customEvent(new DragEvent(drag, \"beforestart\", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {\n if ((event.subject = s = subject.apply(that, args)) == null) return false;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return true;\n })) return;\n\n return function gesture(type) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[id] = gesture, n = active++; break;\n case \"end\": delete gestures[id], --active; // nobreak\n case \"drag\": p = point(container, id), n = active; break;\n }\n customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","export default function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {\n this.target = target;\n this.type = type;\n this.subject = subject;\n this.identifier = id;\n this.active = active;\n this.x = x;\n this.y = y;\n this.dx = dx;\n this.dy = dy;\n this._ = dispatch;\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","export {default as drag} from \"./drag.js\";\nexport {default as dragDisable, yesdrag as dragEnable} from \"./nodrag.js\";\n","import {select} from \"d3-selection\";\nimport noevent from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","export default function autoType(object) {\n for (var key in object) {\n var value = object[key].trim(), number, m;\n if (!value) value = null;\n else if (value === \"true\") value = true;\n else if (value === \"false\") value = false;\n else if (value === \"NaN\") value = NaN;\n else if (!isNaN(number = +value)) value = number;\n else if (m = value.match(/^([-+]\\d{2})?\\d{4}(-\\d{2}(-\\d{2})?)?(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{3})?)?(Z|[-+]\\d{2}:\\d{2})?)?$/)) {\n if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, \"/\").replace(/T/, \" \");\n value = new Date(value);\n }\n else continue;\n object[key] = value;\n }\n return object;\n}\n\n// https://github.com/d3/d3-dsv/issues/45\nvar fixtz = new Date(\"2019-01-01T00:00\").getHours() || new Date(\"2019-07-01T00:00\").getHours();","import dsv from \"./dsv.js\";\n\nvar csv = dsv(\",\");\n\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatBody = csv.formatBody;\nexport var csvFormatRows = csv.formatRows;\nexport var csvFormatRow = csv.formatRow;\nexport var csvFormatValue = csv.formatValue;\n","var EOL = {},\n EOF = {},\n QUOTE = 34,\n NEWLINE = 10,\n RETURN = 13;\n\nfunction objectConverter(columns) {\n return new Function(\"d\", \"return {\" + columns.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"] || \\\"\\\"\";\n }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function(row, i) {\n return f(object(row), i, columns);\n };\n}\n\n// Compute unique columns in order of discovery.\nfunction inferColumns(rows) {\n var columnSet = Object.create(null),\n columns = [];\n\n rows.forEach(function(row) {\n for (var column in row) {\n if (!(column in columnSet)) {\n columns.push(columnSet[column] = column);\n }\n }\n });\n\n return columns;\n}\n\nfunction pad(value, width) {\n var s = value + \"\", length = s.length;\n return length < width ? new Array(width - length + 1).join(0) + s : s;\n}\n\nfunction formatYear(year) {\n return year < 0 ? \"-\" + pad(-year, 6)\n : year > 9999 ? \"+\" + pad(year, 6)\n : pad(year, 4);\n}\n\nfunction formatDate(date) {\n var hours = date.getUTCHours(),\n minutes = date.getUTCMinutes(),\n seconds = date.getUTCSeconds(),\n milliseconds = date.getUTCMilliseconds();\n return isNaN(date) ? \"Invalid Date\"\n : formatYear(date.getUTCFullYear(), 4) + \"-\" + pad(date.getUTCMonth() + 1, 2) + \"-\" + pad(date.getUTCDate(), 2)\n + (milliseconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \".\" + pad(milliseconds, 3) + \"Z\"\n : seconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \"Z\"\n : minutes || hours ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \"Z\"\n : \"\");\n}\n\nexport default function(delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert, columns, rows = parseRows(text, function(row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // current line number\n t, // current token\n eof = N <= 0, // current token followed by EOF?\n eol = false; // current token followed by EOL?\n\n // Strip the trailing newline.\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return eol = false, EOL;\n\n // Unescape quotes.\n var i, j = I, c;\n if (text.charCodeAt(j) === QUOTE) {\n while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);\n if ((i = I) >= N) eof = true;\n else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n }\n\n // Find next delimiter or newline.\n while (I < N) {\n if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n }\n\n // Return last token before EOF.\n return eof = true, text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n while (t !== EOL && t !== EOF) row.push(t), t = token();\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n function preformatBody(rows, columns) {\n return rows.map(function(row) {\n return columns.map(function(column) {\n return formatValue(row[column]);\n }).join(delimiter);\n });\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join(\"\\n\");\n }\n\n function formatBody(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return preformatBody(rows, columns).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(value) {\n return value == null ? \"\"\n : value instanceof Date ? formatDate(value)\n : reFormat.test(value += \"\") ? \"\\\"\" + value.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\"\n : value;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatBody: formatBody,\n formatRows: formatRows,\n formatRow: formatRow,\n formatValue: formatValue\n };\n}\n","export {default as dsvFormat} from \"./dsv.js\";\nexport {csvParse, csvParseRows, csvFormat, csvFormatBody, csvFormatRows, csvFormatRow, csvFormatValue} from \"./csv.js\";\nexport {tsvParse, tsvParseRows, tsvFormat, tsvFormatBody, tsvFormatRows, tsvFormatRow, tsvFormatValue} from \"./tsv.js\";\nexport {default as autoType} from \"./autoType.js\";\n","import dsv from \"./dsv.js\";\n\nvar tsv = dsv(\"\\t\");\n\nexport var tsvParse = tsv.parse;\nexport var tsvParseRows = tsv.parseRows;\nexport var tsvFormat = tsv.format;\nexport var tsvFormatBody = tsv.formatBody;\nexport var tsvFormatRows = tsv.formatRows;\nexport var tsvFormatRow = tsv.formatRow;\nexport var tsvFormatValue = tsv.formatValue;\n","var overshoot = 1.70158;\n\nexport var backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return t * t * ((s + 1) * t - s);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nexport var backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((s + 1) * t + s) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nexport var backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n","var b1 = 4 / 11,\n b2 = 6 / 11,\n b3 = 8 / 11,\n b4 = 3 / 4,\n b5 = 9 / 11,\n b6 = 10 / 11,\n b7 = 15 / 16,\n b8 = 21 / 22,\n b9 = 63 / 64,\n b0 = 1 / b1 / b1;\n\nexport function bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nexport function bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nexport function bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n","export function circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nexport function circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nexport function circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","var tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)\n : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n","export function expIn(t) {\n return Math.pow(2, 10 * t - 10);\n}\n\nexport function expOut(t) {\n return 1 - Math.pow(2, -10 * t);\n}\n\nexport function expInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2;\n}\n","export {\n linear as easeLinear\n} from \"./linear.js\";\n\nexport {\n quadInOut as easeQuad,\n quadIn as easeQuadIn,\n quadOut as easeQuadOut,\n quadInOut as easeQuadInOut\n} from \"./quad.js\";\n\nexport {\n cubicInOut as easeCubic,\n cubicIn as easeCubicIn,\n cubicOut as easeCubicOut,\n cubicInOut as easeCubicInOut\n} from \"./cubic.js\";\n\nexport {\n polyInOut as easePoly,\n polyIn as easePolyIn,\n polyOut as easePolyOut,\n polyInOut as easePolyInOut\n} from \"./poly.js\";\n\nexport {\n sinInOut as easeSin,\n sinIn as easeSinIn,\n sinOut as easeSinOut,\n sinInOut as easeSinInOut\n} from \"./sin.js\";\n\nexport {\n expInOut as easeExp,\n expIn as easeExpIn,\n expOut as easeExpOut,\n expInOut as easeExpInOut\n} from \"./exp.js\";\n\nexport {\n circleInOut as easeCircle,\n circleIn as easeCircleIn,\n circleOut as easeCircleOut,\n circleInOut as easeCircleInOut\n} from \"./circle.js\";\n\nexport {\n bounceOut as easeBounce,\n bounceIn as easeBounceIn,\n bounceOut as easeBounceOut,\n bounceInOut as easeBounceInOut\n} from \"./bounce.js\";\n\nexport {\n backInOut as easeBack,\n backIn as easeBackIn,\n backOut as easeBackOut,\n backInOut as easeBackInOut\n} from \"./back.js\";\n\nexport {\n elasticOut as easeElastic,\n elasticIn as easeElasticIn,\n elasticOut as easeElasticOut,\n elasticInOut as easeElasticInOut\n} from \"./elastic.js\";\n","export function linear(t) {\n return +t;\n}\n","var exponent = 3;\n\nexport var polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nexport var polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nexport var polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n","export function quadIn(t) {\n return t * t;\n}\n\nexport function quadOut(t) {\n return t * (2 - t);\n}\n\nexport function quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\n","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n","function responseBlob(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.blob();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseBlob);\n}\n","function responseArrayBuffer(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.arrayBuffer();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseArrayBuffer);\n}\n","import {csvParse, dsvFormat, tsvParse} from \"d3-dsv\";\nimport text from \"./text\";\n\nfunction dsvParse(parse) {\n return function(input, init, row) {\n if (arguments.length === 2 && typeof init === \"function\") row = init, init = undefined;\n return text(input, init).then(function(response) {\n return parse(response, row);\n });\n };\n}\n\nexport default function dsv(delimiter, input, init, row) {\n if (arguments.length === 3 && typeof init === \"function\") row = init, init = undefined;\n var format = dsvFormat(delimiter);\n return text(input, init).then(function(response) {\n return format.parse(response, row);\n });\n}\n\nexport var csv = dsvParse(csvParse);\nexport var tsv = dsvParse(tsvParse);\n","export default function(input, init) {\n return new Promise(function(resolve, reject) {\n var image = new Image;\n for (var key in init) image[key] = init[key];\n image.onerror = reject;\n image.onload = function() { resolve(image); };\n image.src = input;\n });\n}\n","export {default as blob} from \"./blob\";\nexport {default as buffer} from \"./buffer\";\nexport {default as dsv, csv, tsv} from \"./dsv\";\nexport {default as image} from \"./image\";\nexport {default as json} from \"./json\";\nexport {default as text} from \"./text\";\nexport {default as xml, html, svg} from \"./xml\";\n","function responseJson(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.json();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseJson);\n}\n","function responseText(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.text();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseText);\n}\n","import text from \"./text\";\n\nfunction parser(type) {\n return function(input, init) {\n return text(input, init).then(function(text) {\n return (new DOMParser).parseFromString(text, type);\n });\n };\n}\n\nexport default parser(\"application/xml\");\n\nexport var html = parser(\"text/html\");\n\nexport var svg = parser(\"image/svg+xml\");\n","export default function(x, y) {\n var nodes;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {quadtree} from \"d3-quadtree\";\n\nfunction x(d) {\n return d.x + d.vx;\n}\n\nfunction y(d) {\n return d.y + d.vy;\n}\n\nexport default function(radius) {\n var nodes,\n radii,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, x, y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n return force;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export {default as forceCenter} from \"./center\";\nexport {default as forceCollide} from \"./collide\";\nexport {default as forceLink} from \"./link\";\nexport {default as forceManyBody} from \"./manyBody\";\nexport {default as forceRadial} from \"./radial\";\nexport {default as forceSimulation} from \"./simulation\";\nexport {default as forceX} from \"./x\";\nexport {default as forceY} from \"./y\";\n","export default function() {\n return (Math.random() - 0.5) * 1e-6;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {map} from \"d3-collection\";\n\nfunction index(d) {\n return d.index;\n}\n\nfunction find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"missing: \" + nodeId);\n return node;\n}\n\nexport default function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n count,\n bias,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle();\n y = target.y + target.vy - source.y - source.vy || jiggle();\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = map(nodes, id),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {quadtree} from \"d3-quadtree\";\nimport {x, y} from \"./simulation\";\n\nexport default function() {\n var nodes,\n node,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, x, y).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, weight = 0, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / weight;\n quad.y = y / weight;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n","import constant from \"./constant\";\n\nexport default function(radius, x, y) {\n var nodes,\n strength = constant(0.1),\n strengths,\n radiuses;\n\n if (typeof radius !== \"function\") radius = constant(+radius);\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force(alpha) {\n for (var i = 0, n = nodes.length; i < n; ++i) {\n var node = nodes[i],\n dx = node.x - x || 1e-6,\n dy = node.y - y || 1e-6,\n r = Math.sqrt(dx * dx + dy * dy),\n k = (radiuses[i] - r) * strengths[i] * alpha / r;\n node.vx += dx * k;\n node.vy += dy * k;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n radiuses = new Array(n);\n for (i = 0; i < n; ++i) {\n radiuses[i] = +radius(nodes[i], i, nodes);\n strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _, initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {map} from \"d3-collection\";\nimport {timer} from \"d3-timer\";\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\nexport default function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\");\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.each(function (force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","import constant from \"./constant\";\n\nexport default function(x) {\n var strength = constant(0.1),\n nodes,\n strengths,\n xz;\n\n if (typeof x !== \"function\") x = constant(x == null ? 0 : +x);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n xz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x;\n };\n\n return force;\n}\n","import constant from \"./constant\";\n\nexport default function(y) {\n var strength = constant(0.1),\n nodes,\n strengths,\n yz;\n\n if (typeof y !== \"function\") y = constant(y == null ? 0 : +y);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n yz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y;\n };\n\n return force;\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}\n","// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nexport default function(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","export {default as formatDefaultLocale, format, formatPrefix} from \"./defaultLocale.js\";\nexport {default as formatLocale} from \"./locale.js\";\nexport {default as formatSpecifier, FormatSpecifier} from \"./formatSpecifier.js\";\nexport {default as precisionFixed} from \"./precisionFixed.js\";\nexport {default as precisionPrefix} from \"./precisionPrefix.js\";\nexport {default as precisionRound} from \"./precisionRound.js\";\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Perform the initial formatting.\n var valueNegative = value < 0;\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero during formatting, treat as positive.\n if (valueNegative && +value === 0) valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","// Adds floating point numbers with twice the normal precision.\n// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and\n// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)\n// 305–363 (1997).\n// Code adapted from GeographicLib by Charles F. F. Karney,\n// http://geographiclib.sourceforge.net/\n\nexport default function() {\n return new Adder;\n}\n\nfunction Adder() {\n this.reset();\n}\n\nAdder.prototype = {\n constructor: Adder,\n reset: function() {\n this.s = // rounded value\n this.t = 0; // exact error\n },\n add: function(y) {\n add(temp, y, this.t);\n add(this, temp.s, this.s);\n if (this.s) this.t += temp.t;\n else this.s = temp.t;\n },\n valueOf: function() {\n return this.s;\n }\n};\n\nvar temp = new Adder;\n\nfunction add(adder, a, b) {\n var x = adder.s = a + b,\n bv = x - a,\n av = x - bv;\n adder.t = (a - av) + (b - bv);\n}\n","import adder from \"./adder.js\";\nimport {atan2, cos, quarterPi, radians, sin, tau} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nexport var areaRingSum = adder();\n\nvar areaSum = adder(),\n lambda00,\n phi00,\n lambda0,\n cosPhi0,\n sinPhi0;\n\nexport var areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaRingSum.reset();\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n var areaRing = +areaRingSum;\n areaSum.add(areaRing < 0 ? tau + areaRing : areaRing);\n this.lineStart = this.lineEnd = this.point = noop;\n },\n sphere: function() {\n areaSum.add(tau);\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaRingEnd() {\n areaPoint(lambda00, phi00);\n}\n\nfunction areaPointFirst(lambda, phi) {\n areaStream.point = areaPoint;\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n lambda0 = lambda, cosPhi0 = cos(phi = phi / 2 + quarterPi), sinPhi0 = sin(phi);\n}\n\nfunction areaPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n phi = phi / 2 + quarterPi; // half the angular distance from south pole\n\n // Spherical excess E for a spherical triangle with vertices: south pole,\n // previous point, current point. Uses a formula derived from Cagnoli’s\n // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).\n var dLambda = lambda - lambda0,\n sdLambda = dLambda >= 0 ? 1 : -1,\n adLambda = sdLambda * dLambda,\n cosPhi = cos(phi),\n sinPhi = sin(phi),\n k = sinPhi0 * sinPhi,\n u = cosPhi0 * cosPhi + k * cos(adLambda),\n v = k * sdLambda * sin(adLambda);\n areaRingSum.add(atan2(v, u));\n\n // Advance the previous points.\n lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;\n}\n\nexport default function(object) {\n areaSum.reset();\n stream(object, areaStream);\n return areaSum * 2;\n}\n","import adder from \"./adder.js\";\nimport {areaStream, areaRingSum} from \"./area.js\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport {abs, degrees, epsilon, radians} from \"./math.js\";\nimport stream from \"./stream.js\";\n\nvar lambda0, phi0, lambda1, phi1, // bounds\n lambda2, // previous lambda-coordinate\n lambda00, phi00, // first point\n p0, // previous 3D point\n deltaSum = adder(),\n ranges,\n range;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: boundsLineStart,\n lineEnd: boundsLineEnd,\n polygonStart: function() {\n boundsStream.point = boundsRingPoint;\n boundsStream.lineStart = boundsRingStart;\n boundsStream.lineEnd = boundsRingEnd;\n deltaSum.reset();\n areaStream.polygonStart();\n },\n polygonEnd: function() {\n areaStream.polygonEnd();\n boundsStream.point = boundsPoint;\n boundsStream.lineStart = boundsLineStart;\n boundsStream.lineEnd = boundsLineEnd;\n if (areaRingSum < 0) lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n else if (deltaSum > epsilon) phi1 = 90;\n else if (deltaSum < -epsilon) phi0 = -90;\n range[0] = lambda0, range[1] = lambda1;\n },\n sphere: function() {\n lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n }\n};\n\nfunction boundsPoint(lambda, phi) {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n}\n\nfunction linePoint(lambda, phi) {\n var p = cartesian([lambda * radians, phi * radians]);\n if (p0) {\n var normal = cartesianCross(p0, p),\n equatorial = [normal[1], -normal[0], 0],\n inflection = cartesianCross(equatorial, normal);\n cartesianNormalizeInPlace(inflection);\n inflection = spherical(inflection);\n var delta = lambda - lambda2,\n sign = delta > 0 ? 1 : -1,\n lambdai = inflection[0] * degrees * sign,\n phii,\n antimeridian = abs(delta) > 180;\n if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = inflection[1] * degrees;\n if (phii > phi1) phi1 = phii;\n } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = -inflection[1] * degrees;\n if (phii < phi0) phi0 = phii;\n } else {\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n if (antimeridian) {\n if (lambda < lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n } else {\n if (lambda1 >= lambda0) {\n if (lambda < lambda0) lambda0 = lambda;\n if (lambda > lambda1) lambda1 = lambda;\n } else {\n if (lambda > lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n }\n }\n } else {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n }\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n p0 = p, lambda2 = lambda;\n}\n\nfunction boundsLineStart() {\n boundsStream.point = linePoint;\n}\n\nfunction boundsLineEnd() {\n range[0] = lambda0, range[1] = lambda1;\n boundsStream.point = boundsPoint;\n p0 = null;\n}\n\nfunction boundsRingPoint(lambda, phi) {\n if (p0) {\n var delta = lambda - lambda2;\n deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);\n } else {\n lambda00 = lambda, phi00 = phi;\n }\n areaStream.point(lambda, phi);\n linePoint(lambda, phi);\n}\n\nfunction boundsRingStart() {\n areaStream.lineStart();\n}\n\nfunction boundsRingEnd() {\n boundsRingPoint(lambda00, phi00);\n areaStream.lineEnd();\n if (abs(deltaSum) > epsilon) lambda0 = -(lambda1 = 180);\n range[0] = lambda0, range[1] = lambda1;\n p0 = null;\n}\n\n// Finds the left-right distance between two longitudes.\n// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want\n// the distance between ±180° to be 360°.\nfunction angle(lambda0, lambda1) {\n return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;\n}\n\nfunction rangeCompare(a, b) {\n return a[0] - b[0];\n}\n\nfunction rangeContains(range, x) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n}\n\nexport default function(feature) {\n var i, n, a, b, merged, deltaMax, delta;\n\n phi1 = lambda1 = -(lambda0 = phi0 = Infinity);\n ranges = [];\n stream(feature, boundsStream);\n\n // First, sort ranges by their minimum longitudes.\n if (n = ranges.length) {\n ranges.sort(rangeCompare);\n\n // Then, merge any ranges that overlap.\n for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n b = ranges[i];\n if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n }\n\n // Finally, find the largest gap between the merged ranges.\n // The final bounding box will be the inverse of this gap.\n for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {\n b = merged[i];\n if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0 = b[0], lambda1 = a[1];\n }\n }\n\n ranges = range = null;\n\n return lambda0 === Infinity || phi0 === Infinity\n ? [[NaN, NaN], [NaN, NaN]]\n : [[lambda0, phi0], [lambda1, phi1]];\n}\n","import {asin, atan2, cos, sin, sqrt} from \"./math.js\";\n\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\n\nexport function cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\n\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}\n","import {asin, atan2, cos, degrees, epsilon, epsilon2, radians, sin, sqrt} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nvar W0, W1,\n X0, Y0, Z0,\n X1, Y1, Z1,\n X2, Y2, Z2,\n lambda00, phi00, // first point\n x0, y0, z0; // previous point\n\nvar centroidStream = {\n sphere: noop,\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n }\n};\n\n// Arithmetic mean of Cartesian vectors.\nfunction centroidPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n centroidPointCartesian(cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi));\n}\n\nfunction centroidPointCartesian(x, y, z) {\n ++W0;\n X0 += (x - X0) / W0;\n Y0 += (y - Y0) / W0;\n Z0 += (z - Z0) / W0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidLinePointFirst;\n}\n\nfunction centroidLinePointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidStream.point = centroidLinePoint;\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLinePoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n w = atan2(sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\n// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,\n// J. Applied Mechanics 42, 239 (1975).\nfunction centroidRingStart() {\n centroidStream.point = centroidRingPointFirst;\n}\n\nfunction centroidRingEnd() {\n centroidRingPoint(lambda00, phi00);\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingPointFirst(lambda, phi) {\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n centroidStream.point = centroidRingPoint;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidRingPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n cx = y0 * z - z0 * y,\n cy = z0 * x - x0 * z,\n cz = x0 * y - y0 * x,\n m = sqrt(cx * cx + cy * cy + cz * cz),\n w = asin(m), // line weight = angle\n v = m && -w / m; // area weight multiplier\n X2 += v * cx;\n Y2 += v * cy;\n Z2 += v * cz;\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nexport default function(object) {\n W0 = W1 =\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n stream(object, centroidStream);\n\n var x = X2,\n y = Y2,\n z = Z2,\n m = x * x + y * y + z * z;\n\n // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.\n if (m < epsilon2) {\n x = X1, y = Y1, z = Z1;\n // If the feature has zero length, fall back to arithmetic mean of point vectors.\n if (W1 < epsilon) x = X0, y = Y0, z = Z0;\n m = x * x + y * y + z * z;\n // If the feature still has an undefined ccentroid, then return.\n if (m < epsilon2) return [NaN, NaN];\n }\n\n return [atan2(y, x) * degrees, asin(z / sqrt(m)) * degrees];\n}\n","import {cartesian, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport {acos, cos, degrees, epsilon, radians, sin, tau} from \"./math.js\";\nimport {rotateRadians} from \"./rotation.js\";\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function() {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(6),\n ring,\n rotate,\n stream = {point: point};\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {type: \"Polygon\", coordinates: [ring]};\n ring = rotate = null;\n return c;\n }\n\n circle.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}\n","import clip from \"./index.js\";\nimport {abs, atan, cos, epsilon, halfPi, pi, sin} from \"../math.js\";\n\nexport default clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi) < epsilon) { // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n clean = 0;\n }\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\n return 2 - clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon\n ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)\n - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}\n","import noop from \"../noop.js\";\n\nexport default function() {\n var lines = [],\n line;\n return {\n point: function(x, y) {\n line.push([x, y]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n","import {cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical} from \"../cartesian.js\";\nimport {circleStream} from \"../circle.js\";\nimport {abs, cos, epsilon, pi, radians, sqrt} from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\n\nexport default function(radius) {\n var cr = cos(radius),\n delta = 6 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n }\n\n // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n clean; // no intersections\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n // Handle degeneracies.\n // TODO ignore if not clipping polygons.\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2)) {\n point1[0] += epsilon;\n point1[1] += epsilon;\n v = visible(point1[0], point1[1]);\n }\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1]);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}\n","import clipRectangle from \"./rectangle.js\";\n\nexport default function() {\n var x0 = 0,\n y0 = 0,\n x1 = 960,\n y1 = 500,\n cache,\n cacheStream,\n clip;\n\n return clip = {\n stream: function(stream) {\n return cache && cacheStream === stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = stream);\n },\n extent: function(_) {\n return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];\n }\n };\n}\n","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {epsilon, halfPi} from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport {merge} from \"d3-array\";\n\nexport default function(pointVisible, clipLine, interpolate, start) {\n return function(sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}\n","export default function(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}\n","import {abs, epsilon} from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {merge} from \"d3-array\";\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3\n : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0\n : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : b[0] - a[0];\n }\n\n return function(stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n\n // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}\n","import pointEqual from \"../pointEqual.js\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nexport default function(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n // If the first and last points of a segment are coincident, then treat as a\n // closed ring. TODO if all rings are closed, then the winding order of the\n // exterior ring should be checked.\n if (pointEqual(p0, p1)) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n\n if (!subject.length) return;\n\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\n","export default function(a, b) {\n\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n\n return compose;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {default as polygonContains} from \"./polygonContains.js\";\nimport {default as distance} from \"./distance.js\";\nimport {epsilon2, radians} from \"./math.js\";\n\nvar containsObjectType = {\n Feature: function(object, point) {\n return containsGeometry(object.geometry, point);\n },\n FeatureCollection: function(object, point) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;\n return false;\n }\n};\n\nvar containsGeometryType = {\n Sphere: function() {\n return true;\n },\n Point: function(object, point) {\n return containsPoint(object.coordinates, point);\n },\n MultiPoint: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsPoint(coordinates[i], point)) return true;\n return false;\n },\n LineString: function(object, point) {\n return containsLine(object.coordinates, point);\n },\n MultiLineString: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsLine(coordinates[i], point)) return true;\n return false;\n },\n Polygon: function(object, point) {\n return containsPolygon(object.coordinates, point);\n },\n MultiPolygon: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsPolygon(coordinates[i], point)) return true;\n return false;\n },\n GeometryCollection: function(object, point) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) if (containsGeometry(geometries[i], point)) return true;\n return false;\n }\n};\n\nfunction containsGeometry(geometry, point) {\n return geometry && containsGeometryType.hasOwnProperty(geometry.type)\n ? containsGeometryType[geometry.type](geometry, point)\n : false;\n}\n\nfunction containsPoint(coordinates, point) {\n return distance(coordinates, point) === 0;\n}\n\nfunction containsLine(coordinates, point) {\n var ao, bo, ab;\n for (var i = 0, n = coordinates.length; i < n; i++) {\n bo = distance(coordinates[i], point);\n if (bo === 0) return true;\n if (i > 0) {\n ab = distance(coordinates[i], coordinates[i - 1]);\n if (\n ab > 0 &&\n ao <= ab &&\n bo <= ab &&\n (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab\n )\n return true;\n }\n ao = bo;\n }\n return false;\n}\n\nfunction containsPolygon(coordinates, point) {\n return !!polygonContains(coordinates.map(ringRadians), pointRadians(point));\n}\n\nfunction ringRadians(ring) {\n return ring = ring.map(pointRadians), ring.pop(), ring;\n}\n\nfunction pointRadians(point) {\n return [point[0] * radians, point[1] * radians];\n}\n\nexport default function(object, point) {\n return (object && containsObjectType.hasOwnProperty(object.type)\n ? containsObjectType[object.type]\n : containsGeometry)(object, point);\n}\n","import length from \"./length.js\";\n\nvar coordinates = [null, null],\n object = {type: \"LineString\", coordinates: coordinates};\n\nexport default function(a, b) {\n coordinates[0] = a;\n coordinates[1] = b;\n return length(object);\n}\n","import {range} from \"d3-array\";\nimport {abs, ceil, epsilon} from \"./math.js\";\n\nfunction graticuleX(y0, y1, dy) {\n var y = range(y0, y1 - epsilon, dy).concat(y1);\n return function(x) { return y.map(function(y) { return [x, y]; }); };\n}\n\nfunction graticuleY(x0, x1, dx) {\n var x = range(x0, x1 - epsilon, dx).concat(x1);\n return function(y) { return x.map(function(x) { return [x, y]; }); };\n}\n\nexport default function graticule() {\n var x1, x0, X1, X0,\n y1, y0, Y1, Y0,\n dx = 10, dy = dx, DX = 90, DY = 360,\n x, y, X, Y,\n precision = 2.5;\n\n function graticule() {\n return {type: \"MultiLineString\", coordinates: lines()};\n }\n\n function lines() {\n return range(ceil(X0 / DX) * DX, X1, DX).map(X)\n .concat(range(ceil(Y0 / DY) * DY, Y1, DY).map(Y))\n .concat(range(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs(x % DX) > epsilon; }).map(x))\n .concat(range(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs(y % DY) > epsilon; }).map(y));\n }\n\n graticule.lines = function() {\n return lines().map(function(coordinates) { return {type: \"LineString\", coordinates: coordinates}; });\n };\n\n graticule.outline = function() {\n return {\n type: \"Polygon\",\n coordinates: [\n X(X0).concat(\n Y(Y1).slice(1),\n X(X1).reverse().slice(1),\n Y(Y0).reverse().slice(1))\n ]\n };\n };\n\n graticule.extent = function(_) {\n if (!arguments.length) return graticule.extentMinor();\n return graticule.extentMajor(_).extentMinor(_);\n };\n\n graticule.extentMajor = function(_) {\n if (!arguments.length) return [[X0, Y0], [X1, Y1]];\n X0 = +_[0][0], X1 = +_[1][0];\n Y0 = +_[0][1], Y1 = +_[1][1];\n if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.extentMinor = function(_) {\n if (!arguments.length) return [[x0, y0], [x1, y1]];\n x0 = +_[0][0], x1 = +_[1][0];\n y0 = +_[0][1], y1 = +_[1][1];\n if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.step = function(_) {\n if (!arguments.length) return graticule.stepMinor();\n return graticule.stepMajor(_).stepMinor(_);\n };\n\n graticule.stepMajor = function(_) {\n if (!arguments.length) return [DX, DY];\n DX = +_[0], DY = +_[1];\n return graticule;\n };\n\n graticule.stepMinor = function(_) {\n if (!arguments.length) return [dx, dy];\n dx = +_[0], dy = +_[1];\n return graticule;\n };\n\n graticule.precision = function(_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = graticuleX(y0, y1, 90);\n y = graticuleY(x0, x1, precision);\n X = graticuleX(Y0, Y1, 90);\n Y = graticuleY(X0, X1, precision);\n return graticule;\n };\n\n return graticule\n .extentMajor([[-180, -90 + epsilon], [180, 90 - epsilon]])\n .extentMinor([[-180, -80 - epsilon], [180, 80 + epsilon]]);\n}\n\nexport function graticule10() {\n return graticule()();\n}\n","export default function(x) {\n return x;\n}\n","export {default as geoArea} from \"./area.js\";\nexport {default as geoBounds} from \"./bounds.js\";\nexport {default as geoCentroid} from \"./centroid.js\";\nexport {default as geoCircle} from \"./circle.js\";\nexport {default as geoClipAntimeridian} from \"./clip/antimeridian.js\";\nexport {default as geoClipCircle} from \"./clip/circle.js\";\nexport {default as geoClipExtent} from \"./clip/extent.js\"; // DEPRECATED! Use d3.geoIdentity().clipExtent(…).\nexport {default as geoClipRectangle} from \"./clip/rectangle.js\";\nexport {default as geoContains} from \"./contains.js\";\nexport {default as geoDistance} from \"./distance.js\";\nexport {default as geoGraticule, graticule10 as geoGraticule10} from \"./graticule.js\";\nexport {default as geoInterpolate} from \"./interpolate.js\";\nexport {default as geoLength} from \"./length.js\";\nexport {default as geoPath} from \"./path/index.js\";\nexport {default as geoAlbers} from \"./projection/albers.js\";\nexport {default as geoAlbersUsa} from \"./projection/albersUsa.js\";\nexport {default as geoAzimuthalEqualArea, azimuthalEqualAreaRaw as geoAzimuthalEqualAreaRaw} from \"./projection/azimuthalEqualArea.js\";\nexport {default as geoAzimuthalEquidistant, azimuthalEquidistantRaw as geoAzimuthalEquidistantRaw} from \"./projection/azimuthalEquidistant.js\";\nexport {default as geoConicConformal, conicConformalRaw as geoConicConformalRaw} from \"./projection/conicConformal.js\";\nexport {default as geoConicEqualArea, conicEqualAreaRaw as geoConicEqualAreaRaw} from \"./projection/conicEqualArea.js\";\nexport {default as geoConicEquidistant, conicEquidistantRaw as geoConicEquidistantRaw} from \"./projection/conicEquidistant.js\";\nexport {default as geoEqualEarth, equalEarthRaw as geoEqualEarthRaw} from \"./projection/equalEarth.js\";\nexport {default as geoEquirectangular, equirectangularRaw as geoEquirectangularRaw} from \"./projection/equirectangular.js\";\nexport {default as geoGnomonic, gnomonicRaw as geoGnomonicRaw} from \"./projection/gnomonic.js\";\nexport {default as geoIdentity} from \"./projection/identity.js\";\nexport {default as geoProjection, projectionMutator as geoProjectionMutator} from \"./projection/index.js\";\nexport {default as geoMercator, mercatorRaw as geoMercatorRaw} from \"./projection/mercator.js\";\nexport {default as geoNaturalEarth1, naturalEarth1Raw as geoNaturalEarth1Raw} from \"./projection/naturalEarth1.js\";\nexport {default as geoOrthographic, orthographicRaw as geoOrthographicRaw} from \"./projection/orthographic.js\";\nexport {default as geoStereographic, stereographicRaw as geoStereographicRaw} from \"./projection/stereographic.js\";\nexport {default as geoTransverseMercator, transverseMercatorRaw as geoTransverseMercatorRaw} from \"./projection/transverseMercator.js\";\nexport {default as geoRotation} from \"./rotation.js\";\nexport {default as geoStream} from \"./stream.js\";\nexport {default as geoTransform} from \"./transform.js\";\n","import {asin, atan2, cos, degrees, haversin, radians, sin, sqrt} from \"./math.js\";\n\nexport default function(a, b) {\n var x0 = a[0] * radians,\n y0 = a[1] * radians,\n x1 = b[0] * radians,\n y1 = b[1] * radians,\n cy0 = cos(y0),\n sy0 = sin(y0),\n cy1 = cos(y1),\n sy1 = sin(y1),\n kx0 = cy0 * cos(x0),\n ky0 = cy0 * sin(x0),\n kx1 = cy1 * cos(x1),\n ky1 = cy1 * sin(x1),\n d = 2 * asin(sqrt(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))),\n k = sin(d);\n\n var interpolate = d ? function(t) {\n var B = sin(t *= d) / k,\n A = sin(d - t) / k,\n x = A * kx0 + B * kx1,\n y = A * ky0 + B * ky1,\n z = A * sy0 + B * sy1;\n return [\n atan2(y, x) * degrees,\n atan2(z, sqrt(x * x + y * y)) * degrees\n ];\n } : function() {\n return [x0 * degrees, y0 * degrees];\n };\n\n interpolate.distance = d;\n\n return interpolate;\n}\n","import adder from \"./adder.js\";\nimport {abs, atan2, cos, radians, sin, sqrt} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nvar lengthSum = adder(),\n lambda0,\n sinPhi0,\n cosPhi0;\n\nvar lengthStream = {\n sphere: noop,\n point: noop,\n lineStart: lengthLineStart,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop\n};\n\nfunction lengthLineStart() {\n lengthStream.point = lengthPointFirst;\n lengthStream.lineEnd = lengthLineEnd;\n}\n\nfunction lengthLineEnd() {\n lengthStream.point = lengthStream.lineEnd = noop;\n}\n\nfunction lengthPointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n lambda0 = lambda, sinPhi0 = sin(phi), cosPhi0 = cos(phi);\n lengthStream.point = lengthPoint;\n}\n\nfunction lengthPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var sinPhi = sin(phi),\n cosPhi = cos(phi),\n delta = abs(lambda - lambda0),\n cosDelta = cos(delta),\n sinDelta = sin(delta),\n x = cosPhi * sinDelta,\n y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,\n z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;\n lengthSum.add(atan2(sqrt(x * x + y * y), z));\n lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;\n}\n\nexport default function(object) {\n lengthSum.reset();\n stream(object, lengthStream);\n return +lengthSum;\n}\n","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\n","import adder from \"../adder.js\";\nimport {abs} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar areaSum = adder(),\n areaRingSum = adder(),\n x00,\n y00,\n x0,\n y0;\n\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum.reset();\n },\n result: function() {\n var area = areaSum / 2;\n areaSum.reset();\n return area;\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\n\nexport default areaStream;\n","import noop from \"../noop.js\";\n\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;\n","import {sqrt} from \"../math.js\";\n\n// TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n Y0 = 0,\n Z0 = 0,\n X1 = 0,\n Y1 = 0,\n Z1 = 0,\n X2 = 0,\n Y2 = 0,\n Z2 = 0,\n x00,\n y00,\n x0,\n y0;\n\nvar centroidStream = {\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.point = centroidPoint;\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n },\n result: function() {\n var centroid = Z2 ? [X2 / Z2, Y2 / Z2]\n : Z1 ? [X1 / Z1, Y1 / Z1]\n : Z0 ? [X0 / Z0, Y0 / Z0]\n : [NaN, NaN];\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n return centroid;\n }\n};\n\nfunction centroidPoint(x, y) {\n X0 += x;\n Y0 += y;\n ++Z0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n centroidStream.point = centroidPointLine;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidPointLine(x, y) {\n var dx = x - x0, dy = y - y0, z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingStart() {\n centroidStream.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd() {\n centroidPointRing(x00, y00);\n}\n\nfunction centroidPointFirstRing(x, y) {\n centroidStream.point = centroidPointRing;\n centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\n\nfunction centroidPointRing(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n\n z = y0 * x - x0 * y;\n X2 += z * (x0 + x);\n Y2 += z * (y0 + y);\n Z2 += z * 3;\n centroidPoint(x0 = x, y0 = y);\n}\n\nexport default centroidStream;\n","import {tau} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nexport default function PathContext(context) {\n this._context = context;\n}\n\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function(_) {\n return this._radius = _, this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._context.moveTo(x, y);\n this._point = 1;\n break;\n }\n case 1: {\n this._context.lineTo(x, y);\n break;\n }\n default: {\n this._context.moveTo(x + this._radius, y);\n this._context.arc(x, y, this._radius, 0, tau);\n break;\n }\n }\n },\n result: noop\n};\n","import identity from \"../identity.js\";\nimport stream from \"../stream.js\";\nimport pathArea from \"./area.js\";\nimport pathBounds from \"./bounds.js\";\nimport pathCentroid from \"./centroid.js\";\nimport PathContext from \"./context.js\";\nimport pathMeasure from \"./measure.js\";\nimport PathString from \"./string.js\";\n\nexport default function(projection, context) {\n var pointRadius = 4.5,\n projectionStream,\n contextStream;\n\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n stream(object, projectionStream(contextStream));\n }\n return contextStream.result();\n }\n\n path.area = function(object) {\n stream(object, projectionStream(pathArea));\n return pathArea.result();\n };\n\n path.measure = function(object) {\n stream(object, projectionStream(pathMeasure));\n return pathMeasure.result();\n };\n\n path.bounds = function(object) {\n stream(object, projectionStream(pathBounds));\n return pathBounds.result();\n };\n\n path.centroid = function(object) {\n stream(object, projectionStream(pathCentroid));\n return pathCentroid.result();\n };\n\n path.projection = function(_) {\n return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;\n };\n\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n return path.projection(projection).context(context);\n}\n","import adder from \"../adder.js\";\nimport {sqrt} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar lengthSum = adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\n\nvar lengthStream = {\n point: noop,\n lineStart: function() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function() {\n lengthRing = true;\n },\n polygonEnd: function() {\n lengthRing = null;\n },\n result: function() {\n var length = +lengthSum;\n lengthSum.reset();\n return length;\n }\n};\n\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\n\nexport default lengthStream;\n","export default function PathString() {\n this._string = [];\n}\n\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._string.push(\"M\", x, \",\", y);\n this._point = 1;\n break;\n }\n case 1: {\n this._string.push(\"L\", x, \",\", y);\n break;\n }\n default: {\n if (this._circle == null) this._circle = circle(this._radius);\n this._string.push(\"M\", x, \",\", y, this._circle);\n break;\n }\n }\n },\n result: function() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\n\nfunction circle(radius) {\n return \"m0,\" + radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius\n + \"z\";\n}\n","import {abs, epsilon} from \"./math.js\";\n\nexport default function(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}\n","import adder from \"./adder.js\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace} from \"./cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, halfPi, pi, quarterPi, sign, sin, tau} from \"./math.js\";\n\nvar sum = adder();\n\nfunction longitude(point) {\n if (abs(point[0]) <= pi)\n return point[0];\n else\n return sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function(polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n\n sum.reset();\n\n if (sinPhi === 1) phi = halfPi + epsilon;\n else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n\n // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon) ^ (winding & 1);\n}\n","import conicEqualArea from \"./conicEqualArea.js\";\n\nexport default function() {\n return conicEqualArea()\n .parallels([29.5, 45.5])\n .scale(1070)\n .translate([480, 250])\n .rotate([96, 0])\n .center([-0.6, 38.7]);\n}\n","import {epsilon} from \"../math.js\";\nimport albers from \"./albers.js\";\nimport conicEqualArea from \"./conicEqualArea.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\n\n// The projections must have mutually exclusive clip regions on the sphere,\n// as this will avoid emitting interleaving lines and polygons.\nfunction multiplex(streams) {\n var n = streams.length;\n return {\n point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },\n sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },\n lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },\n lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },\n polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },\n polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }\n };\n}\n\n// A composite projection for the United States, configured by default for\n// 960×500. The projection also works quite well at 960×600 if you change the\n// scale to 1285 and adjust the translate accordingly. The set of standard\n// parallels for each region comes from USGS, which is published here:\n// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers\nexport default function() {\n var cache,\n cacheStream,\n lower48 = albers(), lower48Point,\n alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338\n hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007\n point, pointStream = {point: function(x, y) { point = [x, y]; }};\n\n function albersUsa(coordinates) {\n var x = coordinates[0], y = coordinates[1];\n return point = null,\n (lower48Point.point(x, y), point)\n || (alaskaPoint.point(x, y), point)\n || (hawaiiPoint.point(x, y), point);\n }\n\n albersUsa.invert = function(coordinates) {\n var k = lower48.scale(),\n t = lower48.translate(),\n x = (coordinates[0] - t[0]) / k,\n y = (coordinates[1] - t[1]) / k;\n return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska\n : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii\n : lower48).invert(coordinates);\n };\n\n albersUsa.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n };\n\n albersUsa.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n return reset();\n };\n\n albersUsa.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n\n albersUsa.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n\n lower48Point = lower48\n .translate(_)\n .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])\n .stream(pointStream);\n\n alaskaPoint = alaska\n .translate([x - 0.307 * k, y + 0.201 * k])\n .clipExtent([[x - 0.425 * k + epsilon, y + 0.120 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n hawaiiPoint = hawaii\n .translate([x - 0.205 * k, y + 0.212 * k])\n .clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n return reset();\n };\n\n albersUsa.fitExtent = function(extent, object) {\n return fitExtent(albersUsa, extent, object);\n };\n\n albersUsa.fitSize = function(size, object) {\n return fitSize(albersUsa, size, object);\n };\n\n albersUsa.fitWidth = function(width, object) {\n return fitWidth(albersUsa, width, object);\n };\n\n albersUsa.fitHeight = function(height, object) {\n return fitHeight(albersUsa, height, object);\n };\n\n function reset() {\n cache = cacheStream = null;\n return albersUsa;\n }\n\n return albersUsa.scale(1070);\n}\n","import {asin, atan2, cos, sin, sqrt} from \"../math.js\";\n\nexport function azimuthalRaw(scale) {\n return function(x, y) {\n var cx = cos(x),\n cy = cos(y),\n k = scale(cx * cy);\n return [\n k * cy * sin(x),\n k * sin(y)\n ];\n }\n}\n\nexport function azimuthalInvert(angle) {\n return function(x, y) {\n var z = sqrt(x * x + y * y),\n c = angle(z),\n sc = sin(c),\n cc = cos(c);\n return [\n atan2(x * sc, z * cc),\n asin(z && y * sc / z)\n ];\n }\n}\n","import {asin, sqrt} from \"../math.js\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {\n return sqrt(2 / (1 + cxcy));\n});\n\nazimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {\n return 2 * asin(z / 2);\n});\n\nexport default function() {\n return projection(azimuthalEqualAreaRaw)\n .scale(124.75)\n .clipAngle(180 - 1e-3);\n}\n","import {acos, sin} from \"../math.js\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport var azimuthalEquidistantRaw = azimuthalRaw(function(c) {\n return (c = acos(c)) && c / sin(c);\n});\n\nazimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {\n return z;\n});\n\nexport default function() {\n return projection(azimuthalEquidistantRaw)\n .scale(79.4188)\n .clipAngle(180 - 1e-3);\n}\n","import {degrees, pi, radians} from \"../math.js\";\nimport {projectionMutator} from \"./index.js\";\n\nexport function conicProjection(projectAt) {\n var phi0 = 0,\n phi1 = pi / 3,\n m = projectionMutator(projectAt),\n p = m(phi0, phi1);\n\n p.parallels = function(_) {\n return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];\n };\n\n return p;\n}\n","import {abs, atan, atan2, cos, epsilon, halfPi, log, pow, sign, sin, sqrt, tan} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {mercatorRaw} from \"./mercator.js\";\n\nfunction tany(y) {\n return tan((halfPi + y) / 2);\n}\n\nexport function conicConformalRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : log(cy0 / cos(y1)) / log(tany(y1) / tany(y0)),\n f = cy0 * pow(tany(y0), n) / n;\n\n if (!n) return mercatorRaw;\n\n function project(x, y) {\n if (f > 0) { if (y < -halfPi + epsilon) y = -halfPi + epsilon; }\n else { if (y > halfPi - epsilon) y = halfPi - epsilon; }\n var r = f / pow(tany(y), n);\n return [r * sin(n * x), f - r * cos(n * x)];\n }\n\n project.invert = function(x, y) {\n var fy = f - y, r = sign(n) * sqrt(x * x + fy * fy);\n return [atan2(x, abs(fy)) / n * sign(fy), 2 * atan(pow(f / r, 1 / n)) - halfPi];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicConformalRaw)\n .scale(109.5)\n .parallels([30, 30]);\n}\n","import {abs, asin, atan2, cos, epsilon, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {cylindricalEqualAreaRaw} from \"./cylindricalEqualArea.js\";\n\nexport function conicEqualAreaRaw(y0, y1) {\n var sy0 = sin(y0), n = (sy0 + sin(y1)) / 2;\n\n // Are the parallels symmetrical around the Equator?\n if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);\n\n var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt(c) / n;\n\n function project(x, y) {\n var r = sqrt(c - 2 * n * sin(y)) / n;\n return [r * sin(x *= n), r0 - r * cos(x)];\n }\n\n project.invert = function(x, y) {\n var r0y = r0 - y;\n return [atan2(x, abs(r0y)) / n * sign(r0y), asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicEqualAreaRaw)\n .scale(155.424)\n .center([0, 33.6442]);\n}\n","import {abs, atan2, cos, epsilon, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {equirectangularRaw} from \"./equirectangular.js\";\n\nexport function conicEquidistantRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : (cy0 - cos(y1)) / (y1 - y0),\n g = cy0 / n + y0;\n\n if (abs(n) < epsilon) return equirectangularRaw;\n\n function project(x, y) {\n var gy = g - y, nx = n * x;\n return [gy * sin(nx), g - gy * cos(nx)];\n }\n\n project.invert = function(x, y) {\n var gy = g - y;\n return [atan2(x, abs(gy)) / n * sign(gy), g - sign(n) * sqrt(x * x + gy * gy)];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicEquidistantRaw)\n .scale(131.154)\n .center([0, 13.9389]);\n}\n","import {asin, cos, sin} from \"../math.js\";\n\nexport function cylindricalEqualAreaRaw(phi0) {\n var cosPhi0 = cos(phi0);\n\n function forward(lambda, phi) {\n return [lambda * cosPhi0, sin(phi) / cosPhi0];\n }\n\n forward.invert = function(x, y) {\n return [x / cosPhi0, asin(y * cosPhi0)];\n };\n\n return forward;\n}\n","import projection from \"./index.js\";\nimport {abs, asin, cos, epsilon2, sin, sqrt} from \"../math.js\";\n\nvar A1 = 1.340264,\n A2 = -0.081106,\n A3 = 0.000893,\n A4 = 0.003796,\n M = sqrt(3) / 2,\n iterations = 12;\n\nexport function equalEarthRaw(lambda, phi) {\n var l = asin(M * sin(phi)), l2 = l * l, l6 = l2 * l2 * l2;\n return [\n lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),\n l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))\n ];\n}\n\nequalEarthRaw.invert = function(x, y) {\n var l = y, l2 = l * l, l6 = l2 * l2 * l2;\n for (var i = 0, delta, fy, fpy; i < iterations; ++i) {\n fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;\n fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);\n l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;\n if (abs(delta) < epsilon2) break;\n }\n return [\n M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l),\n asin(sin(l) / M)\n ];\n};\n\nexport default function() {\n return projection(equalEarthRaw)\n .scale(177.158);\n}\n","import projection from \"./index.js\";\n\nexport function equirectangularRaw(lambda, phi) {\n return [lambda, phi];\n}\n\nequirectangularRaw.invert = equirectangularRaw;\n\nexport default function() {\n return projection(equirectangularRaw)\n .scale(152.63);\n}\n","import {default as geoStream} from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream));\n fitBounds(boundsStream.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n return fit(projection, function(b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\n\nexport function fitWidth(projection, width, object) {\n return fit(projection, function(b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitHeight(projection, height, object) {\n return fit(projection, function(b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n","import {atan, cos, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function gnomonicRaw(x, y) {\n var cy = cos(y), k = cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\n\ngnomonicRaw.invert = azimuthalInvert(atan);\n\nexport default function() {\n return projection(gnomonicRaw)\n .scale(144.049)\n .clipAngle(60);\n}\n","import clipRectangle from \"../clip/rectangle.js\";\nimport identity from \"../identity.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\n\nfunction scaleTranslate(kx, ky, tx, ty) {\n return kx === 1 && ky === 1 && tx === 0 && ty === 0 ? identity : transformer({\n point: function(x, y) {\n this.stream.point(x * kx + tx, y * ky + ty);\n }\n });\n}\n\nexport default function() {\n var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, transform = identity, // scale, translate and reflect\n x0 = null, y0, x1, y1, // clip extent\n postclip = identity,\n cache,\n cacheStream,\n projection;\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return projection = {\n stream: function(stream) {\n return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));\n },\n postclip: function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n },\n clipExtent: function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n },\n scale: function(_) {\n return arguments.length ? (transform = scaleTranslate((k = +_) * sx, k * sy, tx, ty), reset()) : k;\n },\n translate: function(_) {\n return arguments.length ? (transform = scaleTranslate(k * sx, k * sy, tx = +_[0], ty = +_[1]), reset()) : [tx, ty];\n },\n reflectX: function(_) {\n return arguments.length ? (transform = scaleTranslate(k * (sx = _ ? -1 : 1), k * sy, tx, ty), reset()) : sx < 0;\n },\n reflectY: function(_) {\n return arguments.length ? (transform = scaleTranslate(k * sx, k * (sy = _ ? -1 : 1), tx, ty), reset()) : sy < 0;\n },\n fitExtent: function(extent, object) {\n return fitExtent(projection, extent, object);\n },\n fitSize: function(size, object) {\n return fitSize(projection, size, object);\n },\n fitWidth: function(width, object) {\n return fitWidth(projection, width, object);\n },\n fitHeight: function(height, object) {\n return fitHeight(projection, height, object);\n }\n };\n}\n","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport {cos, degrees, radians, sin, sqrt} from \"../math.js\";\nimport {rotateRadians} from \"../rotation.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport resample from \"./resample.js\";\n\nvar transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nfunction scaleTranslate(k, dx, dy) {\n function transform(x, y) {\n return [dx + k * x, dy - k * y];\n }\n transform.invert = function(x, y) {\n return [(x - dx) / k, (dy - y) / k];\n };\n return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, alpha) {\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n function transform(x, y) {\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n transform.invert = function(x, y) {\n return [ai * x - bi * y + ci, fi - bi * x - ai * y];\n };\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nexport function projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate\n alpha = 0, // post-rotate\n theta = null, preclip = clipAntimeridian, // pre-clip angle\n x0 = null, y0, x1, y1, postclip = identity, // post-clip extent\n delta2 = 0.5, // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function(_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, alpha).apply(null, project(lambda, phi)),\n transform = (alpha ? scaleTranslateRotate : scaleTranslate)(k, x - center[0], y - center[1], alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}\n","import {atan, exp, halfPi, log, pi, tan, tau} from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\n\nexport function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function() {\n return mercatorProjection(mercatorRaw)\n .scale(961 / tau);\n}\n\nexport function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null, y0, x1, y1; // clip extent\n\n m.scale = function(_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function(_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function(_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function(_) {\n return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null\n ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw\n ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]\n : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}\n","import projection from \"./index.js\";\nimport {abs, epsilon} from \"../math.js\";\n\nexport function naturalEarth1Raw(lambda, phi) {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n return [\n lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),\n phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))\n ];\n}\n\nnaturalEarth1Raw.invert = function(x, y) {\n var phi = y, i = 25, delta;\n do {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /\n (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));\n } while (abs(delta) > epsilon && --i > 0);\n return [\n x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),\n phi\n ];\n};\n\nexport default function() {\n return projection(naturalEarth1Raw)\n .scale(175.295);\n}\n","import {asin, cos, epsilon, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function orthographicRaw(x, y) {\n return [cos(y) * sin(x), sin(y)];\n}\n\northographicRaw.invert = azimuthalInvert(asin);\n\nexport default function() {\n return projection(orthographicRaw)\n .scale(249.5)\n .clipAngle(90 + epsilon);\n}\n","import {cartesian} from \"../cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, radians, sqrt} from \"../math.js\";\nimport {transformer} from \"../transform.js\";\n\nvar maxDepth = 16, // maximum depth of subdivision\n cosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function(project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}\n","import {atan, cos, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function stereographicRaw(x, y) {\n var cy = cos(y), k = 1 + cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\n\nstereographicRaw.invert = azimuthalInvert(function(z) {\n return 2 * atan(z);\n});\n\nexport default function() {\n return projection(stereographicRaw)\n .scale(250)\n .clipAngle(142);\n}\n","import {atan, exp, halfPi, log, tan} from \"../math.js\";\nimport {mercatorProjection} from \"./mercator.js\";\n\nexport function transverseMercatorRaw(lambda, phi) {\n return [log(tan((halfPi + phi) / 2)), -lambda];\n}\n\ntransverseMercatorRaw.invert = function(x, y) {\n return [-y, 2 * atan(exp(x)) - halfPi];\n};\n\nexport default function() {\n var m = mercatorProjection(transverseMercatorRaw),\n center = m.center,\n rotate = m.rotate;\n\n m.center = function(_) {\n return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);\n };\n\n m.rotate = function(_) {\n return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);\n };\n\n return rotate([0, 0, 90])\n .scale(159.155);\n}\n","import compose from \"./compose.js\";\nimport {abs, asin, atan2, cos, degrees, pi, radians, sin, tau} from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n return [abs(lambda) > pi ? lambda + Math.round(-lambda / tau) * tau : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n\n rotation.invert = function(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n\n return rotation;\n}\n\nexport default function(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}\n","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\n\nexport default function(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}\n","export default function(methods) {\n return {\n stream: transformer(methods)\n };\n}\n\nexport function transformer(methods) {\n return function(stream) {\n var s = new TransformStream;\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { this.stream.polygonEnd(); }\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export var slice = Array.prototype.slice;\n\nexport function shuffle(array) {\n var m = array.length,\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\n\n return array;\n}\n","function defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\nfunction meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n}\n\nfunction meanXReduce(x, c) {\n return x + c.x;\n}\n\nfunction maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n}\n\nfunction maxYReduce(y, c) {\n return Math.max(y, c.y);\n}\n\nfunction leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n}\n\nfunction leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n}\n\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = false;\n\n function cluster(root) {\n var previousNode,\n x = 0;\n\n // First walk, computing the initial x & y values.\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n\n var left = leafLeft(root),\n right = leafRight(root),\n x0 = left.x - separation(left, right) / 2,\n x1 = right.x + separation(right, left) / 2;\n\n // Second walk, normalizing x & y to the desired size.\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n\n cluster.separation = function(x) {\n return arguments.length ? (separation = x, cluster) : separation;\n };\n\n cluster.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);\n };\n\n cluster.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);\n };\n\n return cluster;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n}\n","export default function(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\n\nexport default function hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export {default as cluster} from \"./cluster.js\";\nexport {default as hierarchy} from \"./hierarchy/index.js\";\nexport {default as pack} from \"./pack/index.js\";\nexport {default as packSiblings} from \"./pack/siblings.js\";\nexport {default as packEnclose} from \"./pack/enclose.js\";\nexport {default as partition} from \"./partition.js\";\nexport {default as stratify} from \"./stratify.js\";\nexport {default as tree} from \"./tree.js\";\nexport {default as treemap} from \"./treemap/index.js\";\nexport {default as treemapBinary} from \"./treemap/binary.js\";\nexport {default as treemapDice} from \"./treemap/dice.js\";\nexport {default as treemapSlice} from \"./treemap/slice.js\";\nexport {default as treemapSliceDice} from \"./treemap/sliceDice.js\";\nexport {default as treemapSquarify} from \"./treemap/squarify.js\";\nexport {default as treemapResquarify} from \"./treemap/resquarify.js\";\n","import {shuffle, slice} from \"../array.js\";\n\nexport default function(circles) {\n var i = 0, n = (circles = shuffle(slice.call(circles))).length, B = [], p, e;\n\n while (i < n) {\n p = circles[i];\n if (e && enclosesWeak(e, p)) ++i;\n else e = encloseBasis(B = extendBasis(B, p)), i = 0;\n }\n\n return e;\n}\n\nfunction extendBasis(B, p) {\n var i, j;\n\n if (enclosesWeakAll(p, B)) return [p];\n\n // If we get here then B must have at least one element.\n for (i = 0; i < B.length; ++i) {\n if (enclosesNot(p, B[i])\n && enclosesWeakAll(encloseBasis2(B[i], p), B)) {\n return [B[i], p];\n }\n }\n\n // If we get here then B must have at least two elements.\n for (i = 0; i < B.length - 1; ++i) {\n for (j = i + 1; j < B.length; ++j) {\n if (enclosesNot(encloseBasis2(B[i], B[j]), p)\n && enclosesNot(encloseBasis2(B[i], p), B[j])\n && enclosesNot(encloseBasis2(B[j], p), B[i])\n && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {\n return [B[i], B[j], p];\n }\n }\n }\n\n // If we get here then something is very wrong.\n throw new Error;\n}\n\nfunction enclosesNot(a, b) {\n var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;\n return dr < 0 || dr * dr < dx * dx + dy * dy;\n}\n\nfunction enclosesWeak(a, b) {\n var dr = a.r - b.r + 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction enclosesWeakAll(a, B) {\n for (var i = 0; i < B.length; ++i) {\n if (!enclosesWeak(a, B[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction encloseBasis(B) {\n switch (B.length) {\n case 1: return encloseBasis1(B[0]);\n case 2: return encloseBasis2(B[0], B[1]);\n case 3: return encloseBasis3(B[0], B[1], B[2]);\n }\n}\n\nfunction encloseBasis1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\n}\n\nfunction encloseBasis2(a, b) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,\n l = Math.sqrt(x21 * x21 + y21 * y21);\n return {\n x: (x1 + x2 + x21 / l * r21) / 2,\n y: (y1 + y2 + y21 / l * r21) / 2,\n r: (l + r1 + r2) / 2\n };\n}\n\nfunction encloseBasis3(a, b, c) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x3 = c.x, y3 = c.y, r3 = c.r,\n a2 = x1 - x2,\n a3 = x1 - x3,\n b2 = y1 - y2,\n b3 = y1 - y3,\n c2 = r2 - r1,\n c3 = r3 - r1,\n d1 = x1 * x1 + y1 * y1 - r1 * r1,\n d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,\n d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,\n ab = a3 * b2 - a2 * b3,\n xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,\n xb = (b3 * c2 - b2 * c3) / ab,\n ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,\n yb = (a2 * c3 - a3 * c2) / ab,\n A = xb * xb + yb * yb - 1,\n B = 2 * (r1 + xa * xb + ya * yb),\n C = xa * xa + ya * ya - r1 * r1,\n r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);\n return {\n x: x1 + xa + xb * r,\n y: y1 + ya + yb * r,\n r: r\n };\n}\n","import {packEnclose} from \"./siblings.js\";\nimport {optional} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nfunction defaultRadius(d) {\n return Math.sqrt(d.value);\n}\n\nexport default function() {\n var radius = null,\n dx = 1,\n dy = 1,\n padding = constantZero;\n\n function pack(root) {\n root.x = dx / 2, root.y = dy / 2;\n if (radius) {\n root.eachBefore(radiusLeaf(radius))\n .eachAfter(packChildren(padding, 0.5))\n .eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius))\n .eachAfter(packChildren(constantZero, 1))\n .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))\n .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n }\n return root;\n }\n\n pack.radius = function(x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n\n pack.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n\n pack.padding = function(x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant(+x), pack) : padding;\n };\n\n return pack;\n}\n\nfunction radiusLeaf(radius) {\n return function(node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\n };\n}\n\nfunction packChildren(padding, k) {\n return function(node) {\n if (children = node.children) {\n var children,\n i,\n n = children.length,\n r = padding(node) * k || 0,\n e;\n\n if (r) for (i = 0; i < n; ++i) children[i].r += r;\n e = packEnclose(children);\n if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n node.r = e + r;\n }\n };\n}\n\nfunction translateChild(k) {\n return function(node) {\n var parent = node.parent;\n node.r *= k;\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n}\n","import enclose from \"./enclose.js\";\n\nfunction place(b, a, c) {\n var dx = b.x - a.x, x, a2,\n dy = b.y - a.y, y, b2,\n d2 = dx * dx + dy * dy;\n if (d2) {\n a2 = a.r + c.r, a2 *= a2;\n b2 = b.r + c.r, b2 *= b2;\n if (a2 > b2) {\n x = (d2 + b2 - a2) / (2 * d2);\n y = Math.sqrt(Math.max(0, b2 / d2 - x * x));\n c.x = b.x - x * dx - y * dy;\n c.y = b.y - x * dy + y * dx;\n } else {\n x = (d2 + a2 - b2) / (2 * d2);\n y = Math.sqrt(Math.max(0, a2 / d2 - x * x));\n c.x = a.x + x * dx - y * dy;\n c.y = a.y + x * dy + y * dx;\n }\n } else {\n c.x = a.x + c.r;\n c.y = a.y;\n }\n}\n\nfunction intersects(a, b) {\n var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction score(node) {\n var a = node._,\n b = node.next._,\n ab = a.r + b.r,\n dx = (a.x * b.r + b.x * a.r) / ab,\n dy = (a.y * b.r + b.y * a.r) / ab;\n return dx * dx + dy * dy;\n}\n\nfunction Node(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n}\n\nexport function packEnclose(circles) {\n if (!(n = circles.length)) return 0;\n\n var a, b, c, n, aa, ca, i, j, k, sj, sk;\n\n // Place the first circle.\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r;\n\n // Place the second circle.\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r;\n\n // Place the third circle.\n place(b, a, c = circles[2]);\n\n // Initialize the front-chain using the first three circles a, b and c.\n a = new Node(a), b = new Node(b), c = new Node(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a;\n\n // Attempt to place each remaining circle…\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node(c);\n\n // Find the closest intersecting circle on the front-chain, if any.\n // “Closeness” is determined by linear distance along the front-chain.\n // “Ahead” or “behind” is likewise determined by linear distance.\n j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sj += j._.r, j = j.next;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sk += k._.r, k = k.previous;\n }\n } while (j !== k.next);\n\n // Success! Insert the new circle c between a and b.\n c.previous = a, c.next = b, a.next = b.previous = b = c;\n\n // Compute the new closest circle pair to the centroid.\n aa = score(a);\n while ((c = c.next) !== b) {\n if ((ca = score(c)) < aa) {\n a = c, aa = ca;\n }\n }\n b = a.next;\n }\n\n // Compute the enclosing circle of the front chain.\n a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a);\n\n // Translate the circles to put the enclosing circle around the origin.\n for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n\n return c.r;\n}\n\nexport default function(circles) {\n packEnclose(circles);\n return circles;\n}\n","import roundNode from \"./treemap/round.js\";\nimport treemapDice from \"./treemap/dice.js\";\n\nexport default function() {\n var dx = 1,\n dy = 1,\n padding = 0,\n round = false;\n\n function partition(root) {\n var n = root.height + 1;\n root.x0 =\n root.y0 = padding;\n root.x1 = dx;\n root.y1 = dy / n;\n root.eachBefore(positionNode(dy, n));\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(dy, n) {\n return function(node) {\n if (node.children) {\n treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);\n }\n var x0 = node.x0,\n y0 = node.y0,\n x1 = node.x1 - padding,\n y1 = node.y1 - padding;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n };\n }\n\n partition.round = function(x) {\n return arguments.length ? (round = !!x, partition) : round;\n };\n\n partition.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];\n };\n\n partition.padding = function(x) {\n return arguments.length ? (padding = +x, partition) : padding;\n };\n\n return partition;\n}\n","import {required} from \"./accessors.js\";\nimport {Node, computeHeight} from \"./hierarchy/index.js\";\n\nvar keyPrefix = \"$\", // Protect against keys like “__proto__”.\n preroot = {depth: -1},\n ambiguous = {};\n\nfunction defaultId(d) {\n return d.id;\n}\n\nfunction defaultParentId(d) {\n return d.parentId;\n}\n\nexport default function() {\n var id = defaultId,\n parentId = defaultParentId;\n\n function stratify(data) {\n var d,\n i,\n n = data.length,\n root,\n parent,\n node,\n nodes = new Array(n),\n nodeId,\n nodeKey,\n nodeByKey = {};\n\n for (i = 0; i < n; ++i) {\n d = data[i], node = nodes[i] = new Node(d);\n if ((nodeId = id(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = keyPrefix + (node.id = nodeId);\n nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node;\n }\n }\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], nodeId = parentId(data[i], i, data);\n if (nodeId == null || !(nodeId += \"\")) {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n } else {\n parent = nodeByKey[keyPrefix + nodeId];\n if (!parent) throw new Error(\"missing: \" + nodeId);\n if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n if (parent.children) parent.children.push(node);\n else parent.children = [node];\n node.parent = parent;\n }\n }\n\n if (!root) throw new Error(\"no root\");\n root.parent = preroot;\n root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);\n root.parent = null;\n if (n > 0) throw new Error(\"cycle\");\n\n return root;\n }\n\n stratify.id = function(x) {\n return arguments.length ? (id = required(x), stratify) : id;\n };\n\n stratify.parentId = function(x) {\n return arguments.length ? (parentId = required(x), stratify) : parentId;\n };\n\n return stratify;\n}\n","import {Node} from \"./hierarchy/index.js\";\n\nfunction defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\n// function radialSeparation(a, b) {\n// return (a.parent === b.parent ? 1 : 2) / a.depth;\n// }\n\n// This function is used to traverse the left contour of a subtree (or\n// subforest). It returns the successor of v on this contour. This successor is\n// either given by the leftmost child of v or by the thread of v. The function\n// returns null if and only if v is on the highest level of its subtree.\nfunction nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n}\n\n// This function works analogously to nextLeft.\nfunction nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n}\n\n// Shifts the current subtree rooted at w+. This is done by increasing\n// prelim(w+) and mod(w+) by shift.\nfunction moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n}\n\n// All other shifts, applied to the smaller subtrees between w- and w+, are\n// performed by this function. To prepare the shifts, we have to adjust\n// change(w+), shift(w+), and change(w-).\nfunction executeShifts(v) {\n var shift = 0,\n change = 0,\n children = v.children,\n i = children.length,\n w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n}\n\n// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,\n// returns the specified (default) ancestor.\nfunction nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n}\n\nfunction TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null; // default ancestor\n this.a = this; // ancestor\n this.z = 0; // prelim\n this.m = 0; // mod\n this.c = 0; // change\n this.s = 0; // shift\n this.t = null; // thread\n this.i = i; // number\n}\n\nTreeNode.prototype = Object.create(Node.prototype);\n\nfunction treeRoot(root) {\n var tree = new TreeNode(root, 0),\n node,\n nodes = [tree],\n child,\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n\n (tree.parent = new TreeNode(null, 0)).children = [tree];\n return tree;\n}\n\n// Node-link tree diagram using the Reingold-Tilford \"tidy\" algorithm\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = null;\n\n function tree(root) {\n var t = treeRoot(root);\n\n // Compute the layout using Buchheim et al.’s algorithm.\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk);\n\n // If a fixed node size is specified, scale x and y.\n if (nodeSize) root.eachBefore(sizeNode);\n\n // If a fixed tree size is specified, scale x and y based on the extent.\n // Compute the left-most, right-most, and depth-most nodes for extents.\n else {\n var left = root,\n right = root,\n bottom = root;\n root.eachBefore(function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2,\n tx = s - left.x,\n kx = dx / (right.x + s + tx),\n ky = dy / (bottom.depth || 1);\n root.eachBefore(function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n\n return root;\n }\n\n // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is\n // applied recursively to the children of v, as well as the function\n // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the\n // node v is placed to the midpoint of its outermost children.\n function firstWalk(v) {\n var children = v.children,\n siblings = v.parent.children,\n w = v.i ? siblings[v.i - 1] : null;\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n\n // Computes all real x-coordinates by summing up the modifiers recursively.\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n\n // The core of the algorithm. Here, a new subtree is combined with the\n // previous subtrees. Threads are used to traverse the inside and outside\n // contours of the left and right subtree up to the highest common level. The\n // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the\n // superscript o means outside and i means inside, the subscript - means left\n // subtree and + means right subtree. For summing up the modifiers along the\n // contour, we use respective variables si+, si-, so-, and so+. Whenever two\n // nodes of the inside contours conflict, we compute the left one of the\n // greatest uncommon ancestors using the function ANCESTOR and call MOVE\n // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.\n // Finally, we add a new thread (if necessary).\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v,\n vop = v,\n vim = w,\n vom = vip.parent.children[0],\n sip = vip.m,\n sop = vop.m,\n sim = vim.m,\n som = vom.m,\n shift;\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n\n tree.separation = function(x) {\n return arguments.length ? (separation = x, tree) : separation;\n };\n\n tree.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);\n };\n\n tree.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);\n };\n\n return tree;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n i, n = nodes.length,\n sum, sums = new Array(n + 1);\n\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n\n partition(0, n, parent.value, x0, y0, x1, y1);\n\n function partition(i, j, value, x0, y0, x1, y1) {\n if (i >= j - 1) {\n var node = nodes[i];\n node.x0 = x0, node.y0 = y0;\n node.x1 = x1, node.y1 = y1;\n return;\n }\n\n var valueOffset = sums[i],\n valueTarget = (value / 2) + valueOffset,\n k = i + 1,\n hi = j - 1;\n\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;\n else hi = mid;\n }\n\n if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;\n\n var valueLeft = sums[k] - valueOffset,\n valueRight = value - valueLeft;\n\n if ((x1 - x0) > (y1 - y0)) {\n var xk = (x0 * valueRight + x1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, xk, y1);\n partition(k, j, valueRight, xk, y0, x1, y1);\n } else {\n var yk = (y0 * valueRight + y1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, x1, yk);\n partition(k, j, valueRight, x0, yk, x1, y1);\n }\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport {phi, squarifyRatio} from \"./squarify.js\";\n\nexport default (function custom(ratio) {\n\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && (rows.ratio === ratio)) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);\n else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import dice from \"./dice.js\";\nimport slice from \"./slice.js\";\n\nexport default function(parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? slice : dice)(parent, x0, y0, x1, y1);\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n","import {hue} from \"./color.js\";\n\nexport default function(a, b) {\n var i = hue(+a, +b);\n return function(t) {\n var x = i(t);\n return x - 360 * Math.floor(x / 360);\n };\n}\n","export {default as interpolate} from \"./value.js\";\nexport {default as interpolateArray} from \"./array.js\";\nexport {default as interpolateBasis} from \"./basis.js\";\nexport {default as interpolateBasisClosed} from \"./basisClosed.js\";\nexport {default as interpolateDate} from \"./date.js\";\nexport {default as interpolateDiscrete} from \"./discrete.js\";\nexport {default as interpolateHue} from \"./hue.js\";\nexport {default as interpolateNumber} from \"./number.js\";\nexport {default as interpolateNumberArray} from \"./numberArray.js\";\nexport {default as interpolateObject} from \"./object.js\";\nexport {default as interpolateRound} from \"./round.js\";\nexport {default as interpolateString} from \"./string.js\";\nexport {interpolateTransformCss, interpolateTransformSvg} from \"./transform/index.js\";\nexport {default as interpolateZoom} from \"./zoom.js\";\nexport {default as interpolateRgb, rgbBasis as interpolateRgbBasis, rgbBasisClosed as interpolateRgbBasisClosed} from \"./rgb.js\";\nexport {default as interpolateHsl, hslLong as interpolateHslLong} from \"./hsl.js\";\nexport {default as interpolateLab} from \"./lab.js\";\nexport {default as interpolateHcl, hclLong as interpolateHclLong} from \"./hcl.js\";\nexport {default as interpolateCubehelix, cubehelixLong as interpolateCubehelixLong} from \"./cubehelix.js\";\nexport {default as piecewise} from \"./piecewise.js\";\nexport {default as quantize} from \"./quantize.js\";\n","import {lab as colorLab} from \"d3-color\";\nimport color from \"./color.js\";\n\nexport default function lab(start, end) {\n var l = color((start = colorLab(start)).l, (end = colorLab(end)).l),\n a = color(start.a, end.a),\n b = color(start.b, end.b),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","export default function piecewise(interpolate, values) {\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","export default function(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import decompose, {identity} from \"./decompose.js\";\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nexport default function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n}\n","export {default as path} from \"./path.js\";\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n a,\n b = polygon[n - 1],\n area = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n area += a[1] * b[0] - a[0] * b[1];\n }\n\n return area / 2;\n}\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n x = 0,\n y = 0,\n a,\n b = polygon[n - 1],\n c,\n k = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n k += c = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * c;\n y += (a[1] + b[1]) * c;\n }\n\n return k *= 3, [x / k, y / k];\n}\n","export default function(polygon, point) {\n var n = polygon.length,\n p = polygon[n - 1],\n x = point[0], y = point[1],\n x0 = p[0], y0 = p[1],\n x1, y1,\n inside = false;\n\n for (var i = 0; i < n; ++i) {\n p = polygon[i], x1 = p[0], y1 = p[1];\n if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;\n x0 = x1, y0 = y1;\n }\n\n return inside;\n}\n","// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of\n// the 3D cross product in a quadrant I Cartesian coordinate system (+x is\n// right, +y is up). Returns a positive value if ABC is counter-clockwise,\n// negative if clockwise, and zero if the points are collinear.\nexport default function(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n}\n","import cross from \"./cross.js\";\n\nfunction lexicographicOrder(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n}\n\n// Computes the upper convex hull per the monotone chain algorithm.\n// Assumes points.length >= 3, is sorted by x, unique in y.\n// Returns an array of indices into points in left-to-right order.\nfunction computeUpperHullIndexes(points) {\n var n = points.length,\n indexes = [0, 1],\n size = 2;\n\n for (var i = 2; i < n; ++i) {\n while (size > 1 && cross(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;\n indexes[size++] = i;\n }\n\n return indexes.slice(0, size); // remove popped points\n}\n\nexport default function(points) {\n if ((n = points.length) < 3) return null;\n\n var i,\n n,\n sortedPoints = new Array(n),\n flippedPoints = new Array(n);\n\n for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];\n sortedPoints.sort(lexicographicOrder);\n for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];\n\n var upperIndexes = computeUpperHullIndexes(sortedPoints),\n lowerIndexes = computeUpperHullIndexes(flippedPoints);\n\n // Construct the hull polygon, removing possible duplicate endpoints.\n var skipLeft = lowerIndexes[0] === upperIndexes[0],\n skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],\n hull = [];\n\n // Add upper hull in right-to-l order.\n // Then add lower hull in left-to-right order.\n for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);\n for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);\n\n return hull;\n}\n","export {default as polygonArea} from \"./area.js\";\nexport {default as polygonCentroid} from \"./centroid.js\";\nexport {default as polygonHull} from \"./hull.js\";\nexport {default as polygonContains} from \"./contains.js\";\nexport {default as polygonLength} from \"./length.js\";\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n b = polygon[n - 1],\n xa,\n ya,\n xb = b[0],\n yb = b[1],\n perimeter = 0;\n\n while (++i < n) {\n xa = xb;\n ya = yb;\n b = polygon[i];\n xb = b[0];\n yb = b[1];\n xa -= xb;\n ya -= yb;\n perimeter += Math.sqrt(xa * xa + ya * ya);\n }\n\n return perimeter;\n}\n","export default function(d) {\n var x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export {default as quadtree} from \"./quadtree.js\";\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","import defaultSource from \"./defaultSource\";\nimport irwinHall from \"./irwinHall\";\n\nexport default (function sourceRandomBates(source) {\n function randomBates(n) {\n var randomIrwinHall = irwinHall.source(source)(n);\n return function() {\n return randomIrwinHall() / n;\n };\n }\n\n randomBates.source = sourceRandomBates;\n\n return randomBates;\n})(defaultSource);\n","export default function() {\n return Math.random();\n}\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomExponential(source) {\n function randomExponential(lambda) {\n return function() {\n return -Math.log(1 - source()) / lambda;\n };\n }\n\n randomExponential.source = sourceRandomExponential;\n\n return randomExponential;\n})(defaultSource);\n","export {default as randomUniform} from \"./uniform\";\nexport {default as randomNormal} from \"./normal\";\nexport {default as randomLogNormal} from \"./logNormal\";\nexport {default as randomBates} from \"./bates\";\nexport {default as randomIrwinHall} from \"./irwinHall\";\nexport {default as randomExponential} from \"./exponential\";\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomIrwinHall(source) {\n function randomIrwinHall(n) {\n return function() {\n for (var sum = 0, i = 0; i < n; ++i) sum += source();\n return sum;\n };\n }\n\n randomIrwinHall.source = sourceRandomIrwinHall;\n\n return randomIrwinHall;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\nimport normal from \"./normal\";\n\nexport default (function sourceRandomLogNormal(source) {\n function randomLogNormal() {\n var randomNormal = normal.source(source).apply(this, arguments);\n return function() {\n return Math.exp(randomNormal());\n };\n }\n\n randomLogNormal.source = sourceRandomLogNormal;\n\n return randomLogNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomNormal(source) {\n function randomNormal(mu, sigma) {\n var x, r;\n mu = mu == null ? 0 : +mu;\n sigma = sigma == null ? 1 : +sigma;\n return function() {\n var y;\n\n // If available, use the second previously-generated uniform random.\n if (x != null) y = x, x = null;\n\n // Otherwise, generate a new x and y.\n else do {\n x = source() * 2 - 1;\n y = source() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n\n return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);\n };\n }\n\n randomNormal.source = sourceRandomNormal;\n\n return randomNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomUniform(source) {\n function randomUniform(min, max) {\n min = min == null ? 0 : +min;\n max = max == null ? 1 : +max;\n if (arguments.length === 1) max = min, min = 0;\n else max -= min;\n return function() {\n return source() * max + min;\n };\n }\n\n randomUniform.source = sourceRandomUniform;\n\n return randomUniform;\n})(defaultSource);\n","import colors from \"../colors.js\";\n\nexport default colors(\"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n","export default function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"d8b365f5f5f55ab4ac\",\n \"a6611adfc27d80cdc1018571\",\n \"a6611adfc27df5f5f580cdc1018571\",\n \"8c510ad8b365f6e8c3c7eae55ab4ac01665e\",\n \"8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e\",\n \"8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e\",\n \"8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e\",\n \"5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30\",\n \"5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"af8dc3f7f7f77fbf7b\",\n \"7b3294c2a5cfa6dba0008837\",\n \"7b3294c2a5cff7f7f7a6dba0008837\",\n \"762a83af8dc3e7d4e8d9f0d37fbf7b1b7837\",\n \"762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837\",\n \"762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837\",\n \"762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837\",\n \"40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b\",\n \"40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e9a3c9f7f7f7a1d76a\",\n \"d01c8bf1b6dab8e1864dac26\",\n \"d01c8bf1b6daf7f7f7b8e1864dac26\",\n \"c51b7de9a3c9fde0efe6f5d0a1d76a4d9221\",\n \"c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221\",\n \"c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221\",\n \"c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221\",\n \"8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419\",\n \"8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"998ec3f7f7f7f1a340\",\n \"5e3c99b2abd2fdb863e66101\",\n \"5e3c99b2abd2f7f7f7fdb863e66101\",\n \"542788998ec3d8daebfee0b6f1a340b35806\",\n \"542788998ec3d8daebf7f7f7fee0b6f1a340b35806\",\n \"5427888073acb2abd2d8daebfee0b6fdb863e08214b35806\",\n \"5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806\",\n \"2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08\",\n \"2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62f7f7f767a9cf\",\n \"ca0020f4a58292c5de0571b0\",\n \"ca0020f4a582f7f7f792c5de0571b0\",\n \"b2182bef8a62fddbc7d1e5f067a9cf2166ac\",\n \"b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac\",\n \"b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac\",\n \"b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac\",\n \"67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061\",\n \"67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62ffffff999999\",\n \"ca0020f4a582bababa404040\",\n \"ca0020f4a582ffffffbababa404040\",\n \"b2182bef8a62fddbc7e0e0e09999994d4d4d\",\n \"b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d\",\n \"b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d\",\n \"b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d\",\n \"67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a\",\n \"67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91bfdb\",\n \"d7191cfdae61abd9e92c7bb6\",\n \"d7191cfdae61ffffbfabd9e92c7bb6\",\n \"d73027fc8d59fee090e0f3f891bfdb4575b4\",\n \"d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4\",\n \"d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4\",\n \"d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4\",\n \"a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695\",\n \"a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91cf60\",\n \"d7191cfdae61a6d96a1a9641\",\n \"d7191cfdae61ffffbfa6d96a1a9641\",\n \"d73027fc8d59fee08bd9ef8b91cf601a9850\",\n \"d73027fc8d59fee08bffffbfd9ef8b91cf601a9850\",\n \"d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850\",\n \"d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850\",\n \"a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837\",\n \"a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf99d594\",\n \"d7191cfdae61abdda42b83ba\",\n \"d7191cfdae61ffffbfabdda42b83ba\",\n \"d53e4ffc8d59fee08be6f59899d5943288bd\",\n \"d53e4ffc8d59fee08bffffbfe6f59899d5943288bd\",\n \"d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd\",\n \"d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd\",\n \"9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2\",\n \"9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2\"\n).map(colors);\n\nexport default ramp(scheme);\n","export {default as schemeCategory10} from \"./categorical/category10.js\";\nexport {default as schemeAccent} from \"./categorical/Accent.js\";\nexport {default as schemeDark2} from \"./categorical/Dark2.js\";\nexport {default as schemePaired} from \"./categorical/Paired.js\";\nexport {default as schemePastel1} from \"./categorical/Pastel1.js\";\nexport {default as schemePastel2} from \"./categorical/Pastel2.js\";\nexport {default as schemeSet1} from \"./categorical/Set1.js\";\nexport {default as schemeSet2} from \"./categorical/Set2.js\";\nexport {default as schemeSet3} from \"./categorical/Set3.js\";\nexport {default as schemeTableau10} from \"./categorical/Tableau10.js\";\nexport {default as interpolateBrBG, scheme as schemeBrBG} from \"./diverging/BrBG.js\";\nexport {default as interpolatePRGn, scheme as schemePRGn} from \"./diverging/PRGn.js\";\nexport {default as interpolatePiYG, scheme as schemePiYG} from \"./diverging/PiYG.js\";\nexport {default as interpolatePuOr, scheme as schemePuOr} from \"./diverging/PuOr.js\";\nexport {default as interpolateRdBu, scheme as schemeRdBu} from \"./diverging/RdBu.js\";\nexport {default as interpolateRdGy, scheme as schemeRdGy} from \"./diverging/RdGy.js\";\nexport {default as interpolateRdYlBu, scheme as schemeRdYlBu} from \"./diverging/RdYlBu.js\";\nexport {default as interpolateRdYlGn, scheme as schemeRdYlGn} from \"./diverging/RdYlGn.js\";\nexport {default as interpolateSpectral, scheme as schemeSpectral} from \"./diverging/Spectral.js\";\nexport {default as interpolateBuGn, scheme as schemeBuGn} from \"./sequential-multi/BuGn.js\";\nexport {default as interpolateBuPu, scheme as schemeBuPu} from \"./sequential-multi/BuPu.js\";\nexport {default as interpolateGnBu, scheme as schemeGnBu} from \"./sequential-multi/GnBu.js\";\nexport {default as interpolateOrRd, scheme as schemeOrRd} from \"./sequential-multi/OrRd.js\";\nexport {default as interpolatePuBuGn, scheme as schemePuBuGn} from \"./sequential-multi/PuBuGn.js\";\nexport {default as interpolatePuBu, scheme as schemePuBu} from \"./sequential-multi/PuBu.js\";\nexport {default as interpolatePuRd, scheme as schemePuRd} from \"./sequential-multi/PuRd.js\";\nexport {default as interpolateRdPu, scheme as schemeRdPu} from \"./sequential-multi/RdPu.js\";\nexport {default as interpolateYlGnBu, scheme as schemeYlGnBu} from \"./sequential-multi/YlGnBu.js\";\nexport {default as interpolateYlGn, scheme as schemeYlGn} from \"./sequential-multi/YlGn.js\";\nexport {default as interpolateYlOrBr, scheme as schemeYlOrBr} from \"./sequential-multi/YlOrBr.js\";\nexport {default as interpolateYlOrRd, scheme as schemeYlOrRd} from \"./sequential-multi/YlOrRd.js\";\nexport {default as interpolateBlues, scheme as schemeBlues} from \"./sequential-single/Blues.js\";\nexport {default as interpolateGreens, scheme as schemeGreens} from \"./sequential-single/Greens.js\";\nexport {default as interpolateGreys, scheme as schemeGreys} from \"./sequential-single/Greys.js\";\nexport {default as interpolatePurples, scheme as schemePurples} from \"./sequential-single/Purples.js\";\nexport {default as interpolateReds, scheme as schemeReds} from \"./sequential-single/Reds.js\";\nexport {default as interpolateOranges, scheme as schemeOranges} from \"./sequential-single/Oranges.js\";\nexport {default as interpolateCividis} from \"./sequential-multi/cividis.js\";\nexport {default as interpolateCubehelixDefault} from \"./sequential-multi/cubehelix.js\";\nexport {default as interpolateRainbow, warm as interpolateWarm, cool as interpolateCool} from \"./sequential-multi/rainbow.js\";\nexport {default as interpolateSinebow} from \"./sequential-multi/sinebow.js\";\nexport {default as interpolateTurbo} from \"./sequential-multi/turbo.js\";\nexport {default as interpolateViridis, magma as interpolateMagma, inferno as interpolateInferno, plasma as interpolatePlasma} from \"./sequential-multi/viridis.js\";\n","import {interpolateRgbBasis} from \"d3-interpolate\";\n\nexport default function(scheme) {\n return interpolateRgbBasis(scheme[scheme.length - 1]);\n}\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5f999d8c92ca25f\",\n \"edf8fbb2e2e266c2a4238b45\",\n \"edf8fbb2e2e266c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0ecf49ebcda8856a7\",\n \"edf8fbb3cde38c96c688419d\",\n \"edf8fbb3cde38c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0f3dba8ddb543a2ca\",\n \"f0f9e8bae4bc7bccc42b8cbe\",\n \"f0f9e8bae4bc7bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee8c8fdbb84e34a33\",\n \"fef0d9fdcc8afc8d59d7301f\",\n \"fef0d9fdcc8afc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece7f2a6bddb2b8cbe\",\n \"f1eef6bdc9e174a9cf0570b0\",\n \"f1eef6bdc9e174a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece2f0a6bddb1c9099\",\n \"f6eff7bdc9e167a9cf02818a\",\n \"f6eff7bdc9e167a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e7e1efc994c7dd1c77\",\n \"f1eef6d7b5d8df65b0ce1256\",\n \"f1eef6d7b5d8df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fde0ddfa9fb5c51b8a\",\n \"feebe2fbb4b9f768a1ae017e\",\n \"feebe2fbb4b9f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f7fcb9addd8e31a354\",\n \"ffffccc2e69978c679238443\",\n \"ffffccc2e69978c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"edf8b17fcdbb2c7fb8\",\n \"ffffcca1dab441b6c4225ea8\",\n \"ffffcca1dab441b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fff7bcfec44fd95f0e\",\n \"ffffd4fed98efe9929cc4c02\",\n \"ffffd4fed98efe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ffeda0feb24cf03b20\",\n \"ffffb2fecc5cfd8d3ce31a1c\",\n \"ffffb2fecc5cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026\"\n).map(colors);\n\nexport default ramp(scheme);\n","export default function(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67)))))))\n + \")\";\n}\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar c = cubehelix();\n\nexport default function(t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n c.h = 360 * t - 100;\n c.s = 1.5 - 1.5 * ts;\n c.l = 0.8 - 0.9 * ts;\n return c + \"\";\n}\n","import {rgb} from \"d3-color\";\n\nvar c = rgb(),\n pi_1_3 = Math.PI / 3,\n pi_2_3 = Math.PI * 2 / 3;\n\nexport default function(t) {\n var x;\n t = (0.5 - t) * Math.PI;\n c.r = 255 * (x = Math.sin(t)) * x;\n c.g = 255 * (x = Math.sin(t + pi_1_3)) * x;\n c.b = 255 * (x = Math.sin(t + pi_2_3)) * x;\n return c + \"\";\n}\n","export default function(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66)))))))\n + \")\";\n}\n","import colors from \"../colors.js\";\n\nfunction ramp(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n\nexport default ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\n\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"deebf79ecae13182bd\",\n \"eff3ffbdd7e76baed62171b5\",\n \"eff3ffbdd7e76baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5e0a1d99b31a354\",\n \"edf8e9bae4b374c476238b45\",\n \"edf8e9bae4b374c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f0f0f0bdbdbd636363\",\n \"f7f7f7cccccc969696525252\",\n \"f7f7f7cccccc969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee6cefdae6be6550d\",\n \"feeddefdbe85fd8d3cd94701\",\n \"feeddefdbe85fd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"efedf5bcbddc756bb1\",\n \"f2f0f7cbc9e29e9ac86a51a3\",\n \"f2f0f7cbc9e29e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee0d2fc9272de2d26\",\n \"fee5d9fcae91fb6a4acb181d\",\n \"fee5d9fcae91fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d\"\n).map(colors);\n\nexport default ramp(scheme);\n","var array = Array.prototype;\n\nexport var map = array.map;\nexport var slice = array.slice;\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init\";\nimport ordinal from \"./ordinal\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), range)\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport {map, slice} from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(domain) {\n var a = domain[0], b = domain[domain.length - 1], t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = map.call(_, number), clamp === identity || (clamp = clamper(domain)), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? clamper(domain) : identity, scale) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous(transform, untransform) {\n return transformer()(transform, untransform);\n}\n","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {copy} from \"./sequential\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (x < t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), t2 = transform(x2 = +_[2]), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1);\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","import {map} from \"./array\";\nimport {linearish} from \"./linear\";\nimport number from \"./number\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = map.call(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? map.call(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export {\n default as scaleBand,\n point as scalePoint\n} from \"./band\";\n\nexport {\n default as scaleIdentity\n} from \"./identity\";\n\nexport {\n default as scaleLinear\n} from \"./linear\";\n\nexport {\n default as scaleLog\n} from \"./log\";\n\nexport {\n default as scaleSymlog\n} from \"./symlog\";\n\nexport {\n default as scaleOrdinal,\n implicit as scaleImplicit\n} from \"./ordinal\";\n\nexport {\n default as scalePow,\n sqrt as scaleSqrt\n} from \"./pow\";\n\nexport {\n default as scaleQuantile\n} from \"./quantile\";\n\nexport {\n default as scaleQuantize\n} from \"./quantize\";\n\nexport {\n default as scaleThreshold\n} from \"./threshold\";\n\nexport {\n default as scaleTime\n} from \"./time\";\n\nexport {\n default as scaleUtc\n} from \"./utcTime\";\n\nexport {\n default as scaleSequential,\n sequentialLog as scaleSequentialLog,\n sequentialPow as scaleSequentialPow,\n sequentialSqrt as scaleSequentialSqrt,\n sequentialSymlog as scaleSequentialSymlog\n} from \"./sequential\";\n\nexport {\n default as scaleSequentialQuantile\n} from \"./sequentialQuantile\";\n\nexport {\n default as scaleDiverging,\n divergingLog as scaleDivergingLog,\n divergingPow as scaleDivergingPow,\n divergingSqrt as scaleDivergingSqrt,\n divergingSymlog as scaleDivergingSymlog\n} from \"./diverging\";\n\nexport {\n default as tickFormat\n} from \"./tickFormat\";\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.interpolator(domain); break;\n default: this.interpolator(interpolator).domain(domain); break;\n }\n return this;\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport tickFormat from \"./tickFormat\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous(identity, identity);\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i < j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","export default function(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","export default function(x) {\n return +x;\n}\n","import {map} from \"d3-collection\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport var implicit = {name: \"implicit\"};\n\nexport default function ordinal() {\n var index = map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {linearish} from \"./linear\";\nimport {copy, identity, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile as threshold} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {linearish} from \"./linear\";\nimport {initRange} from \"./init\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = slice.call(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect} from \"d3-array\";\nimport {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (!isNaN(x = +x)) return interpolator((bisect(domain, x) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {linearish} from \"./linear\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {bisector, tickStep} from \"d3-array\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport {map} from \"./array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport nice from \"./nice\";\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(identity, identity),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function() {\n return initRange.apply(calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {calendar} from \"./time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond} from \"d3-time\";\nimport {initRange} from \"./init\";\n\nexport default function() {\n return initRange.apply(calendar(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import creator from \"./creator\";\nimport select from \"./select\";\n\nexport default function(name) {\n return select(creator(name).call(document.documentElement));\n}\n","import namespace from \"./namespace\";\nimport {xhtml} from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","export {default as create} from \"./create\";\nexport {default as creator} from \"./creator\";\nexport {default as local} from \"./local\";\nexport {default as matcher} from \"./matcher\";\nexport {default as mouse} from \"./mouse\";\nexport {default as namespace} from \"./namespace\";\nexport {default as namespaces} from \"./namespaces\";\nexport {default as clientPoint} from \"./point\";\nexport {default as select} from \"./select\";\nexport {default as selectAll} from \"./selectAll\";\nexport {default as selection} from \"./selection/index\";\nexport {default as selector} from \"./selector\";\nexport {default as selectorAll} from \"./selectorAll\";\nexport {styleValue as style} from \"./selection/style\";\nexport {default as touch} from \"./touch\";\nexport {default as touches} from \"./touches\";\nexport {default as window} from \"./window\";\nexport {event, customEvent} from \"./selection/on\";\n","var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point(node, event);\n}\n","import namespaces from \"./namespaces\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","export default function(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n}\n","import creator from \"../creator\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","import {Selection} from \"./index\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nexport default function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export default function() {\n return !this.node();\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nexport default selection;\n","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import {Selection} from \"./index\";\n\nexport default function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","import {Selection} from \"./index\";\nimport selector from \"../selector\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index\";\nimport selectorAll from \"../selectorAll\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n","import {Selection} from \"./index\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {event} from \"./selection/on\";\n\nexport default function() {\n var current = event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches) {\n if (touches == null) touches = sourceEvent().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = point(node, touches[i]);\n }\n\n return points;\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x0 = pointX,\n x1 = null,\n y0 = constant(0),\n y1 = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport area from \"./area.js\";\nimport {lineRadial} from \"./lineRadial.js\";\n\nexport default function() {\n var a = area().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n","export var slice = Array.prototype.slice;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","export {default as arc} from \"./arc.js\";\nexport {default as area} from \"./area.js\";\nexport {default as line} from \"./line.js\";\nexport {default as pie} from \"./pie.js\";\nexport {default as areaRadial, default as radialArea} from \"./areaRadial.js\"; // Note: radialArea is deprecated!\nexport {default as lineRadial, default as radialLine} from \"./lineRadial.js\"; // Note: radialLine is deprecated!\nexport {default as pointRadial} from \"./pointRadial.js\";\nexport {linkHorizontal, linkVertical, linkRadial} from \"./link/index.js\";\n\nexport {default as symbol, symbols} from \"./symbol.js\";\nexport {default as symbolCircle} from \"./symbol/circle.js\";\nexport {default as symbolCross} from \"./symbol/cross.js\";\nexport {default as symbolDiamond} from \"./symbol/diamond.js\";\nexport {default as symbolSquare} from \"./symbol/square.js\";\nexport {default as symbolStar} from \"./symbol/star.js\";\nexport {default as symbolTriangle} from \"./symbol/triangle.js\";\nexport {default as symbolWye} from \"./symbol/wye.js\";\n\nexport {default as curveBasisClosed} from \"./curve/basisClosed.js\";\nexport {default as curveBasisOpen} from \"./curve/basisOpen.js\";\nexport {default as curveBasis} from \"./curve/basis.js\";\nexport {default as curveBundle} from \"./curve/bundle.js\";\nexport {default as curveCardinalClosed} from \"./curve/cardinalClosed.js\";\nexport {default as curveCardinalOpen} from \"./curve/cardinalOpen.js\";\nexport {default as curveCardinal} from \"./curve/cardinal.js\";\nexport {default as curveCatmullRomClosed} from \"./curve/catmullRomClosed.js\";\nexport {default as curveCatmullRomOpen} from \"./curve/catmullRomOpen.js\";\nexport {default as curveCatmullRom} from \"./curve/catmullRom.js\";\nexport {default as curveLinearClosed} from \"./curve/linearClosed.js\";\nexport {default as curveLinear} from \"./curve/linear.js\";\nexport {monotoneX as curveMonotoneX, monotoneY as curveMonotoneY} from \"./curve/monotone.js\";\nexport {default as curveNatural} from \"./curve/natural.js\";\nexport {default as curveStep, stepAfter as curveStepAfter, stepBefore as curveStepBefore} from \"./curve/step.js\";\n\nexport {default as stack} from \"./stack.js\";\nexport {default as stackOffsetExpand} from \"./offset/expand.js\";\nexport {default as stackOffsetDiverging} from \"./offset/diverging.js\";\nexport {default as stackOffsetNone} from \"./offset/none.js\";\nexport {default as stackOffsetSilhouette} from \"./offset/silhouette.js\";\nexport {default as stackOffsetWiggle} from \"./offset/wiggle.js\";\nexport {default as stackOrderAppearance} from \"./order/appearance.js\";\nexport {default as stackOrderAscending} from \"./order/ascending.js\";\nexport {default as stackOrderDescending} from \"./order/descending.js\";\nexport {default as stackOrderInsideOut} from \"./order/insideOut.js\";\nexport {default as stackOrderNone} from \"./order/none.js\";\nexport {default as stackOrderReverse} from \"./order/reverse.js\";\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","export default function() {}\n","export default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var peaks = series.map(peak);\n return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var sums = series.map(sum);\n return none(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nexport function sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(series) {\n return ascending(series).reverse();\n}\n","import appearance from \"./appearance.js\";\nimport {sum} from \"./ascending.js\";\n\nexport default function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n return none(series).reverse();\n}\n","import constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = data.length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","export default function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}\n","import {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function() {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","export {default as timeFormatDefaultLocale, timeFormat, timeParse, utcFormat, utcParse} from \"./defaultLocale.js\";\nexport {default as timeFormatLocale} from \"./locale.js\";\nexport {default as isoFormat} from \"./isoFormat.js\";\nexport {default as isoParse} from \"./isoParse.js\";\n","import {utcFormat} from \"./defaultLocale.js\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : utcFormat(isoSpecifier);\n\nexport default formatIso;\n","import {isoSpecifier} from \"./isoFormat.js\";\nimport {utcParse} from \"./defaultLocale.js\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : utcParse(isoSpecifier);\n\nexport default parseIso;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","export {\n default as timeInterval\n} from \"./interval.js\";\n\nexport {\n default as timeMillisecond,\n milliseconds as timeMilliseconds,\n default as utcMillisecond,\n milliseconds as utcMilliseconds\n} from \"./millisecond.js\";\n\nexport {\n default as timeSecond,\n seconds as timeSeconds,\n default as utcSecond,\n seconds as utcSeconds\n} from \"./second.js\";\n\nexport {\n default as timeMinute,\n minutes as timeMinutes\n} from \"./minute.js\";\n\nexport {\n default as timeHour,\n hours as timeHours\n} from \"./hour.js\";\n\nexport {\n default as timeDay,\n days as timeDays\n} from \"./day.js\";\n\nexport {\n sunday as timeWeek,\n sundays as timeWeeks,\n sunday as timeSunday,\n sundays as timeSundays,\n monday as timeMonday,\n mondays as timeMondays,\n tuesday as timeTuesday,\n tuesdays as timeTuesdays,\n wednesday as timeWednesday,\n wednesdays as timeWednesdays,\n thursday as timeThursday,\n thursdays as timeThursdays,\n friday as timeFriday,\n fridays as timeFridays,\n saturday as timeSaturday,\n saturdays as timeSaturdays\n} from \"./week.js\";\n\nexport {\n default as timeMonth,\n months as timeMonths\n} from \"./month.js\";\n\nexport {\n default as timeYear,\n years as timeYears\n} from \"./year.js\";\n\nexport {\n default as utcMinute,\n utcMinutes as utcMinutes\n} from \"./utcMinute.js\";\n\nexport {\n default as utcHour,\n utcHours as utcHours\n} from \"./utcHour.js\";\n\nexport {\n default as utcDay,\n utcDays as utcDays\n} from \"./utcDay.js\";\n\nexport {\n utcSunday as utcWeek,\n utcSundays as utcWeeks,\n utcSunday as utcSunday,\n utcSundays as utcSundays,\n utcMonday as utcMonday,\n utcMondays as utcMondays,\n utcTuesday as utcTuesday,\n utcTuesdays as utcTuesdays,\n utcWednesday as utcWednesday,\n utcWednesdays as utcWednesdays,\n utcThursday as utcThursday,\n utcThursdays as utcThursdays,\n utcFriday as utcFriday,\n utcFridays as utcFridays,\n utcSaturday as utcSaturday,\n utcSaturdays as utcSaturdays\n} from \"./utcWeek.js\";\n\nexport {\n default as utcMonth,\n utcMonths as utcMonths\n} from \"./utcMonth.js\";\n\nexport {\n default as utcYear,\n utcYears as utcYears\n} from \"./utcYear.js\";\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","export {\n now,\n timer,\n timerFlush\n} from \"./timer.js\";\n\nexport {\n default as timeout\n} from \"./timeout.js\";\n\nexport {\n default as interval\n} from \"./interval.js\";\n","import {Timer, now} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer, total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n delay = +delay, time = time == null ? now() : +time;\n t.restart(function tick(elapsed) {\n elapsed += total;\n t.restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n return t;\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Transition} from \"./transition/index.js\";\nimport {SCHEDULED} from \"./transition/schedule.js\";\n\nvar root = [null];\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n}\n","import \"./selection/index.js\";\nexport {default as transition} from \"./transition/index.js\";\nexport {default as active} from \"./active.js\";\nexport {default as interrupt} from \"./interrupt.js\";\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n });\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n end: transition_end\n};\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {createCell} from \"./Cell\";\nimport {attachCircle, detachCircle} from \"./Circle\";\nimport {createEdge, setEdgeEnd} from \"./Edge\";\nimport {beaches, epsilon} from \"./Diagram\";\n\nvar beachPool = [];\n\nfunction Beach() {\n RedBlackNode(this);\n this.edge =\n this.site =\n this.circle = null;\n}\n\nfunction createBeach(site) {\n var beach = beachPool.pop() || new Beach;\n beach.site = site;\n return beach;\n}\n\nfunction detachBeach(beach) {\n detachCircle(beach);\n beaches.remove(beach);\n beachPool.push(beach);\n RedBlackNode(beach);\n}\n\nexport function removeBeach(beach) {\n var circle = beach.circle,\n x = circle.x,\n y = circle.cy,\n vertex = [x, y],\n previous = beach.P,\n next = beach.N,\n disappearing = [beach];\n\n detachBeach(beach);\n\n var lArc = previous;\n while (lArc.circle\n && Math.abs(x - lArc.circle.x) < epsilon\n && Math.abs(y - lArc.circle.cy) < epsilon) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n detachBeach(lArc);\n lArc = previous;\n }\n\n disappearing.unshift(lArc);\n detachCircle(lArc);\n\n var rArc = next;\n while (rArc.circle\n && Math.abs(x - rArc.circle.x) < epsilon\n && Math.abs(y - rArc.circle.cy) < epsilon) {\n next = rArc.N;\n disappearing.push(rArc);\n detachBeach(rArc);\n rArc = next;\n }\n\n disappearing.push(rArc);\n detachCircle(rArc);\n\n var nArcs = disappearing.length,\n iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n setEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = createEdge(lArc.site, rArc.site, null, vertex);\n\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nexport function addBeach(site) {\n var x = site[0],\n directrix = site[1],\n lArc,\n rArc,\n dxl,\n dxr,\n node = beaches._;\n\n while (node) {\n dxl = leftBreakPoint(node, directrix) - x;\n if (dxl > epsilon) node = node.L; else {\n dxr = x - rightBreakPoint(node, directrix);\n if (dxr > epsilon) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -epsilon) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -epsilon) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n\n createCell(site);\n var newArc = createBeach(site);\n beaches.insert(lArc, newArc);\n\n if (!lArc && !rArc) return;\n\n if (lArc === rArc) {\n detachCircle(lArc);\n rArc = createBeach(lArc.site);\n beaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = createEdge(lArc.site, newArc.site);\n attachCircle(lArc);\n attachCircle(rArc);\n return;\n }\n\n if (!rArc) { // && lArc\n newArc.edge = createEdge(lArc.site, newArc.site);\n return;\n }\n\n // else lArc !== rArc\n detachCircle(lArc);\n detachCircle(rArc);\n\n var lSite = lArc.site,\n ax = lSite[0],\n ay = lSite[1],\n bx = site[0] - ax,\n by = site[1] - ay,\n rSite = rArc.site,\n cx = rSite[0] - ax,\n cy = rSite[1] - ay,\n d = 2 * (bx * cy - by * cx),\n hb = bx * bx + by * by,\n hc = cx * cx + cy * cy,\n vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];\n\n setEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = createEdge(lSite, site, null, vertex);\n rArc.edge = createEdge(site, rSite, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nfunction leftBreakPoint(arc, directrix) {\n var site = arc.site,\n rfocx = site[0],\n rfocy = site[1],\n pby2 = rfocy - directrix;\n\n if (!pby2) return rfocx;\n\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n\n site = lArc.site;\n var lfocx = site[0],\n lfocy = site[1],\n plby2 = lfocy - directrix;\n\n if (!plby2) return lfocx;\n\n var hl = lfocx - rfocx,\n aby2 = 1 / pby2 - 1 / plby2,\n b = hl / plby2;\n\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n\n return (rfocx + lfocx) / 2;\n}\n\nfunction rightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return leftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site[1] === directrix ? site[0] : Infinity;\n}\n","import {createBorderEdge} from \"./Edge\";\nimport {cells, edges, epsilon} from \"./Diagram\";\n\nexport function createCell(site) {\n return cells[site.index] = {\n site: site,\n halfedges: []\n };\n}\n\nfunction cellHalfedgeAngle(cell, edge) {\n var site = cell.site,\n va = edge.left,\n vb = edge.right;\n if (site === vb) vb = va, va = site;\n if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);\n if (site === va) va = edge[1], vb = edge[0];\n else va = edge[0], vb = edge[1];\n return Math.atan2(va[0] - vb[0], vb[1] - va[1]);\n}\n\nexport function cellHalfedgeStart(cell, edge) {\n return edge[+(edge.left !== cell.site)];\n}\n\nexport function cellHalfedgeEnd(cell, edge) {\n return edge[+(edge.left === cell.site)];\n}\n\nexport function sortCellHalfedges() {\n for (var i = 0, n = cells.length, cell, halfedges, j, m; i < n; ++i) {\n if ((cell = cells[i]) && (m = (halfedges = cell.halfedges).length)) {\n var index = new Array(m),\n array = new Array(m);\n for (j = 0; j < m; ++j) index[j] = j, array[j] = cellHalfedgeAngle(cell, edges[halfedges[j]]);\n index.sort(function(i, j) { return array[j] - array[i]; });\n for (j = 0; j < m; ++j) array[j] = halfedges[index[j]];\n for (j = 0; j < m; ++j) halfedges[j] = array[j];\n }\n }\n}\n\nexport function clipCells(x0, y0, x1, y1) {\n var nCells = cells.length,\n iCell,\n cell,\n site,\n iHalfedge,\n halfedges,\n nHalfedges,\n start,\n startX,\n startY,\n end,\n endX,\n endY,\n cover = true;\n\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n halfedges = cell.halfedges;\n iHalfedge = halfedges.length;\n\n // Remove any dangling clipped edges.\n while (iHalfedge--) {\n if (!edges[halfedges[iHalfedge]]) {\n halfedges.splice(iHalfedge, 1);\n }\n }\n\n // Insert any border edges as necessary.\n iHalfedge = 0, nHalfedges = halfedges.length;\n while (iHalfedge < nHalfedges) {\n end = cellHalfedgeEnd(cell, edges[halfedges[iHalfedge]]), endX = end[0], endY = end[1];\n start = cellHalfedgeStart(cell, edges[halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];\n if (Math.abs(endX - startX) > epsilon || Math.abs(endY - startY) > epsilon) {\n halfedges.splice(iHalfedge, 0, edges.push(createBorderEdge(site, end,\n Math.abs(endX - x0) < epsilon && y1 - endY > epsilon ? [x0, Math.abs(startX - x0) < epsilon ? startY : y1]\n : Math.abs(endY - y1) < epsilon && x1 - endX > epsilon ? [Math.abs(startY - y1) < epsilon ? startX : x1, y1]\n : Math.abs(endX - x1) < epsilon && endY - y0 > epsilon ? [x1, Math.abs(startX - x1) < epsilon ? startY : y0]\n : Math.abs(endY - y0) < epsilon && endX - x0 > epsilon ? [Math.abs(startY - y0) < epsilon ? startX : x0, y0]\n : null)) - 1);\n ++nHalfedges;\n }\n }\n\n if (nHalfedges) cover = false;\n }\n }\n\n // If there weren’t any edges, have the closest site cover the extent.\n // It doesn’t matter which corner of the extent we measure!\n if (cover) {\n var dx, dy, d2, dc = Infinity;\n\n for (iCell = 0, cover = null; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n dx = site[0] - x0;\n dy = site[1] - y0;\n d2 = dx * dx + dy * dy;\n if (d2 < dc) dc = d2, cover = cell;\n }\n }\n\n if (cover) {\n var v00 = [x0, y0], v01 = [x0, y1], v11 = [x1, y1], v10 = [x1, y0];\n cover.halfedges.push(\n edges.push(createBorderEdge(site = cover.site, v00, v01)) - 1,\n edges.push(createBorderEdge(site, v01, v11)) - 1,\n edges.push(createBorderEdge(site, v11, v10)) - 1,\n edges.push(createBorderEdge(site, v10, v00)) - 1\n );\n }\n }\n\n // Lastly delete any cells with no edges; these were entirely clipped.\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n if (!cell.halfedges.length) {\n delete cells[iCell];\n }\n }\n }\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {circles, epsilon2} from \"./Diagram\";\n\nvar circlePool = [];\n\nexport var firstCircle;\n\nfunction Circle() {\n RedBlackNode(this);\n this.x =\n this.y =\n this.arc =\n this.site =\n this.cy = null;\n}\n\nexport function attachCircle(arc) {\n var lArc = arc.P,\n rArc = arc.N;\n\n if (!lArc || !rArc) return;\n\n var lSite = lArc.site,\n cSite = arc.site,\n rSite = rArc.site;\n\n if (lSite === rSite) return;\n\n var bx = cSite[0],\n by = cSite[1],\n ax = lSite[0] - bx,\n ay = lSite[1] - by,\n cx = rSite[0] - bx,\n cy = rSite[1] - by;\n\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -epsilon2) return;\n\n var ha = ax * ax + ay * ay,\n hc = cx * cx + cy * cy,\n x = (cy * ha - ay * hc) / d,\n y = (ax * hc - cx * ha) / d;\n\n var circle = circlePool.pop() || new Circle;\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom\n\n arc.circle = circle;\n\n var before = null,\n node = circles._;\n\n while (node) {\n if (circle.y < node.y || (circle.y === node.y && circle.x <= node.x)) {\n if (node.L) node = node.L;\n else { before = node.P; break; }\n } else {\n if (node.R) node = node.R;\n else { before = node; break; }\n }\n }\n\n circles.insert(before, circle);\n if (!before) firstCircle = circle;\n}\n\nexport function detachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) firstCircle = circle.N;\n circles.remove(circle);\n circlePool.push(circle);\n RedBlackNode(circle);\n arc.circle = null;\n }\n}\n","import {addBeach, removeBeach} from \"./Beach\";\nimport {sortCellHalfedges, cellHalfedgeStart, clipCells} from \"./Cell\";\nimport {firstCircle} from \"./Circle\";\nimport {clipEdges} from \"./Edge\";\nimport RedBlackTree from \"./RedBlackTree\";\n\nexport var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var beaches;\nexport var cells;\nexport var circles;\nexport var edges;\n\nfunction triangleArea(a, b, c) {\n return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);\n}\n\nfunction lexicographic(a, b) {\n return b[1] - a[1]\n || b[0] - a[0];\n}\n\nexport default function Diagram(sites, extent) {\n var site = sites.sort(lexicographic).pop(),\n x,\n y,\n circle;\n\n edges = [];\n cells = new Array(sites.length);\n beaches = new RedBlackTree;\n circles = new RedBlackTree;\n\n while (true) {\n circle = firstCircle;\n if (site && (!circle || site[1] < circle.y || (site[1] === circle.y && site[0] < circle.x))) {\n if (site[0] !== x || site[1] !== y) {\n addBeach(site);\n x = site[0], y = site[1];\n }\n site = sites.pop();\n } else if (circle) {\n removeBeach(circle.arc);\n } else {\n break;\n }\n }\n\n sortCellHalfedges();\n\n if (extent) {\n var x0 = +extent[0][0],\n y0 = +extent[0][1],\n x1 = +extent[1][0],\n y1 = +extent[1][1];\n clipEdges(x0, y0, x1, y1);\n clipCells(x0, y0, x1, y1);\n }\n\n this.edges = edges;\n this.cells = cells;\n\n beaches =\n circles =\n edges =\n cells = null;\n}\n\nDiagram.prototype = {\n constructor: Diagram,\n\n polygons: function() {\n var edges = this.edges;\n\n return this.cells.map(function(cell) {\n var polygon = cell.halfedges.map(function(i) { return cellHalfedgeStart(cell, edges[i]); });\n polygon.data = cell.site.data;\n return polygon;\n });\n },\n\n triangles: function() {\n var triangles = [],\n edges = this.edges;\n\n this.cells.forEach(function(cell, i) {\n if (!(m = (halfedges = cell.halfedges).length)) return;\n var site = cell.site,\n halfedges,\n j = -1,\n m,\n s0,\n e1 = edges[halfedges[m - 1]],\n s1 = e1.left === site ? e1.right : e1.left;\n\n while (++j < m) {\n s0 = s1;\n e1 = edges[halfedges[j]];\n s1 = e1.left === site ? e1.right : e1.left;\n if (s0 && s1 && i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {\n triangles.push([site.data, s0.data, s1.data]);\n }\n }\n });\n\n return triangles;\n },\n\n links: function() {\n return this.edges.filter(function(edge) {\n return edge.right;\n }).map(function(edge) {\n return {\n source: edge.left.data,\n target: edge.right.data\n };\n });\n },\n\n find: function(x, y, radius) {\n var that = this, i0, i1 = that._found || 0, n = that.cells.length, cell;\n\n // Use the previously-found cell, or start with an arbitrary one.\n while (!(cell = that.cells[i1])) if (++i1 >= n) return null;\n var dx = x - cell.site[0], dy = y - cell.site[1], d2 = dx * dx + dy * dy;\n\n // Traverse the half-edges to find a closer cell, if any.\n do {\n cell = that.cells[i0 = i1], i1 = null;\n cell.halfedges.forEach(function(e) {\n var edge = that.edges[e], v = edge.left;\n if ((v === cell.site || !v) && !(v = edge.right)) return;\n var vx = x - v[0], vy = y - v[1], v2 = vx * vx + vy * vy;\n if (v2 < d2) d2 = v2, i1 = v.index;\n });\n } while (i1 !== null);\n\n that._found = i0;\n\n return radius == null || d2 <= radius * radius ? cell.site : null;\n }\n}\n","import {cells, edges, epsilon} from \"./Diagram\";\n\nexport function createEdge(left, right, v0, v1) {\n var edge = [null, null],\n index = edges.push(edge) - 1;\n edge.left = left;\n edge.right = right;\n if (v0) setEdgeEnd(edge, left, right, v0);\n if (v1) setEdgeEnd(edge, right, left, v1);\n cells[left.index].halfedges.push(index);\n cells[right.index].halfedges.push(index);\n return edge;\n}\n\nexport function createBorderEdge(left, v0, v1) {\n var edge = [v0, v1];\n edge.left = left;\n return edge;\n}\n\nexport function setEdgeEnd(edge, left, right, vertex) {\n if (!edge[0] && !edge[1]) {\n edge[0] = vertex;\n edge.left = left;\n edge.right = right;\n } else if (edge.left === right) {\n edge[1] = vertex;\n } else {\n edge[0] = vertex;\n }\n}\n\n// Liang–Barsky line clipping.\nfunction clipEdge(edge, x0, y0, x1, y1) {\n var a = edge[0],\n b = edge[1],\n ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (!(t0 > 0) && !(t1 < 1)) return true; // TODO Better check?\n\n if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];\n if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];\n return true;\n}\n\nfunction connectEdge(edge, x0, y0, x1, y1) {\n var v1 = edge[1];\n if (v1) return true;\n\n var v0 = edge[0],\n left = edge.left,\n right = edge.right,\n lx = left[0],\n ly = left[1],\n rx = right[0],\n ry = right[1],\n fx = (lx + rx) / 2,\n fy = (ly + ry) / 2,\n fm,\n fb;\n\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!v0) v0 = [fx, y0];\n else if (v0[1] >= y1) return;\n v1 = [fx, y1];\n } else {\n if (!v0) v0 = [fx, y1];\n else if (v0[1] < y0) return;\n v1 = [fx, y0];\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!v0) v0 = [(y0 - fb) / fm, y0];\n else if (v0[1] >= y1) return;\n v1 = [(y1 - fb) / fm, y1];\n } else {\n if (!v0) v0 = [(y1 - fb) / fm, y1];\n else if (v0[1] < y0) return;\n v1 = [(y0 - fb) / fm, y0];\n }\n } else {\n if (ly < ry) {\n if (!v0) v0 = [x0, fm * x0 + fb];\n else if (v0[0] >= x1) return;\n v1 = [x1, fm * x1 + fb];\n } else {\n if (!v0) v0 = [x1, fm * x1 + fb];\n else if (v0[0] < x0) return;\n v1 = [x0, fm * x0 + fb];\n }\n }\n }\n\n edge[0] = v0;\n edge[1] = v1;\n return true;\n}\n\nexport function clipEdges(x0, y0, x1, y1) {\n var i = edges.length,\n edge;\n\n while (i--) {\n if (!connectEdge(edge = edges[i], x0, y0, x1, y1)\n || !clipEdge(edge, x0, y0, x1, y1)\n || !(Math.abs(edge[0][0] - edge[1][0]) > epsilon\n || Math.abs(edge[0][1] - edge[1][1]) > epsilon)) {\n delete edges[i];\n }\n }\n}\n","function RedBlackTree() {\n this._ = null; // root node\n}\n\nexport function RedBlackNode(node) {\n node.U = // parent node\n node.C = // color - true for red, false for black\n node.L = // left node\n node.R = // right node\n node.P = // previous node\n node.N = null; // next node\n}\n\nRedBlackTree.prototype = {\n constructor: RedBlackTree,\n\n insert: function(after, node) {\n var parent, grandpa, uncle;\n\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = RedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n RedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n RedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n\n remove: function(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n\n var parent = node.U,\n sibling,\n left = node.L,\n right = node.R,\n next,\n red;\n\n if (!left) next = right;\n else if (!right) next = left;\n else next = RedBlackFirst(right);\n\n if (parent) {\n if (parent.L === node) parent.L = next;\n else parent.R = next;\n } else {\n this._ = next;\n }\n\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) { node.C = false; return; }\n\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n RedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n RedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n RedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n RedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n\n if (node) node.C = false;\n }\n};\n\nfunction RedBlackRotateLeft(tree, node) {\n var p = node,\n q = node.R,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n}\n\nfunction RedBlackRotateRight(tree, node) {\n var p = node,\n q = node.L,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n}\n\nfunction RedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n}\n\nexport default RedBlackTree;\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export {default as voronoi} from \"./voronoi\";\n","export function x(d) {\n return d[0];\n}\n\nexport function y(d) {\n return d[1];\n}\n","import constant from \"./constant\";\nimport {x as pointX, y as pointY} from \"./point\";\nimport Diagram, {epsilon} from \"./Diagram\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n extent = null;\n\n function voronoi(data) {\n return new Diagram(data.map(function(d, i) {\n var s = [Math.round(x(d, i, data) / epsilon) * epsilon, Math.round(y(d, i, data) / epsilon) * epsilon];\n s.index = i;\n s.data = d;\n return s;\n }), extent);\n }\n\n voronoi.polygons = function(data) {\n return voronoi(data).polygons();\n };\n\n voronoi.links = function(data) {\n return voronoi(data).links();\n };\n\n voronoi.triangles = function(data) {\n return voronoi(data).triangles();\n };\n\n voronoi.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), voronoi) : x;\n };\n\n voronoi.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), voronoi) : y;\n };\n\n voronoi.extent = function(_) {\n return arguments.length ? (extent = _ == null ? null : [[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]], voronoi) : extent && [[extent[0][0], extent[0][1]], [extent[1][0], extent[1][1]]];\n };\n\n voronoi.size = function(_) {\n return arguments.length ? (extent = _ == null ? null : [[0, 0], [+_[0], +_[1]]], voronoi) : extent && [extent[1][0] - extent[0][0], extent[1][1] - extent[0][1]];\n };\n\n return voronoi;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function ZoomEvent(target, type, transform) {\n this.target = target;\n this.type = type;\n this.transform = transform;\n}\n","export {default as zoom} from \"./zoom.js\";\nexport {default as zoomTransform, identity as zoomIdentity} from \"./transform.js\";\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta() {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled)\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p);\n };\n\n zoom.scaleTo = function(selection, k, p) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p);\n };\n\n zoom.translateBy = function(selection, x, y) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n });\n };\n\n zoom.translateTo = function(selection, x, y, p) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n customEvent(new ZoomEvent(zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function wheeled() {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, arguments),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = mouse(this);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent();\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, arguments, true),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = mouse(this),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation();\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved() {\n noevent();\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = mouse(g.that), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped() {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent();\n g.end();\n }\n }\n\n function dblclicked() {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = mouse(this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments), translateExtent);\n\n noevent();\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0);\n else select(this).call(zoom.transform, t1);\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, arguments, event.changedTouches.length === n),\n started, i, t, p;\n\n nopropagation();\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved() {\n if (!this.__zooming) return;\n var g = gesture(this, arguments),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent();\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n g.taps = 0;\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended() {\n if (!this.__zooming) return;\n var g = gesture(this, arguments),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation();\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n return zoom;\n}\n","export var name = \"d3\";\nexport var version = \"5.15.0\";\nexport var description = \"Data-Driven Documents\";\nexport var keywords = [\"dom\",\"visualization\",\"svg\",\"animation\",\"canvas\"];\nexport var homepage = \"https://d3js.org\";\nexport var license = \"BSD-3-Clause\";\nexport var author = {\"name\":\"Mike Bostock\",\"url\":\"https://bost.ocks.org/mike\"};\nexport var main = \"dist/d3.node.js\";\nexport var unpkg = \"dist/d3.min.js\";\nexport var jsdelivr = \"dist/d3.min.js\";\nexport var module = \"index.js\";\nexport var repository = {\"type\":\"git\",\"url\":\"https://github.com/d3/d3.git\"};\nexport var files = [\"dist/**/*.js\",\"index.js\"];\nexport var scripts = {\"pretest\":\"rimraf dist && mkdir dist && json2module package.json > dist/package.js && rollup -c\",\"test\":\"tape 'test/**/*-test.js'\",\"prepublishOnly\":\"yarn test\",\"postpublish\":\"git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3/dist/d3.js d3.v5.js && cp ../d3/dist/d3.min.js d3.v5.min.js && git add d3.v5.js d3.v5.min.js && git commit -m \\\"d3 ${npm_package_version}\\\" && git push && cd - && cd ../d3-bower && git pull && cp ../d3/LICENSE ../d3/README.md ../d3/dist/d3.js ../d3/dist/d3.min.js . && git add -- LICENSE README.md d3.js d3.min.js && git commit -m \\\"${npm_package_version}\\\" && git tag -am \\\"${npm_package_version}\\\" v${npm_package_version} && git push && git push --tags && cd - && zip -j dist/d3.zip -- LICENSE README.md API.md CHANGES.md dist/d3.js dist/d3.min.js\"};\nexport var devDependencies = {\"json2module\":\"0.0\",\"rimraf\":\"2\",\"rollup\":\"1\",\"rollup-plugin-ascii\":\"0.0\",\"rollup-plugin-node-resolve\":\"3\",\"rollup-plugin-terser\":\"5\",\"tape\":\"4\"};\nexport var dependencies = {\"d3-array\":\"1\",\"d3-axis\":\"1\",\"d3-brush\":\"1\",\"d3-chord\":\"1\",\"d3-collection\":\"1\",\"d3-color\":\"1\",\"d3-contour\":\"1\",\"d3-dispatch\":\"1\",\"d3-drag\":\"1\",\"d3-dsv\":\"1\",\"d3-ease\":\"1\",\"d3-fetch\":\"1\",\"d3-force\":\"1\",\"d3-format\":\"1\",\"d3-geo\":\"1\",\"d3-hierarchy\":\"1\",\"d3-interpolate\":\"1\",\"d3-path\":\"1\",\"d3-polygon\":\"1\",\"d3-quadtree\":\"1\",\"d3-random\":\"1\",\"d3-scale\":\"2\",\"d3-scale-chromatic\":\"1\",\"d3-selection\":\"1\",\"d3-shape\":\"1\",\"d3-time\":\"1\",\"d3-time-format\":\"2\",\"d3-timer\":\"1\",\"d3-transition\":\"1\",\"d3-voronoi\":\"1\",\"d3-zoom\":\"1\"};\n","export {version} from \"./dist/package.js\";\nexport * from \"d3-array\";\nexport * from \"d3-axis\";\nexport * from \"d3-brush\";\nexport * from \"d3-chord\";\nexport * from \"d3-collection\";\nexport * from \"d3-color\";\nexport * from \"d3-contour\";\nexport * from \"d3-dispatch\";\nexport * from \"d3-drag\";\nexport * from \"d3-dsv\";\nexport * from \"d3-ease\";\nexport * from \"d3-fetch\";\nexport * from \"d3-force\";\nexport * from \"d3-format\";\nexport * from \"d3-geo\";\nexport * from \"d3-hierarchy\";\nexport * from \"d3-interpolate\";\nexport * from \"d3-path\";\nexport * from \"d3-polygon\";\nexport * from \"d3-quadtree\";\nexport * from \"d3-random\";\nexport * from \"d3-scale\";\nexport * from \"d3-scale-chromatic\";\nexport * from \"d3-selection\";\nexport * from \"d3-shape\";\nexport * from \"d3-time\";\nexport * from \"d3-time-format\";\nexport * from \"d3-timer\";\nexport * from \"d3-transition\";\nexport * from \"d3-voronoi\";\nexport * from \"d3-zoom\";\n","/**\n * @license\n * Copyright (c) 2012-2013 Chris Pettitt\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nmodule.exports = {\n graphlib: require(\"./lib/graphlib\"),\n dagre: require(\"./lib/dagre\"),\n intersect: require(\"./lib/intersect\"),\n render: require(\"./lib/render\"),\n util: require(\"./lib/util\"),\n version: require(\"./lib/version\")\n};\n","var util = require(\"./util\");\n\nmodule.exports = {\n \"default\": normal,\n \"normal\": normal,\n \"vee\": vee,\n \"undirected\": undirected\n};\n\nfunction normal(parent, id, edge, type) {\n var marker = parent.append(\"marker\")\n .attr(\"id\", id)\n .attr(\"viewBox\", \"0 0 10 10\")\n .attr(\"refX\", 9)\n .attr(\"refY\", 5)\n .attr(\"markerUnits\", \"strokeWidth\")\n .attr(\"markerWidth\", 8)\n .attr(\"markerHeight\", 6)\n .attr(\"orient\", \"auto\");\n\n var path = marker.append(\"path\")\n .attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\")\n .style(\"stroke-width\", 1)\n .style(\"stroke-dasharray\", \"1,0\");\n util.applyStyle(path, edge[type + \"Style\"]);\n if (edge[type + \"Class\"]) {\n path.attr(\"class\", edge[type + \"Class\"]);\n }\n}\n\nfunction vee(parent, id, edge, type) {\n var marker = parent.append(\"marker\")\n .attr(\"id\", id)\n .attr(\"viewBox\", \"0 0 10 10\")\n .attr(\"refX\", 9)\n .attr(\"refY\", 5)\n .attr(\"markerUnits\", \"strokeWidth\")\n .attr(\"markerWidth\", 8)\n .attr(\"markerHeight\", 6)\n .attr(\"orient\", \"auto\");\n\n var path = marker.append(\"path\")\n .attr(\"d\", \"M 0 0 L 10 5 L 0 10 L 4 5 z\")\n .style(\"stroke-width\", 1)\n .style(\"stroke-dasharray\", \"1,0\");\n util.applyStyle(path, edge[type + \"Style\"]);\n if (edge[type + \"Class\"]) {\n path.attr(\"class\", edge[type + \"Class\"]);\n }\n}\n\nfunction undirected(parent, id, edge, type) {\n var marker = parent.append(\"marker\")\n .attr(\"id\", id)\n .attr(\"viewBox\", \"0 0 10 10\")\n .attr(\"refX\", 9)\n .attr(\"refY\", 5)\n .attr(\"markerUnits\", \"strokeWidth\")\n .attr(\"markerWidth\", 8)\n .attr(\"markerHeight\", 6)\n .attr(\"orient\", \"auto\");\n\n var path = marker.append(\"path\")\n .attr(\"d\", \"M 0 5 L 10 5\")\n .style(\"stroke-width\", 1)\n .style(\"stroke-dasharray\", \"1,0\");\n util.applyStyle(path, edge[type + \"Style\"]);\n if (edge[type + \"Class\"]) {\n path.attr(\"class\", edge[type + \"Class\"]);\n }\n}\n","var util = require(\"./util\");\nvar d3 = require(\"./d3\");\nvar addLabel = require(\"./label/add-label\");\n\nmodule.exports = createClusters;\n\nfunction createClusters(selection, g) {\n var clusters = g.nodes().filter(function(v) { return util.isSubgraph(g, v); });\n var svgClusters = selection.selectAll(\"g.cluster\")\n .data(clusters, function(v) { return v; });\n\n svgClusters.selectAll(\"*\").remove();\n svgClusters.enter().append(\"g\")\n .attr(\"class\", \"cluster\")\n .attr(\"id\",function(v){\n var node = g.node(v);\n return node.id;\n })\n .style(\"opacity\", 0);\n \n svgClusters = selection.selectAll(\"g.cluster\");\n\n util.applyTransition(svgClusters, g)\n .style(\"opacity\", 1);\n\n svgClusters.each(function(v) {\n var node = g.node(v);\n var thisGroup = d3.select(this);\n d3.select(this).append(\"rect\");\n var labelGroup = thisGroup.append(\"g\").attr(\"class\", \"label\");\n addLabel(labelGroup, node, node.clusterLabelPos);\n });\n\n svgClusters.selectAll(\"rect\").each(function(c) {\n var node = g.node(c);\n var domCluster = d3.select(this);\n util.applyStyle(domCluster, node.style);\n });\n\n var exitSelection;\n\n if (svgClusters.exit) {\n exitSelection = svgClusters.exit();\n } else {\n exitSelection = svgClusters.selectAll(null); // empty selection\n }\n\n util.applyTransition(exitSelection, g)\n .style(\"opacity\", 0)\n .remove();\n\n return svgClusters;\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar addLabel = require(\"./label/add-label\");\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\n\nmodule.exports = createEdgeLabels;\n\nfunction createEdgeLabels(selection, g) {\n var svgEdgeLabels = selection.selectAll(\"g.edgeLabel\")\n .data(g.edges(), function(e) { return util.edgeToId(e); })\n .classed(\"update\", true);\n\n svgEdgeLabels.exit().remove();\n svgEdgeLabels.enter().append(\"g\")\n .classed(\"edgeLabel\", true)\n .style(\"opacity\", 0);\n\n svgEdgeLabels = selection.selectAll(\"g.edgeLabel\");\n\n svgEdgeLabels.each(function(e) {\n var root = d3.select(this);\n root.select(\".label\").remove();\n var edge = g.edge(e);\n var label = addLabel(root, g.edge(e), 0, 0).classed(\"label\", true);\n var bbox = label.node().getBBox();\n\n if (edge.labelId) { label.attr(\"id\", edge.labelId); }\n if (!_.has(edge, \"width\")) { edge.width = bbox.width; }\n if (!_.has(edge, \"height\")) { edge.height = bbox.height; }\n });\n\n var exitSelection;\n\n if (svgEdgeLabels.exit) {\n exitSelection = svgEdgeLabels.exit();\n } else {\n exitSelection = svgEdgeLabels.selectAll(null); // empty selection\n }\n\n util.applyTransition(exitSelection, g)\n .style(\"opacity\", 0)\n .remove();\n\n return svgEdgeLabels;\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar intersectNode = require(\"./intersect/intersect-node\");\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\nmodule.exports = createEdgePaths;\n\nfunction createEdgePaths(selection, g, arrows) {\n var previousPaths = selection.selectAll(\"g.edgePath\")\n .data(g.edges(), function(e) { return util.edgeToId(e); })\n .classed(\"update\", true);\n\n var newPaths = enter(previousPaths, g);\n exit(previousPaths, g);\n\n var svgPaths = previousPaths.merge !== undefined ? previousPaths.merge(newPaths) : previousPaths;\n util.applyTransition(svgPaths, g)\n .style(\"opacity\", 1);\n\n // Save DOM element in the path group, and set ID and class\n svgPaths.each(function(e) {\n var domEdge = d3.select(this);\n var edge = g.edge(e);\n edge.elem = this;\n\n if (edge.id) {\n domEdge.attr(\"id\", edge.id);\n }\n\n util.applyClass(domEdge, edge[\"class\"],\n (domEdge.classed(\"update\") ? \"update \" : \"\") + \"edgePath\");\n });\n\n svgPaths.selectAll(\"path.path\")\n .each(function(e) {\n var edge = g.edge(e);\n edge.arrowheadId = _.uniqueId(\"arrowhead\");\n\n var domEdge = d3.select(this)\n .attr(\"marker-end\", function() {\n return \"url(\" + makeFragmentRef(location.href, edge.arrowheadId) + \")\";\n })\n .style(\"fill\", \"none\");\n\n util.applyTransition(domEdge, g)\n .attr(\"d\", function(e) { return calcPoints(g, e); });\n\n util.applyStyle(domEdge, edge.style);\n });\n\n svgPaths.selectAll(\"defs *\").remove();\n svgPaths.selectAll(\"defs\")\n .each(function(e) {\n var edge = g.edge(e);\n var arrowhead = arrows[edge.arrowhead];\n arrowhead(d3.select(this), edge.arrowheadId, edge, \"arrowhead\");\n });\n\n return svgPaths;\n}\n\nfunction makeFragmentRef(url, fragmentId) {\n var baseUrl = url.split(\"#\")[0];\n return baseUrl + \"#\" + fragmentId;\n}\n\nfunction calcPoints(g, e) {\n var edge = g.edge(e);\n var tail = g.node(e.v);\n var head = g.node(e.w);\n var points = edge.points.slice(1, edge.points.length - 1);\n points.unshift(intersectNode(tail, points[0]));\n points.push(intersectNode(head, points[points.length - 1]));\n\n return createLine(edge, points);\n}\n\nfunction createLine(edge, points) {\n var line = (d3.line || d3.svg.line)()\n .x(function(d) { return d.x; })\n .y(function(d) { return d.y; });\n \n (line.curve || line.interpolate)(edge.curve);\n\n return line(points);\n}\n\nfunction getCoords(elem) {\n var bbox = elem.getBBox();\n var matrix = elem.ownerSVGElement.getScreenCTM()\n .inverse()\n .multiply(elem.getScreenCTM())\n .translate(bbox.width / 2, bbox.height / 2);\n return { x: matrix.e, y: matrix.f };\n}\n\nfunction enter(svgPaths, g) {\n var svgPathsEnter = svgPaths.enter().append(\"g\")\n .attr(\"class\", \"edgePath\")\n .style(\"opacity\", 0);\n svgPathsEnter.append(\"path\")\n .attr(\"class\", \"path\")\n .attr(\"d\", function(e) {\n var edge = g.edge(e);\n var sourceElem = g.node(e.v).elem;\n var points = _.range(edge.points.length).map(function() { return getCoords(sourceElem); });\n return createLine(edge, points);\n });\n svgPathsEnter.append(\"defs\");\n return svgPathsEnter;\n}\n\nfunction exit(svgPaths, g) {\n var svgPathExit = svgPaths.exit();\n util.applyTransition(svgPathExit, g)\n .style(\"opacity\", 0)\n .remove();\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar addLabel = require(\"./label/add-label\");\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\n\nmodule.exports = createNodes;\n\nfunction createNodes(selection, g, shapes) {\n var simpleNodes = g.nodes().filter(function(v) { return !util.isSubgraph(g, v); });\n var svgNodes = selection.selectAll(\"g.node\")\n .data(simpleNodes, function(v) { return v; })\n .classed(\"update\", true);\n\n svgNodes.exit().remove();\n\n svgNodes.enter().append(\"g\")\n .attr(\"class\", \"node\")\n .style(\"opacity\", 0);\n\n svgNodes = selection.selectAll(\"g.node\"); \n\n svgNodes.each(function(v) {\n var node = g.node(v);\n var thisGroup = d3.select(this);\n util.applyClass(thisGroup, node[\"class\"],\n (thisGroup.classed(\"update\") ? \"update \" : \"\") + \"node\");\n\n thisGroup.select(\"g.label\").remove();\n var labelGroup = thisGroup.append(\"g\").attr(\"class\", \"label\");\n var labelDom = addLabel(labelGroup, node);\n var shape = shapes[node.shape];\n var bbox = _.pick(labelDom.node().getBBox(), \"width\", \"height\");\n\n node.elem = this;\n\n if (node.id) { thisGroup.attr(\"id\", node.id); }\n if (node.labelId) { labelGroup.attr(\"id\", node.labelId); }\n\n if (_.has(node, \"width\")) { bbox.width = node.width; }\n if (_.has(node, \"height\")) { bbox.height = node.height; }\n\n bbox.width += node.paddingLeft + node.paddingRight;\n bbox.height += node.paddingTop + node.paddingBottom;\n labelGroup.attr(\"transform\", \"translate(\" +\n ((node.paddingLeft - node.paddingRight) / 2) + \",\" +\n ((node.paddingTop - node.paddingBottom) / 2) + \")\");\n\n var root = d3.select(this);\n root.select(\".label-container\").remove();\n var shapeSvg = shape(root, bbox, node).classed(\"label-container\", true);\n util.applyStyle(shapeSvg, node.style);\n\n var shapeBBox = shapeSvg.node().getBBox();\n node.width = shapeBBox.width;\n node.height = shapeBBox.height;\n });\n\n var exitSelection;\n\n if (svgNodes.exit) {\n exitSelection = svgNodes.exit();\n } else {\n exitSelection = svgNodes.selectAll(null); // empty selection\n }\n\n util.applyTransition(exitSelection, g)\n .style(\"opacity\", 0)\n .remove();\n\n return svgNodes;\n}\n","// Stub to get D3 either via NPM or from the global object\nvar d3;\n\nif (!d3) {\n if (typeof require === \"function\") {\n try {\n d3 = require(\"d3\");\n }\n catch (e) {\n // continue regardless of error\n }\n }\n}\n\nif (!d3) {\n d3 = window.d3;\n}\n\nmodule.exports = d3;\n","/* global window */\n\nvar dagre;\n\nif (typeof require === \"function\") {\n try {\n dagre = require(\"dagre\");\n } catch (e) {\n // continue regardless of error\n }\n}\n\nif (!dagre) {\n dagre = window.dagre;\n}\n\nmodule.exports = dagre;\n","/* global window */\n\nvar graphlib;\n\nif (typeof require === \"function\") {\n try {\n graphlib = require(\"graphlib\");\n }\n catch (e) {\n // continue regardless of error\n }\n}\n\nif (!graphlib) {\n graphlib = window.graphlib;\n}\n\nmodule.exports = graphlib;\n","module.exports = {\n node: require(\"./intersect-node\"),\n circle: require(\"./intersect-circle\"),\n ellipse: require(\"./intersect-ellipse\"),\n polygon: require(\"./intersect-polygon\"),\n rect: require(\"./intersect-rect\")\n};\n","var intersectEllipse = require(\"./intersect-ellipse\");\n\nmodule.exports = intersectCircle;\n\nfunction intersectCircle(node, rx, point) {\n return intersectEllipse(node, rx, rx, point);\n}\n","module.exports = intersectEllipse;\n\nfunction intersectEllipse(node, rx, ry, point) {\n // Formulae from: http://mathworld.wolfram.com/Ellipse-LineIntersection.html\n\n var cx = node.x;\n var cy = node.y;\n\n var px = cx - point.x;\n var py = cy - point.y;\n\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n\n var dx = Math.abs(rx * ry * px / det);\n if (point.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs(rx * ry * py / det);\n if (point.y < cy) {\n dy = -dy;\n }\n\n return {x: cx + dx, y: cy + dy};\n}\n\n","module.exports = intersectLine;\n\n/*\n * Returns the point at which two lines, p and q, intersect or returns\n * undefined if they do not intersect.\n */\nfunction intersectLine(p1, p2, q1, q2) {\n // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994,\n // p7 and p473.\n\n var a1, a2, b1, b2, c1, c2;\n var r1, r2 , r3, r4;\n var denom, offset, num;\n var x, y;\n\n // Compute a1, b1, c1, where line joining points 1 and 2 is F(x,y) = a1 x +\n // b1 y + c1 = 0.\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = (p2.x * p1.y) - (p1.x * p2.y);\n\n // Compute r3 and r4.\n r3 = ((a1 * q1.x) + (b1 * q1.y) + c1);\n r4 = ((a1 * q2.x) + (b1 * q2.y) + c1);\n\n // Check signs of r3 and r4. If both point 3 and point 4 lie on\n // same side of line 1, the line segments do not intersect.\n if ((r3 !== 0) && (r4 !== 0) && sameSign(r3, r4)) {\n return /*DONT_INTERSECT*/;\n }\n\n // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = (q2.x * q1.y) - (q1.x * q2.y);\n\n // Compute r1 and r2\n r1 = (a2 * p1.x) + (b2 * p1.y) + c2;\n r2 = (a2 * p2.x) + (b2 * p2.y) + c2;\n\n // Check signs of r1 and r2. If both point 1 and point 2 lie\n // on same side of second line segment, the line segments do\n // not intersect.\n if ((r1 !== 0) && (r2 !== 0) && (sameSign(r1, r2))) {\n return /*DONT_INTERSECT*/;\n }\n\n // Line segments intersect: compute intersection point.\n denom = (a1 * b2) - (a2 * b1);\n if (denom === 0) {\n return /*COLLINEAR*/;\n }\n\n offset = Math.abs(denom / 2);\n\n // The denom/2 is to get rounding instead of truncating. It\n // is added or subtracted to the numerator, depending upon the\n // sign of the numerator.\n num = (b1 * c2) - (b2 * c1);\n x = (num < 0) ? ((num - offset) / denom) : ((num + offset) / denom);\n\n num = (a2 * c1) - (a1 * c2);\n y = (num < 0) ? ((num - offset) / denom) : ((num + offset) / denom);\n\n return { x: x, y: y };\n}\n\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n","module.exports = intersectNode;\n\nfunction intersectNode(node, point) {\n return node.intersect(point);\n}\n","/* eslint \"no-console\": off */\n\nvar intersectLine = require(\"./intersect-line\");\n\nmodule.exports = intersectPolygon;\n\n/*\n * Returns the point ({x, y}) at which the point argument intersects with the\n * node argument assuming that it has the shape specified by polygon.\n */\nfunction intersectPolygon(node, polyPoints, point) {\n var x1 = node.x;\n var y1 = node.y;\n\n var intersections = [];\n\n var minX = Number.POSITIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n polyPoints.forEach(function(entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n\n var left = x1 - node.width / 2 - minX;\n var top = y1 - node.height / 2 - minY;\n\n for (var i = 0; i < polyPoints.length; i++) {\n var p1 = polyPoints[i];\n var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n var intersect = intersectLine(node, point,\n {x: left + p1.x, y: top + p1.y}, {x: left + p2.x, y: top + p2.y});\n if (intersect) {\n intersections.push(intersect);\n }\n }\n\n if (!intersections.length) {\n console.log(\"NO INTERSECTION FOUND, RETURN NODE CENTER\", node);\n return node;\n }\n\n if (intersections.length > 1) {\n // More intersections, find the one nearest to edge end point\n intersections.sort(function(p, q) {\n var pdx = p.x - point.x;\n var pdy = p.y - point.y;\n var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n\n var qdx = q.x - point.x;\n var qdy = q.y - point.y;\n var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n\n return (distp < distq) ? -1 : (distp === distq ? 0 : 1);\n });\n }\n return intersections[0];\n}\n","module.exports = intersectRect;\n\nfunction intersectRect(node, point) {\n var x = node.x;\n var y = node.y;\n\n // Rectangle intersection algorithm from:\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n var dx = point.x - x;\n var dy = point.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n // Intersection is top or bottom of rect.\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : h * dx / dy;\n sy = h;\n } else {\n // Intersection is left or right of rect.\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : w * dy / dx;\n }\n\n return {x: x + sx, y: y + sy};\n}\n","var util = require(\"../util\");\n\nmodule.exports = addHtmlLabel;\n\nfunction addHtmlLabel(root, node) {\n var fo = root\n .append(\"foreignObject\")\n .attr(\"width\", \"100000\");\n\n var div = fo\n .append(\"xhtml:div\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n\n var label = node.label;\n switch(typeof label) {\n case \"function\":\n div.insert(label);\n break;\n case \"object\":\n // Currently we assume this is a DOM object.\n div.insert(function() { return label; });\n break;\n default: div.html(label);\n }\n\n util.applyStyle(div, node.labelStyle);\n div.style(\"display\", \"inline-block\");\n // Fix for firefox\n div.style(\"white-space\", \"nowrap\");\n\n var client = div.node().getBoundingClientRect();\n fo\n .attr(\"width\", client.width)\n .attr(\"height\", client.height); \n\n return fo;\n}\n","var addTextLabel = require(\"./add-text-label\");\nvar addHtmlLabel = require(\"./add-html-label\");\nvar addSVGLabel = require(\"./add-svg-label\");\n\nmodule.exports = addLabel;\n\nfunction addLabel(root, node, location) {\n var label = node.label;\n var labelSvg = root.append(\"g\");\n\n // Allow the label to be a string, a function that returns a DOM element, or\n // a DOM element itself.\n if (node.labelType === \"svg\") {\n addSVGLabel(labelSvg, node);\n } else if (typeof label !== \"string\" || node.labelType === \"html\") {\n addHtmlLabel(labelSvg, node);\n } else {\n addTextLabel(labelSvg, node);\n }\n\n var labelBBox = labelSvg.node().getBBox();\n var y;\n switch(location) {\n case \"top\":\n y = (-node.height / 2);\n break;\n case \"bottom\":\n y = (node.height / 2) - labelBBox.height;\n break;\n default:\n y = (-labelBBox.height / 2);\n }\n labelSvg.attr(\n \"transform\",\n \"translate(\" + (-labelBBox.width / 2) + \",\" + y + \")\");\n\n return labelSvg;\n}\n","var util = require(\"../util\");\n\nmodule.exports = addSVGLabel;\n\nfunction addSVGLabel(root, node) {\n var domNode = root;\n\n domNode.node().appendChild(node.label);\n\n util.applyStyle(domNode, node.labelStyle);\n\n return domNode;\n}\n","var util = require(\"../util\");\n\nmodule.exports = addTextLabel;\n\n/*\n * Attaches a text label to the specified root. Handles escape sequences.\n */\nfunction addTextLabel(root, node) {\n var domNode = root.append(\"text\");\n\n var lines = processEscapeSequences(node.label).split(\"\\n\");\n for (var i = 0; i < lines.length; i++) {\n domNode.append(\"tspan\")\n .attr(\"xml:space\", \"preserve\")\n .attr(\"dy\", \"1em\")\n .attr(\"x\", \"1\")\n .text(lines[i]);\n }\n\n util.applyStyle(domNode, node.labelStyle);\n\n return domNode;\n}\n\nfunction processEscapeSequences(text) {\n var newText = \"\";\n var escaped = false;\n var ch;\n for (var i = 0; i < text.length; ++i) {\n ch = text[i];\n if (escaped) {\n switch(ch) {\n case \"n\": newText += \"\\n\"; break;\n default: newText += ch;\n }\n escaped = false;\n } else if (ch === \"\\\\\") {\n escaped = true;\n } else {\n newText += ch;\n }\n }\n return newText;\n}\n","/* global window */\n\nvar lodash;\n\nif (typeof require === \"function\") {\n try {\n lodash = {\n defaults: require(\"lodash/defaults\"),\n each: require(\"lodash/each\"),\n isFunction: require(\"lodash/isFunction\"),\n isPlainObject: require(\"lodash/isPlainObject\"),\n pick: require(\"lodash/pick\"),\n has: require(\"lodash/has\"),\n range: require(\"lodash/range\"),\n uniqueId: require(\"lodash/uniqueId\")\n };\n }\n catch (e) {\n // continue regardless of error\n }\n}\n\nif (!lodash) {\n lodash = window._;\n}\n\nmodule.exports = lodash;\n","\"use strict\";\n\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\n\nmodule.exports = positionClusters;\n\nfunction positionClusters(selection, g) {\n var created = selection.filter(function() { return !d3.select(this).classed(\"update\"); });\n\n function translate(v) {\n var node = g.node(v);\n return \"translate(\" + node.x + \",\" + node.y + \")\";\n }\n\n created.attr(\"transform\", translate);\n\n util.applyTransition(selection, g)\n .style(\"opacity\", 1)\n .attr(\"transform\", translate);\n\n util.applyTransition(created.selectAll(\"rect\"), g)\n .attr(\"width\", function(v) { return g.node(v).width; })\n .attr(\"height\", function(v) { return g.node(v).height; })\n .attr(\"x\", function(v) {\n var node = g.node(v);\n return -node.width / 2;\n })\n .attr(\"y\", function(v) {\n var node = g.node(v);\n return -node.height / 2;\n });\n}\n","\"use strict\";\n\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\nvar _ = require(\"./lodash\");\n\nmodule.exports = positionEdgeLabels;\n\nfunction positionEdgeLabels(selection, g) {\n var created = selection.filter(function() { return !d3.select(this).classed(\"update\"); });\n\n function translate(e) {\n var edge = g.edge(e);\n return _.has(edge, \"x\") ? \"translate(\" + edge.x + \",\" + edge.y + \")\" : \"\";\n }\n\n created.attr(\"transform\", translate);\n\n util.applyTransition(selection, g)\n .style(\"opacity\", 1)\n .attr(\"transform\", translate);\n}\n","\"use strict\";\n\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\n\nmodule.exports = positionNodes;\n\nfunction positionNodes(selection, g) {\n var created = selection.filter(function() { return !d3.select(this).classed(\"update\"); });\n\n function translate(v) {\n var node = g.node(v);\n return \"translate(\" + node.x + \",\" + node.y + \")\";\n }\n\n created.attr(\"transform\", translate);\n\n util.applyTransition(selection, g)\n .style(\"opacity\", 1)\n .attr(\"transform\", translate);\n}\n","var _ = require(\"./lodash\");\nvar d3 = require(\"./d3\");\nvar layout = require(\"./dagre\").layout;\n\nmodule.exports = render;\n\n// This design is based on http://bost.ocks.org/mike/chart/.\nfunction render() {\n var createNodes = require(\"./create-nodes\");\n var createClusters = require(\"./create-clusters\");\n var createEdgeLabels = require(\"./create-edge-labels\");\n var createEdgePaths = require(\"./create-edge-paths\");\n var positionNodes = require(\"./position-nodes\");\n var positionEdgeLabels = require(\"./position-edge-labels\");\n var positionClusters = require(\"./position-clusters\");\n var shapes = require(\"./shapes\");\n var arrows = require(\"./arrows\");\n\n var fn = function(svg, g) {\n preProcessGraph(g);\n\n var outputGroup = createOrSelectGroup(svg, \"output\");\n var clustersGroup = createOrSelectGroup(outputGroup, \"clusters\");\n var edgePathsGroup = createOrSelectGroup(outputGroup, \"edgePaths\");\n var edgeLabels = createEdgeLabels(createOrSelectGroup(outputGroup, \"edgeLabels\"), g);\n var nodes = createNodes(createOrSelectGroup(outputGroup, \"nodes\"), g, shapes);\n\n layout(g);\n\n positionNodes(nodes, g);\n positionEdgeLabels(edgeLabels, g);\n createEdgePaths(edgePathsGroup, g, arrows);\n\n var clusters = createClusters(clustersGroup, g);\n positionClusters(clusters, g);\n\n postProcessGraph(g);\n };\n\n fn.createNodes = function(value) {\n if (!arguments.length) return createNodes;\n createNodes = value;\n return fn;\n };\n\n fn.createClusters = function(value) {\n if (!arguments.length) return createClusters;\n createClusters = value;\n return fn;\n };\n\n fn.createEdgeLabels = function(value) {\n if (!arguments.length) return createEdgeLabels;\n createEdgeLabels = value;\n return fn;\n };\n\n fn.createEdgePaths = function(value) {\n if (!arguments.length) return createEdgePaths;\n createEdgePaths = value;\n return fn;\n };\n\n fn.shapes = function(value) {\n if (!arguments.length) return shapes;\n shapes = value;\n return fn;\n };\n\n fn.arrows = function(value) {\n if (!arguments.length) return arrows;\n arrows = value;\n return fn;\n };\n\n return fn;\n}\n\nvar NODE_DEFAULT_ATTRS = {\n paddingLeft: 10,\n paddingRight: 10,\n paddingTop: 10,\n paddingBottom: 10,\n rx: 0,\n ry: 0,\n shape: \"rect\"\n};\n\nvar EDGE_DEFAULT_ATTRS = {\n arrowhead: \"normal\",\n curve: d3.curveLinear\n};\n\nfunction preProcessGraph(g) {\n g.nodes().forEach(function(v) {\n var node = g.node(v);\n if (!_.has(node, \"label\") && !g.children(v).length) { node.label = v; }\n\n if (_.has(node, \"paddingX\")) {\n _.defaults(node, {\n paddingLeft: node.paddingX,\n paddingRight: node.paddingX\n });\n }\n\n if (_.has(node, \"paddingY\")) {\n _.defaults(node, {\n paddingTop: node.paddingY,\n paddingBottom: node.paddingY\n });\n }\n\n if (_.has(node, \"padding\")) {\n _.defaults(node, {\n paddingLeft: node.padding,\n paddingRight: node.padding,\n paddingTop: node.padding,\n paddingBottom: node.padding\n });\n }\n\n _.defaults(node, NODE_DEFAULT_ATTRS);\n\n _.each([\"paddingLeft\", \"paddingRight\", \"paddingTop\", \"paddingBottom\"], function(k) {\n node[k] = Number(node[k]);\n });\n\n // Save dimensions for restore during post-processing\n if (_.has(node, \"width\")) { node._prevWidth = node.width; }\n if (_.has(node, \"height\")) { node._prevHeight = node.height; }\n });\n\n g.edges().forEach(function(e) {\n var edge = g.edge(e);\n if (!_.has(edge, \"label\")) { edge.label = \"\"; }\n _.defaults(edge, EDGE_DEFAULT_ATTRS);\n });\n}\n\nfunction postProcessGraph(g) {\n _.each(g.nodes(), function(v) {\n var node = g.node(v);\n\n // Restore original dimensions\n if (_.has(node, \"_prevWidth\")) {\n node.width = node._prevWidth;\n } else {\n delete node.width;\n }\n\n if (_.has(node, \"_prevHeight\")) {\n node.height = node._prevHeight;\n } else {\n delete node.height;\n }\n\n delete node._prevWidth;\n delete node._prevHeight;\n });\n}\n\nfunction createOrSelectGroup(root, name) {\n var selection = root.select(\"g.\" + name);\n if (selection.empty()) {\n selection = root.append(\"g\").attr(\"class\", name);\n }\n return selection;\n}\n","\"use strict\";\n\nvar intersectRect = require(\"./intersect/intersect-rect\");\nvar intersectEllipse = require(\"./intersect/intersect-ellipse\");\nvar intersectCircle = require(\"./intersect/intersect-circle\");\nvar intersectPolygon = require(\"./intersect/intersect-polygon\");\n\nmodule.exports = {\n rect: rect,\n ellipse: ellipse,\n circle: circle,\n diamond: diamond\n};\n\nfunction rect(parent, bbox, node) {\n var shapeSvg = parent.insert(\"rect\", \":first-child\")\n .attr(\"rx\", node.rx)\n .attr(\"ry\", node.ry)\n .attr(\"x\", -bbox.width / 2)\n .attr(\"y\", -bbox.height / 2)\n .attr(\"width\", bbox.width)\n .attr(\"height\", bbox.height);\n\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n}\n\nfunction ellipse(parent, bbox, node) {\n var rx = bbox.width / 2;\n var ry = bbox.height / 2;\n var shapeSvg = parent.insert(\"ellipse\", \":first-child\")\n .attr(\"x\", -bbox.width / 2)\n .attr(\"y\", -bbox.height / 2)\n .attr(\"rx\", rx)\n .attr(\"ry\", ry);\n\n node.intersect = function(point) {\n return intersectEllipse(node, rx, ry, point);\n };\n\n return shapeSvg;\n}\n\nfunction circle(parent, bbox, node) {\n var r = Math.max(bbox.width, bbox.height) / 2;\n var shapeSvg = parent.insert(\"circle\", \":first-child\")\n .attr(\"x\", -bbox.width / 2)\n .attr(\"y\", -bbox.height / 2)\n .attr(\"r\", r);\n\n node.intersect = function(point) {\n return intersectCircle(node, r, point);\n };\n\n return shapeSvg;\n}\n\n// Circumscribe an ellipse for the bounding box with a diamond shape. I derived\n// the function to calculate the diamond shape from:\n// http://mathforum.org/kb/message.jspa?messageID=3750236\nfunction diamond(parent, bbox, node) {\n var w = (bbox.width * Math.SQRT2) / 2;\n var h = (bbox.height * Math.SQRT2) / 2;\n var points = [\n { x: 0, y: -h },\n { x: -w, y: 0 },\n { x: 0, y: h },\n { x: w, y: 0 }\n ];\n var shapeSvg = parent.insert(\"polygon\", \":first-child\")\n .attr(\"points\", points.map(function(p) { return p.x + \",\" + p.y; }).join(\" \"));\n\n node.intersect = function(p) {\n return intersectPolygon(node, points, p);\n };\n\n return shapeSvg;\n}\n","var _ = require(\"./lodash\");\n\n// Public utility functions\nmodule.exports = {\n isSubgraph: isSubgraph,\n edgeToId: edgeToId,\n applyStyle: applyStyle,\n applyClass: applyClass,\n applyTransition: applyTransition\n};\n\n/*\n * Returns true if the specified node in the graph is a subgraph node. A\n * subgraph node is one that contains other nodes.\n */\nfunction isSubgraph(g, v) {\n return !!g.children(v).length;\n}\n\nfunction edgeToId(e) {\n return escapeId(e.v) + \":\" + escapeId(e.w) + \":\" + escapeId(e.name);\n}\n\nvar ID_DELIM = /:/g;\nfunction escapeId(str) {\n return str ? String(str).replace(ID_DELIM, \"\\\\:\") : \"\";\n}\n\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\n\nfunction applyClass(dom, classFn, otherClasses) {\n if (classFn) {\n dom\n .attr(\"class\", classFn)\n .attr(\"class\", otherClasses + \" \" + dom.attr(\"class\"));\n }\n}\n\nfunction applyTransition(selection, g) {\n var graph = g.graph();\n\n if (_.isPlainObject(graph)) {\n var transition = graph.transition;\n if (_.isFunction(transition)) {\n return transition(selection);\n }\n }\n\n return selection;\n}\n","module.exports = \"0.6.4\";\n","/*\nCopyright (c) 2012-2014 Chris Pettitt\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nmodule.exports = {\n graphlib: require(\"./lib/graphlib\"),\n\n layout: require(\"./lib/layout\"),\n debug: require(\"./lib/debug\"),\n util: {\n time: require(\"./lib/util\").time,\n notime: require(\"./lib/util\").notime\n },\n version: require(\"./lib/version\")\n};\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar greedyFAS = require(\"./greedy-fas\");\n\nmodule.exports = {\n run: run,\n undo: undo\n};\n\nfunction run(g) {\n var fas = (g.graph().acyclicer === \"greedy\"\n ? greedyFAS(g, weightFn(g))\n : dfsFAS(g));\n _.forEach(fas, function(e) {\n var label = g.edge(e);\n g.removeEdge(e);\n label.forwardName = e.name;\n label.reversed = true;\n g.setEdge(e.w, e.v, label, _.uniqueId(\"rev\"));\n });\n\n function weightFn(g) {\n return function(e) {\n return g.edge(e).weight;\n };\n }\n}\n\nfunction dfsFAS(g) {\n var fas = [];\n var stack = {};\n var visited = {};\n\n function dfs(v) {\n if (_.has(visited, v)) {\n return;\n }\n visited[v] = true;\n stack[v] = true;\n _.forEach(g.outEdges(v), function(e) {\n if (_.has(stack, e.w)) {\n fas.push(e);\n } else {\n dfs(e.w);\n }\n });\n delete stack[v];\n }\n\n _.forEach(g.nodes(), dfs);\n return fas;\n}\n\nfunction undo(g) {\n _.forEach(g.edges(), function(e) {\n var label = g.edge(e);\n if (label.reversed) {\n g.removeEdge(e);\n\n var forwardName = label.forwardName;\n delete label.reversed;\n delete label.forwardName;\n g.setEdge(e.w, e.v, label, forwardName);\n }\n });\n}\n","var _ = require(\"./lodash\");\nvar util = require(\"./util\");\n\nmodule.exports = addBorderSegments;\n\nfunction addBorderSegments(g) {\n function dfs(v) {\n var children = g.children(v);\n var node = g.node(v);\n if (children.length) {\n _.forEach(children, dfs);\n }\n\n if (_.has(node, \"minRank\")) {\n node.borderLeft = [];\n node.borderRight = [];\n for (var rank = node.minRank, maxRank = node.maxRank + 1;\n rank < maxRank;\n ++rank) {\n addBorderNode(g, \"borderLeft\", \"_bl\", v, node, rank);\n addBorderNode(g, \"borderRight\", \"_br\", v, node, rank);\n }\n }\n }\n\n _.forEach(g.children(), dfs);\n}\n\nfunction addBorderNode(g, prop, prefix, sg, sgNode, rank) {\n var label = { width: 0, height: 0, rank: rank, borderType: prop };\n var prev = sgNode[prop][rank - 1];\n var curr = util.addDummyNode(g, \"border\", label, prefix);\n sgNode[prop][rank] = curr;\n g.setParent(curr, sg);\n if (prev) {\n g.setEdge(prev, curr, { weight: 1 });\n }\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\n\nmodule.exports = {\n adjust: adjust,\n undo: undo\n};\n\nfunction adjust(g) {\n var rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === \"lr\" || rankDir === \"rl\") {\n swapWidthHeight(g);\n }\n}\n\nfunction undo(g) {\n var rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === \"bt\" || rankDir === \"rl\") {\n reverseY(g);\n }\n\n if (rankDir === \"lr\" || rankDir === \"rl\") {\n swapXY(g);\n swapWidthHeight(g);\n }\n}\n\nfunction swapWidthHeight(g) {\n _.forEach(g.nodes(), function(v) { swapWidthHeightOne(g.node(v)); });\n _.forEach(g.edges(), function(e) { swapWidthHeightOne(g.edge(e)); });\n}\n\nfunction swapWidthHeightOne(attrs) {\n var w = attrs.width;\n attrs.width = attrs.height;\n attrs.height = w;\n}\n\nfunction reverseY(g) {\n _.forEach(g.nodes(), function(v) { reverseYOne(g.node(v)); });\n\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n _.forEach(edge.points, reverseYOne);\n if (_.has(edge, \"y\")) {\n reverseYOne(edge);\n }\n });\n}\n\nfunction reverseYOne(attrs) {\n attrs.y = -attrs.y;\n}\n\nfunction swapXY(g) {\n _.forEach(g.nodes(), function(v) { swapXYOne(g.node(v)); });\n\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n _.forEach(edge.points, swapXYOne);\n if (_.has(edge, \"x\")) {\n swapXYOne(edge);\n }\n });\n}\n\nfunction swapXYOne(attrs) {\n var x = attrs.x;\n attrs.x = attrs.y;\n attrs.y = x;\n}\n","/*\n * Simple doubly linked list implementation derived from Cormen, et al.,\n * \"Introduction to Algorithms\".\n */\n\nmodule.exports = List;\n\nfunction List() {\n var sentinel = {};\n sentinel._next = sentinel._prev = sentinel;\n this._sentinel = sentinel;\n}\n\nList.prototype.dequeue = function() {\n var sentinel = this._sentinel;\n var entry = sentinel._prev;\n if (entry !== sentinel) {\n unlink(entry);\n return entry;\n }\n};\n\nList.prototype.enqueue = function(entry) {\n var sentinel = this._sentinel;\n if (entry._prev && entry._next) {\n unlink(entry);\n }\n entry._next = sentinel._next;\n sentinel._next._prev = entry;\n sentinel._next = entry;\n entry._prev = sentinel;\n};\n\nList.prototype.toString = function() {\n var strs = [];\n var sentinel = this._sentinel;\n var curr = sentinel._prev;\n while (curr !== sentinel) {\n strs.push(JSON.stringify(curr, filterOutLinks));\n curr = curr._prev;\n }\n return \"[\" + strs.join(\", \") + \"]\";\n};\n\nfunction unlink(entry) {\n entry._prev._next = entry._next;\n entry._next._prev = entry._prev;\n delete entry._next;\n delete entry._prev;\n}\n\nfunction filterOutLinks(k, v) {\n if (k !== \"_next\" && k !== \"_prev\") {\n return v;\n }\n}\n","var _ = require(\"./lodash\");\nvar util = require(\"./util\");\nvar Graph = require(\"./graphlib\").Graph;\n\nmodule.exports = {\n debugOrdering: debugOrdering\n};\n\n/* istanbul ignore next */\nfunction debugOrdering(g) {\n var layerMatrix = util.buildLayerMatrix(g);\n\n var h = new Graph({ compound: true, multigraph: true }).setGraph({});\n\n _.forEach(g.nodes(), function(v) {\n h.setNode(v, { label: v });\n h.setParent(v, \"layer\" + g.node(v).rank);\n });\n\n _.forEach(g.edges(), function(e) {\n h.setEdge(e.v, e.w, {}, e.name);\n });\n\n _.forEach(layerMatrix, function(layer, i) {\n var layerV = \"layer\" + i;\n h.setNode(layerV, { rank: \"same\" });\n _.reduce(layer, function(u, v) {\n h.setEdge(u, v, { style: \"invis\" });\n return v;\n });\n });\n\n return h;\n}\n","/* global window */\n\nvar graphlib;\n\nif (typeof require === \"function\") {\n try {\n graphlib = require(\"graphlib\");\n } catch (e) {\n // continue regardless of error\n }\n}\n\nif (!graphlib) {\n graphlib = window.graphlib;\n}\n\nmodule.exports = graphlib;\n","var _ = require(\"./lodash\");\nvar Graph = require(\"./graphlib\").Graph;\nvar List = require(\"./data/list\");\n\n/*\n * A greedy heuristic for finding a feedback arc set for a graph. A feedback\n * arc set is a set of edges that can be removed to make a graph acyclic.\n * The algorithm comes from: P. Eades, X. Lin, and W. F. Smyth, \"A fast and\n * effective heuristic for the feedback arc set problem.\" This implementation\n * adjusts that from the paper to allow for weighted edges.\n */\nmodule.exports = greedyFAS;\n\nvar DEFAULT_WEIGHT_FN = _.constant(1);\n\nfunction greedyFAS(g, weightFn) {\n if (g.nodeCount() <= 1) {\n return [];\n }\n var state = buildState(g, weightFn || DEFAULT_WEIGHT_FN);\n var results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx);\n\n // Expand multi-edges\n return _.flatten(_.map(results, function(e) {\n return g.outEdges(e.v, e.w);\n }), true);\n}\n\nfunction doGreedyFAS(g, buckets, zeroIdx) {\n var results = [];\n var sources = buckets[buckets.length - 1];\n var sinks = buckets[0];\n\n var entry;\n while (g.nodeCount()) {\n while ((entry = sinks.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }\n while ((entry = sources.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }\n if (g.nodeCount()) {\n for (var i = buckets.length - 2; i > 0; --i) {\n entry = buckets[i].dequeue();\n if (entry) {\n results = results.concat(removeNode(g, buckets, zeroIdx, entry, true));\n break;\n }\n }\n }\n }\n\n return results;\n}\n\nfunction removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {\n var results = collectPredecessors ? [] : undefined;\n\n _.forEach(g.inEdges(entry.v), function(edge) {\n var weight = g.edge(edge);\n var uEntry = g.node(edge.v);\n\n if (collectPredecessors) {\n results.push({ v: edge.v, w: edge.w });\n }\n\n uEntry.out -= weight;\n assignBucket(buckets, zeroIdx, uEntry);\n });\n\n _.forEach(g.outEdges(entry.v), function(edge) {\n var weight = g.edge(edge);\n var w = edge.w;\n var wEntry = g.node(w);\n wEntry[\"in\"] -= weight;\n assignBucket(buckets, zeroIdx, wEntry);\n });\n\n g.removeNode(entry.v);\n\n return results;\n}\n\nfunction buildState(g, weightFn) {\n var fasGraph = new Graph();\n var maxIn = 0;\n var maxOut = 0;\n\n _.forEach(g.nodes(), function(v) {\n fasGraph.setNode(v, { v: v, \"in\": 0, out: 0 });\n });\n\n // Aggregate weights on nodes, but also sum the weights across multi-edges\n // into a single edge for the fasGraph.\n _.forEach(g.edges(), function(e) {\n var prevWeight = fasGraph.edge(e.v, e.w) || 0;\n var weight = weightFn(e);\n var edgeWeight = prevWeight + weight;\n fasGraph.setEdge(e.v, e.w, edgeWeight);\n maxOut = Math.max(maxOut, fasGraph.node(e.v).out += weight);\n maxIn = Math.max(maxIn, fasGraph.node(e.w)[\"in\"] += weight);\n });\n\n var buckets = _.range(maxOut + maxIn + 3).map(function() { return new List(); });\n var zeroIdx = maxIn + 1;\n\n _.forEach(fasGraph.nodes(), function(v) {\n assignBucket(buckets, zeroIdx, fasGraph.node(v));\n });\n\n return { graph: fasGraph, buckets: buckets, zeroIdx: zeroIdx };\n}\n\nfunction assignBucket(buckets, zeroIdx, entry) {\n if (!entry.out) {\n buckets[0].enqueue(entry);\n } else if (!entry[\"in\"]) {\n buckets[buckets.length - 1].enqueue(entry);\n } else {\n buckets[entry.out - entry[\"in\"] + zeroIdx].enqueue(entry);\n }\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar acyclic = require(\"./acyclic\");\nvar normalize = require(\"./normalize\");\nvar rank = require(\"./rank\");\nvar normalizeRanks = require(\"./util\").normalizeRanks;\nvar parentDummyChains = require(\"./parent-dummy-chains\");\nvar removeEmptyRanks = require(\"./util\").removeEmptyRanks;\nvar nestingGraph = require(\"./nesting-graph\");\nvar addBorderSegments = require(\"./add-border-segments\");\nvar coordinateSystem = require(\"./coordinate-system\");\nvar order = require(\"./order\");\nvar position = require(\"./position\");\nvar util = require(\"./util\");\nvar Graph = require(\"./graphlib\").Graph;\n\nmodule.exports = layout;\n\nfunction layout(g, opts) {\n var time = opts && opts.debugTiming ? util.time : util.notime;\n time(\"layout\", function() {\n var layoutGraph = \n time(\" buildLayoutGraph\", function() { return buildLayoutGraph(g); });\n time(\" runLayout\", function() { runLayout(layoutGraph, time); });\n time(\" updateInputGraph\", function() { updateInputGraph(g, layoutGraph); });\n });\n}\n\nfunction runLayout(g, time) {\n time(\" makeSpaceForEdgeLabels\", function() { makeSpaceForEdgeLabels(g); });\n time(\" removeSelfEdges\", function() { removeSelfEdges(g); });\n time(\" acyclic\", function() { acyclic.run(g); });\n time(\" nestingGraph.run\", function() { nestingGraph.run(g); });\n time(\" rank\", function() { rank(util.asNonCompoundGraph(g)); });\n time(\" injectEdgeLabelProxies\", function() { injectEdgeLabelProxies(g); });\n time(\" removeEmptyRanks\", function() { removeEmptyRanks(g); });\n time(\" nestingGraph.cleanup\", function() { nestingGraph.cleanup(g); });\n time(\" normalizeRanks\", function() { normalizeRanks(g); });\n time(\" assignRankMinMax\", function() { assignRankMinMax(g); });\n time(\" removeEdgeLabelProxies\", function() { removeEdgeLabelProxies(g); });\n time(\" normalize.run\", function() { normalize.run(g); });\n time(\" parentDummyChains\", function() { parentDummyChains(g); });\n time(\" addBorderSegments\", function() { addBorderSegments(g); });\n time(\" order\", function() { order(g); });\n time(\" insertSelfEdges\", function() { insertSelfEdges(g); });\n time(\" adjustCoordinateSystem\", function() { coordinateSystem.adjust(g); });\n time(\" position\", function() { position(g); });\n time(\" positionSelfEdges\", function() { positionSelfEdges(g); });\n time(\" removeBorderNodes\", function() { removeBorderNodes(g); });\n time(\" normalize.undo\", function() { normalize.undo(g); });\n time(\" fixupEdgeLabelCoords\", function() { fixupEdgeLabelCoords(g); });\n time(\" undoCoordinateSystem\", function() { coordinateSystem.undo(g); });\n time(\" translateGraph\", function() { translateGraph(g); });\n time(\" assignNodeIntersects\", function() { assignNodeIntersects(g); });\n time(\" reversePoints\", function() { reversePointsForReversedEdges(g); });\n time(\" acyclic.undo\", function() { acyclic.undo(g); });\n}\n\n/*\n * Copies final layout information from the layout graph back to the input\n * graph. This process only copies whitelisted attributes from the layout graph\n * to the input graph, so it serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction updateInputGraph(inputGraph, layoutGraph) {\n _.forEach(inputGraph.nodes(), function(v) {\n var inputLabel = inputGraph.node(v);\n var layoutLabel = layoutGraph.node(v);\n\n if (inputLabel) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n\n if (layoutGraph.children(v).length) {\n inputLabel.width = layoutLabel.width;\n inputLabel.height = layoutLabel.height;\n }\n }\n });\n\n _.forEach(inputGraph.edges(), function(e) {\n var inputLabel = inputGraph.edge(e);\n var layoutLabel = layoutGraph.edge(e);\n\n inputLabel.points = layoutLabel.points;\n if (_.has(layoutLabel, \"x\")) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n }\n });\n\n inputGraph.graph().width = layoutGraph.graph().width;\n inputGraph.graph().height = layoutGraph.graph().height;\n}\n\nvar graphNumAttrs = [\"nodesep\", \"edgesep\", \"ranksep\", \"marginx\", \"marginy\"];\nvar graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: \"tb\" };\nvar graphAttrs = [\"acyclicer\", \"ranker\", \"rankdir\", \"align\"];\nvar nodeNumAttrs = [\"width\", \"height\"];\nvar nodeDefaults = { width: 0, height: 0 };\nvar edgeNumAttrs = [\"minlen\", \"weight\", \"width\", \"height\", \"labeloffset\"];\nvar edgeDefaults = {\n minlen: 1, weight: 1, width: 0, height: 0,\n labeloffset: 10, labelpos: \"r\"\n};\nvar edgeAttrs = [\"labelpos\"];\n\n/*\n * Constructs a new graph from the input graph, which can be used for layout.\n * This process copies only whitelisted attributes from the input graph to the\n * layout graph. Thus this function serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction buildLayoutGraph(inputGraph) {\n var g = new Graph({ multigraph: true, compound: true });\n var graph = canonicalize(inputGraph.graph());\n\n g.setGraph(_.merge({},\n graphDefaults,\n selectNumberAttrs(graph, graphNumAttrs),\n _.pick(graph, graphAttrs)));\n\n _.forEach(inputGraph.nodes(), function(v) {\n var node = canonicalize(inputGraph.node(v));\n g.setNode(v, _.defaults(selectNumberAttrs(node, nodeNumAttrs), nodeDefaults));\n g.setParent(v, inputGraph.parent(v));\n });\n\n _.forEach(inputGraph.edges(), function(e) {\n var edge = canonicalize(inputGraph.edge(e));\n g.setEdge(e, _.merge({},\n edgeDefaults,\n selectNumberAttrs(edge, edgeNumAttrs),\n _.pick(edge, edgeAttrs)));\n });\n\n return g;\n}\n\n/*\n * This idea comes from the Gansner paper: to account for edge labels in our\n * layout we split each rank in half by doubling minlen and halving ranksep.\n * Then we can place labels at these mid-points between nodes.\n *\n * We also add some minimal padding to the width to push the label for the edge\n * away from the edge itself a bit.\n */\nfunction makeSpaceForEdgeLabels(g) {\n var graph = g.graph();\n graph.ranksep /= 2;\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n edge.minlen *= 2;\n if (edge.labelpos.toLowerCase() !== \"c\") {\n if (graph.rankdir === \"TB\" || graph.rankdir === \"BT\") {\n edge.width += edge.labeloffset;\n } else {\n edge.height += edge.labeloffset;\n }\n }\n });\n}\n\n/*\n * Creates temporary dummy nodes that capture the rank in which each edge's\n * label is going to, if it has one of non-zero width and height. We do this\n * so that we can safely remove empty ranks while preserving balance for the\n * label's position.\n */\nfunction injectEdgeLabelProxies(g) {\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (edge.width && edge.height) {\n var v = g.node(e.v);\n var w = g.node(e.w);\n var label = { rank: (w.rank - v.rank) / 2 + v.rank, e: e };\n util.addDummyNode(g, \"edge-proxy\", label, \"_ep\");\n }\n });\n}\n\nfunction assignRankMinMax(g) {\n var maxRank = 0;\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n if (node.borderTop) {\n node.minRank = g.node(node.borderTop).rank;\n node.maxRank = g.node(node.borderBottom).rank;\n maxRank = _.max(maxRank, node.maxRank);\n }\n });\n g.graph().maxRank = maxRank;\n}\n\nfunction removeEdgeLabelProxies(g) {\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n if (node.dummy === \"edge-proxy\") {\n g.edge(node.e).labelRank = node.rank;\n g.removeNode(v);\n }\n });\n}\n\nfunction translateGraph(g) {\n var minX = Number.POSITIVE_INFINITY;\n var maxX = 0;\n var minY = Number.POSITIVE_INFINITY;\n var maxY = 0;\n var graphLabel = g.graph();\n var marginX = graphLabel.marginx || 0;\n var marginY = graphLabel.marginy || 0;\n\n function getExtremes(attrs) {\n var x = attrs.x;\n var y = attrs.y;\n var w = attrs.width;\n var h = attrs.height;\n minX = Math.min(minX, x - w / 2);\n maxX = Math.max(maxX, x + w / 2);\n minY = Math.min(minY, y - h / 2);\n maxY = Math.max(maxY, y + h / 2);\n }\n\n _.forEach(g.nodes(), function(v) { getExtremes(g.node(v)); });\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (_.has(edge, \"x\")) {\n getExtremes(edge);\n }\n });\n\n minX -= marginX;\n minY -= marginY;\n\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n node.x -= minX;\n node.y -= minY;\n });\n\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n _.forEach(edge.points, function(p) {\n p.x -= minX;\n p.y -= minY;\n });\n if (_.has(edge, \"x\")) { edge.x -= minX; }\n if (_.has(edge, \"y\")) { edge.y -= minY; }\n });\n\n graphLabel.width = maxX - minX + marginX;\n graphLabel.height = maxY - minY + marginY;\n}\n\nfunction assignNodeIntersects(g) {\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n var nodeV = g.node(e.v);\n var nodeW = g.node(e.w);\n var p1, p2;\n if (!edge.points) {\n edge.points = [];\n p1 = nodeW;\n p2 = nodeV;\n } else {\n p1 = edge.points[0];\n p2 = edge.points[edge.points.length - 1];\n }\n edge.points.unshift(util.intersectRect(nodeV, p1));\n edge.points.push(util.intersectRect(nodeW, p2));\n });\n}\n\nfunction fixupEdgeLabelCoords(g) {\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (_.has(edge, \"x\")) {\n if (edge.labelpos === \"l\" || edge.labelpos === \"r\") {\n edge.width -= edge.labeloffset;\n }\n switch (edge.labelpos) {\n case \"l\": edge.x -= edge.width / 2 + edge.labeloffset; break;\n case \"r\": edge.x += edge.width / 2 + edge.labeloffset; break;\n }\n }\n });\n}\n\nfunction reversePointsForReversedEdges(g) {\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (edge.reversed) {\n edge.points.reverse();\n }\n });\n}\n\nfunction removeBorderNodes(g) {\n _.forEach(g.nodes(), function(v) {\n if (g.children(v).length) {\n var node = g.node(v);\n var t = g.node(node.borderTop);\n var b = g.node(node.borderBottom);\n var l = g.node(_.last(node.borderLeft));\n var r = g.node(_.last(node.borderRight));\n\n node.width = Math.abs(r.x - l.x);\n node.height = Math.abs(b.y - t.y);\n node.x = l.x + node.width / 2;\n node.y = t.y + node.height / 2;\n }\n });\n\n _.forEach(g.nodes(), function(v) {\n if (g.node(v).dummy === \"border\") {\n g.removeNode(v);\n }\n });\n}\n\nfunction removeSelfEdges(g) {\n _.forEach(g.edges(), function(e) {\n if (e.v === e.w) {\n var node = g.node(e.v);\n if (!node.selfEdges) {\n node.selfEdges = [];\n }\n node.selfEdges.push({ e: e, label: g.edge(e) });\n g.removeEdge(e);\n }\n });\n}\n\nfunction insertSelfEdges(g) {\n var layers = util.buildLayerMatrix(g);\n _.forEach(layers, function(layer) {\n var orderShift = 0;\n _.forEach(layer, function(v, i) {\n var node = g.node(v);\n node.order = i + orderShift;\n _.forEach(node.selfEdges, function(selfEdge) {\n util.addDummyNode(g, \"selfedge\", {\n width: selfEdge.label.width,\n height: selfEdge.label.height,\n rank: node.rank,\n order: i + (++orderShift),\n e: selfEdge.e,\n label: selfEdge.label\n }, \"_se\");\n });\n delete node.selfEdges;\n });\n });\n}\n\nfunction positionSelfEdges(g) {\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n if (node.dummy === \"selfedge\") {\n var selfNode = g.node(node.e.v);\n var x = selfNode.x + selfNode.width / 2;\n var y = selfNode.y;\n var dx = node.x - x;\n var dy = selfNode.height / 2;\n g.setEdge(node.e, node.label);\n g.removeNode(v);\n node.label.points = [\n { x: x + 2 * dx / 3, y: y - dy },\n { x: x + 5 * dx / 6, y: y - dy },\n { x: x + dx , y: y },\n { x: x + 5 * dx / 6, y: y + dy },\n { x: x + 2 * dx / 3, y: y + dy }\n ];\n node.label.x = node.x;\n node.label.y = node.y;\n }\n });\n}\n\nfunction selectNumberAttrs(obj, attrs) {\n return _.mapValues(_.pick(obj, attrs), Number);\n}\n\nfunction canonicalize(attrs) {\n var newAttrs = {};\n _.forEach(attrs, function(v, k) {\n newAttrs[k.toLowerCase()] = v;\n });\n return newAttrs;\n}\n","/* global window */\n\nvar lodash;\n\nif (typeof require === \"function\") {\n try {\n lodash = {\n cloneDeep: require(\"lodash/cloneDeep\"),\n constant: require(\"lodash/constant\"),\n defaults: require(\"lodash/defaults\"),\n each: require(\"lodash/each\"),\n filter: require(\"lodash/filter\"),\n find: require(\"lodash/find\"),\n flatten: require(\"lodash/flatten\"),\n forEach: require(\"lodash/forEach\"),\n forIn: require(\"lodash/forIn\"),\n has: require(\"lodash/has\"),\n isUndefined: require(\"lodash/isUndefined\"),\n last: require(\"lodash/last\"),\n map: require(\"lodash/map\"),\n mapValues: require(\"lodash/mapValues\"),\n max: require(\"lodash/max\"),\n merge: require(\"lodash/merge\"),\n min: require(\"lodash/min\"),\n minBy: require(\"lodash/minBy\"),\n now: require(\"lodash/now\"),\n pick: require(\"lodash/pick\"),\n range: require(\"lodash/range\"),\n reduce: require(\"lodash/reduce\"),\n sortBy: require(\"lodash/sortBy\"),\n uniqueId: require(\"lodash/uniqueId\"),\n values: require(\"lodash/values\"),\n zipObject: require(\"lodash/zipObject\"),\n };\n } catch (e) {\n // continue regardless of error\n }\n}\n\nif (!lodash) {\n lodash = window._;\n}\n\nmodule.exports = lodash;\n","var _ = require(\"./lodash\");\nvar util = require(\"./util\");\n\nmodule.exports = {\n run: run,\n cleanup: cleanup\n};\n\n/*\n * A nesting graph creates dummy nodes for the tops and bottoms of subgraphs,\n * adds appropriate edges to ensure that all cluster nodes are placed between\n * these boundries, and ensures that the graph is connected.\n *\n * In addition we ensure, through the use of the minlen property, that nodes\n * and subgraph border nodes to not end up on the same rank.\n *\n * Preconditions:\n *\n * 1. Input graph is a DAG\n * 2. Nodes in the input graph has a minlen attribute\n *\n * Postconditions:\n *\n * 1. Input graph is connected.\n * 2. Dummy nodes are added for the tops and bottoms of subgraphs.\n * 3. The minlen attribute for nodes is adjusted to ensure nodes do not\n * get placed on the same rank as subgraph border nodes.\n *\n * The nesting graph idea comes from Sander, \"Layout of Compound Directed\n * Graphs.\"\n */\nfunction run(g) {\n var root = util.addDummyNode(g, \"root\", {}, \"_root\");\n var depths = treeDepths(g);\n var height = _.max(_.values(depths)) - 1; // Note: depths is an Object not an array\n var nodeSep = 2 * height + 1;\n\n g.graph().nestingRoot = root;\n\n // Multiply minlen by nodeSep to align nodes on non-border ranks.\n _.forEach(g.edges(), function(e) { g.edge(e).minlen *= nodeSep; });\n\n // Calculate a weight that is sufficient to keep subgraphs vertically compact\n var weight = sumWeights(g) + 1;\n\n // Create border nodes and link them up\n _.forEach(g.children(), function(child) {\n dfs(g, root, nodeSep, weight, height, depths, child);\n });\n\n // Save the multiplier for node layers for later removal of empty border\n // layers.\n g.graph().nodeRankFactor = nodeSep;\n}\n\nfunction dfs(g, root, nodeSep, weight, height, depths, v) {\n var children = g.children(v);\n if (!children.length) {\n if (v !== root) {\n g.setEdge(root, v, { weight: 0, minlen: nodeSep });\n }\n return;\n }\n\n var top = util.addBorderNode(g, \"_bt\");\n var bottom = util.addBorderNode(g, \"_bb\");\n var label = g.node(v);\n\n g.setParent(top, v);\n label.borderTop = top;\n g.setParent(bottom, v);\n label.borderBottom = bottom;\n\n _.forEach(children, function(child) {\n dfs(g, root, nodeSep, weight, height, depths, child);\n\n var childNode = g.node(child);\n var childTop = childNode.borderTop ? childNode.borderTop : child;\n var childBottom = childNode.borderBottom ? childNode.borderBottom : child;\n var thisWeight = childNode.borderTop ? weight : 2 * weight;\n var minlen = childTop !== childBottom ? 1 : height - depths[v] + 1;\n\n g.setEdge(top, childTop, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true\n });\n\n g.setEdge(childBottom, bottom, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true\n });\n });\n\n if (!g.parent(v)) {\n g.setEdge(root, top, { weight: 0, minlen: height + depths[v] });\n }\n}\n\nfunction treeDepths(g) {\n var depths = {};\n function dfs(v, depth) {\n var children = g.children(v);\n if (children && children.length) {\n _.forEach(children, function(child) {\n dfs(child, depth + 1);\n });\n }\n depths[v] = depth;\n }\n _.forEach(g.children(), function(v) { dfs(v, 1); });\n return depths;\n}\n\nfunction sumWeights(g) {\n return _.reduce(g.edges(), function(acc, e) {\n return acc + g.edge(e).weight;\n }, 0);\n}\n\nfunction cleanup(g) {\n var graphLabel = g.graph();\n g.removeNode(graphLabel.nestingRoot);\n delete graphLabel.nestingRoot;\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (edge.nestingEdge) {\n g.removeEdge(e);\n }\n });\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar util = require(\"./util\");\n\nmodule.exports = {\n run: run,\n undo: undo\n};\n\n/*\n * Breaks any long edges in the graph into short segments that span 1 layer\n * each. This operation is undoable with the denormalize function.\n *\n * Pre-conditions:\n *\n * 1. The input graph is a DAG.\n * 2. Each node in the graph has a \"rank\" property.\n *\n * Post-condition:\n *\n * 1. All edges in the graph have a length of 1.\n * 2. Dummy nodes are added where edges have been split into segments.\n * 3. The graph is augmented with a \"dummyChains\" attribute which contains\n * the first dummy in each chain of dummy nodes produced.\n */\nfunction run(g) {\n g.graph().dummyChains = [];\n _.forEach(g.edges(), function(edge) { normalizeEdge(g, edge); });\n}\n\nfunction normalizeEdge(g, e) {\n var v = e.v;\n var vRank = g.node(v).rank;\n var w = e.w;\n var wRank = g.node(w).rank;\n var name = e.name;\n var edgeLabel = g.edge(e);\n var labelRank = edgeLabel.labelRank;\n\n if (wRank === vRank + 1) return;\n\n g.removeEdge(e);\n\n var dummy, attrs, i;\n for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) {\n edgeLabel.points = [];\n attrs = {\n width: 0, height: 0,\n edgeLabel: edgeLabel, edgeObj: e,\n rank: vRank\n };\n dummy = util.addDummyNode(g, \"edge\", attrs, \"_d\");\n if (vRank === labelRank) {\n attrs.width = edgeLabel.width;\n attrs.height = edgeLabel.height;\n attrs.dummy = \"edge-label\";\n attrs.labelpos = edgeLabel.labelpos;\n }\n g.setEdge(v, dummy, { weight: edgeLabel.weight }, name);\n if (i === 0) {\n g.graph().dummyChains.push(dummy);\n }\n v = dummy;\n }\n\n g.setEdge(v, w, { weight: edgeLabel.weight }, name);\n}\n\nfunction undo(g) {\n _.forEach(g.graph().dummyChains, function(v) {\n var node = g.node(v);\n var origLabel = node.edgeLabel;\n var w;\n g.setEdge(node.edgeObj, origLabel);\n while (node.dummy) {\n w = g.successors(v)[0];\n g.removeNode(v);\n origLabel.points.push({ x: node.x, y: node.y });\n if (node.dummy === \"edge-label\") {\n origLabel.x = node.x;\n origLabel.y = node.y;\n origLabel.width = node.width;\n origLabel.height = node.height;\n }\n v = w;\n node = g.node(v);\n }\n });\n}\n","var _ = require(\"../lodash\");\n\nmodule.exports = addSubgraphConstraints;\n\nfunction addSubgraphConstraints(g, cg, vs) {\n var prev = {},\n rootPrev;\n\n _.forEach(vs, function(v) {\n var child = g.parent(v),\n parent,\n prevChild;\n while (child) {\n parent = g.parent(child);\n if (parent) {\n prevChild = prev[parent];\n prev[parent] = child;\n } else {\n prevChild = rootPrev;\n rootPrev = child;\n }\n if (prevChild && prevChild !== child) {\n cg.setEdge(prevChild, child);\n return;\n }\n child = parent;\n }\n });\n\n /*\n function dfs(v) {\n var children = v ? g.children(v) : g.children();\n if (children.length) {\n var min = Number.POSITIVE_INFINITY,\n subgraphs = [];\n _.each(children, function(child) {\n var childMin = dfs(child);\n if (g.children(child).length) {\n subgraphs.push({ v: child, order: childMin });\n }\n min = Math.min(min, childMin);\n });\n _.reduce(_.sortBy(subgraphs, \"order\"), function(prev, curr) {\n cg.setEdge(prev.v, curr.v);\n return curr;\n });\n return min;\n }\n return g.node(v).order;\n }\n dfs(undefined);\n */\n}\n","var _ = require(\"../lodash\");\n\nmodule.exports = barycenter;\n\nfunction barycenter(g, movable) {\n return _.map(movable, function(v) {\n var inV = g.inEdges(v);\n if (!inV.length) {\n return { v: v };\n } else {\n var result = _.reduce(inV, function(acc, e) {\n var edge = g.edge(e),\n nodeU = g.node(e.v);\n return {\n sum: acc.sum + (edge.weight * nodeU.order),\n weight: acc.weight + edge.weight\n };\n }, { sum: 0, weight: 0 });\n\n return {\n v: v,\n barycenter: result.sum / result.weight,\n weight: result.weight\n };\n }\n });\n}\n\n","var _ = require(\"../lodash\");\nvar Graph = require(\"../graphlib\").Graph;\n\nmodule.exports = buildLayerGraph;\n\n/*\n * Constructs a graph that can be used to sort a layer of nodes. The graph will\n * contain all base and subgraph nodes from the request layer in their original\n * hierarchy and any edges that are incident on these nodes and are of the type\n * requested by the \"relationship\" parameter.\n *\n * Nodes from the requested rank that do not have parents are assigned a root\n * node in the output graph, which is set in the root graph attribute. This\n * makes it easy to walk the hierarchy of movable nodes during ordering.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG\n * 2. Base nodes in the input graph have a rank attribute\n * 3. Subgraph nodes in the input graph has minRank and maxRank attributes\n * 4. Edges have an assigned weight\n *\n * Post-conditions:\n *\n * 1. Output graph has all nodes in the movable rank with preserved\n * hierarchy.\n * 2. Root nodes in the movable layer are made children of the node\n * indicated by the root attribute of the graph.\n * 3. Non-movable nodes incident on movable nodes, selected by the\n * relationship parameter, are included in the graph (without hierarchy).\n * 4. Edges incident on movable nodes, selected by the relationship\n * parameter, are added to the output graph.\n * 5. The weights for copied edges are aggregated as need, since the output\n * graph is not a multi-graph.\n */\nfunction buildLayerGraph(g, rank, relationship) {\n var root = createRootNode(g),\n result = new Graph({ compound: true }).setGraph({ root: root })\n .setDefaultNodeLabel(function(v) { return g.node(v); });\n\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v),\n parent = g.parent(v);\n\n if (node.rank === rank || node.minRank <= rank && rank <= node.maxRank) {\n result.setNode(v);\n result.setParent(v, parent || root);\n\n // This assumes we have only short edges!\n _.forEach(g[relationship](v), function(e) {\n var u = e.v === v ? e.w : e.v,\n edge = result.edge(u, v),\n weight = !_.isUndefined(edge) ? edge.weight : 0;\n result.setEdge(u, v, { weight: g.edge(e).weight + weight });\n });\n\n if (_.has(node, \"minRank\")) {\n result.setNode(v, {\n borderLeft: node.borderLeft[rank],\n borderRight: node.borderRight[rank]\n });\n }\n }\n });\n\n return result;\n}\n\nfunction createRootNode(g) {\n var v;\n while (g.hasNode((v = _.uniqueId(\"_root\"))));\n return v;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\n\nmodule.exports = crossCount;\n\n/*\n * A function that takes a layering (an array of layers, each with an array of\n * ordererd nodes) and a graph and returns a weighted crossing count.\n *\n * Pre-conditions:\n *\n * 1. Input graph must be simple (not a multigraph), directed, and include\n * only simple edges.\n * 2. Edges in the input graph must have assigned weights.\n *\n * Post-conditions:\n *\n * 1. The graph and layering matrix are left unchanged.\n *\n * This algorithm is derived from Barth, et al., \"Bilayer Cross Counting.\"\n */\nfunction crossCount(g, layering) {\n var cc = 0;\n for (var i = 1; i < layering.length; ++i) {\n cc += twoLayerCrossCount(g, layering[i-1], layering[i]);\n }\n return cc;\n}\n\nfunction twoLayerCrossCount(g, northLayer, southLayer) {\n // Sort all of the edges between the north and south layers by their position\n // in the north layer and then the south. Map these edges to the position of\n // their head in the south layer.\n var southPos = _.zipObject(southLayer,\n _.map(southLayer, function (v, i) { return i; }));\n var southEntries = _.flatten(_.map(northLayer, function(v) {\n return _.sortBy(_.map(g.outEdges(v), function(e) {\n return { pos: southPos[e.w], weight: g.edge(e).weight };\n }), \"pos\");\n }), true);\n\n // Build the accumulator tree\n var firstIndex = 1;\n while (firstIndex < southLayer.length) firstIndex <<= 1;\n var treeSize = 2 * firstIndex - 1;\n firstIndex -= 1;\n var tree = _.map(new Array(treeSize), function() { return 0; });\n\n // Calculate the weighted crossings\n var cc = 0;\n _.forEach(southEntries.forEach(function(entry) {\n var index = entry.pos + firstIndex;\n tree[index] += entry.weight;\n var weightSum = 0;\n while (index > 0) {\n if (index % 2) {\n weightSum += tree[index + 1];\n }\n index = (index - 1) >> 1;\n tree[index] += entry.weight;\n }\n cc += entry.weight * weightSum;\n }));\n\n return cc;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar initOrder = require(\"./init-order\");\nvar crossCount = require(\"./cross-count\");\nvar sortSubgraph = require(\"./sort-subgraph\");\nvar buildLayerGraph = require(\"./build-layer-graph\");\nvar addSubgraphConstraints = require(\"./add-subgraph-constraints\");\nvar Graph = require(\"../graphlib\").Graph;\nvar util = require(\"../util\");\n\nmodule.exports = order;\n\n/*\n * Applies heuristics to minimize edge crossings in the graph and sets the best\n * order solution as an order attribute on each node.\n *\n * Pre-conditions:\n *\n * 1. Graph must be DAG\n * 2. Graph nodes must be objects with a \"rank\" attribute\n * 3. Graph edges must have the \"weight\" attribute\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have an \"order\" attribute based on the results of the\n * algorithm.\n */\nfunction order(g) {\n var maxRank = util.maxRank(g),\n downLayerGraphs = buildLayerGraphs(g, _.range(1, maxRank + 1), \"inEdges\"),\n upLayerGraphs = buildLayerGraphs(g, _.range(maxRank - 1, -1, -1), \"outEdges\");\n\n var layering = initOrder(g);\n assignOrder(g, layering);\n\n var bestCC = Number.POSITIVE_INFINITY,\n best;\n\n for (var i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {\n sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2);\n\n layering = util.buildLayerMatrix(g);\n var cc = crossCount(g, layering);\n if (cc < bestCC) {\n lastBest = 0;\n best = _.cloneDeep(layering);\n bestCC = cc;\n }\n }\n\n assignOrder(g, best);\n}\n\nfunction buildLayerGraphs(g, ranks, relationship) {\n return _.map(ranks, function(rank) {\n return buildLayerGraph(g, rank, relationship);\n });\n}\n\nfunction sweepLayerGraphs(layerGraphs, biasRight) {\n var cg = new Graph();\n _.forEach(layerGraphs, function(lg) {\n var root = lg.graph().root;\n var sorted = sortSubgraph(lg, root, cg, biasRight);\n _.forEach(sorted.vs, function(v, i) {\n lg.node(v).order = i;\n });\n addSubgraphConstraints(lg, cg, sorted.vs);\n });\n}\n\nfunction assignOrder(g, layering) {\n _.forEach(layering, function(layer) {\n _.forEach(layer, function(v, i) {\n g.node(v).order = i;\n });\n });\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\n\nmodule.exports = initOrder;\n\n/*\n * Assigns an initial order value for each node by performing a DFS search\n * starting from nodes in the first rank. Nodes are assigned an order in their\n * rank as they are first visited.\n *\n * This approach comes from Gansner, et al., \"A Technique for Drawing Directed\n * Graphs.\"\n *\n * Returns a layering matrix with an array per layer and each layer sorted by\n * the order of its nodes.\n */\nfunction initOrder(g) {\n var visited = {};\n var simpleNodes = _.filter(g.nodes(), function(v) {\n return !g.children(v).length;\n });\n var maxRank = _.max(_.map(simpleNodes, function(v) { return g.node(v).rank; }));\n var layers = _.map(_.range(maxRank + 1), function() { return []; });\n\n function dfs(v) {\n if (_.has(visited, v)) return;\n visited[v] = true;\n var node = g.node(v);\n layers[node.rank].push(v);\n _.forEach(g.successors(v), dfs);\n }\n\n var orderedVs = _.sortBy(simpleNodes, function(v) { return g.node(v).rank; });\n _.forEach(orderedVs, dfs);\n\n return layers;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\n\nmodule.exports = resolveConflicts;\n\n/*\n * Given a list of entries of the form {v, barycenter, weight} and a\n * constraint graph this function will resolve any conflicts between the\n * constraint graph and the barycenters for the entries. If the barycenters for\n * an entry would violate a constraint in the constraint graph then we coalesce\n * the nodes in the conflict into a new node that respects the contraint and\n * aggregates barycenter and weight information.\n *\n * This implementation is based on the description in Forster, \"A Fast and\n * Simple Hueristic for Constrained Two-Level Crossing Reduction,\" thought it\n * differs in some specific details.\n *\n * Pre-conditions:\n *\n * 1. Each entry has the form {v, barycenter, weight}, or if the node has\n * no barycenter, then {v}.\n *\n * Returns:\n *\n * A new list of entries of the form {vs, i, barycenter, weight}. The list\n * `vs` may either be a singleton or it may be an aggregation of nodes\n * ordered such that they do not violate constraints from the constraint\n * graph. The property `i` is the lowest original index of any of the\n * elements in `vs`.\n */\nfunction resolveConflicts(entries, cg) {\n var mappedEntries = {};\n _.forEach(entries, function(entry, i) {\n var tmp = mappedEntries[entry.v] = {\n indegree: 0,\n \"in\": [],\n out: [],\n vs: [entry.v],\n i: i\n };\n if (!_.isUndefined(entry.barycenter)) {\n tmp.barycenter = entry.barycenter;\n tmp.weight = entry.weight;\n }\n });\n\n _.forEach(cg.edges(), function(e) {\n var entryV = mappedEntries[e.v];\n var entryW = mappedEntries[e.w];\n if (!_.isUndefined(entryV) && !_.isUndefined(entryW)) {\n entryW.indegree++;\n entryV.out.push(mappedEntries[e.w]);\n }\n });\n\n var sourceSet = _.filter(mappedEntries, function(entry) {\n return !entry.indegree;\n });\n\n return doResolveConflicts(sourceSet);\n}\n\nfunction doResolveConflicts(sourceSet) {\n var entries = [];\n\n function handleIn(vEntry) {\n return function(uEntry) {\n if (uEntry.merged) {\n return;\n }\n if (_.isUndefined(uEntry.barycenter) ||\n _.isUndefined(vEntry.barycenter) ||\n uEntry.barycenter >= vEntry.barycenter) {\n mergeEntries(vEntry, uEntry);\n }\n };\n }\n\n function handleOut(vEntry) {\n return function(wEntry) {\n wEntry[\"in\"].push(vEntry);\n if (--wEntry.indegree === 0) {\n sourceSet.push(wEntry);\n }\n };\n }\n\n while (sourceSet.length) {\n var entry = sourceSet.pop();\n entries.push(entry);\n _.forEach(entry[\"in\"].reverse(), handleIn(entry));\n _.forEach(entry.out, handleOut(entry));\n }\n\n return _.map(_.filter(entries, function(entry) { return !entry.merged; }),\n function(entry) {\n return _.pick(entry, [\"vs\", \"i\", \"barycenter\", \"weight\"]);\n });\n\n}\n\nfunction mergeEntries(target, source) {\n var sum = 0;\n var weight = 0;\n\n if (target.weight) {\n sum += target.barycenter * target.weight;\n weight += target.weight;\n }\n\n if (source.weight) {\n sum += source.barycenter * source.weight;\n weight += source.weight;\n }\n\n target.vs = source.vs.concat(target.vs);\n target.barycenter = sum / weight;\n target.weight = weight;\n target.i = Math.min(source.i, target.i);\n source.merged = true;\n}\n","var _ = require(\"../lodash\");\nvar barycenter = require(\"./barycenter\");\nvar resolveConflicts = require(\"./resolve-conflicts\");\nvar sort = require(\"./sort\");\n\nmodule.exports = sortSubgraph;\n\nfunction sortSubgraph(g, v, cg, biasRight) {\n var movable = g.children(v);\n var node = g.node(v);\n var bl = node ? node.borderLeft : undefined;\n var br = node ? node.borderRight: undefined;\n var subgraphs = {};\n\n if (bl) {\n movable = _.filter(movable, function(w) {\n return w !== bl && w !== br;\n });\n }\n\n var barycenters = barycenter(g, movable);\n _.forEach(barycenters, function(entry) {\n if (g.children(entry.v).length) {\n var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight);\n subgraphs[entry.v] = subgraphResult;\n if (_.has(subgraphResult, \"barycenter\")) {\n mergeBarycenters(entry, subgraphResult);\n }\n }\n });\n\n var entries = resolveConflicts(barycenters, cg);\n expandSubgraphs(entries, subgraphs);\n\n var result = sort(entries, biasRight);\n\n if (bl) {\n result.vs = _.flatten([bl, result.vs, br], true);\n if (g.predecessors(bl).length) {\n var blPred = g.node(g.predecessors(bl)[0]),\n brPred = g.node(g.predecessors(br)[0]);\n if (!_.has(result, \"barycenter\")) {\n result.barycenter = 0;\n result.weight = 0;\n }\n result.barycenter = (result.barycenter * result.weight +\n blPred.order + brPred.order) / (result.weight + 2);\n result.weight += 2;\n }\n }\n\n return result;\n}\n\nfunction expandSubgraphs(entries, subgraphs) {\n _.forEach(entries, function(entry) {\n entry.vs = _.flatten(entry.vs.map(function(v) {\n if (subgraphs[v]) {\n return subgraphs[v].vs;\n }\n return v;\n }), true);\n });\n}\n\nfunction mergeBarycenters(target, other) {\n if (!_.isUndefined(target.barycenter)) {\n target.barycenter = (target.barycenter * target.weight +\n other.barycenter * other.weight) /\n (target.weight + other.weight);\n target.weight += other.weight;\n } else {\n target.barycenter = other.barycenter;\n target.weight = other.weight;\n }\n}\n","var _ = require(\"../lodash\");\nvar util = require(\"../util\");\n\nmodule.exports = sort;\n\nfunction sort(entries, biasRight) {\n var parts = util.partition(entries, function(entry) {\n return _.has(entry, \"barycenter\");\n });\n var sortable = parts.lhs,\n unsortable = _.sortBy(parts.rhs, function(entry) { return -entry.i; }),\n vs = [],\n sum = 0,\n weight = 0,\n vsIndex = 0;\n\n sortable.sort(compareWithBias(!!biasRight));\n\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n\n _.forEach(sortable, function (entry) {\n vsIndex += entry.vs.length;\n vs.push(entry.vs);\n sum += entry.barycenter * entry.weight;\n weight += entry.weight;\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n });\n\n var result = { vs: _.flatten(vs, true) };\n if (weight) {\n result.barycenter = sum / weight;\n result.weight = weight;\n }\n return result;\n}\n\nfunction consumeUnsortable(vs, unsortable, index) {\n var last;\n while (unsortable.length && (last = _.last(unsortable)).i <= index) {\n unsortable.pop();\n vs.push(last.vs);\n index++;\n }\n return index;\n}\n\nfunction compareWithBias(bias) {\n return function(entryV, entryW) {\n if (entryV.barycenter < entryW.barycenter) {\n return -1;\n } else if (entryV.barycenter > entryW.barycenter) {\n return 1;\n }\n\n return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;\n };\n}\n","var _ = require(\"./lodash\");\n\nmodule.exports = parentDummyChains;\n\nfunction parentDummyChains(g) {\n var postorderNums = postorder(g);\n\n _.forEach(g.graph().dummyChains, function(v) {\n var node = g.node(v);\n var edgeObj = node.edgeObj;\n var pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w);\n var path = pathData.path;\n var lca = pathData.lca;\n var pathIdx = 0;\n var pathV = path[pathIdx];\n var ascending = true;\n\n while (v !== edgeObj.w) {\n node = g.node(v);\n\n if (ascending) {\n while ((pathV = path[pathIdx]) !== lca &&\n g.node(pathV).maxRank < node.rank) {\n pathIdx++;\n }\n\n if (pathV === lca) {\n ascending = false;\n }\n }\n\n if (!ascending) {\n while (pathIdx < path.length - 1 &&\n g.node(pathV = path[pathIdx + 1]).minRank <= node.rank) {\n pathIdx++;\n }\n pathV = path[pathIdx];\n }\n\n g.setParent(v, pathV);\n v = g.successors(v)[0];\n }\n });\n}\n\n// Find a path from v to w through the lowest common ancestor (LCA). Return the\n// full path and the LCA.\nfunction findPath(g, postorderNums, v, w) {\n var vPath = [];\n var wPath = [];\n var low = Math.min(postorderNums[v].low, postorderNums[w].low);\n var lim = Math.max(postorderNums[v].lim, postorderNums[w].lim);\n var parent;\n var lca;\n\n // Traverse up from v to find the LCA\n parent = v;\n do {\n parent = g.parent(parent);\n vPath.push(parent);\n } while (parent &&\n (postorderNums[parent].low > low || lim > postorderNums[parent].lim));\n lca = parent;\n\n // Traverse from w to LCA\n parent = w;\n while ((parent = g.parent(parent)) !== lca) {\n wPath.push(parent);\n }\n\n return { path: vPath.concat(wPath.reverse()), lca: lca };\n}\n\nfunction postorder(g) {\n var result = {};\n var lim = 0;\n\n function dfs(v) {\n var low = lim;\n _.forEach(g.children(v), dfs);\n result[v] = { low: low, lim: lim++ };\n }\n _.forEach(g.children(), dfs);\n\n return result;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar Graph = require(\"../graphlib\").Graph;\nvar util = require(\"../util\");\n\n/*\n * This module provides coordinate assignment based on Brandes and Köpf, \"Fast\n * and Simple Horizontal Coordinate Assignment.\"\n */\n\nmodule.exports = {\n positionX: positionX,\n findType1Conflicts: findType1Conflicts,\n findType2Conflicts: findType2Conflicts,\n addConflict: addConflict,\n hasConflict: hasConflict,\n verticalAlignment: verticalAlignment,\n horizontalCompaction: horizontalCompaction,\n alignCoordinates: alignCoordinates,\n findSmallestWidthAlignment: findSmallestWidthAlignment,\n balance: balance\n};\n\n/*\n * Marks all edges in the graph with a type-1 conflict with the \"type1Conflict\"\n * property. A type-1 conflict is one where a non-inner segment crosses an\n * inner segment. An inner segment is an edge with both incident nodes marked\n * with the \"dummy\" property.\n *\n * This algorithm scans layer by layer, starting with the second, for type-1\n * conflicts between the current layer and the previous layer. For each layer\n * it scans the nodes from left to right until it reaches one that is incident\n * on an inner segment. It then scans predecessors to determine if they have\n * edges that cross that inner segment. At the end a final scan is done for all\n * nodes on the current rank to see if they cross the last visited inner\n * segment.\n *\n * This algorithm (safely) assumes that a dummy node will only be incident on a\n * single node in the layers being scanned.\n */\nfunction findType1Conflicts(g, layering) {\n var conflicts = {};\n\n function visitLayer(prevLayer, layer) {\n var\n // last visited node in the previous layer that is incident on an inner\n // segment.\n k0 = 0,\n // Tracks the last node in this layer scanned for crossings with a type-1\n // segment.\n scanPos = 0,\n prevLayerLength = prevLayer.length,\n lastNode = _.last(layer);\n\n _.forEach(layer, function(v, i) {\n var w = findOtherInnerSegmentNode(g, v),\n k1 = w ? g.node(w).order : prevLayerLength;\n\n if (w || v === lastNode) {\n _.forEach(layer.slice(scanPos, i +1), function(scanNode) {\n _.forEach(g.predecessors(scanNode), function(u) {\n var uLabel = g.node(u),\n uPos = uLabel.order;\n if ((uPos < k0 || k1 < uPos) &&\n !(uLabel.dummy && g.node(scanNode).dummy)) {\n addConflict(conflicts, u, scanNode);\n }\n });\n });\n scanPos = i + 1;\n k0 = k1;\n }\n });\n\n return layer;\n }\n\n _.reduce(layering, visitLayer);\n return conflicts;\n}\n\nfunction findType2Conflicts(g, layering) {\n var conflicts = {};\n\n function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {\n var v;\n _.forEach(_.range(southPos, southEnd), function(i) {\n v = south[i];\n if (g.node(v).dummy) {\n _.forEach(g.predecessors(v), function(u) {\n var uNode = g.node(u);\n if (uNode.dummy &&\n (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) {\n addConflict(conflicts, u, v);\n }\n });\n }\n });\n }\n\n\n function visitLayer(north, south) {\n var prevNorthPos = -1,\n nextNorthPos,\n southPos = 0;\n\n _.forEach(south, function(v, southLookahead) {\n if (g.node(v).dummy === \"border\") {\n var predecessors = g.predecessors(v);\n if (predecessors.length) {\n nextNorthPos = g.node(predecessors[0]).order;\n scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos);\n southPos = southLookahead;\n prevNorthPos = nextNorthPos;\n }\n }\n scan(south, southPos, south.length, nextNorthPos, north.length);\n });\n\n return south;\n }\n\n _.reduce(layering, visitLayer);\n return conflicts;\n}\n\nfunction findOtherInnerSegmentNode(g, v) {\n if (g.node(v).dummy) {\n return _.find(g.predecessors(v), function(u) {\n return g.node(u).dummy;\n });\n }\n}\n\nfunction addConflict(conflicts, v, w) {\n if (v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n\n var conflictsV = conflicts[v];\n if (!conflictsV) {\n conflicts[v] = conflictsV = {};\n }\n conflictsV[w] = true;\n}\n\nfunction hasConflict(conflicts, v, w) {\n if (v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return _.has(conflicts[v], w);\n}\n\n/*\n * Try to align nodes into vertical \"blocks\" where possible. This algorithm\n * attempts to align a node with one of its median neighbors. If the edge\n * connecting a neighbor is a type-1 conflict then we ignore that possibility.\n * If a previous node has already formed a block with a node after the node\n * we're trying to form a block with, we also ignore that possibility - our\n * blocks would be split in that scenario.\n */\nfunction verticalAlignment(g, layering, conflicts, neighborFn) {\n var root = {},\n align = {},\n pos = {};\n\n // We cache the position here based on the layering because the graph and\n // layering may be out of sync. The layering matrix is manipulated to\n // generate different extreme alignments.\n _.forEach(layering, function(layer) {\n _.forEach(layer, function(v, order) {\n root[v] = v;\n align[v] = v;\n pos[v] = order;\n });\n });\n\n _.forEach(layering, function(layer) {\n var prevIdx = -1;\n _.forEach(layer, function(v) {\n var ws = neighborFn(v);\n if (ws.length) {\n ws = _.sortBy(ws, function(w) { return pos[w]; });\n var mp = (ws.length - 1) / 2;\n for (var i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) {\n var w = ws[i];\n if (align[v] === v &&\n prevIdx < pos[w] &&\n !hasConflict(conflicts, v, w)) {\n align[w] = v;\n align[v] = root[v] = root[w];\n prevIdx = pos[w];\n }\n }\n }\n });\n });\n\n return { root: root, align: align };\n}\n\nfunction horizontalCompaction(g, layering, root, align, reverseSep) {\n // This portion of the algorithm differs from BK due to a number of problems.\n // Instead of their algorithm we construct a new block graph and do two\n // sweeps. The first sweep places blocks with the smallest possible\n // coordinates. The second sweep removes unused space by moving blocks to the\n // greatest coordinates without violating separation.\n var xs = {},\n blockG = buildBlockGraph(g, layering, root, reverseSep),\n borderType = reverseSep ? \"borderLeft\" : \"borderRight\";\n\n function iterate(setXsFunc, nextNodesFunc) {\n var stack = blockG.nodes();\n var elem = stack.pop();\n var visited = {};\n while (elem) {\n if (visited[elem]) {\n setXsFunc(elem);\n } else {\n visited[elem] = true;\n stack.push(elem);\n stack = stack.concat(nextNodesFunc(elem));\n }\n\n elem = stack.pop();\n }\n }\n\n // First pass, assign smallest coordinates\n function pass1(elem) {\n xs[elem] = blockG.inEdges(elem).reduce(function(acc, e) {\n return Math.max(acc, xs[e.v] + blockG.edge(e));\n }, 0);\n }\n\n // Second pass, assign greatest coordinates\n function pass2(elem) {\n var min = blockG.outEdges(elem).reduce(function(acc, e) {\n return Math.min(acc, xs[e.w] - blockG.edge(e));\n }, Number.POSITIVE_INFINITY);\n\n var node = g.node(elem);\n if (min !== Number.POSITIVE_INFINITY && node.borderType !== borderType) {\n xs[elem] = Math.max(xs[elem], min);\n }\n }\n\n iterate(pass1, blockG.predecessors.bind(blockG));\n iterate(pass2, blockG.successors.bind(blockG));\n\n // Assign x coordinates to all nodes\n _.forEach(align, function(v) {\n xs[v] = xs[root[v]];\n });\n\n return xs;\n}\n\n\nfunction buildBlockGraph(g, layering, root, reverseSep) {\n var blockGraph = new Graph(),\n graphLabel = g.graph(),\n sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep);\n\n _.forEach(layering, function(layer) {\n var u;\n _.forEach(layer, function(v) {\n var vRoot = root[v];\n blockGraph.setNode(vRoot);\n if (u) {\n var uRoot = root[u],\n prevMax = blockGraph.edge(uRoot, vRoot);\n blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u), prevMax || 0));\n }\n u = v;\n });\n });\n\n return blockGraph;\n}\n\n/*\n * Returns the alignment that has the smallest width of the given alignments.\n */\nfunction findSmallestWidthAlignment(g, xss) {\n return _.minBy(_.values(xss), function (xs) {\n var max = Number.NEGATIVE_INFINITY;\n var min = Number.POSITIVE_INFINITY;\n\n _.forIn(xs, function (x, v) {\n var halfWidth = width(g, v) / 2;\n\n max = Math.max(x + halfWidth, max);\n min = Math.min(x - halfWidth, min);\n });\n\n return max - min;\n });\n}\n\n/*\n * Align the coordinates of each of the layout alignments such that\n * left-biased alignments have their minimum coordinate at the same point as\n * the minimum coordinate of the smallest width alignment and right-biased\n * alignments have their maximum coordinate at the same point as the maximum\n * coordinate of the smallest width alignment.\n */\nfunction alignCoordinates(xss, alignTo) {\n var alignToVals = _.values(alignTo),\n alignToMin = _.min(alignToVals),\n alignToMax = _.max(alignToVals);\n\n _.forEach([\"u\", \"d\"], function(vert) {\n _.forEach([\"l\", \"r\"], function(horiz) {\n var alignment = vert + horiz,\n xs = xss[alignment],\n delta;\n if (xs === alignTo) return;\n\n var xsVals = _.values(xs);\n delta = horiz === \"l\" ? alignToMin - _.min(xsVals) : alignToMax - _.max(xsVals);\n\n if (delta) {\n xss[alignment] = _.mapValues(xs, function(x) { return x + delta; });\n }\n });\n });\n}\n\nfunction balance(xss, align) {\n return _.mapValues(xss.ul, function(ignore, v) {\n if (align) {\n return xss[align.toLowerCase()][v];\n } else {\n var xs = _.sortBy(_.map(xss, v));\n return (xs[1] + xs[2]) / 2;\n }\n });\n}\n\nfunction positionX(g) {\n var layering = util.buildLayerMatrix(g);\n var conflicts = _.merge(\n findType1Conflicts(g, layering),\n findType2Conflicts(g, layering));\n\n var xss = {};\n var adjustedLayering;\n _.forEach([\"u\", \"d\"], function(vert) {\n adjustedLayering = vert === \"u\" ? layering : _.values(layering).reverse();\n _.forEach([\"l\", \"r\"], function(horiz) {\n if (horiz === \"r\") {\n adjustedLayering = _.map(adjustedLayering, function(inner) {\n return _.values(inner).reverse();\n });\n }\n\n var neighborFn = (vert === \"u\" ? g.predecessors : g.successors).bind(g);\n var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);\n var xs = horizontalCompaction(g, adjustedLayering,\n align.root, align.align, horiz === \"r\");\n if (horiz === \"r\") {\n xs = _.mapValues(xs, function(x) { return -x; });\n }\n xss[vert + horiz] = xs;\n });\n });\n\n var smallestWidth = findSmallestWidthAlignment(g, xss);\n alignCoordinates(xss, smallestWidth);\n return balance(xss, g.graph().align);\n}\n\nfunction sep(nodeSep, edgeSep, reverseSep) {\n return function(g, v, w) {\n var vLabel = g.node(v);\n var wLabel = g.node(w);\n var sum = 0;\n var delta;\n\n sum += vLabel.width / 2;\n if (_.has(vLabel, \"labelpos\")) {\n switch (vLabel.labelpos.toLowerCase()) {\n case \"l\": delta = -vLabel.width / 2; break;\n case \"r\": delta = vLabel.width / 2; break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n sum += (vLabel.dummy ? edgeSep : nodeSep) / 2;\n sum += (wLabel.dummy ? edgeSep : nodeSep) / 2;\n\n sum += wLabel.width / 2;\n if (_.has(wLabel, \"labelpos\")) {\n switch (wLabel.labelpos.toLowerCase()) {\n case \"l\": delta = wLabel.width / 2; break;\n case \"r\": delta = -wLabel.width / 2; break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n return sum;\n };\n}\n\nfunction width(g, v) {\n return g.node(v).width;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar util = require(\"../util\");\nvar positionX = require(\"./bk\").positionX;\n\nmodule.exports = position;\n\nfunction position(g) {\n g = util.asNonCompoundGraph(g);\n\n positionY(g);\n _.forEach(positionX(g), function(x, v) {\n g.node(v).x = x;\n });\n}\n\nfunction positionY(g) {\n var layering = util.buildLayerMatrix(g);\n var rankSep = g.graph().ranksep;\n var prevY = 0;\n _.forEach(layering, function(layer) {\n var maxHeight = _.max(_.map(layer, function(v) { return g.node(v).height; }));\n _.forEach(layer, function(v) {\n g.node(v).y = prevY + maxHeight / 2;\n });\n prevY += maxHeight + rankSep;\n });\n}\n\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar Graph = require(\"../graphlib\").Graph;\nvar slack = require(\"./util\").slack;\n\nmodule.exports = feasibleTree;\n\n/*\n * Constructs a spanning tree with tight edges and adjusted the input node's\n * ranks to achieve this. A tight edge is one that is has a length that matches\n * its \"minlen\" attribute.\n *\n * The basic structure for this function is derived from Gansner, et al., \"A\n * Technique for Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a DAG.\n * 2. Graph must be connected.\n * 3. Graph must have at least one node.\n * 5. Graph nodes must have been previously assigned a \"rank\" property that\n * respects the \"minlen\" property of incident edges.\n * 6. Graph edges must have a \"minlen\" property.\n *\n * Post-conditions:\n *\n * - Graph nodes will have their rank adjusted to ensure that all edges are\n * tight.\n *\n * Returns a tree (undirected graph) that is constructed using only \"tight\"\n * edges.\n */\nfunction feasibleTree(g) {\n var t = new Graph({ directed: false });\n\n // Choose arbitrary node from which to start our tree\n var start = g.nodes()[0];\n var size = g.nodeCount();\n t.setNode(start, {});\n\n var edge, delta;\n while (tightTree(t, g) < size) {\n edge = findMinSlackEdge(t, g);\n delta = t.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge);\n shiftRanks(t, g, delta);\n }\n\n return t;\n}\n\n/*\n * Finds a maximal tree of tight edges and returns the number of nodes in the\n * tree.\n */\nfunction tightTree(t, g) {\n function dfs(v) {\n _.forEach(g.nodeEdges(v), function(e) {\n var edgeV = e.v,\n w = (v === edgeV) ? e.w : edgeV;\n if (!t.hasNode(w) && !slack(g, e)) {\n t.setNode(w, {});\n t.setEdge(v, w, {});\n dfs(w);\n }\n });\n }\n\n _.forEach(t.nodes(), dfs);\n return t.nodeCount();\n}\n\n/*\n * Finds the edge with the smallest slack that is incident on tree and returns\n * it.\n */\nfunction findMinSlackEdge(t, g) {\n return _.minBy(g.edges(), function(e) {\n if (t.hasNode(e.v) !== t.hasNode(e.w)) {\n return slack(g, e);\n }\n });\n}\n\nfunction shiftRanks(t, g, delta) {\n _.forEach(t.nodes(), function(v) {\n g.node(v).rank += delta;\n });\n}\n","\"use strict\";\n\nvar rankUtil = require(\"./util\");\nvar longestPath = rankUtil.longestPath;\nvar feasibleTree = require(\"./feasible-tree\");\nvar networkSimplex = require(\"./network-simplex\");\n\nmodule.exports = rank;\n\n/*\n * Assigns a rank to each node in the input graph that respects the \"minlen\"\n * constraint specified on edges between nodes.\n *\n * This basic structure is derived from Gansner, et al., \"A Technique for\n * Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a connected DAG\n * 2. Graph nodes must be objects\n * 3. Graph edges must have \"weight\" and \"minlen\" attributes\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have a \"rank\" attribute based on the results of the\n * algorithm. Ranks can start at any index (including negative), we'll\n * fix them up later.\n */\nfunction rank(g) {\n switch(g.graph().ranker) {\n case \"network-simplex\": networkSimplexRanker(g); break;\n case \"tight-tree\": tightTreeRanker(g); break;\n case \"longest-path\": longestPathRanker(g); break;\n default: networkSimplexRanker(g);\n }\n}\n\n// A fast and simple ranker, but results are far from optimal.\nvar longestPathRanker = longestPath;\n\nfunction tightTreeRanker(g) {\n longestPath(g);\n feasibleTree(g);\n}\n\nfunction networkSimplexRanker(g) {\n networkSimplex(g);\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar feasibleTree = require(\"./feasible-tree\");\nvar slack = require(\"./util\").slack;\nvar initRank = require(\"./util\").longestPath;\nvar preorder = require(\"../graphlib\").alg.preorder;\nvar postorder = require(\"../graphlib\").alg.postorder;\nvar simplify = require(\"../util\").simplify;\n\nmodule.exports = networkSimplex;\n\n// Expose some internals for testing purposes\nnetworkSimplex.initLowLimValues = initLowLimValues;\nnetworkSimplex.initCutValues = initCutValues;\nnetworkSimplex.calcCutValue = calcCutValue;\nnetworkSimplex.leaveEdge = leaveEdge;\nnetworkSimplex.enterEdge = enterEdge;\nnetworkSimplex.exchangeEdges = exchangeEdges;\n\n/*\n * The network simplex algorithm assigns ranks to each node in the input graph\n * and iteratively improves the ranking to reduce the length of edges.\n *\n * Preconditions:\n *\n * 1. The input graph must be a DAG.\n * 2. All nodes in the graph must have an object value.\n * 3. All edges in the graph must have \"minlen\" and \"weight\" attributes.\n *\n * Postconditions:\n *\n * 1. All nodes in the graph will have an assigned \"rank\" attribute that has\n * been optimized by the network simplex algorithm. Ranks start at 0.\n *\n *\n * A rough sketch of the algorithm is as follows:\n *\n * 1. Assign initial ranks to each node. We use the longest path algorithm,\n * which assigns ranks to the lowest position possible. In general this\n * leads to very wide bottom ranks and unnecessarily long edges.\n * 2. Construct a feasible tight tree. A tight tree is one such that all\n * edges in the tree have no slack (difference between length of edge\n * and minlen for the edge). This by itself greatly improves the assigned\n * rankings by shorting edges.\n * 3. Iteratively find edges that have negative cut values. Generally a\n * negative cut value indicates that the edge could be removed and a new\n * tree edge could be added to produce a more compact graph.\n *\n * Much of the algorithms here are derived from Gansner, et al., \"A Technique\n * for Drawing Directed Graphs.\" The structure of the file roughly follows the\n * structure of the overall algorithm.\n */\nfunction networkSimplex(g) {\n g = simplify(g);\n initRank(g);\n var t = feasibleTree(g);\n initLowLimValues(t);\n initCutValues(t, g);\n\n var e, f;\n while ((e = leaveEdge(t))) {\n f = enterEdge(t, g, e);\n exchangeEdges(t, g, e, f);\n }\n}\n\n/*\n * Initializes cut values for all edges in the tree.\n */\nfunction initCutValues(t, g) {\n var vs = postorder(t, t.nodes());\n vs = vs.slice(0, vs.length - 1);\n _.forEach(vs, function(v) {\n assignCutValue(t, g, v);\n });\n}\n\nfunction assignCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n t.edge(child, parent).cutvalue = calcCutValue(t, g, child);\n}\n\n/*\n * Given the tight tree, its graph, and a child in the graph calculate and\n * return the cut value for the edge between the child and its parent.\n */\nfunction calcCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n // True if the child is on the tail end of the edge in the directed graph\n var childIsTail = true;\n // The graph's view of the tree edge we're inspecting\n var graphEdge = g.edge(child, parent);\n // The accumulated cut value for the edge between this node and its parent\n var cutValue = 0;\n\n if (!graphEdge) {\n childIsTail = false;\n graphEdge = g.edge(parent, child);\n }\n\n cutValue = graphEdge.weight;\n\n _.forEach(g.nodeEdges(child), function(e) {\n var isOutEdge = e.v === child,\n other = isOutEdge ? e.w : e.v;\n\n if (other !== parent) {\n var pointsToHead = isOutEdge === childIsTail,\n otherWeight = g.edge(e).weight;\n\n cutValue += pointsToHead ? otherWeight : -otherWeight;\n if (isTreeEdge(t, child, other)) {\n var otherCutValue = t.edge(child, other).cutvalue;\n cutValue += pointsToHead ? -otherCutValue : otherCutValue;\n }\n }\n });\n\n return cutValue;\n}\n\nfunction initLowLimValues(tree, root) {\n if (arguments.length < 2) {\n root = tree.nodes()[0];\n }\n dfsAssignLowLim(tree, {}, 1, root);\n}\n\nfunction dfsAssignLowLim(tree, visited, nextLim, v, parent) {\n var low = nextLim;\n var label = tree.node(v);\n\n visited[v] = true;\n _.forEach(tree.neighbors(v), function(w) {\n if (!_.has(visited, w)) {\n nextLim = dfsAssignLowLim(tree, visited, nextLim, w, v);\n }\n });\n\n label.low = low;\n label.lim = nextLim++;\n if (parent) {\n label.parent = parent;\n } else {\n // TODO should be able to remove this when we incrementally update low lim\n delete label.parent;\n }\n\n return nextLim;\n}\n\nfunction leaveEdge(tree) {\n return _.find(tree.edges(), function(e) {\n return tree.edge(e).cutvalue < 0;\n });\n}\n\nfunction enterEdge(t, g, edge) {\n var v = edge.v;\n var w = edge.w;\n\n // For the rest of this function we assume that v is the tail and w is the\n // head, so if we don't have this edge in the graph we should flip it to\n // match the correct orientation.\n if (!g.hasEdge(v, w)) {\n v = edge.w;\n w = edge.v;\n }\n\n var vLabel = t.node(v);\n var wLabel = t.node(w);\n var tailLabel = vLabel;\n var flip = false;\n\n // If the root is in the tail of the edge then we need to flip the logic that\n // checks for the head and tail nodes in the candidates function below.\n if (vLabel.lim > wLabel.lim) {\n tailLabel = wLabel;\n flip = true;\n }\n\n var candidates = _.filter(g.edges(), function(edge) {\n return flip === isDescendant(t, t.node(edge.v), tailLabel) &&\n flip !== isDescendant(t, t.node(edge.w), tailLabel);\n });\n\n return _.minBy(candidates, function(edge) { return slack(g, edge); });\n}\n\nfunction exchangeEdges(t, g, e, f) {\n var v = e.v;\n var w = e.w;\n t.removeEdge(v, w);\n t.setEdge(f.v, f.w, {});\n initLowLimValues(t);\n initCutValues(t, g);\n updateRanks(t, g);\n}\n\nfunction updateRanks(t, g) {\n var root = _.find(t.nodes(), function(v) { return !g.node(v).parent; });\n var vs = preorder(t, root);\n vs = vs.slice(1);\n _.forEach(vs, function(v) {\n var parent = t.node(v).parent,\n edge = g.edge(v, parent),\n flipped = false;\n\n if (!edge) {\n edge = g.edge(parent, v);\n flipped = true;\n }\n\n g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen);\n });\n}\n\n/*\n * Returns true if the edge is in the tree.\n */\nfunction isTreeEdge(tree, u, v) {\n return tree.hasEdge(u, v);\n}\n\n/*\n * Returns true if the specified node is descendant of the root node per the\n * assigned low and lim attributes in the tree.\n */\nfunction isDescendant(tree, vLabel, rootLabel) {\n return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\n\nmodule.exports = {\n longestPath: longestPath,\n slack: slack\n};\n\n/*\n * Initializes ranks for the input graph using the longest path algorithm. This\n * algorithm scales well and is fast in practice, it yields rather poor\n * solutions. Nodes are pushed to the lowest layer possible, leaving the bottom\n * ranks wide and leaving edges longer than necessary. However, due to its\n * speed, this algorithm is good for getting an initial ranking that can be fed\n * into other algorithms.\n *\n * This algorithm does not normalize layers because it will be used by other\n * algorithms in most cases. If using this algorithm directly, be sure to\n * run normalize at the end.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG.\n * 2. Input graph node labels can be assigned properties.\n *\n * Post-conditions:\n *\n * 1. Each node will be assign an (unnormalized) \"rank\" property.\n */\nfunction longestPath(g) {\n var visited = {};\n\n function dfs(v) {\n var label = g.node(v);\n if (_.has(visited, v)) {\n return label.rank;\n }\n visited[v] = true;\n\n var rank = _.min(_.map(g.outEdges(v), function(e) {\n return dfs(e.w) - g.edge(e).minlen;\n }));\n\n if (rank === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3\n rank === undefined || // return value of _.map([]) for Lodash 4\n rank === null) { // return value of _.map([null])\n rank = 0;\n }\n\n return (label.rank = rank);\n }\n\n _.forEach(g.sources(), dfs);\n}\n\n/*\n * Returns the amount of slack for the given edge. The slack is defined as the\n * difference between the length of the edge and its minimum length.\n */\nfunction slack(g, e) {\n return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen;\n}\n","/* eslint \"no-console\": off */\n\n\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar Graph = require(\"./graphlib\").Graph;\n\nmodule.exports = {\n addDummyNode: addDummyNode,\n simplify: simplify,\n asNonCompoundGraph: asNonCompoundGraph,\n successorWeights: successorWeights,\n predecessorWeights: predecessorWeights,\n intersectRect: intersectRect,\n buildLayerMatrix: buildLayerMatrix,\n normalizeRanks: normalizeRanks,\n removeEmptyRanks: removeEmptyRanks,\n addBorderNode: addBorderNode,\n maxRank: maxRank,\n partition: partition,\n time: time,\n notime: notime\n};\n\n/*\n * Adds a dummy node to the graph and return v.\n */\nfunction addDummyNode(g, type, attrs, name) {\n var v;\n do {\n v = _.uniqueId(name);\n } while (g.hasNode(v));\n\n attrs.dummy = type;\n g.setNode(v, attrs);\n return v;\n}\n\n/*\n * Returns a new graph with only simple edges. Handles aggregation of data\n * associated with multi-edges.\n */\nfunction simplify(g) {\n var simplified = new Graph().setGraph(g.graph());\n _.forEach(g.nodes(), function(v) { simplified.setNode(v, g.node(v)); });\n _.forEach(g.edges(), function(e) {\n var simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 };\n var label = g.edge(e);\n simplified.setEdge(e.v, e.w, {\n weight: simpleLabel.weight + label.weight,\n minlen: Math.max(simpleLabel.minlen, label.minlen)\n });\n });\n return simplified;\n}\n\nfunction asNonCompoundGraph(g) {\n var simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph());\n _.forEach(g.nodes(), function(v) {\n if (!g.children(v).length) {\n simplified.setNode(v, g.node(v));\n }\n });\n _.forEach(g.edges(), function(e) {\n simplified.setEdge(e, g.edge(e));\n });\n return simplified;\n}\n\nfunction successorWeights(g) {\n var weightMap = _.map(g.nodes(), function(v) {\n var sucs = {};\n _.forEach(g.outEdges(v), function(e) {\n sucs[e.w] = (sucs[e.w] || 0) + g.edge(e).weight;\n });\n return sucs;\n });\n return _.zipObject(g.nodes(), weightMap);\n}\n\nfunction predecessorWeights(g) {\n var weightMap = _.map(g.nodes(), function(v) {\n var preds = {};\n _.forEach(g.inEdges(v), function(e) {\n preds[e.v] = (preds[e.v] || 0) + g.edge(e).weight;\n });\n return preds;\n });\n return _.zipObject(g.nodes(), weightMap);\n}\n\n/*\n * Finds where a line starting at point ({x, y}) would intersect a rectangle\n * ({x, y, width, height}) if it were pointing at the rectangle's center.\n */\nfunction intersectRect(rect, point) {\n var x = rect.x;\n var y = rect.y;\n\n // Rectangle intersection algorithm from:\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n var dx = point.x - x;\n var dy = point.y - y;\n var w = rect.width / 2;\n var h = rect.height / 2;\n\n if (!dx && !dy) {\n throw new Error(\"Not possible to find intersection inside of the rectangle\");\n }\n\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n // Intersection is top or bottom of rect.\n if (dy < 0) {\n h = -h;\n }\n sx = h * dx / dy;\n sy = h;\n } else {\n // Intersection is left or right of rect.\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = w * dy / dx;\n }\n\n return { x: x + sx, y: y + sy };\n}\n\n/*\n * Given a DAG with each node assigned \"rank\" and \"order\" properties, this\n * function will produce a matrix with the ids of each node.\n */\nfunction buildLayerMatrix(g) {\n var layering = _.map(_.range(maxRank(g) + 1), function() { return []; });\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n var rank = node.rank;\n if (!_.isUndefined(rank)) {\n layering[rank][node.order] = v;\n }\n });\n return layering;\n}\n\n/*\n * Adjusts the ranks for all nodes in the graph such that all nodes v have\n * rank(v) >= 0 and at least one node w has rank(w) = 0.\n */\nfunction normalizeRanks(g) {\n var min = _.min(_.map(g.nodes(), function(v) { return g.node(v).rank; }));\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n if (_.has(node, \"rank\")) {\n node.rank -= min;\n }\n });\n}\n\nfunction removeEmptyRanks(g) {\n // Ranks may not start at 0, so we need to offset them\n var offset = _.min(_.map(g.nodes(), function(v) { return g.node(v).rank; }));\n\n var layers = [];\n _.forEach(g.nodes(), function(v) {\n var rank = g.node(v).rank - offset;\n if (!layers[rank]) {\n layers[rank] = [];\n }\n layers[rank].push(v);\n });\n\n var delta = 0;\n var nodeRankFactor = g.graph().nodeRankFactor;\n _.forEach(layers, function(vs, i) {\n if (_.isUndefined(vs) && i % nodeRankFactor !== 0) {\n --delta;\n } else if (delta) {\n _.forEach(vs, function(v) { g.node(v).rank += delta; });\n }\n });\n}\n\nfunction addBorderNode(g, prefix, rank, order) {\n var node = {\n width: 0,\n height: 0\n };\n if (arguments.length >= 4) {\n node.rank = rank;\n node.order = order;\n }\n return addDummyNode(g, \"border\", node, prefix);\n}\n\nfunction maxRank(g) {\n return _.max(_.map(g.nodes(), function(v) {\n var rank = g.node(v).rank;\n if (!_.isUndefined(rank)) {\n return rank;\n }\n }));\n}\n\n/*\n * Partition a collection into two groups: `lhs` and `rhs`. If the supplied\n * function returns true for an entry it goes into `lhs`. Otherwise it goes\n * into `rhs.\n */\nfunction partition(collection, fn) {\n var result = { lhs: [], rhs: [] };\n _.forEach(collection, function(value) {\n if (fn(value)) {\n result.lhs.push(value);\n } else {\n result.rhs.push(value);\n }\n });\n return result;\n}\n\n/*\n * Returns a new function that wraps `fn` with a timer. The wrapper logs the\n * time it takes to execute the function.\n */\nfunction time(name, fn) {\n var start = _.now();\n try {\n return fn();\n } finally {\n console.log(name + \" time: \" + (_.now() - start) + \"ms\");\n }\n}\n\nfunction notime(name, fn) {\n return fn();\n}\n","module.exports = \"0.8.5\";\n","/**\n * @see https://github.com/vuejs/vue/commit/a855dd0564a657a73b7249469490d39817f27cf7#diff-c0a2623ea5896a83e3b630f236b47b52\n * @see https://stackoverflow.com/a/13091266/4936667\n */\n\nvar decoder;\n\nexport default function decode(html) {\n decoder = decoder || document.createElement('div');\n // Escape HTML before decoding for HTML Entities\n html = escape(html).replace(/%26/g,'&').replace(/%23/g,'#').replace(/%3B/g,';');\n // decoding\n decoder.innerHTML = html;\n\n return unescape(decoder.textContent);\n}\n","/*!\n * Escaper v2.5.3\n * https://github.com/kobezzza/Escaper\n *\n * Released under the MIT license\n * https://github.com/kobezzza/Escaper/blob/master/LICENSE\n *\n * Date: Tue, 23 Jan 2018 15:58:45 GMT\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define('Escaper', ['exports'], factory) :\n\t(factory((global.Escaper = {})));\n}(this, (function (exports) { 'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar Escaper = void 0;\nvar escaper = Escaper = {\n\tVERSION: [2, 5, 3],\n\tcontent: [],\n\tcache: {},\n\tsnakeskinRgxp: null,\n\tsymbols: null,\n\treplace: replace,\n\tpaste: paste\n};\n\nvar stringLiterals = {\n\t'\"': true,\n\t'\\'': true,\n\t'`': true\n};\n\nvar literals = {\n\t'/': true\n};\n\nfor (var key in stringLiterals) {\n\tif (!stringLiterals.hasOwnProperty(key)) {\n\t\tbreak;\n\t}\n\n\tliterals[key] = true;\n}\n\nvar singleComments = {\n\t'//': true,\n\t'//*': true,\n\t'//!': true,\n\t'//#': true,\n\t'//@': true,\n\t'//$': true\n};\n\nvar multComments = {\n\t'/*': true,\n\t'/**': true,\n\t'/*!': true,\n\t'/*#': true,\n\t'/*@': true,\n\t'/*$': true\n};\n\nvar keyArr = [];\nvar finalMap = {};\n\nfor (var _key in literals) {\n\tif (!literals.hasOwnProperty(_key)) {\n\t\tbreak;\n\t}\n\n\tkeyArr.push(_key);\n\tfinalMap[_key] = true;\n}\n\nfor (var _key2 in singleComments) {\n\tif (!singleComments.hasOwnProperty(_key2)) {\n\t\tbreak;\n\t}\n\n\tkeyArr.push(_key2);\n\tfinalMap[_key2] = true;\n}\n\nfor (var _key3 in multComments) {\n\tif (!multComments.hasOwnProperty(_key3)) {\n\t\tbreak;\n\t}\n\n\tkeyArr.push(_key3);\n\tfinalMap[_key3] = true;\n}\n\nvar rgxpFlags = [];\nvar rgxpFlagsMap = {\n\t'g': true,\n\t'm': true,\n\t'i': true,\n\t'y': true,\n\t'u': true\n};\n\nfor (var _key4 in rgxpFlagsMap) {\n\tif (!rgxpFlagsMap.hasOwnProperty(_key4)) {\n\t\tbreak;\n\t}\n\n\trgxpFlags.push(_key4);\n}\n\nvar escapeEndMap = {\n\t'-': true,\n\t'+': true,\n\t'*': true,\n\t'%': true,\n\t'~': true,\n\t'>': true,\n\t'<': true,\n\t'^': true,\n\t',': true,\n\t';': true,\n\t'=': true,\n\t'|': true,\n\t'&': true,\n\t'!': true,\n\t'?': true,\n\t':': true,\n\t'(': true,\n\t'{': true,\n\t'[': true\n};\n\nvar escapeEndWordMap = {\n\t'return': true,\n\t'yield': true,\n\t'await': true,\n\t'typeof': true,\n\t'void': true,\n\t'instanceof': true,\n\t'delete': true,\n\t'in': true,\n\t'new': true,\n\t'of': true\n};\n\n/**\n * @param {!Object} obj\n * @param {!Object} p\n * @param {(boolean|number)} val\n */\nfunction mix(obj, p, val) {\n\tfor (var _key5 in obj) {\n\t\tif (!obj.hasOwnProperty(_key5)) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (_key5 in p === false) {\n\t\t\tp[_key5] = val;\n\t\t}\n\t}\n}\n\nvar symbols = void 0;\nvar snakeskinRgxp = void 0;\n\nvar uSRgxp = /[^\\s/]/;\nvar wRgxp = /[a-z]/;\nvar sRgxp = /\\s/;\nvar nRgxp = /[\\r\\n]/;\nvar posRgxp = /\\${pos}/g;\n\nvar objMap = {\n\t'object': true,\n\t'function': true\n};\n\n/**\n * Replaces all found blocks ' ... ', \" ... \", ` ... `, / ... /, // ..., /* ... *\\/ to\n * __ESCAPER_QUOT__number_ in a string and returns a new string\n *\n * @param {string} str - source string\n * @param {(Object
\n * mermaid.initialize({\n * flowchart:{\n * htmlLabels: false\n * }\n * });\n *\n *\n * **Example 2:**\n *
\n * <script>\n * var config = {\n * startOnLoad:true,\n * flowchart:{\n * useMaxWidth:true,\n * htmlLabels:true,\n * curve:'cardinal',\n * },\n *\n * securityLevel:'loose',\n * };\n * mermaid.initialize(config);\n * </script>\n *\n * A summary of all options and their defaults is found [here](https://github.com/knsv/mermaid/blob/master/docs/mermaidAPI.md#mermaidapi-configuration-defaults). A description of each option follows below.\n *\n * @name Configuration\n */\nconst config = {\n /** theme , the CSS style sheet\n *\n * **theme** - Choose one of the built-in themes:\n * * default\n * * forest\n * * dark\n * * neutral.\n * To disable any pre-defined mermaid theme, use \"null\".\n *\n * **themeCSS** - Use your own CSS. This overrides **theme**.\n *
\n * \"theme\": \"forest\",\n * \"themeCSS\": \".node rect { fill: red; }\"\n *\n */\n theme: 'default',\n themeCSS: undefined,\n multilineDirectives: false,\n /* **maxTextSize** - The maximum allowed size of the users text diamgram */\n maxTextSize: 50000,\n\n /**\n * **fontFamily** The font to be used for the rendered diagrams. Default value is \\\"trebuchet ms\\\", verdana, arial;\n */\n fontFamily: '\"trebuchet ms\", verdana, arial;',\n\n /**\n * This option decides the amount of logging to be used.\n * * debug: 1\n * * info: 2\n * * warn: 3\n * * error: 4\n * * fatal: (**default**) 5\n */\n logLevel: 5,\n\n /**\n * Sets the level of trust to be used on the parsed diagrams.\n * * **strict**: (**default**) tags in text are encoded, click functionality is disabeled\n * * **loose**: tags in text are allowed, click functionality is enabled\n */\n securityLevel: 'strict',\n\n /**\n * This options controls whether or mermaid starts when the page loads\n * **Default value true**.\n */\n startOnLoad: true,\n\n /**\n * This options controls whether or arrow markers in html code will be absolute paths or\n * an anchor, #. This matters if you are using base tag settings.\n * **Default value false**.\n */\n arrowMarkerAbsolute: false,\n\n /**\n * The object containing configurations specific for flowcharts\n */\n flowchart: {\n /**\n * Flag for setting whether or not a html tag should be used for rendering labels\n * on the edges.\n * **Default value true**.\n */\n htmlLabels: true,\n\n /**\n * Defines the spacing between nodes on the same level (meaning horizontal spacing for\n * TB or BT graphs, and the vertical spacing for LR as well as RL graphs).\n * **Default value 50**.\n */\n nodeSpacing: 50,\n\n /**\n * Defines the spacing between nodes on different levels (meaning vertical spacing for\n * TB or BT graphs, and the horizontal spacing for LR as well as RL graphs).\n * **Default value 50**.\n */\n rankSpacing: 50,\n\n /**\n * How mermaid renders curves for flowcharts. Possible values are\n * * basis\n * * linear **default**\n * * cardinal\n */\n curve: 'linear',\n // Only used in new experimental rendering\n // repreesents the padding between the labels and the shape\n padding: 15\n },\n\n /**\n * The object containing configurations specific for sequence diagrams\n */\n sequence: {\n /**\n * margin to the right and left of the sequence diagram.\n * **Default value 50**.\n */\n diagramMarginX: 50,\n\n /**\n * margin to the over and under the sequence diagram.\n * **Default value 10**.\n */\n diagramMarginY: 10,\n\n /**\n * Margin between actors.\n * **Default value 50**.\n */\n actorMargin: 50,\n\n /**\n * Width of actor boxes\n * **Default value 150**.\n */\n width: 150,\n\n /**\n * Height of actor boxes\n * **Default value 65**.\n */\n height: 65,\n\n /**\n * Margin around loop boxes\n * **Default value 10**.\n */\n boxMargin: 10,\n\n /**\n * margin around the text in loop/alt/opt boxes\n * **Default value 5**.\n */\n boxTextMargin: 5,\n\n /**\n * margin around notes.\n * **Default value 10**.\n */\n noteMargin: 10,\n\n /**\n * Space between messages.\n * **Default value 35**.\n */\n messageMargin: 35,\n\n /**\n * Multiline message alignment. Possible values are:\n * * left\n * * center **default**\n * * right\n */\n messageAlign: 'center',\n\n /**\n * mirror actors under diagram.\n * **Default value true**.\n */\n mirrorActors: true,\n\n /**\n * Depending on css styling this might need adjustment.\n * Prolongs the edge of the diagram downwards.\n * **Default value 1**.\n */\n bottomMarginAdj: 1,\n\n /**\n * when this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n * **Default value true**.\n */\n useMaxWidth: true,\n\n /**\n * This will display arrows that start and begin at the same node as right angles, rather than a curve\n * **Default value false**.\n */\n rightAngles: false,\n /**\n * This will show the node numbers\n * **Default value false**.\n */\n showSequenceNumbers: false,\n /**\n * This sets the font size of the actor's description\n * **Default value 14**.\n */\n actorFontSize: 14,\n /**\n * This sets the font family of the actor's description\n * **Default value \"Open-Sans\", \"sans-serif\"**.\n */\n actorFontFamily: '\"Open-Sans\", \"sans-serif\"',\n /**\n * This sets the font weight of the actor's description\n * **Default value 400.\n */\n actorFontWeight: 400,\n /**\n * This sets the font size of actor-attached notes.\n * **Default value 14**.\n */\n noteFontSize: 14,\n /**\n * This sets the font family of actor-attached notes.\n * **Default value \"trebuchet ms\", verdana, arial**.\n */\n noteFontFamily: '\"trebuchet ms\", verdana, arial',\n /**\n * This sets the font weight of the note's description\n * **Default value 400.\n */\n noteFontWeight: 400,\n /**\n * This sets the text alignment of actor-attached notes.\n * **Default value center**.\n */\n noteAlign: 'center',\n /**\n * This sets the font size of actor messages.\n * **Default value 16**.\n */\n messageFontSize: 16,\n /**\n * This sets the font family of actor messages.\n * **Default value \"trebuchet ms\", verdana, arial**.\n */\n messageFontFamily: '\"trebuchet ms\", verdana, arial',\n /**\n * This sets the font weight of the message's description\n * **Default value 400.\n */\n messageFontWeight: 400,\n /**\n * This sets the auto-wrap state for the diagram\n * **Default value false.\n */\n wrapEnabled: false,\n /**\n * This sets the auto-wrap padding for the diagram (sides only)\n * **Default value 15.\n */\n wrapPadding: 15\n },\n\n /**\n * The object containing configurations specific for gantt diagrams*\n */\n gantt: {\n /**\n * Margin top for the text over the gantt diagram\n * **Default value 25**.\n */\n titleTopMargin: 25,\n\n /**\n * The height of the bars in the graph\n * **Default value 20**.\n */\n barHeight: 20,\n\n /**\n * The margin between the different activities in the gantt diagram.\n * **Default value 4**.\n */\n barGap: 4,\n\n /**\n * Margin between title and gantt diagram and between axis and gantt diagram.\n * **Default value 50**.\n */\n topPadding: 50,\n\n /**\n * The space allocated for the section name to the left of the activities.\n * **Default value 75**.\n */\n leftPadding: 75,\n\n /**\n * Vertical starting position of the grid lines.\n * **Default value 35**.\n */\n gridLineStartPadding: 35,\n\n /**\n * Font size ...\n * **Default value 11**.\n */\n fontSize: 11,\n\n /**\n * font family ...\n * **Default value '\"Open-Sans\", \"sans-serif\"'**.\n */\n fontFamily: '\"Open-Sans\", \"sans-serif\"',\n\n /**\n * The number of alternating section styles.\n * **Default value 4**.\n */\n numberSectionStyles: 4,\n\n /**\n * Datetime format of the axis. This might need adjustment to match your locale and preferences\n * **Default value '%Y-%m-%d'**.\n */\n axisFormat: '%Y-%m-%d'\n },\n /**\n * The object containing configurations specific for sequence diagrams\n */\n journey: {\n /**\n * margin to the right and left of the sequence diagram.\n * **Default value 50**.\n */\n diagramMarginX: 50,\n\n /**\n * margin to the over and under the sequence diagram.\n * **Default value 10**.\n */\n diagramMarginY: 10,\n\n /**\n * Margin between actors.\n * **Default value 50**.\n */\n actorMargin: 50,\n\n /**\n * Width of actor boxes\n * **Default value 150**.\n */\n width: 150,\n\n /**\n * Height of actor boxes\n * **Default value 65**.\n */\n height: 65,\n\n /**\n * Margin around loop boxes\n * **Default value 10**.\n */\n boxMargin: 10,\n\n /**\n * margin around the text in loop/alt/opt boxes\n * **Default value 5**.\n */\n boxTextMargin: 5,\n\n /**\n * margin around notes.\n * **Default value 10**.\n */\n noteMargin: 10,\n\n /**\n * Space between messages.\n * **Default value 35**.\n */\n messageMargin: 35,\n\n /**\n * Multiline message alignment. Possible values are:\n * * left\n * * center **default**\n * * right\n */\n messageAlign: 'center',\n\n /**\n * Depending on css styling this might need adjustment.\n * Prolongs the edge of the diagram downwards.\n * **Default value 1**.\n */\n bottomMarginAdj: 1,\n\n /**\n * when this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n * **Default value true**.\n */\n useMaxWidth: true,\n\n /**\n * This will display arrows that start and begin at the same node as right angles, rather than a curve\n * **Default value false**.\n */\n rightAngles: false\n },\n class: {},\n git: {},\n state: {\n dividerMargin: 10,\n sizeUnit: 5,\n padding: 8,\n textHeight: 10,\n titleShift: -15,\n noteMargin: 10,\n forkWidth: 70,\n forkHeight: 7,\n // Used\n miniPadding: 2,\n // Font size factor, this is used to guess the width of the edges labels before rendering by dagre\n // layout. This might need updating if/when switching font\n fontSizeFactor: 5.02,\n fontSize: 24,\n labelHeight: 16,\n edgeLengthFactor: '20',\n compositTitleSize: 35,\n radius: 5\n },\n\n /**\n * The object containing configurations specific for entity relationship diagrams\n */\n er: {\n /**\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins, expressed in pixels\n */\n diagramPadding: 20,\n\n /**\n * Directional bias for layout of entities. Can be either 'TB', 'BT', 'LR', or 'RL',\n * where T = top, B = bottom, L = left, and R = right.\n */\n layoutDirection: 'TB',\n\n /**\n * The mimimum width of an entity box, expressed in pixels\n */\n minEntityWidth: 100,\n\n /**\n * The minimum height of an entity box, expressed in pixels\n */\n minEntityHeight: 75,\n\n /**\n * The minimum internal padding between the text in an entity box and the enclosing box borders, expressed in pixels\n */\n entityPadding: 15,\n\n /**\n * Stroke color of box edges and lines\n */\n stroke: 'gray',\n\n /**\n * Fill color of entity boxes\n */\n fill: 'honeydew',\n\n /**\n * Font size (expressed as an integer representing a number of pixels)\n */\n fontSize: 12\n }\n};\n\nsetLogLevel(config.logLevel);\nsetConfig(config);\n\nfunction parse(text) {\n const graphInit = utils.detectInit(text);\n if (graphInit) {\n reinitialize(graphInit);\n logger.debug('Init ', graphInit);\n }\n const graphType = utils.detectType(text);\n let parser;\n\n logger.debug('Type ' + graphType);\n switch (graphType) {\n case 'git':\n parser = gitGraphParser;\n parser.parser.yy = gitGraphAst;\n break;\n case 'flowchart':\n flowDb.clear();\n parser = flowParser;\n parser.parser.yy = flowDb;\n break;\n case 'flowchart-v2':\n flowDb.clear();\n parser = flowParser;\n parser.parser.yy = flowDb;\n break;\n case 'sequence':\n parser = sequenceParser;\n parser.parser.yy = sequenceDb;\n break;\n case 'gantt':\n parser = ganttParser;\n parser.parser.yy = ganttDb;\n break;\n case 'class':\n parser = classParser;\n parser.parser.yy = classDb;\n break;\n case 'state':\n parser = stateParser;\n parser.parser.yy = stateDb;\n break;\n case 'stateDiagram':\n parser = stateParser;\n parser.parser.yy = stateDb;\n break;\n case 'info':\n logger.debug('info info info');\n parser = infoParser;\n parser.parser.yy = infoDb;\n break;\n case 'pie':\n logger.debug('pie');\n parser = pieParser;\n parser.parser.yy = pieDb;\n break;\n case 'er':\n logger.debug('er');\n parser = erParser;\n parser.parser.yy = erDb;\n break;\n case 'journey':\n logger.debug('Journey');\n parser = journeyParser;\n parser.parser.yy = journeyDb;\n break;\n }\n\n parser.parser.yy.parseError = (str, hash) => {\n const error = { str, hash };\n throw error;\n };\n\n parser.parse(text);\n}\n\nexport const encodeEntities = function(text) {\n let txt = text;\n\n txt = txt.replace(/style.*:\\S*#.*;/g, function(s) {\n const innerTxt = s.substring(0, s.length - 1);\n return innerTxt;\n });\n txt = txt.replace(/classDef.*:\\S*#.*;/g, function(s) {\n const innerTxt = s.substring(0, s.length - 1);\n return innerTxt;\n });\n\n txt = txt.replace(/#\\w+;/g, function(s) {\n const innerTxt = s.substring(1, s.length - 1);\n\n const isInt = /^\\+?\\d+$/.test(innerTxt);\n if (isInt) {\n return 'fl°°' + innerTxt + '¶ß';\n } else {\n return 'fl°' + innerTxt + '¶ß';\n }\n });\n\n return txt;\n};\n\nexport const decodeEntities = function(text) {\n let txt = text;\n\n txt = txt.replace(/fl°°/g, function() {\n return '';\n });\n txt = txt.replace(/fl°/g, function() {\n return '&';\n });\n txt = txt.replace(/¶ß/g, function() {\n return ';';\n });\n\n return txt;\n};\n/**\n * Function that renders an svg with a graph from a chart definition. Usage example below.\n *\n * ```js\n * mermaidAPI.initialize({\n * startOnLoad:true\n * });\n * $(function(){\n * const graphDefinition = 'graph TB\\na-->b';\n * const cb = function(svgGraph){\n * console.log(svgGraph);\n * };\n * mermaidAPI.render('id1',graphDefinition,cb);\n * });\n *```\n * @param id the id of the element to be rendered\n * @param txt the graph definition\n * @param cb callback which is called after rendering is finished with the svg code as inparam.\n * @param container selector to element in which a div with the graph temporarily will be inserted. In one is\n * provided a hidden div will be inserted in the body of the page instead. The element will be removed when rendering is\n * completed.\n */\nconst render = function(id, _txt, cb, container) {\n // Check the maximum allowed text size\n let txt = _txt;\n if (_txt.length > config.maxTextSize) {\n txt = 'graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa';\n }\n\n if (typeof container !== 'undefined') {\n container.innerHTML = '';\n\n select(container)\n .append('div')\n .attr('id', 'd' + id)\n .attr('style', 'font-family: ' + config.fontFamily)\n .append('svg')\n .attr('id', id)\n .attr('width', '100%')\n .attr('xmlns', 'http://www.w3.org/2000/svg')\n .append('g');\n } else {\n const existingSvg = document.getElementById(id);\n if (existingSvg) {\n existingSvg.remove();\n }\n const element = document.querySelector('#' + 'd' + id);\n if (element) {\n element.innerHTML = '';\n }\n\n select('body')\n .append('div')\n .attr('id', 'd' + id)\n .append('svg')\n .attr('id', id)\n .attr('width', '100%')\n .attr('xmlns', 'http://www.w3.org/2000/svg')\n .append('g');\n }\n\n window.txt = txt;\n txt = encodeEntities(txt);\n\n const element = select('#d' + id).node();\n const graphInit = utils.detectInit(txt);\n if (graphInit) {\n reinitialize(graphInit);\n }\n const graphType = utils.detectType(txt);\n\n // insert inline style into svg\n const svg = element.firstChild;\n const firstChild = svg.firstChild;\n\n // pre-defined theme\n let style = themes[config.theme];\n if (style === undefined) {\n style = '';\n }\n\n // user provided theme CSS\n if (config.themeCSS !== undefined) {\n style += `\\n${config.themeCSS}`;\n }\n // user provided theme CSS\n if (config.fontFamily !== undefined) {\n style += `\\n:root { --mermaid-font-family: ${config.fontFamily}}`;\n }\n // user provided theme CSS\n if (config.altFontFamily !== undefined) {\n style += `\\n:root { --mermaid-alt-font-family: ${config.altFontFamily}}`;\n }\n\n // classDef\n if (graphType === 'flowchart' || graphType === 'flowchart-v2') {\n const classes = flowRenderer.getClasses(txt);\n for (const className in classes) {\n style += `\\n.${className} > * { ${classes[className].styles.join(\n ' !important; '\n )} !important; }`;\n if (classes[className].textStyles) {\n style += `\\n.${className} tspan { ${classes[className].textStyles.join(\n ' !important; '\n )} !important; }`;\n }\n }\n }\n\n const style1 = document.createElement('style');\n style1.innerHTML = scope(style, `#${id}`);\n svg.insertBefore(style1, firstChild);\n\n const style2 = document.createElement('style');\n const cs = window.getComputedStyle(svg);\n style2.innerHTML = `#${id} {\n color: ${cs.color};\n font: ${cs.font};\n }`;\n svg.insertBefore(style2, firstChild);\n\n try {\n switch (graphType) {\n case 'git':\n config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n gitGraphRenderer.setConf(config.git);\n gitGraphRenderer.draw(txt, id, false);\n break;\n case 'flowchart':\n config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n flowRenderer.setConf(config.flowchart);\n flowRenderer.draw(txt, id, false);\n break;\n case 'flowchart-v2':\n config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n flowRendererV2.setConf(config.flowchart);\n flowRendererV2.draw(txt, id, false);\n break;\n case 'sequence':\n config.sequence.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n if (config.sequenceDiagram) {\n // backwards compatibility\n sequenceRenderer.setConf(Object.assign(config.sequence, config.sequenceDiagram));\n console.error(\n '`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.'\n );\n } else {\n sequenceRenderer.setConf(config.sequence);\n }\n sequenceRenderer.draw(txt, id);\n break;\n case 'gantt':\n config.gantt.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n ganttRenderer.setConf(config.gantt);\n ganttRenderer.draw(txt, id);\n break;\n case 'class':\n config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n classRenderer.setConf(config.class);\n classRenderer.draw(txt, id);\n break;\n case 'state':\n // config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n stateRenderer.setConf(config.state);\n stateRenderer.draw(txt, id);\n break;\n case 'stateDiagram':\n // config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n stateRendererV2.setConf(config.state);\n stateRendererV2.draw(txt, id);\n break;\n case 'info':\n config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n infoRenderer.setConf(config.class);\n infoRenderer.draw(txt, id, pkg.version);\n break;\n case 'pie':\n config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n pieRenderer.setConf(config.class);\n pieRenderer.draw(txt, id, pkg.version);\n break;\n case 'er':\n erRenderer.setConf(config.er);\n erRenderer.draw(txt, id, pkg.version);\n break;\n case 'journey':\n journeyRenderer.setConf(config.journey);\n journeyRenderer.draw(txt, id, pkg.version);\n break;\n }\n } catch (e) {\n errorRenderer.setConf(config.class);\n errorRenderer.draw(id, pkg.version);\n throw e;\n }\n\n select(`[id=\"${id}\"]`)\n .selectAll('foreignobject > *')\n .attr('xmlns', 'http://www.w3.org/1999/xhtml');\n\n // if (config.arrowMarkerAbsolute) {\n // url =\n // window.location.protocol +\n // '//' +\n // window.location.host +\n // window.location.pathname +\n // window.location.search;\n // url = url.replace(/\\(/g, '\\\\(');\n // url = url.replace(/\\)/g, '\\\\)');\n // }\n\n // Fix for when the base tag is used\n let svgCode = select('#d' + id).node().innerHTML;\n\n if (!config.arrowMarkerAbsolute || config.arrowMarkerAbsolute === 'false') {\n svgCode = svgCode.replace(/marker-end=\"url\\(.*?#/g, 'marker-end=\"url(#', 'g');\n }\n\n svgCode = decodeEntities(svgCode);\n\n if (typeof cb !== 'undefined') {\n switch (graphType) {\n case 'flowchart':\n case 'flowchart-v2':\n cb(svgCode, flowDb.bindFunctions);\n break;\n case 'gantt':\n cb(svgCode, ganttDb.bindFunctions);\n break;\n case 'class':\n cb(svgCode, classDb.bindFunctions);\n break;\n default:\n cb(svgCode);\n }\n } else {\n logger.debug('CB = undefined!');\n }\n\n const node = select('#d' + id).node();\n if (node !== null && typeof node.remove === 'function') {\n select('#d' + id)\n .node()\n .remove();\n }\n\n return svgCode;\n};\n\nconst setConf = function(cnf) {\n // Top level initially mermaid, gflow, sequenceDiagram and gantt\n const lvl1Keys = Object.keys(cnf);\n for (let i = 0; i < lvl1Keys.length; i++) {\n if (typeof cnf[lvl1Keys[i]] === 'object' && cnf[lvl1Keys[i]] != null) {\n const lvl2Keys = Object.keys(cnf[lvl1Keys[i]]);\n\n for (let j = 0; j < lvl2Keys.length; j++) {\n logger.debug('Setting conf ', lvl1Keys[i], '-', lvl2Keys[j]);\n if (typeof config[lvl1Keys[i]] === 'undefined') {\n config[lvl1Keys[i]] = {};\n }\n logger.debug(\n 'Setting config: ' +\n lvl1Keys[i] +\n ' ' +\n lvl2Keys[j] +\n ' to ' +\n cnf[lvl1Keys[i]][lvl2Keys[j]]\n );\n config[lvl1Keys[i]][lvl2Keys[j]] = cnf[lvl1Keys[i]][lvl2Keys[j]];\n }\n } else {\n config[lvl1Keys[i]] = cnf[lvl1Keys[i]];\n }\n }\n};\n\nfunction reinitialize(options) {\n if (typeof options === 'object') {\n setConf(options);\n }\n setConfig(config);\n setLogLevel(config.logLevel);\n logger.debug('RE-Initializing mermaidAPI ', { version: pkg.version, options, config });\n}\n\nfunction initialize(options) {\n let _config = config;\n logger.debug('Initializing mermaidAPI ', { version: pkg.version, options, _config });\n // Update default config with options supplied at initialization\n if (typeof options === 'object') {\n _config = Object.assign(_config, options);\n setConf(_config);\n }\n setConfig(_config);\n setLogLevel(_config.logLevel);\n}\n\n// function getConfig () {\n// console.warn('get config')\n// return config\n// }\n\nconst mermaidAPI = {\n render,\n parse,\n initialize,\n reinitialize,\n getConfig\n};\n\nexport default mermaidAPI;\n/**\n * ## mermaidAPI configuration defaults\n *
\n *\n * <script>\n * var config = {\n * theme:'default',\n * logLevel:'fatal',\n * securityLevel:'strict',\n * startOnLoad:true,\n * arrowMarkerAbsolute:false,\n *\n * flowchart:{\n * htmlLabels:true,\n * curve:'linear',\n * },\n * sequence:{\n * diagramMarginX:50,\n * diagramMarginY:10,\n * actorMargin:50,\n * width:150,\n * height:65,\n * boxMargin:10,\n * boxTextMargin:5,\n * noteMargin:10,\n * messageMargin:35,\n * messageAlign:'center',\n * mirrorActors:true,\n * bottomMarginAdj:1,\n * useMaxWidth:true,\n * rightAngles:false,\n * showSequenceNumbers:false,\n * },\n * gantt:{\n * titleTopMargin:25,\n * barHeight:20,\n * barGap:4,\n * topPadding:50,\n * leftPadding:75,\n * gridLineStartPadding:35,\n * fontSize:11,\n * fontFamily:'\"Open-Sans\", \"sans-serif\"',\n * numberSectionStyles:4,\n * axisFormat:'%Y-%m-%d',\n * }\n * };\n * mermaid.initialize(config);\n * </script>\n *\n */\n","var map = {\n\t\"./dark/index.scss\": \"./src/themes/dark/index.scss\",\n\t\"./default/index.scss\": \"./src/themes/default/index.scss\",\n\t\"./forest/index.scss\": \"./src/themes/forest/index.scss\",\n\t\"./neutral/index.scss\": \"./src/themes/neutral/index.scss\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./src/themes sync recursive ^\\\\.\\\\/.*\\\\/index\\\\.scss$\";","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","import {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore\n} from 'd3';\nimport { logger } from './logger';\nimport { sanitizeUrl } from '@braintree/sanitize-url';\n\n// Effectively an enum of the supported curve types, accessible by name\nconst d3CurveTypes = {\n curveBasis: curveBasis,\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveLinear: curveLinear,\n curveLinearClosed: curveLinearClosed,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\nconst fullDirective = /%%\\{(\\w+)[:]?\\s*(\\{.*}(?!%%))?\\s*}%%/;\nconst directiveWithoutOpen = /\\{(\\w+)[:]?\\s*(\\{.*}(?!%%))?\\s*}%%/;\nconst commentWithoutDirectives = new RegExp(\n `\\\\s*%%(?!${directiveWithoutOpen.source})(?=}%%).*\\n`,\n 'gm'\n);\nconst anyComment = new RegExp(`\\\\s*%%.*\\n`, 'gm');\n\n/**\n * @function detectInit\n * Detects the init config object from the text\n * ```mermaid\n * %%{init: {\"startOnLoad\": true, \"logLevel\": 1 }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n * or\n * ```mermaid\n * %%{initialize: {\"startOnLoad\": true, logLevel: \"fatal\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * @param {string} text The text defining the graph\n * @returns {object} An object representing the initialization to pass to mermaidAPI.initialize()\n */\nexport const detectInit = function(text) {\n text = text.replace(commentWithoutDirectives, '\\n');\n logger.debug('Detecting diagram init based on the text ' + text);\n const matches = text.match(fullDirective);\n if (matches && /init(?:ialize)?/.test(matches[1])) {\n return JSON.parse(\n matches[2]\n .trim()\n .replace(/\\\\n/g, '\\n')\n .replace(/'/g, '\"')\n );\n }\n};\n\n/**\n * @function detectType\n * Detects the type of the graph text. Takes into consideration the possible existence of an %%init\n * directive\n * ```mermaid\n * %%{initialize: {\"startOnLoad\": true, logLevel: \"fatal\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * @param {string} text The text defining the graph\n * @returns {string} A graph definition key\n */\nexport const detectType = function(text) {\n text = text.replace(anyComment, '\\n');\n logger.debug('Detecting diagram type based on the text ' + text);\n if (text.match(/^\\s*sequenceDiagram/)) {\n return 'sequence';\n }\n\n if (text.match(/^\\s*gantt/)) {\n return 'gantt';\n }\n\n if (text.match(/^\\s*classDiagram/)) {\n return 'class';\n }\n if (text.match(/^\\s*stateDiagram-v2/)) {\n return 'stateDiagram';\n }\n\n if (text.match(/^\\s*stateDiagram/)) {\n return 'state';\n }\n\n if (text.match(/^\\s*gitGraph/)) {\n return 'git';\n }\n if (text.match(/^\\s*flowchart/)) {\n return 'flowchart-v2';\n }\n\n if (text.match(/^\\s*info/)) {\n return 'info';\n }\n if (text.match(/^\\s*pie/)) {\n return 'pie';\n }\n\n if (text.match(/^\\s*erDiagram/)) {\n return 'er';\n }\n\n if (text.match(/^\\s*journey/)) {\n return 'journey';\n }\n\n return 'flowchart';\n};\n\n/**\n * @function isSubstringInArray\n * Detects whether a substring in present in a given array\n * @param {string} str The substring to detect\n * @param {array} arr The array to search\n * @returns {number} the array index containing the substring or -1 if not present\n **/\nexport const isSubstringInArray = function(str, arr) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i].match(str)) return i;\n }\n return -1;\n};\n\nexport const interpolateToCurve = (interpolate, defaultCurve) => {\n if (!interpolate) {\n return defaultCurve;\n }\n const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;\n return d3CurveTypes[curveName] || defaultCurve;\n};\n\nexport const formatUrl = (linkStr, config) => {\n let url = linkStr.trim();\n\n if (url) {\n if (config.securityLevel !== 'loose') {\n return sanitizeUrl(url);\n }\n\n return url;\n }\n};\n\nconst distance = (p1, p2) =>\n p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0;\n\nconst traverseEdge = points => {\n let prevPoint;\n let totalDistance = 0;\n\n points.forEach(point => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse half of total distance along points\n const distanceToLabel = totalDistance / 2;\n\n let remainingDistance = distanceToLabel;\n let center;\n prevPoint = undefined;\n points.forEach(point => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y\n };\n }\n }\n }\n prevPoint = point;\n });\n return center;\n};\n\nconst calcLabelPosition = points => {\n const p = traverseEdge(points);\n return p;\n};\n\nconst calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => {\n let prevPoint;\n let totalDistance = 0; // eslint-disable-line\n if (points[0] !== initialPosition) {\n points = points.reverse();\n }\n points.forEach(point => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse only 25 total distance along points to find cardinality point\n const distanceToCardinalityPoint = 25;\n\n let remainingDistance = distanceToCardinalityPoint;\n let center;\n prevPoint = undefined;\n points.forEach(point => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y\n };\n }\n }\n }\n prevPoint = point;\n });\n // if relation is present (Arrows will be added), change cardinality point off-set distance (d)\n let d = isRelationTypePresent ? 10 : 5;\n //Calculate Angle for x and y axis\n let angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n let cardinalityPosition = { x: 0, y: 0 };\n //Calculation cardinality position using angle, center point on the line/curve but pendicular and with offset-distance\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n return cardinalityPosition;\n};\n\nexport const getStylesFromArray = arr => {\n let style = '';\n let labelStyle = '';\n\n for (let i = 0; i < arr.length; i++) {\n if (typeof arr[i] !== 'undefined') {\n // add text properties to label style definition\n if (arr[i].startsWith('color:') || arr[i].startsWith('text-align:')) {\n labelStyle = labelStyle + arr[i] + ';';\n } else {\n style = style + arr[i] + ';';\n }\n }\n }\n\n return { style: style, labelStyle: labelStyle };\n};\n\nlet cnt = 0;\nexport const generateId = () => {\n cnt++;\n return (\n 'id-' +\n Math.random()\n .toString(36)\n .substr(2, 12) +\n '-' +\n cnt\n );\n};\n\nexport default {\n detectInit,\n detectType,\n isSubstringInArray,\n interpolateToCurve,\n calcLabelPosition,\n calcCardinalityPosition,\n formatUrl,\n getStylesFromArray,\n generateId\n};\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://mermaid/webpack/universalModuleDefinition","webpack://mermaid/webpack/bootstrap","webpack://mermaid/./node_modules/@braintree/sanitize-url/index.js","webpack://mermaid/./src/themes/dark/index.scss","webpack://mermaid/./src/themes/default/index.scss","webpack://mermaid/./src/themes/forest/index.scss","webpack://mermaid/./src/themes/neutral/index.scss","webpack://mermaid/./node_modules/css-loader/dist/runtime/api.js","webpack://mermaid/./node_modules/d3-array/src/array.js","webpack://mermaid/./node_modules/d3-array/src/ascending.js","webpack://mermaid/./node_modules/d3-array/src/bisect.js","webpack://mermaid/./node_modules/d3-array/src/bisector.js","webpack://mermaid/./node_modules/d3-array/src/constant.js","webpack://mermaid/./node_modules/d3-array/src/cross.js","webpack://mermaid/./node_modules/d3-array/src/descending.js","webpack://mermaid/./node_modules/d3-array/src/deviation.js","webpack://mermaid/./node_modules/d3-array/src/extent.js","webpack://mermaid/./node_modules/d3-array/src/histogram.js","webpack://mermaid/./node_modules/d3-array/src/identity.js","webpack://mermaid/./node_modules/d3-array/src/index.js","webpack://mermaid/./node_modules/d3-array/src/max.js","webpack://mermaid/./node_modules/d3-array/src/mean.js","webpack://mermaid/./node_modules/d3-array/src/median.js","webpack://mermaid/./node_modules/d3-array/src/merge.js","webpack://mermaid/./node_modules/d3-array/src/min.js","webpack://mermaid/./node_modules/d3-array/src/number.js","webpack://mermaid/./node_modules/d3-array/src/pairs.js","webpack://mermaid/./node_modules/d3-array/src/permute.js","webpack://mermaid/./node_modules/d3-array/src/quantile.js","webpack://mermaid/./node_modules/d3-array/src/range.js","webpack://mermaid/./node_modules/d3-array/src/scan.js","webpack://mermaid/./node_modules/d3-array/src/shuffle.js","webpack://mermaid/./node_modules/d3-array/src/sum.js","webpack://mermaid/./node_modules/d3-array/src/threshold/freedmanDiaconis.js","webpack://mermaid/./node_modules/d3-array/src/threshold/scott.js","webpack://mermaid/./node_modules/d3-array/src/threshold/sturges.js","webpack://mermaid/./node_modules/d3-array/src/ticks.js","webpack://mermaid/./node_modules/d3-array/src/transpose.js","webpack://mermaid/./node_modules/d3-array/src/variance.js","webpack://mermaid/./node_modules/d3-array/src/zip.js","webpack://mermaid/./node_modules/d3-axis/src/array.js","webpack://mermaid/./node_modules/d3-axis/src/axis.js","webpack://mermaid/./node_modules/d3-axis/src/identity.js","webpack://mermaid/./node_modules/d3-axis/src/index.js","webpack://mermaid/./node_modules/d3-brush/src/brush.js","webpack://mermaid/./node_modules/d3-brush/src/constant.js","webpack://mermaid/./node_modules/d3-brush/src/event.js","webpack://mermaid/./node_modules/d3-brush/src/index.js","webpack://mermaid/./node_modules/d3-brush/src/noevent.js","webpack://mermaid/./node_modules/d3-chord/src/array.js","webpack://mermaid/./node_modules/d3-chord/src/chord.js","webpack://mermaid/./node_modules/d3-chord/src/constant.js","webpack://mermaid/./node_modules/d3-chord/src/index.js","webpack://mermaid/./node_modules/d3-chord/src/math.js","webpack://mermaid/./node_modules/d3-chord/src/ribbon.js","webpack://mermaid/./node_modules/d3-collection/src/entries.js","webpack://mermaid/./node_modules/d3-collection/src/index.js","webpack://mermaid/./node_modules/d3-collection/src/keys.js","webpack://mermaid/./node_modules/d3-collection/src/map.js","webpack://mermaid/./node_modules/d3-collection/src/nest.js","webpack://mermaid/./node_modules/d3-collection/src/set.js","webpack://mermaid/./node_modules/d3-collection/src/values.js","webpack://mermaid/./node_modules/d3-color/src/color.js","webpack://mermaid/./node_modules/d3-color/src/cubehelix.js","webpack://mermaid/./node_modules/d3-color/src/define.js","webpack://mermaid/./node_modules/d3-color/src/index.js","webpack://mermaid/./node_modules/d3-color/src/lab.js","webpack://mermaid/./node_modules/d3-color/src/math.js","webpack://mermaid/./node_modules/d3-contour/src/area.js","webpack://mermaid/./node_modules/d3-contour/src/array.js","webpack://mermaid/./node_modules/d3-contour/src/ascending.js","webpack://mermaid/./node_modules/d3-contour/src/blur.js","webpack://mermaid/./node_modules/d3-contour/src/constant.js","webpack://mermaid/./node_modules/d3-contour/src/contains.js","webpack://mermaid/./node_modules/d3-contour/src/contours.js","webpack://mermaid/./node_modules/d3-contour/src/density.js","webpack://mermaid/./node_modules/d3-contour/src/index.js","webpack://mermaid/./node_modules/d3-contour/src/noop.js","webpack://mermaid/./node_modules/d3-dispatch/src/dispatch.js","webpack://mermaid/./node_modules/d3-dispatch/src/index.js","webpack://mermaid/./node_modules/d3-drag/src/constant.js","webpack://mermaid/./node_modules/d3-drag/src/drag.js","webpack://mermaid/./node_modules/d3-drag/src/event.js","webpack://mermaid/./node_modules/d3-drag/src/index.js","webpack://mermaid/./node_modules/d3-drag/src/nodrag.js","webpack://mermaid/./node_modules/d3-drag/src/noevent.js","webpack://mermaid/./node_modules/d3-dsv/src/autoType.js","webpack://mermaid/./node_modules/d3-dsv/src/csv.js","webpack://mermaid/./node_modules/d3-dsv/src/dsv.js","webpack://mermaid/./node_modules/d3-dsv/src/index.js","webpack://mermaid/./node_modules/d3-dsv/src/tsv.js","webpack://mermaid/./node_modules/d3-ease/src/back.js","webpack://mermaid/./node_modules/d3-ease/src/bounce.js","webpack://mermaid/./node_modules/d3-ease/src/circle.js","webpack://mermaid/./node_modules/d3-ease/src/cubic.js","webpack://mermaid/./node_modules/d3-ease/src/elastic.js","webpack://mermaid/./node_modules/d3-ease/src/exp.js","webpack://mermaid/./node_modules/d3-ease/src/index.js","webpack://mermaid/./node_modules/d3-ease/src/linear.js","webpack://mermaid/./node_modules/d3-ease/src/poly.js","webpack://mermaid/./node_modules/d3-ease/src/quad.js","webpack://mermaid/./node_modules/d3-ease/src/sin.js","webpack://mermaid/./node_modules/d3-fetch/src/blob.js","webpack://mermaid/./node_modules/d3-fetch/src/buffer.js","webpack://mermaid/./node_modules/d3-fetch/src/dsv.js","webpack://mermaid/./node_modules/d3-fetch/src/image.js","webpack://mermaid/./node_modules/d3-fetch/src/index.js","webpack://mermaid/./node_modules/d3-fetch/src/json.js","webpack://mermaid/./node_modules/d3-fetch/src/text.js","webpack://mermaid/./node_modules/d3-fetch/src/xml.js","webpack://mermaid/./node_modules/d3-force/src/center.js","webpack://mermaid/./node_modules/d3-force/src/collide.js","webpack://mermaid/./node_modules/d3-force/src/constant.js","webpack://mermaid/./node_modules/d3-force/src/index.js","webpack://mermaid/./node_modules/d3-force/src/jiggle.js","webpack://mermaid/./node_modules/d3-force/src/link.js","webpack://mermaid/./node_modules/d3-force/src/manyBody.js","webpack://mermaid/./node_modules/d3-force/src/radial.js","webpack://mermaid/./node_modules/d3-force/src/simulation.js","webpack://mermaid/./node_modules/d3-force/src/x.js","webpack://mermaid/./node_modules/d3-force/src/y.js","webpack://mermaid/./node_modules/d3-format/src/defaultLocale.js","webpack://mermaid/./node_modules/d3-format/src/exponent.js","webpack://mermaid/./node_modules/d3-format/src/formatDecimal.js","webpack://mermaid/./node_modules/d3-format/src/formatGroup.js","webpack://mermaid/./node_modules/d3-format/src/formatNumerals.js","webpack://mermaid/./node_modules/d3-format/src/formatPrefixAuto.js","webpack://mermaid/./node_modules/d3-format/src/formatRounded.js","webpack://mermaid/./node_modules/d3-format/src/formatSpecifier.js","webpack://mermaid/./node_modules/d3-format/src/formatTrim.js","webpack://mermaid/./node_modules/d3-format/src/formatTypes.js","webpack://mermaid/./node_modules/d3-format/src/identity.js","webpack://mermaid/./node_modules/d3-format/src/index.js","webpack://mermaid/./node_modules/d3-format/src/locale.js","webpack://mermaid/./node_modules/d3-format/src/precisionFixed.js","webpack://mermaid/./node_modules/d3-format/src/precisionPrefix.js","webpack://mermaid/./node_modules/d3-format/src/precisionRound.js","webpack://mermaid/./node_modules/d3-geo/src/adder.js","webpack://mermaid/./node_modules/d3-geo/src/area.js","webpack://mermaid/./node_modules/d3-geo/src/bounds.js","webpack://mermaid/./node_modules/d3-geo/src/cartesian.js","webpack://mermaid/./node_modules/d3-geo/src/centroid.js","webpack://mermaid/./node_modules/d3-geo/src/circle.js","webpack://mermaid/./node_modules/d3-geo/src/clip/antimeridian.js","webpack://mermaid/./node_modules/d3-geo/src/clip/buffer.js","webpack://mermaid/./node_modules/d3-geo/src/clip/circle.js","webpack://mermaid/./node_modules/d3-geo/src/clip/extent.js","webpack://mermaid/./node_modules/d3-geo/src/clip/index.js","webpack://mermaid/./node_modules/d3-geo/src/clip/line.js","webpack://mermaid/./node_modules/d3-geo/src/clip/rectangle.js","webpack://mermaid/./node_modules/d3-geo/src/clip/rejoin.js","webpack://mermaid/./node_modules/d3-geo/src/compose.js","webpack://mermaid/./node_modules/d3-geo/src/constant.js","webpack://mermaid/./node_modules/d3-geo/src/contains.js","webpack://mermaid/./node_modules/d3-geo/src/distance.js","webpack://mermaid/./node_modules/d3-geo/src/graticule.js","webpack://mermaid/./node_modules/d3-geo/src/identity.js","webpack://mermaid/./node_modules/d3-geo/src/index.js","webpack://mermaid/./node_modules/d3-geo/src/interpolate.js","webpack://mermaid/./node_modules/d3-geo/src/length.js","webpack://mermaid/./node_modules/d3-geo/src/math.js","webpack://mermaid/./node_modules/d3-geo/src/noop.js","webpack://mermaid/./node_modules/d3-geo/src/path/area.js","webpack://mermaid/./node_modules/d3-geo/src/path/bounds.js","webpack://mermaid/./node_modules/d3-geo/src/path/centroid.js","webpack://mermaid/./node_modules/d3-geo/src/path/context.js","webpack://mermaid/./node_modules/d3-geo/src/path/index.js","webpack://mermaid/./node_modules/d3-geo/src/path/measure.js","webpack://mermaid/./node_modules/d3-geo/src/path/string.js","webpack://mermaid/./node_modules/d3-geo/src/pointEqual.js","webpack://mermaid/./node_modules/d3-geo/src/polygonContains.js","webpack://mermaid/./node_modules/d3-geo/src/projection/albers.js","webpack://mermaid/./node_modules/d3-geo/src/projection/albersUsa.js","webpack://mermaid/./node_modules/d3-geo/src/projection/azimuthal.js","webpack://mermaid/./node_modules/d3-geo/src/projection/azimuthalEqualArea.js","webpack://mermaid/./node_modules/d3-geo/src/projection/azimuthalEquidistant.js","webpack://mermaid/./node_modules/d3-geo/src/projection/conic.js","webpack://mermaid/./node_modules/d3-geo/src/projection/conicConformal.js","webpack://mermaid/./node_modules/d3-geo/src/projection/conicEqualArea.js","webpack://mermaid/./node_modules/d3-geo/src/projection/conicEquidistant.js","webpack://mermaid/./node_modules/d3-geo/src/projection/cylindricalEqualArea.js","webpack://mermaid/./node_modules/d3-geo/src/projection/equalEarth.js","webpack://mermaid/./node_modules/d3-geo/src/projection/equirectangular.js","webpack://mermaid/./node_modules/d3-geo/src/projection/fit.js","webpack://mermaid/./node_modules/d3-geo/src/projection/gnomonic.js","webpack://mermaid/./node_modules/d3-geo/src/projection/identity.js","webpack://mermaid/./node_modules/d3-geo/src/projection/index.js","webpack://mermaid/./node_modules/d3-geo/src/projection/mercator.js","webpack://mermaid/./node_modules/d3-geo/src/projection/naturalEarth1.js","webpack://mermaid/./node_modules/d3-geo/src/projection/orthographic.js","webpack://mermaid/./node_modules/d3-geo/src/projection/resample.js","webpack://mermaid/./node_modules/d3-geo/src/projection/stereographic.js","webpack://mermaid/./node_modules/d3-geo/src/projection/transverseMercator.js","webpack://mermaid/./node_modules/d3-geo/src/rotation.js","webpack://mermaid/./node_modules/d3-geo/src/stream.js","webpack://mermaid/./node_modules/d3-geo/src/transform.js","webpack://mermaid/./node_modules/d3-hierarchy/src/accessors.js","webpack://mermaid/./node_modules/d3-hierarchy/src/array.js","webpack://mermaid/./node_modules/d3-hierarchy/src/cluster.js","webpack://mermaid/./node_modules/d3-hierarchy/src/constant.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/count.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/each.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/index.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/links.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/path.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack://mermaid/./node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack://mermaid/./node_modules/d3-hierarchy/src/index.js","webpack://mermaid/./node_modules/d3-hierarchy/src/pack/enclose.js","webpack://mermaid/./node_modules/d3-hierarchy/src/pack/index.js","webpack://mermaid/./node_modules/d3-hierarchy/src/pack/siblings.js","webpack://mermaid/./node_modules/d3-hierarchy/src/partition.js","webpack://mermaid/./node_modules/d3-hierarchy/src/stratify.js","webpack://mermaid/./node_modules/d3-hierarchy/src/tree.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/binary.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/dice.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/index.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/round.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/slice.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/sliceDice.js","webpack://mermaid/./node_modules/d3-hierarchy/src/treemap/squarify.js","webpack://mermaid/./node_modules/d3-interpolate/src/array.js","webpack://mermaid/./node_modules/d3-interpolate/src/basis.js","webpack://mermaid/./node_modules/d3-interpolate/src/basisClosed.js","webpack://mermaid/./node_modules/d3-interpolate/src/color.js","webpack://mermaid/./node_modules/d3-interpolate/src/constant.js","webpack://mermaid/./node_modules/d3-interpolate/src/cubehelix.js","webpack://mermaid/./node_modules/d3-interpolate/src/date.js","webpack://mermaid/./node_modules/d3-interpolate/src/discrete.js","webpack://mermaid/./node_modules/d3-interpolate/src/hcl.js","webpack://mermaid/./node_modules/d3-interpolate/src/hsl.js","webpack://mermaid/./node_modules/d3-interpolate/src/hue.js","webpack://mermaid/./node_modules/d3-interpolate/src/index.js","webpack://mermaid/./node_modules/d3-interpolate/src/lab.js","webpack://mermaid/./node_modules/d3-interpolate/src/number.js","webpack://mermaid/./node_modules/d3-interpolate/src/numberArray.js","webpack://mermaid/./node_modules/d3-interpolate/src/object.js","webpack://mermaid/./node_modules/d3-interpolate/src/piecewise.js","webpack://mermaid/./node_modules/d3-interpolate/src/quantize.js","webpack://mermaid/./node_modules/d3-interpolate/src/rgb.js","webpack://mermaid/./node_modules/d3-interpolate/src/round.js","webpack://mermaid/./node_modules/d3-interpolate/src/string.js","webpack://mermaid/./node_modules/d3-interpolate/src/transform/decompose.js","webpack://mermaid/./node_modules/d3-interpolate/src/transform/index.js","webpack://mermaid/./node_modules/d3-interpolate/src/transform/parse.js","webpack://mermaid/./node_modules/d3-interpolate/src/value.js","webpack://mermaid/./node_modules/d3-interpolate/src/zoom.js","webpack://mermaid/./node_modules/d3-path/src/index.js","webpack://mermaid/./node_modules/d3-path/src/path.js","webpack://mermaid/./node_modules/d3-polygon/src/area.js","webpack://mermaid/./node_modules/d3-polygon/src/centroid.js","webpack://mermaid/./node_modules/d3-polygon/src/contains.js","webpack://mermaid/./node_modules/d3-polygon/src/cross.js","webpack://mermaid/./node_modules/d3-polygon/src/hull.js","webpack://mermaid/./node_modules/d3-polygon/src/index.js","webpack://mermaid/./node_modules/d3-polygon/src/length.js","webpack://mermaid/./node_modules/d3-quadtree/src/add.js","webpack://mermaid/./node_modules/d3-quadtree/src/cover.js","webpack://mermaid/./node_modules/d3-quadtree/src/data.js","webpack://mermaid/./node_modules/d3-quadtree/src/extent.js","webpack://mermaid/./node_modules/d3-quadtree/src/find.js","webpack://mermaid/./node_modules/d3-quadtree/src/index.js","webpack://mermaid/./node_modules/d3-quadtree/src/quad.js","webpack://mermaid/./node_modules/d3-quadtree/src/quadtree.js","webpack://mermaid/./node_modules/d3-quadtree/src/remove.js","webpack://mermaid/./node_modules/d3-quadtree/src/root.js","webpack://mermaid/./node_modules/d3-quadtree/src/size.js","webpack://mermaid/./node_modules/d3-quadtree/src/visit.js","webpack://mermaid/./node_modules/d3-quadtree/src/visitAfter.js","webpack://mermaid/./node_modules/d3-quadtree/src/x.js","webpack://mermaid/./node_modules/d3-quadtree/src/y.js","webpack://mermaid/./node_modules/d3-random/src/bates.js","webpack://mermaid/./node_modules/d3-random/src/defaultSource.js","webpack://mermaid/./node_modules/d3-random/src/exponential.js","webpack://mermaid/./node_modules/d3-random/src/index.js","webpack://mermaid/./node_modules/d3-random/src/irwinHall.js","webpack://mermaid/./node_modules/d3-random/src/logNormal.js","webpack://mermaid/./node_modules/d3-random/src/normal.js","webpack://mermaid/./node_modules/d3-random/src/uniform.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Accent.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Dark2.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Paired.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Set1.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Set2.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Set3.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/Tableau10.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/categorical/category10.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/colors.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/BrBG.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/PRGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/PiYG.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/PuOr.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/RdBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/RdGy.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/diverging/Spectral.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/index.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/ramp.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Blues.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Greens.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Greys.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Purples.js","webpack://mermaid/./node_modules/d3-scale-chromatic/src/sequential-single/Reds.js","webpack://mermaid/./node_modules/d3-scale/src/array.js","webpack://mermaid/./node_modules/d3-scale/src/band.js","webpack://mermaid/./node_modules/d3-scale/src/constant.js","webpack://mermaid/./node_modules/d3-scale/src/continuous.js","webpack://mermaid/./node_modules/d3-scale/src/diverging.js","webpack://mermaid/./node_modules/d3-scale/src/identity.js","webpack://mermaid/./node_modules/d3-scale/src/index.js","webpack://mermaid/./node_modules/d3-scale/src/init.js","webpack://mermaid/./node_modules/d3-scale/src/linear.js","webpack://mermaid/./node_modules/d3-scale/src/log.js","webpack://mermaid/./node_modules/d3-scale/src/nice.js","webpack://mermaid/./node_modules/d3-scale/src/number.js","webpack://mermaid/./node_modules/d3-scale/src/ordinal.js","webpack://mermaid/./node_modules/d3-scale/src/pow.js","webpack://mermaid/./node_modules/d3-scale/src/quantile.js","webpack://mermaid/./node_modules/d3-scale/src/quantize.js","webpack://mermaid/./node_modules/d3-scale/src/sequential.js","webpack://mermaid/./node_modules/d3-scale/src/sequentialQuantile.js","webpack://mermaid/./node_modules/d3-scale/src/symlog.js","webpack://mermaid/./node_modules/d3-scale/src/threshold.js","webpack://mermaid/./node_modules/d3-scale/src/tickFormat.js","webpack://mermaid/./node_modules/d3-scale/src/time.js","webpack://mermaid/./node_modules/d3-scale/src/utcTime.js","webpack://mermaid/./node_modules/d3-selection/src/constant.js","webpack://mermaid/./node_modules/d3-selection/src/create.js","webpack://mermaid/./node_modules/d3-selection/src/creator.js","webpack://mermaid/./node_modules/d3-selection/src/index.js","webpack://mermaid/./node_modules/d3-selection/src/local.js","webpack://mermaid/./node_modules/d3-selection/src/matcher.js","webpack://mermaid/./node_modules/d3-selection/src/mouse.js","webpack://mermaid/./node_modules/d3-selection/src/namespace.js","webpack://mermaid/./node_modules/d3-selection/src/namespaces.js","webpack://mermaid/./node_modules/d3-selection/src/point.js","webpack://mermaid/./node_modules/d3-selection/src/select.js","webpack://mermaid/./node_modules/d3-selection/src/selectAll.js","webpack://mermaid/./node_modules/d3-selection/src/selection/append.js","webpack://mermaid/./node_modules/d3-selection/src/selection/attr.js","webpack://mermaid/./node_modules/d3-selection/src/selection/call.js","webpack://mermaid/./node_modules/d3-selection/src/selection/classed.js","webpack://mermaid/./node_modules/d3-selection/src/selection/clone.js","webpack://mermaid/./node_modules/d3-selection/src/selection/data.js","webpack://mermaid/./node_modules/d3-selection/src/selection/datum.js","webpack://mermaid/./node_modules/d3-selection/src/selection/dispatch.js","webpack://mermaid/./node_modules/d3-selection/src/selection/each.js","webpack://mermaid/./node_modules/d3-selection/src/selection/empty.js","webpack://mermaid/./node_modules/d3-selection/src/selection/enter.js","webpack://mermaid/./node_modules/d3-selection/src/selection/exit.js","webpack://mermaid/./node_modules/d3-selection/src/selection/filter.js","webpack://mermaid/./node_modules/d3-selection/src/selection/html.js","webpack://mermaid/./node_modules/d3-selection/src/selection/index.js","webpack://mermaid/./node_modules/d3-selection/src/selection/insert.js","webpack://mermaid/./node_modules/d3-selection/src/selection/join.js","webpack://mermaid/./node_modules/d3-selection/src/selection/lower.js","webpack://mermaid/./node_modules/d3-selection/src/selection/merge.js","webpack://mermaid/./node_modules/d3-selection/src/selection/node.js","webpack://mermaid/./node_modules/d3-selection/src/selection/nodes.js","webpack://mermaid/./node_modules/d3-selection/src/selection/on.js","webpack://mermaid/./node_modules/d3-selection/src/selection/order.js","webpack://mermaid/./node_modules/d3-selection/src/selection/property.js","webpack://mermaid/./node_modules/d3-selection/src/selection/raise.js","webpack://mermaid/./node_modules/d3-selection/src/selection/remove.js","webpack://mermaid/./node_modules/d3-selection/src/selection/select.js","webpack://mermaid/./node_modules/d3-selection/src/selection/selectAll.js","webpack://mermaid/./node_modules/d3-selection/src/selection/size.js","webpack://mermaid/./node_modules/d3-selection/src/selection/sort.js","webpack://mermaid/./node_modules/d3-selection/src/selection/sparse.js","webpack://mermaid/./node_modules/d3-selection/src/selection/style.js","webpack://mermaid/./node_modules/d3-selection/src/selection/text.js","webpack://mermaid/./node_modules/d3-selection/src/selector.js","webpack://mermaid/./node_modules/d3-selection/src/selectorAll.js","webpack://mermaid/./node_modules/d3-selection/src/sourceEvent.js","webpack://mermaid/./node_modules/d3-selection/src/touch.js","webpack://mermaid/./node_modules/d3-selection/src/touches.js","webpack://mermaid/./node_modules/d3-selection/src/window.js","webpack://mermaid/./node_modules/d3-shape/src/arc.js","webpack://mermaid/./node_modules/d3-shape/src/area.js","webpack://mermaid/./node_modules/d3-shape/src/areaRadial.js","webpack://mermaid/./node_modules/d3-shape/src/array.js","webpack://mermaid/./node_modules/d3-shape/src/constant.js","webpack://mermaid/./node_modules/d3-shape/src/curve/basis.js","webpack://mermaid/./node_modules/d3-shape/src/curve/basisClosed.js","webpack://mermaid/./node_modules/d3-shape/src/curve/basisOpen.js","webpack://mermaid/./node_modules/d3-shape/src/curve/bundle.js","webpack://mermaid/./node_modules/d3-shape/src/curve/cardinal.js","webpack://mermaid/./node_modules/d3-shape/src/curve/cardinalClosed.js","webpack://mermaid/./node_modules/d3-shape/src/curve/cardinalOpen.js","webpack://mermaid/./node_modules/d3-shape/src/curve/catmullRom.js","webpack://mermaid/./node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack://mermaid/./node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack://mermaid/./node_modules/d3-shape/src/curve/linear.js","webpack://mermaid/./node_modules/d3-shape/src/curve/linearClosed.js","webpack://mermaid/./node_modules/d3-shape/src/curve/monotone.js","webpack://mermaid/./node_modules/d3-shape/src/curve/natural.js","webpack://mermaid/./node_modules/d3-shape/src/curve/radial.js","webpack://mermaid/./node_modules/d3-shape/src/curve/step.js","webpack://mermaid/./node_modules/d3-shape/src/descending.js","webpack://mermaid/./node_modules/d3-shape/src/identity.js","webpack://mermaid/./node_modules/d3-shape/src/index.js","webpack://mermaid/./node_modules/d3-shape/src/line.js","webpack://mermaid/./node_modules/d3-shape/src/lineRadial.js","webpack://mermaid/./node_modules/d3-shape/src/link/index.js","webpack://mermaid/./node_modules/d3-shape/src/math.js","webpack://mermaid/./node_modules/d3-shape/src/noop.js","webpack://mermaid/./node_modules/d3-shape/src/offset/diverging.js","webpack://mermaid/./node_modules/d3-shape/src/offset/expand.js","webpack://mermaid/./node_modules/d3-shape/src/offset/none.js","webpack://mermaid/./node_modules/d3-shape/src/offset/silhouette.js","webpack://mermaid/./node_modules/d3-shape/src/offset/wiggle.js","webpack://mermaid/./node_modules/d3-shape/src/order/appearance.js","webpack://mermaid/./node_modules/d3-shape/src/order/ascending.js","webpack://mermaid/./node_modules/d3-shape/src/order/descending.js","webpack://mermaid/./node_modules/d3-shape/src/order/insideOut.js","webpack://mermaid/./node_modules/d3-shape/src/order/none.js","webpack://mermaid/./node_modules/d3-shape/src/order/reverse.js","webpack://mermaid/./node_modules/d3-shape/src/pie.js","webpack://mermaid/./node_modules/d3-shape/src/point.js","webpack://mermaid/./node_modules/d3-shape/src/pointRadial.js","webpack://mermaid/./node_modules/d3-shape/src/stack.js","webpack://mermaid/./node_modules/d3-shape/src/symbol.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/circle.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/cross.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/diamond.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/square.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/star.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/triangle.js","webpack://mermaid/./node_modules/d3-shape/src/symbol/wye.js","webpack://mermaid/./node_modules/d3-time-format/src/defaultLocale.js","webpack://mermaid/./node_modules/d3-time-format/src/index.js","webpack://mermaid/./node_modules/d3-time-format/src/isoFormat.js","webpack://mermaid/./node_modules/d3-time-format/src/isoParse.js","webpack://mermaid/./node_modules/d3-time-format/src/locale.js","webpack://mermaid/./node_modules/d3-time/src/day.js","webpack://mermaid/./node_modules/d3-time/src/duration.js","webpack://mermaid/./node_modules/d3-time/src/hour.js","webpack://mermaid/./node_modules/d3-time/src/index.js","webpack://mermaid/./node_modules/d3-time/src/interval.js","webpack://mermaid/./node_modules/d3-time/src/millisecond.js","webpack://mermaid/./node_modules/d3-time/src/minute.js","webpack://mermaid/./node_modules/d3-time/src/month.js","webpack://mermaid/./node_modules/d3-time/src/second.js","webpack://mermaid/./node_modules/d3-time/src/utcDay.js","webpack://mermaid/./node_modules/d3-time/src/utcHour.js","webpack://mermaid/./node_modules/d3-time/src/utcMinute.js","webpack://mermaid/./node_modules/d3-time/src/utcMonth.js","webpack://mermaid/./node_modules/d3-time/src/utcWeek.js","webpack://mermaid/./node_modules/d3-time/src/utcYear.js","webpack://mermaid/./node_modules/d3-time/src/week.js","webpack://mermaid/./node_modules/d3-time/src/year.js","webpack://mermaid/./node_modules/d3-timer/src/index.js","webpack://mermaid/./node_modules/d3-timer/src/interval.js","webpack://mermaid/./node_modules/d3-timer/src/timeout.js","webpack://mermaid/./node_modules/d3-timer/src/timer.js","webpack://mermaid/./node_modules/d3-transition/src/active.js","webpack://mermaid/./node_modules/d3-transition/src/index.js","webpack://mermaid/./node_modules/d3-transition/src/interrupt.js","webpack://mermaid/./node_modules/d3-transition/src/selection/index.js","webpack://mermaid/./node_modules/d3-transition/src/selection/interrupt.js","webpack://mermaid/./node_modules/d3-transition/src/selection/transition.js","webpack://mermaid/./node_modules/d3-transition/src/transition/attr.js","webpack://mermaid/./node_modules/d3-transition/src/transition/attrTween.js","webpack://mermaid/./node_modules/d3-transition/src/transition/delay.js","webpack://mermaid/./node_modules/d3-transition/src/transition/duration.js","webpack://mermaid/./node_modules/d3-transition/src/transition/ease.js","webpack://mermaid/./node_modules/d3-transition/src/transition/end.js","webpack://mermaid/./node_modules/d3-transition/src/transition/filter.js","webpack://mermaid/./node_modules/d3-transition/src/transition/index.js","webpack://mermaid/./node_modules/d3-transition/src/transition/interpolate.js","webpack://mermaid/./node_modules/d3-transition/src/transition/merge.js","webpack://mermaid/./node_modules/d3-transition/src/transition/on.js","webpack://mermaid/./node_modules/d3-transition/src/transition/remove.js","webpack://mermaid/./node_modules/d3-transition/src/transition/schedule.js","webpack://mermaid/./node_modules/d3-transition/src/transition/select.js","webpack://mermaid/./node_modules/d3-transition/src/transition/selectAll.js","webpack://mermaid/./node_modules/d3-transition/src/transition/selection.js","webpack://mermaid/./node_modules/d3-transition/src/transition/style.js","webpack://mermaid/./node_modules/d3-transition/src/transition/styleTween.js","webpack://mermaid/./node_modules/d3-transition/src/transition/text.js","webpack://mermaid/./node_modules/d3-transition/src/transition/textTween.js","webpack://mermaid/./node_modules/d3-transition/src/transition/transition.js","webpack://mermaid/./node_modules/d3-transition/src/transition/tween.js","webpack://mermaid/./node_modules/d3-voronoi/src/Beach.js","webpack://mermaid/./node_modules/d3-voronoi/src/Cell.js","webpack://mermaid/./node_modules/d3-voronoi/src/Circle.js","webpack://mermaid/./node_modules/d3-voronoi/src/Diagram.js","webpack://mermaid/./node_modules/d3-voronoi/src/Edge.js","webpack://mermaid/./node_modules/d3-voronoi/src/RedBlackTree.js","webpack://mermaid/./node_modules/d3-voronoi/src/constant.js","webpack://mermaid/./node_modules/d3-voronoi/src/index.js","webpack://mermaid/./node_modules/d3-voronoi/src/point.js","webpack://mermaid/./node_modules/d3-voronoi/src/voronoi.js","webpack://mermaid/./node_modules/d3-zoom/src/constant.js","webpack://mermaid/./node_modules/d3-zoom/src/event.js","webpack://mermaid/./node_modules/d3-zoom/src/index.js","webpack://mermaid/./node_modules/d3-zoom/src/noevent.js","webpack://mermaid/./node_modules/d3-zoom/src/transform.js","webpack://mermaid/./node_modules/d3-zoom/src/zoom.js","webpack://mermaid/./node_modules/d3/dist/package.js","webpack://mermaid/./node_modules/d3/index.js","webpack://mermaid/./node_modules/dagre-d3/index.js","webpack://mermaid/./node_modules/dagre-d3/lib/arrows.js","webpack://mermaid/./node_modules/dagre-d3/lib/create-clusters.js","webpack://mermaid/./node_modules/dagre-d3/lib/create-edge-labels.js","webpack://mermaid/./node_modules/dagre-d3/lib/create-edge-paths.js","webpack://mermaid/./node_modules/dagre-d3/lib/create-nodes.js","webpack://mermaid/./node_modules/dagre-d3/lib/d3.js","webpack://mermaid/./node_modules/dagre-d3/lib/dagre.js","webpack://mermaid/./node_modules/dagre-d3/lib/graphlib.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/index.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-circle.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-line.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-node.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-polygon.js","webpack://mermaid/./node_modules/dagre-d3/lib/intersect/intersect-rect.js","webpack://mermaid/./node_modules/dagre-d3/lib/label/add-html-label.js","webpack://mermaid/./node_modules/dagre-d3/lib/label/add-label.js","webpack://mermaid/./node_modules/dagre-d3/lib/label/add-svg-label.js","webpack://mermaid/./node_modules/dagre-d3/lib/label/add-text-label.js","webpack://mermaid/./node_modules/dagre-d3/lib/lodash.js","webpack://mermaid/./node_modules/dagre-d3/lib/position-clusters.js","webpack://mermaid/./node_modules/dagre-d3/lib/position-edge-labels.js","webpack://mermaid/./node_modules/dagre-d3/lib/position-nodes.js","webpack://mermaid/./node_modules/dagre-d3/lib/render.js","webpack://mermaid/./node_modules/dagre-d3/lib/shapes.js","webpack://mermaid/./node_modules/dagre-d3/lib/util.js","webpack://mermaid/./node_modules/dagre-d3/lib/version.js","webpack://mermaid/./node_modules/dagre/index.js","webpack://mermaid/./node_modules/dagre/lib/acyclic.js","webpack://mermaid/./node_modules/dagre/lib/add-border-segments.js","webpack://mermaid/./node_modules/dagre/lib/coordinate-system.js","webpack://mermaid/./node_modules/dagre/lib/data/list.js","webpack://mermaid/./node_modules/dagre/lib/debug.js","webpack://mermaid/./node_modules/dagre/lib/graphlib.js","webpack://mermaid/./node_modules/dagre/lib/greedy-fas.js","webpack://mermaid/./node_modules/dagre/lib/layout.js","webpack://mermaid/./node_modules/dagre/lib/lodash.js","webpack://mermaid/./node_modules/dagre/lib/nesting-graph.js","webpack://mermaid/./node_modules/dagre/lib/normalize.js","webpack://mermaid/./node_modules/dagre/lib/order/add-subgraph-constraints.js","webpack://mermaid/./node_modules/dagre/lib/order/barycenter.js","webpack://mermaid/./node_modules/dagre/lib/order/build-layer-graph.js","webpack://mermaid/./node_modules/dagre/lib/order/cross-count.js","webpack://mermaid/./node_modules/dagre/lib/order/index.js","webpack://mermaid/./node_modules/dagre/lib/order/init-order.js","webpack://mermaid/./node_modules/dagre/lib/order/resolve-conflicts.js","webpack://mermaid/./node_modules/dagre/lib/order/sort-subgraph.js","webpack://mermaid/./node_modules/dagre/lib/order/sort.js","webpack://mermaid/./node_modules/dagre/lib/parent-dummy-chains.js","webpack://mermaid/./node_modules/dagre/lib/position/bk.js","webpack://mermaid/./node_modules/dagre/lib/position/index.js","webpack://mermaid/./node_modules/dagre/lib/rank/feasible-tree.js","webpack://mermaid/./node_modules/dagre/lib/rank/index.js","webpack://mermaid/./node_modules/dagre/lib/rank/network-simplex.js","webpack://mermaid/./node_modules/dagre/lib/rank/util.js","webpack://mermaid/./node_modules/dagre/lib/util.js","webpack://mermaid/./node_modules/dagre/lib/version.js","webpack://mermaid/./node_modules/entity-decode/browser.js","webpack://mermaid/./node_modules/escaper/dist/escaper.js","webpack://mermaid/./node_modules/graphlib/index.js","webpack://mermaid/./node_modules/graphlib/lib/alg/components.js","webpack://mermaid/./node_modules/graphlib/lib/alg/dfs.js","webpack://mermaid/./node_modules/graphlib/lib/alg/dijkstra-all.js","webpack://mermaid/./node_modules/graphlib/lib/alg/dijkstra.js","webpack://mermaid/./node_modules/graphlib/lib/alg/find-cycles.js","webpack://mermaid/./node_modules/graphlib/lib/alg/floyd-warshall.js","webpack://mermaid/./node_modules/graphlib/lib/alg/index.js","webpack://mermaid/./node_modules/graphlib/lib/alg/is-acyclic.js","webpack://mermaid/./node_modules/graphlib/lib/alg/postorder.js","webpack://mermaid/./node_modules/graphlib/lib/alg/preorder.js","webpack://mermaid/./node_modules/graphlib/lib/alg/prim.js","webpack://mermaid/./node_modules/graphlib/lib/alg/tarjan.js","webpack://mermaid/./node_modules/graphlib/lib/alg/topsort.js","webpack://mermaid/./node_modules/graphlib/lib/data/priority-queue.js","webpack://mermaid/./node_modules/graphlib/lib/graph.js","webpack://mermaid/./node_modules/graphlib/lib/index.js","webpack://mermaid/./node_modules/graphlib/lib/json.js","webpack://mermaid/./node_modules/graphlib/lib/lodash.js","webpack://mermaid/./node_modules/graphlib/lib/version.js","webpack://mermaid/./node_modules/is-regexp/index.js","webpack://mermaid/./node_modules/lodash/_DataView.js","webpack://mermaid/./node_modules/lodash/_Hash.js","webpack://mermaid/./node_modules/lodash/_ListCache.js","webpack://mermaid/./node_modules/lodash/_Map.js","webpack://mermaid/./node_modules/lodash/_MapCache.js","webpack://mermaid/./node_modules/lodash/_Promise.js","webpack://mermaid/./node_modules/lodash/_Set.js","webpack://mermaid/./node_modules/lodash/_SetCache.js","webpack://mermaid/./node_modules/lodash/_Stack.js","webpack://mermaid/./node_modules/lodash/_Symbol.js","webpack://mermaid/./node_modules/lodash/_Uint8Array.js","webpack://mermaid/./node_modules/lodash/_WeakMap.js","webpack://mermaid/./node_modules/lodash/_apply.js","webpack://mermaid/./node_modules/lodash/_arrayEach.js","webpack://mermaid/./node_modules/lodash/_arrayFilter.js","webpack://mermaid/./node_modules/lodash/_arrayIncludes.js","webpack://mermaid/./node_modules/lodash/_arrayIncludesWith.js","webpack://mermaid/./node_modules/lodash/_arrayLikeKeys.js","webpack://mermaid/./node_modules/lodash/_arrayMap.js","webpack://mermaid/./node_modules/lodash/_arrayPush.js","webpack://mermaid/./node_modules/lodash/_arrayReduce.js","webpack://mermaid/./node_modules/lodash/_arraySome.js","webpack://mermaid/./node_modules/lodash/_asciiSize.js","webpack://mermaid/./node_modules/lodash/_assignMergeValue.js","webpack://mermaid/./node_modules/lodash/_assignValue.js","webpack://mermaid/./node_modules/lodash/_assocIndexOf.js","webpack://mermaid/./node_modules/lodash/_baseAssign.js","webpack://mermaid/./node_modules/lodash/_baseAssignIn.js","webpack://mermaid/./node_modules/lodash/_baseAssignValue.js","webpack://mermaid/./node_modules/lodash/_baseClone.js","webpack://mermaid/./node_modules/lodash/_baseCreate.js","webpack://mermaid/./node_modules/lodash/_baseEach.js","webpack://mermaid/./node_modules/lodash/_baseExtremum.js","webpack://mermaid/./node_modules/lodash/_baseFilter.js","webpack://mermaid/./node_modules/lodash/_baseFindIndex.js","webpack://mermaid/./node_modules/lodash/_baseFlatten.js","webpack://mermaid/./node_modules/lodash/_baseFor.js","webpack://mermaid/./node_modules/lodash/_baseForOwn.js","webpack://mermaid/./node_modules/lodash/_baseGet.js","webpack://mermaid/./node_modules/lodash/_baseGetAllKeys.js","webpack://mermaid/./node_modules/lodash/_baseGetTag.js","webpack://mermaid/./node_modules/lodash/_baseGt.js","webpack://mermaid/./node_modules/lodash/_baseHas.js","webpack://mermaid/./node_modules/lodash/_baseHasIn.js","webpack://mermaid/./node_modules/lodash/_baseIndexOf.js","webpack://mermaid/./node_modules/lodash/_baseIsArguments.js","webpack://mermaid/./node_modules/lodash/_baseIsEqual.js","webpack://mermaid/./node_modules/lodash/_baseIsEqualDeep.js","webpack://mermaid/./node_modules/lodash/_baseIsMap.js","webpack://mermaid/./node_modules/lodash/_baseIsMatch.js","webpack://mermaid/./node_modules/lodash/_baseIsNaN.js","webpack://mermaid/./node_modules/lodash/_baseIsNative.js","webpack://mermaid/./node_modules/lodash/_baseIsSet.js","webpack://mermaid/./node_modules/lodash/_baseIsTypedArray.js","webpack://mermaid/./node_modules/lodash/_baseIteratee.js","webpack://mermaid/./node_modules/lodash/_baseKeys.js","webpack://mermaid/./node_modules/lodash/_baseKeysIn.js","webpack://mermaid/./node_modules/lodash/_baseLt.js","webpack://mermaid/./node_modules/lodash/_baseMap.js","webpack://mermaid/./node_modules/lodash/_baseMatches.js","webpack://mermaid/./node_modules/lodash/_baseMatchesProperty.js","webpack://mermaid/./node_modules/lodash/_baseMerge.js","webpack://mermaid/./node_modules/lodash/_baseMergeDeep.js","webpack://mermaid/./node_modules/lodash/_baseOrderBy.js","webpack://mermaid/./node_modules/lodash/_basePick.js","webpack://mermaid/./node_modules/lodash/_basePickBy.js","webpack://mermaid/./node_modules/lodash/_baseProperty.js","webpack://mermaid/./node_modules/lodash/_basePropertyDeep.js","webpack://mermaid/./node_modules/lodash/_baseRange.js","webpack://mermaid/./node_modules/lodash/_baseReduce.js","webpack://mermaid/./node_modules/lodash/_baseRest.js","webpack://mermaid/./node_modules/lodash/_baseSet.js","webpack://mermaid/./node_modules/lodash/_baseSetToString.js","webpack://mermaid/./node_modules/lodash/_baseSortBy.js","webpack://mermaid/./node_modules/lodash/_baseTimes.js","webpack://mermaid/./node_modules/lodash/_baseToString.js","webpack://mermaid/./node_modules/lodash/_baseUnary.js","webpack://mermaid/./node_modules/lodash/_baseUniq.js","webpack://mermaid/./node_modules/lodash/_baseValues.js","webpack://mermaid/./node_modules/lodash/_baseZipObject.js","webpack://mermaid/./node_modules/lodash/_cacheHas.js","webpack://mermaid/./node_modules/lodash/_castFunction.js","webpack://mermaid/./node_modules/lodash/_castPath.js","webpack://mermaid/./node_modules/lodash/_cloneArrayBuffer.js","webpack://mermaid/./node_modules/lodash/_cloneBuffer.js","webpack://mermaid/./node_modules/lodash/_cloneDataView.js","webpack://mermaid/./node_modules/lodash/_cloneRegExp.js","webpack://mermaid/./node_modules/lodash/_cloneSymbol.js","webpack://mermaid/./node_modules/lodash/_cloneTypedArray.js","webpack://mermaid/./node_modules/lodash/_compareAscending.js","webpack://mermaid/./node_modules/lodash/_compareMultiple.js","webpack://mermaid/./node_modules/lodash/_copyArray.js","webpack://mermaid/./node_modules/lodash/_copyObject.js","webpack://mermaid/./node_modules/lodash/_copySymbols.js","webpack://mermaid/./node_modules/lodash/_copySymbolsIn.js","webpack://mermaid/./node_modules/lodash/_coreJsData.js","webpack://mermaid/./node_modules/lodash/_createAssigner.js","webpack://mermaid/./node_modules/lodash/_createBaseEach.js","webpack://mermaid/./node_modules/lodash/_createBaseFor.js","webpack://mermaid/./node_modules/lodash/_createFind.js","webpack://mermaid/./node_modules/lodash/_createRange.js","webpack://mermaid/./node_modules/lodash/_createSet.js","webpack://mermaid/./node_modules/lodash/_defineProperty.js","webpack://mermaid/./node_modules/lodash/_equalArrays.js","webpack://mermaid/./node_modules/lodash/_equalByTag.js","webpack://mermaid/./node_modules/lodash/_equalObjects.js","webpack://mermaid/./node_modules/lodash/_flatRest.js","webpack://mermaid/./node_modules/lodash/_freeGlobal.js","webpack://mermaid/./node_modules/lodash/_getAllKeys.js","webpack://mermaid/./node_modules/lodash/_getAllKeysIn.js","webpack://mermaid/./node_modules/lodash/_getMapData.js","webpack://mermaid/./node_modules/lodash/_getMatchData.js","webpack://mermaid/./node_modules/lodash/_getNative.js","webpack://mermaid/./node_modules/lodash/_getPrototype.js","webpack://mermaid/./node_modules/lodash/_getRawTag.js","webpack://mermaid/./node_modules/lodash/_getSymbols.js","webpack://mermaid/./node_modules/lodash/_getSymbolsIn.js","webpack://mermaid/./node_modules/lodash/_getTag.js","webpack://mermaid/./node_modules/lodash/_getValue.js","webpack://mermaid/./node_modules/lodash/_hasPath.js","webpack://mermaid/./node_modules/lodash/_hasUnicode.js","webpack://mermaid/./node_modules/lodash/_hashClear.js","webpack://mermaid/./node_modules/lodash/_hashDelete.js","webpack://mermaid/./node_modules/lodash/_hashGet.js","webpack://mermaid/./node_modules/lodash/_hashHas.js","webpack://mermaid/./node_modules/lodash/_hashSet.js","webpack://mermaid/./node_modules/lodash/_initCloneArray.js","webpack://mermaid/./node_modules/lodash/_initCloneByTag.js","webpack://mermaid/./node_modules/lodash/_initCloneObject.js","webpack://mermaid/./node_modules/lodash/_isFlattenable.js","webpack://mermaid/./node_modules/lodash/_isIndex.js","webpack://mermaid/./node_modules/lodash/_isIterateeCall.js","webpack://mermaid/./node_modules/lodash/_isKey.js","webpack://mermaid/./node_modules/lodash/_isKeyable.js","webpack://mermaid/./node_modules/lodash/_isMasked.js","webpack://mermaid/./node_modules/lodash/_isPrototype.js","webpack://mermaid/./node_modules/lodash/_isStrictComparable.js","webpack://mermaid/./node_modules/lodash/_listCacheClear.js","webpack://mermaid/./node_modules/lodash/_listCacheDelete.js","webpack://mermaid/./node_modules/lodash/_listCacheGet.js","webpack://mermaid/./node_modules/lodash/_listCacheHas.js","webpack://mermaid/./node_modules/lodash/_listCacheSet.js","webpack://mermaid/./node_modules/lodash/_mapCacheClear.js","webpack://mermaid/./node_modules/lodash/_mapCacheDelete.js","webpack://mermaid/./node_modules/lodash/_mapCacheGet.js","webpack://mermaid/./node_modules/lodash/_mapCacheHas.js","webpack://mermaid/./node_modules/lodash/_mapCacheSet.js","webpack://mermaid/./node_modules/lodash/_mapToArray.js","webpack://mermaid/./node_modules/lodash/_matchesStrictComparable.js","webpack://mermaid/./node_modules/lodash/_memoizeCapped.js","webpack://mermaid/./node_modules/lodash/_nativeCreate.js","webpack://mermaid/./node_modules/lodash/_nativeKeys.js","webpack://mermaid/./node_modules/lodash/_nativeKeysIn.js","webpack://mermaid/./node_modules/lodash/_nodeUtil.js","webpack://mermaid/./node_modules/lodash/_objectToString.js","webpack://mermaid/./node_modules/lodash/_overArg.js","webpack://mermaid/./node_modules/lodash/_overRest.js","webpack://mermaid/./node_modules/lodash/_root.js","webpack://mermaid/./node_modules/lodash/_safeGet.js","webpack://mermaid/./node_modules/lodash/_setCacheAdd.js","webpack://mermaid/./node_modules/lodash/_setCacheHas.js","webpack://mermaid/./node_modules/lodash/_setToArray.js","webpack://mermaid/./node_modules/lodash/_setToString.js","webpack://mermaid/./node_modules/lodash/_shortOut.js","webpack://mermaid/./node_modules/lodash/_stackClear.js","webpack://mermaid/./node_modules/lodash/_stackDelete.js","webpack://mermaid/./node_modules/lodash/_stackGet.js","webpack://mermaid/./node_modules/lodash/_stackHas.js","webpack://mermaid/./node_modules/lodash/_stackSet.js","webpack://mermaid/./node_modules/lodash/_strictIndexOf.js","webpack://mermaid/./node_modules/lodash/_stringSize.js","webpack://mermaid/./node_modules/lodash/_stringToPath.js","webpack://mermaid/./node_modules/lodash/_toKey.js","webpack://mermaid/./node_modules/lodash/_toSource.js","webpack://mermaid/./node_modules/lodash/_unicodeSize.js","webpack://mermaid/./node_modules/lodash/clone.js","webpack://mermaid/./node_modules/lodash/cloneDeep.js","webpack://mermaid/./node_modules/lodash/constant.js","webpack://mermaid/./node_modules/lodash/defaults.js","webpack://mermaid/./node_modules/lodash/each.js","webpack://mermaid/./node_modules/lodash/eq.js","webpack://mermaid/./node_modules/lodash/filter.js","webpack://mermaid/./node_modules/lodash/find.js","webpack://mermaid/./node_modules/lodash/findIndex.js","webpack://mermaid/./node_modules/lodash/flatten.js","webpack://mermaid/./node_modules/lodash/forEach.js","webpack://mermaid/./node_modules/lodash/forIn.js","webpack://mermaid/./node_modules/lodash/get.js","webpack://mermaid/./node_modules/lodash/has.js","webpack://mermaid/./node_modules/lodash/hasIn.js","webpack://mermaid/./node_modules/lodash/identity.js","webpack://mermaid/./node_modules/lodash/isArguments.js","webpack://mermaid/./node_modules/lodash/isArray.js","webpack://mermaid/./node_modules/lodash/isArrayLike.js","webpack://mermaid/./node_modules/lodash/isArrayLikeObject.js","webpack://mermaid/./node_modules/lodash/isBuffer.js","webpack://mermaid/./node_modules/lodash/isEmpty.js","webpack://mermaid/./node_modules/lodash/isFunction.js","webpack://mermaid/./node_modules/lodash/isLength.js","webpack://mermaid/./node_modules/lodash/isMap.js","webpack://mermaid/./node_modules/lodash/isObject.js","webpack://mermaid/./node_modules/lodash/isObjectLike.js","webpack://mermaid/./node_modules/lodash/isPlainObject.js","webpack://mermaid/./node_modules/lodash/isSet.js","webpack://mermaid/./node_modules/lodash/isString.js","webpack://mermaid/./node_modules/lodash/isSymbol.js","webpack://mermaid/./node_modules/lodash/isTypedArray.js","webpack://mermaid/./node_modules/lodash/isUndefined.js","webpack://mermaid/./node_modules/lodash/keys.js","webpack://mermaid/./node_modules/lodash/keysIn.js","webpack://mermaid/./node_modules/lodash/last.js","webpack://mermaid/./node_modules/lodash/map.js","webpack://mermaid/./node_modules/lodash/mapValues.js","webpack://mermaid/./node_modules/lodash/max.js","webpack://mermaid/./node_modules/lodash/memoize.js","webpack://mermaid/./node_modules/lodash/merge.js","webpack://mermaid/./node_modules/lodash/min.js","webpack://mermaid/./node_modules/lodash/minBy.js","webpack://mermaid/./node_modules/lodash/noop.js","webpack://mermaid/./node_modules/lodash/now.js","webpack://mermaid/./node_modules/lodash/pick.js","webpack://mermaid/./node_modules/lodash/property.js","webpack://mermaid/./node_modules/lodash/range.js","webpack://mermaid/./node_modules/lodash/reduce.js","webpack://mermaid/./node_modules/lodash/size.js","webpack://mermaid/./node_modules/lodash/sortBy.js","webpack://mermaid/./node_modules/lodash/stubArray.js","webpack://mermaid/./node_modules/lodash/stubFalse.js","webpack://mermaid/./node_modules/lodash/toFinite.js","webpack://mermaid/./node_modules/lodash/toInteger.js","webpack://mermaid/./node_modules/lodash/toNumber.js","webpack://mermaid/./node_modules/lodash/toPlainObject.js","webpack://mermaid/./node_modules/lodash/toString.js","webpack://mermaid/./node_modules/lodash/transform.js","webpack://mermaid/./node_modules/lodash/union.js","webpack://mermaid/./node_modules/lodash/uniqueId.js","webpack://mermaid/./node_modules/lodash/values.js","webpack://mermaid/./node_modules/lodash/zipObject.js","webpack://mermaid/./node_modules/moment-mini/locale sync ^\\.\\/.*$","webpack://mermaid/./node_modules/moment-mini/moment.min.js","webpack://mermaid/./node_modules/path-browserify/index.js","webpack://mermaid/./node_modules/process/browser.js","webpack://mermaid/./node_modules/scope-css/index.js","webpack://mermaid/./node_modules/slugify/slugify.js","webpack://mermaid/./node_modules/strip-css-comments/index.js","webpack://mermaid/(webpack)/buildin/global.js","webpack://mermaid/(webpack)/buildin/module.js","webpack://mermaid/./src/config.js","webpack://mermaid/./src/dagre-wrapper/clusters.js","webpack://mermaid/./src/dagre-wrapper/createLabel.js","webpack://mermaid/./src/dagre-wrapper/edges.js","webpack://mermaid/./src/dagre-wrapper/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-circle.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-ellipse.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-line.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-node.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-polygon.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-rect.js","webpack://mermaid/./src/dagre-wrapper/markers.js","webpack://mermaid/./src/dagre-wrapper/mermaid-graphlib.js","webpack://mermaid/./src/dagre-wrapper/nodes.js","webpack://mermaid/./src/dagre-wrapper/shapes/note.js","webpack://mermaid/./src/dagre-wrapper/shapes/util.js","webpack://mermaid/./src/diagrams/class/classDb.js","webpack://mermaid/./src/diagrams/class/classRenderer.js","webpack://mermaid/./src/diagrams/class/parser/classDiagram.jison","webpack://mermaid/./src/diagrams/class/svgDraw.js","webpack://mermaid/./src/diagrams/common/common.js","webpack://mermaid/./src/diagrams/er/erDb.js","webpack://mermaid/./src/diagrams/er/erMarkers.js","webpack://mermaid/./src/diagrams/er/erRenderer.js","webpack://mermaid/./src/diagrams/er/parser/erDiagram.jison","webpack://mermaid/./src/diagrams/flowchart/flowChartShapes.js","webpack://mermaid/./src/diagrams/flowchart/flowDb.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer-v2.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer.js","webpack://mermaid/./src/diagrams/flowchart/parser/flow.jison","webpack://mermaid/./src/diagrams/gantt/ganttDb.js","webpack://mermaid/./src/diagrams/gantt/ganttRenderer.js","webpack://mermaid/./src/diagrams/gantt/parser/gantt.jison","webpack://mermaid/./src/diagrams/git/gitGraphAst.js","webpack://mermaid/./src/diagrams/git/gitGraphRenderer.js","webpack://mermaid/./src/diagrams/git/parser/gitGraph.jison","webpack://mermaid/./src/diagrams/info/infoDb.js","webpack://mermaid/./src/diagrams/info/infoRenderer.js","webpack://mermaid/./src/diagrams/info/parser/info.jison","webpack://mermaid/./src/diagrams/pie/parser/pie.jison","webpack://mermaid/./src/diagrams/pie/pieDb.js","webpack://mermaid/./src/diagrams/pie/pieRenderer.js","webpack://mermaid/./src/diagrams/sequence/parser/sequenceDiagram.jison","webpack://mermaid/./src/diagrams/sequence/sequenceDb.js","webpack://mermaid/./src/diagrams/sequence/sequenceRenderer.js","webpack://mermaid/./src/diagrams/sequence/svgDraw.js","webpack://mermaid/./src/diagrams/state/id-cache.js","webpack://mermaid/./src/diagrams/state/parser/stateDiagram.jison","webpack://mermaid/./src/diagrams/state/shapes.js","webpack://mermaid/./src/diagrams/state/stateDb.js","webpack://mermaid/./src/diagrams/state/stateRenderer-v2.js","webpack://mermaid/./src/diagrams/state/stateRenderer.js","webpack://mermaid/./src/diagrams/user-journey/journeyDb.js","webpack://mermaid/./src/diagrams/user-journey/journeyRenderer.js","webpack://mermaid/./src/diagrams/user-journey/parser/journey.jison","webpack://mermaid/./src/diagrams/user-journey/svgDraw.js","webpack://mermaid/./src/errorRenderer.js","webpack://mermaid/./src/logger.js","webpack://mermaid/./src/mermaid.js","webpack://mermaid/./src/mermaidAPI.js","webpack://mermaid/./src/themes sync ^\\.\\/.*\\/index\\.scss$","webpack://mermaid/./src/themes/dark/index.scss?55a3","webpack://mermaid/./src/themes/default/index.scss?1e22","webpack://mermaid/./src/themes/forest/index.scss?c8cd","webpack://mermaid/./src/themes/neutral/index.scss?96e0","webpack://mermaid/./src/utils.js"],"names":["config","setConf","cnf","lvl1Keys","Object","keys","i","length","lvl2Keys","j","setConfig","conf","getConfig","configApi","rect","parent","node","log","trace","id","shapeSvg","insert","attr","label","text","appendChild","createLabel","labelText","labelStyle","undefined","bbox","getBBox","flowchart","htmlLabels","div","children","dv","select","getBoundingClientRect","width","height","padding","halfPadding","JSON","stringify","rx","ry","x","y","rectBox","intersect","point","intersectRect","noteGroup","roundedWithTitle","classes","innerRect","append","divider","shapes","clusterElems","insertCluster","elem","shape","getClusterTitleWidth","removeChild","clear","positionCluster","info","el","applyStyle","dom","styleFn","addHtmlLabel","fo","document","createElementNS","labelClass","isNode","html","style","_vertexText","isTitle","vertexText","replace","logger","s","vertexNode","svgLabel","setAttribute","rows","split","Array","isArray","tspan","setAttributeNS","textContent","trim","edgeLabels","insertEdgeLabel","edge","labelElement","edgeLabel","positionEdgeLabel","outsideNode","dx","Math","abs","dy","w","h","intersection","outsidePoint","insidePoint","r","q","Q","R","insertEdge","e","clusterDb","diagramType","graph","points","tail","v","head","slice","unshift","push","toCluster","lastPointOutside","isInside","forEach","insterection","fromCluster","updatedPoints","lineData","filter","p","Number","isNaN","lineFunction","line","d","curve","curveBasis","svgPath","url","state","arrowMarkerAbsolute","window","location","protocol","host","pathname","search","arrowType","recursiveRender","_elem","diagramtype","parentCluster","graphlib","json","write","dir","rankdir","warn","nodes","edges","clusters","edgePaths","data","parse","clusterData","setNode","setParent","clusterNode","newEl","updateNodeBounds","setNodeElem","findNonClusterChild","insertNode","name","dagre","layout","positionNode","render","markers","insertMarkers","clearNodes","clearEdges","clearClusters","clearGraphlib","adjustClustersAndEdges","circle","ellipse","polygon","intersectCircle","intersectEllipse","cx","cy","px","py","det","sqrt","intersectLine","p1","p2","q1","q2","a1","a2","b1","b2","c1","c2","r1","r2","r3","r4","denom","offset","num","sameSign","module","exports","intersectNode","console","intersectPolygon","polyPoints","x1","y1","intersections","minX","POSITIVE_INFINITY","minY","entry","min","left","top","sort","pdx","pdy","distp","qdx","qdy","distq","sx","sy","markerArray","type","markerName","extension","composition","aggregation","dependency","cross","barb","decendants","parents","isDecendant","ancenstorId","debug","indexOf","edgeInCluster","clusterId","copy","newGraph","rootId","setEdge","error","removeNode","extractDecendants","res","concat","validate","_id","getAnchorId","externalConnections","depth","d1","d2","extractor","removeEdge","hasChildren","graphSettings","clusterGraph","Graph","multigraph","compound","setGraph","nodesep","ranksep","marginx","marginy","setDefaultEdgeLabel","question","labelHelper","questionElem","insertPolygonShape","hexagon","f","m","hex","rect_left_inv_arrow","lean_right","lean_left","trapezoid","inv_trapezoid","rect_right_inv_arrow","cylinder","pos","rectWithTitle","innerLine","text2","flat","textRows","titleBox","descr","join","stadium","subroutine","start","forkJoin","end","innerCircle","note","fork","nodeElems","_classes","element","map","MERMAID_DOM_ID_PREFIX","relations","classCounter","funs","splitClassNameAndType","genericType","className","addClass","classId","cssClasses","methods","members","annotations","domId","lookUpDomId","classKeys","setupToolTips","getClass","getClasses","getRelations","addRelation","relation","id1","id2","addAnnotation","annotation","validatedClassName","addMember","member","theClass","memberString","startsWith","endsWith","substring","addMembers","reverse","cleanupLabel","substr","setCssClass","ids","match","setLink","linkStr","tooltip","link","utils","formatUrl","common","sanitizeText","setClickEvent","functionName","setClickFunc","elemId","securityLevel","querySelector","addEventListener","bindFunctions","fun","lineType","LINE","DOTTED_LINE","relationType","AGGREGATION","EXTENSION","COMPOSITION","DEPENDENCY","tooltipElem","_groups","svg","selectAll","on","title","transition","duration","right","body","scrollTop","classed","parser","yy","classDb","idCache","dividerMargin","textHeight","getGraphId","key","draw","diagram","g","isMultiGraph","classDef","svgDraw","drawClass","drawEdge","svgBounds","useMaxWidth","vBox","edgeCount","path","getRelationType","type1","type2","l","labelPosition","calcLabelPosition","p1_card_x","p1_card_y","p2_card_x","p2_card_y","cardinality_1_point","calcCardinalityPosition","cardinality_2_point","bounds","relationTitle1","relationTitle2","cssClassStr","classInfo","isFirst","titleText2","classTitleString","classTitle","titleHeight","membersLine","addTspan","membersBox","methodsLine","method","classBox","rectWidth","childNodes","parseMember","fieldRegEx","methodRegEx","fieldMatch","methodMatch","buildFieldDisplay","buildMethodDisplay","buildLegacyDisplay","parsedText","visibility","fieldType","parseGenericTypes","fieldName","displayText","cssStyle","methodName","parameters","classifier","returnType","parseClassifier","memberText","methodStart","methodEnd","textEl","txt","tSpan","cleanedText","getRows","str","breakToPlaceholder","placeholderToBreak","lineBreakRegex","entities","relationships","Cardinality","ZERO_OR_ONE","ZERO_OR_MORE","ONE_OR_MORE","ONLY_ONE","Identification","NON_IDENTIFYING","IDENTIFYING","addEntity","getEntities","addRelationship","entA","rolA","entB","rSpec","rel","entityA","roleA","entityB","relSpec","getRelationships","setTitle","getTitle","ERMarkers","ONLY_ONE_START","ONLY_ONE_END","ZERO_OR_ONE_START","ZERO_OR_ONE_END","ONE_OR_MORE_START","ONE_OR_MORE_END","ZERO_OR_MORE_START","ZERO_OR_MORE_END","marker","stroke","drawEntities","svgNode","firstOne","groupNode","textId","textNode","fontFamily","fontSize","textBBox","entityWidth","max","minEntityWidth","entityPadding","entityHeight","minEntityHeight","rectNode","fill","rectBBox","adjustEntities","getEdgeName","addRelationships","relationship","relCnt","drawRelationshipFromLayout","relType","erDb","cardA","erMarkers","cardB","len","getTotalLength","labelPoint","getPointAtLength","labelId","labelNode","labelBBox","erParser","err","directed","layoutDirection","edgesep","firstEntity","diagramPadding","dagreD3","addToRender","addToRenderV2","addShape","vertices","subGraphs","subGraphLookup","tooltips","subCount","firstGraphFlag","direction","addVertex","styles","addSingleLink","_start","_end","linktext","addLink","updateLinkInterpolate","positions","interp","defaultInterpolate","interpolate","updateLink","defaultStyle","isSubstringInArray","textStyles","newStyle1","newStyle2","setDirection","setClass","setTooltip","setClickFun","getTooltip","getDirection","getVertices","getEdges","addSubGraph","list","_title","uniq","a","prims","boolean","number","string","objs","item","hasOwnProperty","nodeList","apply","subGraph","getPosForId","secCount","posCrossRef","indexNodes2","result","count","posCount","childPos","getDepthFirstPos","indexNodes","getSubGraphs","firstGraph","destructStartLink","_str","destructEndLink","destructLink","_startStr","startInfo","lex","addVertices","vert","svgId","vertex","classStr","getStylesFromArray","parentNode","radious","_shape","class","addEdges","cnt","defaultLabelStyle","defaultStyles","edgeData","arrowhead","interpolateToCurve","curveLinear","arrowheadStyle","labelpos","labelType","flowDb","flow","nodeSpacing","rankSpacing","subG","_label","labels","querySelectorAll","k","dim","insertBefore","firstChild","linkNode","Render","flowChartShapes","arrows","none","normal","util","clusterRects","clusterEl","xPos","baseVal","value","yPos","cluster","te","classList","add","dateFormat","axisFormat","todayMarker","excludes","sections","tasks","currentSection","tags","inclusiveEndDates","taskCnt","lastTask","lastTaskID","rawTasks","setAxisFormat","getAxisFormat","setTodayMarker","getTodayMarker","setDateFormat","enableInclusiveEndDates","endDatesAreInclusive","getDateFormat","setExcludes","toLowerCase","getExcludes","addSection","getSections","getTasks","allItemsPricessed","compileTasks","maxDepth","iterationCount","isInvalidDate","date","isoWeekday","format","checkTaskDates","task","manualEndTime","startTime","moment","endTime","renderEndTime","fixTaskDates","toDate","invalid","getStartDate","prevTime","re","afterStatement","exec","latestEndingTask","findTaskById","dt","Date","setHours","mDate","isValid","durationToDate","durationStatement","relativeTime","getEndDate","inclusive","parseId","idStr","compileData","prevTask","dataStr","ds","getTaskTags","endTimeData","parseData","prevTaskId","startData","taskDb","addTask","rawTask","section","processed","raw","taskInfo","active","done","crit","milestone","addTaskOrg","newTask","description","compileTask","allProcessed","_linkStr","sanitizeUrl","pushFun","open","functionArgs","argList","charAt","callbackFunction","matchFound","t","pattern","regex","RegExp","shift","ganttDb","titleTopMargin","barHeight","barGap","topPadding","rightPadding","leftPadding","gridLineStartPadding","getElementById","parentElement","offsetWidth","useWidth","taskArray","timeScale","scaleTime","domain","rangeRound","categories","catsUnfiltered","checkUnique","makeGant","pageWidth","pageHeight","gap","colorScale","scaleLinear","range","interpolateHcl","makeGrid","drawRects","vertLabels","drawToday","theArray","theGap","theTopPad","theSidePad","theBarHeight","theColorScale","enter","numberSectionStyles","rectangles","toString","secNum","taskClass","startX","endX","textWidth","taskType","xAxis","axisBottom","tickSize","tickFormat","timeFormat","call","numOccurances","prevGap","getCount","todayG","today","todayLine","arr","hash","getCounts","obj","word","commits","branches","master","curBranch","seq","makeid","characters","charactersLength","floor","random","getId","isfastforwardable","currentCommit","otherCommit","isReachableFrom","currentSeq","otherSeq","uniqBy","fn","recordMap","create","reduce","out","options","setOptions","rawOptString","message","getOptions","commit","msg","branch","merge","otherBranch","checkout","reset","commitRef","ref","parentCount","parseInt","upsert","newval","index","splice","prettyPrintCommitHistory","commitArr","c","newCommit","nextCommit","prettyPrint","getCommitsArray","getBranchesAsObjArray","branchArr","getBranches","getCommits","o","b","getCurrentBranch","getHead","allCommitsDict","branchNum","nodeFillColor","nodeStrokeWidth","nodeStrokeColor","lineStrokeWidth","branchOffset","lineColor","leftMargin","branchColors","nodeRadius","nodeLabel","apiConfig","svgCreateDefs","svgDrawLine","colorIdx","color","lineGen","round","getElementCoords","coords","ctm","getCTM","xn","yn","svgDrawLineForCommits","fromId","toId","fromBbox","toBbox","lineStart","lineEnd","cloneNode","selector","renderCommitHistory","commitid","numCommits","size","branchName","renderLines","branchColor","lineDrawn","ver","gitGraphParser","db","assign","setMessage","getMessage","setInfo","inf","getInfo","infoParser","cleanupValue","pieParser","pieData","margin","legendRectSize","legendSpacing","radius","sum","scaleOrdinal","schemeSet2","pie","d3pie","dataReady","entries","arcGenerator","arc","innerRadius","outerRadius","toFixed","centroid","legend","horz","prevActor","actors","messages","notes","titleWrapped","sequenceNumbersEnabled","wrapEnabled","configUpdated","currentDirective","parseDirective","statement","context","args","handleDirective","directive","mermaidAPI","initialize","updateConfig","addActor","old","wrap","autoWrap","nextActor","activationCount","part","LINETYPE","ACTIVE_START","from","actor","ACTIVE_END","addMessage","idFrom","idTo","answer","to","addSignal","messageType","Error","token","loc","first_line","last_line","first_column","last_column","expected","getMessages","getActors","getActor","getActorKeys","getTitleWrapped","enableSequenceNumbers","showSequenceNumbers","enableWrap","disableWrap","parseMessage","SOLID","DOTTED","NOTE","SOLID_CROSS","DOTTED_CROSS","SOLID_OPEN","DOTTED_OPEN","LOOP_START","LOOP_END","ALT_START","ALT_ELSE","ALT_END","OPT_START","OPT_END","PAR_START","PAR_AND","PAR_END","RECT_START","RECT_END","ARROWTYPE","FILLED","OPEN","PLACEMENT","LEFTOF","RIGHTOF","OVER","addNote","placement","titleWrap","hasConfigChange","param","signalType","loopText","optText","altText","parText","sequenceDb","diagramMarginX","diagramMarginY","actorMargin","actorFontSize","actorFontFamily","actorFontWeight","noteFontSize","noteFontFamily","noteFontWeight","noteAlign","messageFontSize","messageFontFamily","messageFontWeight","boxMargin","boxTextMargin","noteMargin","messageMargin","messageAlign","mirrorActors","bottomMarginAdj","activationWidth","textPlacement","wrapPadding","startx","stopx","starty","stopy","verticalPos","sequenceItems","activations","init","updateVal","val","updateBounds","_self","updateFn","updateItemBounds","n","_startx","_stopx","_starty","_stopy","newActivation","actorRect","stackedSize","actorActivations","anchored","anchorElement","endActivation","lastActorActivationIdx","activation","lastIndexOf","newLoop","endLoop","pop","addSectionToLoop","loop","sectionTitles","getVerticalPos","bumpVerticalPos","bump","getBounds","wrapLabel","maxWidth","joinWith","test","words","completedLines","nextLine","wordLength","calculateTextWidth","nextLineLength","breakString","hyphenatedStrings","remainingWord","Boolean","currentWord","isLastWord","hyphenCharacter","lines","currentLine","character","lineWidth","currentCharacter","isLastLine","hyphenatedNextLine","_drawLongText","prevTextHeight","alignmentToAnchor","center","middle","textObj","getTextObj","alignment","textElem","drawText","drawNote","forceWidth","getNoteRect","rectElem","drawRect","drawMessage","sequenceIndex","txtCenter","textElems","counterBreaklines","breaklineOffset","breaklines","breakline","offsetLineCounter","totalOffset","textWidths","rightAngles","drawActors","actorKeys","prevWidth","prevMargin","maxActorHeight","calculateActorWidth","calculateTextHeight","drawActor","fontWeight","actorFlowVerticaBounds","actorObj","acc","elementHeight","elementWidth","lineHeightFactor","fontFamilies","remove","maxMessageWidthPerActor","getMaxMessageWidthPerActor","calculateActorMargins","insertArrowHead","insertArrowCrossHead","insertSequenceNumber","activeEnd","activationData","drawActivation","loopData","noteWidth","shouldWrap","drawLoop","rectData","drawBackgroundRect","fromBounds","toBounds","fromIdx","toIdx","allBounds","includes","box","actorLines","extraVertForTitle","isNote","isMessage","messageWidth","actorToMessageWidth","maxHeight","actorKey","act","actorWidth","textData","nText","anchor","span","textMargin","drawLabel","txtObject","genPoints","cut","labelMargin","actorCnt","_drawTextCandidateFunc","drawLoopLine","minSize","idx","lower","defs","byText","content","textAttrs","_setTextAttrs","byTspan","byFo","toText","fromTextAttrsDict","set","get","drawStartState","sizeUnit","drawDivider","drawSimpleState","stateDef","drawDescrState","descriptions","isSecond","descrLine","descrBox","addTitleAndBox","altBkg","pad","dblPad","orgBox","orgWidth","orgX","titleShift","titleWidth","graphBox","doc","lineY","drawEndState","miniPadding","drawForkJoinState","forkWidth","forkHeight","parentId","tmp","_text","tHeight","textBounds","drawState","stateInfo","stateBox","stateDb","titleRows","boundstmp","boxHeight","heightAdj","clone","rootDoc","setRootDoc","getRootDoc","docTranslator","first","stmt","state1","state2","currentDoc","newNode","generateId","docNode","getRootDocV2","extract","_doc","addState","newDoc","states","documents","root","currentDocument","startCnt","endCnt","addDescription","des","getState","getStates","logDocuments","_id1","_id2","_descr","theState","dividerCnt","getDividerId","trimColon","nodeDb","setupNode","altFlag","nodeData","noteData","groupData","position","setupDoc","startId","endId","transformationLog","renderDoc","getLabelWidth","fontSizeFactor","edgeFreeDoc","ranker","edgeLengthFactor","nodeSep","sub","boxBounds","compositTitleSize","noteDef","nodeCount","labelHeight","svgElem","dividers","pWidth","pShift","getAttribute","allItemsProcessed","updateActors","tempActors","people","unique","Set","taskData","pieces","score","peeps","peopleList","journeyDb","taskMargin","taskFontSize","taskFontFamily","actorColours","sectionFills","sectionColours","drawActorLegend","person","colour","circleData","drawCircle","labelData","LEFT_MARGIN","initGraphics","actorNames","actorPos","actorName","drawTasks","fills","textColours","lastSection","sectionVHeight","taskPos","sectionNumber","drawSection","taskActors","drawTask","drawFace","faceData","circleElement","face","smile","d3arc","startAngle","PI","endAngle","sad","ambivalent","taskCount","graphics","LEVELS","fatal","setLogLevel","level","bind","time","arguments","mermaid","sequenceConfig","callback","Node","startOnLoad","ganttConfig","gantt","now","innerHTML","decode","svgCode","parseError","contentLoaded","themes","themeName","require","theme","themeCSS","maxTextSize","logLevel","sequence","journey","git","er","graphInit","detectInit","reinitialize","graphType","detectType","gitGraphAst","flowParser","sequenceParser","ganttParser","classParser","stateParser","infoDb","pieDb","journeyParser","encodeEntities","innerTxt","isInt","decodeEntities","_txt","cb","container","existingSvg","altFontFamily","flowRenderer","style1","createElement","scope","style2","cs","getComputedStyle","font","gitGraphRenderer","flowRendererV2","sequenceDiagram","sequenceRenderer","ganttRenderer","classRenderer","stateRenderer","stateRendererV2","infoRenderer","pkg","version","pieRenderer","erRenderer","journeyRenderer","errorRenderer","_config","d3CurveTypes","curveBasisClosed","curveBasisOpen","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","directiveWithoutOpen","anyComment","inits","detectDirective","results","commentWithoutDirectives","source","lastIndex","defaultCurve","curveName","toUpperCase","distance","pow","traverseEdge","prevPoint","totalDistance","distanceToLabel","remainingDistance","vectorDistance","distanceRatio","isRelationTypePresent","initialPosition","distanceToCardinalityPoint","angle","atan2","cardinalityPosition","sin","cos"],"mappings":"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AACA;;AAEA;;AAEA,mBAAmB,iBAAiB;AACpC;;AAEA;AACA;AACA;AACA;;AAEA,eAAe,oBAAoB;AACnC,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,CAAC;;;AAGD;AACA;AACA;AACA,qDAAqD,cAAc;AACnE;AACA,C;;;;;;;;;;;;ACpFA;AAAA;AAAA;AAAA;;AAEO;AACA;;;;;;;;;;;;;ACHP;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AAAA;AAAoC;AACF;;AAElC,sBAAsB,yDAAQ,CAAC,kDAAS;AACjC;AACA;AACQ,0EAAW,EAAC;;;;;;;;;;;;;ACN3B;AAAA;AAAoC;;AAErB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,WAAW,0DAAS;AACpB;AACA;;;;;;;;;;;;;AChCA;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAA6B;;AAEd;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,2CAAI;;AAEnC,kBAAkB,SAAS;AAC3B,sCAAsC,SAAS;AAC/C;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACpBD;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAkC;;AAEnB;AACf,UAAU,yDAAQ;AAClB;AACA,CAAC;;;;;;;;;;;;;ACLD;AAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACpCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8B;AACA;AACI;AACJ;AACI;AACN;AACK;AACS;;AAE3B;AACf,cAAc,iDAAQ;AACtB,eAAe,+CAAM;AACrB,kBAAkB,0DAAO;;AAEzB;AACA;AACA;AACA;AACA;;AAEA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,uDAAQ;AACnB,WAAW,sDAAK,kCAAkC;AAClD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;AACA,aAAa,uDAAM;AACnB;AACA;;AAEA;AACA;;AAEA;AACA,qEAAqE,yDAAQ;AAC7E;;AAEA;AACA,sEAAsE,yDAAQ;AAC9E;;AAEA;AACA,4FAA4F,yDAAQ,CAAC,4CAAK,YAAY,yDAAQ;AAC9H;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC1ED;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoE;AACnB;AACF;AACN;AACU;AACF;AACN;AACM;AACiC;AACtB;AACI;AAC3B;AACE;AACI;AACF;AACJ;AACI;AACI;AACE;AACN;AACF;AACM;AACR;AAC6B;AACjB;AACF;AACV;;;;;;;;;;;;;AC1BrC;AAAe;AACf;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACjCD;AAAA;AAA8B;;AAEf;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACxBD;AAAA;AAAA;AAAA;AAAoC;AACN;AACI;;AAEnB;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;AACA;;AAEA,SAAS,yDAAQ,cAAc,kDAAS;AACxC,CAAC;;;;;;;;;;;;;AC3BD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACpBD;AAAe;AACf;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACjCD;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA,CAAC;;AAEM;AACP;AACA;;;;;;;;;;;;;ACTA;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAA8B;;AAEf;AACf,iCAAiC,+CAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACbD;AAAe;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAA;AAAoC;;AAErB;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kDAAS;;AAE1C;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACnBD;AAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACbD;AAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACnBD;AAAA;AAAA;AAAA;AAAA;AAA6B;AACQ;AACN;AACI;;AAEpB;AACf,WAAW,0CAAG,cAAc,+CAAM,OAAO,kDAAS;AAClD,uCAAuC,yDAAQ,iBAAiB,yDAAQ;AACxE,CAAC;;;;;;;;;;;;;ACRD;AAAA;AAAqC;;AAEtB;AACf,wCAAwC,0DAAS;AACjD,CAAC;;;;;;;;;;;;;ACJD;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAEM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClDA;AAAA;AAAwB;;AAET;AACf;AACA,uBAAuB,oDAAG,2CAA2C,SAAS;AAC9E,0DAA0D,SAAS;AACnE;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;;;;;;;;;;;;ACdA;AAAA;AAA8B;;AAEf;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AChCD;AAAA;AAAoC;;AAErB;AACf,SAAS,0DAAS;AAClB,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAO;;;;;;;;;;;;;ACAP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8B;AACI;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yGAAyG,iDAAQ;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,kFAAkF,EAAE;;AAE9H;AACA;AACA,0CAA0C,gCAAgC,6DAA6D,EAAE;AACzI;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,+BAA+B,EAAE;;AAEzE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,wBAAwB,EAAE;AACpD;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,4CAAK;AAChC;;AAEA;AACA,gEAAgE,4CAAK;AACrE;;AAEA;AACA,+DAA+D,4CAAK;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;AC7KA;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKgB;;;;;;;;;;;;;ACLhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACW;AACL;AAC2B;AAC9B;AACH;AACD;AACgB;;AAEpD,iBAAiB,aAAa;AAC9B,kBAAkB,cAAc;AAChC,mBAAmB,eAAe;AAClC,mBAAmB;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,0DAAK,SAAS,kDAAK;AAC9B;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,gEAAgE,EAAE;AAC3F,wBAAwB,mCAAmC;AAC3D;;AAEA;AACA;AACA;AACA,yBAAyB,gEAAgE,EAAE;AAC3F,wBAAwB,mCAAmC;AAC3D;;AAEA;AACA;AACA;AACA,uBAAuB,wCAAwC,EAAE;AACjE,wBAAwB,WAAW;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEA;AACA;AACA,UAAU,kDAAK,aAAa,kDAAK;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEe;AACf;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,kBAAkB,4DAAQ;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,2DAAM;AAChB;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,eAAe,EAAE;;AAEvD;;AAEA;AACA,oCAAoC,mCAAmC,EAAE;AACzE,qCAAqC,wBAAwB,EAAE;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,gDAAgD,EAAE;AAC3F,uDAAuD,gCAAgC,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kEAAW;;AAE/B;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,+DAAS;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,2DAAM;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,gHAAgH,EAAE;AACpJ,kCAAkC,gGAAgG,EAAE;AACpI,sCAAsC,uGAAuG,EAAE;AAC/I,uCAAuC,uGAAuG,EAAE;AAChJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,MAAM,gEAAW,KAAK,iDAAU;AAChC;AACA;;AAEA;AACA,wBAAwB,kDAAK;AAC7B;;AAEA;AACA,eAAe,kDAAK;AACpB,wBAAwB,kDAAK,2EAA2E,kDAAK;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kDAAK;AAClD;AACA;AACA,kBAAkB,kDAAK,mBAAmB,kDAAK,iCAAiC,kDAAK;AACrF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,2DAAM;AACtB;;AAEA;AACA;;AAEA,QAAQ,kDAAK;AACb;AACA;AACA,KAAK;AACL,iBAAiB,2DAAM,CAAC,kDAAK;AAC7B;AACA;AACA;AACA;AACA;;AAEA,MAAM,2DAAW,CAAC,kDAAK;AACvB;;AAEA,IAAI,iEAAa;AACjB,IAAI,+DAAS;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAAO;AACb;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAuD;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,iEAAa;AACnB,UAAU,kDAAK;AACf,YAAY,kDAAK;AACjB;AACA,6CAA6C,oBAAoB,EAAE,OAAO;AAC1E,OAAO;AACP,QAAQ,0DAAU,CAAC,kDAAK;AACxB;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;;AAEA;AACA,cAAc,kDAAK;AACnB,kBAAkB;AAClB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA,wCAAwC;AACxC,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAAO;AACb;;AAEA;AACA,cAAc,kDAAK;AACnB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,gBAAgB,kDAAK;AACrB;AACA;AACA;AACA,aAAa;AACb,qCAAqC;AACrC,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAAO;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AA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,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,yEAAyE,8CAA8C;AACvH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+DAA+D,qBAAqB,EAAE;;AAEtF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;AC1EnB;AAAA;AAAwB;;AAET;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oDAAG;AACzB;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,aAAa,kCAAkC,EAAE,EAAE;AACjG,wDAAwD,8BAA8B,EAAE;AACxF;;AAEA;AACA,6BAA6B,iDAAiD,EAAE;AAChF,0BAA0B,2CAA2C,EAAE;AACvE,8BAA8B,uDAAuD,EAAE;AACvF,sBAAsB,cAAc,aAAa,EAAE;AACnD,+BAA+B,mCAAmC,aAAa,EAAE;AACjF,iCAAiC,oBAAoB,aAAa,EAAE;AACpE,yBAAyB,YAAY,aAAa;AAClD;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS,oDAAG;AACZ;;AAEA;AACA;AACA;;;;;;;;;;;;;ACxEA;AAAA;AAA6C;;AAE7C;;AAEA,YAAY,4CAAG;;AAEf;AACA;AACA;AACA;AACA;AACA,SAAS,2CAAM;AACf;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0DAA0D,gBAAgB,EAAE;;AAE5E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;ACtCnB;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;;AAEpC;;AAEA;AACA;;AAEP;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,0DAAM,WAAW,yDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAM,WAAW,yDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClXA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACyB;AACzB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,6CAAG,OAAO,4DAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gDAAO;AACzC;AACA;;AAEe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,0DAAM,uBAAuB,yDAAM,CAAC,+CAAK;AACzC;AACA,oBAAoB,kDAAQ,YAAY,kDAAQ;AAChD;AACA,GAAG;AACH;AACA,oBAAoB,gDAAM,YAAY,gDAAM;AAC5C;AACA,GAAG;AACH;AACA,iDAAiD,gDAAO;AACxD;AACA;AACA;AACA;AACA,eAAe,6CAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC5DD;AAAA;AAAe;AACf;AACA;AACA,CAAC;;AAEM;AACP;AACA;AACA;AACA;;;;;;;;;;;;;ACTA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsD;AACE;AACJ;;;;;;;;;;;;;ACFpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACO;AACP;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,6CAAG,OAAO,4DAAU;AACzC;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,0DAAM,WAAW,yDAAM,CAAC,+CAAK;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6CAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC,gDAAO;AACxC;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,gDAAO;AACvB;AACA;;AAEA,0DAAM,WAAW,yDAAM,CAAC,+CAAK;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC1HD;AAAA;AAAA;AAAO;AACA;;;;;;;;;;;;;ACDP;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;;AAEO;;;;;;;;;;;;;ACFP;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1CA;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAe;AACf;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmE;AACrC;AACM;AACV;AACQ;AACA;AACR;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA,kBAAkB,yDAAgB;AAClC;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,uDAAM;AACzB,WAAW,yDAAQ;AACnB,WAAW,sDAAK;AAChB,KAAK;AACL,2BAA2B,kDAAS;AACpC;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,qDAAI;AACd;AACA,KAAK;;AAEL;AACA,mDAAmD,OAAO;AAC1D,YAAY,yDAAQ;AACpB;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,+DAA+D;AAC/D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,+DAA+D;AAC/D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP,iEAAiE;AACjE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAA4F,yDAAQ,CAAC,4CAAK,YAAY,yDAAQ;AAC9H;;AAEA;AACA,2DAA2D,6CAAI;AAC/D;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC1MD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AAChB;AACM;AACF;AACA;;AAElC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yDAAQ;;AAE1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,IAAI,mDAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,mDAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,mDAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,mDAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,mDAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,mDAAK,EAAE,mCAAmC,GAAG,mCAAmC;;AAEpF;;AAEA;AACA;AACA,iBAAiB,oDAAG;AACpB,WAAW,yDAAQ;AACnB,WAAW,sDAAK;AAChB;AACA;;AAEA,WAAW,yDAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C;AACA;AACA;;AAEA;AACA;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DAAQ;AACzB;AACA;;AAEA,6CAA6C,yDAAQ;AACrD;AACA;;AAEA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wEAAwE,yDAAQ;AAChF;;AAEA;AACA,sEAAsE,yDAAQ;AAC9E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACxDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACH;AACH;;AAExB;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yDAAG;AAClB,gBAAgB,sDAAK;AACrB,cAAc,4DAAQ;;AAEtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,mBAAmB,gBAAgB;AACnC;;AAEA;AACA;AACA,OAAO;;AAEP,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACtJD;AAAA;AAAkC;;AAEnB;AACf,iBAAiB,yDAAQ;AACzB;AACA;AA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AAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,oDAAG;AACpB,GAAG;AACH;AACA;AACA,EAAE,mDAAU;AACZ;AACA;;AAEA;AACA,EAAE,mDAAU;AACZ;;AAEA;AACA;AACA,EAAE,mDAAU;AACZ,MAAM,oDAAG,aAAa,gDAAO;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;;AAEA;AACA;AACA,EAAE,0DAAM;;AAER;AACA;AACA;;AAEA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,2EAA2E,QAAQ;AACnF;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AClLD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsD;;AAE/C;AACP,UAAU,sDAAK,8BAA8B,qDAAI;AACjD;;AAEO;AACP,0DAA0D,oDAAG;AAC7D,mBAAmB,oDAAG,mBAAmB,oDAAG,UAAU,oDAAG;AACzD;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACO;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACO;AACP,UAAU,qDAAI;AACd;AACA;;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAA2F;AAC9D;AACI;;AAEjC;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA,UAAU,gDAAI;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,gDAAO,SAAS,gDAAO;AACnC,eAAe,oDAAG;AAClB,kCAAkC,oDAAG,mBAAmB,oDAAG,UAAU,oDAAG;AACxE;;AAEA;AACA;AACA;AACA;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AY,oDAAG,oBAAoB,oDAAG,UAAU,oDAAG;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,+CAAM;AAC5B,kBAAkB,2CAAE;AACpB;AACA,iBAAiB,2CAAE;AACnB,iBAAiB,2CAAE;AACnB,iBAAiB,2CAAE;AACnB;AACA,kBAAkB,2CAAE;AACpB,kBAAkB,2CAAE;AACpB,kBAAkB,2CAAE;AACpB,GAAG,UAAU,oDAAG,oBAAoB,gDAAO;AAC3C,mCAAmC,2CAAE,IAAI,2CAAE;AAC3C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;;AC3FA;AAAA;AAA8B;;AAEf;AACf;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,aAAa,gDAAI;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwH;AAC9E;AACsB;AACtB;AACZ;;AAEf;AACf,WAAW,oDAAG;AACd,kBAAkB,gDAAO;AACzB;AACA,sBAAsB,oDAAG,OAAO,gDAAO,CAAC;;AAExC;AACA,IAAI,+DAAY;AAChB;;AAEA;AACA,WAAW,oDAAG,WAAW,oDAAG;AAC5B;;AAEA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,2CAAE,IAAI,2CAAE;AACxD;AACA;AACA;AACA;AACA;AACA,yBAAyB,8DAAU,oBAAoB,8DAAU;AACjE,yBAAyB,gDAAO;AAChC,yBAAyB,gDAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8DAAU;AACxC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,+DAAS;AACtB,aAAa,+DAAS;;AAEtB;AACA;AACA;AACA,aAAa,oEAAc;AAC3B,eAAe,kEAAY;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB,oEAAc;AAC9B,YAAY,oEAAc;AAC1B,YAAY,oEAAc;AAC1B,IAAI,yEAAmB;;AAEvB;AACA;AACA,YAAY,kEAAY;AACxB,aAAa,kEAAY;AACzB,2BAA2B,kEAAY;;AAEvC;;AAEA,YAAY,qDAAI;AAChB,YAAY,oEAAc;AAC1B,IAAI,yEAAmB;AACvB,QAAQ,+DAAS;;AAEjB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gBAAgB,oDAAG,SAAS,2CAAE,IAAI,gDAAO;AACzC,oCAAoC,gDAAO;;AAE3C;;AAEA;AACA;AACA;AACA,sCAAsC,oDAAG,mBAAmB,gDAAO;AACnE;AACA,kBAAkB,2CAAE;AACpB,eAAe,oEAAc;AAC7B,MAAM,yEAAmB;AACzB,iBAAiB,+DAAS;AAC1B;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,2CAAE;AACrC;AACA,+BAA+B;AAC/B,mCAAmC;AACnC,4BAA4B;AAC5B,gCAAgC;AAChC;AACA;;AAEA,SAAS,yDAAI,gEAAgE,2CAAE,WAAW,2CAAE;AAC5F,CAAC;;;;;;;;;;;;;ACrLD;AAAA;AAA2C;;AAE5B;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+DAA+D,6DAAa;AAC5E,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACnBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACA;AACM;AACS;AACrB;;AAEhB;AACf;AACA;AACA,qBAAqB,0DAAU;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,mBAAmB,sDAAK;AACxB,0BAA0B,mEAAe;AACzC;AACA;AACA,UAAU,0DAAU;AACpB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,+CAAM,GAAG,gDAAO,GAAG,+CAAM;AAC7D,oCAAoC,+CAAM,GAAG,gDAAO,GAAG,+CAAM;AAC7D;;;;;;;;;;;;;AClIA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC1DD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACH;AACJ;AACI;AACN;;AAE/B;;AAEA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,WAAW,oDAAG,cAAc,gDAAO;AACnC,UAAU,oDAAG,cAAc,gDAAO;AAClC,UAAU,oDAAG,cAAc,gDAAO;AAClC,gCAAgC;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,0DAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,yCAAyC,OAAO;AAChD,kHAAkH,OAAO;AACzH;AACA,yBAAyB,yEAAyE;AAClG,gBAAgB,0EAA0E;AAC1F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC,sDAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0DAAU;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,cAAc,wDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;ACvKA;AAAA;AAA0C;;AAE1C;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,yBAAyB;AACzB;;AAEA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,8DAAU;AAClB;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;;AAEA,8BAA8B,OAAO;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,qCAAqC,QAAQ;AAC7C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpGA;AAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACXD;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAAgE;AACd;AACN;;AAE5C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,4DAAQ;AACjB;;AAEA;AACA;AACA,yCAAyC,OAAO;AAChD,SAAS,4DAAQ;AACjB;AACA;AACA,WAAW,4DAAQ;AACnB;AACA;AACA;AACA;AACA,6DAA6D,iDAAQ;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,mEAAe;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB,gDAAO,aAAa,gDAAO;AAChD;;AAEe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AChGD;AAAA;AAAiC;;AAEjC;AACA,cAAc;;AAEC;AACf;AACA;AACA,SAAS,0DAAM;AACf,CAAC;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAA+B;AACc;;AAE7C;AACA,UAAU,sDAAK,UAAU,gDAAO;AAChC,sBAAsB,2BAA2B,eAAe,EAAE,EAAE;AACpE;;AAEA;AACA,UAAU,sDAAK,UAAU,gDAAO;AAChC,sBAAsB,2BAA2B,eAAe,EAAE,EAAE;AACpE;;AAEe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA,WAAW,sDAAK,CAAC,q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CA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,qDAAI;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,qDAAI;;AAEd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe,6EAAc,EAAC;;;;;;;;;;;;;ACnG9B;AAAA;AAAA;AAAA;AAA+B;AACD;;AAEf;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4CAAG;AACpD;AACA;AACA;AACA,GAAG;AACH,UAAU,gDAAI;AACd;;;;;;;;;;;;;AC5CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACJ;AACD;AACI;AACI;AACF;AACA;AACF;;AAEtB;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,0DAAM;AACZ;AACA;AACA;;AAEA;AACA,IAAI,0DAAM,0BAA0B,gDAAQ;AAC5C,WAAW,gDAAQ;AACnB;;AAEA;AACA,IAAI,0DAAM,0BAA0B,mDAAW;AAC/C,WAAW,mDAAW;AACtB;;AAEA;AACA,IAAI,0DAAM,0BAA0B,kDAAU;AAC9C,WAAW,kDAAU;AACrB;;AAEA;AACA,IAAI,0DAAM,0BAA0B,oDAAY;AAChD,WAAW,oDAAY;AACvB;;AAEA;AACA,kFAAkF,oDAAQ;AAC1F;;AAEA;AACA;AACA,qDAAqD,kDAAU,QAAQ,mDAAW;AAClF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC5DD;AAAA;AAAA;AAAA;AAAgC;AACA;AACF;;AAE9B,gBAAgB,yDAAK;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,gDAAI;AACb;AACA;AACA,GAAG;AACH;AACA;AACA,yBAAyB,gDAAI;AAC7B,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,qDAAI;AACpB;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AC5C5B;AAAA;AAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1DA;AAAA;AAAuC;;AAExB;AACf,SAAS,oDAAG,gBAAgB,gDAAO,IAAI,oDAAG,gBAAgB,gDAAO;AACjE,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAA+B;AACqD;AACY;;AAEhG,UAAU,yDAAK;;AAEf;AACA,MAAM,oDAAG,cAAc,2CAAE;AACzB;AACA;AACA,WAAW,qDAAI,eAAe,oDAAG,aAAa,2CAAE,IAAI,4CAAG,GAAG,2CAAE;AAC5D;;AAEe;AACf;AACA;AACA,eAAe,oDAAG;AAClB,gBAAgB,oDAAG,WAAW,oDAAG;AACjC;AACA;;AAEA;;AAEA,0BAA0B,+CAAM,GAAG,gDAAO;AAC1C,iCAAiC,+CAAM,GAAG,gDAAO;;AAEjD,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA,+BAA+B,kDAAS;AACxC,kBAAkB,oDAAG;AACrB,kBAAkB,oDAAG;;AAErB,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AACH;AACA;AACA,CAAC;;;;;;;;;;;;;ACpED;AAAA;AAAe;AACf;AACA;AACA;AACA,CAAC;;AAEM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,yBAAyB,yBAAyB,EAAE;AACpD,sBAAsB,sBAAsB,EAAE;AAC9C,yBAAyB,yBAAyB,EAAE;AACpD,uBAAuB,uBAAuB,EAAE;AAChD,4BAA4B,4BAA4B,EAAE;AAC1D,0BAA0B,0BAA0B;AACpD;;;;;;;;;;;;;ACzBA;AAAA;AAAA;AAAO;AACP;AACA;;AAEO;AACP;AACA;AACA;;;;;;;;;;;;;ACPA;AAAA;AAAA;AAAO;;AAEA;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACfA;AAAA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACnFD;AAAA;AAAO;AACP;AACA;;AAEe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACRD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACXD;AAAe;AACf;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACND;AAAe;AACf;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAe;AACf;AACA;AACA;AACA,kDAAkD,OAAO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAe;AACf;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoC;AACF;AACY;AACF;AACZ;AACE;AACA;AACU;AACI;AACV;AACF;;AAErB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,iDAAU;AACnB,QAAQ,gDAAS;AACjB,aAAa,qDAAc;AAC3B,cAAc,sDAAe;AAC7B,OAAO,+CAAQ;AACf,QAAQ,gDAAS;AACjB,QAAQ,gDAAS;AACjB,aAAa,qDAAc;AAC3B,eAAe,uDAAgB;AAC/B,UAAU,kDAAW;AACrB,SAAS,kDAAU;AACnB;AACA;;;;;;;;;;;;;AC9EA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACRD;AAAe;AACf;AACA;AACA,wBAAwB;AACxB,kBAAkB,kCAAkC;AACpD;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACRD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7BA;AAAe;AACf;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;ACND;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;ACRD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgD;AACU;AACV;AACW;AACF;AACL;AACF;AACR;AACY;AACO;AACJ;AACE;AACQ;AACF;AACI;;;;;;;;;;;;;ACdrE;AAAA;AAA2C;;AAE5B;AACf,4BAA4B,yDAAO,CAAC,+CAAK;;AAEzC;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,kBAAkB;AAC/B,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrHA;AAAA;AAAA;AAAA;AAA0C;AACD;AACa;;AAEtD;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA,gBAAgB,yDAAY;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kCAAkC,yDAAY;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,8DAAQ;AAChD;;AAEA;AACA;AACA;;AAEA;AACA,uEAAuE,4DAAQ;AAC/E;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,OAAO;AAC/B,UAAU,gEAAW;AACrB,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9EA;AAAA;AAAA;AAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,OAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,wCAAwC,KAAK,2DAAO;;AAEvE;AACA,aAAa,OAAO;;AAEpB;AACA;;AAEe;AACf;AACA;AACA,CAAC;;;;;;;;;;;;;ACrHD;AAAA;AAAA;AAA2C;AACC;;AAE7B;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yDAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA,QAAQ,gEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACnDD;AAAA;AAAA;AAAwC;AACiB;;AAEzD;AACA,eAAe,UAAU;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,OAAO;AACtB,yCAAyC,wDAAI;AAC7C;AACA;AACA;AACA;AACA;;AAEA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,oCAAoC,KAAK,EAAE,aAAa,iEAAa;AACzG;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,8DAAQ;AAC5C;;AAEA;AACA,0CAA0C,8DAAQ;AAClD;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACxED;AAAA;AAA0C;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,gBAAgB;AAChB,aAAa;AACb,aAAa;AACb,aAAa;AACb,aAAa;AACb,gBAAgB;AAChB,aAAa;AACb;;AAEA,mCAAmC,wDAAI;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACe;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC5OD;AAAe;AACf;AACA;AACA;;AAEA,6BAA6B,OAAO;AACpC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC7CD;AAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAAmC;AACE;AACI;AACa;;AAEvC;AACf,aAAa,oDAAQ;AACrB;AACA;AACA;AACA;AACA,qBAAqB,yDAAY;AACjC,mBAAmB,yDAAY;AAC/B,qBAAqB,yDAAY;AACjC,sBAAsB,yDAAY;AAClC,oBAAoB,yDAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iDAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;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;;;;;;;;;;;ACrBD;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC/DD;AAAA;AAAA;AAAA;AAA0C;;;;;;;;;;;;;ACA1C;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;ACjIpB;AAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACdD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACnBD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACfD;AAAA;AACA;AACA;AACA;AACe;AACf;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AAA+B;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,OAAO;AACxB,uBAAuB,yDAAK;AAC5B;AACA;;AAEA,gCAAgC;AAChC;;AAEe;AACf;;AAEA;AACA;AACA;AACA;;AAEA,aAAa,OAAO;AACpB;AACA,aAAa,OAAO;;AAEpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,QAAQ;AAC3C,qBAAqB,qCAAqC;;AAE1D;AACA,CAAC;;;;;;;;;;;;;AChDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiD;AACQ;AACR;AACQ;AACJ;;;;;;;;;;;;;ACJrD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACtBD;AAAA;AAAe;AACf;AACA;AACA;AACA,CAAC;;AAED;AACA,wCAAwC;;AAExC;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mDAAmD;AACnD,oDAAoD;AACpD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD;AACnD,oDAAoD;AACpD,GAAG;AACH;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;;;;;;;;;;;;;ACnFA;AAAe;AACf,kDAAkD;;AAElD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC1CD;AAAe;AACf;AACA;AACA,8CAA8C;AAC9C,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACND;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAA6B;;AAEd;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,gDAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,gDAAI;AAChB,YAAY,gDAAI;AAChB,YAAY,gDAAI;AAChB,YAAY,gDAAI;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACrED;AAAA;AAAA;AAAA;AAAkD;;;;;;;;;;;;;ACAlD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyD;AACrB;AACF;AACI;AACJ;AACmC;AACnC;AACA;AACE;AACU;AACN;AACA;;AAEzB;AACf,sCAAsC,+CAAQ,kBAAkB,+CAAQ;AACxE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,gBAAgB;AAC9B,+CAA+C;AAC/C;AACA;;AAEA;;AAEA;AACA;AACA;A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A;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sDAAQ,qBAAqB,yBAAyB,EAAE;AACzE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,+CAAS;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACnGA;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACoE;AACjE;AACD;AACJ;;AAE9B;;AAEO;AACP;AACA;;AAEA;AACA;AACA,qBAAqB,oBAAoB;AACzC,QAAQ,yDAAQ;AAChB;;AAEA;AACA;AACA;AACA,sBAAsB,oCAAoC;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,uDAAM;AAClB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,oBAAoB,0DAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wFAAwF,gEAAiB;AACzG;;AAEA;AACA,wCAAwC,0CAAG,SAAS,+CAAM;AAC1D;;AAEA;AACA,uCAAuC,4CAAK;AAC5C;;AAEA;AACA,mBAAmB,4CAAK,wBAAwB,+DAAgB;AAChE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;;;;;;;;;;;;;AC3HA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACE;AACL;AACL;AACI;AACC;AACN;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAQ;AAC7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf,cAAc,yDAAS,eAAe,oDAAQ;;AAE9C;AACA,WAAW,wDAAI;AACf;;AAEA,SAAS,sDAAgB;AACzB;;AAEO;AACP,cAAc,oDAAO;;AAErB;AACA,WAAW,wDAAI;AACf;;AAEA,SAAS,sDAAgB;AACzB;;AAEO;AACP,cAAc,yDAAS;;AAEvB;AACA,WAAW,wDAAI;AACf;;AAEA,SAAS,sDAAgB;AACzB;;AAEO;AACP,cAAc,mDAAM;;AAEpB;AACA,WAAW,wDAAI;AACf;;AAEA,SAAS,sDAAgB;AACzB;;AAEO;AACP;AACA;;;;;;;;;;;;;AC1FA;AAAA;AAAA;AAAA;AAAA;AAA4B;AACO;AACL;;AAEf;AACf;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,wCAAwC,0CAAG,SAAS,+CAAM;AAC1D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,0CAAG,cAAc,+CAAM;;AAErD,SAAS,yDAAS;AAClB;;;;;;;;;;;;;AC5BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGgB;;AAII;;AAIF;;AAIH;;AAIG;;AAKC;;AAKJ;;AAIK;;AAIA;;AAIC;;AAIL;;AAIG;;AAQG;;AAIQ;;AAQT;;AAIC;;;;;;;;;;;;;ACzEtB;AAAA;AAAA;AAAO;AACP;AACA;AACA,+BAA+B;AAC/B,8CAA8C;AAC9C;AACA;AACA;;AAEO;AACP;AACA;AACA,sCAAsC;AACtC,4DAA4D;AAC5D;AACA;AACA;;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACU;AACvB;AACK;;AAE/B;AACP;;AAEA;AACA;AACA,WAAW,sDAAK;AAChB;;AAEA;AACA;AACA,WAAW,2DAAU;AACrB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,WAAW,8DAAa;;AAExB;AACA;AACA;AACA,aAAa,8DAAa;AAC1B,KAAK;AACL;AACA;AACA,aAAa,8DAAa;AAC1B;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEe;AACf,cAAc,2DAAU,CAAC,oDAAQ,EAAE,oDAAQ;;AAE3C;AACA,WAAW,wDAAI;AACf;;AAEA,EAAE,+CAAS;;AAEX;AACA;;;;;;;;;;;;;ACvEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+B;AACE;AACP;AACqB;AACd;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,2BAA2B,EAAE;AAC3E;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,OAAO;AAC9B,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA;AACA;AACA,OAAO,YAAY,OAAO;AAC1B,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,UAAU,sDAAK;AACf;;AAEA;AACA;;AAEA;AACA;AACA,qDAAqD,wDAAM;AAC3D;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,qDAAI;AACtB,0BAA0B,kCAAkC,EAAE;AAC9D,yBAAyB,iCAAiC;AAC1D,KAAK;AACL;;AAEA;AACA;;AAEe;AACf,sBAAsB,+DAAW;;AAEjC;AACA,WAAW,wDAAI;AACf;;AAEA,EAAE,+CAAS;;AAEX;AACA;;;;;;;;;;;;;AChJA;AAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACjBD;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkC;AACJ;AACG;;AAE1B,gBAAgB;;AAER;AACf,cAAc,yDAAG;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,yDAAG;AAC5B;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,4CAAK;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE,+CAAS;;AAEX;AACA;;;;;;;;;;;;;AC5CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmC;AACsB;AACxB;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP,wBAAwB,oDAAQ,EAAE,oDAAQ;AAC1C;;AAEA;AACA,sCAAsC,oDAAQ,EAAE,oDAAQ;AACxD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,yDAAS;AAClB;;AAEe;AACf,qBAAqB,+DAAW;;AAEhC;AACA,WAAW,wDAAI;AACf;;AAEA,EAAE,+CAAS;;AAEX;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACjDA;AAAA;AAAA;AAAA;AAAA;AAAkE;AACpC;AACG;;AAElB;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,yDAAS;AACjD;AACA;;AAEA;AACA,2CAA2C,uDAAM;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C,gBAAgB,kDAAS;AACzB;AACA;;AAEA;AACA,uCAAuC,4CAAK;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,+CAAS;AAClB;;;;;;;;;;;;;ACzDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACF;AACK;AACF;;AAElB;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,uDAAM;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,4CAAK;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,+CAAS,OAAO,yDAAS;AAClC;;;;;;;;;;;;;ACxDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACE;AACL;AACL;AACK;AACN;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAQ;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,cAAc,yDAAS,eAAe,oDAAQ;;AAE9C;AACA;AACA;;AAEA,SAAS,sDAAgB;AACzB;;AAEO;AACP,cAAc,oDAAO;;AAErB;AACA;AACA;;AAEA,SAAS,sD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ACrB,YAAY,0DAAS,eAAe,qDAAI;AACxC,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAkD;;AAEnC;AACf;AACA,YAAY,0DAAS;AACrB,YAAY,0DAAS,qCAAqC,qDAAI;AAC9D,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAiC;;AAElB;AACf,mDAAmD,wDAAO;AAC1D;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;ACPD;AAAA;AAAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,iBAAiB,0DAAS;;AAE1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACxDD;AAAe;AACf;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACLD;AAAA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC1ED;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAA;AAAA;AAAA;AAAkC;AACA;AACC;;AAEnC,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA,KAAK;AACL,qBAAqB,gDAAS;AAC9B;AACA;;AAEA;AACA,QAAQ,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;AACA;AACA;AACA;AACA,CAAC;;AAEM;AACP;AACA,SAAS,uDAAW;AACpB;;;;;;;;;;;;;AClCA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACxBD;AAAA;;AAEe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACRD;AAAA;AAAqC;;AAEtB;AACf,gBAAgB,mDAAK;AACrB;AACA;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAA;AAAwC;AACZ;;AAEb;AACf,4DAA4D,4DAAW;;AAEvE,0DAA0D,OAAO;AACjE;AACA,aAAa,sDAAK;AAClB;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACbD;AAAA;AAAA;AAAwC;AACZ;;AAEb;AACf,iCAAiC,4DAAW;;AAE5C,0EAA0E,OAAO;AACjF,gBAAgB,sDAAK;AACrB;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACXD;AAAe;AACf;AACA;AACA,0BAA0B;AAC1B,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAA6B;AACQ;AACgE;;AAErG;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA,cAAc,gDAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qDAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qDAAI,CAAC,oDAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA,qBAAqB,4DAAQ;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AAC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AEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B,oFAAoF,0EAA0E;AAC5L,8BAA8B;AAC9B,eAAe,uDAAK,aAAa;AACjC;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACtCD;AAAA;AAAiC;;AAEjC;AACA,oBAAoB,+CAAK;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA,4BAA4B,+CAAK;AACjC;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,OAAO,EAAC;;;;;;;;;;;;;ACvDT;AAAA;AAAA;AAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uDAAuD;AACvD,8CAA8C;AAC9C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B,4BAA4B;AAC1D,8BAA8B;AAC9B,iCAAiC;AACjC;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;AC5DN;AAAA;AAAA;AAAA;AAA8B;AACM;;AAE7B;AACP;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,4BAA4B;AAC1D,8BAA8B,kDAAkD;AAChF,8BAA8B,4BAA4B;AAC1D,eAAe,0DAAK,aAAa;AACjC;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;AC5DN;AAAA;AAAA;AAAoC;;AAE7B;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B,kGAAkG;AAChI,8BAA8B;AAC9B,eAAe,0DAAK,aAAa;AACjC;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;AChDN;AAAA;AAAA;AAAA;AAAmC;AACI;;AAEhC;AACP;AACA;AACA;AACA;;AAEA,oBAAoB,gDAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gDAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uDAAuD;AACvD,6CAA6C;AAC7C;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B;AAC9B,8BAA8B;AAC9B,iCAAiC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA,wDAAwD,qDAAQ;AAChE;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;ACvFR;AAAA;AAAA;AAAA;AAAmD;AACrB;AACQ;;AAEtC;AACA;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,4BAA4B;AAC1D,8BAA8B,kDAAkD;AAChF,8BAA8B,4BAA4B;AAC1D,eAAe,4DAAK,aAAa;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA,8DAA8D,iEAAc;AAC5E;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;ACzER;AAAA;AAAA;AAA+C;AACT;;AAEtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B,kGAAkG;AAChI,8BAA8B;AAC9B,eAAe,4DAAK,aAAa;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA,4DAA4D,6DAAY;AACxE;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;AC7DR;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B;AAC9B,0CAA0C;AAC1C;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;AC9BD;AAAA;AAA8B;;AAE9B;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACxBD;AAAA;AAAA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uDAAuD;AACvD,4DAA4D;AAC5D;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,iDAAiD;AACjD;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B;AAC9B,8BAA8B,wDAAwD;AACtF,8DAA8D;AAC9D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0BAA0B,4BAA4B,EAAE;AACxD,yBAAyB,2BAA2B,EAAE;AACtD,0BAA0B,4BAA4B,EAAE;AACxD,iDAAiD,mDAAmD;AACpG;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACvGA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB;AACA,aAAa,OAAO;AACpB;AACA,iBAAiB,QAAQ;AACzB;AACA,aAAa,WAAW;AACxB;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;AChED;AAAA;AAAA;AAAA;AAAsC;;AAE/B,oCAAoC,kDAAW;;AAEtD;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;A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A;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iDAAS,cAAc,yDAAS;AACxE,iBAAiB,8CAAM;AACvB;AACA;AACA;AACA,SAAS;AACT;AACA,wCAAwC,kDAAU,cAAc,0DAAU;AAC1E,iBAAiB,+CAAO;AACxB;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA,KAAK;AACL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA,KAAK;AACL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA,KAAK;AACL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,+CAAO,OAAO,wDAAQ;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AAC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CZvB;AAAA;AAAsC;;AAEvB;AACf,cAAc,+CAAK;AACnB;AACA,wCAAwC,qDAAG;AAC3C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAA;AAAiC;;AAElB;AACf,cAAc,+CAAK;AACnB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qIAAqI,mBAAmB;;AAEjJ;AACP;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP,QAAQ;AACR,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;AC7GA;AAAA;AAAA;AAAiD;AACE;;AAEnD;;AAEe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,iEAAS;AACrD,mBAAmB,+DAAU;AAC7B;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACpBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8B;AAC8B;AACd;AACM;;;;;;;;;;;;;ACHpD;AAAA;AAAiE;;AAElD;AACf;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,kDAAkD,eAAe,UAAU;AAC3E,8BAA8B,gEAAQ,qBAAqB,8DAAM;AACjE,qBAAqB,6DAAK;AAC1B;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAAA;AAAuC;AACU;AACE;;AAEnD,sDAAS,uBAAuB,qDAAmB;AACnD,sDAAS,wBAAwB,sDAAoB;;;;;;;;;;;;;ACLrD;AAAA;AAAwC;;AAEzB;AACf;AACA,IAAI,6DAAS;AACb,GAAG;AACH,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAA;AAAA;AAAA;AAAyD;AACR;AACV;AACV;;AAE7B;AACA;AACA;AACA;AACA,QAAQ,sDAAc;AACtB;;AAEA;AACA;AACA;AACA;AACA,kCAAkC,oDAAG;AACrC;AACA;AACA;AACA;;AAEe;AACf;AACA;;AAEA,sBAAsB,+DAAU;AAChC;AACA,GAAG;AACH,SAAS,kEAAK,oCAAoC,oDAAG;AACrD;;AAEA,2DAA2D,OAAO;AAClE,8DAA8D,OAAO;AACrE;AACA,QAAQ,uEAAQ;AAChB;AACA;AACA;;AAEA,aAAa,+DAAU;AACvB,CAAC;;;;;;;;;;;;;ACzCD;AAAA;AAAA;AAAA;AAAA;AAA+E;AACxC;AACD;AACK;;AAE3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,iBAAiB,8DAAS,uCAAuC,sEAAoB,GAAG,uDAAW;AACnG;AACA,sEAAsE,4DAAU;AAChF;AACA;AACA,CAAC;;;;;;;;;;;;;AC7ED;AAAA;AAAuC;;AAEvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;A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;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAEM;AACP;AACA,0DAA0D;AAC1D;AACA;;AAEO;AACP;AACA,0DAA0D;AAC1D;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,sDAAK;;AAEpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C,sCAAsC,wDAAO;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAwD;AACxD;AACA,0DAA0D;AAC1D;AACA,IAAI,wDAAO;AACX;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,wCAAwC;AACxC;;AAEA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;;;;;;;;;;;;;ACxJA;AAAA;AAAA;AAAA;AAAsC;AACA;AACM;;AAE7B;AACf;AACA;;AAEA,6CAA6C,6DAAQ;;AAErD,qFAAqF,OAAO;AAC5F,+GAA+G,OAAO;AACtH;AACA;AACA;AACA,QAAQ,4DAAQ,qCAAqC,wDAAG;AACxD;AACA;AACA;;AAEA,aAAa,oDAAU;AACvB,CAAC;;;;;;;;;;;;;ACrBD;AAAA;AAAA;AAAA;AAAyC;AACH;AACM;;AAE7B;AACf;AACA;;AAEA,6CAA6C,gEAAW;;AAExD,yFAAyF,OAAO;AAChG,8DAA8D,OAAO;AACrE;AACA,yFAAyF,wDAAG,uCAAuC,OAAO;AAC1I;AACA,YAAY,4DAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,oDAAU;AACvB,CAAC;;;;;;;;;;;;;ACzBD;AAAA;AAAuC;;AAEvC,gBAAgB,sDAAS;;AAEV;AACf;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+E;AAC5C;AACD;AACI;AACK;;AAE3C;AACA;AACA;AACA;AACA;AACA,kBAAkB,0DAAK;AACvB,oDAAoD,0DAAK;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0DAAK;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0DAAK;AACvB;AACA;AACA,6EAA6E,0DAAK;AAClF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,wDAAG;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf,yCAAyC,sEAAoB,GAAG,uDAAW;AAC3E;AACA;AACA;AACA;AACA,+CAA+C,4DAAU;AACzD;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC/ED;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAsC;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,qBAAqB,4DAAU;AAC/B;AACA,CAAC;;;;;;;;;;;;;ACnBD;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAA6C;AACD;;AAE7B;AACf;AACA;AACA,YAAY,uDAAK;;AAEjB,2DAA2D,OAAO;AAClE,8DAA8D,OAAO;AACrE;AACA,sBAAsB,wDAAG;AACzB,QAAQ,4DAAQ;AAChB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,aAAa,oDAAU;AACvB,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAAuC;;AAEvC;AACA;AACA;AACA,mBAAmB,wDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,wDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB,2BAA2B,OAAO;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;;AAEA;;AAEA;AACA,gBAAgB,wDAAG;AACnB,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAEM;AACP;;AAEA;AACA,mBAAmB,wDAAG;AACtB,2CAA2C;AAC3C,GAAG;;AAEH;AACA,WAAW,wDAAG;AACd;AACA;;;;;;;;;;;;;AChFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACV;AACkB;AACN;AACH;;AAE3C;;AAEA;AACA,EAAE,kEAAY;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,4DAAY;AACd,EAAE,gDAAO;AACT;AACA,EAAE,kEAAY;AACd;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uCAAuC,gDAAO;AAC9C,wCAAwC,gDAAO;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,4DAAY;;AAEd;AACA;AACA,uCAAuC,gDAAO;AAC9C,wCAAwC,gDAAO;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,4DAAY;;AAEd;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA,IAAI,wDAAU;AACd;;AAEA;AACA;AACA,cAAc,wDAAU;;AAExB,EAAE,4DAAY;AACd,EAAE,4DAAY;AACd;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gDAAO;;AAEpB;AACA;AACA,cAAc,gDAAO,gBAAgB;AACrC;AACA,gBAAgB,gDAAO;AACvB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,mBAAmB,gDAAO;AAC1B;AACA;AACA,SAAS,iBAAiB,gDAAO;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,wDAAU;AACZ;AACA,EAAE,gDAAO;;AAET;;AAEA;AACA,IAAI,4DAAY;AAChB;AACA,IAAI,gDAAO;AACX,8BAA8B,wDAAU;AACxC,IAAI,4DAAY;AAChB,IAAI,4DAAY;AAChB;AACA;;AAEA,cAAc;AACd,kBAAkB,wDAAU;AAC5B;AACA;;AAEA;AACA,EAAE,4DAAY;AACd,EAAE,4DAAY;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,wDAAU;AACZ,gBAAgB,wDAAU;AAC1B,cAAc,wDAAU;AACxB,EAAE,4DAAY;AACd,EAAE,4DAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACQ;;AAEzC;AACP,SAAS,8CAAK;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP,sBAAsB,8CAAK,+BAA+B,OAAO;AACjE,gBAAgB,8CAAK;AACrB;AACA;AACA,iBAAiB,OAAO,uDAAuD,8CAAK;AACpF,iCAAiC,4BAA4B,EAAE;AAC/D,iBAAiB,OAAO;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;;AAEO;AACP,eAAe,8CAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,gBAAgB;AACjC,eAAe,8CAAK;AACpB;AACA;AACA;;AAEA;AACA;AACA,aAAa,8CAAK;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,8CAAK;AACzC,wCAAwC,8CAAK;AAC7C,sCAAsC,gDAAO,8BAA8B,gDAAO;AAClF,yCAAyC,8CAAK,MAAM,8DAAgB;AACpE,oCAAoC,gDAAO,gBAAgB,gDAAO,gCAAgC,gDAAO;AACzG,sCAAsC,gDAAO,gBAAgB,gDAAO,4BAA4B,gDAAO;AACvG,sCAAsC,gDAAO,gBAAgB,gDAAO,gCAAgC,gDAAO;AAC3G,sCAAsC,gDAAO,gBAAgB,gDAAO,4BAA4B,gDAAO;AACvG;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC,gBAAgB;AACjD,iBAAiB,8CAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,8CAAK,MAAM,8DAAgB;AACnC,QAAQ,8CAAK,MAAM,8DAAgB;AACnC,QAAQ,8CAAK,MAAM,8DAAgB;AACnC,QAAQ,8CAAK,MAAM,8DAAgB;AACnC;AACA;AACA;;AAEA,2CAA2C;AAC3C,iBAAiB,gBAAgB;AACjC,eAAe,8CAAK;AACpB;AACA,eAAe,8CAAK;AACpB;AACA;AACA;AACA;;;;;;;;;;;;;AC7HA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACA;;AAE5C;;AAEO;;AAEP;AACA,EAAE,kEAAY;AACd;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,iDAAQ;;AAEpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6DAA6D;;AAE7D;;AAEA;AACA,aAAa,gDAAO;;AAEpB;AACA;AACA;AACA,YAAY,iBAAiB,OAAO;AACpC,KAAK;AACL;AACA,YAAY,eAAe,OAAO;AAClC;AACA;;AAEA,EAAE,gDAAO;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,IAAI,gDAAO;AACX;AACA,IAAI,kEAAY;AAChB;AACA;AACA;;;;;;;;;;;;;AC7EA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACyB;AAClC;AACJ;AACS;;AAEnC;AACA;AACA;AACA;AACA;AACA;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,qDAAY;AAC5B,gBAAgB,qDAAY;;AAE5B;AACA,aAAa,mDAAW;AACxB;AACA;AACA,QAAQ,uDAAQ;AAChB;AACA;AACA;AACA,KAAK;AACL,MAAM,0DAAW;AACjB,KAAK;AACL;AACA;AACA;;AAEA,EAAE,+DAAiB;;AAEnB;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb,IAAI,uDAAS;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oDAAoD,QAAQ,+DAAiB,iBAAiB,EAAE;AAChG;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;;AAEA;AACA;AACA;;;;;;;;;;;;;AC7IA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgD;;AAEzC;AACP;AACA,cAAc,8CAAK;AACnB;AACA;AACA;AACA;AACA,EAAE,8CAAK;AACP,EAAE,8CAAK;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,0CAA0C;;AAE1C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP,UAAU,8CAAK;AACf;;AAEA;AACA,4BAA4B,8CAAK;AACjC;AACA,iDAAiD,gDAAO;AACxD,mDAAmD,gDAAO;AAC1D,aAAa,8CAAK;AAClB;AACA;AACA;;;;;;;;;;;;;ACvKA;AAAA;AAAA;AACA,gBAAgB;AAChB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,gBAAgB,QAAQ;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AC5O5B;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAA6C;;;;;;;;;;;;;ACA7C;AAAA;AAAA;AAAO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACNA;AAAA;AAAA;AAAA;AAAkC;AACe;AACN;;AAE5B;AACf,UAAU,wCAAM;AAChB,UAAU,wCAAM;AAChB;;AAEA;AACA,eAAe,gDAAO;AACtB,0CAA0C,gDAAO,IAAI,gDAAO,6BAA6B,gDAAO,IAAI,gDAAO;AAC3G;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iEAAiE,yDAAQ;AACzE;;AAEA;AACA,iEAAiE,yDAAQ;AACzE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC/CD;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;ACJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACwC;;;;;;;;;;;;;ACDlF;AAAA;AAAA;AAAmC;;AAE5B;AACP,EAAE,kDAAK;AACP;;AAEe;AACf,EAAE,kDAAK;AACP,EAAE,kDAAK;AACP,CAAC;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEO;;AAEP;;AAEe;AACf;AACA;AACA;;;;;;;;;;;;;AClDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACW;AACD;AACuB;AAC9B;AACH;AACF;AACgB;AACC;;AAEpD;AACA;AACA,UAAU,kDAAK,aAAa,kDAAK;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,sDAAQ;AAChC;;AAEA;AACA,UAAU,kDAAK,WAAW,kDAAK,0BAA0B,kDAAK;AAC9D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8DAAe;AACnC,kBAAkB,4DAAQ;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sDAAQ;AAC/B;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,+CAA+C,uDAAS;AACxD;;AAEA;AACA;AACA,oEAAoE,uDAAS;AAC7E;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,kCAAkC,EAAE;AAC1E,mDAAmD,gCAAgC,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,kBAAkB,4BAA4B,SAAS,uDAAS,sCAAsC;AACtG;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,MAAM,gEAAW,KAAK,iDAAS;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,0DAAK;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM,+DAAS;AACf;AACA;;AAEA,IAAI,2DAAO;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,2DAAM,CAAC,kDAAK;AACxB,YAAY,0DAAK;AACjB,aAAa,kDAAK;AAClB,aAAa,kDAAK;;AAElB,IAAI,2DAAW,CAAC,kDAAK;AACrB,IAAI,iEAAa;AACjB;AACA,IAAI,+DAAS;AACb;;AAEA;AACA,MAAM,2DAAO;AACb;AACA,iBAAiB,kDAAK,oBAAoB,kDAAK;AAC/C;AACA;AACA,sEAAsE,0DAAK;AAC3E;;AAEA;AACA;AACA,MAAM,0DAAU,CAAC,kDAAK;AACtB,MAAM,2DAAO;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,0DAAK;AAClB;AACA,qBAAqB,kDAAK;AAC1B;;AAEA,IAAI,2DAAO;AACX,sBAAsB,2DAAM;AAC5B,SAAS,2DAAM;AACf;;AAEA;AACA;AACA,kBAAkB,kDAAK;AACvB;AACA,qCAAqC,kDAAK;AAC1C;;AAEA,IAAI,iEAAa;AACjB,eAAe,OAAO;AACtB,0BAA0B,0DAAK;AAC/B;AACA;AACA;AACA;;AAEA;;AAEA;AACA,6DAA6D,sBAAsB,EAAE;AACrF,MAAM,+DAAS;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,kDAAK;AACvB;;AAEA,IAAI,2DAAO;AACX;AACA;AACA,eAAe,OAAO;AACtB,0BAA0B,0DAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,kDAAK;AACvB;;AAEA,IAAI,iEAAa;AACjB;AACA,yCAAyC,oBAAoB,EAAE;AAC/D,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2DAAM;AACtB;AACA;AACA;AACA;;AAEA;AACA,0EAA0E,4DAAQ;AAClF;;AAEA;AACA,sEAAsE,4DAAQ;AAC9E;;AAEA;AACA,yEAAyE,4DAAQ;AACjF;;AAEA;AACA,sEAAsE,4DAAQ;AAC9E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AClaD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,eAAe,+WAA+W,oBAAoB,sMAAsM,oBAAoB,sBAAsB,oBAAoB,MAAM,oBAAoB;AAChrB,uBAAuB;AACvB,oBAAoB;;;;;;;;;;;;;ACf3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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EA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA;AACA,QAAQ,mBAAO,CAAC,iFAAkB;AAClC,UAAU,mBAAO,CAAC,qFAAoB;AACtC,WAAW,mBAAO,CAAC,uFAAqB;AACxC,WAAW,mBAAO,CAAC,uFAAqB;AACxC,QAAQ,mBAAO,CAAC,iFAAkB;AAClC;;;;;;;;;;;;ACNA,uBAAuB,mBAAO,CAAC,uFAAqB;;AAEpD;;AAEA;AACA;AACA;;;;;;;;;;;;ACNA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;;;;;;;;;;;;ACvBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;AACA;;;;;;;;;;;;ACrEA;;AAEA;AACA;AACA;;;;;;;;;;;;ACJA;;AAEA,oBAAoB,mBAAO,CAAC,iFAAkB;;AAE9C;;AAEA;AACA,uBAAuB,KAAK;AAC5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA,OAAO,8BAA8B,GAAG,8BAA8B;AACtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;ACxDA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;;;;;;;;;;;AC/BA,WAAW,mBAAO,CAAC,oDAAS;;AAE5B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,cAAc,EAAE;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mC;;AAEA;AACA;;;;;;;;;;;;ACpCA,mBAAmB,mBAAO,CAAC,6EAAkB;AAC7C,mBAAmB,mBAAO,CAAC,6EAAkB;AAC7C,mBAAmB,mBAAO,CAAC,2EAAiB;;AAE5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACrCA,WAAW,mBAAO,CAAC,oDAAS;;AAE5B;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;;;;;;;;;;;ACZA,WAAW,mBAAO,CAAC,oDAAS;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3CA;;AAEA;;AAEA,IAAI,IAA6B;AACjC;AACA;AACA,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,YAAY,mBAAO,CAAC,kDAAa;AACjC,kBAAkB,mBAAO,CAAC,8DAAmB;AAC7C,qBAAqB,mBAAO,CAAC,oEAAsB;AACnD,YAAY,mBAAO,CAAC,kDAAa;AACjC,WAAW,mBAAO,CAAC,gDAAY;AAC/B,aAAa,mBAAO,CAAC,oDAAc;AACnC,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;;AC1Ba;;AAEb,WAAW,mBAAO,CAAC,mDAAQ;AAC3B,SAAS,mBAAO,CAAC,+CAAM;;AAEvB;;AAEA;AACA,6CAA6C,2CAA2C,EAAE;;AAE1F;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,gCAAgC,wBAAwB,EAAE;AAC1D,iCAAiC,yBAAyB,EAAE;AAC5D;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;AChCa;;AAEb,WAAW,mBAAO,CAAC,mDAAQ;AAC3B,SAAS,mBAAO,CAAC,+CAAM;AACvB,QAAQ,mBAAO,CAAC,uDAAU;;AAE1B;;AAEA;AACA,6CAA6C,2CAA2C,EAAE;;AAE1F;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;ACrBa;;AAEb,WAAW,mBAAO,CAAC,mDAAQ;AAC3B,SAAS,mBAAO,CAAC,+CAAM;;AAEvB;;AAEA;AACA,6CAA6C,2CAA2C,EAAE;;AAE1F;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACpBA,QAAQ,mBAAO,CAAC,uDAAU;AAC1B,SAAS,mBAAO,CAAC,+CAAM;AACvB,aAAa,mBAAO,CAAC,qDAAS;;AAE9B;;AAEA;AACA;AACA,oBAAoB,mBAAO,CAAC,mEAAgB;AAC5C,uBAAuB,mBAAO,CAAC,yEAAmB;AAClD,yBAAyB,mBAAO,CAAC,+EAAsB;AACvD,wBAAwB,mBAAO,CAAC,6EAAqB;AACrD,sBAAsB,mBAAO,CAAC,uEAAkB;AAChD,2BAA2B,mBAAO,CAAC,mFAAwB;AAC3D,yBAAyB,mBAAO,CAAC,6EAAqB;AACtD,eAAe,mBAAO,CAAC,uDAAU;AACjC,eAAe,mBAAO,CAAC,uDAAU;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yDAAyD,gBAAgB;;AAEzE;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA,+BAA+B,8BAA8B;AAC7D,gCAAgC,gCAAgC;AAChE,GAAG;;AAEH;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvKa;;AAEb,oBAAoB,mBAAO,CAAC,2FAA4B;AACxD,uBAAuB,mBAAO,CAAC,iGAA+B;AAC9D,sBAAsB,mBAAO,CAAC,+FAA8B;AAC5D,uBAAuB,mBAAO,CAAC,iGAA+B;;AAE9D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,eAAe;AACpB,KAAK,eAAe;AACpB,KAAK,eAAe;AACpB,KAAK;AACL;AACA;AACA,4CAA4C,wBAAwB,EAAE;;AAEtE;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;AChFA,QAAQ,mBAAO,CAAC,uDAAU;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACrDA;;;;;;;;;;;;ACAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,mBAAO,CAAC,4DAAgB;;AAEpC,UAAU,mBAAO,CAAC,wDAAc;AAChC,SAAS,mBAAO,CAAC,sDAAa;AAC9B;AACA,UAAU,mBAAO,CAAC,oDAAY;AAC9B,YAAY,mBAAO,CAAC,oDAAY;AAChC,GAAG;AACH,WAAW,mBAAO,CAAC,0DAAe;AAClC;;;;;;;;;;;;;AChCa;;AAEb,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,gBAAgB,mBAAO,CAAC,4DAAc;;AAEtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;AClEA,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,WAAW,mBAAO,CAAC,gDAAQ;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;;;;;;;;;;;;;ACrCa;;AAEb,QAAQ,mBAAO,CAAC,oDAAU;;AAE1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,+BAA+B,EAAE;AACrE,oCAAoC,+BAA+B,EAAE;AACrE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,wBAAwB,EAAE;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA,oCAAoC,sBAAsB,EAAE;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvDA,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,WAAW,mBAAO,CAAC,gDAAQ;AAC3B,YAAY,mBAAO,CAAC,wDAAY;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,mCAAmC,aAAa;;AAErE;AACA,kBAAkB,WAAW;AAC7B;AACA,GAAG;;AAEH;AACA,0BAA0B;AAC1B,GAAG;;AAEH;AACA;AACA,uBAAuB,eAAe;AACtC;AACA,uBAAuB,iBAAiB;AACxC;AACA,KAAK;AACL,GAAG;;AAEH;AACA;;;;;;;;;;;;ACjCA;;AAEA;;AAEA,IAAI,IAA6B;AACjC;AACA,eAAe,mBAAO,CAAC,kDAAU;AACjC,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,YAAY,mBAAO,CAAC,wDAAY;AAChC,WAAW,mBAAO,CAAC,0DAAa;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;A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,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,wBAAwB,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,2BAA2B,gBAAgB;AAC3C,2BAA2B,gBAAgB;AAC3C,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,4DAA4D;AAC5D;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,+BAA+B;AACxC,SAAS,+BAA+B;AACxC,SAAS,0BAA0B;AACnC,SAAS,+BAA+B;AACxC,SAAS;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;ACvYA;;AAEA;;AAEA,IAAI,IAA6B;AACjC;AACA;AACA,iBAAiB,mBAAO,CAAC,4DAAkB;AAC3C,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,YAAY,mBAAO,CAAC,kDAAa;AACjC,cAAc,mBAAO,CAAC,sDAAe;AACrC,YAAY,mBAAO,CAAC,kDAAa;AACjC,eAAe,mBAAO,CAAC,wDAAgB;AACvC,eAAe,mBAAO,CAAC,wDAAgB;AACvC,aAAa,mBAAO,CAAC,oDAAc;AACnC,YAAY,mBAAO,CAAC,gDAAY;AAChC,mBAAmB,mBAAO,CAAC,gEAAoB;AAC/C,YAAY,mBAAO,CAAC,kDAAa;AACjC,WAAW,mBAAO,CAAC,gDAAY;AAC/B,iBAAiB,mBAAO,CAAC,4DAAkB;AAC3C,WAAW,mBAAO,CAAC,gDAAY;AAC/B,aAAa,mBAAO,CAAC,oDAAc;AACnC,WAAW,mBAAO,CAAC,gDAAY;AAC/B,aAAa,mBAAO,CAAC,oDAAc;AACnC,WAAW,mBAAO,CAAC,gDAAY;AAC/B,YAAY,mBAAO,CAAC,kDAAa;AACjC,aAAa,mBAAO,CAAC,oDAAc;AACnC,cAAc,mBAAO,CAAC,sDAAe;AACrC,cAAc,mBAAO,CAAC,sDAAe;AACrC,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,cAAc,mBAAO,CAAC,sDAAe;AACrC,iBAAiB,mBAAO,CAAC,4DAAkB;AAC3C;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3CA,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,WAAW,mBAAO,CAAC,gDAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,2CAA2C;AAC3C;;AAEA;;AAEA;AACA,oCAAoC,6BAA6B,EAAE;;AAEnE;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,6BAA6B;AACvD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA,0BAA0B,wCAAwC;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,uCAAuC,WAAW,EAAE;AACpD;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACnIa;;AAEb,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,WAAW,mBAAO,CAAC,gDAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB,EAAE;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2BAA2B;AACpD;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,2BAA2B;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACzFA,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA,eAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4BAA4B;AACtD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpDA,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,GAAG,oBAAoB;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;AC1BA,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,YAAY,mBAAO,CAAC,yDAAa;;AAEjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB,YAAY,aAAa;AAClE,wCAAwC,kBAAkB,EAAE;;AAE5D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oCAAoC;AAClE,OAAO;;AAEP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxEa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU,EAAE;AACnD;AACA;AACA,cAAc;AACd,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,oDAAoD,UAAU,EAAE;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;;AClEa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,gBAAgB,mBAAO,CAAC,kEAAc;AACtC,iBAAiB,mBAAO,CAAC,oEAAe;AACxC,mBAAmB,mBAAO,CAAC,wEAAiB;AAC5C,sBAAsB,mBAAO,CAAC,gFAAqB;AACnD,6BAA6B,mBAAO,CAAC,8FAA4B;AACjE,YAAY,mBAAO,CAAC,yDAAa;AACjC,WAAW,mBAAO,CAAC,iDAAS;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,+BAA+B,cAAc;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;;;;;;;;;;;;AC9Ea;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,sDAAsD,uBAAuB,EAAE;AAC/E,uDAAuD,WAAW,EAAE;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qDAAqD,uBAAuB,EAAE;AAC9E;;AAEA;AACA;;;;;;;;;;;;;ACrCa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;;AAEA;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sBAAsB;AACxD,8BAA8B,EAAE;AAChC;AACA;AACA;AACA,yCAAyC,0BAA0B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAkD,sBAAsB,EAAE;AAC1E;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzHA,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,iBAAiB,mBAAO,CAAC,kEAAc;AACvC,uBAAuB,mBAAO,CAAC,gFAAqB;AACpD,WAAW,mBAAO,CAAC,sDAAQ;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;AC3EA,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,WAAW,mBAAO,CAAC,iDAAS;;AAE5B;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,sDAAsD,iBAAiB,EAAE;AACzE;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACxDA,QAAQ,mBAAO,CAAC,oDAAU;;AAE1B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;;;;;;;;;;;;ACrFa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,YAAY,mBAAO,CAAC,yDAAa;AACjC,WAAW,mBAAO,CAAC,iDAAS;;AAE5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe,EAAE;AACxD;AACA,wDAAwD,SAAS;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sDAAsD,kBAAkB,EAAE;AAC1E;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAA0C,WAAW,EAAE;AACvD;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;AAC1C,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AClaa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,WAAW,mBAAO,CAAC,iDAAS;AAC5B,gBAAgB,mBAAO,CAAC,qDAAM;;AAE9B;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,oDAAoD,yBAAyB,EAAE;AAC/E;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;;;;;;;;;;;;;AC5Ba;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,YAAY,mBAAO,CAAC,yDAAa;AACjC,YAAY,mBAAO,CAAC,qDAAQ;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAkB;;AAEvC;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,0BAA0B;AAC1B;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACxFa;;AAEb,eAAe,mBAAO,CAAC,qDAAQ;AAC/B;AACA,mBAAmB,mBAAO,CAAC,uEAAiB;AAC5C,qBAAqB,mBAAO,CAAC,2EAAmB;;AAEhD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,wCAAwC;AACxC,4CAA4C;AAC5C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC/Ca;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;AAC3B,mBAAmB,mBAAO,CAAC,uEAAiB;AAC5C,YAAY,mBAAO,CAAC,qDAAQ;AAC5B,eAAe,mBAAO,CAAC,qDAAQ;AAC/B,eAAe,mBAAO,CAAC,yDAAa;AACpC,gBAAgB,mBAAO,CAAC,yDAAa;AACrC,eAAe,mBAAO,CAAC,iDAAS;;AAEhC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH,6CAA6C,uBAAuB,EAAE;AACtE;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,0BAA0B,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzOa;;AAEb,QAAQ,mBAAO,CAAC,qDAAW;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9DA;;AAEa;;AAEb,QAAQ,mBAAO,CAAC,oDAAU;AAC1B,YAAY,mBAAO,CAAC,wDAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kCAAkC,EAAE;AACxE;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA,8BAA8B,+BAA+B;AAC7D;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;;AAEA;AACA,0CAA0C,KAAK;AAC/C,KAAK,oBAAoB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA,4DAA4D,WAAW,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uBAAuB,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,mDAAmD,uBAAuB,EAAE;;AAE5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,iCAAiC,yBAAyB,EAAE;AAC5D;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AC7OA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;;AAEe;AACf;AACA;AACA,iFAAiF;AACjF;AACA;;AAEA;AACA;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,KAA4D;AAC7D,CAAC,SACgC;AACjC,CAAC,4BAA4B;;AAE7B;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,IAAI;;AAEtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,mCAAmC;AAC9C;AACA;AACA;AACA;AACA,uEAAuE,IAAI;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,qBAAqB;AACtC;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAkB,mBAAmB;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA,KAAK,oBAAoB;AACzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+CAA+C;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA,8CAA8C,cAAc;;AAE5D,CAAC;;;;;;;;;;;;ACzdD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+BAA+B;AAC3C;AACA;AACA;AACA;;AAEA,UAAU,mBAAO,CAAC,mDAAO;;AAEzB;AACA;AACA,QAAQ,mBAAO,CAAC,uDAAY;AAC5B,OAAO,mBAAO,CAAC,2DAAW;AAC1B;AACA;;;;;;;;;;;;ACrCA,QAAQ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;;AAEH;AACA;;;;;;;;;;;;AC9CA,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uCAAuC,gD;;;;;;;;;;;AClCvC,QAAQ,mBAAO,CAAC,wDAAW;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,cAAc,EAAE;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvJa;;AAEb,QAAQ,mBAAO,CAAC,uDAAU;;AAE1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oEAAoE,WAAW;AAC/E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,oCAAoC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qBAAqB,EAAE;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qBAAqB,EAAE;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,kBAAkB,eAAe;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACnhBA;AACA;AACA,SAAS,mBAAO,CAAC,qDAAS;AAC1B,WAAW,mBAAO,CAAC,yDAAW;AAC9B;;;;;;;;;;;;ACJA,QAAQ,mBAAO,CAAC,uDAAU;AAC1B,YAAY,mBAAO,CAAC,qDAAS;;AAE7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,eAAe,2CAA2C;AAC1D,GAAG;AACH;AACA;;;;;;;;;;;;ACjEA;;AAEA;;AAEA,IAAI,IAA6B;AACjC;AACA;AACA,aAAa,mBAAO,CAAC,oDAAc;AACnC,gBAAgB,mBAAO,CAAC,0DAAiB;AACzC,YAAY,mBAAO,CAAC,kDAAa;AACjC,cAAc,mBAAO,CAAC,sDAAe;AACrC,YAAY,mBAAO,CAAC,gDAAY;AAChC,eAAe,mBAAO,CAAC,wDAAgB;AACvC,eAAe,mBAAO,CAAC,wDAAgB;AACvC,kBAAkB,mBAAO,CAAC,8DAAmB;AAC7C,mBAAmB,mBAAO,CAAC,gEAAoB;AAC/C,YAAY,mBAAO,CAAC,kDAAa;AACjC,WAAW,mBAAO,CAAC,gDAAY;AAC/B,cAAc,mBAAO,CAAC,sDAAe;AACrC,YAAY,mBAAO,CAAC,kDAAa;AACjC,iBAAiB,mBAAO,CAAC,4DAAkB;AAC3C,aAAa,mBAAO,CAAC,oDAAc;AACnC,cAAc,mBAAO,CAAC,sDAAe;AACrC;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjCA;;;;;;;;;;;;;ACAa;AACb;AACA;AACA;;;;;;;;;;;;ACHA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACNA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACNA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACNA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACNA,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,cAAc,mBAAO,CAAC,qDAAY;AAClC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AAC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ACA;;AAEA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACpKA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;;AAEA;;;;;;;;;;;;ACbA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;A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DAAW;AAChC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClFA,aAAa,mBAAO,CAAC,mDAAW;AAChC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,YAAY,mBAAO,CAAC,iDAAU;AAC9B,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACXA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9CA,aAAa,mBAAO,CAAC,mDAAW;AAChC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,0BAA0B,mBAAO,CAAC,6EAAwB;AAC1D,eAAe,mBAAO,CAAC,qDAAY;AACnC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB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A;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7FA,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,qDAAY;AAClC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,6BAA6B;AACxC,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,YAAY;AACZ,GAAG;;AAEH;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACjCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,YAAY,mBAAO,CAAC,+CAAS;;AAE7B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;AClBA,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,qDAAY;AAClC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACtBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,cAAc,mBAAO,CAAC,qDAAY;AAClC,eAAe,mBAAO,CAAC,qDAAY;AACnC,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9CA,eAAe,mBAAO,CAAC,qDAAY;AACnC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,aAAa,mBAAO,CAAC,mDAAW;AAChC,eAAe,mBAAO,CAAC,uDAAa;AACpC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,eAAe,mBAAO,CAAC,uDAAa;AACpC,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,wBAAwB,mBAAO,CAAC,yEAAsB;AACtD,eAAe,mBAAO,CAAC,uDAAa;AACpC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvEA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACZA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,cAAc,mBAAO,CAAC,mDAAW;AACjC,YAAY,mBAAO,CAAC,iDAAU;AAC9B,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,yDAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;;AClCA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxCA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,mBAAmB;AAC9B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3CA;AACA;AACA;A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MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClFA,aAAa,mBAAO,CAAC,mDAAW;AAChC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,SAAS,mBAAO,CAAC,yCAAM;AACvB,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/GA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxFA,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA;AACA;;AAEA;;;;;;;;;;;;;ACHA,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,yBAAyB,mBAAO,CAAC,2EAAuB;AACxD,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvBA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;;AAEA;;;;;;;;;;;;ACLA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;AC7BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,UAAU,mBAAO,CAAC,6CAAQ;AAC1B,cAAc,mBAAO,CAAC,qDAAY;AAClC,UAAU,mBAAO,CAAC,6CAAQ;AAC1B,cAAc,mBAAO,CAAC,qDAAY;AAClC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACZA,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,cAAc,mBAAO,CAAC,qDAAY;AAClC,eAAe,mBAAO,CAAC,qDAAY;AACnC,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAE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ACtC,UAAU,mBAAO,CAAC,6CAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;;AAEA;;;;;;;;;;;;ACLA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;;AAEA;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,+DAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACjBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,UAAU,mBAAO,CAAC,6CAAQ;AAC1B,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,oBAAoB,mBAAO,CAAC,iEAAkB;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;;;;;;;;;;;;AC1BA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3CA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA,mBAAmB,SAAS,GAAG,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA,mBAAmB,SAAS,GAAG,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,SAAS,mBAAO,CAAC,yCAAM;AACvB,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,eAAe,SAAS,GAAG,SAAS,GAAG,SAAS;AAChD,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;;;;;;;;;;;AC/DA,iBAAiB,mBAAO,CAAC,mDAAW;;;;;;;;;;;;ACApC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA,MAAM,8CAA8C;AACpD,MAAM;AACN;AACA;AACA,gCAAgC,kBAAkB,EAAE;AACpD;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/CA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA,MAAM,+CAA+C;AACrD,MAAM,gDAAgD;AACtD,MAAM;AACN;AACA;AACA,8BAA8B,mBAAmB,EAAE;AACnD;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzCA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,MAAM,qCAAqC;AAC3C,MAAM,qCAAqC;AAC3C,MAAM;AACN;AACA;AACA,mCAAmC,2BAA2B,EAAE;AAChE;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtDA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxCA,cAAc,mBAAO,CAAC,qDAAY;AAClC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtCA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB,OAAO,SAAS;AACjC,yBAAyB,gBAAgB,SAAS,GAAG;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,gBAAgB,SAAS,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,yDAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACrCA,eAAe,mBAAO,CAAC,uDAAa;AACpC,aAAa,mBAAO,CAAC,mDAAW;AAChC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,eAAe,mBAAO,CAAC,qDAAY;AACnC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5EA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7DA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,cAAc,mBAAO,CAAC,mDAAW;AACjC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;AACA;AACA;AACA,MAAM,mBAAmB;AACzB,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpDA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,iBAAiB,+BAA+B;AAChD,iBAAiB;AACjB;AACA;AACA,mCAAmC,cAAc,EAAE;AACnD,UAAU,2BAA2B;AACrC;AACA;AACA;AACA,UAAU,2BAA2B;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;AC1CA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;AAChC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACxEA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,YAAY,SAAS,GAAG,SAAS;AACjC;AACA;AACA;AACA,YAAY,SAAS,GAAG,SAAS;AACjC;AACA;AACA;AACA,UAAU,QAAQ,iBAAiB,GAAG,iBAAiB;AACvD;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACtCA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;AAChC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA,mBAAmB,SAAS,GAAG,SAAS;AACxC;AACA,iCAAiC,YAAY,EAAE;AAC/C,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,qBAAqB;AAChC,aAAa,OAAO;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,UAAU;AACV;AACA;AACA,4BAA4B;AAC5B,CAAC;;AAED;;;;;;;;;;;;ACxBA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,YAAY,mBAAO,CAAC,iDAAU;AAC9B,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA,MAAM,OAAO,SAAS,EAAE;AACxB,MAAM,OAAO,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,aAAa,yBAAyB;AACtC;AACA;AACA,IAAI,IAAI;AACR,UAAU,8BAA8B;AACxC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AClDA,eAAe,mBAAO,CAAC,uDAAa;AACpC,aAAa,mBAAO,CAAC,mDAAW;AAChC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,eAAe,mBAAO,CAAC,qDAAY;AACnC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,yBAAyB;AACpC;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM;AACN;AACA;AACA,iCAAiC,eAAe,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzCA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACnCA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjEA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;A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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7SA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;;;;;;ACvL1B;;AAEZ,cAAc,mBAAO,CAAC,kDAAS;AAC/B,cAAc,mBAAO,CAAC,uDAAS;AAC/B,oBAAoB,mBAAO,CAAC,sEAAoB;;AAEhD;AACA;;AAEA;AACA;;AAEA;;AAEA,iCAAiC;AACjC,cAAc;;AAEd;;AAEA;AACA,oDAAoD;;AAEpD;AACA,uEAAuE;;AAEvE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,kEAAkE;AAClE;AACA,4DAA4D,0BAA0B;AACtF;AACA,EAAE;AACF;AACA,6HAA6H;;AAE7H;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,8BAA8B,WAAW,GAAG,MAAM;;AAElD;AACA;;AAEA;AACA;;;;;;;;;;;;;;ACvEA,CAAC;AACD,MAAM,IAA2B;AACjC;AACA;AACA;AACA;AACA,OAAO,EAKJ;AACH,CAAC;AACD,6BAA6B,82IAA82I;AAC34I,6BAA6B,MAAM,iBAAiB;;AAEpD;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AAC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AC9Y,IAAR,CAAa,OAAb,EAAsBiB,KAAtB;AACD,GAxFoC,CA0FrC;;;AACA,MAAMsY,IAAI,aAAMF,SAAS,CAAC5X,CAAV,GAAcN,OAApB,cAA+BkY,SAAS,CAAC3X,CAAV,GAAcP,OAA7C,cAAwDF,KAAxD,cAAiEC,MAAjE,CAAV;AACA6C,gDAAM,CAACkL,KAAP,mBAAwBsK,IAAxB;AACAT,SAAO,CAAC9Y,IAAR,CAAa,SAAb,EAAwBuZ,IAAxB;AACD,CA9FM;AAgGQ;AACb5a,SAAO,EAAPA,OADa;AAEbka,MAAI,EAAJA;AAFa,CAAf,E;;;;;;;;;;;ACtPA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,4yBAA4yB;AACvzB,aAAa,2dAA2d;AACxe;AACA;AACA;;AAEA;AACA;AACA;AACA,wB;AACA;AACA;AACA,e;AACA;AACA;AACA,qC;AACA;AACA;AACA,4B;AACA;AACA;AACA,wB;AACA;AACA;AACA,2CAA2C,0B;AAC3C;AACA;AACA;AACA;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA;AACA,mC;AACA;AACA;AACA,mB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,WAAW,8F;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW,6F;AACX;AACA;AACA,WAAW,8F;AACX;AACA;AACA,SAAS,+C;AACT;AACA;AACA,SAAS,6C;AACT;AACA;AACA,SAAS,6C;AACT;AACA;AACA,SAAS,2C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,CAAC;AACD,SAAS,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,8GAA8G,EAAE,SAAS,EAAE,iBAAiB,eAAe,UAAU,wEAAwE,gFAAgF,GAAG,iCAAiC,8BAA8B,2BAA2B,EAAE,iCAAiC,EAAE,iCAAiC,cAAc,2CAA2C,6CAA6C,QAAQ,EAAE,uHAAuH,gBAAgB,2CAA2C,EAAE,4DAA4D,gBAAgB,oBAAoB,eAAe,kCAAkC,oGAAoG,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,2BAA2B,iCAAiC,GAAG,QAAQ,gBAAgB,iCAAiC,EAAE,2CAA2C,eAAe,kCAAkC,iBAAiB,aAAa,EAAE,iCAAiC,eAAe,UAAU,gBAAgB,UAAU,4CAA4C,iCAAiC,gBAAgB,UAAU,EAAE,uBAAuB,wEAAwE,UAAU;AAC3nD,iBAAiB,oCAAoC;AACrD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA;AACA;AACA;AACA,uCAAuC,kBAAkB;AACzD;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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E;AACA;AACA,iBAAiB,oCAAoC;AACrD;AACA;;AAEA,kBAAkB;AAClB,kEAAkE;;AAElE;AACA;AACA,qC;AACA;AACA;AACA,sC;AACA;AACA;AACA,qC;AACA;AACA;AACA,kC;AACA;AACA;AACA,4C;AACA;AACA;AACA,wC;AACA;AACA;AACA,mC;AACA;AACA;AACA,iB;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,uBAAuB,EAAE,QAAQ,eAAe,qCAAqC,4BAA4B,YAAY,EAAE,0BAA0B,uDAAuD,UAAU,EAAE,kCAAkC,8BAA8B,0BAA0B,EAAE,SAAS;AACnX,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,2FAA2F,cAAc,uCAAuC,aAAa;AAC7J,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;;;;ACtqBA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA,SAAS1H,QAAT,CAAkB1R,MAAlB,EAA0Be,IAA1B,EAAgCd,IAAhC,EAAsC;AACpC,MAAM6F,CAAC,GAAG/E,IAAI,CAACS,KAAf;AACA,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;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,k8CAAk8C;AAC78C,aAAa,40BAA40B;AACz1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8CAA8C,WAAW,qD;AACrG;AACA;AACA,8CAA8C,gDAAgD,WAAW,yD;AACzG;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC,qDAAqD;AACvF;AACA;AACA,oBAAoB;AACpB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA,uBAAuB;AACvB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;A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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,icAAic,25KAA25K,UAAU;AACt2L,aAAa,UAAU,6BAA6B,QAAQ,0DAA0D,WAAW,gCAAgC,YAAY;AAC7K,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,q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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,gWAAgW;AAC3W,aAAa,gPAAgP;AAC7P;AACA;AACA;;AAEA;AACA;AACA;AACA,iB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,oCAAoC;AACpC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,2CAA2C;AAC7D;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB,yCAAyC;AAC3D;AACA;AACA,kBAAkB,6CAA6C;AAC/D;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,sGAAsG,cAAc,QAAQ,gBAAgB,0EAA0E,0IAA0I,UAAU,EAAE,oBAAoB,0CAA0C,oBAAoB,gBAAgB,UAAU,gBAAgB,UAAU,8BAA8B,UAAU;AAC5kB,kBAAkB;AAClB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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AAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,uSAAuS;AAClT,aAAa,0JAA0J;AACvK;AACA;AACA;;AAEA;AACA;AACA;AACA,iB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,yBAAyB;AACzB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,cAAc,gBAAgB,gBAAgB,sBAAsB,EAAE,QAAQ,EAAE,gFAAgF,eAAe,SAAS,eAAe,UAAU,gBAAgB,0BAA0B,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,0BAA0B,EAAE,QAAQ,eAAe,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU,EAAE,UAAU;AAC1lB,iBAAiB,2GAA2G;AAC5H;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;A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AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,mHAAmH;AAC9H,aAAa,gDAAgD;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA,W;AACA;AACA;;AAEA;AACA;AACA,kB;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,iCAAiC,EAAE,QAAQ;AAC7F,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;;;AC7mBA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,mIAAmI;AAC9I,aAAa,gEAAgE;AAC7E;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kD;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,0CAA0C,EAAE,QAAQ,yCAAyC,UAAU;AACzJ,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qGAAqG;AACrG,aAAa,UAAU,gCAAgC,YAAY;AACnE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;;;;ACznBA;AAAA;AAAA;;;AAGA;AAEA,IAAIwR,QAAQ,GAAG,EAAf;AACA,IAAIvS,KAAK,GAAG,EAA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C9f;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,c;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,W;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,SAAS,+BAA+B;AACxC;AACA;;AAEA,oBAAoB,0FAA0F;AAC9G,iBAAiB,qEAAqE;AACtF;AACA;AACA;;AAEA,oBAAoB,wFAAwF;AAC5G,iBAAiB,oFAAoF;AACrG;AACA;AACA;;AAEA,oBAAoB,uFAAuF;AAC3G,iBAAiB,mFAAmF;AACpG;AACA;AACA;;AAEA;AACA,oBAAoB,uFAAuF;AAC3G;AACA;AACA,iBAAiB,gDAAgD;AACjE;AACA;AACA;;AAEA;AACA,oBAAoB,uFAAuF;AAC3G;AACA;AACA,iBAAiB,gDAAgD;AACjE;AACA;AACA;AACA,4BAA4B,gFAAgF,W;AAC5G;AACA;AACA,4BAA4B,kFAAkF,W;AAC9G;AACA;;AAEA,uBAAuB,sEAAsE;AAC7F;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,qFAAqF;AAC5G;AACA;AACA,6B;AACA;AACA;AACA,iB;AACA;AACA;AACA,8B;AACA;AACA;AACA,+B;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H,gBAAgB;AAChB;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H,eAAe;AACf;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H;AACA;AACA,QAAQ;AACR;AACA;AACA,iC;AACA;AACA;AACA,kC;AACA;AACA;AACA,4B;AACA;AACA;AACA,6B;AACA;AACA;AACA,kC;AACA;AACA;AACA,mC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qB;AACvB;AACA;AACA,6C;AACA;AACA;AACA,2CAA2C,4C;AAC3C;AACA;AACA,qBAAqB,wB;AACrB;AACA;AACA,CAAC;AACD,SAAS,sCAAsC,EAAE,MAAM,EAAE,sCAAsC,EAAE,sCAAsC,EAAE,uCAAuC,uDAAuD,KAAK,GAAG,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,sJAAsJ,EAAE,uBAAuB,iCAAiC,6HAA6H,4BAA4B,aAAa,EAAE,SAAS,gBAAgB,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,gBAAgB,kEAAkE,EAAE,oCAAoC,2CAA2C,SAAS,EAAE,gBAAgB,EAAE,SAAS,eAAe,mBAAmB,gBAAgB,SAAS,EAAE,SAAS,gBAAgB,SAAS,EAAE,SAAS,YAAY,KAAK,aAAa,KAAK,aAAa,KAAK,aAAa,WAAW,aAAa,WAAW,GAAG,iCAAiC,sFAAsF,aAAa,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,gBAAgB,aAAa,EAAE,UAAU,EAAE,UAAU,0DAA0D,wJAAwJ,EAAE,wJAAwJ,EAAE,wJAAwJ,EAAE,UAAU,EAAE,kKAAkK,EAAE,UAAU,EAAE,kKAAkK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,SAAS,EAAE,SAAS,0DAA0D,UAAU,gBAAgB,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,wCAAwC,YAAY,aAAa,YAAY,GAAG,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AACpsF,iBAAiB,yKAAyK;AAC1L;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,W;AAC1B;AACA,wCAAwC,qBAAqB,W;AAC7D;AACA,yBA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hB;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,4GAA4G;AAC5G,gBAAgB,2CAA2C;;AAE3D;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,sBAAsB,EAAE,MAAM,EAAE,sBAAsB,EAAE,sBAAsB,8CAA8C,IAAI,GAAG,QAAQ,EAAE,QAAQ,EAAE,yGAAyG,eAAe,iFAAiF,wCAAwC,oBAAoB,iBAAiB,UAAU,eAAe,UAAU,GAAG,UAAU,4CAA4C,oCAAoC,yDAAyD,oBAAoB,0BAA0B,KAAK,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,eAAe,UAAU,GAAG,2GAA2G,eAAe,UAAU,GAAG,UAAU,EAAE,UAAU,wCAAwC,KAAK,+BAA+B,2GAA2G;AAC/kC,iBAAiB,oCAAoC;AACrD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yCAAyC,a;AACzE;AACA;AACA;AACA;AACA;AACA,gC;AACA;AACA,uBAAuB,yCAAyC,0CAA0C;AAC1G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA,wBAAwB,uCAAuC;AAC/D;AACA;AACA;AACA,wDAAwD;AACxD;AACA,oDAAoD;AACpD;AACA;AACA;AACA,wBAAwB,yBAAyB,2CAA2C;AAC5F;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA,4BAA4B,W;AAC5B;AACA,yBAAyB,0BAA0B;AACnD;AACA,yBAAyB,0BAA0B;AACnD;AACA,yBAAyB;AACzB;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,wB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,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,uKAAuK;AAClL,aAAa,oGAAoG;AACjH;AACA;AACA;;AAEA;AACA;AACA;AACA,iB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,sDAAsD,cAAc,QAAQ,gBAAgB,0BAA0B,sDAAsD,UAAU;AACxO,kBAAkB;AAClB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,sGAAsG,2BAA2B,kBAAkB,kBAAkB;AACrK,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;A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","file":"mermaid.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mermaid\"] = factory();\n\telse\n\t\troot[\"mermaid\"] = factory();\n})(typeof self !== \"undefined\" ? self : this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/mermaid.js\");\n","'use strict';\n\nvar invalidPrototcolRegex = /^(%20|\\s)*(javascript|data)/im;\nvar ctrlCharactersRegex = /[^\\x20-\\x7E]/gmi;\nvar urlSchemeRegex = /^([^:]+):/gm;\nvar relativeFirstCharacters = ['.', '/']\n\nfunction isRelativeUrl(url) {\n return relativeFirstCharacters.indexOf(url[0]) > -1;\n}\n\nfunction sanitizeUrl(url) {\n if (!url) {\n return 'about:blank';\n }\n\n var urlScheme, urlSchemeParseResults;\n var sanitizedUrl = url.replace(ctrlCharactersRegex, '').trim();\n\n if (isRelativeUrl(sanitizedUrl)) {\n return sanitizedUrl;\n }\n\n urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);\n\n if (!urlSchemeParseResults) {\n return 'about:blank';\n }\n\n urlScheme = urlSchemeParseResults[0];\n\n if (invalidPrototcolRegex.test(urlScheme)) {\n return 'about:blank';\n }\n\n return sanitizedUrl;\n}\n\nmodule.exports = {\n sanitizeUrl: sanitizeUrl\n};\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/* Flowchart variables */\\n/* Sequence Diagram variables */\\n/* Gantt chart variables */\\n/* state colors */\\n.label {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n color: #333; }\\n\\n.label text {\\n fill: #333; }\\n\\n.node rect,\\n.node circle,\\n.node ellipse,\\n.node polygon,\\n.node path {\\n fill: #1f2020;\\n stroke: purple;\\n stroke-width: 1px; }\\n\\n.node .label {\\n text-align: center; }\\n\\n.node.clickable {\\n cursor: pointer; }\\n\\n.arrowheadPath {\\n fill: lightgrey; }\\n\\n.edgePath .path {\\n stroke: lightgrey;\\n stroke-width: 1.5px; }\\n\\n.edgeLabel {\\n background-color: #e8e8e8;\\n text-align: center; }\\n .edgeLabel rect {\\n opacity: 0.5; }\\n\\n.cluster rect {\\n fill: #474949;\\n stroke: rgba(255, 255, 255, 0.25);\\n stroke-width: 1px; }\\n\\n.cluster text {\\n fill: #F9FFFE; }\\n\\ndiv.mermaidTooltip {\\n position: absolute;\\n text-align: center;\\n max-width: 200px;\\n padding: 2px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 12px;\\n background: #474949;\\n border: 1px solid rgba(255, 255, 255, 0.25);\\n border-radius: 2px;\\n pointer-events: none;\\n z-index: 100; }\\n\\n.actor {\\n stroke: #81B1DB;\\n fill: #1f2020; }\\n\\ntext.actor > tspan {\\n fill: lightgrey;\\n stroke: none; }\\n\\n.actor-line {\\n stroke: lightgrey; }\\n\\n.messageLine0 {\\n stroke-width: 1.5;\\n stroke-dasharray: none;\\n stroke: lightgrey; }\\n\\n.messageLine1 {\\n stroke-width: 1.5;\\n stroke-dasharray: 2, 2;\\n stroke: lightgrey; }\\n\\n#arrowhead path {\\n fill: lightgrey;\\n stroke: lightgrey; }\\n\\n.sequenceNumber {\\n fill: white; }\\n\\n#sequencenumber {\\n fill: lightgrey; }\\n\\n#crosshead path {\\n fill: lightgrey;\\n stroke: lightgrey; }\\n\\n.messageText {\\n fill: lightgrey;\\n stroke: lightgrey; }\\n\\n.labelBox {\\n stroke: #81B1DB;\\n fill: #1f2020; }\\n\\n.labelText, .labelText > tspan {\\n fill: lightgrey;\\n stroke: none; }\\n\\n.loopText, .loopText > tspan {\\n fill: lightgrey;\\n stroke: none; }\\n\\n.loopLine {\\n stroke-width: 2px;\\n stroke-dasharray: 2, 2;\\n stroke: #81B1DB;\\n fill: #81B1DB; }\\n\\n.note {\\n stroke: rgba(255, 255, 255, 0.25);\\n fill: #fff5ad; }\\n\\n.noteText {\\n fill: #1f2020;\\n stroke: none; }\\n\\n.activation0 {\\n fill: #474949;\\n stroke: #81B1DB; }\\n\\n.activation1 {\\n fill: #474949;\\n stroke: #81B1DB; }\\n\\n.activation2 {\\n fill: #474949;\\n stroke: #81B1DB; }\\n\\ng > rect[class=\\\"note\\\"] {\\n stroke: rgba(255, 255, 255, 0.25);\\n fill: #fff5ad; }\\n\\ng > text[class=\\\"noteText\\\"] > tspan {\\n stroke: #1f2020;\\n fill: #1f2020;\\n stroke-width: 1px; }\\n\\n/** Section styling */\\n.mermaid-main-font {\\n font-family: \\\"trebuchet ms\\\", verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.section {\\n stroke: none;\\n opacity: 0.2; }\\n\\n.section0 {\\n fill: rgba(255, 255, 255, 0.3); }\\n\\n.section2 {\\n fill: #EAE8B9; }\\n\\n.section1,\\n.section3 {\\n fill: white;\\n opacity: 0.2; }\\n\\n.sectionTitle0 {\\n fill: #F9FFFE; }\\n\\n.sectionTitle1 {\\n fill: #F9FFFE; }\\n\\n.sectionTitle2 {\\n fill: #F9FFFE; }\\n\\n.sectionTitle3 {\\n fill: #F9FFFE; }\\n\\n.sectionTitle {\\n text-anchor: start;\\n font-size: 11px;\\n text-height: 14px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n/* Grid and axis */\\n.grid .tick {\\n stroke: lightgrey;\\n opacity: 0.8;\\n shape-rendering: crispEdges; }\\n .grid .tick text {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.grid path {\\n stroke-width: 0; }\\n\\n/* Today line */\\n.today {\\n fill: none;\\n stroke: #DB5757;\\n stroke-width: 2px; }\\n\\n/* Task styling */\\n/* Default task */\\n.task {\\n stroke-width: 2; }\\n\\n.taskText {\\n text-anchor: middle;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskText:not([font-size]) {\\n font-size: 11px; }\\n\\n.taskTextOutsideRight {\\n fill: #323D47;\\n text-anchor: start;\\n font-size: 11px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskTextOutsideLeft {\\n fill: #323D47;\\n text-anchor: end;\\n font-size: 11px; }\\n\\n/* Special case clickable */\\n.task.clickable {\\n cursor: pointer; }\\n\\n.taskText.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideLeft.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideRight.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n/* Specific task settings for the sections*/\\n.taskText0,\\n.taskText1,\\n.taskText2,\\n.taskText3 {\\n fill: #323D47; }\\n\\n.task0,\\n.task1,\\n.task2,\\n.task3 {\\n fill: #1f2020;\\n stroke: rgba(255, 255, 255, 0.5); }\\n\\n.taskTextOutside0,\\n.taskTextOutside2 {\\n fill: lightgrey; }\\n\\n.taskTextOutside1,\\n.taskTextOutside3 {\\n fill: lightgrey; }\\n\\n/* Active task */\\n.active0,\\n.active1,\\n.active2,\\n.active3 {\\n fill: #81B1DB;\\n stroke: rgba(255, 255, 255, 0.5); }\\n\\n.activeText0,\\n.activeText1,\\n.activeText2,\\n.activeText3 {\\n fill: #323D47 !important; }\\n\\n/* Completed task */\\n.done0,\\n.done1,\\n.done2,\\n.done3 {\\n stroke: grey;\\n fill: lightgrey;\\n stroke-width: 2; }\\n\\n.doneText0,\\n.doneText1,\\n.doneText2,\\n.doneText3 {\\n fill: #323D47 !important; }\\n\\n/* Tasks on the critical line */\\n.crit0,\\n.crit1,\\n.crit2,\\n.crit3 {\\n stroke: #E83737;\\n fill: #E83737;\\n stroke-width: 2; }\\n\\n.activeCrit0,\\n.activeCrit1,\\n.activeCrit2,\\n.activeCrit3 {\\n stroke: #E83737;\\n fill: #81B1DB;\\n stroke-width: 2; }\\n\\n.doneCrit0,\\n.doneCrit1,\\n.doneCrit2,\\n.doneCrit3 {\\n stroke: #E83737;\\n fill: lightgrey;\\n stroke-width: 2;\\n cursor: pointer;\\n shape-rendering: crispEdges; }\\n\\n.milestone {\\n transform: rotate(45deg) scale(0.8, 0.8); }\\n\\n.milestoneText {\\n font-style: italic; }\\n\\n.doneCritText0,\\n.doneCritText1,\\n.doneCritText2,\\n.doneCritText3 {\\n fill: #323D47 !important; }\\n\\n.activeCritText0,\\n.activeCritText1,\\n.activeCritText2,\\n.activeCritText3 {\\n fill: #323D47 !important; }\\n\\n.titleText {\\n text-anchor: middle;\\n font-size: 18px;\\n fill: #323D47;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.classGroup text {\\n fill: purple;\\n stroke: none;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 10px; }\\n g.classGroup text .title {\\n font-weight: bolder; }\\n\\ng.clickable {\\n cursor: pointer; }\\n\\ng.classGroup rect {\\n fill: #1f2020;\\n stroke: purple; }\\n\\ng.classGroup line {\\n stroke: purple;\\n stroke-width: 1; }\\n\\n.classLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #1f2020;\\n opacity: 0.5; }\\n\\n.classLabel .label {\\n fill: purple;\\n font-size: 10px; }\\n\\n.relation {\\n stroke: purple;\\n stroke-width: 1;\\n fill: none; }\\n\\n.dashed-line {\\n stroke-dasharray: 3; }\\n\\n#compositionStart {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#compositionEnd {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#aggregationStart {\\n fill: #1f2020;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#aggregationEnd {\\n fill: #1f2020;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#dependencyStart {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#dependencyEnd {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#extensionStart {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n#extensionEnd {\\n fill: purple;\\n stroke: purple;\\n stroke-width: 1; }\\n\\n.commit-id,\\n.commit-msg,\\n.branch-label {\\n fill: lightgrey;\\n color: lightgrey;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.pieTitleText {\\n text-anchor: middle;\\n font-size: 25px;\\n fill: #323D47;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.slice {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: purple;\\n stroke: none;\\n font-size: 10px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: purple;\\n stroke: none;\\n font-size: 10px; }\\n\\ng.stateGroup .state-title {\\n font-weight: bolder;\\n fill: black; }\\n\\ng.stateGroup rect {\\n fill: #1f2020;\\n stroke: purple; }\\n\\ng.stateGroup line {\\n stroke: purple;\\n stroke-width: 1; }\\n\\n.transition {\\n stroke: purple;\\n stroke-width: 1;\\n fill: none; }\\n\\n.stateGroup .composit {\\n fill: white;\\n border-bottom: 1px; }\\n\\n.stateGroup .alt-composit {\\n fill: #e0e0e0;\\n border-bottom: 1px; }\\n\\n.state-note {\\n stroke: rgba(255, 255, 255, 0.25);\\n fill: #fff5ad; }\\n .state-note text {\\n fill: black;\\n stroke: none;\\n font-size: 10px; }\\n\\n.stateLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #1f2020;\\n opacity: 0.5; }\\n\\n.stateLabel text {\\n fill: black;\\n font-size: 10px;\\n font-weight: bold;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.node circle.state-start {\\n fill: black;\\n stroke: black; }\\n\\n.node circle.state-end {\\n fill: black;\\n stroke: white;\\n stroke-width: 1.5; }\\n\\n#statediagram-barbEnd {\\n fill: purple; }\\n\\n.statediagram-cluster rect {\\n fill: #1f2020;\\n stroke: purple;\\n stroke-width: 1px; }\\n\\n.statediagram-cluster rect.outer {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state .divider {\\n stroke: purple; }\\n\\n.statediagram-state .title-state {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-cluster.statediagram-cluster .inner {\\n fill: white; }\\n\\n.statediagram-cluster.statediagram-cluster-alt .inner {\\n fill: #e0e0e0; }\\n\\n.statediagram-cluster .inner {\\n rx: 0;\\n ry: 0; }\\n\\n.statediagram-state rect.basic {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state rect.divider {\\n stroke-dasharray: 10,10;\\n fill: #efefef; }\\n\\n.note-edge {\\n stroke-dasharray: 5; }\\n\\n.statediagram-note rect {\\n fill: #fff5ad;\\n stroke: rgba(255, 255, 255, 0.25);\\n stroke-width: 1px;\\n rx: 0;\\n ry: 0; }\\n\\n:root {\\n --mermaid-font-family: '\\\"trebuchet ms\\\", verdana, arial, \\\"Comic Sans MS\\\", \\\"Comic Sans\\\", cursive'; }\\n\\n.error-icon {\\n fill: #a44141; }\\n\\n.error-text {\\n fill: #ddd;\\n stroke: #ddd; }\\n\", \"\"]);\n\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/* Flowchart variables */\\n/* Sequence Diagram variables */\\n/* Gantt chart variables */\\n/* state colors */\\n.label {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n color: #333; }\\n\\n.label text {\\n fill: #333; }\\n\\n.node rect,\\n.node circle,\\n.node ellipse,\\n.node polygon,\\n.node path {\\n fill: #ECECFF;\\n stroke: #9370DB;\\n stroke-width: 1px; }\\n\\n.node .label {\\n text-align: center; }\\n\\n.node.clickable {\\n cursor: pointer; }\\n\\n.arrowheadPath {\\n fill: #333333; }\\n\\n.edgePath .path {\\n stroke: #333333;\\n stroke-width: 1.5px; }\\n\\n.edgeLabel {\\n background-color: #e8e8e8;\\n text-align: center; }\\n .edgeLabel rect {\\n opacity: 0.5; }\\n\\n.cluster rect {\\n fill: #ffffde;\\n stroke: #aaaa33;\\n stroke-width: 1px; }\\n\\n.cluster text {\\n fill: #333; }\\n\\ndiv.mermaidTooltip {\\n position: absolute;\\n text-align: center;\\n max-width: 200px;\\n padding: 2px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 12px;\\n background: #ffffde;\\n border: 1px solid #aaaa33;\\n border-radius: 2px;\\n pointer-events: none;\\n z-index: 100; }\\n\\n.actor {\\n stroke: #CCCCFF;\\n fill: #ECECFF; }\\n\\ntext.actor > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.actor-line {\\n stroke: grey; }\\n\\n.messageLine0 {\\n stroke-width: 1.5;\\n stroke-dasharray: none;\\n stroke: #333; }\\n\\n.messageLine1 {\\n stroke-width: 1.5;\\n stroke-dasharray: 2, 2;\\n stroke: #333; }\\n\\n#arrowhead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.sequenceNumber {\\n fill: white; }\\n\\n#sequencenumber {\\n fill: #333; }\\n\\n#crosshead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.messageText {\\n fill: #333;\\n stroke: #333; }\\n\\n.labelBox {\\n stroke: #CCCCFF;\\n fill: #ECECFF; }\\n\\n.labelText, .labelText > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.loopText, .loopText > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.loopLine {\\n stroke-width: 2px;\\n stroke-dasharray: 2, 2;\\n stroke: #CCCCFF;\\n fill: #CCCCFF; }\\n\\n.note {\\n stroke: #aaaa33;\\n fill: #fff5ad; }\\n\\n.noteText {\\n fill: #ECECFF;\\n stroke: none; }\\n\\n.activation0 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation1 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation2 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\ng > rect[class=\\\"note\\\"] {\\n stroke: #aaaa33;\\n fill: #fff5ad; }\\n\\ng > text[class=\\\"noteText\\\"] > tspan {\\n stroke: #ECECFF;\\n fill: #ECECFF;\\n stroke-width: 1px; }\\n\\n/** Section styling */\\n.mermaid-main-font {\\n font-family: \\\"trebuchet ms\\\", verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.section {\\n stroke: none;\\n opacity: 0.2; }\\n\\n.section0 {\\n fill: rgba(102, 102, 255, 0.49); }\\n\\n.section2 {\\n fill: #fff400; }\\n\\n.section1,\\n.section3 {\\n fill: white;\\n opacity: 0.2; }\\n\\n.sectionTitle0 {\\n fill: #333; }\\n\\n.sectionTitle1 {\\n fill: #333; }\\n\\n.sectionTitle2 {\\n fill: #333; }\\n\\n.sectionTitle3 {\\n fill: #333; }\\n\\n.sectionTitle {\\n text-anchor: start;\\n font-size: 11px;\\n text-height: 14px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n/* Grid and axis */\\n.grid .tick {\\n stroke: lightgrey;\\n opacity: 0.8;\\n shape-rendering: crispEdges; }\\n .grid .tick text {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.grid path {\\n stroke-width: 0; }\\n\\n/* Today line */\\n.today {\\n fill: none;\\n stroke: red;\\n stroke-width: 2px; }\\n\\n/* Task styling */\\n/* Default task */\\n.task {\\n stroke-width: 2; }\\n\\n.taskText {\\n text-anchor: middle;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskText:not([font-size]) {\\n font-size: 11px; }\\n\\n.taskTextOutsideRight {\\n fill: black;\\n text-anchor: start;\\n font-size: 11px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskTextOutsideLeft {\\n fill: black;\\n text-anchor: end;\\n font-size: 11px; }\\n\\n/* Special case clickable */\\n.task.clickable {\\n cursor: pointer; }\\n\\n.taskText.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideLeft.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideRight.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n/* Specific task settings for the sections*/\\n.taskText0,\\n.taskText1,\\n.taskText2,\\n.taskText3 {\\n fill: white; }\\n\\n.task0,\\n.task1,\\n.task2,\\n.task3 {\\n fill: #8a90dd;\\n stroke: #534fbc; }\\n\\n.taskTextOutside0,\\n.taskTextOutside2 {\\n fill: black; }\\n\\n.taskTextOutside1,\\n.taskTextOutside3 {\\n fill: black; }\\n\\n/* Active task */\\n.active0,\\n.active1,\\n.active2,\\n.active3 {\\n fill: #bfc7ff;\\n stroke: #534fbc; }\\n\\n.activeText0,\\n.activeText1,\\n.activeText2,\\n.activeText3 {\\n fill: black !important; }\\n\\n/* Completed task */\\n.done0,\\n.done1,\\n.done2,\\n.done3 {\\n stroke: grey;\\n fill: lightgrey;\\n stroke-width: 2; }\\n\\n.doneText0,\\n.doneText1,\\n.doneText2,\\n.doneText3 {\\n fill: black !important; }\\n\\n/* Tasks on the critical line */\\n.crit0,\\n.crit1,\\n.crit2,\\n.crit3 {\\n stroke: #ff8888;\\n fill: red;\\n stroke-width: 2; }\\n\\n.activeCrit0,\\n.activeCrit1,\\n.activeCrit2,\\n.activeCrit3 {\\n stroke: #ff8888;\\n fill: #bfc7ff;\\n stroke-width: 2; }\\n\\n.doneCrit0,\\n.doneCrit1,\\n.doneCrit2,\\n.doneCrit3 {\\n stroke: #ff8888;\\n fill: lightgrey;\\n stroke-width: 2;\\n cursor: pointer;\\n shape-rendering: crispEdges; }\\n\\n.milestone {\\n transform: rotate(45deg) scale(0.8, 0.8); }\\n\\n.milestoneText {\\n font-style: italic; }\\n\\n.doneCritText0,\\n.doneCritText1,\\n.doneCritText2,\\n.doneCritText3 {\\n fill: black !important; }\\n\\n.activeCritText0,\\n.activeCritText1,\\n.activeCritText2,\\n.activeCritText3 {\\n fill: black !important; }\\n\\n.titleText {\\n text-anchor: middle;\\n font-size: 18px;\\n fill: black;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.classGroup text {\\n fill: #9370DB;\\n stroke: none;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 10px; }\\n g.classGroup text .title {\\n font-weight: bolder; }\\n\\ng.clickable {\\n cursor: pointer; }\\n\\ng.classGroup rect {\\n fill: #ECECFF;\\n stroke: #9370DB; }\\n\\ng.classGroup line {\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n.classLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #ECECFF;\\n opacity: 0.5; }\\n\\n.classLabel .label {\\n fill: #9370DB;\\n font-size: 10px; }\\n\\n.relation {\\n stroke: #9370DB;\\n stroke-width: 1;\\n fill: none; }\\n\\n.dashed-line {\\n stroke-dasharray: 3; }\\n\\n#compositionStart {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#compositionEnd {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#aggregationStart {\\n fill: #ECECFF;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#aggregationEnd {\\n fill: #ECECFF;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#dependencyStart {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#dependencyEnd {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#extensionStart {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n#extensionEnd {\\n fill: #9370DB;\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n.commit-id,\\n.commit-msg,\\n.branch-label {\\n fill: lightgrey;\\n color: lightgrey;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.pieTitleText {\\n text-anchor: middle;\\n font-size: 25px;\\n fill: black;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.slice {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #9370DB;\\n stroke: none;\\n font-size: 10px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #9370DB;\\n stroke: none;\\n font-size: 10px; }\\n\\ng.stateGroup .state-title {\\n font-weight: bolder;\\n fill: black; }\\n\\ng.stateGroup rect {\\n fill: #ECECFF;\\n stroke: #9370DB; }\\n\\ng.stateGroup line {\\n stroke: #9370DB;\\n stroke-width: 1; }\\n\\n.transition {\\n stroke: #9370DB;\\n stroke-width: 1;\\n fill: none; }\\n\\n.stateGroup .composit {\\n fill: white;\\n border-bottom: 1px; }\\n\\n.stateGroup .alt-composit {\\n fill: #e0e0e0;\\n border-bottom: 1px; }\\n\\n.state-note {\\n stroke: #aaaa33;\\n fill: #fff5ad; }\\n .state-note text {\\n fill: black;\\n stroke: none;\\n font-size: 10px; }\\n\\n.stateLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #ECECFF;\\n opacity: 0.5; }\\n\\n.stateLabel text {\\n fill: black;\\n font-size: 10px;\\n font-weight: bold;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.node circle.state-start {\\n fill: black;\\n stroke: black; }\\n\\n.node circle.state-end {\\n fill: black;\\n stroke: white;\\n stroke-width: 1.5; }\\n\\n#statediagram-barbEnd {\\n fill: #9370DB; }\\n\\n.statediagram-cluster rect {\\n fill: #ECECFF;\\n stroke: #9370DB;\\n stroke-width: 1px; }\\n\\n.statediagram-cluster rect.outer {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state .divider {\\n stroke: #9370DB; }\\n\\n.statediagram-state .title-state {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-cluster.statediagram-cluster .inner {\\n fill: white; }\\n\\n.statediagram-cluster.statediagram-cluster-alt .inner {\\n fill: #e0e0e0; }\\n\\n.statediagram-cluster .inner {\\n rx: 0;\\n ry: 0; }\\n\\n.statediagram-state rect.basic {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state rect.divider {\\n stroke-dasharray: 10,10;\\n fill: #efefef; }\\n\\n.note-edge {\\n stroke-dasharray: 5; }\\n\\n.statediagram-note rect {\\n fill: #fff5ad;\\n stroke: #aaaa33;\\n stroke-width: 1px;\\n rx: 0;\\n ry: 0; }\\n\\n:root {\\n --mermaid-font-family: '\\\"trebuchet ms\\\", verdana, arial, \\\"Comic Sans MS\\\", \\\"Comic Sans\\\", cursive'; }\\n\\n.error-icon {\\n fill: #552222; }\\n\\n.error-text {\\n fill: #552222;\\n stroke: #552222; }\\n\", \"\"]);\n\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/* Flowchart variables */\\n/* Sequence Diagram variables */\\n/* Gantt chart variables */\\n/* state colors */\\n.label {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n color: #333; }\\n\\n.label text {\\n fill: #333; }\\n\\n.node rect,\\n.node circle,\\n.node ellipse,\\n.node polygon,\\n.node path {\\n fill: #cde498;\\n stroke: #13540c;\\n stroke-width: 1px; }\\n\\n.node .label {\\n text-align: center; }\\n\\n.node.clickable {\\n cursor: pointer; }\\n\\n.arrowheadPath {\\n fill: green; }\\n\\n.edgePath .path {\\n stroke: green;\\n stroke-width: 1.5px; }\\n\\n.edgeLabel {\\n background-color: #e8e8e8;\\n text-align: center; }\\n .edgeLabel rect {\\n opacity: 0.5; }\\n\\n.cluster rect {\\n fill: #cdffb2;\\n stroke: #6eaa49;\\n stroke-width: 1px; }\\n\\n.cluster text {\\n fill: #333; }\\n\\ndiv.mermaidTooltip {\\n position: absolute;\\n text-align: center;\\n max-width: 200px;\\n padding: 2px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 12px;\\n background: #cdffb2;\\n border: 1px solid #6eaa49;\\n border-radius: 2px;\\n pointer-events: none;\\n z-index: 100; }\\n\\n.actor {\\n stroke: #13540c;\\n fill: #cde498; }\\n\\ntext.actor > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.actor-line {\\n stroke: grey; }\\n\\n.messageLine0 {\\n stroke-width: 1.5;\\n stroke-dasharray: none;\\n stroke: #333; }\\n\\n.messageLine1 {\\n stroke-width: 1.5;\\n stroke-dasharray: 2, 2;\\n stroke: #333; }\\n\\n#arrowhead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.sequenceNumber {\\n fill: white; }\\n\\n#sequencenumber {\\n fill: #333; }\\n\\n#crosshead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.messageText {\\n fill: #333;\\n stroke: #333; }\\n\\n.labelBox {\\n stroke: #326932;\\n fill: #cde498; }\\n\\n.labelText, .labelText > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.loopText, .loopText > tspan {\\n fill: black;\\n stroke: none; }\\n\\n.loopLine {\\n stroke-width: 2px;\\n stroke-dasharray: 2, 2;\\n stroke: #326932;\\n fill: #326932; }\\n\\n.note {\\n stroke: #6eaa49;\\n fill: #fff5ad; }\\n\\n.noteText {\\n fill: #cde498;\\n stroke: none; }\\n\\n.activation0 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation1 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation2 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\ng > rect[class=\\\"note\\\"] {\\n stroke: #6eaa49;\\n fill: #fff5ad; }\\n\\ng > text[class=\\\"noteText\\\"] > tspan {\\n stroke: #cde498;\\n fill: #cde498;\\n stroke-width: 1px; }\\n\\n/** Section styling */\\n.mermaid-main-font {\\n font-family: \\\"trebuchet ms\\\", verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.section {\\n stroke: none;\\n opacity: 0.2; }\\n\\n.section0 {\\n fill: #6eaa49; }\\n\\n.section2 {\\n fill: #6eaa49; }\\n\\n.section1,\\n.section3 {\\n fill: white;\\n opacity: 0.2; }\\n\\n.sectionTitle0 {\\n fill: #333; }\\n\\n.sectionTitle1 {\\n fill: #333; }\\n\\n.sectionTitle2 {\\n fill: #333; }\\n\\n.sectionTitle3 {\\n fill: #333; }\\n\\n.sectionTitle {\\n text-anchor: start;\\n font-size: 11px;\\n text-height: 14px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n/* Grid and axis */\\n.grid .tick {\\n stroke: lightgrey;\\n opacity: 0.8;\\n shape-rendering: crispEdges; }\\n .grid .tick text {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.grid path {\\n stroke-width: 0; }\\n\\n/* Today line */\\n.today {\\n fill: none;\\n stroke: red;\\n stroke-width: 2px; }\\n\\n/* Task styling */\\n/* Default task */\\n.task {\\n stroke-width: 2; }\\n\\n.taskText {\\n text-anchor: middle;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskText:not([font-size]) {\\n font-size: 11px; }\\n\\n.taskTextOutsideRight {\\n fill: black;\\n text-anchor: start;\\n font-size: 11px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskTextOutsideLeft {\\n fill: black;\\n text-anchor: end;\\n font-size: 11px; }\\n\\n/* Special case clickable */\\n.task.clickable {\\n cursor: pointer; }\\n\\n.taskText.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideLeft.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideRight.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n/* Specific task settings for the sections*/\\n.taskText0,\\n.taskText1,\\n.taskText2,\\n.taskText3 {\\n fill: white; }\\n\\n.task0,\\n.task1,\\n.task2,\\n.task3 {\\n fill: #487e3a;\\n stroke: #13540c; }\\n\\n.taskTextOutside0,\\n.taskTextOutside2 {\\n fill: black; }\\n\\n.taskTextOutside1,\\n.taskTextOutside3 {\\n fill: black; }\\n\\n/* Active task */\\n.active0,\\n.active1,\\n.active2,\\n.active3 {\\n fill: #cde498;\\n stroke: #13540c; }\\n\\n.activeText0,\\n.activeText1,\\n.activeText2,\\n.activeText3 {\\n fill: black !important; }\\n\\n/* Completed task */\\n.done0,\\n.done1,\\n.done2,\\n.done3 {\\n stroke: grey;\\n fill: lightgrey;\\n stroke-width: 2; }\\n\\n.doneText0,\\n.doneText1,\\n.doneText2,\\n.doneText3 {\\n fill: black !important; }\\n\\n/* Tasks on the critical line */\\n.crit0,\\n.crit1,\\n.crit2,\\n.crit3 {\\n stroke: #ff8888;\\n fill: red;\\n stroke-width: 2; }\\n\\n.activeCrit0,\\n.activeCrit1,\\n.activeCrit2,\\n.activeCrit3 {\\n stroke: #ff8888;\\n fill: #cde498;\\n stroke-width: 2; }\\n\\n.doneCrit0,\\n.doneCrit1,\\n.doneCrit2,\\n.doneCrit3 {\\n stroke: #ff8888;\\n fill: lightgrey;\\n stroke-width: 2;\\n cursor: pointer;\\n shape-rendering: crispEdges; }\\n\\n.milestone {\\n transform: rotate(45deg) scale(0.8, 0.8); }\\n\\n.milestoneText {\\n font-style: italic; }\\n\\n.doneCritText0,\\n.doneCritText1,\\n.doneCritText2,\\n.doneCritText3 {\\n fill: black !important; }\\n\\n.activeCritText0,\\n.activeCritText1,\\n.activeCritText2,\\n.activeCritText3 {\\n fill: black !important; }\\n\\n.titleText {\\n text-anchor: middle;\\n font-size: 18px;\\n fill: black;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.classGroup text {\\n fill: #13540c;\\n stroke: none;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 10px; }\\n g.classGroup text .title {\\n font-weight: bolder; }\\n\\ng.clickable {\\n cursor: pointer; }\\n\\ng.classGroup rect {\\n fill: #cde498;\\n stroke: #13540c; }\\n\\ng.classGroup line {\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n.classLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #cde498;\\n opacity: 0.5; }\\n\\n.classLabel .label {\\n fill: #13540c;\\n font-size: 10px; }\\n\\n.relation {\\n stroke: #13540c;\\n stroke-width: 1;\\n fill: none; }\\n\\n.dashed-line {\\n stroke-dasharray: 3; }\\n\\n#compositionStart {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#compositionEnd {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#aggregationStart {\\n fill: #cde498;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#aggregationEnd {\\n fill: #cde498;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#dependencyStart {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#dependencyEnd {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#extensionStart {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n#extensionEnd {\\n fill: #13540c;\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n.commit-id,\\n.commit-msg,\\n.branch-label {\\n fill: lightgrey;\\n color: lightgrey;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.pieTitleText {\\n text-anchor: middle;\\n font-size: 25px;\\n fill: black;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.slice {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #13540c;\\n stroke: none;\\n font-size: 10px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #13540c;\\n stroke: none;\\n font-size: 10px; }\\n\\ng.stateGroup .state-title {\\n font-weight: bolder;\\n fill: black; }\\n\\ng.stateGroup rect {\\n fill: #cde498;\\n stroke: #13540c; }\\n\\ng.stateGroup line {\\n stroke: #13540c;\\n stroke-width: 1; }\\n\\n.transition {\\n stroke: #13540c;\\n stroke-width: 1;\\n fill: none; }\\n\\n.stateGroup .composit {\\n fill: white;\\n border-bottom: 1px; }\\n\\n.stateGroup .alt-composit {\\n fill: #e0e0e0;\\n border-bottom: 1px; }\\n\\n.state-note {\\n stroke: #6eaa49;\\n fill: #fff5ad; }\\n .state-note text {\\n fill: black;\\n stroke: none;\\n font-size: 10px; }\\n\\n.stateLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #cde498;\\n opacity: 0.5; }\\n\\n.stateLabel text {\\n fill: black;\\n font-size: 10px;\\n font-weight: bold;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.node circle.state-start {\\n fill: black;\\n stroke: black; }\\n\\n.node circle.state-end {\\n fill: black;\\n stroke: white;\\n stroke-width: 1.5; }\\n\\n#statediagram-barbEnd {\\n fill: #13540c; }\\n\\n.statediagram-cluster rect {\\n fill: #cde498;\\n stroke: #13540c;\\n stroke-width: 1px; }\\n\\n.statediagram-cluster rect.outer {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state .divider {\\n stroke: #13540c; }\\n\\n.statediagram-state .title-state {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-cluster.statediagram-cluster .inner {\\n fill: white; }\\n\\n.statediagram-cluster.statediagram-cluster-alt .inner {\\n fill: #e0e0e0; }\\n\\n.statediagram-cluster .inner {\\n rx: 0;\\n ry: 0; }\\n\\n.statediagram-state rect.basic {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state rect.divider {\\n stroke-dasharray: 10,10;\\n fill: #efefef; }\\n\\n.note-edge {\\n stroke-dasharray: 5; }\\n\\n.statediagram-note rect {\\n fill: #fff5ad;\\n stroke: #6eaa49;\\n stroke-width: 1px;\\n rx: 0;\\n ry: 0; }\\n\\n:root {\\n --mermaid-font-family: '\\\"trebuchet ms\\\", verdana, arial, \\\"Comic Sans MS\\\", \\\"Comic Sans\\\", cursive'; }\\n\\n.error-icon {\\n fill: #552222; }\\n\\n.error-text {\\n fill: #552222;\\n stroke: #552222; }\\n\", \"\"]);\n\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/* Flowchart variables */\\n/* Sequence Diagram variables */\\n/* Gantt chart variables */\\n/* state colors */\\n.label {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n color: #333; }\\n\\n.label text {\\n fill: #333; }\\n\\n.node rect,\\n.node circle,\\n.node ellipse,\\n.node polygon,\\n.node path {\\n fill: #eee;\\n stroke: #999;\\n stroke-width: 1px; }\\n\\n.node .label {\\n text-align: center; }\\n\\n.node.clickable {\\n cursor: pointer; }\\n\\n.arrowheadPath {\\n fill: #333333; }\\n\\n.edgePath .path {\\n stroke: #666;\\n stroke-width: 1.5px; }\\n\\n.edgeLabel {\\n background-color: white;\\n text-align: center; }\\n .edgeLabel rect {\\n opacity: 0.5; }\\n\\n.cluster rect {\\n fill: #eaf2fb;\\n stroke: #26a;\\n stroke-width: 1px; }\\n\\n.cluster text {\\n fill: #333; }\\n\\ndiv.mermaidTooltip {\\n position: absolute;\\n text-align: center;\\n max-width: 200px;\\n padding: 2px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 12px;\\n background: #eaf2fb;\\n border: 1px solid #26a;\\n border-radius: 2px;\\n pointer-events: none;\\n z-index: 100; }\\n\\n.actor {\\n stroke: #999;\\n fill: #eee; }\\n\\ntext.actor > tspan {\\n fill: #333;\\n stroke: none; }\\n\\n.actor-line {\\n stroke: #666; }\\n\\n.messageLine0 {\\n stroke-width: 1.5;\\n stroke-dasharray: none;\\n stroke: #333; }\\n\\n.messageLine1 {\\n stroke-width: 1.5;\\n stroke-dasharray: 2, 2;\\n stroke: #333; }\\n\\n#arrowhead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.sequenceNumber {\\n fill: white; }\\n\\n#sequencenumber {\\n fill: #333; }\\n\\n#crosshead path {\\n fill: #333;\\n stroke: #333; }\\n\\n.messageText {\\n fill: #333;\\n stroke: #333; }\\n\\n.labelBox {\\n stroke: #999;\\n fill: #eee; }\\n\\n.labelText, .labelText > tspan {\\n fill: #333;\\n stroke: none; }\\n\\n.loopText, .loopText > tspan {\\n fill: #333;\\n stroke: none; }\\n\\n.loopLine {\\n stroke-width: 2px;\\n stroke-dasharray: 2, 2;\\n stroke: #999;\\n fill: #999; }\\n\\n.note {\\n stroke: #777700;\\n fill: #ffa; }\\n\\n.noteText {\\n fill: #eee;\\n stroke: none; }\\n\\n.activation0 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation1 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\n.activation2 {\\n fill: #f4f4f4;\\n stroke: #666; }\\n\\ng > rect[class=\\\"note\\\"] {\\n stroke: #777700;\\n fill: #ffa; }\\n\\ng > text[class=\\\"noteText\\\"] > tspan {\\n stroke: #eee;\\n fill: #eee;\\n stroke-width: 1px; }\\n\\n/** Section styling */\\n.mermaid-main-font {\\n font-family: \\\"trebuchet ms\\\", verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.section {\\n stroke: none;\\n opacity: 0.2; }\\n\\n.section0 {\\n fill: #80b3e6; }\\n\\n.section2 {\\n fill: #80b3e6; }\\n\\n.section1,\\n.section3 {\\n fill: white;\\n opacity: 0.2; }\\n\\n.sectionTitle0 {\\n fill: #333; }\\n\\n.sectionTitle1 {\\n fill: #333; }\\n\\n.sectionTitle2 {\\n fill: #333; }\\n\\n.sectionTitle3 {\\n fill: #333; }\\n\\n.sectionTitle {\\n text-anchor: start;\\n font-size: 11px;\\n text-height: 14px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n/* Grid and axis */\\n.grid .tick {\\n stroke: #e6e6e6;\\n opacity: 0.8;\\n shape-rendering: crispEdges; }\\n .grid .tick text {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.grid path {\\n stroke-width: 0; }\\n\\n/* Today line */\\n.today {\\n fill: none;\\n stroke: #d42;\\n stroke-width: 2px; }\\n\\n/* Task styling */\\n/* Default task */\\n.task {\\n stroke-width: 2; }\\n\\n.taskText {\\n text-anchor: middle;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskText:not([font-size]) {\\n font-size: 11px; }\\n\\n.taskTextOutsideRight {\\n fill: #333;\\n text-anchor: start;\\n font-size: 11px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.taskTextOutsideLeft {\\n fill: #333;\\n text-anchor: end;\\n font-size: 11px; }\\n\\n/* Special case clickable */\\n.task.clickable {\\n cursor: pointer; }\\n\\n.taskText.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideLeft.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n.taskTextOutsideRight.clickable {\\n cursor: pointer;\\n fill: #003163 !important;\\n font-weight: bold; }\\n\\n/* Specific task settings for the sections*/\\n.taskText0,\\n.taskText1,\\n.taskText2,\\n.taskText3 {\\n fill: white; }\\n\\n.task0,\\n.task1,\\n.task2,\\n.task3 {\\n fill: #26a;\\n stroke: #1a4d80; }\\n\\n.taskTextOutside0,\\n.taskTextOutside2 {\\n fill: #333; }\\n\\n.taskTextOutside1,\\n.taskTextOutside3 {\\n fill: #333; }\\n\\n/* Active task */\\n.active0,\\n.active1,\\n.active2,\\n.active3 {\\n fill: #eee;\\n stroke: #1a4d80; }\\n\\n.activeText0,\\n.activeText1,\\n.activeText2,\\n.activeText3 {\\n fill: #333 !important; }\\n\\n/* Completed task */\\n.done0,\\n.done1,\\n.done2,\\n.done3 {\\n stroke: #666;\\n fill: #bbb;\\n stroke-width: 2; }\\n\\n.doneText0,\\n.doneText1,\\n.doneText2,\\n.doneText3 {\\n fill: #333 !important; }\\n\\n/* Tasks on the critical line */\\n.crit0,\\n.crit1,\\n.crit2,\\n.crit3 {\\n stroke: #b1361b;\\n fill: #d42;\\n stroke-width: 2; }\\n\\n.activeCrit0,\\n.activeCrit1,\\n.activeCrit2,\\n.activeCrit3 {\\n stroke: #b1361b;\\n fill: #eee;\\n stroke-width: 2; }\\n\\n.doneCrit0,\\n.doneCrit1,\\n.doneCrit2,\\n.doneCrit3 {\\n stroke: #b1361b;\\n fill: #bbb;\\n stroke-width: 2;\\n cursor: pointer;\\n shape-rendering: crispEdges; }\\n\\n.milestone {\\n transform: rotate(45deg) scale(0.8, 0.8); }\\n\\n.milestoneText {\\n font-style: italic; }\\n\\n.doneCritText0,\\n.doneCritText1,\\n.doneCritText2,\\n.doneCritText3 {\\n fill: #333 !important; }\\n\\n.activeCritText0,\\n.activeCritText1,\\n.activeCritText2,\\n.activeCritText3 {\\n fill: #333 !important; }\\n\\n.titleText {\\n text-anchor: middle;\\n font-size: 18px;\\n fill: #333;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.classGroup text {\\n fill: #999;\\n stroke: none;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family);\\n font-size: 10px; }\\n g.classGroup text .title {\\n font-weight: bolder; }\\n\\ng.clickable {\\n cursor: pointer; }\\n\\ng.classGroup rect {\\n fill: #eee;\\n stroke: #999; }\\n\\ng.classGroup line {\\n stroke: #999;\\n stroke-width: 1; }\\n\\n.classLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #eee;\\n opacity: 0.5; }\\n\\n.classLabel .label {\\n fill: #999;\\n font-size: 10px; }\\n\\n.relation {\\n stroke: #999;\\n stroke-width: 1;\\n fill: none; }\\n\\n.dashed-line {\\n stroke-dasharray: 3; }\\n\\n#compositionStart {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#compositionEnd {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#aggregationStart {\\n fill: #eee;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#aggregationEnd {\\n fill: #eee;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#dependencyStart {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#dependencyEnd {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#extensionStart {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n#extensionEnd {\\n fill: #999;\\n stroke: #999;\\n stroke-width: 1; }\\n\\n.commit-id,\\n.commit-msg,\\n.branch-label {\\n fill: lightgrey;\\n color: lightgrey;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.pieTitleText {\\n text-anchor: middle;\\n font-size: 25px;\\n fill: #333;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.slice {\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #999;\\n stroke: none;\\n font-size: 10px;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\ng.stateGroup text {\\n fill: #999;\\n stroke: none;\\n font-size: 10px; }\\n\\ng.stateGroup .state-title {\\n font-weight: bolder;\\n fill: black; }\\n\\ng.stateGroup rect {\\n fill: #eee;\\n stroke: #999; }\\n\\ng.stateGroup line {\\n stroke: #999;\\n stroke-width: 1; }\\n\\n.transition {\\n stroke: #999;\\n stroke-width: 1;\\n fill: none; }\\n\\n.stateGroup .composit {\\n fill: white;\\n border-bottom: 1px; }\\n\\n.stateGroup .alt-composit {\\n fill: #e0e0e0;\\n border-bottom: 1px; }\\n\\n.state-note {\\n stroke: #777700;\\n fill: #ffa; }\\n .state-note text {\\n fill: black;\\n stroke: none;\\n font-size: 10px; }\\n\\n.stateLabel .box {\\n stroke: none;\\n stroke-width: 0;\\n fill: #eee;\\n opacity: 0.5; }\\n\\n.stateLabel text {\\n fill: black;\\n font-size: 10px;\\n font-weight: bold;\\n font-family: 'trebuchet ms', verdana, arial;\\n font-family: var(--mermaid-font-family); }\\n\\n.node circle.state-start {\\n fill: black;\\n stroke: black; }\\n\\n.node circle.state-end {\\n fill: black;\\n stroke: white;\\n stroke-width: 1.5; }\\n\\n#statediagram-barbEnd {\\n fill: #999; }\\n\\n.statediagram-cluster rect {\\n fill: #eee;\\n stroke: #999;\\n stroke-width: 1px; }\\n\\n.statediagram-cluster rect.outer {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state .divider {\\n stroke: #999; }\\n\\n.statediagram-state .title-state {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-cluster.statediagram-cluster .inner {\\n fill: white; }\\n\\n.statediagram-cluster.statediagram-cluster-alt .inner {\\n fill: #e0e0e0; }\\n\\n.statediagram-cluster .inner {\\n rx: 0;\\n ry: 0; }\\n\\n.statediagram-state rect.basic {\\n rx: 5px;\\n ry: 5px; }\\n\\n.statediagram-state rect.divider {\\n stroke-dasharray: 10,10;\\n fill: #efefef; }\\n\\n.note-edge {\\n stroke-dasharray: 5; }\\n\\n.statediagram-note rect {\\n fill: #ffa;\\n stroke: #777700;\\n stroke-width: 1px;\\n rx: 0;\\n ry: 0; }\\n\\n:root {\\n --mermaid-font-family: '\\\"trebuchet ms\\\", verdana, arial, \\\"Comic Sans MS\\\", \\\"Comic Sans\\\", cursive'; }\\n\\n.error-icon {\\n fill: #552222; }\\n\\n.error-text {\\n fill: #552222;\\n stroke: #552222; }\\n\", \"\"]);\n\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return '@media ' + item[2] + '{' + content + '}';\n } else {\n return content;\n }\n }).join('');\n }; // import a list of modules into the list\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n for (var i = 0; i < this.length; i++) {\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n\n for (i = 0; i < modules.length; i++) {\n var item = modules[i]; // skip already imported module\n // this implementation is not 100% perfect for weird media query combinations\n // when a module is imported multiple times with different media queries.\n // I hope this will never occur (Hey this way we have smaller bundles)\n\n if (item[0] == null || !alreadyImportedModules[item[0]]) {\n if (mediaQuery && !item[2]) {\n item[2] = mediaQuery;\n } else if (mediaQuery) {\n item[2] = '(' + item[2] + ') and (' + mediaQuery + ')';\n }\n\n list.push(item);\n }\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || '';\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */';\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n return '/*# ' + data + ' */';\n}","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {pair} from \"./pairs\";\n\nexport default function(values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","import variance from \"./variance\";\n\nexport default function(array, f) {\n var v = variance(array, f);\n return v ? Math.sqrt(v) : v;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n return [min, max];\n}\n","import {slice} from \"./array\";\nimport bisect from \"./bisect\";\nimport constant from \"./constant\";\nimport extent from \"./extent\";\nimport identity from \"./identity\";\nimport range from \"./range\";\nimport {tickStep} from \"./ticks\";\nimport sturges from \"./threshold/sturges\";\n\nexport default function() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n tz = tickStep(x0, x1, tz);\n tz = range(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisect(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n}\n","export default function(x) {\n return x;\n}\n","export {default as bisect, bisectRight, bisectLeft} from \"./bisect\";\nexport {default as ascending} from \"./ascending\";\nexport {default as bisector} from \"./bisector\";\nexport {default as cross} from \"./cross\";\nexport {default as descending} from \"./descending\";\nexport {default as deviation} from \"./deviation\";\nexport {default as extent} from \"./extent\";\nexport {default as histogram} from \"./histogram\";\nexport {default as thresholdFreedmanDiaconis} from \"./threshold/freedmanDiaconis\";\nexport {default as thresholdScott} from \"./threshold/scott\";\nexport {default as thresholdSturges} from \"./threshold/sturges\";\nexport {default as max} from \"./max\";\nexport {default as mean} from \"./mean\";\nexport {default as median} from \"./median\";\nexport {default as merge} from \"./merge\";\nexport {default as min} from \"./min\";\nexport {default as pairs} from \"./pairs\";\nexport {default as permute} from \"./permute\";\nexport {default as quantile} from \"./quantile\";\nexport {default as range} from \"./range\";\nexport {default as scan} from \"./scan\";\nexport {default as shuffle} from \"./shuffle\";\nexport {default as sum} from \"./sum\";\nexport {default as ticks, tickIncrement, tickStep} from \"./ticks\";\nexport {default as transpose} from \"./transpose\";\nexport {default as variance} from \"./variance\";\nexport {default as zip} from \"./zip\";\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n return max;\n}\n","import number from \"./number\";\n\nexport default function(values, valueof) {\n var n = values.length,\n m = n,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) sum += value;\n else --m;\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;\n else --m;\n }\n }\n\n if (m) return sum / m;\n}\n","import ascending from \"./ascending\";\nimport number from \"./number\";\nimport quantile from \"./quantile\";\n\nexport default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n numbers = [];\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n numbers.push(value);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n numbers.push(value);\n }\n }\n }\n\n return quantile(numbers.sort(ascending), 0.5);\n}\n","export default function(arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n return min;\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n","export default function(array, f) {\n if (f == null) f = pair;\n var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = f(p, p = array[++i]);\n return pairs;\n}\n\nexport function pair(a, b) {\n return [a, b];\n}\n","export default function(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n}\n","import number from \"./number\";\n\nexport default function(values, p, valueof) {\n if (valueof == null) valueof = number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","import ascending from \"./ascending\";\n\nexport default function(values, compare) {\n if (!(n = values.length)) return;\n var n,\n i = 0,\n j = 0,\n xi,\n xj = values[j];\n\n if (compare == null) compare = ascending;\n\n while (++i < n) {\n if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {\n xj = xi, j = i;\n }\n }\n\n if (compare(xj, xj) === 0) return j;\n}\n","export default function(array, i0, i1) {\n var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n\n return array;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n }\n }\n\n else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum += value;\n }\n }\n\n return sum;\n}\n","import {map} from \"../array\";\nimport ascending from \"../ascending\";\nimport number from \"../number\";\nimport quantile from \"../quantile\";\n\nexport default function(values, min, max) {\n values = map.call(values, number).sort(ascending);\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n}\n","import deviation from \"../deviation\";\n\nexport default function(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));\n}\n","export default function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","import min from \"./min\";\n\nexport default function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n}\n\nfunction length(d) {\n return d.length;\n}\n","import number from \"./number\";\n\nexport default function(values, valueof) {\n var n = values.length,\n m = 0,\n i = -1,\n mean = 0,\n value,\n delta,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n if (m > 1) return sum / (m - 1);\n}\n","import transpose from \"./transpose\";\n\nexport default function() {\n return transpose(arguments);\n}\n","export var slice = Array.prototype.slice;\n","import {slice} from \"./array\";\nimport identity from \"./identity\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + (x + 0.5) + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + (y + 0.5) + \")\";\n}\n\nfunction number(scale) {\n return function(d) {\n return +scale(d);\n };\n}\n\nfunction center(scale) {\n var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.\n if (scale.round()) offset = Math.round(offset);\n return function(d) {\n return +scale(d) + offset;\n };\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + 0.5,\n range1 = +range[range.length - 1] + 0.5,\n position = (scale.bandwidth ? center : number)(scale.copy()),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform(p && isFinite(p = p(d)) ? p : position(d)); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient == right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H0.5V\" + range1 + \"H\" + k * tickSizeOuter : \"M0.5,\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V0.5H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",0.5H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d)); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = slice.call(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : slice.call(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : slice.call(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","export default function(x) {\n return x;\n}\n","export {\n axisTop,\n axisRight,\n axisBottom,\n axisLeft\n} from \"./axis\";\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {customEvent, event, touch, mouse, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nfunction toucher(identifier) {\n return function(target) {\n return touch(target, event.touches, identifier);\n };\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection) {\n if (group.selection) {\n group\n .on(\"start.brush\", function() { emitter(this, arguments).beforestart().start(); })\n .on(\"interrupt.brush end.brush\", function() { emitter(this, arguments).end(); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n brush.clear = function(group) {\n brush.move(group, null);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n return (!clean && that.__brush.emitter) || new Emitter(that, args);\n }\n\n function Emitter(that, args) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function() {\n if (this.starting) this.starting = false, this.emit(\"start\");\n else this.emit(\"brush\");\n return this;\n },\n brush: function() {\n this.emit(\"brush\");\n return this;\n },\n end: function() {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\");\n return this;\n },\n emit: function(type) {\n customEvent(new BrushEvent(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function started() {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n pointer = event.touches ? toucher(event.changedTouches[0].identifier) : mouse,\n point0 = pointer(that),\n point = point0,\n emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n state.selection = selection = [\n [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]],\n [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]\n ];\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n nopropagation();\n interrupt(that);\n redraw.call(that);\n emit.start();\n\n function moved() {\n var point1 = pointer(that);\n if (shifting && !lockX && !lockY) {\n if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;\n else lockX = true;\n }\n point = point1;\n moving = true;\n noevent();\n move();\n }\n\n function move() {\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));\n if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush();\n }\n }\n\n function ended() {\n nopropagation();\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end();\n }\n\n function keydowned() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n\n function keyupped() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n }\n\n function touchmoved() {\n emitter(this, arguments).moved();\n }\n\n function touchended() {\n emitter(this, arguments).ended();\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(target, type, selection) {\n this.target = target;\n this.type = type;\n this.selection = selection;\n}\n","export {\n default as brush,\n brushX,\n brushY,\n brushSelection\n} from \"./brush.js\";\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","export var slice = Array.prototype.slice;\n","import {range} from \"d3-array\";\nimport {max, tau} from \"./math\";\n\nfunction compareValue(compare) {\n return function(a, b) {\n return compare(\n a.source.value + a.target.value,\n b.source.value + b.target.value\n );\n };\n}\n\nexport default function() {\n var padAngle = 0,\n sortGroups = null,\n sortSubgroups = null,\n sortChords = null;\n\n function chord(matrix) {\n var n = matrix.length,\n groupSums = [],\n groupIndex = range(n),\n subgroupIndex = [],\n chords = [],\n groups = chords.groups = new Array(n),\n subgroups = new Array(n * n),\n k,\n x,\n x0,\n dx,\n i,\n j;\n\n // Compute the sum.\n k = 0, i = -1; while (++i < n) {\n x = 0, j = -1; while (++j < n) {\n x += matrix[i][j];\n }\n groupSums.push(x);\n subgroupIndex.push(range(n));\n k += x;\n }\n\n // Sort groups…\n if (sortGroups) groupIndex.sort(function(a, b) {\n return sortGroups(groupSums[a], groupSums[b]);\n });\n\n // Sort subgroups…\n if (sortSubgroups) subgroupIndex.forEach(function(d, i) {\n d.sort(function(a, b) {\n return sortSubgroups(matrix[i][a], matrix[i][b]);\n });\n });\n\n // Convert the sum to scaling factor for [0, 2pi].\n // TODO Allow start and end angle to be specified?\n // TODO Allow padding to be specified as percentage?\n k = max(0, tau - padAngle * n) / k;\n dx = k ? padAngle : tau / n;\n\n // Compute the start and end angle for each group and subgroup.\n // Note: Opera has a bug reordering object literal properties!\n x = 0, i = -1; while (++i < n) {\n x0 = x, j = -1; while (++j < n) {\n var di = groupIndex[i],\n dj = subgroupIndex[di][j],\n v = matrix[di][dj],\n a0 = x,\n a1 = x += v * k;\n subgroups[dj * n + di] = {\n index: di,\n subindex: dj,\n startAngle: a0,\n endAngle: a1,\n value: v\n };\n }\n groups[di] = {\n index: di,\n startAngle: x0,\n endAngle: x,\n value: groupSums[di]\n };\n x += dx;\n }\n\n // Generate chords for each (non-empty) subgroup-subgroup link.\n i = -1; while (++i < n) {\n j = i - 1; while (++j < n) {\n var source = subgroups[j * n + i],\n target = subgroups[i * n + j];\n if (source.value || target.value) {\n chords.push(source.value < target.value\n ? {source: target, target: source}\n : {source: source, target: target});\n }\n }\n }\n\n return sortChords ? chords.sort(sortChords) : chords;\n }\n\n chord.padAngle = function(_) {\n return arguments.length ? (padAngle = max(0, _), chord) : padAngle;\n };\n\n chord.sortGroups = function(_) {\n return arguments.length ? (sortGroups = _, chord) : sortGroups;\n };\n\n chord.sortSubgroups = function(_) {\n return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;\n };\n\n chord.sortChords = function(_) {\n return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;\n };\n\n return chord;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export {default as chord} from \"./chord\";\nexport {default as ribbon} from \"./ribbon\";\n","export var cos = Math.cos;\nexport var sin = Math.sin;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = pi * 2;\nexport var max = Math.max;\n","import {slice} from \"./array\";\nimport constant from \"./constant\";\nimport {cos, halfPi, sin} from \"./math\";\nimport {path} from \"d3-path\";\n\nfunction defaultSource(d) {\n return d.source;\n}\n\nfunction defaultTarget(d) {\n return d.target;\n}\n\nfunction defaultRadius(d) {\n return d.radius;\n}\n\nfunction defaultStartAngle(d) {\n return d.startAngle;\n}\n\nfunction defaultEndAngle(d) {\n return d.endAngle;\n}\n\nexport default function() {\n var source = defaultSource,\n target = defaultTarget,\n radius = defaultRadius,\n startAngle = defaultStartAngle,\n endAngle = defaultEndAngle,\n context = null;\n\n function ribbon() {\n var buffer,\n argv = slice.call(arguments),\n s = source.apply(this, argv),\n t = target.apply(this, argv),\n sr = +radius.apply(this, (argv[0] = s, argv)),\n sa0 = startAngle.apply(this, argv) - halfPi,\n sa1 = endAngle.apply(this, argv) - halfPi,\n sx0 = sr * cos(sa0),\n sy0 = sr * sin(sa0),\n tr = +radius.apply(this, (argv[0] = t, argv)),\n ta0 = startAngle.apply(this, argv) - halfPi,\n ta1 = endAngle.apply(this, argv) - halfPi;\n\n if (!context) context = buffer = path();\n\n context.moveTo(sx0, sy0);\n context.arc(0, 0, sr, sa0, sa1);\n if (sa0 !== ta0 || sa1 !== ta1) { // TODO sr !== tr?\n context.quadraticCurveTo(0, 0, tr * cos(ta0), tr * sin(ta0));\n context.arc(0, 0, tr, ta0, ta1);\n }\n context.quadraticCurveTo(0, 0, sx0, sy0);\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n ribbon.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : radius;\n };\n\n ribbon.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : startAngle;\n };\n\n ribbon.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : endAngle;\n };\n\n ribbon.source = function(_) {\n return arguments.length ? (source = _, ribbon) : source;\n };\n\n ribbon.target = function(_) {\n return arguments.length ? (target = _, ribbon) : target;\n };\n\n ribbon.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;\n };\n\n return ribbon;\n}\n","export default function(map) {\n var entries = [];\n for (var key in map) entries.push({key: key, value: map[key]});\n return entries;\n}\n","export {default as nest} from \"./nest\";\nexport {default as set} from \"./set\";\nexport {default as map} from \"./map\";\nexport {default as keys} from \"./keys\";\nexport {default as values} from \"./values\";\nexport {default as entries} from \"./entries\";\n","export default function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n}\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import map from \"./map\";\n\nexport default function() {\n var keys = [],\n sortKeys = [],\n sortValues,\n rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) {\n if (sortValues != null) array.sort(sortValues);\n return rollup != null ? rollup(array) : array;\n }\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = map(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function(values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n\n return result;\n }\n\n function entries(map, depth) {\n if (++depth > keys.length) return map;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map.entries();\n else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\n };\n}\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return map();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","export default function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? new Rgb(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? new Rgb((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","export {default as color, rgb, hsl} from \"./color.js\";\nexport {default as lab, hcl, lch, gray} from \"./lab.js\";\nexport {default as cubehelix} from \"./cubehelix.js\";\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return hcl2lab(this).rgb();\n }\n}));\n","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","export default function(ring) {\n var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];\n while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n return area;\n}\n","var array = Array.prototype;\n\nexport var slice = array.slice;\n","export default function(a, b) {\n return a - b;\n}\n","// TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\nexport function blurX(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n for (var j = 0; j < m; ++j) {\n for (var i = 0, sr = 0; i < n + r; ++i) {\n if (i < n) {\n sr += source.data[i + j * n];\n }\n if (i >= r) {\n if (i >= w) {\n sr -= source.data[i - w + j * n];\n }\n target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w);\n }\n }\n }\n}\n\n// TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\nexport function blurY(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n for (var i = 0; i < n; ++i) {\n for (var j = 0, sr = 0; j < m + r; ++j) {\n if (j < m) {\n sr += source.data[i + j * n];\n }\n if (j >= r) {\n if (j >= w) {\n sr -= source.data[i + (j - w) * n];\n }\n target.data[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w);\n }\n }\n }\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(ring, hole) {\n var i = -1, n = hole.length, c;\n while (++i < n) if (c = ringContains(ring, hole[i])) return c;\n return 0;\n}\n\nfunction ringContains(ring, point) {\n var x = point[0], y = point[1], contains = -1;\n for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {\n var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];\n if (segmentContains(pi, pj, point)) return 0;\n if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains;\n }\n return contains;\n}\n\nfunction segmentContains(a, b, c) {\n var i; return collinear(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);\n}\n\nfunction collinear(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);\n}\n\nfunction within(p, q, r) {\n return p <= q && q <= r || r <= q && q <= p;\n}\n","import {extent, thresholdSturges, tickStep, range} from \"d3-array\";\nimport {slice} from \"./array\";\nimport ascending from \"./ascending\";\nimport area from \"./area\";\nimport constant from \"./constant\";\nimport contains from \"./contains\";\nimport noop from \"./noop\";\n\nvar cases = [\n [],\n [[[1.0, 1.5], [0.5, 1.0]]],\n [[[1.5, 1.0], [1.0, 1.5]]],\n [[[1.5, 1.0], [0.5, 1.0]]],\n [[[1.0, 0.5], [1.5, 1.0]]],\n [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]],\n [[[1.0, 0.5], [1.0, 1.5]]],\n [[[1.0, 0.5], [0.5, 1.0]]],\n [[[0.5, 1.0], [1.0, 0.5]]],\n [[[1.0, 1.5], [1.0, 0.5]]],\n [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]],\n [[[1.5, 1.0], [1.0, 0.5]]],\n [[[0.5, 1.0], [1.5, 1.0]]],\n [[[1.0, 1.5], [1.5, 1.0]]],\n [[[0.5, 1.0], [1.0, 1.5]]],\n []\n];\n\nexport default function() {\n var dx = 1,\n dy = 1,\n threshold = thresholdSturges,\n smooth = smoothLinear;\n\n function contours(values) {\n var tz = threshold(values);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n var domain = extent(values), start = domain[0], stop = domain[1];\n tz = tickStep(start, stop, tz);\n tz = range(Math.floor(start / tz) * tz, Math.floor(stop / tz) * tz, tz);\n } else {\n tz = tz.slice().sort(ascending);\n }\n\n return tz.map(function(value) {\n return contour(values, value);\n });\n }\n\n // Accumulate, smooth contour rings, assign holes to exterior rings.\n // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js\n function contour(values, value) {\n var polygons = [],\n holes = [];\n\n isorings(values, value, function(ring) {\n smooth(ring, values, value);\n if (area(ring) > 0) polygons.push([ring]);\n else holes.push(ring);\n });\n\n holes.forEach(function(hole) {\n for (var i = 0, n = polygons.length, polygon; i < n; ++i) {\n if (contains((polygon = polygons[i])[0], hole) !== -1) {\n polygon.push(hole);\n return;\n }\n }\n });\n\n return {\n type: \"MultiPolygon\",\n value: value,\n coordinates: polygons\n };\n }\n\n // Marching squares with isolines stitched into rings.\n // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js\n function isorings(values, value, callback) {\n var fragmentByStart = new Array,\n fragmentByEnd = new Array,\n x, y, t0, t1, t2, t3;\n\n // Special case for the first row (y = -1, t2 = t3 = 0).\n x = y = -1;\n t1 = values[0] >= value;\n cases[t1 << 1].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[x + 1] >= value;\n cases[t0 | t1 << 1].forEach(stitch);\n }\n cases[t1 << 0].forEach(stitch);\n\n // General case for the intermediate rows.\n while (++y < dy - 1) {\n x = -1;\n t1 = values[y * dx + dx] >= value;\n t2 = values[y * dx] >= value;\n cases[t1 << 1 | t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t1 | t2 << 3].forEach(stitch);\n }\n\n // Special case for the last row (y = dy - 1, t0 = t1 = 0).\n x = -1;\n t2 = values[y * dx] >= value;\n cases[t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t2 << 3].forEach(stitch);\n\n function stitch(line) {\n var start = [line[0][0] + x, line[0][1] + y],\n end = [line[1][0] + x, line[1][1] + y],\n startIndex = index(start),\n endIndex = index(end),\n f, g;\n if (f = fragmentByEnd[startIndex]) {\n if (g = fragmentByStart[endIndex]) {\n delete fragmentByEnd[f.end];\n delete fragmentByStart[g.start];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)};\n }\n } else {\n delete fragmentByEnd[f.end];\n f.ring.push(end);\n fragmentByEnd[f.end = endIndex] = f;\n }\n } else if (f = fragmentByStart[endIndex]) {\n if (g = fragmentByEnd[startIndex]) {\n delete fragmentByStart[f.start];\n delete fragmentByEnd[g.end];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)};\n }\n } else {\n delete fragmentByStart[f.start];\n f.ring.unshift(start);\n fragmentByStart[f.start = startIndex] = f;\n }\n } else {\n fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]};\n }\n }\n }\n\n function index(point) {\n return point[0] * 2 + point[1] * (dx + 1) * 4;\n }\n\n function smoothLinear(ring, values, value) {\n ring.forEach(function(point) {\n var x = point[0],\n y = point[1],\n xt = x | 0,\n yt = y | 0,\n v0,\n v1 = values[yt * dx + xt];\n if (x > 0 && x < dx && xt === x) {\n v0 = values[yt * dx + xt - 1];\n point[0] = x + (value - v0) / (v1 - v0) - 0.5;\n }\n if (y > 0 && y < dy && yt === y) {\n v0 = values[(yt - 1) * dx + xt];\n point[1] = y + (value - v0) / (v1 - v0) - 0.5;\n }\n });\n }\n\n contours.contour = contour;\n\n contours.size = function(_) {\n if (!arguments.length) return [dx, dy];\n var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);\n if (!(_0 > 0) || !(_1 > 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, contours;\n };\n\n contours.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), contours) : threshold;\n };\n\n contours.smooth = function(_) {\n return arguments.length ? (smooth = _ ? smoothLinear : noop, contours) : smooth === smoothLinear;\n };\n\n return contours;\n}\n","import {max, range, tickStep} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {blurX, blurY} from \"./blur\";\nimport constant from \"./constant\";\nimport contours from \"./contours\";\n\nfunction defaultX(d) {\n return d[0];\n}\n\nfunction defaultY(d) {\n return d[1];\n}\n\nfunction defaultWeight() {\n return 1;\n}\n\nexport default function() {\n var x = defaultX,\n y = defaultY,\n weight = defaultWeight,\n dx = 960,\n dy = 500,\n r = 20, // blur radius\n k = 2, // log2(grid cell size)\n o = r * 3, // grid offset, to pad for blur\n n = (dx + o * 2) >> k, // grid width\n m = (dy + o * 2) >> k, // grid height\n threshold = constant(20);\n\n function density(data) {\n var values0 = new Float32Array(n * m),\n values1 = new Float32Array(n * m);\n\n data.forEach(function(d, i, data) {\n var xi = (+x(d, i, data) + o) >> k,\n yi = (+y(d, i, data) + o) >> k,\n wi = +weight(d, i, data);\n if (xi >= 0 && xi < n && yi >= 0 && yi < m) {\n values0[xi + yi * n] += wi;\n }\n });\n\n // TODO Optimize.\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n\n var tz = threshold(values0);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n var stop = max(values0);\n tz = tickStep(0, stop, tz);\n tz = range(0, Math.floor(stop / tz) * tz, tz);\n tz.shift();\n }\n\n return contours()\n .thresholds(tz)\n .size([n, m])\n (values0)\n .map(transform);\n }\n\n function transform(geometry) {\n geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel.\n geometry.coordinates.forEach(transformPolygon);\n return geometry;\n }\n\n function transformPolygon(coordinates) {\n coordinates.forEach(transformRing);\n }\n\n function transformRing(coordinates) {\n coordinates.forEach(transformPoint);\n }\n\n // TODO Optimize.\n function transformPoint(coordinates) {\n coordinates[0] = coordinates[0] * Math.pow(2, k) - o;\n coordinates[1] = coordinates[1] * Math.pow(2, k) - o;\n }\n\n function resize() {\n o = r * 3;\n n = (dx + o * 2) >> k;\n m = (dy + o * 2) >> k;\n return density;\n }\n\n density.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), density) : x;\n };\n\n density.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), density) : y;\n };\n\n density.weight = function(_) {\n return arguments.length ? (weight = typeof _ === \"function\" ? _ : constant(+_), density) : weight;\n };\n\n density.size = function(_) {\n if (!arguments.length) return [dx, dy];\n var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);\n if (!(_0 >= 0) && !(_0 >= 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, resize();\n };\n\n density.cellSize = function(_) {\n if (!arguments.length) return 1 << k;\n if (!((_ = +_) >= 1)) throw new Error(\"invalid cell size\");\n return k = Math.floor(Math.log(_) / Math.LN2), resize();\n };\n\n density.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), density) : threshold;\n };\n\n density.bandwidth = function(_) {\n if (!arguments.length) return Math.sqrt(r * (r + 1));\n if (!((_ = +_) >= 0)) throw new Error(\"invalid bandwidth\");\n return r = Math.round((Math.sqrt(4 * _ * _ + 1) - 1) / 2), resize();\n };\n\n return density;\n}\n","export {default as contours} from \"./contours\";\nexport {default as contourDensity} from \"./density\";\n","export default function() {}\n","var noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export {default as dispatch} from \"./dispatch.js\";\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var gesture = beforestart(\"mouse\", container.apply(this, arguments), mouse, this, arguments);\n if (!gesture) return;\n select(event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n nodrag(event.view);\n nopropagation();\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\");\n }\n\n function mousemoved() {\n noevent();\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\");\n }\n\n function mouseupped() {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent();\n gestures.mouse(\"end\");\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.changedTouches,\n c = container.apply(this, arguments),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {\n nopropagation();\n gesture(\"start\");\n }\n }\n }\n\n function touchmoved() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent();\n gesture(\"drag\");\n }\n }\n }\n\n function touchended() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation();\n gesture(\"end\");\n }\n }\n }\n\n function beforestart(id, container, point, that, args) {\n var p = point(container, id), s, dx, dy,\n sublisteners = listeners.copy();\n\n if (!customEvent(new DragEvent(drag, \"beforestart\", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {\n if ((event.subject = s = subject.apply(that, args)) == null) return false;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return true;\n })) return;\n\n return function gesture(type) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[id] = gesture, n = active++; break;\n case \"end\": delete gestures[id], --active; // nobreak\n case \"drag\": p = point(container, id), n = active; break;\n }\n customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","export default function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {\n this.target = target;\n this.type = type;\n this.subject = subject;\n this.identifier = id;\n this.active = active;\n this.x = x;\n this.y = y;\n this.dx = dx;\n this.dy = dy;\n this._ = dispatch;\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","export {default as drag} from \"./drag.js\";\nexport {default as dragDisable, yesdrag as dragEnable} from \"./nodrag.js\";\n","import {select} from \"d3-selection\";\nimport noevent from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","export default function autoType(object) {\n for (var key in object) {\n var value = object[key].trim(), number, m;\n if (!value) value = null;\n else if (value === \"true\") value = true;\n else if (value === \"false\") value = false;\n else if (value === \"NaN\") value = NaN;\n else if (!isNaN(number = +value)) value = number;\n else if (m = value.match(/^([-+]\\d{2})?\\d{4}(-\\d{2}(-\\d{2})?)?(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{3})?)?(Z|[-+]\\d{2}:\\d{2})?)?$/)) {\n if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, \"/\").replace(/T/, \" \");\n value = new Date(value);\n }\n else continue;\n object[key] = value;\n }\n return object;\n}\n\n// https://github.com/d3/d3-dsv/issues/45\nvar fixtz = new Date(\"2019-01-01T00:00\").getHours() || new Date(\"2019-07-01T00:00\").getHours();","import dsv from \"./dsv.js\";\n\nvar csv = dsv(\",\");\n\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatBody = csv.formatBody;\nexport var csvFormatRows = csv.formatRows;\nexport var csvFormatRow = csv.formatRow;\nexport var csvFormatValue = csv.formatValue;\n","var EOL = {},\n EOF = {},\n QUOTE = 34,\n NEWLINE = 10,\n RETURN = 13;\n\nfunction objectConverter(columns) {\n return new Function(\"d\", \"return {\" + columns.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"] || \\\"\\\"\";\n }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function(row, i) {\n return f(object(row), i, columns);\n };\n}\n\n// Compute unique columns in order of discovery.\nfunction inferColumns(rows) {\n var columnSet = Object.create(null),\n columns = [];\n\n rows.forEach(function(row) {\n for (var column in row) {\n if (!(column in columnSet)) {\n columns.push(columnSet[column] = column);\n }\n }\n });\n\n return columns;\n}\n\nfunction pad(value, width) {\n var s = value + \"\", length = s.length;\n return length < width ? new Array(width - length + 1).join(0) + s : s;\n}\n\nfunction formatYear(year) {\n return year < 0 ? \"-\" + pad(-year, 6)\n : year > 9999 ? \"+\" + pad(year, 6)\n : pad(year, 4);\n}\n\nfunction formatDate(date) {\n var hours = date.getUTCHours(),\n minutes = date.getUTCMinutes(),\n seconds = date.getUTCSeconds(),\n milliseconds = date.getUTCMilliseconds();\n return isNaN(date) ? \"Invalid Date\"\n : formatYear(date.getUTCFullYear(), 4) + \"-\" + pad(date.getUTCMonth() + 1, 2) + \"-\" + pad(date.getUTCDate(), 2)\n + (milliseconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \".\" + pad(milliseconds, 3) + \"Z\"\n : seconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \"Z\"\n : minutes || hours ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \"Z\"\n : \"\");\n}\n\nexport default function(delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert, columns, rows = parseRows(text, function(row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // current line number\n t, // current token\n eof = N <= 0, // current token followed by EOF?\n eol = false; // current token followed by EOL?\n\n // Strip the trailing newline.\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return eol = false, EOL;\n\n // Unescape quotes.\n var i, j = I, c;\n if (text.charCodeAt(j) === QUOTE) {\n while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);\n if ((i = I) >= N) eof = true;\n else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n }\n\n // Find next delimiter or newline.\n while (I < N) {\n if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n }\n\n // Return last token before EOF.\n return eof = true, text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n while (t !== EOL && t !== EOF) row.push(t), t = token();\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n function preformatBody(rows, columns) {\n return rows.map(function(row) {\n return columns.map(function(column) {\n return formatValue(row[column]);\n }).join(delimiter);\n });\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join(\"\\n\");\n }\n\n function formatBody(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return preformatBody(rows, columns).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(value) {\n return value == null ? \"\"\n : value instanceof Date ? formatDate(value)\n : reFormat.test(value += \"\") ? \"\\\"\" + value.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\"\n : value;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatBody: formatBody,\n formatRows: formatRows,\n formatRow: formatRow,\n formatValue: formatValue\n };\n}\n","export {default as dsvFormat} from \"./dsv.js\";\nexport {csvParse, csvParseRows, csvFormat, csvFormatBody, csvFormatRows, csvFormatRow, csvFormatValue} from \"./csv.js\";\nexport {tsvParse, tsvParseRows, tsvFormat, tsvFormatBody, tsvFormatRows, tsvFormatRow, tsvFormatValue} from \"./tsv.js\";\nexport {default as autoType} from \"./autoType.js\";\n","import dsv from \"./dsv.js\";\n\nvar tsv = dsv(\"\\t\");\n\nexport var tsvParse = tsv.parse;\nexport var tsvParseRows = tsv.parseRows;\nexport var tsvFormat = tsv.format;\nexport var tsvFormatBody = tsv.formatBody;\nexport var tsvFormatRows = tsv.formatRows;\nexport var tsvFormatRow = tsv.formatRow;\nexport var tsvFormatValue = tsv.formatValue;\n","var overshoot = 1.70158;\n\nexport var backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return t * t * ((s + 1) * t - s);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nexport var backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((s + 1) * t + s) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nexport var backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n","var b1 = 4 / 11,\n b2 = 6 / 11,\n b3 = 8 / 11,\n b4 = 3 / 4,\n b5 = 9 / 11,\n b6 = 10 / 11,\n b7 = 15 / 16,\n b8 = 21 / 22,\n b9 = 63 / 64,\n b0 = 1 / b1 / b1;\n\nexport function bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nexport function bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nexport function bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n","export function circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nexport function circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nexport function circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","var tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)\n : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n","export function expIn(t) {\n return Math.pow(2, 10 * t - 10);\n}\n\nexport function expOut(t) {\n return 1 - Math.pow(2, -10 * t);\n}\n\nexport function expInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2;\n}\n","export {\n linear as easeLinear\n} from \"./linear.js\";\n\nexport {\n quadInOut as easeQuad,\n quadIn as easeQuadIn,\n quadOut as easeQuadOut,\n quadInOut as easeQuadInOut\n} from \"./quad.js\";\n\nexport {\n cubicInOut as easeCubic,\n cubicIn as easeCubicIn,\n cubicOut as easeCubicOut,\n cubicInOut as easeCubicInOut\n} from \"./cubic.js\";\n\nexport {\n polyInOut as easePoly,\n polyIn as easePolyIn,\n polyOut as easePolyOut,\n polyInOut as easePolyInOut\n} from \"./poly.js\";\n\nexport {\n sinInOut as easeSin,\n sinIn as easeSinIn,\n sinOut as easeSinOut,\n sinInOut as easeSinInOut\n} from \"./sin.js\";\n\nexport {\n expInOut as easeExp,\n expIn as easeExpIn,\n expOut as easeExpOut,\n expInOut as easeExpInOut\n} from \"./exp.js\";\n\nexport {\n circleInOut as easeCircle,\n circleIn as easeCircleIn,\n circleOut as easeCircleOut,\n circleInOut as easeCircleInOut\n} from \"./circle.js\";\n\nexport {\n bounceOut as easeBounce,\n bounceIn as easeBounceIn,\n bounceOut as easeBounceOut,\n bounceInOut as easeBounceInOut\n} from \"./bounce.js\";\n\nexport {\n backInOut as easeBack,\n backIn as easeBackIn,\n backOut as easeBackOut,\n backInOut as easeBackInOut\n} from \"./back.js\";\n\nexport {\n elasticOut as easeElastic,\n elasticIn as easeElasticIn,\n elasticOut as easeElasticOut,\n elasticInOut as easeElasticInOut\n} from \"./elastic.js\";\n","export function linear(t) {\n return +t;\n}\n","var exponent = 3;\n\nexport var polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nexport var polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nexport var polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n","export function quadIn(t) {\n return t * t;\n}\n\nexport function quadOut(t) {\n return t * (2 - t);\n}\n\nexport function quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\n","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n","function responseBlob(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.blob();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseBlob);\n}\n","function responseArrayBuffer(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.arrayBuffer();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseArrayBuffer);\n}\n","import {csvParse, dsvFormat, tsvParse} from \"d3-dsv\";\nimport text from \"./text\";\n\nfunction dsvParse(parse) {\n return function(input, init, row) {\n if (arguments.length === 2 && typeof init === \"function\") row = init, init = undefined;\n return text(input, init).then(function(response) {\n return parse(response, row);\n });\n };\n}\n\nexport default function dsv(delimiter, input, init, row) {\n if (arguments.length === 3 && typeof init === \"function\") row = init, init = undefined;\n var format = dsvFormat(delimiter);\n return text(input, init).then(function(response) {\n return format.parse(response, row);\n });\n}\n\nexport var csv = dsvParse(csvParse);\nexport var tsv = dsvParse(tsvParse);\n","export default function(input, init) {\n return new Promise(function(resolve, reject) {\n var image = new Image;\n for (var key in init) image[key] = init[key];\n image.onerror = reject;\n image.onload = function() { resolve(image); };\n image.src = input;\n });\n}\n","export {default as blob} from \"./blob\";\nexport {default as buffer} from \"./buffer\";\nexport {default as dsv, csv, tsv} from \"./dsv\";\nexport {default as image} from \"./image\";\nexport {default as json} from \"./json\";\nexport {default as text} from \"./text\";\nexport {default as xml, html, svg} from \"./xml\";\n","function responseJson(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.json();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseJson);\n}\n","function responseText(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.text();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseText);\n}\n","import text from \"./text\";\n\nfunction parser(type) {\n return function(input, init) {\n return text(input, init).then(function(text) {\n return (new DOMParser).parseFromString(text, type);\n });\n };\n}\n\nexport default parser(\"application/xml\");\n\nexport var html = parser(\"text/html\");\n\nexport var svg = parser(\"image/svg+xml\");\n","export default function(x, y) {\n var nodes;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {quadtree} from \"d3-quadtree\";\n\nfunction x(d) {\n return d.x + d.vx;\n}\n\nfunction y(d) {\n return d.y + d.vy;\n}\n\nexport default function(radius) {\n var nodes,\n radii,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, x, y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n return force;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export {default as forceCenter} from \"./center\";\nexport {default as forceCollide} from \"./collide\";\nexport {default as forceLink} from \"./link\";\nexport {default as forceManyBody} from \"./manyBody\";\nexport {default as forceRadial} from \"./radial\";\nexport {default as forceSimulation} from \"./simulation\";\nexport {default as forceX} from \"./x\";\nexport {default as forceY} from \"./y\";\n","export default function() {\n return (Math.random() - 0.5) * 1e-6;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {map} from \"d3-collection\";\n\nfunction index(d) {\n return d.index;\n}\n\nfunction find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"missing: \" + nodeId);\n return node;\n}\n\nexport default function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n count,\n bias,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle();\n y = target.y + target.vy - source.y - source.vy || jiggle();\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = map(nodes, id),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {quadtree} from \"d3-quadtree\";\nimport {x, y} from \"./simulation\";\n\nexport default function() {\n var nodes,\n node,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, x, y).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, weight = 0, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / weight;\n quad.y = y / weight;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n","import constant from \"./constant\";\n\nexport default function(radius, x, y) {\n var nodes,\n strength = constant(0.1),\n strengths,\n radiuses;\n\n if (typeof radius !== \"function\") radius = constant(+radius);\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force(alpha) {\n for (var i = 0, n = nodes.length; i < n; ++i) {\n var node = nodes[i],\n dx = node.x - x || 1e-6,\n dy = node.y - y || 1e-6,\n r = Math.sqrt(dx * dx + dy * dy),\n k = (radiuses[i] - r) * strengths[i] * alpha / r;\n node.vx += dx * k;\n node.vy += dy * k;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n radiuses = new Array(n);\n for (i = 0; i < n; ++i) {\n radiuses[i] = +radius(nodes[i], i, nodes);\n strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _, initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {map} from \"d3-collection\";\nimport {timer} from \"d3-timer\";\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\nexport default function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\");\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.each(function (force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","import constant from \"./constant\";\n\nexport default function(x) {\n var strength = constant(0.1),\n nodes,\n strengths,\n xz;\n\n if (typeof x !== \"function\") x = constant(x == null ? 0 : +x);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n xz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x;\n };\n\n return force;\n}\n","import constant from \"./constant\";\n\nexport default function(y) {\n var strength = constant(0.1),\n nodes,\n strengths,\n yz;\n\n if (typeof y !== \"function\") y = constant(y == null ? 0 : +y);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n yz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y;\n };\n\n return force;\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}\n","// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nexport default function(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","export {default as formatDefaultLocale, format, formatPrefix} from \"./defaultLocale.js\";\nexport {default as formatLocale} from \"./locale.js\";\nexport {default as formatSpecifier, FormatSpecifier} from \"./formatSpecifier.js\";\nexport {default as precisionFixed} from \"./precisionFixed.js\";\nexport {default as precisionPrefix} from \"./precisionPrefix.js\";\nexport {default as precisionRound} from \"./precisionRound.js\";\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Perform the initial formatting.\n var valueNegative = value < 0;\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero during formatting, treat as positive.\n if (valueNegative && +value === 0) valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","// Adds floating point numbers with twice the normal precision.\n// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and\n// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)\n// 305–363 (1997).\n// Code adapted from GeographicLib by Charles F. F. Karney,\n// http://geographiclib.sourceforge.net/\n\nexport default function() {\n return new Adder;\n}\n\nfunction Adder() {\n this.reset();\n}\n\nAdder.prototype = {\n constructor: Adder,\n reset: function() {\n this.s = // rounded value\n this.t = 0; // exact error\n },\n add: function(y) {\n add(temp, y, this.t);\n add(this, temp.s, this.s);\n if (this.s) this.t += temp.t;\n else this.s = temp.t;\n },\n valueOf: function() {\n return this.s;\n }\n};\n\nvar temp = new Adder;\n\nfunction add(adder, a, b) {\n var x = adder.s = a + b,\n bv = x - a,\n av = x - bv;\n adder.t = (a - av) + (b - bv);\n}\n","import adder from \"./adder.js\";\nimport {atan2, cos, quarterPi, radians, sin, tau} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nexport var areaRingSum = adder();\n\nvar areaSum = adder(),\n lambda00,\n phi00,\n lambda0,\n cosPhi0,\n sinPhi0;\n\nexport var areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaRingSum.reset();\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n var areaRing = +areaRingSum;\n areaSum.add(areaRing < 0 ? tau + areaRing : areaRing);\n this.lineStart = this.lineEnd = this.point = noop;\n },\n sphere: function() {\n areaSum.add(tau);\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaRingEnd() {\n areaPoint(lambda00, phi00);\n}\n\nfunction areaPointFirst(lambda, phi) {\n areaStream.point = areaPoint;\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n lambda0 = lambda, cosPhi0 = cos(phi = phi / 2 + quarterPi), sinPhi0 = sin(phi);\n}\n\nfunction areaPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n phi = phi / 2 + quarterPi; // half the angular distance from south pole\n\n // Spherical excess E for a spherical triangle with vertices: south pole,\n // previous point, current point. Uses a formula derived from Cagnoli’s\n // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).\n var dLambda = lambda - lambda0,\n sdLambda = dLambda >= 0 ? 1 : -1,\n adLambda = sdLambda * dLambda,\n cosPhi = cos(phi),\n sinPhi = sin(phi),\n k = sinPhi0 * sinPhi,\n u = cosPhi0 * cosPhi + k * cos(adLambda),\n v = k * sdLambda * sin(adLambda);\n areaRingSum.add(atan2(v, u));\n\n // Advance the previous points.\n lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;\n}\n\nexport default function(object) {\n areaSum.reset();\n stream(object, areaStream);\n return areaSum * 2;\n}\n","import adder from \"./adder.js\";\nimport {areaStream, areaRingSum} from \"./area.js\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport {abs, degrees, epsilon, radians} from \"./math.js\";\nimport stream from \"./stream.js\";\n\nvar lambda0, phi0, lambda1, phi1, // bounds\n lambda2, // previous lambda-coordinate\n lambda00, phi00, // first point\n p0, // previous 3D point\n deltaSum = adder(),\n ranges,\n range;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: boundsLineStart,\n lineEnd: boundsLineEnd,\n polygonStart: function() {\n boundsStream.point = boundsRingPoint;\n boundsStream.lineStart = boundsRingStart;\n boundsStream.lineEnd = boundsRingEnd;\n deltaSum.reset();\n areaStream.polygonStart();\n },\n polygonEnd: function() {\n areaStream.polygonEnd();\n boundsStream.point = boundsPoint;\n boundsStream.lineStart = boundsLineStart;\n boundsStream.lineEnd = boundsLineEnd;\n if (areaRingSum < 0) lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n else if (deltaSum > epsilon) phi1 = 90;\n else if (deltaSum < -epsilon) phi0 = -90;\n range[0] = lambda0, range[1] = lambda1;\n },\n sphere: function() {\n lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n }\n};\n\nfunction boundsPoint(lambda, phi) {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n}\n\nfunction linePoint(lambda, phi) {\n var p = cartesian([lambda * radians, phi * radians]);\n if (p0) {\n var normal = cartesianCross(p0, p),\n equatorial = [normal[1], -normal[0], 0],\n inflection = cartesianCross(equatorial, normal);\n cartesianNormalizeInPlace(inflection);\n inflection = spherical(inflection);\n var delta = lambda - lambda2,\n sign = delta > 0 ? 1 : -1,\n lambdai = inflection[0] * degrees * sign,\n phii,\n antimeridian = abs(delta) > 180;\n if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = inflection[1] * degrees;\n if (phii > phi1) phi1 = phii;\n } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = -inflection[1] * degrees;\n if (phii < phi0) phi0 = phii;\n } else {\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n if (antimeridian) {\n if (lambda < lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n } else {\n if (lambda1 >= lambda0) {\n if (lambda < lambda0) lambda0 = lambda;\n if (lambda > lambda1) lambda1 = lambda;\n } else {\n if (lambda > lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n }\n }\n } else {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n }\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n p0 = p, lambda2 = lambda;\n}\n\nfunction boundsLineStart() {\n boundsStream.point = linePoint;\n}\n\nfunction boundsLineEnd() {\n range[0] = lambda0, range[1] = lambda1;\n boundsStream.point = boundsPoint;\n p0 = null;\n}\n\nfunction boundsRingPoint(lambda, phi) {\n if (p0) {\n var delta = lambda - lambda2;\n deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);\n } else {\n lambda00 = lambda, phi00 = phi;\n }\n areaStream.point(lambda, phi);\n linePoint(lambda, phi);\n}\n\nfunction boundsRingStart() {\n areaStream.lineStart();\n}\n\nfunction boundsRingEnd() {\n boundsRingPoint(lambda00, phi00);\n areaStream.lineEnd();\n if (abs(deltaSum) > epsilon) lambda0 = -(lambda1 = 180);\n range[0] = lambda0, range[1] = lambda1;\n p0 = null;\n}\n\n// Finds the left-right distance between two longitudes.\n// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want\n// the distance between ±180° to be 360°.\nfunction angle(lambda0, lambda1) {\n return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;\n}\n\nfunction rangeCompare(a, b) {\n return a[0] - b[0];\n}\n\nfunction rangeContains(range, x) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n}\n\nexport default function(feature) {\n var i, n, a, b, merged, deltaMax, delta;\n\n phi1 = lambda1 = -(lambda0 = phi0 = Infinity);\n ranges = [];\n stream(feature, boundsStream);\n\n // First, sort ranges by their minimum longitudes.\n if (n = ranges.length) {\n ranges.sort(rangeCompare);\n\n // Then, merge any ranges that overlap.\n for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n b = ranges[i];\n if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n }\n\n // Finally, find the largest gap between the merged ranges.\n // The final bounding box will be the inverse of this gap.\n for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {\n b = merged[i];\n if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0 = b[0], lambda1 = a[1];\n }\n }\n\n ranges = range = null;\n\n return lambda0 === Infinity || phi0 === Infinity\n ? [[NaN, NaN], [NaN, NaN]]\n : [[lambda0, phi0], [lambda1, phi1]];\n}\n","import {asin, atan2, cos, sin, sqrt} from \"./math.js\";\n\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\n\nexport function cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\n\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}\n","import {asin, atan2, cos, degrees, epsilon, epsilon2, radians, sin, sqrt} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nvar W0, W1,\n X0, Y0, Z0,\n X1, Y1, Z1,\n X2, Y2, Z2,\n lambda00, phi00, // first point\n x0, y0, z0; // previous point\n\nvar centroidStream = {\n sphere: noop,\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n }\n};\n\n// Arithmetic mean of Cartesian vectors.\nfunction centroidPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n centroidPointCartesian(cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi));\n}\n\nfunction centroidPointCartesian(x, y, z) {\n ++W0;\n X0 += (x - X0) / W0;\n Y0 += (y - Y0) / W0;\n Z0 += (z - Z0) / W0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidLinePointFirst;\n}\n\nfunction centroidLinePointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidStream.point = centroidLinePoint;\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLinePoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n w = atan2(sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\n// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,\n// J. Applied Mechanics 42, 239 (1975).\nfunction centroidRingStart() {\n centroidStream.point = centroidRingPointFirst;\n}\n\nfunction centroidRingEnd() {\n centroidRingPoint(lambda00, phi00);\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingPointFirst(lambda, phi) {\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n centroidStream.point = centroidRingPoint;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidRingPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n cx = y0 * z - z0 * y,\n cy = z0 * x - x0 * z,\n cz = x0 * y - y0 * x,\n m = sqrt(cx * cx + cy * cy + cz * cz),\n w = asin(m), // line weight = angle\n v = m && -w / m; // area weight multiplier\n X2 += v * cx;\n Y2 += v * cy;\n Z2 += v * cz;\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nexport default function(object) {\n W0 = W1 =\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n stream(object, centroidStream);\n\n var x = X2,\n y = Y2,\n z = Z2,\n m = x * x + y * y + z * z;\n\n // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.\n if (m < epsilon2) {\n x = X1, y = Y1, z = Z1;\n // If the feature has zero length, fall back to arithmetic mean of point vectors.\n if (W1 < epsilon) x = X0, y = Y0, z = Z0;\n m = x * x + y * y + z * z;\n // If the feature still has an undefined ccentroid, then return.\n if (m < epsilon2) return [NaN, NaN];\n }\n\n return [atan2(y, x) * degrees, asin(z / sqrt(m)) * degrees];\n}\n","import {cartesian, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport {acos, cos, degrees, epsilon, radians, sin, tau} from \"./math.js\";\nimport {rotateRadians} from \"./rotation.js\";\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function() {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(6),\n ring,\n rotate,\n stream = {point: point};\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {type: \"Polygon\", coordinates: [ring]};\n ring = rotate = null;\n return c;\n }\n\n circle.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}\n","import clip from \"./index.js\";\nimport {abs, atan, cos, epsilon, halfPi, pi, sin} from \"../math.js\";\n\nexport default clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi) < epsilon) { // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n clean = 0;\n }\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\n return 2 - clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon\n ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)\n - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}\n","import noop from \"../noop.js\";\n\nexport default function() {\n var lines = [],\n line;\n return {\n point: function(x, y) {\n line.push([x, y]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n","import {cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical} from \"../cartesian.js\";\nimport {circleStream} from \"../circle.js\";\nimport {abs, cos, epsilon, pi, radians, sqrt} from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\n\nexport default function(radius) {\n var cr = cos(radius),\n delta = 6 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n }\n\n // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n clean; // no intersections\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n // Handle degeneracies.\n // TODO ignore if not clipping polygons.\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2)) {\n point1[0] += epsilon;\n point1[1] += epsilon;\n v = visible(point1[0], point1[1]);\n }\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1]);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}\n","import clipRectangle from \"./rectangle.js\";\n\nexport default function() {\n var x0 = 0,\n y0 = 0,\n x1 = 960,\n y1 = 500,\n cache,\n cacheStream,\n clip;\n\n return clip = {\n stream: function(stream) {\n return cache && cacheStream === stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = stream);\n },\n extent: function(_) {\n return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];\n }\n };\n}\n","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {epsilon, halfPi} from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport {merge} from \"d3-array\";\n\nexport default function(pointVisible, clipLine, interpolate, start) {\n return function(sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}\n","export default function(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}\n","import {abs, epsilon} from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {merge} from \"d3-array\";\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3\n : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0\n : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : b[0] - a[0];\n }\n\n return function(stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n\n // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}\n","import pointEqual from \"../pointEqual.js\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nexport default function(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n // If the first and last points of a segment are coincident, then treat as a\n // closed ring. TODO if all rings are closed, then the winding order of the\n // exterior ring should be checked.\n if (pointEqual(p0, p1)) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n\n if (!subject.length) return;\n\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\n","export default function(a, b) {\n\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n\n return compose;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {default as polygonContains} from \"./polygonContains.js\";\nimport {default as distance} from \"./distance.js\";\nimport {epsilon2, radians} from \"./math.js\";\n\nvar containsObjectType = {\n Feature: function(object, point) {\n return containsGeometry(object.geometry, point);\n },\n FeatureCollection: function(object, point) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;\n return false;\n }\n};\n\nvar containsGeometryType = {\n Sphere: function() {\n return true;\n },\n Point: function(object, point) {\n return containsPoint(object.coordinates, point);\n },\n MultiPoint: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsPoint(coordinates[i], point)) return true;\n return false;\n },\n LineString: function(object, point) {\n return containsLine(object.coordinates, point);\n },\n MultiLineString: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsLine(coordinates[i], point)) return true;\n return false;\n },\n Polygon: function(object, point) {\n return containsPolygon(object.coordinates, point);\n },\n MultiPolygon: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsPolygon(coordinates[i], point)) return true;\n return false;\n },\n GeometryCollection: function(object, point) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) if (containsGeometry(geometries[i], point)) return true;\n return false;\n }\n};\n\nfunction containsGeometry(geometry, point) {\n return geometry && containsGeometryType.hasOwnProperty(geometry.type)\n ? containsGeometryType[geometry.type](geometry, point)\n : false;\n}\n\nfunction containsPoint(coordinates, point) {\n return distance(coordinates, point) === 0;\n}\n\nfunction containsLine(coordinates, point) {\n var ao, bo, ab;\n for (var i = 0, n = coordinates.length; i < n; i++) {\n bo = distance(coordinates[i], point);\n if (bo === 0) return true;\n if (i > 0) {\n ab = distance(coordinates[i], coordinates[i - 1]);\n if (\n ab > 0 &&\n ao <= ab &&\n bo <= ab &&\n (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab\n )\n return true;\n }\n ao = bo;\n }\n return false;\n}\n\nfunction containsPolygon(coordinates, point) {\n return !!polygonContains(coordinates.map(ringRadians), pointRadians(point));\n}\n\nfunction ringRadians(ring) {\n return ring = ring.map(pointRadians), ring.pop(), ring;\n}\n\nfunction pointRadians(point) {\n return [point[0] * radians, point[1] * radians];\n}\n\nexport default function(object, point) {\n return (object && containsObjectType.hasOwnProperty(object.type)\n ? containsObjectType[object.type]\n : containsGeometry)(object, point);\n}\n","import length from \"./length.js\";\n\nvar coordinates = [null, null],\n object = {type: \"LineString\", coordinates: coordinates};\n\nexport default function(a, b) {\n coordinates[0] = a;\n coordinates[1] = b;\n return length(object);\n}\n","import {range} from \"d3-array\";\nimport {abs, ceil, epsilon} from \"./math.js\";\n\nfunction graticuleX(y0, y1, dy) {\n var y = range(y0, y1 - epsilon, dy).concat(y1);\n return function(x) { return y.map(function(y) { return [x, y]; }); };\n}\n\nfunction graticuleY(x0, x1, dx) {\n var x = range(x0, x1 - epsilon, dx).concat(x1);\n return function(y) { return x.map(function(x) { return [x, y]; }); };\n}\n\nexport default function graticule() {\n var x1, x0, X1, X0,\n y1, y0, Y1, Y0,\n dx = 10, dy = dx, DX = 90, DY = 360,\n x, y, X, Y,\n precision = 2.5;\n\n function graticule() {\n return {type: \"MultiLineString\", coordinates: lines()};\n }\n\n function lines() {\n return range(ceil(X0 / DX) * DX, X1, DX).map(X)\n .concat(range(ceil(Y0 / DY) * DY, Y1, DY).map(Y))\n .concat(range(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs(x % DX) > epsilon; }).map(x))\n .concat(range(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs(y % DY) > epsilon; }).map(y));\n }\n\n graticule.lines = function() {\n return lines().map(function(coordinates) { return {type: \"LineString\", coordinates: coordinates}; });\n };\n\n graticule.outline = function() {\n return {\n type: \"Polygon\",\n coordinates: [\n X(X0).concat(\n Y(Y1).slice(1),\n X(X1).reverse().slice(1),\n Y(Y0).reverse().slice(1))\n ]\n };\n };\n\n graticule.extent = function(_) {\n if (!arguments.length) return graticule.extentMinor();\n return graticule.extentMajor(_).extentMinor(_);\n };\n\n graticule.extentMajor = function(_) {\n if (!arguments.length) return [[X0, Y0], [X1, Y1]];\n X0 = +_[0][0], X1 = +_[1][0];\n Y0 = +_[0][1], Y1 = +_[1][1];\n if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.extentMinor = function(_) {\n if (!arguments.length) return [[x0, y0], [x1, y1]];\n x0 = +_[0][0], x1 = +_[1][0];\n y0 = +_[0][1], y1 = +_[1][1];\n if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.step = function(_) {\n if (!arguments.length) return graticule.stepMinor();\n return graticule.stepMajor(_).stepMinor(_);\n };\n\n graticule.stepMajor = function(_) {\n if (!arguments.length) return [DX, DY];\n DX = +_[0], DY = +_[1];\n return graticule;\n };\n\n graticule.stepMinor = function(_) {\n if (!arguments.length) return [dx, dy];\n dx = +_[0], dy = +_[1];\n return graticule;\n };\n\n graticule.precision = function(_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = graticuleX(y0, y1, 90);\n y = graticuleY(x0, x1, precision);\n X = graticuleX(Y0, Y1, 90);\n Y = graticuleY(X0, X1, precision);\n return graticule;\n };\n\n return graticule\n .extentMajor([[-180, -90 + epsilon], [180, 90 - epsilon]])\n .extentMinor([[-180, -80 - epsilon], [180, 80 + epsilon]]);\n}\n\nexport function graticule10() {\n return graticule()();\n}\n","export default function(x) {\n return x;\n}\n","export {default as geoArea} from \"./area.js\";\nexport {default as geoBounds} from \"./bounds.js\";\nexport {default as geoCentroid} from \"./centroid.js\";\nexport {default as geoCircle} from \"./circle.js\";\nexport {default as geoClipAntimeridian} from \"./clip/antimeridian.js\";\nexport {default as geoClipCircle} from \"./clip/circle.js\";\nexport {default as geoClipExtent} from \"./clip/extent.js\"; // DEPRECATED! Use d3.geoIdentity().clipExtent(…).\nexport {default as geoClipRectangle} from \"./clip/rectangle.js\";\nexport {default as geoContains} from \"./contains.js\";\nexport {default as geoDistance} from \"./distance.js\";\nexport {default as geoGraticule, graticule10 as geoGraticule10} from \"./graticule.js\";\nexport {default as geoInterpolate} from \"./interpolate.js\";\nexport {default as geoLength} from \"./length.js\";\nexport {default as geoPath} from \"./path/index.js\";\nexport {default as geoAlbers} from \"./projection/albers.js\";\nexport {default as geoAlbersUsa} from \"./projection/albersUsa.js\";\nexport {default as geoAzimuthalEqualArea, azimuthalEqualAreaRaw as geoAzimuthalEqualAreaRaw} from \"./projection/azimuthalEqualArea.js\";\nexport {default as geoAzimuthalEquidistant, azimuthalEquidistantRaw as geoAzimuthalEquidistantRaw} from \"./projection/azimuthalEquidistant.js\";\nexport {default as geoConicConformal, conicConformalRaw as geoConicConformalRaw} from \"./projection/conicConformal.js\";\nexport {default as geoConicEqualArea, conicEqualAreaRaw as geoConicEqualAreaRaw} from \"./projection/conicEqualArea.js\";\nexport {default as geoConicEquidistant, conicEquidistantRaw as geoConicEquidistantRaw} from \"./projection/conicEquidistant.js\";\nexport {default as geoEqualEarth, equalEarthRaw as geoEqualEarthRaw} from \"./projection/equalEarth.js\";\nexport {default as geoEquirectangular, equirectangularRaw as geoEquirectangularRaw} from \"./projection/equirectangular.js\";\nexport {default as geoGnomonic, gnomonicRaw as geoGnomonicRaw} from \"./projection/gnomonic.js\";\nexport {default as geoIdentity} from \"./projection/identity.js\";\nexport {default as geoProjection, projectionMutator as geoProjectionMutator} from \"./projection/index.js\";\nexport {default as geoMercator, mercatorRaw as geoMercatorRaw} from \"./projection/mercator.js\";\nexport {default as geoNaturalEarth1, naturalEarth1Raw as geoNaturalEarth1Raw} from \"./projection/naturalEarth1.js\";\nexport {default as geoOrthographic, orthographicRaw as geoOrthographicRaw} from \"./projection/orthographic.js\";\nexport {default as geoStereographic, stereographicRaw as geoStereographicRaw} from \"./projection/stereographic.js\";\nexport {default as geoTransverseMercator, transverseMercatorRaw as geoTransverseMercatorRaw} from \"./projection/transverseMercator.js\";\nexport {default as geoRotation} from \"./rotation.js\";\nexport {default as geoStream} from \"./stream.js\";\nexport {default as geoTransform} from \"./transform.js\";\n","import {asin, atan2, cos, degrees, haversin, radians, sin, sqrt} from \"./math.js\";\n\nexport default function(a, b) {\n var x0 = a[0] * radians,\n y0 = a[1] * radians,\n x1 = b[0] * radians,\n y1 = b[1] * radians,\n cy0 = cos(y0),\n sy0 = sin(y0),\n cy1 = cos(y1),\n sy1 = sin(y1),\n kx0 = cy0 * cos(x0),\n ky0 = cy0 * sin(x0),\n kx1 = cy1 * cos(x1),\n ky1 = cy1 * sin(x1),\n d = 2 * asin(sqrt(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))),\n k = sin(d);\n\n var interpolate = d ? function(t) {\n var B = sin(t *= d) / k,\n A = sin(d - t) / k,\n x = A * kx0 + B * kx1,\n y = A * ky0 + B * ky1,\n z = A * sy0 + B * sy1;\n return [\n atan2(y, x) * degrees,\n atan2(z, sqrt(x * x + y * y)) * degrees\n ];\n } : function() {\n return [x0 * degrees, y0 * degrees];\n };\n\n interpolate.distance = d;\n\n return interpolate;\n}\n","import adder from \"./adder.js\";\nimport {abs, atan2, cos, radians, sin, sqrt} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nvar lengthSum = adder(),\n lambda0,\n sinPhi0,\n cosPhi0;\n\nvar lengthStream = {\n sphere: noop,\n point: noop,\n lineStart: lengthLineStart,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop\n};\n\nfunction lengthLineStart() {\n lengthStream.point = lengthPointFirst;\n lengthStream.lineEnd = lengthLineEnd;\n}\n\nfunction lengthLineEnd() {\n lengthStream.point = lengthStream.lineEnd = noop;\n}\n\nfunction lengthPointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n lambda0 = lambda, sinPhi0 = sin(phi), cosPhi0 = cos(phi);\n lengthStream.point = lengthPoint;\n}\n\nfunction lengthPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var sinPhi = sin(phi),\n cosPhi = cos(phi),\n delta = abs(lambda - lambda0),\n cosDelta = cos(delta),\n sinDelta = sin(delta),\n x = cosPhi * sinDelta,\n y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,\n z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;\n lengthSum.add(atan2(sqrt(x * x + y * y), z));\n lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;\n}\n\nexport default function(object) {\n lengthSum.reset();\n stream(object, lengthStream);\n return +lengthSum;\n}\n","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\n","import adder from \"../adder.js\";\nimport {abs} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar areaSum = adder(),\n areaRingSum = adder(),\n x00,\n y00,\n x0,\n y0;\n\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum.reset();\n },\n result: function() {\n var area = areaSum / 2;\n areaSum.reset();\n return area;\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\n\nexport default areaStream;\n","import noop from \"../noop.js\";\n\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;\n","import {sqrt} from \"../math.js\";\n\n// TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n Y0 = 0,\n Z0 = 0,\n X1 = 0,\n Y1 = 0,\n Z1 = 0,\n X2 = 0,\n Y2 = 0,\n Z2 = 0,\n x00,\n y00,\n x0,\n y0;\n\nvar centroidStream = {\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.point = centroidPoint;\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n },\n result: function() {\n var centroid = Z2 ? [X2 / Z2, Y2 / Z2]\n : Z1 ? [X1 / Z1, Y1 / Z1]\n : Z0 ? [X0 / Z0, Y0 / Z0]\n : [NaN, NaN];\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n return centroid;\n }\n};\n\nfunction centroidPoint(x, y) {\n X0 += x;\n Y0 += y;\n ++Z0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n centroidStream.point = centroidPointLine;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidPointLine(x, y) {\n var dx = x - x0, dy = y - y0, z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingStart() {\n centroidStream.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd() {\n centroidPointRing(x00, y00);\n}\n\nfunction centroidPointFirstRing(x, y) {\n centroidStream.point = centroidPointRing;\n centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\n\nfunction centroidPointRing(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n\n z = y0 * x - x0 * y;\n X2 += z * (x0 + x);\n Y2 += z * (y0 + y);\n Z2 += z * 3;\n centroidPoint(x0 = x, y0 = y);\n}\n\nexport default centroidStream;\n","import {tau} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nexport default function PathContext(context) {\n this._context = context;\n}\n\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function(_) {\n return this._radius = _, this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._context.moveTo(x, y);\n this._point = 1;\n break;\n }\n case 1: {\n this._context.lineTo(x, y);\n break;\n }\n default: {\n this._context.moveTo(x + this._radius, y);\n this._context.arc(x, y, this._radius, 0, tau);\n break;\n }\n }\n },\n result: noop\n};\n","import identity from \"../identity.js\";\nimport stream from \"../stream.js\";\nimport pathArea from \"./area.js\";\nimport pathBounds from \"./bounds.js\";\nimport pathCentroid from \"./centroid.js\";\nimport PathContext from \"./context.js\";\nimport pathMeasure from \"./measure.js\";\nimport PathString from \"./string.js\";\n\nexport default function(projection, context) {\n var pointRadius = 4.5,\n projectionStream,\n contextStream;\n\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n stream(object, projectionStream(contextStream));\n }\n return contextStream.result();\n }\n\n path.area = function(object) {\n stream(object, projectionStream(pathArea));\n return pathArea.result();\n };\n\n path.measure = function(object) {\n stream(object, projectionStream(pathMeasure));\n return pathMeasure.result();\n };\n\n path.bounds = function(object) {\n stream(object, projectionStream(pathBounds));\n return pathBounds.result();\n };\n\n path.centroid = function(object) {\n stream(object, projectionStream(pathCentroid));\n return pathCentroid.result();\n };\n\n path.projection = function(_) {\n return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;\n };\n\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n return path.projection(projection).context(context);\n}\n","import adder from \"../adder.js\";\nimport {sqrt} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar lengthSum = adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\n\nvar lengthStream = {\n point: noop,\n lineStart: function() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function() {\n lengthRing = true;\n },\n polygonEnd: function() {\n lengthRing = null;\n },\n result: function() {\n var length = +lengthSum;\n lengthSum.reset();\n return length;\n }\n};\n\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\n\nexport default lengthStream;\n","export default function PathString() {\n this._string = [];\n}\n\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._string.push(\"M\", x, \",\", y);\n this._point = 1;\n break;\n }\n case 1: {\n this._string.push(\"L\", x, \",\", y);\n break;\n }\n default: {\n if (this._circle == null) this._circle = circle(this._radius);\n this._string.push(\"M\", x, \",\", y, this._circle);\n break;\n }\n }\n },\n result: function() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\n\nfunction circle(radius) {\n return \"m0,\" + radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius\n + \"z\";\n}\n","import {abs, epsilon} from \"./math.js\";\n\nexport default function(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}\n","import adder from \"./adder.js\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace} from \"./cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, halfPi, pi, quarterPi, sign, sin, tau} from \"./math.js\";\n\nvar sum = adder();\n\nfunction longitude(point) {\n if (abs(point[0]) <= pi)\n return point[0];\n else\n return sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function(polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n\n sum.reset();\n\n if (sinPhi === 1) phi = halfPi + epsilon;\n else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n\n // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon) ^ (winding & 1);\n}\n","import conicEqualArea from \"./conicEqualArea.js\";\n\nexport default function() {\n return conicEqualArea()\n .parallels([29.5, 45.5])\n .scale(1070)\n .translate([480, 250])\n .rotate([96, 0])\n .center([-0.6, 38.7]);\n}\n","import {epsilon} from \"../math.js\";\nimport albers from \"./albers.js\";\nimport conicEqualArea from \"./conicEqualArea.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\n\n// The projections must have mutually exclusive clip regions on the sphere,\n// as this will avoid emitting interleaving lines and polygons.\nfunction multiplex(streams) {\n var n = streams.length;\n return {\n point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },\n sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },\n lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },\n lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },\n polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },\n polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }\n };\n}\n\n// A composite projection for the United States, configured by default for\n// 960×500. The projection also works quite well at 960×600 if you change the\n// scale to 1285 and adjust the translate accordingly. The set of standard\n// parallels for each region comes from USGS, which is published here:\n// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers\nexport default function() {\n var cache,\n cacheStream,\n lower48 = albers(), lower48Point,\n alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338\n hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007\n point, pointStream = {point: function(x, y) { point = [x, y]; }};\n\n function albersUsa(coordinates) {\n var x = coordinates[0], y = coordinates[1];\n return point = null,\n (lower48Point.point(x, y), point)\n || (alaskaPoint.point(x, y), point)\n || (hawaiiPoint.point(x, y), point);\n }\n\n albersUsa.invert = function(coordinates) {\n var k = lower48.scale(),\n t = lower48.translate(),\n x = (coordinates[0] - t[0]) / k,\n y = (coordinates[1] - t[1]) / k;\n return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska\n : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii\n : lower48).invert(coordinates);\n };\n\n albersUsa.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n };\n\n albersUsa.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n return reset();\n };\n\n albersUsa.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n\n albersUsa.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n\n lower48Point = lower48\n .translate(_)\n .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])\n .stream(pointStream);\n\n alaskaPoint = alaska\n .translate([x - 0.307 * k, y + 0.201 * k])\n .clipExtent([[x - 0.425 * k + epsilon, y + 0.120 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n hawaiiPoint = hawaii\n .translate([x - 0.205 * k, y + 0.212 * k])\n .clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n return reset();\n };\n\n albersUsa.fitExtent = function(extent, object) {\n return fitExtent(albersUsa, extent, object);\n };\n\n albersUsa.fitSize = function(size, object) {\n return fitSize(albersUsa, size, object);\n };\n\n albersUsa.fitWidth = function(width, object) {\n return fitWidth(albersUsa, width, object);\n };\n\n albersUsa.fitHeight = function(height, object) {\n return fitHeight(albersUsa, height, object);\n };\n\n function reset() {\n cache = cacheStream = null;\n return albersUsa;\n }\n\n return albersUsa.scale(1070);\n}\n","import {asin, atan2, cos, sin, sqrt} from \"../math.js\";\n\nexport function azimuthalRaw(scale) {\n return function(x, y) {\n var cx = cos(x),\n cy = cos(y),\n k = scale(cx * cy);\n return [\n k * cy * sin(x),\n k * sin(y)\n ];\n }\n}\n\nexport function azimuthalInvert(angle) {\n return function(x, y) {\n var z = sqrt(x * x + y * y),\n c = angle(z),\n sc = sin(c),\n cc = cos(c);\n return [\n atan2(x * sc, z * cc),\n asin(z && y * sc / z)\n ];\n }\n}\n","import {asin, sqrt} from \"../math.js\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {\n return sqrt(2 / (1 + cxcy));\n});\n\nazimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {\n return 2 * asin(z / 2);\n});\n\nexport default function() {\n return projection(azimuthalEqualAreaRaw)\n .scale(124.75)\n .clipAngle(180 - 1e-3);\n}\n","import {acos, sin} from \"../math.js\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport var azimuthalEquidistantRaw = azimuthalRaw(function(c) {\n return (c = acos(c)) && c / sin(c);\n});\n\nazimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {\n return z;\n});\n\nexport default function() {\n return projection(azimuthalEquidistantRaw)\n .scale(79.4188)\n .clipAngle(180 - 1e-3);\n}\n","import {degrees, pi, radians} from \"../math.js\";\nimport {projectionMutator} from \"./index.js\";\n\nexport function conicProjection(projectAt) {\n var phi0 = 0,\n phi1 = pi / 3,\n m = projectionMutator(projectAt),\n p = m(phi0, phi1);\n\n p.parallels = function(_) {\n return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];\n };\n\n return p;\n}\n","import {abs, atan, atan2, cos, epsilon, halfPi, log, pow, sign, sin, sqrt, tan} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {mercatorRaw} from \"./mercator.js\";\n\nfunction tany(y) {\n return tan((halfPi + y) / 2);\n}\n\nexport function conicConformalRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : log(cy0 / cos(y1)) / log(tany(y1) / tany(y0)),\n f = cy0 * pow(tany(y0), n) / n;\n\n if (!n) return mercatorRaw;\n\n function project(x, y) {\n if (f > 0) { if (y < -halfPi + epsilon) y = -halfPi + epsilon; }\n else { if (y > halfPi - epsilon) y = halfPi - epsilon; }\n var r = f / pow(tany(y), n);\n return [r * sin(n * x), f - r * cos(n * x)];\n }\n\n project.invert = function(x, y) {\n var fy = f - y, r = sign(n) * sqrt(x * x + fy * fy);\n return [atan2(x, abs(fy)) / n * sign(fy), 2 * atan(pow(f / r, 1 / n)) - halfPi];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicConformalRaw)\n .scale(109.5)\n .parallels([30, 30]);\n}\n","import {abs, asin, atan2, cos, epsilon, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {cylindricalEqualAreaRaw} from \"./cylindricalEqualArea.js\";\n\nexport function conicEqualAreaRaw(y0, y1) {\n var sy0 = sin(y0), n = (sy0 + sin(y1)) / 2;\n\n // Are the parallels symmetrical around the Equator?\n if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);\n\n var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt(c) / n;\n\n function project(x, y) {\n var r = sqrt(c - 2 * n * sin(y)) / n;\n return [r * sin(x *= n), r0 - r * cos(x)];\n }\n\n project.invert = function(x, y) {\n var r0y = r0 - y;\n return [atan2(x, abs(r0y)) / n * sign(r0y), asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicEqualAreaRaw)\n .scale(155.424)\n .center([0, 33.6442]);\n}\n","import {abs, atan2, cos, epsilon, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {equirectangularRaw} from \"./equirectangular.js\";\n\nexport function conicEquidistantRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : (cy0 - cos(y1)) / (y1 - y0),\n g = cy0 / n + y0;\n\n if (abs(n) < epsilon) return equirectangularRaw;\n\n function project(x, y) {\n var gy = g - y, nx = n * x;\n return [gy * sin(nx), g - gy * cos(nx)];\n }\n\n project.invert = function(x, y) {\n var gy = g - y;\n return [atan2(x, abs(gy)) / n * sign(gy), g - sign(n) * sqrt(x * x + gy * gy)];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicEquidistantRaw)\n .scale(131.154)\n .center([0, 13.9389]);\n}\n","import {asin, cos, sin} from \"../math.js\";\n\nexport function cylindricalEqualAreaRaw(phi0) {\n var cosPhi0 = cos(phi0);\n\n function forward(lambda, phi) {\n return [lambda * cosPhi0, sin(phi) / cosPhi0];\n }\n\n forward.invert = function(x, y) {\n return [x / cosPhi0, asin(y * cosPhi0)];\n };\n\n return forward;\n}\n","import projection from \"./index.js\";\nimport {abs, asin, cos, epsilon2, sin, sqrt} from \"../math.js\";\n\nvar A1 = 1.340264,\n A2 = -0.081106,\n A3 = 0.000893,\n A4 = 0.003796,\n M = sqrt(3) / 2,\n iterations = 12;\n\nexport function equalEarthRaw(lambda, phi) {\n var l = asin(M * sin(phi)), l2 = l * l, l6 = l2 * l2 * l2;\n return [\n lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),\n l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))\n ];\n}\n\nequalEarthRaw.invert = function(x, y) {\n var l = y, l2 = l * l, l6 = l2 * l2 * l2;\n for (var i = 0, delta, fy, fpy; i < iterations; ++i) {\n fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;\n fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);\n l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;\n if (abs(delta) < epsilon2) break;\n }\n return [\n M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l),\n asin(sin(l) / M)\n ];\n};\n\nexport default function() {\n return projection(equalEarthRaw)\n .scale(177.158);\n}\n","import projection from \"./index.js\";\n\nexport function equirectangularRaw(lambda, phi) {\n return [lambda, phi];\n}\n\nequirectangularRaw.invert = equirectangularRaw;\n\nexport default function() {\n return projection(equirectangularRaw)\n .scale(152.63);\n}\n","import {default as geoStream} from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream));\n fitBounds(boundsStream.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n return fit(projection, function(b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\n\nexport function fitWidth(projection, width, object) {\n return fit(projection, function(b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitHeight(projection, height, object) {\n return fit(projection, function(b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n","import {atan, cos, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function gnomonicRaw(x, y) {\n var cy = cos(y), k = cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\n\ngnomonicRaw.invert = azimuthalInvert(atan);\n\nexport default function() {\n return projection(gnomonicRaw)\n .scale(144.049)\n .clipAngle(60);\n}\n","import clipRectangle from \"../clip/rectangle.js\";\nimport identity from \"../identity.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\n\nfunction scaleTranslate(kx, ky, tx, ty) {\n return kx === 1 && ky === 1 && tx === 0 && ty === 0 ? identity : transformer({\n point: function(x, y) {\n this.stream.point(x * kx + tx, y * ky + ty);\n }\n });\n}\n\nexport default function() {\n var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, transform = identity, // scale, translate and reflect\n x0 = null, y0, x1, y1, // clip extent\n postclip = identity,\n cache,\n cacheStream,\n projection;\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return projection = {\n stream: function(stream) {\n return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));\n },\n postclip: function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n },\n clipExtent: function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n },\n scale: function(_) {\n return arguments.length ? (transform = scaleTranslate((k = +_) * sx, k * sy, tx, ty), reset()) : k;\n },\n translate: function(_) {\n return arguments.length ? (transform = scaleTranslate(k * sx, k * sy, tx = +_[0], ty = +_[1]), reset()) : [tx, ty];\n },\n reflectX: function(_) {\n return arguments.length ? (transform = scaleTranslate(k * (sx = _ ? -1 : 1), k * sy, tx, ty), reset()) : sx < 0;\n },\n reflectY: function(_) {\n return arguments.length ? (transform = scaleTranslate(k * sx, k * (sy = _ ? -1 : 1), tx, ty), reset()) : sy < 0;\n },\n fitExtent: function(extent, object) {\n return fitExtent(projection, extent, object);\n },\n fitSize: function(size, object) {\n return fitSize(projection, size, object);\n },\n fitWidth: function(width, object) {\n return fitWidth(projection, width, object);\n },\n fitHeight: function(height, object) {\n return fitHeight(projection, height, object);\n }\n };\n}\n","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport {cos, degrees, radians, sin, sqrt} from \"../math.js\";\nimport {rotateRadians} from \"../rotation.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport resample from \"./resample.js\";\n\nvar transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nfunction scaleTranslate(k, dx, dy) {\n function transform(x, y) {\n return [dx + k * x, dy - k * y];\n }\n transform.invert = function(x, y) {\n return [(x - dx) / k, (dy - y) / k];\n };\n return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, alpha) {\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n function transform(x, y) {\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n transform.invert = function(x, y) {\n return [ai * x - bi * y + ci, fi - bi * x - ai * y];\n };\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nexport function projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate\n alpha = 0, // post-rotate\n theta = null, preclip = clipAntimeridian, // pre-clip angle\n x0 = null, y0, x1, y1, postclip = identity, // post-clip extent\n delta2 = 0.5, // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function(_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, alpha).apply(null, project(lambda, phi)),\n transform = (alpha ? scaleTranslateRotate : scaleTranslate)(k, x - center[0], y - center[1], alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}\n","import {atan, exp, halfPi, log, pi, tan, tau} from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\n\nexport function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function() {\n return mercatorProjection(mercatorRaw)\n .scale(961 / tau);\n}\n\nexport function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null, y0, x1, y1; // clip extent\n\n m.scale = function(_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function(_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function(_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function(_) {\n return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null\n ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw\n ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]\n : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}\n","import projection from \"./index.js\";\nimport {abs, epsilon} from \"../math.js\";\n\nexport function naturalEarth1Raw(lambda, phi) {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n return [\n lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),\n phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))\n ];\n}\n\nnaturalEarth1Raw.invert = function(x, y) {\n var phi = y, i = 25, delta;\n do {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /\n (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));\n } while (abs(delta) > epsilon && --i > 0);\n return [\n x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),\n phi\n ];\n};\n\nexport default function() {\n return projection(naturalEarth1Raw)\n .scale(175.295);\n}\n","import {asin, cos, epsilon, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function orthographicRaw(x, y) {\n return [cos(y) * sin(x), sin(y)];\n}\n\northographicRaw.invert = azimuthalInvert(asin);\n\nexport default function() {\n return projection(orthographicRaw)\n .scale(249.5)\n .clipAngle(90 + epsilon);\n}\n","import {cartesian} from \"../cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, radians, sqrt} from \"../math.js\";\nimport {transformer} from \"../transform.js\";\n\nvar maxDepth = 16, // maximum depth of subdivision\n cosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function(project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}\n","import {atan, cos, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function stereographicRaw(x, y) {\n var cy = cos(y), k = 1 + cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\n\nstereographicRaw.invert = azimuthalInvert(function(z) {\n return 2 * atan(z);\n});\n\nexport default function() {\n return projection(stereographicRaw)\n .scale(250)\n .clipAngle(142);\n}\n","import {atan, exp, halfPi, log, tan} from \"../math.js\";\nimport {mercatorProjection} from \"./mercator.js\";\n\nexport function transverseMercatorRaw(lambda, phi) {\n return [log(tan((halfPi + phi) / 2)), -lambda];\n}\n\ntransverseMercatorRaw.invert = function(x, y) {\n return [-y, 2 * atan(exp(x)) - halfPi];\n};\n\nexport default function() {\n var m = mercatorProjection(transverseMercatorRaw),\n center = m.center,\n rotate = m.rotate;\n\n m.center = function(_) {\n return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);\n };\n\n m.rotate = function(_) {\n return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);\n };\n\n return rotate([0, 0, 90])\n .scale(159.155);\n}\n","import compose from \"./compose.js\";\nimport {abs, asin, atan2, cos, degrees, pi, radians, sin, tau} from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n return [abs(lambda) > pi ? lambda + Math.round(-lambda / tau) * tau : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n\n rotation.invert = function(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n\n return rotation;\n}\n\nexport default function(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}\n","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\n\nexport default function(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}\n","export default function(methods) {\n return {\n stream: transformer(methods)\n };\n}\n\nexport function transformer(methods) {\n return function(stream) {\n var s = new TransformStream;\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { this.stream.polygonEnd(); }\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export var slice = Array.prototype.slice;\n\nexport function shuffle(array) {\n var m = array.length,\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\n\n return array;\n}\n","function defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\nfunction meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n}\n\nfunction meanXReduce(x, c) {\n return x + c.x;\n}\n\nfunction maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n}\n\nfunction maxYReduce(y, c) {\n return Math.max(y, c.y);\n}\n\nfunction leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n}\n\nfunction leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n}\n\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = false;\n\n function cluster(root) {\n var previousNode,\n x = 0;\n\n // First walk, computing the initial x & y values.\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n\n var left = leafLeft(root),\n right = leafRight(root),\n x0 = left.x - separation(left, right) / 2,\n x1 = right.x + separation(right, left) / 2;\n\n // Second walk, normalizing x & y to the desired size.\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n\n cluster.separation = function(x) {\n return arguments.length ? (separation = x, cluster) : separation;\n };\n\n cluster.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);\n };\n\n cluster.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);\n };\n\n return cluster;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n}\n","export default function(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\n\nexport default function hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export {default as cluster} from \"./cluster.js\";\nexport {default as hierarchy} from \"./hierarchy/index.js\";\nexport {default as pack} from \"./pack/index.js\";\nexport {default as packSiblings} from \"./pack/siblings.js\";\nexport {default as packEnclose} from \"./pack/enclose.js\";\nexport {default as partition} from \"./partition.js\";\nexport {default as stratify} from \"./stratify.js\";\nexport {default as tree} from \"./tree.js\";\nexport {default as treemap} from \"./treemap/index.js\";\nexport {default as treemapBinary} from \"./treemap/binary.js\";\nexport {default as treemapDice} from \"./treemap/dice.js\";\nexport {default as treemapSlice} from \"./treemap/slice.js\";\nexport {default as treemapSliceDice} from \"./treemap/sliceDice.js\";\nexport {default as treemapSquarify} from \"./treemap/squarify.js\";\nexport {default as treemapResquarify} from \"./treemap/resquarify.js\";\n","import {shuffle, slice} from \"../array.js\";\n\nexport default function(circles) {\n var i = 0, n = (circles = shuffle(slice.call(circles))).length, B = [], p, e;\n\n while (i < n) {\n p = circles[i];\n if (e && enclosesWeak(e, p)) ++i;\n else e = encloseBasis(B = extendBasis(B, p)), i = 0;\n }\n\n return e;\n}\n\nfunction extendBasis(B, p) {\n var i, j;\n\n if (enclosesWeakAll(p, B)) return [p];\n\n // If we get here then B must have at least one element.\n for (i = 0; i < B.length; ++i) {\n if (enclosesNot(p, B[i])\n && enclosesWeakAll(encloseBasis2(B[i], p), B)) {\n return [B[i], p];\n }\n }\n\n // If we get here then B must have at least two elements.\n for (i = 0; i < B.length - 1; ++i) {\n for (j = i + 1; j < B.length; ++j) {\n if (enclosesNot(encloseBasis2(B[i], B[j]), p)\n && enclosesNot(encloseBasis2(B[i], p), B[j])\n && enclosesNot(encloseBasis2(B[j], p), B[i])\n && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {\n return [B[i], B[j], p];\n }\n }\n }\n\n // If we get here then something is very wrong.\n throw new Error;\n}\n\nfunction enclosesNot(a, b) {\n var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;\n return dr < 0 || dr * dr < dx * dx + dy * dy;\n}\n\nfunction enclosesWeak(a, b) {\n var dr = a.r - b.r + 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction enclosesWeakAll(a, B) {\n for (var i = 0; i < B.length; ++i) {\n if (!enclosesWeak(a, B[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction encloseBasis(B) {\n switch (B.length) {\n case 1: return encloseBasis1(B[0]);\n case 2: return encloseBasis2(B[0], B[1]);\n case 3: return encloseBasis3(B[0], B[1], B[2]);\n }\n}\n\nfunction encloseBasis1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\n}\n\nfunction encloseBasis2(a, b) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,\n l = Math.sqrt(x21 * x21 + y21 * y21);\n return {\n x: (x1 + x2 + x21 / l * r21) / 2,\n y: (y1 + y2 + y21 / l * r21) / 2,\n r: (l + r1 + r2) / 2\n };\n}\n\nfunction encloseBasis3(a, b, c) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x3 = c.x, y3 = c.y, r3 = c.r,\n a2 = x1 - x2,\n a3 = x1 - x3,\n b2 = y1 - y2,\n b3 = y1 - y3,\n c2 = r2 - r1,\n c3 = r3 - r1,\n d1 = x1 * x1 + y1 * y1 - r1 * r1,\n d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,\n d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,\n ab = a3 * b2 - a2 * b3,\n xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,\n xb = (b3 * c2 - b2 * c3) / ab,\n ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,\n yb = (a2 * c3 - a3 * c2) / ab,\n A = xb * xb + yb * yb - 1,\n B = 2 * (r1 + xa * xb + ya * yb),\n C = xa * xa + ya * ya - r1 * r1,\n r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);\n return {\n x: x1 + xa + xb * r,\n y: y1 + ya + yb * r,\n r: r\n };\n}\n","import {packEnclose} from \"./siblings.js\";\nimport {optional} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nfunction defaultRadius(d) {\n return Math.sqrt(d.value);\n}\n\nexport default function() {\n var radius = null,\n dx = 1,\n dy = 1,\n padding = constantZero;\n\n function pack(root) {\n root.x = dx / 2, root.y = dy / 2;\n if (radius) {\n root.eachBefore(radiusLeaf(radius))\n .eachAfter(packChildren(padding, 0.5))\n .eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius))\n .eachAfter(packChildren(constantZero, 1))\n .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))\n .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n }\n return root;\n }\n\n pack.radius = function(x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n\n pack.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n\n pack.padding = function(x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant(+x), pack) : padding;\n };\n\n return pack;\n}\n\nfunction radiusLeaf(radius) {\n return function(node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\n };\n}\n\nfunction packChildren(padding, k) {\n return function(node) {\n if (children = node.children) {\n var children,\n i,\n n = children.length,\n r = padding(node) * k || 0,\n e;\n\n if (r) for (i = 0; i < n; ++i) children[i].r += r;\n e = packEnclose(children);\n if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n node.r = e + r;\n }\n };\n}\n\nfunction translateChild(k) {\n return function(node) {\n var parent = node.parent;\n node.r *= k;\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n}\n","import enclose from \"./enclose.js\";\n\nfunction place(b, a, c) {\n var dx = b.x - a.x, x, a2,\n dy = b.y - a.y, y, b2,\n d2 = dx * dx + dy * dy;\n if (d2) {\n a2 = a.r + c.r, a2 *= a2;\n b2 = b.r + c.r, b2 *= b2;\n if (a2 > b2) {\n x = (d2 + b2 - a2) / (2 * d2);\n y = Math.sqrt(Math.max(0, b2 / d2 - x * x));\n c.x = b.x - x * dx - y * dy;\n c.y = b.y - x * dy + y * dx;\n } else {\n x = (d2 + a2 - b2) / (2 * d2);\n y = Math.sqrt(Math.max(0, a2 / d2 - x * x));\n c.x = a.x + x * dx - y * dy;\n c.y = a.y + x * dy + y * dx;\n }\n } else {\n c.x = a.x + c.r;\n c.y = a.y;\n }\n}\n\nfunction intersects(a, b) {\n var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction score(node) {\n var a = node._,\n b = node.next._,\n ab = a.r + b.r,\n dx = (a.x * b.r + b.x * a.r) / ab,\n dy = (a.y * b.r + b.y * a.r) / ab;\n return dx * dx + dy * dy;\n}\n\nfunction Node(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n}\n\nexport function packEnclose(circles) {\n if (!(n = circles.length)) return 0;\n\n var a, b, c, n, aa, ca, i, j, k, sj, sk;\n\n // Place the first circle.\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r;\n\n // Place the second circle.\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r;\n\n // Place the third circle.\n place(b, a, c = circles[2]);\n\n // Initialize the front-chain using the first three circles a, b and c.\n a = new Node(a), b = new Node(b), c = new Node(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a;\n\n // Attempt to place each remaining circle…\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node(c);\n\n // Find the closest intersecting circle on the front-chain, if any.\n // “Closeness” is determined by linear distance along the front-chain.\n // “Ahead” or “behind” is likewise determined by linear distance.\n j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sj += j._.r, j = j.next;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sk += k._.r, k = k.previous;\n }\n } while (j !== k.next);\n\n // Success! Insert the new circle c between a and b.\n c.previous = a, c.next = b, a.next = b.previous = b = c;\n\n // Compute the new closest circle pair to the centroid.\n aa = score(a);\n while ((c = c.next) !== b) {\n if ((ca = score(c)) < aa) {\n a = c, aa = ca;\n }\n }\n b = a.next;\n }\n\n // Compute the enclosing circle of the front chain.\n a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a);\n\n // Translate the circles to put the enclosing circle around the origin.\n for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n\n return c.r;\n}\n\nexport default function(circles) {\n packEnclose(circles);\n return circles;\n}\n","import roundNode from \"./treemap/round.js\";\nimport treemapDice from \"./treemap/dice.js\";\n\nexport default function() {\n var dx = 1,\n dy = 1,\n padding = 0,\n round = false;\n\n function partition(root) {\n var n = root.height + 1;\n root.x0 =\n root.y0 = padding;\n root.x1 = dx;\n root.y1 = dy / n;\n root.eachBefore(positionNode(dy, n));\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(dy, n) {\n return function(node) {\n if (node.children) {\n treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);\n }\n var x0 = node.x0,\n y0 = node.y0,\n x1 = node.x1 - padding,\n y1 = node.y1 - padding;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n };\n }\n\n partition.round = function(x) {\n return arguments.length ? (round = !!x, partition) : round;\n };\n\n partition.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];\n };\n\n partition.padding = function(x) {\n return arguments.length ? (padding = +x, partition) : padding;\n };\n\n return partition;\n}\n","import {required} from \"./accessors.js\";\nimport {Node, computeHeight} from \"./hierarchy/index.js\";\n\nvar keyPrefix = \"$\", // Protect against keys like “__proto__”.\n preroot = {depth: -1},\n ambiguous = {};\n\nfunction defaultId(d) {\n return d.id;\n}\n\nfunction defaultParentId(d) {\n return d.parentId;\n}\n\nexport default function() {\n var id = defaultId,\n parentId = defaultParentId;\n\n function stratify(data) {\n var d,\n i,\n n = data.length,\n root,\n parent,\n node,\n nodes = new Array(n),\n nodeId,\n nodeKey,\n nodeByKey = {};\n\n for (i = 0; i < n; ++i) {\n d = data[i], node = nodes[i] = new Node(d);\n if ((nodeId = id(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = keyPrefix + (node.id = nodeId);\n nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node;\n }\n }\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], nodeId = parentId(data[i], i, data);\n if (nodeId == null || !(nodeId += \"\")) {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n } else {\n parent = nodeByKey[keyPrefix + nodeId];\n if (!parent) throw new Error(\"missing: \" + nodeId);\n if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n if (parent.children) parent.children.push(node);\n else parent.children = [node];\n node.parent = parent;\n }\n }\n\n if (!root) throw new Error(\"no root\");\n root.parent = preroot;\n root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);\n root.parent = null;\n if (n > 0) throw new Error(\"cycle\");\n\n return root;\n }\n\n stratify.id = function(x) {\n return arguments.length ? (id = required(x), stratify) : id;\n };\n\n stratify.parentId = function(x) {\n return arguments.length ? (parentId = required(x), stratify) : parentId;\n };\n\n return stratify;\n}\n","import {Node} from \"./hierarchy/index.js\";\n\nfunction defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\n// function radialSeparation(a, b) {\n// return (a.parent === b.parent ? 1 : 2) / a.depth;\n// }\n\n// This function is used to traverse the left contour of a subtree (or\n// subforest). It returns the successor of v on this contour. This successor is\n// either given by the leftmost child of v or by the thread of v. The function\n// returns null if and only if v is on the highest level of its subtree.\nfunction nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n}\n\n// This function works analogously to nextLeft.\nfunction nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n}\n\n// Shifts the current subtree rooted at w+. This is done by increasing\n// prelim(w+) and mod(w+) by shift.\nfunction moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n}\n\n// All other shifts, applied to the smaller subtrees between w- and w+, are\n// performed by this function. To prepare the shifts, we have to adjust\n// change(w+), shift(w+), and change(w-).\nfunction executeShifts(v) {\n var shift = 0,\n change = 0,\n children = v.children,\n i = children.length,\n w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n}\n\n// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,\n// returns the specified (default) ancestor.\nfunction nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n}\n\nfunction TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null; // default ancestor\n this.a = this; // ancestor\n this.z = 0; // prelim\n this.m = 0; // mod\n this.c = 0; // change\n this.s = 0; // shift\n this.t = null; // thread\n this.i = i; // number\n}\n\nTreeNode.prototype = Object.create(Node.prototype);\n\nfunction treeRoot(root) {\n var tree = new TreeNode(root, 0),\n node,\n nodes = [tree],\n child,\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n\n (tree.parent = new TreeNode(null, 0)).children = [tree];\n return tree;\n}\n\n// Node-link tree diagram using the Reingold-Tilford \"tidy\" algorithm\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = null;\n\n function tree(root) {\n var t = treeRoot(root);\n\n // Compute the layout using Buchheim et al.’s algorithm.\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk);\n\n // If a fixed node size is specified, scale x and y.\n if (nodeSize) root.eachBefore(sizeNode);\n\n // If a fixed tree size is specified, scale x and y based on the extent.\n // Compute the left-most, right-most, and depth-most nodes for extents.\n else {\n var left = root,\n right = root,\n bottom = root;\n root.eachBefore(function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2,\n tx = s - left.x,\n kx = dx / (right.x + s + tx),\n ky = dy / (bottom.depth || 1);\n root.eachBefore(function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n\n return root;\n }\n\n // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is\n // applied recursively to the children of v, as well as the function\n // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the\n // node v is placed to the midpoint of its outermost children.\n function firstWalk(v) {\n var children = v.children,\n siblings = v.parent.children,\n w = v.i ? siblings[v.i - 1] : null;\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n\n // Computes all real x-coordinates by summing up the modifiers recursively.\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n\n // The core of the algorithm. Here, a new subtree is combined with the\n // previous subtrees. Threads are used to traverse the inside and outside\n // contours of the left and right subtree up to the highest common level. The\n // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the\n // superscript o means outside and i means inside, the subscript - means left\n // subtree and + means right subtree. For summing up the modifiers along the\n // contour, we use respective variables si+, si-, so-, and so+. Whenever two\n // nodes of the inside contours conflict, we compute the left one of the\n // greatest uncommon ancestors using the function ANCESTOR and call MOVE\n // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.\n // Finally, we add a new thread (if necessary).\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v,\n vop = v,\n vim = w,\n vom = vip.parent.children[0],\n sip = vip.m,\n sop = vop.m,\n sim = vim.m,\n som = vom.m,\n shift;\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n\n tree.separation = function(x) {\n return arguments.length ? (separation = x, tree) : separation;\n };\n\n tree.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);\n };\n\n tree.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);\n };\n\n return tree;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n i, n = nodes.length,\n sum, sums = new Array(n + 1);\n\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n\n partition(0, n, parent.value, x0, y0, x1, y1);\n\n function partition(i, j, value, x0, y0, x1, y1) {\n if (i >= j - 1) {\n var node = nodes[i];\n node.x0 = x0, node.y0 = y0;\n node.x1 = x1, node.y1 = y1;\n return;\n }\n\n var valueOffset = sums[i],\n valueTarget = (value / 2) + valueOffset,\n k = i + 1,\n hi = j - 1;\n\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;\n else hi = mid;\n }\n\n if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;\n\n var valueLeft = sums[k] - valueOffset,\n valueRight = value - valueLeft;\n\n if ((x1 - x0) > (y1 - y0)) {\n var xk = (x0 * valueRight + x1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, xk, y1);\n partition(k, j, valueRight, xk, y0, x1, y1);\n } else {\n var yk = (y0 * valueRight + y1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, x1, yk);\n partition(k, j, valueRight, x0, yk, x1, y1);\n }\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport {phi, squarifyRatio} from \"./squarify.js\";\n\nexport default (function custom(ratio) {\n\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && (rows.ratio === ratio)) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);\n else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import dice from \"./dice.js\";\nimport slice from \"./slice.js\";\n\nexport default function(parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? slice : dice)(parent, x0, y0, x1, y1);\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n","import {hue} from \"./color.js\";\n\nexport default function(a, b) {\n var i = hue(+a, +b);\n return function(t) {\n var x = i(t);\n return x - 360 * Math.floor(x / 360);\n };\n}\n","export {default as interpolate} from \"./value.js\";\nexport {default as interpolateArray} from \"./array.js\";\nexport {default as interpolateBasis} from \"./basis.js\";\nexport {default as interpolateBasisClosed} from \"./basisClosed.js\";\nexport {default as interpolateDate} from \"./date.js\";\nexport {default as interpolateDiscrete} from \"./discrete.js\";\nexport {default as interpolateHue} from \"./hue.js\";\nexport {default as interpolateNumber} from \"./number.js\";\nexport {default as interpolateNumberArray} from \"./numberArray.js\";\nexport {default as interpolateObject} from \"./object.js\";\nexport {default as interpolateRound} from \"./round.js\";\nexport {default as interpolateString} from \"./string.js\";\nexport {interpolateTransformCss, interpolateTransformSvg} from \"./transform/index.js\";\nexport {default as interpolateZoom} from \"./zoom.js\";\nexport {default as interpolateRgb, rgbBasis as interpolateRgbBasis, rgbBasisClosed as interpolateRgbBasisClosed} from \"./rgb.js\";\nexport {default as interpolateHsl, hslLong as interpolateHslLong} from \"./hsl.js\";\nexport {default as interpolateLab} from \"./lab.js\";\nexport {default as interpolateHcl, hclLong as interpolateHclLong} from \"./hcl.js\";\nexport {default as interpolateCubehelix, cubehelixLong as interpolateCubehelixLong} from \"./cubehelix.js\";\nexport {default as piecewise} from \"./piecewise.js\";\nexport {default as quantize} from \"./quantize.js\";\n","import {lab as colorLab} from \"d3-color\";\nimport color from \"./color.js\";\n\nexport default function lab(start, end) {\n var l = color((start = colorLab(start)).l, (end = colorLab(end)).l),\n a = color(start.a, end.a),\n b = color(start.b, end.b),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","export default function piecewise(interpolate, values) {\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","export default function(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import decompose, {identity} from \"./decompose.js\";\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nexport default function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n}\n","export {default as path} from \"./path.js\";\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n a,\n b = polygon[n - 1],\n area = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n area += a[1] * b[0] - a[0] * b[1];\n }\n\n return area / 2;\n}\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n x = 0,\n y = 0,\n a,\n b = polygon[n - 1],\n c,\n k = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n k += c = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * c;\n y += (a[1] + b[1]) * c;\n }\n\n return k *= 3, [x / k, y / k];\n}\n","export default function(polygon, point) {\n var n = polygon.length,\n p = polygon[n - 1],\n x = point[0], y = point[1],\n x0 = p[0], y0 = p[1],\n x1, y1,\n inside = false;\n\n for (var i = 0; i < n; ++i) {\n p = polygon[i], x1 = p[0], y1 = p[1];\n if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;\n x0 = x1, y0 = y1;\n }\n\n return inside;\n}\n","// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of\n// the 3D cross product in a quadrant I Cartesian coordinate system (+x is\n// right, +y is up). Returns a positive value if ABC is counter-clockwise,\n// negative if clockwise, and zero if the points are collinear.\nexport default function(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n}\n","import cross from \"./cross.js\";\n\nfunction lexicographicOrder(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n}\n\n// Computes the upper convex hull per the monotone chain algorithm.\n// Assumes points.length >= 3, is sorted by x, unique in y.\n// Returns an array of indices into points in left-to-right order.\nfunction computeUpperHullIndexes(points) {\n var n = points.length,\n indexes = [0, 1],\n size = 2;\n\n for (var i = 2; i < n; ++i) {\n while (size > 1 && cross(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;\n indexes[size++] = i;\n }\n\n return indexes.slice(0, size); // remove popped points\n}\n\nexport default function(points) {\n if ((n = points.length) < 3) return null;\n\n var i,\n n,\n sortedPoints = new Array(n),\n flippedPoints = new Array(n);\n\n for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];\n sortedPoints.sort(lexicographicOrder);\n for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];\n\n var upperIndexes = computeUpperHullIndexes(sortedPoints),\n lowerIndexes = computeUpperHullIndexes(flippedPoints);\n\n // Construct the hull polygon, removing possible duplicate endpoints.\n var skipLeft = lowerIndexes[0] === upperIndexes[0],\n skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],\n hull = [];\n\n // Add upper hull in right-to-l order.\n // Then add lower hull in left-to-right order.\n for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);\n for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);\n\n return hull;\n}\n","export {default as polygonArea} from \"./area.js\";\nexport {default as polygonCentroid} from \"./centroid.js\";\nexport {default as polygonHull} from \"./hull.js\";\nexport {default as polygonContains} from \"./contains.js\";\nexport {default as polygonLength} from \"./length.js\";\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n b = polygon[n - 1],\n xa,\n ya,\n xb = b[0],\n yb = b[1],\n perimeter = 0;\n\n while (++i < n) {\n xa = xb;\n ya = yb;\n b = polygon[i];\n xb = b[0];\n yb = b[1];\n xa -= xb;\n ya -= yb;\n perimeter += Math.sqrt(xa * xa + ya * ya);\n }\n\n return perimeter;\n}\n","export default function(d) {\n var x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export {default as quadtree} from \"./quadtree.js\";\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","import defaultSource from \"./defaultSource\";\nimport irwinHall from \"./irwinHall\";\n\nexport default (function sourceRandomBates(source) {\n function randomBates(n) {\n var randomIrwinHall = irwinHall.source(source)(n);\n return function() {\n return randomIrwinHall() / n;\n };\n }\n\n randomBates.source = sourceRandomBates;\n\n return randomBates;\n})(defaultSource);\n","export default function() {\n return Math.random();\n}\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomExponential(source) {\n function randomExponential(lambda) {\n return function() {\n return -Math.log(1 - source()) / lambda;\n };\n }\n\n randomExponential.source = sourceRandomExponential;\n\n return randomExponential;\n})(defaultSource);\n","export {default as randomUniform} from \"./uniform\";\nexport {default as randomNormal} from \"./normal\";\nexport {default as randomLogNormal} from \"./logNormal\";\nexport {default as randomBates} from \"./bates\";\nexport {default as randomIrwinHall} from \"./irwinHall\";\nexport {default as randomExponential} from \"./exponential\";\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomIrwinHall(source) {\n function randomIrwinHall(n) {\n return function() {\n for (var sum = 0, i = 0; i < n; ++i) sum += source();\n return sum;\n };\n }\n\n randomIrwinHall.source = sourceRandomIrwinHall;\n\n return randomIrwinHall;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\nimport normal from \"./normal\";\n\nexport default (function sourceRandomLogNormal(source) {\n function randomLogNormal() {\n var randomNormal = normal.source(source).apply(this, arguments);\n return function() {\n return Math.exp(randomNormal());\n };\n }\n\n randomLogNormal.source = sourceRandomLogNormal;\n\n return randomLogNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomNormal(source) {\n function randomNormal(mu, sigma) {\n var x, r;\n mu = mu == null ? 0 : +mu;\n sigma = sigma == null ? 1 : +sigma;\n return function() {\n var y;\n\n // If available, use the second previously-generated uniform random.\n if (x != null) y = x, x = null;\n\n // Otherwise, generate a new x and y.\n else do {\n x = source() * 2 - 1;\n y = source() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n\n return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);\n };\n }\n\n randomNormal.source = sourceRandomNormal;\n\n return randomNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomUniform(source) {\n function randomUniform(min, max) {\n min = min == null ? 0 : +min;\n max = max == null ? 1 : +max;\n if (arguments.length === 1) max = min, min = 0;\n else max -= min;\n return function() {\n return source() * max + min;\n };\n }\n\n randomUniform.source = sourceRandomUniform;\n\n return randomUniform;\n})(defaultSource);\n","import colors from \"../colors.js\";\n\nexport default colors(\"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n","export default function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"d8b365f5f5f55ab4ac\",\n \"a6611adfc27d80cdc1018571\",\n \"a6611adfc27df5f5f580cdc1018571\",\n \"8c510ad8b365f6e8c3c7eae55ab4ac01665e\",\n \"8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e\",\n \"8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e\",\n \"8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e\",\n \"5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30\",\n \"5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"af8dc3f7f7f77fbf7b\",\n \"7b3294c2a5cfa6dba0008837\",\n \"7b3294c2a5cff7f7f7a6dba0008837\",\n \"762a83af8dc3e7d4e8d9f0d37fbf7b1b7837\",\n \"762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837\",\n \"762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837\",\n \"762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837\",\n \"40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b\",\n \"40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e9a3c9f7f7f7a1d76a\",\n \"d01c8bf1b6dab8e1864dac26\",\n \"d01c8bf1b6daf7f7f7b8e1864dac26\",\n \"c51b7de9a3c9fde0efe6f5d0a1d76a4d9221\",\n \"c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221\",\n \"c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221\",\n \"c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221\",\n \"8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419\",\n \"8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"998ec3f7f7f7f1a340\",\n \"5e3c99b2abd2fdb863e66101\",\n \"5e3c99b2abd2f7f7f7fdb863e66101\",\n \"542788998ec3d8daebfee0b6f1a340b35806\",\n \"542788998ec3d8daebf7f7f7fee0b6f1a340b35806\",\n \"5427888073acb2abd2d8daebfee0b6fdb863e08214b35806\",\n \"5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806\",\n \"2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08\",\n \"2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62f7f7f767a9cf\",\n \"ca0020f4a58292c5de0571b0\",\n \"ca0020f4a582f7f7f792c5de0571b0\",\n \"b2182bef8a62fddbc7d1e5f067a9cf2166ac\",\n \"b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac\",\n \"b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac\",\n \"b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac\",\n \"67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061\",\n \"67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62ffffff999999\",\n \"ca0020f4a582bababa404040\",\n \"ca0020f4a582ffffffbababa404040\",\n \"b2182bef8a62fddbc7e0e0e09999994d4d4d\",\n \"b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d\",\n \"b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d\",\n \"b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d\",\n \"67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a\",\n \"67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91bfdb\",\n \"d7191cfdae61abd9e92c7bb6\",\n \"d7191cfdae61ffffbfabd9e92c7bb6\",\n \"d73027fc8d59fee090e0f3f891bfdb4575b4\",\n \"d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4\",\n \"d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4\",\n \"d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4\",\n \"a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695\",\n \"a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91cf60\",\n \"d7191cfdae61a6d96a1a9641\",\n \"d7191cfdae61ffffbfa6d96a1a9641\",\n \"d73027fc8d59fee08bd9ef8b91cf601a9850\",\n \"d73027fc8d59fee08bffffbfd9ef8b91cf601a9850\",\n \"d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850\",\n \"d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850\",\n \"a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837\",\n \"a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf99d594\",\n \"d7191cfdae61abdda42b83ba\",\n \"d7191cfdae61ffffbfabdda42b83ba\",\n \"d53e4ffc8d59fee08be6f59899d5943288bd\",\n \"d53e4ffc8d59fee08bffffbfe6f59899d5943288bd\",\n \"d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd\",\n \"d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd\",\n \"9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2\",\n \"9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2\"\n).map(colors);\n\nexport default ramp(scheme);\n","export {default as schemeCategory10} from \"./categorical/category10.js\";\nexport {default as schemeAccent} from \"./categorical/Accent.js\";\nexport {default as schemeDark2} from \"./categorical/Dark2.js\";\nexport {default as schemePaired} from \"./categorical/Paired.js\";\nexport {default as schemePastel1} from \"./categorical/Pastel1.js\";\nexport {default as schemePastel2} from \"./categorical/Pastel2.js\";\nexport {default as schemeSet1} from \"./categorical/Set1.js\";\nexport {default as schemeSet2} from \"./categorical/Set2.js\";\nexport {default as schemeSet3} from \"./categorical/Set3.js\";\nexport {default as schemeTableau10} from \"./categorical/Tableau10.js\";\nexport {default as interpolateBrBG, scheme as schemeBrBG} from \"./diverging/BrBG.js\";\nexport {default as interpolatePRGn, scheme as schemePRGn} from \"./diverging/PRGn.js\";\nexport {default as interpolatePiYG, scheme as schemePiYG} from \"./diverging/PiYG.js\";\nexport {default as interpolatePuOr, scheme as schemePuOr} from \"./diverging/PuOr.js\";\nexport {default as interpolateRdBu, scheme as schemeRdBu} from \"./diverging/RdBu.js\";\nexport {default as interpolateRdGy, scheme as schemeRdGy} from \"./diverging/RdGy.js\";\nexport {default as interpolateRdYlBu, scheme as schemeRdYlBu} from \"./diverging/RdYlBu.js\";\nexport {default as interpolateRdYlGn, scheme as schemeRdYlGn} from \"./diverging/RdYlGn.js\";\nexport {default as interpolateSpectral, scheme as schemeSpectral} from \"./diverging/Spectral.js\";\nexport {default as interpolateBuGn, scheme as schemeBuGn} from \"./sequential-multi/BuGn.js\";\nexport {default as interpolateBuPu, scheme as schemeBuPu} from \"./sequential-multi/BuPu.js\";\nexport {default as interpolateGnBu, scheme as schemeGnBu} from \"./sequential-multi/GnBu.js\";\nexport {default as interpolateOrRd, scheme as schemeOrRd} from \"./sequential-multi/OrRd.js\";\nexport {default as interpolatePuBuGn, scheme as schemePuBuGn} from \"./sequential-multi/PuBuGn.js\";\nexport {default as interpolatePuBu, scheme as schemePuBu} from \"./sequential-multi/PuBu.js\";\nexport {default as interpolatePuRd, scheme as schemePuRd} from \"./sequential-multi/PuRd.js\";\nexport {default as interpolateRdPu, scheme as schemeRdPu} from \"./sequential-multi/RdPu.js\";\nexport {default as interpolateYlGnBu, scheme as schemeYlGnBu} from \"./sequential-multi/YlGnBu.js\";\nexport {default as interpolateYlGn, scheme as schemeYlGn} from \"./sequential-multi/YlGn.js\";\nexport {default as interpolateYlOrBr, scheme as schemeYlOrBr} from \"./sequential-multi/YlOrBr.js\";\nexport {default as interpolateYlOrRd, scheme as schemeYlOrRd} from \"./sequential-multi/YlOrRd.js\";\nexport {default as interpolateBlues, scheme as schemeBlues} from \"./sequential-single/Blues.js\";\nexport {default as interpolateGreens, scheme as schemeGreens} from \"./sequential-single/Greens.js\";\nexport {default as interpolateGreys, scheme as schemeGreys} from \"./sequential-single/Greys.js\";\nexport {default as interpolatePurples, scheme as schemePurples} from \"./sequential-single/Purples.js\";\nexport {default as interpolateReds, scheme as schemeReds} from \"./sequential-single/Reds.js\";\nexport {default as interpolateOranges, scheme as schemeOranges} from \"./sequential-single/Oranges.js\";\nexport {default as interpolateCividis} from \"./sequential-multi/cividis.js\";\nexport {default as interpolateCubehelixDefault} from \"./sequential-multi/cubehelix.js\";\nexport {default as interpolateRainbow, warm as interpolateWarm, cool as interpolateCool} from \"./sequential-multi/rainbow.js\";\nexport {default as interpolateSinebow} from \"./sequential-multi/sinebow.js\";\nexport {default as interpolateTurbo} from \"./sequential-multi/turbo.js\";\nexport {default as interpolateViridis, magma as interpolateMagma, inferno as interpolateInferno, plasma as interpolatePlasma} from \"./sequential-multi/viridis.js\";\n","import {interpolateRgbBasis} from \"d3-interpolate\";\n\nexport default function(scheme) {\n return interpolateRgbBasis(scheme[scheme.length - 1]);\n}\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5f999d8c92ca25f\",\n \"edf8fbb2e2e266c2a4238b45\",\n \"edf8fbb2e2e266c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0ecf49ebcda8856a7\",\n \"edf8fbb3cde38c96c688419d\",\n \"edf8fbb3cde38c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0f3dba8ddb543a2ca\",\n \"f0f9e8bae4bc7bccc42b8cbe\",\n \"f0f9e8bae4bc7bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee8c8fdbb84e34a33\",\n \"fef0d9fdcc8afc8d59d7301f\",\n \"fef0d9fdcc8afc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece7f2a6bddb2b8cbe\",\n \"f1eef6bdc9e174a9cf0570b0\",\n \"f1eef6bdc9e174a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece2f0a6bddb1c9099\",\n \"f6eff7bdc9e167a9cf02818a\",\n \"f6eff7bdc9e167a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e7e1efc994c7dd1c77\",\n \"f1eef6d7b5d8df65b0ce1256\",\n \"f1eef6d7b5d8df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fde0ddfa9fb5c51b8a\",\n \"feebe2fbb4b9f768a1ae017e\",\n \"feebe2fbb4b9f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f7fcb9addd8e31a354\",\n \"ffffccc2e69978c679238443\",\n \"ffffccc2e69978c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"edf8b17fcdbb2c7fb8\",\n \"ffffcca1dab441b6c4225ea8\",\n \"ffffcca1dab441b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fff7bcfec44fd95f0e\",\n \"ffffd4fed98efe9929cc4c02\",\n \"ffffd4fed98efe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ffeda0feb24cf03b20\",\n \"ffffb2fecc5cfd8d3ce31a1c\",\n \"ffffb2fecc5cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026\"\n).map(colors);\n\nexport default ramp(scheme);\n","export default function(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67)))))))\n + \")\";\n}\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar c = cubehelix();\n\nexport default function(t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n c.h = 360 * t - 100;\n c.s = 1.5 - 1.5 * ts;\n c.l = 0.8 - 0.9 * ts;\n return c + \"\";\n}\n","import {rgb} from \"d3-color\";\n\nvar c = rgb(),\n pi_1_3 = Math.PI / 3,\n pi_2_3 = Math.PI * 2 / 3;\n\nexport default function(t) {\n var x;\n t = (0.5 - t) * Math.PI;\n c.r = 255 * (x = Math.sin(t)) * x;\n c.g = 255 * (x = Math.sin(t + pi_1_3)) * x;\n c.b = 255 * (x = Math.sin(t + pi_2_3)) * x;\n return c + \"\";\n}\n","export default function(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66)))))))\n + \")\";\n}\n","import colors from \"../colors.js\";\n\nfunction ramp(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n\nexport default ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\n\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"deebf79ecae13182bd\",\n \"eff3ffbdd7e76baed62171b5\",\n \"eff3ffbdd7e76baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5e0a1d99b31a354\",\n \"edf8e9bae4b374c476238b45\",\n \"edf8e9bae4b374c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f0f0f0bdbdbd636363\",\n \"f7f7f7cccccc969696525252\",\n \"f7f7f7cccccc969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee6cefdae6be6550d\",\n \"feeddefdbe85fd8d3cd94701\",\n \"feeddefdbe85fd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"efedf5bcbddc756bb1\",\n \"f2f0f7cbc9e29e9ac86a51a3\",\n \"f2f0f7cbc9e29e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee0d2fc9272de2d26\",\n \"fee5d9fcae91fb6a4acb181d\",\n \"fee5d9fcae91fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d\"\n).map(colors);\n\nexport default ramp(scheme);\n","var array = Array.prototype;\n\nexport var map = array.map;\nexport var slice = array.slice;\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init\";\nimport ordinal from \"./ordinal\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), range)\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport {map, slice} from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(domain) {\n var a = domain[0], b = domain[domain.length - 1], t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = map.call(_, number), clamp === identity || (clamp = clamper(domain)), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? clamper(domain) : identity, scale) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous(transform, untransform) {\n return transformer()(transform, untransform);\n}\n","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {copy} from \"./sequential\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (x < t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), t2 = transform(x2 = +_[2]), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1);\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","import {map} from \"./array\";\nimport {linearish} from \"./linear\";\nimport number from \"./number\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = map.call(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? map.call(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export {\n default as scaleBand,\n point as scalePoint\n} from \"./band\";\n\nexport {\n default as scaleIdentity\n} from \"./identity\";\n\nexport {\n default as scaleLinear\n} from \"./linear\";\n\nexport {\n default as scaleLog\n} from \"./log\";\n\nexport {\n default as scaleSymlog\n} from \"./symlog\";\n\nexport {\n default as scaleOrdinal,\n implicit as scaleImplicit\n} from \"./ordinal\";\n\nexport {\n default as scalePow,\n sqrt as scaleSqrt\n} from \"./pow\";\n\nexport {\n default as scaleQuantile\n} from \"./quantile\";\n\nexport {\n default as scaleQuantize\n} from \"./quantize\";\n\nexport {\n default as scaleThreshold\n} from \"./threshold\";\n\nexport {\n default as scaleTime\n} from \"./time\";\n\nexport {\n default as scaleUtc\n} from \"./utcTime\";\n\nexport {\n default as scaleSequential,\n sequentialLog as scaleSequentialLog,\n sequentialPow as scaleSequentialPow,\n sequentialSqrt as scaleSequentialSqrt,\n sequentialSymlog as scaleSequentialSymlog\n} from \"./sequential\";\n\nexport {\n default as scaleSequentialQuantile\n} from \"./sequentialQuantile\";\n\nexport {\n default as scaleDiverging,\n divergingLog as scaleDivergingLog,\n divergingPow as scaleDivergingPow,\n divergingSqrt as scaleDivergingSqrt,\n divergingSymlog as scaleDivergingSymlog\n} from \"./diverging\";\n\nexport {\n default as tickFormat\n} from \"./tickFormat\";\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.interpolator(domain); break;\n default: this.interpolator(interpolator).domain(domain); break;\n }\n return this;\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport tickFormat from \"./tickFormat\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous(identity, identity);\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i < j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","export default function(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","export default function(x) {\n return +x;\n}\n","import {map} from \"d3-collection\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport var implicit = {name: \"implicit\"};\n\nexport default function ordinal() {\n var index = map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {linearish} from \"./linear\";\nimport {copy, identity, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile as threshold} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {linearish} from \"./linear\";\nimport {initRange} from \"./init\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = slice.call(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect} from \"d3-array\";\nimport {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (!isNaN(x = +x)) return interpolator((bisect(domain, x) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {linearish} from \"./linear\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {bisector, tickStep} from \"d3-array\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport {map} from \"./array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport nice from \"./nice\";\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(identity, identity),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function() {\n return initRange.apply(calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {calendar} from \"./time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond} from \"d3-time\";\nimport {initRange} from \"./init\";\n\nexport default function() {\n return initRange.apply(calendar(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import creator from \"./creator\";\nimport select from \"./select\";\n\nexport default function(name) {\n return select(creator(name).call(document.documentElement));\n}\n","import namespace from \"./namespace\";\nimport {xhtml} from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","export {default as create} from \"./create\";\nexport {default as creator} from \"./creator\";\nexport {default as local} from \"./local\";\nexport {default as matcher} from \"./matcher\";\nexport {default as mouse} from \"./mouse\";\nexport {default as namespace} from \"./namespace\";\nexport {default as namespaces} from \"./namespaces\";\nexport {default as clientPoint} from \"./point\";\nexport {default as select} from \"./select\";\nexport {default as selectAll} from \"./selectAll\";\nexport {default as selection} from \"./selection/index\";\nexport {default as selector} from \"./selector\";\nexport {default as selectorAll} from \"./selectorAll\";\nexport {styleValue as style} from \"./selection/style\";\nexport {default as touch} from \"./touch\";\nexport {default as touches} from \"./touches\";\nexport {default as window} from \"./window\";\nexport {event, customEvent} from \"./selection/on\";\n","var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point(node, event);\n}\n","import namespaces from \"./namespaces\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","export default function(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n}\n","import creator from \"../creator\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","import {Selection} from \"./index\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nexport default function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export default function() {\n return !this.node();\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nexport default selection;\n","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import {Selection} from \"./index\";\n\nexport default function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","import {Selection} from \"./index\";\nimport selector from \"../selector\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index\";\nimport selectorAll from \"../selectorAll\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n","import {Selection} from \"./index\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {event} from \"./selection/on\";\n\nexport default function() {\n var current = event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches) {\n if (touches == null) touches = sourceEvent().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = point(node, touches[i]);\n }\n\n return points;\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x0 = pointX,\n x1 = null,\n y0 = constant(0),\n y1 = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport area from \"./area.js\";\nimport {lineRadial} from \"./lineRadial.js\";\n\nexport default function() {\n var a = area().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n","export var slice = Array.prototype.slice;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","export {default as arc} from \"./arc.js\";\nexport {default as area} from \"./area.js\";\nexport {default as line} from \"./line.js\";\nexport {default as pie} from \"./pie.js\";\nexport {default as areaRadial, default as radialArea} from \"./areaRadial.js\"; // Note: radialArea is deprecated!\nexport {default as lineRadial, default as radialLine} from \"./lineRadial.js\"; // Note: radialLine is deprecated!\nexport {default as pointRadial} from \"./pointRadial.js\";\nexport {linkHorizontal, linkVertical, linkRadial} from \"./link/index.js\";\n\nexport {default as symbol, symbols} from \"./symbol.js\";\nexport {default as symbolCircle} from \"./symbol/circle.js\";\nexport {default as symbolCross} from \"./symbol/cross.js\";\nexport {default as symbolDiamond} from \"./symbol/diamond.js\";\nexport {default as symbolSquare} from \"./symbol/square.js\";\nexport {default as symbolStar} from \"./symbol/star.js\";\nexport {default as symbolTriangle} from \"./symbol/triangle.js\";\nexport {default as symbolWye} from \"./symbol/wye.js\";\n\nexport {default as curveBasisClosed} from \"./curve/basisClosed.js\";\nexport {default as curveBasisOpen} from \"./curve/basisOpen.js\";\nexport {default as curveBasis} from \"./curve/basis.js\";\nexport {default as curveBundle} from \"./curve/bundle.js\";\nexport {default as curveCardinalClosed} from \"./curve/cardinalClosed.js\";\nexport {default as curveCardinalOpen} from \"./curve/cardinalOpen.js\";\nexport {default as curveCardinal} from \"./curve/cardinal.js\";\nexport {default as curveCatmullRomClosed} from \"./curve/catmullRomClosed.js\";\nexport {default as curveCatmullRomOpen} from \"./curve/catmullRomOpen.js\";\nexport {default as curveCatmullRom} from \"./curve/catmullRom.js\";\nexport {default as curveLinearClosed} from \"./curve/linearClosed.js\";\nexport {default as curveLinear} from \"./curve/linear.js\";\nexport {monotoneX as curveMonotoneX, monotoneY as curveMonotoneY} from \"./curve/monotone.js\";\nexport {default as curveNatural} from \"./curve/natural.js\";\nexport {default as curveStep, stepAfter as curveStepAfter, stepBefore as curveStepBefore} from \"./curve/step.js\";\n\nexport {default as stack} from \"./stack.js\";\nexport {default as stackOffsetExpand} from \"./offset/expand.js\";\nexport {default as stackOffsetDiverging} from \"./offset/diverging.js\";\nexport {default as stackOffsetNone} from \"./offset/none.js\";\nexport {default as stackOffsetSilhouette} from \"./offset/silhouette.js\";\nexport {default as stackOffsetWiggle} from \"./offset/wiggle.js\";\nexport {default as stackOrderAppearance} from \"./order/appearance.js\";\nexport {default as stackOrderAscending} from \"./order/ascending.js\";\nexport {default as stackOrderDescending} from \"./order/descending.js\";\nexport {default as stackOrderInsideOut} from \"./order/insideOut.js\";\nexport {default as stackOrderNone} from \"./order/none.js\";\nexport {default as stackOrderReverse} from \"./order/reverse.js\";\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","export default function() {}\n","export default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var peaks = series.map(peak);\n return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var sums = series.map(sum);\n return none(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nexport function sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(series) {\n return ascending(series).reverse();\n}\n","import appearance from \"./appearance.js\";\nimport {sum} from \"./ascending.js\";\n\nexport default function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n return none(series).reverse();\n}\n","import constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = data.length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","export default function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}\n","import {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function() {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","export {default as timeFormatDefaultLocale, timeFormat, timeParse, utcFormat, utcParse} from \"./defaultLocale.js\";\nexport {default as timeFormatLocale} from \"./locale.js\";\nexport {default as isoFormat} from \"./isoFormat.js\";\nexport {default as isoParse} from \"./isoParse.js\";\n","import {utcFormat} from \"./defaultLocale.js\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : utcFormat(isoSpecifier);\n\nexport default formatIso;\n","import {isoSpecifier} from \"./isoFormat.js\";\nimport {utcParse} from \"./defaultLocale.js\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : utcParse(isoSpecifier);\n\nexport default parseIso;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","export {\n default as timeInterval\n} from \"./interval.js\";\n\nexport {\n default as timeMillisecond,\n milliseconds as timeMilliseconds,\n default as utcMillisecond,\n milliseconds as utcMilliseconds\n} from \"./millisecond.js\";\n\nexport {\n default as timeSecond,\n seconds as timeSeconds,\n default as utcSecond,\n seconds as utcSeconds\n} from \"./second.js\";\n\nexport {\n default as timeMinute,\n minutes as timeMinutes\n} from \"./minute.js\";\n\nexport {\n default as timeHour,\n hours as timeHours\n} from \"./hour.js\";\n\nexport {\n default as timeDay,\n days as timeDays\n} from \"./day.js\";\n\nexport {\n sunday as timeWeek,\n sundays as timeWeeks,\n sunday as timeSunday,\n sundays as timeSundays,\n monday as timeMonday,\n mondays as timeMondays,\n tuesday as timeTuesday,\n tuesdays as timeTuesdays,\n wednesday as timeWednesday,\n wednesdays as timeWednesdays,\n thursday as timeThursday,\n thursdays as timeThursdays,\n friday as timeFriday,\n fridays as timeFridays,\n saturday as timeSaturday,\n saturdays as timeSaturdays\n} from \"./week.js\";\n\nexport {\n default as timeMonth,\n months as timeMonths\n} from \"./month.js\";\n\nexport {\n default as timeYear,\n years as timeYears\n} from \"./year.js\";\n\nexport {\n default as utcMinute,\n utcMinutes as utcMinutes\n} from \"./utcMinute.js\";\n\nexport {\n default as utcHour,\n utcHours as utcHours\n} from \"./utcHour.js\";\n\nexport {\n default as utcDay,\n utcDays as utcDays\n} from \"./utcDay.js\";\n\nexport {\n utcSunday as utcWeek,\n utcSundays as utcWeeks,\n utcSunday as utcSunday,\n utcSundays as utcSundays,\n utcMonday as utcMonday,\n utcMondays as utcMondays,\n utcTuesday as utcTuesday,\n utcTuesdays as utcTuesdays,\n utcWednesday as utcWednesday,\n utcWednesdays as utcWednesdays,\n utcThursday as utcThursday,\n utcThursdays as utcThursdays,\n utcFriday as utcFriday,\n utcFridays as utcFridays,\n utcSaturday as utcSaturday,\n utcSaturdays as utcSaturdays\n} from \"./utcWeek.js\";\n\nexport {\n default as utcMonth,\n utcMonths as utcMonths\n} from \"./utcMonth.js\";\n\nexport {\n default as utcYear,\n utcYears as utcYears\n} from \"./utcYear.js\";\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","export {\n now,\n timer,\n timerFlush\n} from \"./timer.js\";\n\nexport {\n default as timeout\n} from \"./timeout.js\";\n\nexport {\n default as interval\n} from \"./interval.js\";\n","import {Timer, now} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer, total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n delay = +delay, time = time == null ? now() : +time;\n t.restart(function tick(elapsed) {\n elapsed += total;\n t.restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n return t;\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Transition} from \"./transition/index.js\";\nimport {SCHEDULED} from \"./transition/schedule.js\";\n\nvar root = [null];\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n}\n","import \"./selection/index.js\";\nexport {default as transition} from \"./transition/index.js\";\nexport {default as active} from \"./active.js\";\nexport {default as interrupt} from \"./interrupt.js\";\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n });\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n end: transition_end\n};\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {createCell} from \"./Cell\";\nimport {attachCircle, detachCircle} from \"./Circle\";\nimport {createEdge, setEdgeEnd} from \"./Edge\";\nimport {beaches, epsilon} from \"./Diagram\";\n\nvar beachPool = [];\n\nfunction Beach() {\n RedBlackNode(this);\n this.edge =\n this.site =\n this.circle = null;\n}\n\nfunction createBeach(site) {\n var beach = beachPool.pop() || new Beach;\n beach.site = site;\n return beach;\n}\n\nfunction detachBeach(beach) {\n detachCircle(beach);\n beaches.remove(beach);\n beachPool.push(beach);\n RedBlackNode(beach);\n}\n\nexport function removeBeach(beach) {\n var circle = beach.circle,\n x = circle.x,\n y = circle.cy,\n vertex = [x, y],\n previous = beach.P,\n next = beach.N,\n disappearing = [beach];\n\n detachBeach(beach);\n\n var lArc = previous;\n while (lArc.circle\n && Math.abs(x - lArc.circle.x) < epsilon\n && Math.abs(y - lArc.circle.cy) < epsilon) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n detachBeach(lArc);\n lArc = previous;\n }\n\n disappearing.unshift(lArc);\n detachCircle(lArc);\n\n var rArc = next;\n while (rArc.circle\n && Math.abs(x - rArc.circle.x) < epsilon\n && Math.abs(y - rArc.circle.cy) < epsilon) {\n next = rArc.N;\n disappearing.push(rArc);\n detachBeach(rArc);\n rArc = next;\n }\n\n disappearing.push(rArc);\n detachCircle(rArc);\n\n var nArcs = disappearing.length,\n iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n setEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = createEdge(lArc.site, rArc.site, null, vertex);\n\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nexport function addBeach(site) {\n var x = site[0],\n directrix = site[1],\n lArc,\n rArc,\n dxl,\n dxr,\n node = beaches._;\n\n while (node) {\n dxl = leftBreakPoint(node, directrix) - x;\n if (dxl > epsilon) node = node.L; else {\n dxr = x - rightBreakPoint(node, directrix);\n if (dxr > epsilon) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -epsilon) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -epsilon) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n\n createCell(site);\n var newArc = createBeach(site);\n beaches.insert(lArc, newArc);\n\n if (!lArc && !rArc) return;\n\n if (lArc === rArc) {\n detachCircle(lArc);\n rArc = createBeach(lArc.site);\n beaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = createEdge(lArc.site, newArc.site);\n attachCircle(lArc);\n attachCircle(rArc);\n return;\n }\n\n if (!rArc) { // && lArc\n newArc.edge = createEdge(lArc.site, newArc.site);\n return;\n }\n\n // else lArc !== rArc\n detachCircle(lArc);\n detachCircle(rArc);\n\n var lSite = lArc.site,\n ax = lSite[0],\n ay = lSite[1],\n bx = site[0] - ax,\n by = site[1] - ay,\n rSite = rArc.site,\n cx = rSite[0] - ax,\n cy = rSite[1] - ay,\n d = 2 * (bx * cy - by * cx),\n hb = bx * bx + by * by,\n hc = cx * cx + cy * cy,\n vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];\n\n setEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = createEdge(lSite, site, null, vertex);\n rArc.edge = createEdge(site, rSite, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nfunction leftBreakPoint(arc, directrix) {\n var site = arc.site,\n rfocx = site[0],\n rfocy = site[1],\n pby2 = rfocy - directrix;\n\n if (!pby2) return rfocx;\n\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n\n site = lArc.site;\n var lfocx = site[0],\n lfocy = site[1],\n plby2 = lfocy - directrix;\n\n if (!plby2) return lfocx;\n\n var hl = lfocx - rfocx,\n aby2 = 1 / pby2 - 1 / plby2,\n b = hl / plby2;\n\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n\n return (rfocx + lfocx) / 2;\n}\n\nfunction rightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return leftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site[1] === directrix ? site[0] : Infinity;\n}\n","import {createBorderEdge} from \"./Edge\";\nimport {cells, edges, epsilon} from \"./Diagram\";\n\nexport function createCell(site) {\n return cells[site.index] = {\n site: site,\n halfedges: []\n };\n}\n\nfunction cellHalfedgeAngle(cell, edge) {\n var site = cell.site,\n va = edge.left,\n vb = edge.right;\n if (site === vb) vb = va, va = site;\n if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);\n if (site === va) va = edge[1], vb = edge[0];\n else va = edge[0], vb = edge[1];\n return Math.atan2(va[0] - vb[0], vb[1] - va[1]);\n}\n\nexport function cellHalfedgeStart(cell, edge) {\n return edge[+(edge.left !== cell.site)];\n}\n\nexport function cellHalfedgeEnd(cell, edge) {\n return edge[+(edge.left === cell.site)];\n}\n\nexport function sortCellHalfedges() {\n for (var i = 0, n = cells.length, cell, halfedges, j, m; i < n; ++i) {\n if ((cell = cells[i]) && (m = (halfedges = cell.halfedges).length)) {\n var index = new Array(m),\n array = new Array(m);\n for (j = 0; j < m; ++j) index[j] = j, array[j] = cellHalfedgeAngle(cell, edges[halfedges[j]]);\n index.sort(function(i, j) { return array[j] - array[i]; });\n for (j = 0; j < m; ++j) array[j] = halfedges[index[j]];\n for (j = 0; j < m; ++j) halfedges[j] = array[j];\n }\n }\n}\n\nexport function clipCells(x0, y0, x1, y1) {\n var nCells = cells.length,\n iCell,\n cell,\n site,\n iHalfedge,\n halfedges,\n nHalfedges,\n start,\n startX,\n startY,\n end,\n endX,\n endY,\n cover = true;\n\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n halfedges = cell.halfedges;\n iHalfedge = halfedges.length;\n\n // Remove any dangling clipped edges.\n while (iHalfedge--) {\n if (!edges[halfedges[iHalfedge]]) {\n halfedges.splice(iHalfedge, 1);\n }\n }\n\n // Insert any border edges as necessary.\n iHalfedge = 0, nHalfedges = halfedges.length;\n while (iHalfedge < nHalfedges) {\n end = cellHalfedgeEnd(cell, edges[halfedges[iHalfedge]]), endX = end[0], endY = end[1];\n start = cellHalfedgeStart(cell, edges[halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];\n if (Math.abs(endX - startX) > epsilon || Math.abs(endY - startY) > epsilon) {\n halfedges.splice(iHalfedge, 0, edges.push(createBorderEdge(site, end,\n Math.abs(endX - x0) < epsilon && y1 - endY > epsilon ? [x0, Math.abs(startX - x0) < epsilon ? startY : y1]\n : Math.abs(endY - y1) < epsilon && x1 - endX > epsilon ? [Math.abs(startY - y1) < epsilon ? startX : x1, y1]\n : Math.abs(endX - x1) < epsilon && endY - y0 > epsilon ? [x1, Math.abs(startX - x1) < epsilon ? startY : y0]\n : Math.abs(endY - y0) < epsilon && endX - x0 > epsilon ? [Math.abs(startY - y0) < epsilon ? startX : x0, y0]\n : null)) - 1);\n ++nHalfedges;\n }\n }\n\n if (nHalfedges) cover = false;\n }\n }\n\n // If there weren’t any edges, have the closest site cover the extent.\n // It doesn’t matter which corner of the extent we measure!\n if (cover) {\n var dx, dy, d2, dc = Infinity;\n\n for (iCell = 0, cover = null; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n dx = site[0] - x0;\n dy = site[1] - y0;\n d2 = dx * dx + dy * dy;\n if (d2 < dc) dc = d2, cover = cell;\n }\n }\n\n if (cover) {\n var v00 = [x0, y0], v01 = [x0, y1], v11 = [x1, y1], v10 = [x1, y0];\n cover.halfedges.push(\n edges.push(createBorderEdge(site = cover.site, v00, v01)) - 1,\n edges.push(createBorderEdge(site, v01, v11)) - 1,\n edges.push(createBorderEdge(site, v11, v10)) - 1,\n edges.push(createBorderEdge(site, v10, v00)) - 1\n );\n }\n }\n\n // Lastly delete any cells with no edges; these were entirely clipped.\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n if (!cell.halfedges.length) {\n delete cells[iCell];\n }\n }\n }\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {circles, epsilon2} from \"./Diagram\";\n\nvar circlePool = [];\n\nexport var firstCircle;\n\nfunction Circle() {\n RedBlackNode(this);\n this.x =\n this.y =\n this.arc =\n this.site =\n this.cy = null;\n}\n\nexport function attachCircle(arc) {\n var lArc = arc.P,\n rArc = arc.N;\n\n if (!lArc || !rArc) return;\n\n var lSite = lArc.site,\n cSite = arc.site,\n rSite = rArc.site;\n\n if (lSite === rSite) return;\n\n var bx = cSite[0],\n by = cSite[1],\n ax = lSite[0] - bx,\n ay = lSite[1] - by,\n cx = rSite[0] - bx,\n cy = rSite[1] - by;\n\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -epsilon2) return;\n\n var ha = ax * ax + ay * ay,\n hc = cx * cx + cy * cy,\n x = (cy * ha - ay * hc) / d,\n y = (ax * hc - cx * ha) / d;\n\n var circle = circlePool.pop() || new Circle;\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom\n\n arc.circle = circle;\n\n var before = null,\n node = circles._;\n\n while (node) {\n if (circle.y < node.y || (circle.y === node.y && circle.x <= node.x)) {\n if (node.L) node = node.L;\n else { before = node.P; break; }\n } else {\n if (node.R) node = node.R;\n else { before = node; break; }\n }\n }\n\n circles.insert(before, circle);\n if (!before) firstCircle = circle;\n}\n\nexport function detachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) firstCircle = circle.N;\n circles.remove(circle);\n circlePool.push(circle);\n RedBlackNode(circle);\n arc.circle = null;\n }\n}\n","import {addBeach, removeBeach} from \"./Beach\";\nimport {sortCellHalfedges, cellHalfedgeStart, clipCells} from \"./Cell\";\nimport {firstCircle} from \"./Circle\";\nimport {clipEdges} from \"./Edge\";\nimport RedBlackTree from \"./RedBlackTree\";\n\nexport var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var beaches;\nexport var cells;\nexport var circles;\nexport var edges;\n\nfunction triangleArea(a, b, c) {\n return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);\n}\n\nfunction lexicographic(a, b) {\n return b[1] - a[1]\n || b[0] - a[0];\n}\n\nexport default function Diagram(sites, extent) {\n var site = sites.sort(lexicographic).pop(),\n x,\n y,\n circle;\n\n edges = [];\n cells = new Array(sites.length);\n beaches = new RedBlackTree;\n circles = new RedBlackTree;\n\n while (true) {\n circle = firstCircle;\n if (site && (!circle || site[1] < circle.y || (site[1] === circle.y && site[0] < circle.x))) {\n if (site[0] !== x || site[1] !== y) {\n addBeach(site);\n x = site[0], y = site[1];\n }\n site = sites.pop();\n } else if (circle) {\n removeBeach(circle.arc);\n } else {\n break;\n }\n }\n\n sortCellHalfedges();\n\n if (extent) {\n var x0 = +extent[0][0],\n y0 = +extent[0][1],\n x1 = +extent[1][0],\n y1 = +extent[1][1];\n clipEdges(x0, y0, x1, y1);\n clipCells(x0, y0, x1, y1);\n }\n\n this.edges = edges;\n this.cells = cells;\n\n beaches =\n circles =\n edges =\n cells = null;\n}\n\nDiagram.prototype = {\n constructor: Diagram,\n\n polygons: function() {\n var edges = this.edges;\n\n return this.cells.map(function(cell) {\n var polygon = cell.halfedges.map(function(i) { return cellHalfedgeStart(cell, edges[i]); });\n polygon.data = cell.site.data;\n return polygon;\n });\n },\n\n triangles: function() {\n var triangles = [],\n edges = this.edges;\n\n this.cells.forEach(function(cell, i) {\n if (!(m = (halfedges = cell.halfedges).length)) return;\n var site = cell.site,\n halfedges,\n j = -1,\n m,\n s0,\n e1 = edges[halfedges[m - 1]],\n s1 = e1.left === site ? e1.right : e1.left;\n\n while (++j < m) {\n s0 = s1;\n e1 = edges[halfedges[j]];\n s1 = e1.left === site ? e1.right : e1.left;\n if (s0 && s1 && i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {\n triangles.push([site.data, s0.data, s1.data]);\n }\n }\n });\n\n return triangles;\n },\n\n links: function() {\n return this.edges.filter(function(edge) {\n return edge.right;\n }).map(function(edge) {\n return {\n source: edge.left.data,\n target: edge.right.data\n };\n });\n },\n\n find: function(x, y, radius) {\n var that = this, i0, i1 = that._found || 0, n = that.cells.length, cell;\n\n // Use the previously-found cell, or start with an arbitrary one.\n while (!(cell = that.cells[i1])) if (++i1 >= n) return null;\n var dx = x - cell.site[0], dy = y - cell.site[1], d2 = dx * dx + dy * dy;\n\n // Traverse the half-edges to find a closer cell, if any.\n do {\n cell = that.cells[i0 = i1], i1 = null;\n cell.halfedges.forEach(function(e) {\n var edge = that.edges[e], v = edge.left;\n if ((v === cell.site || !v) && !(v = edge.right)) return;\n var vx = x - v[0], vy = y - v[1], v2 = vx * vx + vy * vy;\n if (v2 < d2) d2 = v2, i1 = v.index;\n });\n } while (i1 !== null);\n\n that._found = i0;\n\n return radius == null || d2 <= radius * radius ? cell.site : null;\n }\n}\n","import {cells, edges, epsilon} from \"./Diagram\";\n\nexport function createEdge(left, right, v0, v1) {\n var edge = [null, null],\n index = edges.push(edge) - 1;\n edge.left = left;\n edge.right = right;\n if (v0) setEdgeEnd(edge, left, right, v0);\n if (v1) setEdgeEnd(edge, right, left, v1);\n cells[left.index].halfedges.push(index);\n cells[right.index].halfedges.push(index);\n return edge;\n}\n\nexport function createBorderEdge(left, v0, v1) {\n var edge = [v0, v1];\n edge.left = left;\n return edge;\n}\n\nexport function setEdgeEnd(edge, left, right, vertex) {\n if (!edge[0] && !edge[1]) {\n edge[0] = vertex;\n edge.left = left;\n edge.right = right;\n } else if (edge.left === right) {\n edge[1] = vertex;\n } else {\n edge[0] = vertex;\n }\n}\n\n// Liang–Barsky line clipping.\nfunction clipEdge(edge, x0, y0, x1, y1) {\n var a = edge[0],\n b = edge[1],\n ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (!(t0 > 0) && !(t1 < 1)) return true; // TODO Better check?\n\n if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];\n if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];\n return true;\n}\n\nfunction connectEdge(edge, x0, y0, x1, y1) {\n var v1 = edge[1];\n if (v1) return true;\n\n var v0 = edge[0],\n left = edge.left,\n right = edge.right,\n lx = left[0],\n ly = left[1],\n rx = right[0],\n ry = right[1],\n fx = (lx + rx) / 2,\n fy = (ly + ry) / 2,\n fm,\n fb;\n\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!v0) v0 = [fx, y0];\n else if (v0[1] >= y1) return;\n v1 = [fx, y1];\n } else {\n if (!v0) v0 = [fx, y1];\n else if (v0[1] < y0) return;\n v1 = [fx, y0];\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!v0) v0 = [(y0 - fb) / fm, y0];\n else if (v0[1] >= y1) return;\n v1 = [(y1 - fb) / fm, y1];\n } else {\n if (!v0) v0 = [(y1 - fb) / fm, y1];\n else if (v0[1] < y0) return;\n v1 = [(y0 - fb) / fm, y0];\n }\n } else {\n if (ly < ry) {\n if (!v0) v0 = [x0, fm * x0 + fb];\n else if (v0[0] >= x1) return;\n v1 = [x1, fm * x1 + fb];\n } else {\n if (!v0) v0 = [x1, fm * x1 + fb];\n else if (v0[0] < x0) return;\n v1 = [x0, fm * x0 + fb];\n }\n }\n }\n\n edge[0] = v0;\n edge[1] = v1;\n return true;\n}\n\nexport function clipEdges(x0, y0, x1, y1) {\n var i = edges.length,\n edge;\n\n while (i--) {\n if (!connectEdge(edge = edges[i], x0, y0, x1, y1)\n || !clipEdge(edge, x0, y0, x1, y1)\n || !(Math.abs(edge[0][0] - edge[1][0]) > epsilon\n || Math.abs(edge[0][1] - edge[1][1]) > epsilon)) {\n delete edges[i];\n }\n }\n}\n","function RedBlackTree() {\n this._ = null; // root node\n}\n\nexport function RedBlackNode(node) {\n node.U = // parent node\n node.C = // color - true for red, false for black\n node.L = // left node\n node.R = // right node\n node.P = // previous node\n node.N = null; // next node\n}\n\nRedBlackTree.prototype = {\n constructor: RedBlackTree,\n\n insert: function(after, node) {\n var parent, grandpa, uncle;\n\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = RedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n RedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n RedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n\n remove: function(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n\n var parent = node.U,\n sibling,\n left = node.L,\n right = node.R,\n next,\n red;\n\n if (!left) next = right;\n else if (!right) next = left;\n else next = RedBlackFirst(right);\n\n if (parent) {\n if (parent.L === node) parent.L = next;\n else parent.R = next;\n } else {\n this._ = next;\n }\n\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) { node.C = false; return; }\n\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n RedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n RedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n RedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n RedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n\n if (node) node.C = false;\n }\n};\n\nfunction RedBlackRotateLeft(tree, node) {\n var p = node,\n q = node.R,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n}\n\nfunction RedBlackRotateRight(tree, node) {\n var p = node,\n q = node.L,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n}\n\nfunction RedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n}\n\nexport default RedBlackTree;\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export {default as voronoi} from \"./voronoi\";\n","export function x(d) {\n return d[0];\n}\n\nexport function y(d) {\n return d[1];\n}\n","import constant from \"./constant\";\nimport {x as pointX, y as pointY} from \"./point\";\nimport Diagram, {epsilon} from \"./Diagram\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n extent = null;\n\n function voronoi(data) {\n return new Diagram(data.map(function(d, i) {\n var s = [Math.round(x(d, i, data) / epsilon) * epsilon, Math.round(y(d, i, data) / epsilon) * epsilon];\n s.index = i;\n s.data = d;\n return s;\n }), extent);\n }\n\n voronoi.polygons = function(data) {\n return voronoi(data).polygons();\n };\n\n voronoi.links = function(data) {\n return voronoi(data).links();\n };\n\n voronoi.triangles = function(data) {\n return voronoi(data).triangles();\n };\n\n voronoi.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), voronoi) : x;\n };\n\n voronoi.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), voronoi) : y;\n };\n\n voronoi.extent = function(_) {\n return arguments.length ? (extent = _ == null ? null : [[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]], voronoi) : extent && [[extent[0][0], extent[0][1]], [extent[1][0], extent[1][1]]];\n };\n\n voronoi.size = function(_) {\n return arguments.length ? (extent = _ == null ? null : [[0, 0], [+_[0], +_[1]]], voronoi) : extent && [extent[1][0] - extent[0][0], extent[1][1] - extent[0][1]];\n };\n\n return voronoi;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function ZoomEvent(target, type, transform) {\n this.target = target;\n this.type = type;\n this.transform = transform;\n}\n","export {default as zoom} from \"./zoom.js\";\nexport {default as zoomTransform, identity as zoomIdentity} from \"./transform.js\";\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta() {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled)\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p);\n };\n\n zoom.scaleTo = function(selection, k, p) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p);\n };\n\n zoom.translateBy = function(selection, x, y) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n });\n };\n\n zoom.translateTo = function(selection, x, y, p) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n customEvent(new ZoomEvent(zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function wheeled() {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, arguments),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = mouse(this);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent();\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, arguments, true),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = mouse(this),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation();\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved() {\n noevent();\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = mouse(g.that), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped() {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent();\n g.end();\n }\n }\n\n function dblclicked() {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = mouse(this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments), translateExtent);\n\n noevent();\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0);\n else select(this).call(zoom.transform, t1);\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, arguments, event.changedTouches.length === n),\n started, i, t, p;\n\n nopropagation();\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved() {\n if (!this.__zooming) return;\n var g = gesture(this, arguments),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent();\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n g.taps = 0;\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended() {\n if (!this.__zooming) return;\n var g = gesture(this, arguments),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation();\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n return zoom;\n}\n","export var name = \"d3\";\nexport var version = \"5.15.0\";\nexport var description = \"Data-Driven Documents\";\nexport var keywords = [\"dom\",\"visualization\",\"svg\",\"animation\",\"canvas\"];\nexport var homepage = \"https://d3js.org\";\nexport var license = \"BSD-3-Clause\";\nexport var author = {\"name\":\"Mike Bostock\",\"url\":\"https://bost.ocks.org/mike\"};\nexport var main = \"dist/d3.node.js\";\nexport var unpkg = \"dist/d3.min.js\";\nexport var jsdelivr = \"dist/d3.min.js\";\nexport var module = \"index.js\";\nexport var repository = {\"type\":\"git\",\"url\":\"https://github.com/d3/d3.git\"};\nexport var files = [\"dist/**/*.js\",\"index.js\"];\nexport var scripts = {\"pretest\":\"rimraf dist && mkdir dist && json2module package.json > dist/package.js && rollup -c\",\"test\":\"tape 'test/**/*-test.js'\",\"prepublishOnly\":\"yarn test\",\"postpublish\":\"git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3/dist/d3.js d3.v5.js && cp ../d3/dist/d3.min.js d3.v5.min.js && git add d3.v5.js d3.v5.min.js && git commit -m \\\"d3 ${npm_package_version}\\\" && git push && cd - && cd ../d3-bower && git pull && cp ../d3/LICENSE ../d3/README.md ../d3/dist/d3.js ../d3/dist/d3.min.js . && git add -- LICENSE README.md d3.js d3.min.js && git commit -m \\\"${npm_package_version}\\\" && git tag -am \\\"${npm_package_version}\\\" v${npm_package_version} && git push && git push --tags && cd - && zip -j dist/d3.zip -- LICENSE README.md API.md CHANGES.md dist/d3.js dist/d3.min.js\"};\nexport var devDependencies = {\"json2module\":\"0.0\",\"rimraf\":\"2\",\"rollup\":\"1\",\"rollup-plugin-ascii\":\"0.0\",\"rollup-plugin-node-resolve\":\"3\",\"rollup-plugin-terser\":\"5\",\"tape\":\"4\"};\nexport var dependencies = {\"d3-array\":\"1\",\"d3-axis\":\"1\",\"d3-brush\":\"1\",\"d3-chord\":\"1\",\"d3-collection\":\"1\",\"d3-color\":\"1\",\"d3-contour\":\"1\",\"d3-dispatch\":\"1\",\"d3-drag\":\"1\",\"d3-dsv\":\"1\",\"d3-ease\":\"1\",\"d3-fetch\":\"1\",\"d3-force\":\"1\",\"d3-format\":\"1\",\"d3-geo\":\"1\",\"d3-hierarchy\":\"1\",\"d3-interpolate\":\"1\",\"d3-path\":\"1\",\"d3-polygon\":\"1\",\"d3-quadtree\":\"1\",\"d3-random\":\"1\",\"d3-scale\":\"2\",\"d3-scale-chromatic\":\"1\",\"d3-selection\":\"1\",\"d3-shape\":\"1\",\"d3-time\":\"1\",\"d3-time-format\":\"2\",\"d3-timer\":\"1\",\"d3-transition\":\"1\",\"d3-voronoi\":\"1\",\"d3-zoom\":\"1\"};\n","export {version} from \"./dist/package.js\";\nexport * from \"d3-array\";\nexport * from \"d3-axis\";\nexport * from \"d3-brush\";\nexport * from \"d3-chord\";\nexport * from \"d3-collection\";\nexport * from \"d3-color\";\nexport * from \"d3-contour\";\nexport * from \"d3-dispatch\";\nexport * from \"d3-drag\";\nexport * from \"d3-dsv\";\nexport * from \"d3-ease\";\nexport * from \"d3-fetch\";\nexport * from \"d3-force\";\nexport * from \"d3-format\";\nexport * from \"d3-geo\";\nexport * from \"d3-hierarchy\";\nexport * from \"d3-interpolate\";\nexport * from \"d3-path\";\nexport * from \"d3-polygon\";\nexport * from \"d3-quadtree\";\nexport * from \"d3-random\";\nexport * from \"d3-scale\";\nexport * from \"d3-scale-chromatic\";\nexport * from \"d3-selection\";\nexport * from \"d3-shape\";\nexport * from \"d3-time\";\nexport * from \"d3-time-format\";\nexport * from \"d3-timer\";\nexport * from \"d3-transition\";\nexport * from \"d3-voronoi\";\nexport * from \"d3-zoom\";\n","/**\n * @license\n * Copyright (c) 2012-2013 Chris Pettitt\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nmodule.exports = {\n graphlib: require(\"./lib/graphlib\"),\n dagre: require(\"./lib/dagre\"),\n intersect: require(\"./lib/intersect\"),\n render: require(\"./lib/render\"),\n util: require(\"./lib/util\"),\n version: require(\"./lib/version\")\n};\n","var util = require(\"./util\");\n\nmodule.exports = {\n \"default\": normal,\n \"normal\": normal,\n \"vee\": vee,\n \"undirected\": undirected\n};\n\nfunction normal(parent, id, edge, type) {\n var marker = parent.append(\"marker\")\n .attr(\"id\", id)\n .attr(\"viewBox\", \"0 0 10 10\")\n .attr(\"refX\", 9)\n .attr(\"refY\", 5)\n .attr(\"markerUnits\", \"strokeWidth\")\n .attr(\"markerWidth\", 8)\n .attr(\"markerHeight\", 6)\n .attr(\"orient\", \"auto\");\n\n var path = marker.append(\"path\")\n .attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\")\n .style(\"stroke-width\", 1)\n .style(\"stroke-dasharray\", \"1,0\");\n util.applyStyle(path, edge[type + \"Style\"]);\n if (edge[type + \"Class\"]) {\n path.attr(\"class\", edge[type + \"Class\"]);\n }\n}\n\nfunction vee(parent, id, edge, type) {\n var marker = parent.append(\"marker\")\n .attr(\"id\", id)\n .attr(\"viewBox\", \"0 0 10 10\")\n .attr(\"refX\", 9)\n .attr(\"refY\", 5)\n .attr(\"markerUnits\", \"strokeWidth\")\n .attr(\"markerWidth\", 8)\n .attr(\"markerHeight\", 6)\n .attr(\"orient\", \"auto\");\n\n var path = marker.append(\"path\")\n .attr(\"d\", \"M 0 0 L 10 5 L 0 10 L 4 5 z\")\n .style(\"stroke-width\", 1)\n .style(\"stroke-dasharray\", \"1,0\");\n util.applyStyle(path, edge[type + \"Style\"]);\n if (edge[type + \"Class\"]) {\n path.attr(\"class\", edge[type + \"Class\"]);\n }\n}\n\nfunction undirected(parent, id, edge, type) {\n var marker = parent.append(\"marker\")\n .attr(\"id\", id)\n .attr(\"viewBox\", \"0 0 10 10\")\n .attr(\"refX\", 9)\n .attr(\"refY\", 5)\n .attr(\"markerUnits\", \"strokeWidth\")\n .attr(\"markerWidth\", 8)\n .attr(\"markerHeight\", 6)\n .attr(\"orient\", \"auto\");\n\n var path = marker.append(\"path\")\n .attr(\"d\", \"M 0 5 L 10 5\")\n .style(\"stroke-width\", 1)\n .style(\"stroke-dasharray\", \"1,0\");\n util.applyStyle(path, edge[type + \"Style\"]);\n if (edge[type + \"Class\"]) {\n path.attr(\"class\", edge[type + \"Class\"]);\n }\n}\n","var util = require(\"./util\");\nvar d3 = require(\"./d3\");\nvar addLabel = require(\"./label/add-label\");\n\nmodule.exports = createClusters;\n\nfunction createClusters(selection, g) {\n var clusters = g.nodes().filter(function(v) { return util.isSubgraph(g, v); });\n var svgClusters = selection.selectAll(\"g.cluster\")\n .data(clusters, function(v) { return v; });\n\n svgClusters.selectAll(\"*\").remove();\n svgClusters.enter().append(\"g\")\n .attr(\"class\", \"cluster\")\n .attr(\"id\",function(v){\n var node = g.node(v);\n return node.id;\n })\n .style(\"opacity\", 0);\n \n svgClusters = selection.selectAll(\"g.cluster\");\n\n util.applyTransition(svgClusters, g)\n .style(\"opacity\", 1);\n\n svgClusters.each(function(v) {\n var node = g.node(v);\n var thisGroup = d3.select(this);\n d3.select(this).append(\"rect\");\n var labelGroup = thisGroup.append(\"g\").attr(\"class\", \"label\");\n addLabel(labelGroup, node, node.clusterLabelPos);\n });\n\n svgClusters.selectAll(\"rect\").each(function(c) {\n var node = g.node(c);\n var domCluster = d3.select(this);\n util.applyStyle(domCluster, node.style);\n });\n\n var exitSelection;\n\n if (svgClusters.exit) {\n exitSelection = svgClusters.exit();\n } else {\n exitSelection = svgClusters.selectAll(null); // empty selection\n }\n\n util.applyTransition(exitSelection, g)\n .style(\"opacity\", 0)\n .remove();\n\n return svgClusters;\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar addLabel = require(\"./label/add-label\");\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\n\nmodule.exports = createEdgeLabels;\n\nfunction createEdgeLabels(selection, g) {\n var svgEdgeLabels = selection.selectAll(\"g.edgeLabel\")\n .data(g.edges(), function(e) { return util.edgeToId(e); })\n .classed(\"update\", true);\n\n svgEdgeLabels.exit().remove();\n svgEdgeLabels.enter().append(\"g\")\n .classed(\"edgeLabel\", true)\n .style(\"opacity\", 0);\n\n svgEdgeLabels = selection.selectAll(\"g.edgeLabel\");\n\n svgEdgeLabels.each(function(e) {\n var root = d3.select(this);\n root.select(\".label\").remove();\n var edge = g.edge(e);\n var label = addLabel(root, g.edge(e), 0, 0).classed(\"label\", true);\n var bbox = label.node().getBBox();\n\n if (edge.labelId) { label.attr(\"id\", edge.labelId); }\n if (!_.has(edge, \"width\")) { edge.width = bbox.width; }\n if (!_.has(edge, \"height\")) { edge.height = bbox.height; }\n });\n\n var exitSelection;\n\n if (svgEdgeLabels.exit) {\n exitSelection = svgEdgeLabels.exit();\n } else {\n exitSelection = svgEdgeLabels.selectAll(null); // empty selection\n }\n\n util.applyTransition(exitSelection, g)\n .style(\"opacity\", 0)\n .remove();\n\n return svgEdgeLabels;\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar intersectNode = require(\"./intersect/intersect-node\");\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\nmodule.exports = createEdgePaths;\n\nfunction createEdgePaths(selection, g, arrows) {\n var previousPaths = selection.selectAll(\"g.edgePath\")\n .data(g.edges(), function(e) { return util.edgeToId(e); })\n .classed(\"update\", true);\n\n var newPaths = enter(previousPaths, g);\n exit(previousPaths, g);\n\n var svgPaths = previousPaths.merge !== undefined ? previousPaths.merge(newPaths) : previousPaths;\n util.applyTransition(svgPaths, g)\n .style(\"opacity\", 1);\n\n // Save DOM element in the path group, and set ID and class\n svgPaths.each(function(e) {\n var domEdge = d3.select(this);\n var edge = g.edge(e);\n edge.elem = this;\n\n if (edge.id) {\n domEdge.attr(\"id\", edge.id);\n }\n\n util.applyClass(domEdge, edge[\"class\"],\n (domEdge.classed(\"update\") ? \"update \" : \"\") + \"edgePath\");\n });\n\n svgPaths.selectAll(\"path.path\")\n .each(function(e) {\n var edge = g.edge(e);\n edge.arrowheadId = _.uniqueId(\"arrowhead\");\n\n var domEdge = d3.select(this)\n .attr(\"marker-end\", function() {\n return \"url(\" + makeFragmentRef(location.href, edge.arrowheadId) + \")\";\n })\n .style(\"fill\", \"none\");\n\n util.applyTransition(domEdge, g)\n .attr(\"d\", function(e) { return calcPoints(g, e); });\n\n util.applyStyle(domEdge, edge.style);\n });\n\n svgPaths.selectAll(\"defs *\").remove();\n svgPaths.selectAll(\"defs\")\n .each(function(e) {\n var edge = g.edge(e);\n var arrowhead = arrows[edge.arrowhead];\n arrowhead(d3.select(this), edge.arrowheadId, edge, \"arrowhead\");\n });\n\n return svgPaths;\n}\n\nfunction makeFragmentRef(url, fragmentId) {\n var baseUrl = url.split(\"#\")[0];\n return baseUrl + \"#\" + fragmentId;\n}\n\nfunction calcPoints(g, e) {\n var edge = g.edge(e);\n var tail = g.node(e.v);\n var head = g.node(e.w);\n var points = edge.points.slice(1, edge.points.length - 1);\n points.unshift(intersectNode(tail, points[0]));\n points.push(intersectNode(head, points[points.length - 1]));\n\n return createLine(edge, points);\n}\n\nfunction createLine(edge, points) {\n var line = (d3.line || d3.svg.line)()\n .x(function(d) { return d.x; })\n .y(function(d) { return d.y; });\n \n (line.curve || line.interpolate)(edge.curve);\n\n return line(points);\n}\n\nfunction getCoords(elem) {\n var bbox = elem.getBBox();\n var matrix = elem.ownerSVGElement.getScreenCTM()\n .inverse()\n .multiply(elem.getScreenCTM())\n .translate(bbox.width / 2, bbox.height / 2);\n return { x: matrix.e, y: matrix.f };\n}\n\nfunction enter(svgPaths, g) {\n var svgPathsEnter = svgPaths.enter().append(\"g\")\n .attr(\"class\", \"edgePath\")\n .style(\"opacity\", 0);\n svgPathsEnter.append(\"path\")\n .attr(\"class\", \"path\")\n .attr(\"d\", function(e) {\n var edge = g.edge(e);\n var sourceElem = g.node(e.v).elem;\n var points = _.range(edge.points.length).map(function() { return getCoords(sourceElem); });\n return createLine(edge, points);\n });\n svgPathsEnter.append(\"defs\");\n return svgPathsEnter;\n}\n\nfunction exit(svgPaths, g) {\n var svgPathExit = svgPaths.exit();\n util.applyTransition(svgPathExit, g)\n .style(\"opacity\", 0)\n .remove();\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar addLabel = require(\"./label/add-label\");\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\n\nmodule.exports = createNodes;\n\nfunction createNodes(selection, g, shapes) {\n var simpleNodes = g.nodes().filter(function(v) { return !util.isSubgraph(g, v); });\n var svgNodes = selection.selectAll(\"g.node\")\n .data(simpleNodes, function(v) { return v; })\n .classed(\"update\", true);\n\n svgNodes.exit().remove();\n\n svgNodes.enter().append(\"g\")\n .attr(\"class\", \"node\")\n .style(\"opacity\", 0);\n\n svgNodes = selection.selectAll(\"g.node\"); \n\n svgNodes.each(function(v) {\n var node = g.node(v);\n var thisGroup = d3.select(this);\n util.applyClass(thisGroup, node[\"class\"],\n (thisGroup.classed(\"update\") ? \"update \" : \"\") + \"node\");\n\n thisGroup.select(\"g.label\").remove();\n var labelGroup = thisGroup.append(\"g\").attr(\"class\", \"label\");\n var labelDom = addLabel(labelGroup, node);\n var shape = shapes[node.shape];\n var bbox = _.pick(labelDom.node().getBBox(), \"width\", \"height\");\n\n node.elem = this;\n\n if (node.id) { thisGroup.attr(\"id\", node.id); }\n if (node.labelId) { labelGroup.attr(\"id\", node.labelId); }\n\n if (_.has(node, \"width\")) { bbox.width = node.width; }\n if (_.has(node, \"height\")) { bbox.height = node.height; }\n\n bbox.width += node.paddingLeft + node.paddingRight;\n bbox.height += node.paddingTop + node.paddingBottom;\n labelGroup.attr(\"transform\", \"translate(\" +\n ((node.paddingLeft - node.paddingRight) / 2) + \",\" +\n ((node.paddingTop - node.paddingBottom) / 2) + \")\");\n\n var root = d3.select(this);\n root.select(\".label-container\").remove();\n var shapeSvg = shape(root, bbox, node).classed(\"label-container\", true);\n util.applyStyle(shapeSvg, node.style);\n\n var shapeBBox = shapeSvg.node().getBBox();\n node.width = shapeBBox.width;\n node.height = shapeBBox.height;\n });\n\n var exitSelection;\n\n if (svgNodes.exit) {\n exitSelection = svgNodes.exit();\n } else {\n exitSelection = svgNodes.selectAll(null); // empty selection\n }\n\n util.applyTransition(exitSelection, g)\n .style(\"opacity\", 0)\n .remove();\n\n return svgNodes;\n}\n","// Stub to get D3 either via NPM or from the global object\nvar d3;\n\nif (!d3) {\n if (typeof require === \"function\") {\n try {\n d3 = require(\"d3\");\n }\n catch (e) {\n // continue regardless of error\n }\n }\n}\n\nif (!d3) {\n d3 = window.d3;\n}\n\nmodule.exports = d3;\n","/* global window */\n\nvar dagre;\n\nif (typeof require === \"function\") {\n try {\n dagre = require(\"dagre\");\n } catch (e) {\n // continue regardless of error\n }\n}\n\nif (!dagre) {\n dagre = window.dagre;\n}\n\nmodule.exports = dagre;\n","/* global window */\n\nvar graphlib;\n\nif (typeof require === \"function\") {\n try {\n graphlib = require(\"graphlib\");\n }\n catch (e) {\n // continue regardless of error\n }\n}\n\nif (!graphlib) {\n graphlib = window.graphlib;\n}\n\nmodule.exports = graphlib;\n","module.exports = {\n node: require(\"./intersect-node\"),\n circle: require(\"./intersect-circle\"),\n ellipse: require(\"./intersect-ellipse\"),\n polygon: require(\"./intersect-polygon\"),\n rect: require(\"./intersect-rect\")\n};\n","var intersectEllipse = require(\"./intersect-ellipse\");\n\nmodule.exports = intersectCircle;\n\nfunction intersectCircle(node, rx, point) {\n return intersectEllipse(node, rx, rx, point);\n}\n","module.exports = intersectEllipse;\n\nfunction intersectEllipse(node, rx, ry, point) {\n // Formulae from: http://mathworld.wolfram.com/Ellipse-LineIntersection.html\n\n var cx = node.x;\n var cy = node.y;\n\n var px = cx - point.x;\n var py = cy - point.y;\n\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n\n var dx = Math.abs(rx * ry * px / det);\n if (point.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs(rx * ry * py / det);\n if (point.y < cy) {\n dy = -dy;\n }\n\n return {x: cx + dx, y: cy + dy};\n}\n\n","module.exports = intersectLine;\n\n/*\n * Returns the point at which two lines, p and q, intersect or returns\n * undefined if they do not intersect.\n */\nfunction intersectLine(p1, p2, q1, q2) {\n // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994,\n // p7 and p473.\n\n var a1, a2, b1, b2, c1, c2;\n var r1, r2 , r3, r4;\n var denom, offset, num;\n var x, y;\n\n // Compute a1, b1, c1, where line joining points 1 and 2 is F(x,y) = a1 x +\n // b1 y + c1 = 0.\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = (p2.x * p1.y) - (p1.x * p2.y);\n\n // Compute r3 and r4.\n r3 = ((a1 * q1.x) + (b1 * q1.y) + c1);\n r4 = ((a1 * q2.x) + (b1 * q2.y) + c1);\n\n // Check signs of r3 and r4. If both point 3 and point 4 lie on\n // same side of line 1, the line segments do not intersect.\n if ((r3 !== 0) && (r4 !== 0) && sameSign(r3, r4)) {\n return /*DONT_INTERSECT*/;\n }\n\n // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = (q2.x * q1.y) - (q1.x * q2.y);\n\n // Compute r1 and r2\n r1 = (a2 * p1.x) + (b2 * p1.y) + c2;\n r2 = (a2 * p2.x) + (b2 * p2.y) + c2;\n\n // Check signs of r1 and r2. If both point 1 and point 2 lie\n // on same side of second line segment, the line segments do\n // not intersect.\n if ((r1 !== 0) && (r2 !== 0) && (sameSign(r1, r2))) {\n return /*DONT_INTERSECT*/;\n }\n\n // Line segments intersect: compute intersection point.\n denom = (a1 * b2) - (a2 * b1);\n if (denom === 0) {\n return /*COLLINEAR*/;\n }\n\n offset = Math.abs(denom / 2);\n\n // The denom/2 is to get rounding instead of truncating. It\n // is added or subtracted to the numerator, depending upon the\n // sign of the numerator.\n num = (b1 * c2) - (b2 * c1);\n x = (num < 0) ? ((num - offset) / denom) : ((num + offset) / denom);\n\n num = (a2 * c1) - (a1 * c2);\n y = (num < 0) ? ((num - offset) / denom) : ((num + offset) / denom);\n\n return { x: x, y: y };\n}\n\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n","module.exports = intersectNode;\n\nfunction intersectNode(node, point) {\n return node.intersect(point);\n}\n","/* eslint \"no-console\": off */\n\nvar intersectLine = require(\"./intersect-line\");\n\nmodule.exports = intersectPolygon;\n\n/*\n * Returns the point ({x, y}) at which the point argument intersects with the\n * node argument assuming that it has the shape specified by polygon.\n */\nfunction intersectPolygon(node, polyPoints, point) {\n var x1 = node.x;\n var y1 = node.y;\n\n var intersections = [];\n\n var minX = Number.POSITIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n polyPoints.forEach(function(entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n\n var left = x1 - node.width / 2 - minX;\n var top = y1 - node.height / 2 - minY;\n\n for (var i = 0; i < polyPoints.length; i++) {\n var p1 = polyPoints[i];\n var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n var intersect = intersectLine(node, point,\n {x: left + p1.x, y: top + p1.y}, {x: left + p2.x, y: top + p2.y});\n if (intersect) {\n intersections.push(intersect);\n }\n }\n\n if (!intersections.length) {\n console.log(\"NO INTERSECTION FOUND, RETURN NODE CENTER\", node);\n return node;\n }\n\n if (intersections.length > 1) {\n // More intersections, find the one nearest to edge end point\n intersections.sort(function(p, q) {\n var pdx = p.x - point.x;\n var pdy = p.y - point.y;\n var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n\n var qdx = q.x - point.x;\n var qdy = q.y - point.y;\n var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n\n return (distp < distq) ? -1 : (distp === distq ? 0 : 1);\n });\n }\n return intersections[0];\n}\n","module.exports = intersectRect;\n\nfunction intersectRect(node, point) {\n var x = node.x;\n var y = node.y;\n\n // Rectangle intersection algorithm from:\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n var dx = point.x - x;\n var dy = point.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n // Intersection is top or bottom of rect.\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : h * dx / dy;\n sy = h;\n } else {\n // Intersection is left or right of rect.\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : w * dy / dx;\n }\n\n return {x: x + sx, y: y + sy};\n}\n","var util = require(\"../util\");\n\nmodule.exports = addHtmlLabel;\n\nfunction addHtmlLabel(root, node) {\n var fo = root\n .append(\"foreignObject\")\n .attr(\"width\", \"100000\");\n\n var div = fo\n .append(\"xhtml:div\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n\n var label = node.label;\n switch(typeof label) {\n case \"function\":\n div.insert(label);\n break;\n case \"object\":\n // Currently we assume this is a DOM object.\n div.insert(function() { return label; });\n break;\n default: div.html(label);\n }\n\n util.applyStyle(div, node.labelStyle);\n div.style(\"display\", \"inline-block\");\n // Fix for firefox\n div.style(\"white-space\", \"nowrap\");\n\n var client = div.node().getBoundingClientRect();\n fo\n .attr(\"width\", client.width)\n .attr(\"height\", client.height); \n\n return fo;\n}\n","var addTextLabel = require(\"./add-text-label\");\nvar addHtmlLabel = require(\"./add-html-label\");\nvar addSVGLabel = require(\"./add-svg-label\");\n\nmodule.exports = addLabel;\n\nfunction addLabel(root, node, location) {\n var label = node.label;\n var labelSvg = root.append(\"g\");\n\n // Allow the label to be a string, a function that returns a DOM element, or\n // a DOM element itself.\n if (node.labelType === \"svg\") {\n addSVGLabel(labelSvg, node);\n } else if (typeof label !== \"string\" || node.labelType === \"html\") {\n addHtmlLabel(labelSvg, node);\n } else {\n addTextLabel(labelSvg, node);\n }\n\n var labelBBox = labelSvg.node().getBBox();\n var y;\n switch(location) {\n case \"top\":\n y = (-node.height / 2);\n break;\n case \"bottom\":\n y = (node.height / 2) - labelBBox.height;\n break;\n default:\n y = (-labelBBox.height / 2);\n }\n labelSvg.attr(\n \"transform\",\n \"translate(\" + (-labelBBox.width / 2) + \",\" + y + \")\");\n\n return labelSvg;\n}\n","var util = require(\"../util\");\n\nmodule.exports = addSVGLabel;\n\nfunction addSVGLabel(root, node) {\n var domNode = root;\n\n domNode.node().appendChild(node.label);\n\n util.applyStyle(domNode, node.labelStyle);\n\n return domNode;\n}\n","var util = require(\"../util\");\n\nmodule.exports = addTextLabel;\n\n/*\n * Attaches a text label to the specified root. Handles escape sequences.\n */\nfunction addTextLabel(root, node) {\n var domNode = root.append(\"text\");\n\n var lines = processEscapeSequences(node.label).split(\"\\n\");\n for (var i = 0; i < lines.length; i++) {\n domNode.append(\"tspan\")\n .attr(\"xml:space\", \"preserve\")\n .attr(\"dy\", \"1em\")\n .attr(\"x\", \"1\")\n .text(lines[i]);\n }\n\n util.applyStyle(domNode, node.labelStyle);\n\n return domNode;\n}\n\nfunction processEscapeSequences(text) {\n var newText = \"\";\n var escaped = false;\n var ch;\n for (var i = 0; i < text.length; ++i) {\n ch = text[i];\n if (escaped) {\n switch(ch) {\n case \"n\": newText += \"\\n\"; break;\n default: newText += ch;\n }\n escaped = false;\n } else if (ch === \"\\\\\") {\n escaped = true;\n } else {\n newText += ch;\n }\n }\n return newText;\n}\n","/* global window */\n\nvar lodash;\n\nif (typeof require === \"function\") {\n try {\n lodash = {\n defaults: require(\"lodash/defaults\"),\n each: require(\"lodash/each\"),\n isFunction: require(\"lodash/isFunction\"),\n isPlainObject: require(\"lodash/isPlainObject\"),\n pick: require(\"lodash/pick\"),\n has: require(\"lodash/has\"),\n range: require(\"lodash/range\"),\n uniqueId: require(\"lodash/uniqueId\")\n };\n }\n catch (e) {\n // continue regardless of error\n }\n}\n\nif (!lodash) {\n lodash = window._;\n}\n\nmodule.exports = lodash;\n","\"use strict\";\n\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\n\nmodule.exports = positionClusters;\n\nfunction positionClusters(selection, g) {\n var created = selection.filter(function() { return !d3.select(this).classed(\"update\"); });\n\n function translate(v) {\n var node = g.node(v);\n return \"translate(\" + node.x + \",\" + node.y + \")\";\n }\n\n created.attr(\"transform\", translate);\n\n util.applyTransition(selection, g)\n .style(\"opacity\", 1)\n .attr(\"transform\", translate);\n\n util.applyTransition(created.selectAll(\"rect\"), g)\n .attr(\"width\", function(v) { return g.node(v).width; })\n .attr(\"height\", function(v) { return g.node(v).height; })\n .attr(\"x\", function(v) {\n var node = g.node(v);\n return -node.width / 2;\n })\n .attr(\"y\", function(v) {\n var node = g.node(v);\n return -node.height / 2;\n });\n}\n","\"use strict\";\n\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\nvar _ = require(\"./lodash\");\n\nmodule.exports = positionEdgeLabels;\n\nfunction positionEdgeLabels(selection, g) {\n var created = selection.filter(function() { return !d3.select(this).classed(\"update\"); });\n\n function translate(e) {\n var edge = g.edge(e);\n return _.has(edge, \"x\") ? \"translate(\" + edge.x + \",\" + edge.y + \")\" : \"\";\n }\n\n created.attr(\"transform\", translate);\n\n util.applyTransition(selection, g)\n .style(\"opacity\", 1)\n .attr(\"transform\", translate);\n}\n","\"use strict\";\n\nvar util = require(\"./util\");\nvar d3 = require(\"./d3\");\n\nmodule.exports = positionNodes;\n\nfunction positionNodes(selection, g) {\n var created = selection.filter(function() { return !d3.select(this).classed(\"update\"); });\n\n function translate(v) {\n var node = g.node(v);\n return \"translate(\" + node.x + \",\" + node.y + \")\";\n }\n\n created.attr(\"transform\", translate);\n\n util.applyTransition(selection, g)\n .style(\"opacity\", 1)\n .attr(\"transform\", translate);\n}\n","var _ = require(\"./lodash\");\nvar d3 = require(\"./d3\");\nvar layout = require(\"./dagre\").layout;\n\nmodule.exports = render;\n\n// This design is based on http://bost.ocks.org/mike/chart/.\nfunction render() {\n var createNodes = require(\"./create-nodes\");\n var createClusters = require(\"./create-clusters\");\n var createEdgeLabels = require(\"./create-edge-labels\");\n var createEdgePaths = require(\"./create-edge-paths\");\n var positionNodes = require(\"./position-nodes\");\n var positionEdgeLabels = require(\"./position-edge-labels\");\n var positionClusters = require(\"./position-clusters\");\n var shapes = require(\"./shapes\");\n var arrows = require(\"./arrows\");\n\n var fn = function(svg, g) {\n preProcessGraph(g);\n\n var outputGroup = createOrSelectGroup(svg, \"output\");\n var clustersGroup = createOrSelectGroup(outputGroup, \"clusters\");\n var edgePathsGroup = createOrSelectGroup(outputGroup, \"edgePaths\");\n var edgeLabels = createEdgeLabels(createOrSelectGroup(outputGroup, \"edgeLabels\"), g);\n var nodes = createNodes(createOrSelectGroup(outputGroup, \"nodes\"), g, shapes);\n\n layout(g);\n\n positionNodes(nodes, g);\n positionEdgeLabels(edgeLabels, g);\n createEdgePaths(edgePathsGroup, g, arrows);\n\n var clusters = createClusters(clustersGroup, g);\n positionClusters(clusters, g);\n\n postProcessGraph(g);\n };\n\n fn.createNodes = function(value) {\n if (!arguments.length) return createNodes;\n createNodes = value;\n return fn;\n };\n\n fn.createClusters = function(value) {\n if (!arguments.length) return createClusters;\n createClusters = value;\n return fn;\n };\n\n fn.createEdgeLabels = function(value) {\n if (!arguments.length) return createEdgeLabels;\n createEdgeLabels = value;\n return fn;\n };\n\n fn.createEdgePaths = function(value) {\n if (!arguments.length) return createEdgePaths;\n createEdgePaths = value;\n return fn;\n };\n\n fn.shapes = function(value) {\n if (!arguments.length) return shapes;\n shapes = value;\n return fn;\n };\n\n fn.arrows = function(value) {\n if (!arguments.length) return arrows;\n arrows = value;\n return fn;\n };\n\n return fn;\n}\n\nvar NODE_DEFAULT_ATTRS = {\n paddingLeft: 10,\n paddingRight: 10,\n paddingTop: 10,\n paddingBottom: 10,\n rx: 0,\n ry: 0,\n shape: \"rect\"\n};\n\nvar EDGE_DEFAULT_ATTRS = {\n arrowhead: \"normal\",\n curve: d3.curveLinear\n};\n\nfunction preProcessGraph(g) {\n g.nodes().forEach(function(v) {\n var node = g.node(v);\n if (!_.has(node, \"label\") && !g.children(v).length) { node.label = v; }\n\n if (_.has(node, \"paddingX\")) {\n _.defaults(node, {\n paddingLeft: node.paddingX,\n paddingRight: node.paddingX\n });\n }\n\n if (_.has(node, \"paddingY\")) {\n _.defaults(node, {\n paddingTop: node.paddingY,\n paddingBottom: node.paddingY\n });\n }\n\n if (_.has(node, \"padding\")) {\n _.defaults(node, {\n paddingLeft: node.padding,\n paddingRight: node.padding,\n paddingTop: node.padding,\n paddingBottom: node.padding\n });\n }\n\n _.defaults(node, NODE_DEFAULT_ATTRS);\n\n _.each([\"paddingLeft\", \"paddingRight\", \"paddingTop\", \"paddingBottom\"], function(k) {\n node[k] = Number(node[k]);\n });\n\n // Save dimensions for restore during post-processing\n if (_.has(node, \"width\")) { node._prevWidth = node.width; }\n if (_.has(node, \"height\")) { node._prevHeight = node.height; }\n });\n\n g.edges().forEach(function(e) {\n var edge = g.edge(e);\n if (!_.has(edge, \"label\")) { edge.label = \"\"; }\n _.defaults(edge, EDGE_DEFAULT_ATTRS);\n });\n}\n\nfunction postProcessGraph(g) {\n _.each(g.nodes(), function(v) {\n var node = g.node(v);\n\n // Restore original dimensions\n if (_.has(node, \"_prevWidth\")) {\n node.width = node._prevWidth;\n } else {\n delete node.width;\n }\n\n if (_.has(node, \"_prevHeight\")) {\n node.height = node._prevHeight;\n } else {\n delete node.height;\n }\n\n delete node._prevWidth;\n delete node._prevHeight;\n });\n}\n\nfunction createOrSelectGroup(root, name) {\n var selection = root.select(\"g.\" + name);\n if (selection.empty()) {\n selection = root.append(\"g\").attr(\"class\", name);\n }\n return selection;\n}\n","\"use strict\";\n\nvar intersectRect = require(\"./intersect/intersect-rect\");\nvar intersectEllipse = require(\"./intersect/intersect-ellipse\");\nvar intersectCircle = require(\"./intersect/intersect-circle\");\nvar intersectPolygon = require(\"./intersect/intersect-polygon\");\n\nmodule.exports = {\n rect: rect,\n ellipse: ellipse,\n circle: circle,\n diamond: diamond\n};\n\nfunction rect(parent, bbox, node) {\n var shapeSvg = parent.insert(\"rect\", \":first-child\")\n .attr(\"rx\", node.rx)\n .attr(\"ry\", node.ry)\n .attr(\"x\", -bbox.width / 2)\n .attr(\"y\", -bbox.height / 2)\n .attr(\"width\", bbox.width)\n .attr(\"height\", bbox.height);\n\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n}\n\nfunction ellipse(parent, bbox, node) {\n var rx = bbox.width / 2;\n var ry = bbox.height / 2;\n var shapeSvg = parent.insert(\"ellipse\", \":first-child\")\n .attr(\"x\", -bbox.width / 2)\n .attr(\"y\", -bbox.height / 2)\n .attr(\"rx\", rx)\n .attr(\"ry\", ry);\n\n node.intersect = function(point) {\n return intersectEllipse(node, rx, ry, point);\n };\n\n return shapeSvg;\n}\n\nfunction circle(parent, bbox, node) {\n var r = Math.max(bbox.width, bbox.height) / 2;\n var shapeSvg = parent.insert(\"circle\", \":first-child\")\n .attr(\"x\", -bbox.width / 2)\n .attr(\"y\", -bbox.height / 2)\n .attr(\"r\", r);\n\n node.intersect = function(point) {\n return intersectCircle(node, r, point);\n };\n\n return shapeSvg;\n}\n\n// Circumscribe an ellipse for the bounding box with a diamond shape. I derived\n// the function to calculate the diamond shape from:\n// http://mathforum.org/kb/message.jspa?messageID=3750236\nfunction diamond(parent, bbox, node) {\n var w = (bbox.width * Math.SQRT2) / 2;\n var h = (bbox.height * Math.SQRT2) / 2;\n var points = [\n { x: 0, y: -h },\n { x: -w, y: 0 },\n { x: 0, y: h },\n { x: w, y: 0 }\n ];\n var shapeSvg = parent.insert(\"polygon\", \":first-child\")\n .attr(\"points\", points.map(function(p) { return p.x + \",\" + p.y; }).join(\" \"));\n\n node.intersect = function(p) {\n return intersectPolygon(node, points, p);\n };\n\n return shapeSvg;\n}\n","var _ = require(\"./lodash\");\n\n// Public utility functions\nmodule.exports = {\n isSubgraph: isSubgraph,\n edgeToId: edgeToId,\n applyStyle: applyStyle,\n applyClass: applyClass,\n applyTransition: applyTransition\n};\n\n/*\n * Returns true if the specified node in the graph is a subgraph node. A\n * subgraph node is one that contains other nodes.\n */\nfunction isSubgraph(g, v) {\n return !!g.children(v).length;\n}\n\nfunction edgeToId(e) {\n return escapeId(e.v) + \":\" + escapeId(e.w) + \":\" + escapeId(e.name);\n}\n\nvar ID_DELIM = /:/g;\nfunction escapeId(str) {\n return str ? String(str).replace(ID_DELIM, \"\\\\:\") : \"\";\n}\n\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\n\nfunction applyClass(dom, classFn, otherClasses) {\n if (classFn) {\n dom\n .attr(\"class\", classFn)\n .attr(\"class\", otherClasses + \" \" + dom.attr(\"class\"));\n }\n}\n\nfunction applyTransition(selection, g) {\n var graph = g.graph();\n\n if (_.isPlainObject(graph)) {\n var transition = graph.transition;\n if (_.isFunction(transition)) {\n return transition(selection);\n }\n }\n\n return selection;\n}\n","module.exports = \"0.6.4\";\n","/*\nCopyright (c) 2012-2014 Chris Pettitt\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nmodule.exports = {\n graphlib: require(\"./lib/graphlib\"),\n\n layout: require(\"./lib/layout\"),\n debug: require(\"./lib/debug\"),\n util: {\n time: require(\"./lib/util\").time,\n notime: require(\"./lib/util\").notime\n },\n version: require(\"./lib/version\")\n};\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar greedyFAS = require(\"./greedy-fas\");\n\nmodule.exports = {\n run: run,\n undo: undo\n};\n\nfunction run(g) {\n var fas = (g.graph().acyclicer === \"greedy\"\n ? greedyFAS(g, weightFn(g))\n : dfsFAS(g));\n _.forEach(fas, function(e) {\n var label = g.edge(e);\n g.removeEdge(e);\n label.forwardName = e.name;\n label.reversed = true;\n g.setEdge(e.w, e.v, label, _.uniqueId(\"rev\"));\n });\n\n function weightFn(g) {\n return function(e) {\n return g.edge(e).weight;\n };\n }\n}\n\nfunction dfsFAS(g) {\n var fas = [];\n var stack = {};\n var visited = {};\n\n function dfs(v) {\n if (_.has(visited, v)) {\n return;\n }\n visited[v] = true;\n stack[v] = true;\n _.forEach(g.outEdges(v), function(e) {\n if (_.has(stack, e.w)) {\n fas.push(e);\n } else {\n dfs(e.w);\n }\n });\n delete stack[v];\n }\n\n _.forEach(g.nodes(), dfs);\n return fas;\n}\n\nfunction undo(g) {\n _.forEach(g.edges(), function(e) {\n var label = g.edge(e);\n if (label.reversed) {\n g.removeEdge(e);\n\n var forwardName = label.forwardName;\n delete label.reversed;\n delete label.forwardName;\n g.setEdge(e.w, e.v, label, forwardName);\n }\n });\n}\n","var _ = require(\"./lodash\");\nvar util = require(\"./util\");\n\nmodule.exports = addBorderSegments;\n\nfunction addBorderSegments(g) {\n function dfs(v) {\n var children = g.children(v);\n var node = g.node(v);\n if (children.length) {\n _.forEach(children, dfs);\n }\n\n if (_.has(node, \"minRank\")) {\n node.borderLeft = [];\n node.borderRight = [];\n for (var rank = node.minRank, maxRank = node.maxRank + 1;\n rank < maxRank;\n ++rank) {\n addBorderNode(g, \"borderLeft\", \"_bl\", v, node, rank);\n addBorderNode(g, \"borderRight\", \"_br\", v, node, rank);\n }\n }\n }\n\n _.forEach(g.children(), dfs);\n}\n\nfunction addBorderNode(g, prop, prefix, sg, sgNode, rank) {\n var label = { width: 0, height: 0, rank: rank, borderType: prop };\n var prev = sgNode[prop][rank - 1];\n var curr = util.addDummyNode(g, \"border\", label, prefix);\n sgNode[prop][rank] = curr;\n g.setParent(curr, sg);\n if (prev) {\n g.setEdge(prev, curr, { weight: 1 });\n }\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\n\nmodule.exports = {\n adjust: adjust,\n undo: undo\n};\n\nfunction adjust(g) {\n var rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === \"lr\" || rankDir === \"rl\") {\n swapWidthHeight(g);\n }\n}\n\nfunction undo(g) {\n var rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === \"bt\" || rankDir === \"rl\") {\n reverseY(g);\n }\n\n if (rankDir === \"lr\" || rankDir === \"rl\") {\n swapXY(g);\n swapWidthHeight(g);\n }\n}\n\nfunction swapWidthHeight(g) {\n _.forEach(g.nodes(), function(v) { swapWidthHeightOne(g.node(v)); });\n _.forEach(g.edges(), function(e) { swapWidthHeightOne(g.edge(e)); });\n}\n\nfunction swapWidthHeightOne(attrs) {\n var w = attrs.width;\n attrs.width = attrs.height;\n attrs.height = w;\n}\n\nfunction reverseY(g) {\n _.forEach(g.nodes(), function(v) { reverseYOne(g.node(v)); });\n\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n _.forEach(edge.points, reverseYOne);\n if (_.has(edge, \"y\")) {\n reverseYOne(edge);\n }\n });\n}\n\nfunction reverseYOne(attrs) {\n attrs.y = -attrs.y;\n}\n\nfunction swapXY(g) {\n _.forEach(g.nodes(), function(v) { swapXYOne(g.node(v)); });\n\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n _.forEach(edge.points, swapXYOne);\n if (_.has(edge, \"x\")) {\n swapXYOne(edge);\n }\n });\n}\n\nfunction swapXYOne(attrs) {\n var x = attrs.x;\n attrs.x = attrs.y;\n attrs.y = x;\n}\n","/*\n * Simple doubly linked list implementation derived from Cormen, et al.,\n * \"Introduction to Algorithms\".\n */\n\nmodule.exports = List;\n\nfunction List() {\n var sentinel = {};\n sentinel._next = sentinel._prev = sentinel;\n this._sentinel = sentinel;\n}\n\nList.prototype.dequeue = function() {\n var sentinel = this._sentinel;\n var entry = sentinel._prev;\n if (entry !== sentinel) {\n unlink(entry);\n return entry;\n }\n};\n\nList.prototype.enqueue = function(entry) {\n var sentinel = this._sentinel;\n if (entry._prev && entry._next) {\n unlink(entry);\n }\n entry._next = sentinel._next;\n sentinel._next._prev = entry;\n sentinel._next = entry;\n entry._prev = sentinel;\n};\n\nList.prototype.toString = function() {\n var strs = [];\n var sentinel = this._sentinel;\n var curr = sentinel._prev;\n while (curr !== sentinel) {\n strs.push(JSON.stringify(curr, filterOutLinks));\n curr = curr._prev;\n }\n return \"[\" + strs.join(\", \") + \"]\";\n};\n\nfunction unlink(entry) {\n entry._prev._next = entry._next;\n entry._next._prev = entry._prev;\n delete entry._next;\n delete entry._prev;\n}\n\nfunction filterOutLinks(k, v) {\n if (k !== \"_next\" && k !== \"_prev\") {\n return v;\n }\n}\n","var _ = require(\"./lodash\");\nvar util = require(\"./util\");\nvar Graph = require(\"./graphlib\").Graph;\n\nmodule.exports = {\n debugOrdering: debugOrdering\n};\n\n/* istanbul ignore next */\nfunction debugOrdering(g) {\n var layerMatrix = util.buildLayerMatrix(g);\n\n var h = new Graph({ compound: true, multigraph: true }).setGraph({});\n\n _.forEach(g.nodes(), function(v) {\n h.setNode(v, { label: v });\n h.setParent(v, \"layer\" + g.node(v).rank);\n });\n\n _.forEach(g.edges(), function(e) {\n h.setEdge(e.v, e.w, {}, e.name);\n });\n\n _.forEach(layerMatrix, function(layer, i) {\n var layerV = \"layer\" + i;\n h.setNode(layerV, { rank: \"same\" });\n _.reduce(layer, function(u, v) {\n h.setEdge(u, v, { style: \"invis\" });\n return v;\n });\n });\n\n return h;\n}\n","/* global window */\n\nvar graphlib;\n\nif (typeof require === \"function\") {\n try {\n graphlib = require(\"graphlib\");\n } catch (e) {\n // continue regardless of error\n }\n}\n\nif (!graphlib) {\n graphlib = window.graphlib;\n}\n\nmodule.exports = graphlib;\n","var _ = require(\"./lodash\");\nvar Graph = require(\"./graphlib\").Graph;\nvar List = require(\"./data/list\");\n\n/*\n * A greedy heuristic for finding a feedback arc set for a graph. A feedback\n * arc set is a set of edges that can be removed to make a graph acyclic.\n * The algorithm comes from: P. Eades, X. Lin, and W. F. Smyth, \"A fast and\n * effective heuristic for the feedback arc set problem.\" This implementation\n * adjusts that from the paper to allow for weighted edges.\n */\nmodule.exports = greedyFAS;\n\nvar DEFAULT_WEIGHT_FN = _.constant(1);\n\nfunction greedyFAS(g, weightFn) {\n if (g.nodeCount() <= 1) {\n return [];\n }\n var state = buildState(g, weightFn || DEFAULT_WEIGHT_FN);\n var results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx);\n\n // Expand multi-edges\n return _.flatten(_.map(results, function(e) {\n return g.outEdges(e.v, e.w);\n }), true);\n}\n\nfunction doGreedyFAS(g, buckets, zeroIdx) {\n var results = [];\n var sources = buckets[buckets.length - 1];\n var sinks = buckets[0];\n\n var entry;\n while (g.nodeCount()) {\n while ((entry = sinks.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }\n while ((entry = sources.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }\n if (g.nodeCount()) {\n for (var i = buckets.length - 2; i > 0; --i) {\n entry = buckets[i].dequeue();\n if (entry) {\n results = results.concat(removeNode(g, buckets, zeroIdx, entry, true));\n break;\n }\n }\n }\n }\n\n return results;\n}\n\nfunction removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {\n var results = collectPredecessors ? [] : undefined;\n\n _.forEach(g.inEdges(entry.v), function(edge) {\n var weight = g.edge(edge);\n var uEntry = g.node(edge.v);\n\n if (collectPredecessors) {\n results.push({ v: edge.v, w: edge.w });\n }\n\n uEntry.out -= weight;\n assignBucket(buckets, zeroIdx, uEntry);\n });\n\n _.forEach(g.outEdges(entry.v), function(edge) {\n var weight = g.edge(edge);\n var w = edge.w;\n var wEntry = g.node(w);\n wEntry[\"in\"] -= weight;\n assignBucket(buckets, zeroIdx, wEntry);\n });\n\n g.removeNode(entry.v);\n\n return results;\n}\n\nfunction buildState(g, weightFn) {\n var fasGraph = new Graph();\n var maxIn = 0;\n var maxOut = 0;\n\n _.forEach(g.nodes(), function(v) {\n fasGraph.setNode(v, { v: v, \"in\": 0, out: 0 });\n });\n\n // Aggregate weights on nodes, but also sum the weights across multi-edges\n // into a single edge for the fasGraph.\n _.forEach(g.edges(), function(e) {\n var prevWeight = fasGraph.edge(e.v, e.w) || 0;\n var weight = weightFn(e);\n var edgeWeight = prevWeight + weight;\n fasGraph.setEdge(e.v, e.w, edgeWeight);\n maxOut = Math.max(maxOut, fasGraph.node(e.v).out += weight);\n maxIn = Math.max(maxIn, fasGraph.node(e.w)[\"in\"] += weight);\n });\n\n var buckets = _.range(maxOut + maxIn + 3).map(function() { return new List(); });\n var zeroIdx = maxIn + 1;\n\n _.forEach(fasGraph.nodes(), function(v) {\n assignBucket(buckets, zeroIdx, fasGraph.node(v));\n });\n\n return { graph: fasGraph, buckets: buckets, zeroIdx: zeroIdx };\n}\n\nfunction assignBucket(buckets, zeroIdx, entry) {\n if (!entry.out) {\n buckets[0].enqueue(entry);\n } else if (!entry[\"in\"]) {\n buckets[buckets.length - 1].enqueue(entry);\n } else {\n buckets[entry.out - entry[\"in\"] + zeroIdx].enqueue(entry);\n }\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar acyclic = require(\"./acyclic\");\nvar normalize = require(\"./normalize\");\nvar rank = require(\"./rank\");\nvar normalizeRanks = require(\"./util\").normalizeRanks;\nvar parentDummyChains = require(\"./parent-dummy-chains\");\nvar removeEmptyRanks = require(\"./util\").removeEmptyRanks;\nvar nestingGraph = require(\"./nesting-graph\");\nvar addBorderSegments = require(\"./add-border-segments\");\nvar coordinateSystem = require(\"./coordinate-system\");\nvar order = require(\"./order\");\nvar position = require(\"./position\");\nvar util = require(\"./util\");\nvar Graph = require(\"./graphlib\").Graph;\n\nmodule.exports = layout;\n\nfunction layout(g, opts) {\n var time = opts && opts.debugTiming ? util.time : util.notime;\n time(\"layout\", function() {\n var layoutGraph = \n time(\" buildLayoutGraph\", function() { return buildLayoutGraph(g); });\n time(\" runLayout\", function() { runLayout(layoutGraph, time); });\n time(\" updateInputGraph\", function() { updateInputGraph(g, layoutGraph); });\n });\n}\n\nfunction runLayout(g, time) {\n time(\" makeSpaceForEdgeLabels\", function() { makeSpaceForEdgeLabels(g); });\n time(\" removeSelfEdges\", function() { removeSelfEdges(g); });\n time(\" acyclic\", function() { acyclic.run(g); });\n time(\" nestingGraph.run\", function() { nestingGraph.run(g); });\n time(\" rank\", function() { rank(util.asNonCompoundGraph(g)); });\n time(\" injectEdgeLabelProxies\", function() { injectEdgeLabelProxies(g); });\n time(\" removeEmptyRanks\", function() { removeEmptyRanks(g); });\n time(\" nestingGraph.cleanup\", function() { nestingGraph.cleanup(g); });\n time(\" normalizeRanks\", function() { normalizeRanks(g); });\n time(\" assignRankMinMax\", function() { assignRankMinMax(g); });\n time(\" removeEdgeLabelProxies\", function() { removeEdgeLabelProxies(g); });\n time(\" normalize.run\", function() { normalize.run(g); });\n time(\" parentDummyChains\", function() { parentDummyChains(g); });\n time(\" addBorderSegments\", function() { addBorderSegments(g); });\n time(\" order\", function() { order(g); });\n time(\" insertSelfEdges\", function() { insertSelfEdges(g); });\n time(\" adjustCoordinateSystem\", function() { coordinateSystem.adjust(g); });\n time(\" position\", function() { position(g); });\n time(\" positionSelfEdges\", function() { positionSelfEdges(g); });\n time(\" removeBorderNodes\", function() { removeBorderNodes(g); });\n time(\" normalize.undo\", function() { normalize.undo(g); });\n time(\" fixupEdgeLabelCoords\", function() { fixupEdgeLabelCoords(g); });\n time(\" undoCoordinateSystem\", function() { coordinateSystem.undo(g); });\n time(\" translateGraph\", function() { translateGraph(g); });\n time(\" assignNodeIntersects\", function() { assignNodeIntersects(g); });\n time(\" reversePoints\", function() { reversePointsForReversedEdges(g); });\n time(\" acyclic.undo\", function() { acyclic.undo(g); });\n}\n\n/*\n * Copies final layout information from the layout graph back to the input\n * graph. This process only copies whitelisted attributes from the layout graph\n * to the input graph, so it serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction updateInputGraph(inputGraph, layoutGraph) {\n _.forEach(inputGraph.nodes(), function(v) {\n var inputLabel = inputGraph.node(v);\n var layoutLabel = layoutGraph.node(v);\n\n if (inputLabel) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n\n if (layoutGraph.children(v).length) {\n inputLabel.width = layoutLabel.width;\n inputLabel.height = layoutLabel.height;\n }\n }\n });\n\n _.forEach(inputGraph.edges(), function(e) {\n var inputLabel = inputGraph.edge(e);\n var layoutLabel = layoutGraph.edge(e);\n\n inputLabel.points = layoutLabel.points;\n if (_.has(layoutLabel, \"x\")) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n }\n });\n\n inputGraph.graph().width = layoutGraph.graph().width;\n inputGraph.graph().height = layoutGraph.graph().height;\n}\n\nvar graphNumAttrs = [\"nodesep\", \"edgesep\", \"ranksep\", \"marginx\", \"marginy\"];\nvar graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: \"tb\" };\nvar graphAttrs = [\"acyclicer\", \"ranker\", \"rankdir\", \"align\"];\nvar nodeNumAttrs = [\"width\", \"height\"];\nvar nodeDefaults = { width: 0, height: 0 };\nvar edgeNumAttrs = [\"minlen\", \"weight\", \"width\", \"height\", \"labeloffset\"];\nvar edgeDefaults = {\n minlen: 1, weight: 1, width: 0, height: 0,\n labeloffset: 10, labelpos: \"r\"\n};\nvar edgeAttrs = [\"labelpos\"];\n\n/*\n * Constructs a new graph from the input graph, which can be used for layout.\n * This process copies only whitelisted attributes from the input graph to the\n * layout graph. Thus this function serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction buildLayoutGraph(inputGraph) {\n var g = new Graph({ multigraph: true, compound: true });\n var graph = canonicalize(inputGraph.graph());\n\n g.setGraph(_.merge({},\n graphDefaults,\n selectNumberAttrs(graph, graphNumAttrs),\n _.pick(graph, graphAttrs)));\n\n _.forEach(inputGraph.nodes(), function(v) {\n var node = canonicalize(inputGraph.node(v));\n g.setNode(v, _.defaults(selectNumberAttrs(node, nodeNumAttrs), nodeDefaults));\n g.setParent(v, inputGraph.parent(v));\n });\n\n _.forEach(inputGraph.edges(), function(e) {\n var edge = canonicalize(inputGraph.edge(e));\n g.setEdge(e, _.merge({},\n edgeDefaults,\n selectNumberAttrs(edge, edgeNumAttrs),\n _.pick(edge, edgeAttrs)));\n });\n\n return g;\n}\n\n/*\n * This idea comes from the Gansner paper: to account for edge labels in our\n * layout we split each rank in half by doubling minlen and halving ranksep.\n * Then we can place labels at these mid-points between nodes.\n *\n * We also add some minimal padding to the width to push the label for the edge\n * away from the edge itself a bit.\n */\nfunction makeSpaceForEdgeLabels(g) {\n var graph = g.graph();\n graph.ranksep /= 2;\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n edge.minlen *= 2;\n if (edge.labelpos.toLowerCase() !== \"c\") {\n if (graph.rankdir === \"TB\" || graph.rankdir === \"BT\") {\n edge.width += edge.labeloffset;\n } else {\n edge.height += edge.labeloffset;\n }\n }\n });\n}\n\n/*\n * Creates temporary dummy nodes that capture the rank in which each edge's\n * label is going to, if it has one of non-zero width and height. We do this\n * so that we can safely remove empty ranks while preserving balance for the\n * label's position.\n */\nfunction injectEdgeLabelProxies(g) {\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (edge.width && edge.height) {\n var v = g.node(e.v);\n var w = g.node(e.w);\n var label = { rank: (w.rank - v.rank) / 2 + v.rank, e: e };\n util.addDummyNode(g, \"edge-proxy\", label, \"_ep\");\n }\n });\n}\n\nfunction assignRankMinMax(g) {\n var maxRank = 0;\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n if (node.borderTop) {\n node.minRank = g.node(node.borderTop).rank;\n node.maxRank = g.node(node.borderBottom).rank;\n maxRank = _.max(maxRank, node.maxRank);\n }\n });\n g.graph().maxRank = maxRank;\n}\n\nfunction removeEdgeLabelProxies(g) {\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n if (node.dummy === \"edge-proxy\") {\n g.edge(node.e).labelRank = node.rank;\n g.removeNode(v);\n }\n });\n}\n\nfunction translateGraph(g) {\n var minX = Number.POSITIVE_INFINITY;\n var maxX = 0;\n var minY = Number.POSITIVE_INFINITY;\n var maxY = 0;\n var graphLabel = g.graph();\n var marginX = graphLabel.marginx || 0;\n var marginY = graphLabel.marginy || 0;\n\n function getExtremes(attrs) {\n var x = attrs.x;\n var y = attrs.y;\n var w = attrs.width;\n var h = attrs.height;\n minX = Math.min(minX, x - w / 2);\n maxX = Math.max(maxX, x + w / 2);\n minY = Math.min(minY, y - h / 2);\n maxY = Math.max(maxY, y + h / 2);\n }\n\n _.forEach(g.nodes(), function(v) { getExtremes(g.node(v)); });\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (_.has(edge, \"x\")) {\n getExtremes(edge);\n }\n });\n\n minX -= marginX;\n minY -= marginY;\n\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n node.x -= minX;\n node.y -= minY;\n });\n\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n _.forEach(edge.points, function(p) {\n p.x -= minX;\n p.y -= minY;\n });\n if (_.has(edge, \"x\")) { edge.x -= minX; }\n if (_.has(edge, \"y\")) { edge.y -= minY; }\n });\n\n graphLabel.width = maxX - minX + marginX;\n graphLabel.height = maxY - minY + marginY;\n}\n\nfunction assignNodeIntersects(g) {\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n var nodeV = g.node(e.v);\n var nodeW = g.node(e.w);\n var p1, p2;\n if (!edge.points) {\n edge.points = [];\n p1 = nodeW;\n p2 = nodeV;\n } else {\n p1 = edge.points[0];\n p2 = edge.points[edge.points.length - 1];\n }\n edge.points.unshift(util.intersectRect(nodeV, p1));\n edge.points.push(util.intersectRect(nodeW, p2));\n });\n}\n\nfunction fixupEdgeLabelCoords(g) {\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (_.has(edge, \"x\")) {\n if (edge.labelpos === \"l\" || edge.labelpos === \"r\") {\n edge.width -= edge.labeloffset;\n }\n switch (edge.labelpos) {\n case \"l\": edge.x -= edge.width / 2 + edge.labeloffset; break;\n case \"r\": edge.x += edge.width / 2 + edge.labeloffset; break;\n }\n }\n });\n}\n\nfunction reversePointsForReversedEdges(g) {\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (edge.reversed) {\n edge.points.reverse();\n }\n });\n}\n\nfunction removeBorderNodes(g) {\n _.forEach(g.nodes(), function(v) {\n if (g.children(v).length) {\n var node = g.node(v);\n var t = g.node(node.borderTop);\n var b = g.node(node.borderBottom);\n var l = g.node(_.last(node.borderLeft));\n var r = g.node(_.last(node.borderRight));\n\n node.width = Math.abs(r.x - l.x);\n node.height = Math.abs(b.y - t.y);\n node.x = l.x + node.width / 2;\n node.y = t.y + node.height / 2;\n }\n });\n\n _.forEach(g.nodes(), function(v) {\n if (g.node(v).dummy === \"border\") {\n g.removeNode(v);\n }\n });\n}\n\nfunction removeSelfEdges(g) {\n _.forEach(g.edges(), function(e) {\n if (e.v === e.w) {\n var node = g.node(e.v);\n if (!node.selfEdges) {\n node.selfEdges = [];\n }\n node.selfEdges.push({ e: e, label: g.edge(e) });\n g.removeEdge(e);\n }\n });\n}\n\nfunction insertSelfEdges(g) {\n var layers = util.buildLayerMatrix(g);\n _.forEach(layers, function(layer) {\n var orderShift = 0;\n _.forEach(layer, function(v, i) {\n var node = g.node(v);\n node.order = i + orderShift;\n _.forEach(node.selfEdges, function(selfEdge) {\n util.addDummyNode(g, \"selfedge\", {\n width: selfEdge.label.width,\n height: selfEdge.label.height,\n rank: node.rank,\n order: i + (++orderShift),\n e: selfEdge.e,\n label: selfEdge.label\n }, \"_se\");\n });\n delete node.selfEdges;\n });\n });\n}\n\nfunction positionSelfEdges(g) {\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n if (node.dummy === \"selfedge\") {\n var selfNode = g.node(node.e.v);\n var x = selfNode.x + selfNode.width / 2;\n var y = selfNode.y;\n var dx = node.x - x;\n var dy = selfNode.height / 2;\n g.setEdge(node.e, node.label);\n g.removeNode(v);\n node.label.points = [\n { x: x + 2 * dx / 3, y: y - dy },\n { x: x + 5 * dx / 6, y: y - dy },\n { x: x + dx , y: y },\n { x: x + 5 * dx / 6, y: y + dy },\n { x: x + 2 * dx / 3, y: y + dy }\n ];\n node.label.x = node.x;\n node.label.y = node.y;\n }\n });\n}\n\nfunction selectNumberAttrs(obj, attrs) {\n return _.mapValues(_.pick(obj, attrs), Number);\n}\n\nfunction canonicalize(attrs) {\n var newAttrs = {};\n _.forEach(attrs, function(v, k) {\n newAttrs[k.toLowerCase()] = v;\n });\n return newAttrs;\n}\n","/* global window */\n\nvar lodash;\n\nif (typeof require === \"function\") {\n try {\n lodash = {\n cloneDeep: require(\"lodash/cloneDeep\"),\n constant: require(\"lodash/constant\"),\n defaults: require(\"lodash/defaults\"),\n each: require(\"lodash/each\"),\n filter: require(\"lodash/filter\"),\n find: require(\"lodash/find\"),\n flatten: require(\"lodash/flatten\"),\n forEach: require(\"lodash/forEach\"),\n forIn: require(\"lodash/forIn\"),\n has: require(\"lodash/has\"),\n isUndefined: require(\"lodash/isUndefined\"),\n last: require(\"lodash/last\"),\n map: require(\"lodash/map\"),\n mapValues: require(\"lodash/mapValues\"),\n max: require(\"lodash/max\"),\n merge: require(\"lodash/merge\"),\n min: require(\"lodash/min\"),\n minBy: require(\"lodash/minBy\"),\n now: require(\"lodash/now\"),\n pick: require(\"lodash/pick\"),\n range: require(\"lodash/range\"),\n reduce: require(\"lodash/reduce\"),\n sortBy: require(\"lodash/sortBy\"),\n uniqueId: require(\"lodash/uniqueId\"),\n values: require(\"lodash/values\"),\n zipObject: require(\"lodash/zipObject\"),\n };\n } catch (e) {\n // continue regardless of error\n }\n}\n\nif (!lodash) {\n lodash = window._;\n}\n\nmodule.exports = lodash;\n","var _ = require(\"./lodash\");\nvar util = require(\"./util\");\n\nmodule.exports = {\n run: run,\n cleanup: cleanup\n};\n\n/*\n * A nesting graph creates dummy nodes for the tops and bottoms of subgraphs,\n * adds appropriate edges to ensure that all cluster nodes are placed between\n * these boundries, and ensures that the graph is connected.\n *\n * In addition we ensure, through the use of the minlen property, that nodes\n * and subgraph border nodes to not end up on the same rank.\n *\n * Preconditions:\n *\n * 1. Input graph is a DAG\n * 2. Nodes in the input graph has a minlen attribute\n *\n * Postconditions:\n *\n * 1. Input graph is connected.\n * 2. Dummy nodes are added for the tops and bottoms of subgraphs.\n * 3. The minlen attribute for nodes is adjusted to ensure nodes do not\n * get placed on the same rank as subgraph border nodes.\n *\n * The nesting graph idea comes from Sander, \"Layout of Compound Directed\n * Graphs.\"\n */\nfunction run(g) {\n var root = util.addDummyNode(g, \"root\", {}, \"_root\");\n var depths = treeDepths(g);\n var height = _.max(_.values(depths)) - 1; // Note: depths is an Object not an array\n var nodeSep = 2 * height + 1;\n\n g.graph().nestingRoot = root;\n\n // Multiply minlen by nodeSep to align nodes on non-border ranks.\n _.forEach(g.edges(), function(e) { g.edge(e).minlen *= nodeSep; });\n\n // Calculate a weight that is sufficient to keep subgraphs vertically compact\n var weight = sumWeights(g) + 1;\n\n // Create border nodes and link them up\n _.forEach(g.children(), function(child) {\n dfs(g, root, nodeSep, weight, height, depths, child);\n });\n\n // Save the multiplier for node layers for later removal of empty border\n // layers.\n g.graph().nodeRankFactor = nodeSep;\n}\n\nfunction dfs(g, root, nodeSep, weight, height, depths, v) {\n var children = g.children(v);\n if (!children.length) {\n if (v !== root) {\n g.setEdge(root, v, { weight: 0, minlen: nodeSep });\n }\n return;\n }\n\n var top = util.addBorderNode(g, \"_bt\");\n var bottom = util.addBorderNode(g, \"_bb\");\n var label = g.node(v);\n\n g.setParent(top, v);\n label.borderTop = top;\n g.setParent(bottom, v);\n label.borderBottom = bottom;\n\n _.forEach(children, function(child) {\n dfs(g, root, nodeSep, weight, height, depths, child);\n\n var childNode = g.node(child);\n var childTop = childNode.borderTop ? childNode.borderTop : child;\n var childBottom = childNode.borderBottom ? childNode.borderBottom : child;\n var thisWeight = childNode.borderTop ? weight : 2 * weight;\n var minlen = childTop !== childBottom ? 1 : height - depths[v] + 1;\n\n g.setEdge(top, childTop, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true\n });\n\n g.setEdge(childBottom, bottom, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true\n });\n });\n\n if (!g.parent(v)) {\n g.setEdge(root, top, { weight: 0, minlen: height + depths[v] });\n }\n}\n\nfunction treeDepths(g) {\n var depths = {};\n function dfs(v, depth) {\n var children = g.children(v);\n if (children && children.length) {\n _.forEach(children, function(child) {\n dfs(child, depth + 1);\n });\n }\n depths[v] = depth;\n }\n _.forEach(g.children(), function(v) { dfs(v, 1); });\n return depths;\n}\n\nfunction sumWeights(g) {\n return _.reduce(g.edges(), function(acc, e) {\n return acc + g.edge(e).weight;\n }, 0);\n}\n\nfunction cleanup(g) {\n var graphLabel = g.graph();\n g.removeNode(graphLabel.nestingRoot);\n delete graphLabel.nestingRoot;\n _.forEach(g.edges(), function(e) {\n var edge = g.edge(e);\n if (edge.nestingEdge) {\n g.removeEdge(e);\n }\n });\n}\n","\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar util = require(\"./util\");\n\nmodule.exports = {\n run: run,\n undo: undo\n};\n\n/*\n * Breaks any long edges in the graph into short segments that span 1 layer\n * each. This operation is undoable with the denormalize function.\n *\n * Pre-conditions:\n *\n * 1. The input graph is a DAG.\n * 2. Each node in the graph has a \"rank\" property.\n *\n * Post-condition:\n *\n * 1. All edges in the graph have a length of 1.\n * 2. Dummy nodes are added where edges have been split into segments.\n * 3. The graph is augmented with a \"dummyChains\" attribute which contains\n * the first dummy in each chain of dummy nodes produced.\n */\nfunction run(g) {\n g.graph().dummyChains = [];\n _.forEach(g.edges(), function(edge) { normalizeEdge(g, edge); });\n}\n\nfunction normalizeEdge(g, e) {\n var v = e.v;\n var vRank = g.node(v).rank;\n var w = e.w;\n var wRank = g.node(w).rank;\n var name = e.name;\n var edgeLabel = g.edge(e);\n var labelRank = edgeLabel.labelRank;\n\n if (wRank === vRank + 1) return;\n\n g.removeEdge(e);\n\n var dummy, attrs, i;\n for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) {\n edgeLabel.points = [];\n attrs = {\n width: 0, height: 0,\n edgeLabel: edgeLabel, edgeObj: e,\n rank: vRank\n };\n dummy = util.addDummyNode(g, \"edge\", attrs, \"_d\");\n if (vRank === labelRank) {\n attrs.width = edgeLabel.width;\n attrs.height = edgeLabel.height;\n attrs.dummy = \"edge-label\";\n attrs.labelpos = edgeLabel.labelpos;\n }\n g.setEdge(v, dummy, { weight: edgeLabel.weight }, name);\n if (i === 0) {\n g.graph().dummyChains.push(dummy);\n }\n v = dummy;\n }\n\n g.setEdge(v, w, { weight: edgeLabel.weight }, name);\n}\n\nfunction undo(g) {\n _.forEach(g.graph().dummyChains, function(v) {\n var node = g.node(v);\n var origLabel = node.edgeLabel;\n var w;\n g.setEdge(node.edgeObj, origLabel);\n while (node.dummy) {\n w = g.successors(v)[0];\n g.removeNode(v);\n origLabel.points.push({ x: node.x, y: node.y });\n if (node.dummy === \"edge-label\") {\n origLabel.x = node.x;\n origLabel.y = node.y;\n origLabel.width = node.width;\n origLabel.height = node.height;\n }\n v = w;\n node = g.node(v);\n }\n });\n}\n","var _ = require(\"../lodash\");\n\nmodule.exports = addSubgraphConstraints;\n\nfunction addSubgraphConstraints(g, cg, vs) {\n var prev = {},\n rootPrev;\n\n _.forEach(vs, function(v) {\n var child = g.parent(v),\n parent,\n prevChild;\n while (child) {\n parent = g.parent(child);\n if (parent) {\n prevChild = prev[parent];\n prev[parent] = child;\n } else {\n prevChild = rootPrev;\n rootPrev = child;\n }\n if (prevChild && prevChild !== child) {\n cg.setEdge(prevChild, child);\n return;\n }\n child = parent;\n }\n });\n\n /*\n function dfs(v) {\n var children = v ? g.children(v) : g.children();\n if (children.length) {\n var min = Number.POSITIVE_INFINITY,\n subgraphs = [];\n _.each(children, function(child) {\n var childMin = dfs(child);\n if (g.children(child).length) {\n subgraphs.push({ v: child, order: childMin });\n }\n min = Math.min(min, childMin);\n });\n _.reduce(_.sortBy(subgraphs, \"order\"), function(prev, curr) {\n cg.setEdge(prev.v, curr.v);\n return curr;\n });\n return min;\n }\n return g.node(v).order;\n }\n dfs(undefined);\n */\n}\n","var _ = require(\"../lodash\");\n\nmodule.exports = barycenter;\n\nfunction barycenter(g, movable) {\n return _.map(movable, function(v) {\n var inV = g.inEdges(v);\n if (!inV.length) {\n return { v: v };\n } else {\n var result = _.reduce(inV, function(acc, e) {\n var edge = g.edge(e),\n nodeU = g.node(e.v);\n return {\n sum: acc.sum + (edge.weight * nodeU.order),\n weight: acc.weight + edge.weight\n };\n }, { sum: 0, weight: 0 });\n\n return {\n v: v,\n barycenter: result.sum / result.weight,\n weight: result.weight\n };\n }\n });\n}\n\n","var _ = require(\"../lodash\");\nvar Graph = require(\"../graphlib\").Graph;\n\nmodule.exports = buildLayerGraph;\n\n/*\n * Constructs a graph that can be used to sort a layer of nodes. The graph will\n * contain all base and subgraph nodes from the request layer in their original\n * hierarchy and any edges that are incident on these nodes and are of the type\n * requested by the \"relationship\" parameter.\n *\n * Nodes from the requested rank that do not have parents are assigned a root\n * node in the output graph, which is set in the root graph attribute. This\n * makes it easy to walk the hierarchy of movable nodes during ordering.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG\n * 2. Base nodes in the input graph have a rank attribute\n * 3. Subgraph nodes in the input graph has minRank and maxRank attributes\n * 4. Edges have an assigned weight\n *\n * Post-conditions:\n *\n * 1. Output graph has all nodes in the movable rank with preserved\n * hierarchy.\n * 2. Root nodes in the movable layer are made children of the node\n * indicated by the root attribute of the graph.\n * 3. Non-movable nodes incident on movable nodes, selected by the\n * relationship parameter, are included in the graph (without hierarchy).\n * 4. Edges incident on movable nodes, selected by the relationship\n * parameter, are added to the output graph.\n * 5. The weights for copied edges are aggregated as need, since the output\n * graph is not a multi-graph.\n */\nfunction buildLayerGraph(g, rank, relationship) {\n var root = createRootNode(g),\n result = new Graph({ compound: true }).setGraph({ root: root })\n .setDefaultNodeLabel(function(v) { return g.node(v); });\n\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v),\n parent = g.parent(v);\n\n if (node.rank === rank || node.minRank <= rank && rank <= node.maxRank) {\n result.setNode(v);\n result.setParent(v, parent || root);\n\n // This assumes we have only short edges!\n _.forEach(g[relationship](v), function(e) {\n var u = e.v === v ? e.w : e.v,\n edge = result.edge(u, v),\n weight = !_.isUndefined(edge) ? edge.weight : 0;\n result.setEdge(u, v, { weight: g.edge(e).weight + weight });\n });\n\n if (_.has(node, \"minRank\")) {\n result.setNode(v, {\n borderLeft: node.borderLeft[rank],\n borderRight: node.borderRight[rank]\n });\n }\n }\n });\n\n return result;\n}\n\nfunction createRootNode(g) {\n var v;\n while (g.hasNode((v = _.uniqueId(\"_root\"))));\n return v;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\n\nmodule.exports = crossCount;\n\n/*\n * A function that takes a layering (an array of layers, each with an array of\n * ordererd nodes) and a graph and returns a weighted crossing count.\n *\n * Pre-conditions:\n *\n * 1. Input graph must be simple (not a multigraph), directed, and include\n * only simple edges.\n * 2. Edges in the input graph must have assigned weights.\n *\n * Post-conditions:\n *\n * 1. The graph and layering matrix are left unchanged.\n *\n * This algorithm is derived from Barth, et al., \"Bilayer Cross Counting.\"\n */\nfunction crossCount(g, layering) {\n var cc = 0;\n for (var i = 1; i < layering.length; ++i) {\n cc += twoLayerCrossCount(g, layering[i-1], layering[i]);\n }\n return cc;\n}\n\nfunction twoLayerCrossCount(g, northLayer, southLayer) {\n // Sort all of the edges between the north and south layers by their position\n // in the north layer and then the south. Map these edges to the position of\n // their head in the south layer.\n var southPos = _.zipObject(southLayer,\n _.map(southLayer, function (v, i) { return i; }));\n var southEntries = _.flatten(_.map(northLayer, function(v) {\n return _.sortBy(_.map(g.outEdges(v), function(e) {\n return { pos: southPos[e.w], weight: g.edge(e).weight };\n }), \"pos\");\n }), true);\n\n // Build the accumulator tree\n var firstIndex = 1;\n while (firstIndex < southLayer.length) firstIndex <<= 1;\n var treeSize = 2 * firstIndex - 1;\n firstIndex -= 1;\n var tree = _.map(new Array(treeSize), function() { return 0; });\n\n // Calculate the weighted crossings\n var cc = 0;\n _.forEach(southEntries.forEach(function(entry) {\n var index = entry.pos + firstIndex;\n tree[index] += entry.weight;\n var weightSum = 0;\n while (index > 0) {\n if (index % 2) {\n weightSum += tree[index + 1];\n }\n index = (index - 1) >> 1;\n tree[index] += entry.weight;\n }\n cc += entry.weight * weightSum;\n }));\n\n return cc;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar initOrder = require(\"./init-order\");\nvar crossCount = require(\"./cross-count\");\nvar sortSubgraph = require(\"./sort-subgraph\");\nvar buildLayerGraph = require(\"./build-layer-graph\");\nvar addSubgraphConstraints = require(\"./add-subgraph-constraints\");\nvar Graph = require(\"../graphlib\").Graph;\nvar util = require(\"../util\");\n\nmodule.exports = order;\n\n/*\n * Applies heuristics to minimize edge crossings in the graph and sets the best\n * order solution as an order attribute on each node.\n *\n * Pre-conditions:\n *\n * 1. Graph must be DAG\n * 2. Graph nodes must be objects with a \"rank\" attribute\n * 3. Graph edges must have the \"weight\" attribute\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have an \"order\" attribute based on the results of the\n * algorithm.\n */\nfunction order(g) {\n var maxRank = util.maxRank(g),\n downLayerGraphs = buildLayerGraphs(g, _.range(1, maxRank + 1), \"inEdges\"),\n upLayerGraphs = buildLayerGraphs(g, _.range(maxRank - 1, -1, -1), \"outEdges\");\n\n var layering = initOrder(g);\n assignOrder(g, layering);\n\n var bestCC = Number.POSITIVE_INFINITY,\n best;\n\n for (var i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {\n sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2);\n\n layering = util.buildLayerMatrix(g);\n var cc = crossCount(g, layering);\n if (cc < bestCC) {\n lastBest = 0;\n best = _.cloneDeep(layering);\n bestCC = cc;\n }\n }\n\n assignOrder(g, best);\n}\n\nfunction buildLayerGraphs(g, ranks, relationship) {\n return _.map(ranks, function(rank) {\n return buildLayerGraph(g, rank, relationship);\n });\n}\n\nfunction sweepLayerGraphs(layerGraphs, biasRight) {\n var cg = new Graph();\n _.forEach(layerGraphs, function(lg) {\n var root = lg.graph().root;\n var sorted = sortSubgraph(lg, root, cg, biasRight);\n _.forEach(sorted.vs, function(v, i) {\n lg.node(v).order = i;\n });\n addSubgraphConstraints(lg, cg, sorted.vs);\n });\n}\n\nfunction assignOrder(g, layering) {\n _.forEach(layering, function(layer) {\n _.forEach(layer, function(v, i) {\n g.node(v).order = i;\n });\n });\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\n\nmodule.exports = initOrder;\n\n/*\n * Assigns an initial order value for each node by performing a DFS search\n * starting from nodes in the first rank. Nodes are assigned an order in their\n * rank as they are first visited.\n *\n * This approach comes from Gansner, et al., \"A Technique for Drawing Directed\n * Graphs.\"\n *\n * Returns a layering matrix with an array per layer and each layer sorted by\n * the order of its nodes.\n */\nfunction initOrder(g) {\n var visited = {};\n var simpleNodes = _.filter(g.nodes(), function(v) {\n return !g.children(v).length;\n });\n var maxRank = _.max(_.map(simpleNodes, function(v) { return g.node(v).rank; }));\n var layers = _.map(_.range(maxRank + 1), function() { return []; });\n\n function dfs(v) {\n if (_.has(visited, v)) return;\n visited[v] = true;\n var node = g.node(v);\n layers[node.rank].push(v);\n _.forEach(g.successors(v), dfs);\n }\n\n var orderedVs = _.sortBy(simpleNodes, function(v) { return g.node(v).rank; });\n _.forEach(orderedVs, dfs);\n\n return layers;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\n\nmodule.exports = resolveConflicts;\n\n/*\n * Given a list of entries of the form {v, barycenter, weight} and a\n * constraint graph this function will resolve any conflicts between the\n * constraint graph and the barycenters for the entries. If the barycenters for\n * an entry would violate a constraint in the constraint graph then we coalesce\n * the nodes in the conflict into a new node that respects the contraint and\n * aggregates barycenter and weight information.\n *\n * This implementation is based on the description in Forster, \"A Fast and\n * Simple Hueristic for Constrained Two-Level Crossing Reduction,\" thought it\n * differs in some specific details.\n *\n * Pre-conditions:\n *\n * 1. Each entry has the form {v, barycenter, weight}, or if the node has\n * no barycenter, then {v}.\n *\n * Returns:\n *\n * A new list of entries of the form {vs, i, barycenter, weight}. The list\n * `vs` may either be a singleton or it may be an aggregation of nodes\n * ordered such that they do not violate constraints from the constraint\n * graph. The property `i` is the lowest original index of any of the\n * elements in `vs`.\n */\nfunction resolveConflicts(entries, cg) {\n var mappedEntries = {};\n _.forEach(entries, function(entry, i) {\n var tmp = mappedEntries[entry.v] = {\n indegree: 0,\n \"in\": [],\n out: [],\n vs: [entry.v],\n i: i\n };\n if (!_.isUndefined(entry.barycenter)) {\n tmp.barycenter = entry.barycenter;\n tmp.weight = entry.weight;\n }\n });\n\n _.forEach(cg.edges(), function(e) {\n var entryV = mappedEntries[e.v];\n var entryW = mappedEntries[e.w];\n if (!_.isUndefined(entryV) && !_.isUndefined(entryW)) {\n entryW.indegree++;\n entryV.out.push(mappedEntries[e.w]);\n }\n });\n\n var sourceSet = _.filter(mappedEntries, function(entry) {\n return !entry.indegree;\n });\n\n return doResolveConflicts(sourceSet);\n}\n\nfunction doResolveConflicts(sourceSet) {\n var entries = [];\n\n function handleIn(vEntry) {\n return function(uEntry) {\n if (uEntry.merged) {\n return;\n }\n if (_.isUndefined(uEntry.barycenter) ||\n _.isUndefined(vEntry.barycenter) ||\n uEntry.barycenter >= vEntry.barycenter) {\n mergeEntries(vEntry, uEntry);\n }\n };\n }\n\n function handleOut(vEntry) {\n return function(wEntry) {\n wEntry[\"in\"].push(vEntry);\n if (--wEntry.indegree === 0) {\n sourceSet.push(wEntry);\n }\n };\n }\n\n while (sourceSet.length) {\n var entry = sourceSet.pop();\n entries.push(entry);\n _.forEach(entry[\"in\"].reverse(), handleIn(entry));\n _.forEach(entry.out, handleOut(entry));\n }\n\n return _.map(_.filter(entries, function(entry) { return !entry.merged; }),\n function(entry) {\n return _.pick(entry, [\"vs\", \"i\", \"barycenter\", \"weight\"]);\n });\n\n}\n\nfunction mergeEntries(target, source) {\n var sum = 0;\n var weight = 0;\n\n if (target.weight) {\n sum += target.barycenter * target.weight;\n weight += target.weight;\n }\n\n if (source.weight) {\n sum += source.barycenter * source.weight;\n weight += source.weight;\n }\n\n target.vs = source.vs.concat(target.vs);\n target.barycenter = sum / weight;\n target.weight = weight;\n target.i = Math.min(source.i, target.i);\n source.merged = true;\n}\n","var _ = require(\"../lodash\");\nvar barycenter = require(\"./barycenter\");\nvar resolveConflicts = require(\"./resolve-conflicts\");\nvar sort = require(\"./sort\");\n\nmodule.exports = sortSubgraph;\n\nfunction sortSubgraph(g, v, cg, biasRight) {\n var movable = g.children(v);\n var node = g.node(v);\n var bl = node ? node.borderLeft : undefined;\n var br = node ? node.borderRight: undefined;\n var subgraphs = {};\n\n if (bl) {\n movable = _.filter(movable, function(w) {\n return w !== bl && w !== br;\n });\n }\n\n var barycenters = barycenter(g, movable);\n _.forEach(barycenters, function(entry) {\n if (g.children(entry.v).length) {\n var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight);\n subgraphs[entry.v] = subgraphResult;\n if (_.has(subgraphResult, \"barycenter\")) {\n mergeBarycenters(entry, subgraphResult);\n }\n }\n });\n\n var entries = resolveConflicts(barycenters, cg);\n expandSubgraphs(entries, subgraphs);\n\n var result = sort(entries, biasRight);\n\n if (bl) {\n result.vs = _.flatten([bl, result.vs, br], true);\n if (g.predecessors(bl).length) {\n var blPred = g.node(g.predecessors(bl)[0]),\n brPred = g.node(g.predecessors(br)[0]);\n if (!_.has(result, \"barycenter\")) {\n result.barycenter = 0;\n result.weight = 0;\n }\n result.barycenter = (result.barycenter * result.weight +\n blPred.order + brPred.order) / (result.weight + 2);\n result.weight += 2;\n }\n }\n\n return result;\n}\n\nfunction expandSubgraphs(entries, subgraphs) {\n _.forEach(entries, function(entry) {\n entry.vs = _.flatten(entry.vs.map(function(v) {\n if (subgraphs[v]) {\n return subgraphs[v].vs;\n }\n return v;\n }), true);\n });\n}\n\nfunction mergeBarycenters(target, other) {\n if (!_.isUndefined(target.barycenter)) {\n target.barycenter = (target.barycenter * target.weight +\n other.barycenter * other.weight) /\n (target.weight + other.weight);\n target.weight += other.weight;\n } else {\n target.barycenter = other.barycenter;\n target.weight = other.weight;\n }\n}\n","var _ = require(\"../lodash\");\nvar util = require(\"../util\");\n\nmodule.exports = sort;\n\nfunction sort(entries, biasRight) {\n var parts = util.partition(entries, function(entry) {\n return _.has(entry, \"barycenter\");\n });\n var sortable = parts.lhs,\n unsortable = _.sortBy(parts.rhs, function(entry) { return -entry.i; }),\n vs = [],\n sum = 0,\n weight = 0,\n vsIndex = 0;\n\n sortable.sort(compareWithBias(!!biasRight));\n\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n\n _.forEach(sortable, function (entry) {\n vsIndex += entry.vs.length;\n vs.push(entry.vs);\n sum += entry.barycenter * entry.weight;\n weight += entry.weight;\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n });\n\n var result = { vs: _.flatten(vs, true) };\n if (weight) {\n result.barycenter = sum / weight;\n result.weight = weight;\n }\n return result;\n}\n\nfunction consumeUnsortable(vs, unsortable, index) {\n var last;\n while (unsortable.length && (last = _.last(unsortable)).i <= index) {\n unsortable.pop();\n vs.push(last.vs);\n index++;\n }\n return index;\n}\n\nfunction compareWithBias(bias) {\n return function(entryV, entryW) {\n if (entryV.barycenter < entryW.barycenter) {\n return -1;\n } else if (entryV.barycenter > entryW.barycenter) {\n return 1;\n }\n\n return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;\n };\n}\n","var _ = require(\"./lodash\");\n\nmodule.exports = parentDummyChains;\n\nfunction parentDummyChains(g) {\n var postorderNums = postorder(g);\n\n _.forEach(g.graph().dummyChains, function(v) {\n var node = g.node(v);\n var edgeObj = node.edgeObj;\n var pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w);\n var path = pathData.path;\n var lca = pathData.lca;\n var pathIdx = 0;\n var pathV = path[pathIdx];\n var ascending = true;\n\n while (v !== edgeObj.w) {\n node = g.node(v);\n\n if (ascending) {\n while ((pathV = path[pathIdx]) !== lca &&\n g.node(pathV).maxRank < node.rank) {\n pathIdx++;\n }\n\n if (pathV === lca) {\n ascending = false;\n }\n }\n\n if (!ascending) {\n while (pathIdx < path.length - 1 &&\n g.node(pathV = path[pathIdx + 1]).minRank <= node.rank) {\n pathIdx++;\n }\n pathV = path[pathIdx];\n }\n\n g.setParent(v, pathV);\n v = g.successors(v)[0];\n }\n });\n}\n\n// Find a path from v to w through the lowest common ancestor (LCA). Return the\n// full path and the LCA.\nfunction findPath(g, postorderNums, v, w) {\n var vPath = [];\n var wPath = [];\n var low = Math.min(postorderNums[v].low, postorderNums[w].low);\n var lim = Math.max(postorderNums[v].lim, postorderNums[w].lim);\n var parent;\n var lca;\n\n // Traverse up from v to find the LCA\n parent = v;\n do {\n parent = g.parent(parent);\n vPath.push(parent);\n } while (parent &&\n (postorderNums[parent].low > low || lim > postorderNums[parent].lim));\n lca = parent;\n\n // Traverse from w to LCA\n parent = w;\n while ((parent = g.parent(parent)) !== lca) {\n wPath.push(parent);\n }\n\n return { path: vPath.concat(wPath.reverse()), lca: lca };\n}\n\nfunction postorder(g) {\n var result = {};\n var lim = 0;\n\n function dfs(v) {\n var low = lim;\n _.forEach(g.children(v), dfs);\n result[v] = { low: low, lim: lim++ };\n }\n _.forEach(g.children(), dfs);\n\n return result;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar Graph = require(\"../graphlib\").Graph;\nvar util = require(\"../util\");\n\n/*\n * This module provides coordinate assignment based on Brandes and Köpf, \"Fast\n * and Simple Horizontal Coordinate Assignment.\"\n */\n\nmodule.exports = {\n positionX: positionX,\n findType1Conflicts: findType1Conflicts,\n findType2Conflicts: findType2Conflicts,\n addConflict: addConflict,\n hasConflict: hasConflict,\n verticalAlignment: verticalAlignment,\n horizontalCompaction: horizontalCompaction,\n alignCoordinates: alignCoordinates,\n findSmallestWidthAlignment: findSmallestWidthAlignment,\n balance: balance\n};\n\n/*\n * Marks all edges in the graph with a type-1 conflict with the \"type1Conflict\"\n * property. A type-1 conflict is one where a non-inner segment crosses an\n * inner segment. An inner segment is an edge with both incident nodes marked\n * with the \"dummy\" property.\n *\n * This algorithm scans layer by layer, starting with the second, for type-1\n * conflicts between the current layer and the previous layer. For each layer\n * it scans the nodes from left to right until it reaches one that is incident\n * on an inner segment. It then scans predecessors to determine if they have\n * edges that cross that inner segment. At the end a final scan is done for all\n * nodes on the current rank to see if they cross the last visited inner\n * segment.\n *\n * This algorithm (safely) assumes that a dummy node will only be incident on a\n * single node in the layers being scanned.\n */\nfunction findType1Conflicts(g, layering) {\n var conflicts = {};\n\n function visitLayer(prevLayer, layer) {\n var\n // last visited node in the previous layer that is incident on an inner\n // segment.\n k0 = 0,\n // Tracks the last node in this layer scanned for crossings with a type-1\n // segment.\n scanPos = 0,\n prevLayerLength = prevLayer.length,\n lastNode = _.last(layer);\n\n _.forEach(layer, function(v, i) {\n var w = findOtherInnerSegmentNode(g, v),\n k1 = w ? g.node(w).order : prevLayerLength;\n\n if (w || v === lastNode) {\n _.forEach(layer.slice(scanPos, i +1), function(scanNode) {\n _.forEach(g.predecessors(scanNode), function(u) {\n var uLabel = g.node(u),\n uPos = uLabel.order;\n if ((uPos < k0 || k1 < uPos) &&\n !(uLabel.dummy && g.node(scanNode).dummy)) {\n addConflict(conflicts, u, scanNode);\n }\n });\n });\n scanPos = i + 1;\n k0 = k1;\n }\n });\n\n return layer;\n }\n\n _.reduce(layering, visitLayer);\n return conflicts;\n}\n\nfunction findType2Conflicts(g, layering) {\n var conflicts = {};\n\n function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {\n var v;\n _.forEach(_.range(southPos, southEnd), function(i) {\n v = south[i];\n if (g.node(v).dummy) {\n _.forEach(g.predecessors(v), function(u) {\n var uNode = g.node(u);\n if (uNode.dummy &&\n (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) {\n addConflict(conflicts, u, v);\n }\n });\n }\n });\n }\n\n\n function visitLayer(north, south) {\n var prevNorthPos = -1,\n nextNorthPos,\n southPos = 0;\n\n _.forEach(south, function(v, southLookahead) {\n if (g.node(v).dummy === \"border\") {\n var predecessors = g.predecessors(v);\n if (predecessors.length) {\n nextNorthPos = g.node(predecessors[0]).order;\n scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos);\n southPos = southLookahead;\n prevNorthPos = nextNorthPos;\n }\n }\n scan(south, southPos, south.length, nextNorthPos, north.length);\n });\n\n return south;\n }\n\n _.reduce(layering, visitLayer);\n return conflicts;\n}\n\nfunction findOtherInnerSegmentNode(g, v) {\n if (g.node(v).dummy) {\n return _.find(g.predecessors(v), function(u) {\n return g.node(u).dummy;\n });\n }\n}\n\nfunction addConflict(conflicts, v, w) {\n if (v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n\n var conflictsV = conflicts[v];\n if (!conflictsV) {\n conflicts[v] = conflictsV = {};\n }\n conflictsV[w] = true;\n}\n\nfunction hasConflict(conflicts, v, w) {\n if (v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return _.has(conflicts[v], w);\n}\n\n/*\n * Try to align nodes into vertical \"blocks\" where possible. This algorithm\n * attempts to align a node with one of its median neighbors. If the edge\n * connecting a neighbor is a type-1 conflict then we ignore that possibility.\n * If a previous node has already formed a block with a node after the node\n * we're trying to form a block with, we also ignore that possibility - our\n * blocks would be split in that scenario.\n */\nfunction verticalAlignment(g, layering, conflicts, neighborFn) {\n var root = {},\n align = {},\n pos = {};\n\n // We cache the position here based on the layering because the graph and\n // layering may be out of sync. The layering matrix is manipulated to\n // generate different extreme alignments.\n _.forEach(layering, function(layer) {\n _.forEach(layer, function(v, order) {\n root[v] = v;\n align[v] = v;\n pos[v] = order;\n });\n });\n\n _.forEach(layering, function(layer) {\n var prevIdx = -1;\n _.forEach(layer, function(v) {\n var ws = neighborFn(v);\n if (ws.length) {\n ws = _.sortBy(ws, function(w) { return pos[w]; });\n var mp = (ws.length - 1) / 2;\n for (var i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) {\n var w = ws[i];\n if (align[v] === v &&\n prevIdx < pos[w] &&\n !hasConflict(conflicts, v, w)) {\n align[w] = v;\n align[v] = root[v] = root[w];\n prevIdx = pos[w];\n }\n }\n }\n });\n });\n\n return { root: root, align: align };\n}\n\nfunction horizontalCompaction(g, layering, root, align, reverseSep) {\n // This portion of the algorithm differs from BK due to a number of problems.\n // Instead of their algorithm we construct a new block graph and do two\n // sweeps. The first sweep places blocks with the smallest possible\n // coordinates. The second sweep removes unused space by moving blocks to the\n // greatest coordinates without violating separation.\n var xs = {},\n blockG = buildBlockGraph(g, layering, root, reverseSep),\n borderType = reverseSep ? \"borderLeft\" : \"borderRight\";\n\n function iterate(setXsFunc, nextNodesFunc) {\n var stack = blockG.nodes();\n var elem = stack.pop();\n var visited = {};\n while (elem) {\n if (visited[elem]) {\n setXsFunc(elem);\n } else {\n visited[elem] = true;\n stack.push(elem);\n stack = stack.concat(nextNodesFunc(elem));\n }\n\n elem = stack.pop();\n }\n }\n\n // First pass, assign smallest coordinates\n function pass1(elem) {\n xs[elem] = blockG.inEdges(elem).reduce(function(acc, e) {\n return Math.max(acc, xs[e.v] + blockG.edge(e));\n }, 0);\n }\n\n // Second pass, assign greatest coordinates\n function pass2(elem) {\n var min = blockG.outEdges(elem).reduce(function(acc, e) {\n return Math.min(acc, xs[e.w] - blockG.edge(e));\n }, Number.POSITIVE_INFINITY);\n\n var node = g.node(elem);\n if (min !== Number.POSITIVE_INFINITY && node.borderType !== borderType) {\n xs[elem] = Math.max(xs[elem], min);\n }\n }\n\n iterate(pass1, blockG.predecessors.bind(blockG));\n iterate(pass2, blockG.successors.bind(blockG));\n\n // Assign x coordinates to all nodes\n _.forEach(align, function(v) {\n xs[v] = xs[root[v]];\n });\n\n return xs;\n}\n\n\nfunction buildBlockGraph(g, layering, root, reverseSep) {\n var blockGraph = new Graph(),\n graphLabel = g.graph(),\n sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep);\n\n _.forEach(layering, function(layer) {\n var u;\n _.forEach(layer, function(v) {\n var vRoot = root[v];\n blockGraph.setNode(vRoot);\n if (u) {\n var uRoot = root[u],\n prevMax = blockGraph.edge(uRoot, vRoot);\n blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u), prevMax || 0));\n }\n u = v;\n });\n });\n\n return blockGraph;\n}\n\n/*\n * Returns the alignment that has the smallest width of the given alignments.\n */\nfunction findSmallestWidthAlignment(g, xss) {\n return _.minBy(_.values(xss), function (xs) {\n var max = Number.NEGATIVE_INFINITY;\n var min = Number.POSITIVE_INFINITY;\n\n _.forIn(xs, function (x, v) {\n var halfWidth = width(g, v) / 2;\n\n max = Math.max(x + halfWidth, max);\n min = Math.min(x - halfWidth, min);\n });\n\n return max - min;\n });\n}\n\n/*\n * Align the coordinates of each of the layout alignments such that\n * left-biased alignments have their minimum coordinate at the same point as\n * the minimum coordinate of the smallest width alignment and right-biased\n * alignments have their maximum coordinate at the same point as the maximum\n * coordinate of the smallest width alignment.\n */\nfunction alignCoordinates(xss, alignTo) {\n var alignToVals = _.values(alignTo),\n alignToMin = _.min(alignToVals),\n alignToMax = _.max(alignToVals);\n\n _.forEach([\"u\", \"d\"], function(vert) {\n _.forEach([\"l\", \"r\"], function(horiz) {\n var alignment = vert + horiz,\n xs = xss[alignment],\n delta;\n if (xs === alignTo) return;\n\n var xsVals = _.values(xs);\n delta = horiz === \"l\" ? alignToMin - _.min(xsVals) : alignToMax - _.max(xsVals);\n\n if (delta) {\n xss[alignment] = _.mapValues(xs, function(x) { return x + delta; });\n }\n });\n });\n}\n\nfunction balance(xss, align) {\n return _.mapValues(xss.ul, function(ignore, v) {\n if (align) {\n return xss[align.toLowerCase()][v];\n } else {\n var xs = _.sortBy(_.map(xss, v));\n return (xs[1] + xs[2]) / 2;\n }\n });\n}\n\nfunction positionX(g) {\n var layering = util.buildLayerMatrix(g);\n var conflicts = _.merge(\n findType1Conflicts(g, layering),\n findType2Conflicts(g, layering));\n\n var xss = {};\n var adjustedLayering;\n _.forEach([\"u\", \"d\"], function(vert) {\n adjustedLayering = vert === \"u\" ? layering : _.values(layering).reverse();\n _.forEach([\"l\", \"r\"], function(horiz) {\n if (horiz === \"r\") {\n adjustedLayering = _.map(adjustedLayering, function(inner) {\n return _.values(inner).reverse();\n });\n }\n\n var neighborFn = (vert === \"u\" ? g.predecessors : g.successors).bind(g);\n var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);\n var xs = horizontalCompaction(g, adjustedLayering,\n align.root, align.align, horiz === \"r\");\n if (horiz === \"r\") {\n xs = _.mapValues(xs, function(x) { return -x; });\n }\n xss[vert + horiz] = xs;\n });\n });\n\n var smallestWidth = findSmallestWidthAlignment(g, xss);\n alignCoordinates(xss, smallestWidth);\n return balance(xss, g.graph().align);\n}\n\nfunction sep(nodeSep, edgeSep, reverseSep) {\n return function(g, v, w) {\n var vLabel = g.node(v);\n var wLabel = g.node(w);\n var sum = 0;\n var delta;\n\n sum += vLabel.width / 2;\n if (_.has(vLabel, \"labelpos\")) {\n switch (vLabel.labelpos.toLowerCase()) {\n case \"l\": delta = -vLabel.width / 2; break;\n case \"r\": delta = vLabel.width / 2; break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n sum += (vLabel.dummy ? edgeSep : nodeSep) / 2;\n sum += (wLabel.dummy ? edgeSep : nodeSep) / 2;\n\n sum += wLabel.width / 2;\n if (_.has(wLabel, \"labelpos\")) {\n switch (wLabel.labelpos.toLowerCase()) {\n case \"l\": delta = wLabel.width / 2; break;\n case \"r\": delta = -wLabel.width / 2; break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n return sum;\n };\n}\n\nfunction width(g, v) {\n return g.node(v).width;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar util = require(\"../util\");\nvar positionX = require(\"./bk\").positionX;\n\nmodule.exports = position;\n\nfunction position(g) {\n g = util.asNonCompoundGraph(g);\n\n positionY(g);\n _.forEach(positionX(g), function(x, v) {\n g.node(v).x = x;\n });\n}\n\nfunction positionY(g) {\n var layering = util.buildLayerMatrix(g);\n var rankSep = g.graph().ranksep;\n var prevY = 0;\n _.forEach(layering, function(layer) {\n var maxHeight = _.max(_.map(layer, function(v) { return g.node(v).height; }));\n _.forEach(layer, function(v) {\n g.node(v).y = prevY + maxHeight / 2;\n });\n prevY += maxHeight + rankSep;\n });\n}\n\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar Graph = require(\"../graphlib\").Graph;\nvar slack = require(\"./util\").slack;\n\nmodule.exports = feasibleTree;\n\n/*\n * Constructs a spanning tree with tight edges and adjusted the input node's\n * ranks to achieve this. A tight edge is one that is has a length that matches\n * its \"minlen\" attribute.\n *\n * The basic structure for this function is derived from Gansner, et al., \"A\n * Technique for Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a DAG.\n * 2. Graph must be connected.\n * 3. Graph must have at least one node.\n * 5. Graph nodes must have been previously assigned a \"rank\" property that\n * respects the \"minlen\" property of incident edges.\n * 6. Graph edges must have a \"minlen\" property.\n *\n * Post-conditions:\n *\n * - Graph nodes will have their rank adjusted to ensure that all edges are\n * tight.\n *\n * Returns a tree (undirected graph) that is constructed using only \"tight\"\n * edges.\n */\nfunction feasibleTree(g) {\n var t = new Graph({ directed: false });\n\n // Choose arbitrary node from which to start our tree\n var start = g.nodes()[0];\n var size = g.nodeCount();\n t.setNode(start, {});\n\n var edge, delta;\n while (tightTree(t, g) < size) {\n edge = findMinSlackEdge(t, g);\n delta = t.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge);\n shiftRanks(t, g, delta);\n }\n\n return t;\n}\n\n/*\n * Finds a maximal tree of tight edges and returns the number of nodes in the\n * tree.\n */\nfunction tightTree(t, g) {\n function dfs(v) {\n _.forEach(g.nodeEdges(v), function(e) {\n var edgeV = e.v,\n w = (v === edgeV) ? e.w : edgeV;\n if (!t.hasNode(w) && !slack(g, e)) {\n t.setNode(w, {});\n t.setEdge(v, w, {});\n dfs(w);\n }\n });\n }\n\n _.forEach(t.nodes(), dfs);\n return t.nodeCount();\n}\n\n/*\n * Finds the edge with the smallest slack that is incident on tree and returns\n * it.\n */\nfunction findMinSlackEdge(t, g) {\n return _.minBy(g.edges(), function(e) {\n if (t.hasNode(e.v) !== t.hasNode(e.w)) {\n return slack(g, e);\n }\n });\n}\n\nfunction shiftRanks(t, g, delta) {\n _.forEach(t.nodes(), function(v) {\n g.node(v).rank += delta;\n });\n}\n","\"use strict\";\n\nvar rankUtil = require(\"./util\");\nvar longestPath = rankUtil.longestPath;\nvar feasibleTree = require(\"./feasible-tree\");\nvar networkSimplex = require(\"./network-simplex\");\n\nmodule.exports = rank;\n\n/*\n * Assigns a rank to each node in the input graph that respects the \"minlen\"\n * constraint specified on edges between nodes.\n *\n * This basic structure is derived from Gansner, et al., \"A Technique for\n * Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a connected DAG\n * 2. Graph nodes must be objects\n * 3. Graph edges must have \"weight\" and \"minlen\" attributes\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have a \"rank\" attribute based on the results of the\n * algorithm. Ranks can start at any index (including negative), we'll\n * fix them up later.\n */\nfunction rank(g) {\n switch(g.graph().ranker) {\n case \"network-simplex\": networkSimplexRanker(g); break;\n case \"tight-tree\": tightTreeRanker(g); break;\n case \"longest-path\": longestPathRanker(g); break;\n default: networkSimplexRanker(g);\n }\n}\n\n// A fast and simple ranker, but results are far from optimal.\nvar longestPathRanker = longestPath;\n\nfunction tightTreeRanker(g) {\n longestPath(g);\n feasibleTree(g);\n}\n\nfunction networkSimplexRanker(g) {\n networkSimplex(g);\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\nvar feasibleTree = require(\"./feasible-tree\");\nvar slack = require(\"./util\").slack;\nvar initRank = require(\"./util\").longestPath;\nvar preorder = require(\"../graphlib\").alg.preorder;\nvar postorder = require(\"../graphlib\").alg.postorder;\nvar simplify = require(\"../util\").simplify;\n\nmodule.exports = networkSimplex;\n\n// Expose some internals for testing purposes\nnetworkSimplex.initLowLimValues = initLowLimValues;\nnetworkSimplex.initCutValues = initCutValues;\nnetworkSimplex.calcCutValue = calcCutValue;\nnetworkSimplex.leaveEdge = leaveEdge;\nnetworkSimplex.enterEdge = enterEdge;\nnetworkSimplex.exchangeEdges = exchangeEdges;\n\n/*\n * The network simplex algorithm assigns ranks to each node in the input graph\n * and iteratively improves the ranking to reduce the length of edges.\n *\n * Preconditions:\n *\n * 1. The input graph must be a DAG.\n * 2. All nodes in the graph must have an object value.\n * 3. All edges in the graph must have \"minlen\" and \"weight\" attributes.\n *\n * Postconditions:\n *\n * 1. All nodes in the graph will have an assigned \"rank\" attribute that has\n * been optimized by the network simplex algorithm. Ranks start at 0.\n *\n *\n * A rough sketch of the algorithm is as follows:\n *\n * 1. Assign initial ranks to each node. We use the longest path algorithm,\n * which assigns ranks to the lowest position possible. In general this\n * leads to very wide bottom ranks and unnecessarily long edges.\n * 2. Construct a feasible tight tree. A tight tree is one such that all\n * edges in the tree have no slack (difference between length of edge\n * and minlen for the edge). This by itself greatly improves the assigned\n * rankings by shorting edges.\n * 3. Iteratively find edges that have negative cut values. Generally a\n * negative cut value indicates that the edge could be removed and a new\n * tree edge could be added to produce a more compact graph.\n *\n * Much of the algorithms here are derived from Gansner, et al., \"A Technique\n * for Drawing Directed Graphs.\" The structure of the file roughly follows the\n * structure of the overall algorithm.\n */\nfunction networkSimplex(g) {\n g = simplify(g);\n initRank(g);\n var t = feasibleTree(g);\n initLowLimValues(t);\n initCutValues(t, g);\n\n var e, f;\n while ((e = leaveEdge(t))) {\n f = enterEdge(t, g, e);\n exchangeEdges(t, g, e, f);\n }\n}\n\n/*\n * Initializes cut values for all edges in the tree.\n */\nfunction initCutValues(t, g) {\n var vs = postorder(t, t.nodes());\n vs = vs.slice(0, vs.length - 1);\n _.forEach(vs, function(v) {\n assignCutValue(t, g, v);\n });\n}\n\nfunction assignCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n t.edge(child, parent).cutvalue = calcCutValue(t, g, child);\n}\n\n/*\n * Given the tight tree, its graph, and a child in the graph calculate and\n * return the cut value for the edge between the child and its parent.\n */\nfunction calcCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n // True if the child is on the tail end of the edge in the directed graph\n var childIsTail = true;\n // The graph's view of the tree edge we're inspecting\n var graphEdge = g.edge(child, parent);\n // The accumulated cut value for the edge between this node and its parent\n var cutValue = 0;\n\n if (!graphEdge) {\n childIsTail = false;\n graphEdge = g.edge(parent, child);\n }\n\n cutValue = graphEdge.weight;\n\n _.forEach(g.nodeEdges(child), function(e) {\n var isOutEdge = e.v === child,\n other = isOutEdge ? e.w : e.v;\n\n if (other !== parent) {\n var pointsToHead = isOutEdge === childIsTail,\n otherWeight = g.edge(e).weight;\n\n cutValue += pointsToHead ? otherWeight : -otherWeight;\n if (isTreeEdge(t, child, other)) {\n var otherCutValue = t.edge(child, other).cutvalue;\n cutValue += pointsToHead ? -otherCutValue : otherCutValue;\n }\n }\n });\n\n return cutValue;\n}\n\nfunction initLowLimValues(tree, root) {\n if (arguments.length < 2) {\n root = tree.nodes()[0];\n }\n dfsAssignLowLim(tree, {}, 1, root);\n}\n\nfunction dfsAssignLowLim(tree, visited, nextLim, v, parent) {\n var low = nextLim;\n var label = tree.node(v);\n\n visited[v] = true;\n _.forEach(tree.neighbors(v), function(w) {\n if (!_.has(visited, w)) {\n nextLim = dfsAssignLowLim(tree, visited, nextLim, w, v);\n }\n });\n\n label.low = low;\n label.lim = nextLim++;\n if (parent) {\n label.parent = parent;\n } else {\n // TODO should be able to remove this when we incrementally update low lim\n delete label.parent;\n }\n\n return nextLim;\n}\n\nfunction leaveEdge(tree) {\n return _.find(tree.edges(), function(e) {\n return tree.edge(e).cutvalue < 0;\n });\n}\n\nfunction enterEdge(t, g, edge) {\n var v = edge.v;\n var w = edge.w;\n\n // For the rest of this function we assume that v is the tail and w is the\n // head, so if we don't have this edge in the graph we should flip it to\n // match the correct orientation.\n if (!g.hasEdge(v, w)) {\n v = edge.w;\n w = edge.v;\n }\n\n var vLabel = t.node(v);\n var wLabel = t.node(w);\n var tailLabel = vLabel;\n var flip = false;\n\n // If the root is in the tail of the edge then we need to flip the logic that\n // checks for the head and tail nodes in the candidates function below.\n if (vLabel.lim > wLabel.lim) {\n tailLabel = wLabel;\n flip = true;\n }\n\n var candidates = _.filter(g.edges(), function(edge) {\n return flip === isDescendant(t, t.node(edge.v), tailLabel) &&\n flip !== isDescendant(t, t.node(edge.w), tailLabel);\n });\n\n return _.minBy(candidates, function(edge) { return slack(g, edge); });\n}\n\nfunction exchangeEdges(t, g, e, f) {\n var v = e.v;\n var w = e.w;\n t.removeEdge(v, w);\n t.setEdge(f.v, f.w, {});\n initLowLimValues(t);\n initCutValues(t, g);\n updateRanks(t, g);\n}\n\nfunction updateRanks(t, g) {\n var root = _.find(t.nodes(), function(v) { return !g.node(v).parent; });\n var vs = preorder(t, root);\n vs = vs.slice(1);\n _.forEach(vs, function(v) {\n var parent = t.node(v).parent,\n edge = g.edge(v, parent),\n flipped = false;\n\n if (!edge) {\n edge = g.edge(parent, v);\n flipped = true;\n }\n\n g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen);\n });\n}\n\n/*\n * Returns true if the edge is in the tree.\n */\nfunction isTreeEdge(tree, u, v) {\n return tree.hasEdge(u, v);\n}\n\n/*\n * Returns true if the specified node is descendant of the root node per the\n * assigned low and lim attributes in the tree.\n */\nfunction isDescendant(tree, vLabel, rootLabel) {\n return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;\n}\n","\"use strict\";\n\nvar _ = require(\"../lodash\");\n\nmodule.exports = {\n longestPath: longestPath,\n slack: slack\n};\n\n/*\n * Initializes ranks for the input graph using the longest path algorithm. This\n * algorithm scales well and is fast in practice, it yields rather poor\n * solutions. Nodes are pushed to the lowest layer possible, leaving the bottom\n * ranks wide and leaving edges longer than necessary. However, due to its\n * speed, this algorithm is good for getting an initial ranking that can be fed\n * into other algorithms.\n *\n * This algorithm does not normalize layers because it will be used by other\n * algorithms in most cases. If using this algorithm directly, be sure to\n * run normalize at the end.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG.\n * 2. Input graph node labels can be assigned properties.\n *\n * Post-conditions:\n *\n * 1. Each node will be assign an (unnormalized) \"rank\" property.\n */\nfunction longestPath(g) {\n var visited = {};\n\n function dfs(v) {\n var label = g.node(v);\n if (_.has(visited, v)) {\n return label.rank;\n }\n visited[v] = true;\n\n var rank = _.min(_.map(g.outEdges(v), function(e) {\n return dfs(e.w) - g.edge(e).minlen;\n }));\n\n if (rank === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3\n rank === undefined || // return value of _.map([]) for Lodash 4\n rank === null) { // return value of _.map([null])\n rank = 0;\n }\n\n return (label.rank = rank);\n }\n\n _.forEach(g.sources(), dfs);\n}\n\n/*\n * Returns the amount of slack for the given edge. The slack is defined as the\n * difference between the length of the edge and its minimum length.\n */\nfunction slack(g, e) {\n return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen;\n}\n","/* eslint \"no-console\": off */\n\n\"use strict\";\n\nvar _ = require(\"./lodash\");\nvar Graph = require(\"./graphlib\").Graph;\n\nmodule.exports = {\n addDummyNode: addDummyNode,\n simplify: simplify,\n asNonCompoundGraph: asNonCompoundGraph,\n successorWeights: successorWeights,\n predecessorWeights: predecessorWeights,\n intersectRect: intersectRect,\n buildLayerMatrix: buildLayerMatrix,\n normalizeRanks: normalizeRanks,\n removeEmptyRanks: removeEmptyRanks,\n addBorderNode: addBorderNode,\n maxRank: maxRank,\n partition: partition,\n time: time,\n notime: notime\n};\n\n/*\n * Adds a dummy node to the graph and return v.\n */\nfunction addDummyNode(g, type, attrs, name) {\n var v;\n do {\n v = _.uniqueId(name);\n } while (g.hasNode(v));\n\n attrs.dummy = type;\n g.setNode(v, attrs);\n return v;\n}\n\n/*\n * Returns a new graph with only simple edges. Handles aggregation of data\n * associated with multi-edges.\n */\nfunction simplify(g) {\n var simplified = new Graph().setGraph(g.graph());\n _.forEach(g.nodes(), function(v) { simplified.setNode(v, g.node(v)); });\n _.forEach(g.edges(), function(e) {\n var simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 };\n var label = g.edge(e);\n simplified.setEdge(e.v, e.w, {\n weight: simpleLabel.weight + label.weight,\n minlen: Math.max(simpleLabel.minlen, label.minlen)\n });\n });\n return simplified;\n}\n\nfunction asNonCompoundGraph(g) {\n var simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph());\n _.forEach(g.nodes(), function(v) {\n if (!g.children(v).length) {\n simplified.setNode(v, g.node(v));\n }\n });\n _.forEach(g.edges(), function(e) {\n simplified.setEdge(e, g.edge(e));\n });\n return simplified;\n}\n\nfunction successorWeights(g) {\n var weightMap = _.map(g.nodes(), function(v) {\n var sucs = {};\n _.forEach(g.outEdges(v), function(e) {\n sucs[e.w] = (sucs[e.w] || 0) + g.edge(e).weight;\n });\n return sucs;\n });\n return _.zipObject(g.nodes(), weightMap);\n}\n\nfunction predecessorWeights(g) {\n var weightMap = _.map(g.nodes(), function(v) {\n var preds = {};\n _.forEach(g.inEdges(v), function(e) {\n preds[e.v] = (preds[e.v] || 0) + g.edge(e).weight;\n });\n return preds;\n });\n return _.zipObject(g.nodes(), weightMap);\n}\n\n/*\n * Finds where a line starting at point ({x, y}) would intersect a rectangle\n * ({x, y, width, height}) if it were pointing at the rectangle's center.\n */\nfunction intersectRect(rect, point) {\n var x = rect.x;\n var y = rect.y;\n\n // Rectangle intersection algorithm from:\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n var dx = point.x - x;\n var dy = point.y - y;\n var w = rect.width / 2;\n var h = rect.height / 2;\n\n if (!dx && !dy) {\n throw new Error(\"Not possible to find intersection inside of the rectangle\");\n }\n\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n // Intersection is top or bottom of rect.\n if (dy < 0) {\n h = -h;\n }\n sx = h * dx / dy;\n sy = h;\n } else {\n // Intersection is left or right of rect.\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = w * dy / dx;\n }\n\n return { x: x + sx, y: y + sy };\n}\n\n/*\n * Given a DAG with each node assigned \"rank\" and \"order\" properties, this\n * function will produce a matrix with the ids of each node.\n */\nfunction buildLayerMatrix(g) {\n var layering = _.map(_.range(maxRank(g) + 1), function() { return []; });\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n var rank = node.rank;\n if (!_.isUndefined(rank)) {\n layering[rank][node.order] = v;\n }\n });\n return layering;\n}\n\n/*\n * Adjusts the ranks for all nodes in the graph such that all nodes v have\n * rank(v) >= 0 and at least one node w has rank(w) = 0.\n */\nfunction normalizeRanks(g) {\n var min = _.min(_.map(g.nodes(), function(v) { return g.node(v).rank; }));\n _.forEach(g.nodes(), function(v) {\n var node = g.node(v);\n if (_.has(node, \"rank\")) {\n node.rank -= min;\n }\n });\n}\n\nfunction removeEmptyRanks(g) {\n // Ranks may not start at 0, so we need to offset them\n var offset = _.min(_.map(g.nodes(), function(v) { return g.node(v).rank; }));\n\n var layers = [];\n _.forEach(g.nodes(), function(v) {\n var rank = g.node(v).rank - offset;\n if (!layers[rank]) {\n layers[rank] = [];\n }\n layers[rank].push(v);\n });\n\n var delta = 0;\n var nodeRankFactor = g.graph().nodeRankFactor;\n _.forEach(layers, function(vs, i) {\n if (_.isUndefined(vs) && i % nodeRankFactor !== 0) {\n --delta;\n } else if (delta) {\n _.forEach(vs, function(v) { g.node(v).rank += delta; });\n }\n });\n}\n\nfunction addBorderNode(g, prefix, rank, order) {\n var node = {\n width: 0,\n height: 0\n };\n if (arguments.length >= 4) {\n node.rank = rank;\n node.order = order;\n }\n return addDummyNode(g, \"border\", node, prefix);\n}\n\nfunction maxRank(g) {\n return _.max(_.map(g.nodes(), function(v) {\n var rank = g.node(v).rank;\n if (!_.isUndefined(rank)) {\n return rank;\n }\n }));\n}\n\n/*\n * Partition a collection into two groups: `lhs` and `rhs`. If the supplied\n * function returns true for an entry it goes into `lhs`. Otherwise it goes\n * into `rhs.\n */\nfunction partition(collection, fn) {\n var result = { lhs: [], rhs: [] };\n _.forEach(collection, function(value) {\n if (fn(value)) {\n result.lhs.push(value);\n } else {\n result.rhs.push(value);\n }\n });\n return result;\n}\n\n/*\n * Returns a new function that wraps `fn` with a timer. The wrapper logs the\n * time it takes to execute the function.\n */\nfunction time(name, fn) {\n var start = _.now();\n try {\n return fn();\n } finally {\n console.log(name + \" time: \" + (_.now() - start) + \"ms\");\n }\n}\n\nfunction notime(name, fn) {\n return fn();\n}\n","module.exports = \"0.8.5\";\n","/**\n * @see https://github.com/vuejs/vue/commit/a855dd0564a657a73b7249469490d39817f27cf7#diff-c0a2623ea5896a83e3b630f236b47b52\n * @see https://stackoverflow.com/a/13091266/4936667\n */\n\nvar decoder;\n\nexport default function decode(html) {\n decoder = decoder || document.createElement('div');\n // Escape HTML before decoding for HTML Entities\n html = escape(html).replace(/%26/g,'&').replace(/%23/g,'#').replace(/%3B/g,';');\n // decoding\n decoder.innerHTML = html;\n\n return unescape(decoder.textContent);\n}\n","/*!\n * Escaper v2.5.3\n * https://github.com/kobezzza/Escaper\n *\n * Released under the MIT license\n * https://github.com/kobezzza/Escaper/blob/master/LICENSE\n *\n * Date: Tue, 23 Jan 2018 15:58:45 GMT\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define('Escaper', ['exports'], factory) :\n\t(factory((global.Escaper = {})));\n}(this, (function (exports) { 'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar Escaper = void 0;\nvar escaper = Escaper = {\n\tVERSION: [2, 5, 3],\n\tcontent: [],\n\tcache: {},\n\tsnakeskinRgxp: null,\n\tsymbols: null,\n\treplace: replace,\n\tpaste: paste\n};\n\nvar stringLiterals = {\n\t'\"': true,\n\t'\\'': true,\n\t'`': true\n};\n\nvar literals = {\n\t'/': true\n};\n\nfor (var key in stringLiterals) {\n\tif (!stringLiterals.hasOwnProperty(key)) {\n\t\tbreak;\n\t}\n\n\tliterals[key] = true;\n}\n\nvar singleComments = {\n\t'//': true,\n\t'//*': true,\n\t'//!': true,\n\t'//#': true,\n\t'//@': true,\n\t'//$': true\n};\n\nvar multComments = {\n\t'/*': true,\n\t'/**': true,\n\t'/*!': true,\n\t'/*#': true,\n\t'/*@': true,\n\t'/*$': true\n};\n\nvar keyArr = [];\nvar finalMap = {};\n\nfor (var _key in literals) {\n\tif (!literals.hasOwnProperty(_key)) {\n\t\tbreak;\n\t}\n\n\tkeyArr.push(_key);\n\tfinalMap[_key] = true;\n}\n\nfor (var _key2 in singleComments) {\n\tif (!singleComments.hasOwnProperty(_key2)) {\n\t\tbreak;\n\t}\n\n\tkeyArr.push(_key2);\n\tfinalMap[_key2] = true;\n}\n\nfor (var _key3 in multComments) {\n\tif (!multComments.hasOwnProperty(_key3)) {\n\t\tbreak;\n\t}\n\n\tkeyArr.push(_key3);\n\tfinalMap[_key3] = true;\n}\n\nvar rgxpFlags = [];\nvar rgxpFlagsMap = {\n\t'g': true,\n\t'm': true,\n\t'i': true,\n\t'y': true,\n\t'u': true\n};\n\nfor (var _key4 in rgxpFlagsMap) {\n\tif (!rgxpFlagsMap.hasOwnProperty(_key4)) {\n\t\tbreak;\n\t}\n\n\trgxpFlags.push(_key4);\n}\n\nvar escapeEndMap = {\n\t'-': true,\n\t'+': true,\n\t'*': true,\n\t'%': true,\n\t'~': true,\n\t'>': true,\n\t'<': true,\n\t'^': true,\n\t',': true,\n\t';': true,\n\t'=': true,\n\t'|': true,\n\t'&': true,\n\t'!': true,\n\t'?': true,\n\t':': true,\n\t'(': true,\n\t'{': true,\n\t'[': true\n};\n\nvar escapeEndWordMap = {\n\t'return': true,\n\t'yield': true,\n\t'await': true,\n\t'typeof': true,\n\t'void': true,\n\t'instanceof': true,\n\t'delete': true,\n\t'in': true,\n\t'new': true,\n\t'of': true\n};\n\n/**\n * @param {!Object} obj\n * @param {!Object} p\n * @param {(boolean|number)} val\n */\nfunction mix(obj, p, val) {\n\tfor (var _key5 in obj) {\n\t\tif (!obj.hasOwnProperty(_key5)) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (_key5 in p === false) {\n\t\t\tp[_key5] = val;\n\t\t}\n\t}\n}\n\nvar symbols = void 0;\nvar snakeskinRgxp = void 0;\n\nvar uSRgxp = /[^\\s/]/;\nvar wRgxp = /[a-z]/;\nvar sRgxp = /\\s/;\nvar nRgxp = /[\\r\\n]/;\nvar posRgxp = /\\${pos}/g;\n\nvar objMap = {\n\t'object': true,\n\t'function': true\n};\n\n/**\n * Replaces all found blocks ' ... ', \" ... \", ` ... `, / ... /, // ..., /* ... *\\/ to\n * __ESCAPER_QUOT__number_ in a string and returns a new string\n *\n * @param {string} str - source string\n * @param {(Object
\n * mermaid.initialize({\n * flowchart:{\n * htmlLabels: false\n * }\n * });\n *\n *\n * **Example 2:**\n *
\n * <script>\n * var config = {\n * startOnLoad:true,\n * flowchart:{\n * useMaxWidth:true,\n * htmlLabels:true,\n * curve:'cardinal',\n * },\n *\n * securityLevel:'loose',\n * };\n * mermaid.initialize(config);\n * </script>\n *\n * A summary of all options and their defaults is found [here](https://github.com/knsv/mermaid/blob/master/docs/mermaidAPI.md#mermaidapi-configuration-defaults). A description of each option follows below.\n *\n * @name Configuration\n */\nconst config = {\n /** theme , the CSS style sheet\n *\n * **theme** - Choose one of the built-in themes:\n * * default\n * * forest\n * * dark\n * * neutral.\n * To disable any pre-defined mermaid theme, use \"null\".\n *\n * **themeCSS** - Use your own CSS. This overrides **theme**.\n *
\n * \"theme\": \"forest\",\n * \"themeCSS\": \".node rect { fill: red; }\"\n *\n */\n theme: 'default',\n themeCSS: undefined,\n /* **maxTextSize** - The maximum allowed size of the users text diamgram */\n maxTextSize: 50000,\n\n /**\n * **fontFamily** The font to be used for the rendered diagrams. Default value is \\\"trebuchet ms\\\", verdana, arial;\n */\n fontFamily: '\"trebuchet ms\", verdana, arial;',\n\n /**\n * This option decides the amount of logging to be used.\n * * debug: 1\n * * info: 2\n * * warn: 3\n * * error: 4\n * * fatal: (**default**) 5\n */\n logLevel: 5,\n\n /**\n * Sets the level of trust to be used on the parsed diagrams.\n * * **strict**: (**default**) tags in text are encoded, click functionality is disabeled\n * * **loose**: tags in text are allowed, click functionality is enabled\n */\n securityLevel: 'strict',\n\n /**\n * This options controls whether or mermaid starts when the page loads\n * **Default value true**.\n */\n startOnLoad: true,\n\n /**\n * This options controls whether or arrow markers in html code will be absolute paths or\n * an anchor, #. This matters if you are using base tag settings.\n * **Default value false**.\n */\n arrowMarkerAbsolute: false,\n\n /**\n * The object containing configurations specific for flowcharts\n */\n flowchart: {\n /**\n * Flag for setting whether or not a html tag should be used for rendering labels\n * on the edges.\n * **Default value true**.\n */\n htmlLabels: true,\n\n /**\n * Defines the spacing between nodes on the same level (meaning horizontal spacing for\n * TB or BT graphs, and the vertical spacing for LR as well as RL graphs).\n * **Default value 50**.\n */\n nodeSpacing: 50,\n\n /**\n * Defines the spacing between nodes on different levels (meaning vertical spacing for\n * TB or BT graphs, and the horizontal spacing for LR as well as RL graphs).\n * **Default value 50**.\n */\n rankSpacing: 50,\n\n /**\n * How mermaid renders curves for flowcharts. Possible values are\n * * basis\n * * linear **default**\n * * cardinal\n */\n curve: 'linear',\n // Only used in new experimental rendering\n // repreesents the padding between the labels and the shape\n padding: 15\n },\n\n /**\n * The object containing configurations specific for sequence diagrams\n */\n sequence: {\n /**\n * margin to the right and left of the sequence diagram.\n * **Default value 50**.\n */\n diagramMarginX: 50,\n\n /**\n * margin to the over and under the sequence diagram.\n * **Default value 10**.\n */\n diagramMarginY: 10,\n\n /**\n * Margin between actors.\n * **Default value 50**.\n */\n actorMargin: 50,\n\n /**\n * Width of actor boxes\n * **Default value 150**.\n */\n width: 150,\n\n /**\n * Height of actor boxes\n * **Default value 65**.\n */\n height: 65,\n\n /**\n * Margin around loop boxes\n * **Default value 10**.\n */\n boxMargin: 10,\n\n /**\n * margin around the text in loop/alt/opt boxes\n * **Default value 5**.\n */\n boxTextMargin: 5,\n\n /**\n * margin around notes.\n * **Default value 10**.\n */\n noteMargin: 10,\n\n /**\n * Space between messages.\n * **Default value 35**.\n */\n messageMargin: 35,\n\n /**\n * Multiline message alignment. Possible values are:\n * * left\n * * center **default**\n * * right\n */\n messageAlign: 'center',\n\n /**\n * mirror actors under diagram.\n * **Default value true**.\n */\n mirrorActors: true,\n\n /**\n * Depending on css styling this might need adjustment.\n * Prolongs the edge of the diagram downwards.\n * **Default value 1**.\n */\n bottomMarginAdj: 1,\n\n /**\n * when this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n * **Default value true**.\n */\n useMaxWidth: true,\n\n /**\n * This will display arrows that start and begin at the same node as right angles, rather than a curve\n * **Default value false**.\n */\n rightAngles: false,\n /**\n * This will show the node numbers\n * **Default value false**.\n */\n showSequenceNumbers: false,\n /**\n * This sets the font size of the actor's description\n * **Default value 14**.\n */\n actorFontSize: 14,\n /**\n * This sets the font family of the actor's description\n * **Default value \"Open-Sans\", \"sans-serif\"**.\n */\n actorFontFamily: '\"Open-Sans\", \"sans-serif\"',\n /**\n * This sets the font weight of the actor's description\n * **Default value 400.\n */\n actorFontWeight: 400,\n /**\n * This sets the font size of actor-attached notes.\n * **Default value 14**.\n */\n noteFontSize: 14,\n /**\n * This sets the font family of actor-attached notes.\n * **Default value \"trebuchet ms\", verdana, arial**.\n */\n noteFontFamily: '\"trebuchet ms\", verdana, arial',\n /**\n * This sets the font weight of the note's description\n * **Default value 400.\n */\n noteFontWeight: 400,\n /**\n * This sets the text alignment of actor-attached notes.\n * **Default value center**.\n */\n noteAlign: 'center',\n /**\n * This sets the font size of actor messages.\n * **Default value 16**.\n */\n messageFontSize: 16,\n /**\n * This sets the font family of actor messages.\n * **Default value \"trebuchet ms\", verdana, arial**.\n */\n messageFontFamily: '\"trebuchet ms\", verdana, arial',\n /**\n * This sets the font weight of the message's description\n * **Default value 400.\n */\n messageFontWeight: 400,\n /**\n * This sets the auto-wrap state for the diagram\n * **Default value false.\n */\n wrapEnabled: false,\n /**\n * This sets the auto-wrap padding for the diagram (sides only)\n * **Default value 15.\n */\n wrapPadding: 15\n },\n\n /**\n * The object containing configurations specific for gantt diagrams*\n */\n gantt: {\n /**\n * Margin top for the text over the gantt diagram\n * **Default value 25**.\n */\n titleTopMargin: 25,\n\n /**\n * The height of the bars in the graph\n * **Default value 20**.\n */\n barHeight: 20,\n\n /**\n * The margin between the different activities in the gantt diagram.\n * **Default value 4**.\n */\n barGap: 4,\n\n /**\n * Margin between title and gantt diagram and between axis and gantt diagram.\n * **Default value 50**.\n */\n topPadding: 50,\n\n /**\n * The space allocated for the section name to the left of the activities.\n * **Default value 75**.\n */\n leftPadding: 75,\n\n /**\n * Vertical starting position of the grid lines.\n * **Default value 35**.\n */\n gridLineStartPadding: 35,\n\n /**\n * Font size ...\n * **Default value 11**.\n */\n fontSize: 11,\n\n /**\n * font family ...\n * **Default value '\"Open-Sans\", \"sans-serif\"'**.\n */\n fontFamily: '\"Open-Sans\", \"sans-serif\"',\n\n /**\n * The number of alternating section styles.\n * **Default value 4**.\n */\n numberSectionStyles: 4,\n\n /**\n * Datetime format of the axis. This might need adjustment to match your locale and preferences\n * **Default value '%Y-%m-%d'**.\n */\n axisFormat: '%Y-%m-%d'\n },\n /**\n * The object containing configurations specific for sequence diagrams\n */\n journey: {\n /**\n * margin to the right and left of the sequence diagram.\n * **Default value 50**.\n */\n diagramMarginX: 50,\n\n /**\n * margin to the over and under the sequence diagram.\n * **Default value 10**.\n */\n diagramMarginY: 10,\n\n /**\n * Margin between actors.\n * **Default value 50**.\n */\n actorMargin: 50,\n\n /**\n * Width of actor boxes\n * **Default value 150**.\n */\n width: 150,\n\n /**\n * Height of actor boxes\n * **Default value 65**.\n */\n height: 65,\n\n /**\n * Margin around loop boxes\n * **Default value 10**.\n */\n boxMargin: 10,\n\n /**\n * margin around the text in loop/alt/opt boxes\n * **Default value 5**.\n */\n boxTextMargin: 5,\n\n /**\n * margin around notes.\n * **Default value 10**.\n */\n noteMargin: 10,\n\n /**\n * Space between messages.\n * **Default value 35**.\n */\n messageMargin: 35,\n\n /**\n * Multiline message alignment. Possible values are:\n * * left\n * * center **default**\n * * right\n */\n messageAlign: 'center',\n\n /**\n * Depending on css styling this might need adjustment.\n * Prolongs the edge of the diagram downwards.\n * **Default value 1**.\n */\n bottomMarginAdj: 1,\n\n /**\n * when this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n * **Default value true**.\n */\n useMaxWidth: true,\n\n /**\n * This will display arrows that start and begin at the same node as right angles, rather than a curve\n * **Default value false**.\n */\n rightAngles: false\n },\n class: {},\n git: {},\n state: {\n dividerMargin: 10,\n sizeUnit: 5,\n padding: 8,\n textHeight: 10,\n titleShift: -15,\n noteMargin: 10,\n forkWidth: 70,\n forkHeight: 7,\n // Used\n miniPadding: 2,\n // Font size factor, this is used to guess the width of the edges labels before rendering by dagre\n // layout. This might need updating if/when switching font\n fontSizeFactor: 5.02,\n fontSize: 24,\n labelHeight: 16,\n edgeLengthFactor: '20',\n compositTitleSize: 35,\n radius: 5\n },\n\n /**\n * The object containing configurations specific for entity relationship diagrams\n */\n er: {\n /**\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins, expressed in pixels\n */\n diagramPadding: 20,\n\n /**\n * Directional bias for layout of entities. Can be either 'TB', 'BT', 'LR', or 'RL',\n * where T = top, B = bottom, L = left, and R = right.\n */\n layoutDirection: 'TB',\n\n /**\n * The mimimum width of an entity box, expressed in pixels\n */\n minEntityWidth: 100,\n\n /**\n * The minimum height of an entity box, expressed in pixels\n */\n minEntityHeight: 75,\n\n /**\n * The minimum internal padding between the text in an entity box and the enclosing box borders, expressed in pixels\n */\n entityPadding: 15,\n\n /**\n * Stroke color of box edges and lines\n */\n stroke: 'gray',\n\n /**\n * Fill color of entity boxes\n */\n fill: 'honeydew',\n\n /**\n * Font size (expressed as an integer representing a number of pixels)\n */\n fontSize: 12\n }\n};\n\nsetLogLevel(config.logLevel);\nsetConfig(config);\n\nfunction parse(text) {\n const graphInit = utils.detectInit(text);\n if (graphInit) {\n reinitialize(graphInit);\n logger.debug('Init ', graphInit);\n }\n const graphType = utils.detectType(text);\n let parser;\n\n logger.debug('Type ' + graphType);\n switch (graphType) {\n case 'git':\n parser = gitGraphParser;\n parser.parser.yy = gitGraphAst;\n break;\n case 'flowchart':\n flowDb.clear();\n parser = flowParser;\n parser.parser.yy = flowDb;\n break;\n case 'flowchart-v2':\n flowDb.clear();\n parser = flowParser;\n parser.parser.yy = flowDb;\n break;\n case 'sequence':\n parser = sequenceParser;\n parser.parser.yy = sequenceDb;\n break;\n case 'gantt':\n parser = ganttParser;\n parser.parser.yy = ganttDb;\n break;\n case 'class':\n parser = classParser;\n parser.parser.yy = classDb;\n break;\n case 'state':\n parser = stateParser;\n parser.parser.yy = stateDb;\n break;\n case 'stateDiagram':\n parser = stateParser;\n parser.parser.yy = stateDb;\n break;\n case 'info':\n logger.debug('info info info');\n parser = infoParser;\n parser.parser.yy = infoDb;\n break;\n case 'pie':\n logger.debug('pie');\n parser = pieParser;\n parser.parser.yy = pieDb;\n break;\n case 'er':\n logger.debug('er');\n parser = erParser;\n parser.parser.yy = erDb;\n break;\n case 'journey':\n logger.debug('Journey');\n parser = journeyParser;\n parser.parser.yy = journeyDb;\n break;\n }\n\n parser.parser.yy.parseError = (str, hash) => {\n const error = { str, hash };\n throw error;\n };\n\n parser.parse(text);\n}\n\nexport const encodeEntities = function(text) {\n let txt = text;\n\n txt = txt.replace(/style.*:\\S*#.*;/g, function(s) {\n const innerTxt = s.substring(0, s.length - 1);\n return innerTxt;\n });\n txt = txt.replace(/classDef.*:\\S*#.*;/g, function(s) {\n const innerTxt = s.substring(0, s.length - 1);\n return innerTxt;\n });\n\n txt = txt.replace(/#\\w+;/g, function(s) {\n const innerTxt = s.substring(1, s.length - 1);\n\n const isInt = /^\\+?\\d+$/.test(innerTxt);\n if (isInt) {\n return 'fl°°' + innerTxt + '¶ß';\n } else {\n return 'fl°' + innerTxt + '¶ß';\n }\n });\n\n return txt;\n};\n\nexport const decodeEntities = function(text) {\n let txt = text;\n\n txt = txt.replace(/fl°°/g, function() {\n return '';\n });\n txt = txt.replace(/fl°/g, function() {\n return '&';\n });\n txt = txt.replace(/¶ß/g, function() {\n return ';';\n });\n\n return txt;\n};\n/**\n * Function that renders an svg with a graph from a chart definition. Usage example below.\n *\n * ```js\n * mermaidAPI.initialize({\n * startOnLoad:true\n * });\n * $(function(){\n * const graphDefinition = 'graph TB\\na-->b';\n * const cb = function(svgGraph){\n * console.log(svgGraph);\n * };\n * mermaidAPI.render('id1',graphDefinition,cb);\n * });\n *```\n * @param id the id of the element to be rendered\n * @param txt the graph definition\n * @param cb callback which is called after rendering is finished with the svg code as inparam.\n * @param container selector to element in which a div with the graph temporarily will be inserted. In one is\n * provided a hidden div will be inserted in the body of the page instead. The element will be removed when rendering is\n * completed.\n */\nconst render = function(id, _txt, cb, container) {\n // Check the maximum allowed text size\n let txt = _txt;\n if (_txt.length > config.maxTextSize) {\n txt = 'graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa';\n }\n\n if (typeof container !== 'undefined') {\n container.innerHTML = '';\n\n select(container)\n .append('div')\n .attr('id', 'd' + id)\n .attr('style', 'font-family: ' + config.fontFamily)\n .append('svg')\n .attr('id', id)\n .attr('width', '100%')\n .attr('xmlns', 'http://www.w3.org/2000/svg')\n .append('g');\n } else {\n const existingSvg = document.getElementById(id);\n if (existingSvg) {\n existingSvg.remove();\n }\n const element = document.querySelector('#' + 'd' + id);\n if (element) {\n element.innerHTML = '';\n }\n\n select('body')\n .append('div')\n .attr('id', 'd' + id)\n .append('svg')\n .attr('id', id)\n .attr('width', '100%')\n .attr('xmlns', 'http://www.w3.org/2000/svg')\n .append('g');\n }\n\n window.txt = txt;\n txt = encodeEntities(txt);\n\n const element = select('#d' + id).node();\n const graphInit = utils.detectInit(txt);\n if (graphInit) {\n reinitialize(graphInit);\n }\n const graphType = utils.detectType(txt);\n\n // insert inline style into svg\n const svg = element.firstChild;\n const firstChild = svg.firstChild;\n\n // pre-defined theme\n let style = themes[config.theme];\n if (style === undefined) {\n style = '';\n }\n\n // user provided theme CSS\n if (config.themeCSS !== undefined) {\n style += `\\n${config.themeCSS}`;\n }\n // user provided theme CSS\n if (config.fontFamily !== undefined) {\n style += `\\n:root { --mermaid-font-family: ${config.fontFamily}}`;\n }\n // user provided theme CSS\n if (config.altFontFamily !== undefined) {\n style += `\\n:root { --mermaid-alt-font-family: ${config.altFontFamily}}`;\n }\n\n // classDef\n if (graphType === 'flowchart' || graphType === 'flowchart-v2') {\n const classes = flowRenderer.getClasses(txt);\n for (const className in classes) {\n style += `\\n.${className} > * { ${classes[className].styles.join(\n ' !important; '\n )} !important; }`;\n if (classes[className].textStyles) {\n style += `\\n.${className} tspan { ${classes[className].textStyles.join(\n ' !important; '\n )} !important; }`;\n }\n }\n }\n\n const style1 = document.createElement('style');\n style1.innerHTML = scope(style, `#${id}`);\n svg.insertBefore(style1, firstChild);\n\n const style2 = document.createElement('style');\n const cs = window.getComputedStyle(svg);\n style2.innerHTML = `#${id} {\n color: ${cs.color};\n font: ${cs.font};\n }`;\n svg.insertBefore(style2, firstChild);\n\n try {\n switch (graphType) {\n case 'git':\n config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n gitGraphRenderer.setConf(config.git);\n gitGraphRenderer.draw(txt, id, false);\n break;\n case 'flowchart':\n config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n flowRenderer.setConf(config.flowchart);\n flowRenderer.draw(txt, id, false);\n break;\n case 'flowchart-v2':\n config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n flowRendererV2.setConf(config.flowchart);\n flowRendererV2.draw(txt, id, false);\n break;\n case 'sequence':\n config.sequence.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n if (config.sequenceDiagram) {\n // backwards compatibility\n sequenceRenderer.setConf(Object.assign(config.sequence, config.sequenceDiagram));\n console.error(\n '`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.'\n );\n } else {\n sequenceRenderer.setConf(config.sequence);\n }\n sequenceRenderer.draw(txt, id);\n break;\n case 'gantt':\n config.gantt.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n ganttRenderer.setConf(config.gantt);\n ganttRenderer.draw(txt, id);\n break;\n case 'class':\n config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n classRenderer.setConf(config.class);\n classRenderer.draw(txt, id);\n break;\n case 'state':\n // config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n stateRenderer.setConf(config.state);\n stateRenderer.draw(txt, id);\n break;\n case 'stateDiagram':\n // config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n stateRendererV2.setConf(config.state);\n stateRendererV2.draw(txt, id);\n break;\n case 'info':\n config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n infoRenderer.setConf(config.class);\n infoRenderer.draw(txt, id, pkg.version);\n break;\n case 'pie':\n config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n pieRenderer.setConf(config.class);\n pieRenderer.draw(txt, id, pkg.version);\n break;\n case 'er':\n erRenderer.setConf(config.er);\n erRenderer.draw(txt, id, pkg.version);\n break;\n case 'journey':\n journeyRenderer.setConf(config.journey);\n journeyRenderer.draw(txt, id, pkg.version);\n break;\n }\n } catch (e) {\n errorRenderer.setConf(config.class);\n errorRenderer.draw(id, pkg.version);\n throw e;\n }\n\n select(`[id=\"${id}\"]`)\n .selectAll('foreignobject > *')\n .attr('xmlns', 'http://www.w3.org/1999/xhtml');\n\n // if (config.arrowMarkerAbsolute) {\n // url =\n // window.location.protocol +\n // '//' +\n // window.location.host +\n // window.location.pathname +\n // window.location.search;\n // url = url.replace(/\\(/g, '\\\\(');\n // url = url.replace(/\\)/g, '\\\\)');\n // }\n\n // Fix for when the base tag is used\n let svgCode = select('#d' + id).node().innerHTML;\n\n if (!config.arrowMarkerAbsolute || config.arrowMarkerAbsolute === 'false') {\n svgCode = svgCode.replace(/marker-end=\"url\\(.*?#/g, 'marker-end=\"url(#', 'g');\n }\n\n svgCode = decodeEntities(svgCode);\n\n if (typeof cb !== 'undefined') {\n switch (graphType) {\n case 'flowchart':\n case 'flowchart-v2':\n cb(svgCode, flowDb.bindFunctions);\n break;\n case 'gantt':\n cb(svgCode, ganttDb.bindFunctions);\n break;\n case 'class':\n cb(svgCode, classDb.bindFunctions);\n break;\n default:\n cb(svgCode);\n }\n } else {\n logger.debug('CB = undefined!');\n }\n\n const node = select('#d' + id).node();\n if (node !== null && typeof node.remove === 'function') {\n select('#d' + id)\n .node()\n .remove();\n }\n\n return svgCode;\n};\n\nconst setConf = function(cnf) {\n // Top level initially mermaid, gflow, sequenceDiagram and gantt\n const lvl1Keys = Object.keys(cnf);\n for (let i = 0; i < lvl1Keys.length; i++) {\n if (typeof cnf[lvl1Keys[i]] === 'object' && cnf[lvl1Keys[i]] != null) {\n const lvl2Keys = Object.keys(cnf[lvl1Keys[i]]);\n\n for (let j = 0; j < lvl2Keys.length; j++) {\n logger.debug('Setting conf ', lvl1Keys[i], '-', lvl2Keys[j]);\n if (typeof config[lvl1Keys[i]] === 'undefined') {\n config[lvl1Keys[i]] = {};\n }\n logger.debug(\n 'Setting config: ' +\n lvl1Keys[i] +\n ' ' +\n lvl2Keys[j] +\n ' to ' +\n cnf[lvl1Keys[i]][lvl2Keys[j]]\n );\n config[lvl1Keys[i]][lvl2Keys[j]] = cnf[lvl1Keys[i]][lvl2Keys[j]];\n }\n } else {\n config[lvl1Keys[i]] = cnf[lvl1Keys[i]];\n }\n }\n};\n\nfunction reinitialize(options) {\n if (typeof options === 'object') {\n setConf(options);\n }\n setConfig(config);\n setLogLevel(config.logLevel);\n logger.debug('RE-Initializing mermaidAPI ', { version: pkg.version, options, config });\n}\n\nfunction initialize(options) {\n let _config = config;\n logger.debug('Initializing mermaidAPI ', { version: pkg.version, options, _config });\n // Update default config with options supplied at initialization\n if (typeof options === 'object') {\n _config = Object.assign(_config, options);\n setConf(_config);\n }\n setConfig(_config);\n setLogLevel(_config.logLevel);\n}\n\n// function getConfig () {\n// console.warn('get config')\n// return config\n// }\n\nconst mermaidAPI = {\n render,\n parse,\n initialize,\n reinitialize,\n getConfig\n};\n\nexport default mermaidAPI;\n/**\n * ## mermaidAPI configuration defaults\n *
\n *\n * <script>\n * var config = {\n * theme:'default',\n * logLevel:'fatal',\n * securityLevel:'strict',\n * startOnLoad:true,\n * arrowMarkerAbsolute:false,\n *\n * flowchart:{\n * htmlLabels:true,\n * curve:'linear',\n * },\n * sequence:{\n * diagramMarginX:50,\n * diagramMarginY:10,\n * actorMargin:50,\n * width:150,\n * height:65,\n * boxMargin:10,\n * boxTextMargin:5,\n * noteMargin:10,\n * messageMargin:35,\n * messageAlign:'center',\n * mirrorActors:true,\n * bottomMarginAdj:1,\n * useMaxWidth:true,\n * rightAngles:false,\n * showSequenceNumbers:false,\n * },\n * gantt:{\n * titleTopMargin:25,\n * barHeight:20,\n * barGap:4,\n * topPadding:50,\n * leftPadding:75,\n * gridLineStartPadding:35,\n * fontSize:11,\n * fontFamily:'\"Open-Sans\", \"sans-serif\"',\n * numberSectionStyles:4,\n * axisFormat:'%Y-%m-%d',\n * }\n * };\n * mermaid.initialize(config);\n * </script>\n *\n */\n","var map = {\n\t\"./dark/index.scss\": \"./src/themes/dark/index.scss\",\n\t\"./default/index.scss\": \"./src/themes/default/index.scss\",\n\t\"./forest/index.scss\": \"./src/themes/forest/index.scss\",\n\t\"./neutral/index.scss\": \"./src/themes/neutral/index.scss\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./src/themes sync recursive ^\\\\.\\\\/.*\\\\/index\\\\.scss$\";","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","// css-to-string-loader: transforms styles from css-loader to a string output\n\n// Get the styles\nvar styles = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif (typeof styles === 'string') {\n // Return an existing string\n module.exports = styles;\n} else {\n // Call the custom toString method from css-loader module\n module.exports = styles.toString();\n}","import {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore\n} from 'd3';\nimport { logger } from './logger';\nimport { sanitizeUrl } from '@braintree/sanitize-url';\n\n// Effectively an enum of the supported curve types, accessible by name\nconst d3CurveTypes = {\n curveBasis: curveBasis,\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveLinear: curveLinear,\n curveLinearClosed: curveLinearClosed,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\nconst directive = /[%]{2}[{]\\s*(?:(?:(\\w+)\\s*:|(\\w+))\\s*(?:(?:(\\w+))|((?:(?![}][%]{2}).|\\r?\\n)*))?\\s*)(?:[}][%]{2})?/gi;\nconst directiveWithoutOpen = /\\s*(?:(?:(\\w+)(?=:):|(\\w+))\\s*(?:(?:(\\w+))|((?:(?![}][%]{2}).|\\r?\\n)*))?\\s*)(?:[}][%]{2})?/gi;\nconst anyComment = /\\s*%%.*\\n/gm;\n\n/**\n * @function detectInit\n * Detects the init config object from the text\n * ```mermaid\n * %%{init: {\"theme\": \"debug\", \"logLevel\": 1 }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n * or\n * ```mermaid\n * %%{initialize: {\"theme\": \"dark\", logLevel: \"debug\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * @param {string} text The text defining the graph\n * @returns {object} the json object representing the init to pass to mermaid.initialize()\n */\nexport const detectInit = function(text) {\n let inits = detectDirective(text, /(?:init\\b)|(?:initialize\\b)/);\n let results = {};\n if (Array.isArray(inits)) {\n let args = inits.map(init => init.args);\n results = Object.assign(results, ...args);\n } else {\n results = inits.args;\n }\n return results;\n};\n\n/**\n * @function detectDirective\n * Detects the directive from the text. Text can be single line or multiline. If type is null or omitted\n * the first directive encountered in text will be returned\n * ```mermaid\n * graph LR\n * %%{somedirective}%%\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * @param {string} text The text defining the graph\n * @param {string|RegExp} type The directive to return (default: null\n * @returns {object | Array} An object or Array representing the directive(s): { type: string, args: object|null } matchd by the input type\n * if a single directive was found, that directive object will be returned.\n */\nexport const detectDirective = function(text, type = null) {\n try {\n const commentWithoutDirectives = new RegExp(\n `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*\\n`,\n 'ig'\n );\n text = text\n .trim()\n .replace(commentWithoutDirectives, '')\n .replace(/'/gm, '\"');\n logger.debug(\n `Detecting diagram directive${type !== null ? ' type:' + type : ''} based on the text:${text}`\n );\n let match,\n result = [];\n while ((match = directive.exec(text)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (match.index === directive.lastIndex) {\n directive.lastIndex++;\n }\n if (\n (match && !type) ||\n (type && match[1] && match[1].match(type)) ||\n (type && match[2] && match[2].match(type))\n ) {\n let type = match[1] ? match[1] : match[2];\n let args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;\n result.push({ type, args });\n }\n }\n if (result.length === 0) {\n result.push({ type: text, args: null });\n }\n\n return result.length === 1 ? result[0] : result;\n } catch (error) {\n logger.error(\n `ERROR: ${error.message} - Unable to parse directive${\n type !== null ? ' type:' + type : ''\n } based on the text:${text}`\n );\n return { type: null, args: null };\n }\n};\n\n/**\n * @function detectType\n * Detects the type of the graph text. Takes into consideration the possible existence of an %%init\n * directive\n * ```mermaid\n * %%{initialize: {\"startOnLoad\": true, logLevel: \"fatal\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * @param {string} text The text defining the graph\n * @returns {string} A graph definition key\n */\nexport const detectType = function(text) {\n text = text.replace(directive, '').replace(anyComment, '\\n');\n logger.debug('Detecting diagram type based on the text ' + text);\n if (text.match(/^\\s*sequenceDiagram/)) {\n return 'sequence';\n }\n\n if (text.match(/^\\s*gantt/)) {\n return 'gantt';\n }\n\n if (text.match(/^\\s*classDiagram/)) {\n return 'class';\n }\n if (text.match(/^\\s*stateDiagram-v2/)) {\n return 'stateDiagram';\n }\n\n if (text.match(/^\\s*stateDiagram/)) {\n return 'state';\n }\n\n if (text.match(/^\\s*gitGraph/)) {\n return 'git';\n }\n if (text.match(/^\\s*flowchart/)) {\n return 'flowchart-v2';\n }\n\n if (text.match(/^\\s*info/)) {\n return 'info';\n }\n if (text.match(/^\\s*pie/)) {\n return 'pie';\n }\n\n if (text.match(/^\\s*erDiagram/)) {\n return 'er';\n }\n\n if (text.match(/^\\s*journey/)) {\n return 'journey';\n }\n\n return 'flowchart';\n};\n\n/**\n * @function isSubstringInArray\n * Detects whether a substring in present in a given array\n * @param {string} str The substring to detect\n * @param {array} arr The array to search\n * @returns {number} the array index containing the substring or -1 if not present\n **/\nexport const isSubstringInArray = function(str, arr) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i].match(str)) return i;\n }\n return -1;\n};\n\nexport const interpolateToCurve = (interpolate, defaultCurve) => {\n if (!interpolate) {\n return defaultCurve;\n }\n const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;\n return d3CurveTypes[curveName] || defaultCurve;\n};\n\nexport const formatUrl = (linkStr, config) => {\n let url = linkStr.trim();\n\n if (url) {\n if (config.securityLevel !== 'loose') {\n return sanitizeUrl(url);\n }\n\n return url;\n }\n};\n\nconst distance = (p1, p2) =>\n p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0;\n\nconst traverseEdge = points => {\n let prevPoint;\n let totalDistance = 0;\n\n points.forEach(point => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse half of total distance along points\n const distanceToLabel = totalDistance / 2;\n\n let remainingDistance = distanceToLabel;\n let center;\n prevPoint = undefined;\n points.forEach(point => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y\n };\n }\n }\n }\n prevPoint = point;\n });\n return center;\n};\n\nconst calcLabelPosition = points => {\n const p = traverseEdge(points);\n return p;\n};\n\nconst calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => {\n let prevPoint;\n let totalDistance = 0; // eslint-disable-line\n if (points[0] !== initialPosition) {\n points = points.reverse();\n }\n points.forEach(point => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse only 25 total distance along points to find cardinality point\n const distanceToCardinalityPoint = 25;\n\n let remainingDistance = distanceToCardinalityPoint;\n let center;\n prevPoint = undefined;\n points.forEach(point => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y\n };\n }\n }\n }\n prevPoint = point;\n });\n // if relation is present (Arrows will be added), change cardinality point off-set distance (d)\n let d = isRelationTypePresent ? 10 : 5;\n //Calculate Angle for x and y axis\n let angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n let cardinalityPosition = { x: 0, y: 0 };\n //Calculation cardinality position using angle, center point on the line/curve but pendicular and with offset-distance\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n return cardinalityPosition;\n};\n\nexport const getStylesFromArray = arr => {\n let style = '';\n let labelStyle = '';\n\n for (let i = 0; i < arr.length; i++) {\n if (typeof arr[i] !== 'undefined') {\n // add text properties to label style definition\n if (arr[i].startsWith('color:') || arr[i].startsWith('text-align:')) {\n labelStyle = labelStyle + arr[i] + ';';\n } else {\n style = style + arr[i] + ';';\n }\n }\n }\n\n return { style: style, labelStyle: labelStyle };\n};\n\nlet cnt = 0;\nexport const generateId = () => {\n cnt++;\n return (\n 'id-' +\n Math.random()\n .toString(36)\n .substr(2, 12) +\n '-' +\n cnt\n );\n};\n\nexport default {\n detectInit,\n detectDirective,\n detectType,\n isSubstringInArray,\n interpolateToCurve,\n calcLabelPosition,\n calcCardinalityPosition,\n formatUrl,\n getStylesFromArray,\n generateId\n};\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/mermaid.min.js b/dist/mermaid.min.js index 367cbd41b..4339e5d4f 100644 --- a/dist/mermaid.min.js +++ b/dist/mermaid.min.js @@ -1,4 +1,4 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.mermaid=e():t.mermaid=e()}("undefined"!=typeof self?self:this,(function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=353)}([function(t,e,n){"use strict";n.r(e);var r=function(t,e){return t
>1)+h+t+k+A.slice(T);break;default:t=A+h+t+k}return s(t)}return g=void 0===g?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,g)):Math.max(0,Math.min(20,g)),k.toString=function(){return t+""},k}return{format:f,formatPrefix:function(t,e){var n=f(((t=Ws(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor($s(e)/3))),i=Math.pow(10,-r),a=eu[8+r/3];return function(t){return n(i*t)+a}}}};function ru(t){return qs=nu(t),Xs=qs.format,Zs=qs.formatPrefix,qs}ru({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});var iu=function(t){return Math.max(0,-$s(Math.abs(t)))},au=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor($s(e)/3)))-$s(Math.abs(t)))},ou=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,$s(e)-$s(t))+1},su=function(){return new uu};function uu(){this.reset()}uu.prototype={constructor:uu,reset:function(){this.s=this.t=0},add:function(t){lu(cu,t,this.t),lu(this,cu.s,this.s),this.s?this.t+=cu.t:this.s=cu.t},valueOf:function(){return this.s}};var cu=new uu;function lu(t,e,n){var r=t.s=e+n,i=r-e,a=r-i;t.t=e-a+(n-i)}var fu=Math.PI,hu=fu/2,du=fu/4,pu=2*fu,yu=180/fu,gu=fu/180,mu=Math.abs,vu=Math.atan,bu=Math.atan2,xu=Math.cos,_u=Math.ceil,wu=Math.exp,ku=(Math.floor,Math.log),Eu=Math.pow,Tu=Math.sin,Au=Math.sign||function(t){return t>0?1:t<0?-1:0},Su=Math.sqrt,Mu=Math.tan;function Ou(t){return t>1?0:t<-1?fu:Math.acos(t)}function Nu(t){return t>1?hu:t<-1?-hu:Math.asin(t)}function Cu(t){return(t=Tu(t/2))*t}function Du(){}function Fu(t,e){t&&Iu.hasOwnProperty(t.type)&&Iu[t.type](t,e)}var Lu={Feature:function(t,e){Fu(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r=0?1:-1,i=r*n,a=xu(e=(e*=gu)/2+du),o=Tu(e),s=Uu*o,u=zu*a+s*xu(i),c=s*r*Tu(i);Gu.add(bu(c,u)),Yu=t,zu=a,Uu=o}var Ju=function(t){return Wu.reset(),$u(t,Vu),2*Wu};function Qu(t){return[bu(t[1],t[0]),Nu(t[2])]}function Ku(t){var e=t[0],n=t[1],r=xu(n);return[r*xu(e),r*Tu(e),Tu(n)]}function tc(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function ec(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function nc(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function rc(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function ic(t){var e=Su(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var ac,oc,sc,uc,cc,lc,fc,hc,dc,pc,yc=su(),gc={point:mc,lineStart:bc,lineEnd:xc,polygonStart:function(){gc.point=_c,gc.lineStart=wc,gc.lineEnd=kc,yc.reset(),Vu.polygonStart()},polygonEnd:function(){Vu.polygonEnd(),gc.point=mc,gc.lineStart=bc,gc.lineEnd=xc,Gu<0?(ac=-(sc=180),oc=-(uc=90)):yc>1e-6?uc=90:yc<-1e-6&&(oc=-90),pc[0]=ac,pc[1]=sc},sphere:function(){ac=-(sc=180),oc=-(uc=90)}};function mc(t,e){dc.push(pc=[ac=t,sc=t]),e >>1;c[y]uc&&(uc=e)),c?t0?r=S(s=Math.floor(s/r)*r,u=Math.ceil(u/r)*r,n):r<0&&(r=S(s=Math.ceil(s*r)/r,u=Math.floor(u*r)/r,n)),r>0?(i[a]=Math.floor(s/r)*r,i[o]=Math.ceil(u/r)*r,e(i)):r<0&&(i[a]=Math.ceil(s*r)/r,i[o]=Math.floor(u*r)/r,e(i)),t},t}function sy(){var t=iy(Jp,Jp);return t.copy=function(){return ny(t,sy())},jp.apply(t,arguments),oy(t)}function uy(t){var e;function n(t){return isNaN(t=+t)?e:t}return n.invert=n,n.domain=n.range=function(e){return arguments.length?(t=Up.call(e,Xp),n):t.slice()},n.unknown=function(t){return arguments.length?(e=t,n):e},n.copy=function(){return uy(t).unknown(e)},t=arguments.length?Up.call(t,Xp):[0,1],oy(n)}var cy=function(t,e){var n,r=0,i=(t=t.slice()).length-1,a=t[r],o=t[i];return o0){for(;hu)break;y.push(f)}}else y=A(h,d,Math.min(d-h,p)).map(n);return r?y.reverse():y},r.tickFormat=function(t,i){if(null==i&&(i=10===a?".0e":","),"function"!=typeof i&&(i=Xs(i)),t===1/0)return i;null==t&&(t=10);var o=Math.max(1,a*t/r.ticks().length);return function(t){var r=t/n(Math.round(e(t)));return r*a=u)return-1;if(37===(i=e.charCodeAt(o++))){if(i=e.charAt(o++),!(a=_[i in Vg?e.charAt(o++):i])||(r=a(t,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}return(b.x=w(n,b),b.X=w(r,b),b.c=w(e,b),x.x=w(n,x),x.X=w(r,x),x.c=w(e,x),{format:function(t){var e=w(t+="",b);return e.toString=function(){return t},e},parse:function(t){var e=k(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=w(t+="",x);return e.toString=function(){return t},e},utcParse:function(t){var e=k(t+="",!0);return e.toString=function(){return t},e}})}var zg,Ug,$g,Gg,Wg,Vg={"-":"",_:" ",0:"0"},Hg=/^\s*\d+/,qg=/^%/,Xg=/[\\^$*+?|[\]().{}]/g;function Zg(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",a=i.length;return r+(af&&M.push("'"+this.terminals_[T]+"'");N=p.showPosition?"Parse error on line "+(u+1)+":\n"+p.showPosition()+"\nExpecting "+M.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(u+1)+": Unexpected "+(x==h?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(N,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:m,expected:M})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+x);switch(k[0]){case 1:n.push(x),i.push(p.yytext),a.push(p.yylloc),n.push(k[1]),x=null,_?(x=_,_=null):(c=p.yyleng,s=p.yytext,u=p.yylineno,m=p.yylloc,l>0&&l--);break;case 2:if(A=this.productions_[k[1]][1],O.$=i[i.length-A],O._$={first_line:a[a.length-(A||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(A||1)].first_column,last_column:a[a.length-1].last_column},v&&(O._$.range=[a[a.length-(A||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(O,[s,c,u,y.yy,k[1],i,a].concat(d))))return E;A&&(n=n.slice(0,-1*A*2),i=i.slice(0,-1*A),a=a.slice(0,-1*A)),n.push(this.productions_[k[1]][0]),i.push(O.$),a.push(O._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},O={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;a