-
Notifications
You must be signed in to change notification settings - Fork 38
/
1.dca09679.iframe.bundle.js.map
1 lines (1 loc) · 339 KB
/
1.dca09679.iframe.bundle.js.map
1
{"version":3,"file":"1.dca09679.iframe.bundle.js","sources":["webpack:////home/runner/work/fozzie-components/fozzie-components/node_modules/core-js/modules/es.regexp.flags.js","webpack:////home/runner/work/fozzie-components/fozzie-components/node_modules/core-js/modules/es.string.from-code-point.js","webpack:////home/runner/work/fozzie-components/fozzie-components/node_modules/@storybook/components/dist/esm/syntaxhighlighter-b07b042a.js"],"sourcesContent":["'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = global.RegExp;\nvar RegExpPrototype = RegExp.prototype;\n\nvar FORCED = DESCRIPTORS && fails(function () {\n var INDICES_SUPPORT = true;\n try {\n RegExp('.', 'd');\n } catch (error) {\n INDICES_SUPPORT = false;\n }\n\n var O = {};\n // modern V8 bug\n var calls = '';\n var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n var addGetter = function (key, chr) {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(O, key, { get: function () {\n calls += chr;\n return true;\n } });\n };\n\n var pairs = {\n dotAll: 's',\n global: 'g',\n ignoreCase: 'i',\n multiline: 'm',\n sticky: 'y'\n };\n\n if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n for (var key in pairs) addGetter(key, pairs[key]);\n\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O);\n\n return result !== expected || calls !== expected;\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {\n configurable: true,\n get: regExpFlags\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar $RangeError = RangeError;\nvar fromCharCode = String.fromCharCode;\n// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing\nvar $fromCodePoint = String.fromCodePoint;\nvar join = uncurryThis([].join);\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length !== 1;\n\n// `String.fromCodePoint` method\n// https://tc39.es/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n fromCodePoint: function fromCodePoint(x) {\n var elements = [];\n var length = arguments.length;\n var i = 0;\n var code;\n while (length > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw new $RangeError(code + ' is not a valid code point');\n elements[i] = code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00);\n } return join(elements, '');\n }\n});\n","import \"regenerator-runtime/runtime.js\";\n\nfunction _defineProperty2(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray2(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray2(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray2(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray2(o, minLen); }\n\nfunction _arrayLikeToArray2(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport \"core-js/modules/es.regexp.exec.js\";\nimport \"core-js/modules/es.string.replace.js\";\nimport \"core-js/modules/es.regexp.constructor.js\";\nimport \"core-js/modules/es.regexp.to-string.js\";\nimport \"core-js/modules/es.array.join.js\";\nimport \"core-js/modules/es.array.map.js\";\nimport \"core-js/modules/es.array.splice.js\";\nimport \"core-js/modules/es.array.filter.js\";\nimport \"core-js/modules/es.object.to-string.js\";\nimport \"core-js/modules/es.string.from-code-point.js\";\nimport \"core-js/modules/es.array.slice.js\";\nimport \"core-js/modules/es.number.constructor.js\";\nimport \"core-js/modules/es.regexp.flags.js\";\nimport \"core-js/modules/es.symbol.js\";\nimport \"core-js/modules/es.symbol.description.js\";\nimport \"core-js/modules/es.symbol.iterator.js\";\nimport \"core-js/modules/es.array.iterator.js\";\nimport \"core-js/modules/es.string.iterator.js\";\nimport \"core-js/modules/web.dom-collections.iterator.js\";\nimport \"core-js/modules/es.array.from.js\";\nimport \"core-js/modules/es.function.name.js\";\nimport \"core-js/modules/es.object.keys.js\";\nimport \"core-js/modules/es.object.get-own-property-descriptor.js\";\nimport \"core-js/modules/web.dom-collections.for-each.js\";\nimport \"core-js/modules/es.array.concat.js\";\nimport \"core-js/modules/es.string.split.js\";\nimport \"core-js/modules/es.array.includes.js\";\nimport \"core-js/modules/es.string.includes.js\";\nimport \"core-js/modules/es.object.assign.js\";\nimport \"core-js/modules/es.string.match.js\";\nimport \"core-js/modules/es.set.js\";\nimport \"core-js/modules/es.string.trim.js\";\nimport \"core-js/modules/esnext.global-this.js\";\nimport \"core-js/modules/es.object.entries.js\";\nimport { _ as _objectWithoutPropertiesLoose, a as _extends, c as commonjsGlobal, b as __awaiter, S as ScrollArea, d as __rest, A as ActionBar, w as window_1 } from './index-681e4b07.js';\nimport React__default, { useState, useCallback } from 'react';\nimport { logger } from '@storybook/client-logger';\nimport { styled } from '@storybook/theming';\nimport memoize from 'memoizerific';\nimport '@storybook/csf';\nimport 'qs';\nvar jsx_1 = jsx;\njsx.displayName = 'jsx';\njsx.aliases = [];\n\nfunction jsx(Prism) {\n (function (Prism) {\n var javascript = Prism.util.clone(Prism.languages.javascript);\n var space = /(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)/.source;\n var braces = /(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})/.source;\n var spread = /(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})/.source;\n /**\n * @param {string} source\n * @param {string} [flags]\n */\n\n function re(source, flags) {\n source = source.replace(/<S>/g, function () {\n return space;\n }).replace(/<BRACES>/g, function () {\n return braces;\n }).replace(/<SPREAD>/g, function () {\n return spread;\n });\n return RegExp(source, flags);\n }\n\n spread = re(spread).source;\n Prism.languages.jsx = Prism.languages.extend('markup', javascript);\n Prism.languages.jsx.tag.pattern = re(/<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>/.source);\n Prism.languages.jsx.tag.inside['tag'].pattern = /^<\\/?[^\\s>\\/]*/;\n Prism.languages.jsx.tag.inside['attr-value'].pattern = /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/;\n Prism.languages.jsx.tag.inside['tag'].inside['class-name'] = /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/;\n Prism.languages.jsx.tag.inside['comment'] = javascript['comment'];\n Prism.languages.insertBefore('inside', 'attr-name', {\n spread: {\n pattern: re(/<SPREAD>/.source),\n inside: Prism.languages.jsx\n }\n }, Prism.languages.jsx.tag);\n Prism.languages.insertBefore('inside', 'special-attr', {\n script: {\n // Allow for two levels of nesting\n pattern: re(/=<BRACES>/.source),\n alias: 'language-javascript',\n inside: {\n 'script-punctuation': {\n pattern: /^=(?=\\{)/,\n alias: 'punctuation'\n },\n rest: Prism.languages.jsx\n }\n }\n }, Prism.languages.jsx.tag); // The following will handle plain text inside tags\n\n var stringifyToken = function stringifyToken(token) {\n if (!token) {\n return '';\n }\n\n if (typeof token === 'string') {\n return token;\n }\n\n if (typeof token.content === 'string') {\n return token.content;\n }\n\n return token.content.map(stringifyToken).join('');\n };\n\n var walkTokens = function walkTokens(tokens) {\n var openedTags = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var notTagNorBrace = false;\n\n if (typeof token !== 'string') {\n if (token.type === 'tag' && token.content[0] && token.content[0].type === 'tag') {\n // We found a tag, now find its kind\n if (token.content[0].content[0].content === '</') {\n // Closing tag\n if (openedTags.length > 0 && openedTags[openedTags.length - 1].tagName === stringifyToken(token.content[0].content[1])) {\n // Pop matching opening tag\n openedTags.pop();\n }\n } else {\n if (token.content[token.content.length - 1].content === '/>') ;else {\n // Opening tag\n openedTags.push({\n tagName: stringifyToken(token.content[0].content[1]),\n openedBraces: 0\n });\n }\n }\n } else if (openedTags.length > 0 && token.type === 'punctuation' && token.content === '{') {\n // Here we might have entered a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces++;\n } else if (openedTags.length > 0 && openedTags[openedTags.length - 1].openedBraces > 0 && token.type === 'punctuation' && token.content === '}') {\n // Here we might have left a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces--;\n } else {\n notTagNorBrace = true;\n }\n }\n\n if (notTagNorBrace || typeof token === 'string') {\n if (openedTags.length > 0 && openedTags[openedTags.length - 1].openedBraces === 0) {\n // Here we are inside a tag, and not inside a JSX context.\n // That's plain text: drop any tokens matched.\n var plainText = stringifyToken(token); // And merge text with adjacent text\n\n if (i < tokens.length - 1 && (typeof tokens[i + 1] === 'string' || tokens[i + 1].type === 'plain-text')) {\n plainText += stringifyToken(tokens[i + 1]);\n tokens.splice(i + 1, 1);\n }\n\n if (i > 0 && (typeof tokens[i - 1] === 'string' || tokens[i - 1].type === 'plain-text')) {\n plainText = stringifyToken(tokens[i - 1]) + plainText;\n tokens.splice(i - 1, 1);\n i--;\n }\n\n tokens[i] = new Prism.Token('plain-text', plainText, null, plainText);\n }\n }\n\n if (token.content && typeof token.content !== 'string') {\n walkTokens(token.content);\n }\n }\n };\n\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'jsx' && env.language !== 'tsx') {\n return;\n }\n\n walkTokens(env.tokens);\n });\n })(Prism);\n}\n\nvar jsx$1 = jsx_1;\nvar bash_1 = bash;\nbash.displayName = 'bash';\nbash.aliases = ['shell'];\n\nfunction bash(Prism) {\n (function (Prism) {\n // $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n // + LC_ALL, RANDOM, REPLY, SECONDS.\n // + make sure PS1..4 are here as they are not always set,\n // - some useless things.\n var envVars = '\\\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\\\b';\n var commandAfterHeredoc = {\n pattern: /(^([\"']?)\\w+\\2)[ \\t]+\\S.*/,\n lookbehind: true,\n alias: 'punctuation',\n // this looks reasonably well in all themes\n inside: null // see below\n\n };\n var insideString = {\n bash: commandAfterHeredoc,\n environment: {\n pattern: RegExp('\\\\$' + envVars),\n alias: 'constant'\n },\n variable: [// [0]: Arithmetic Environment\n {\n pattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n greedy: true,\n inside: {\n // If there is a $ sign at the beginning highlight $(( and )) as variable\n variable: [{\n pattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n lookbehind: true\n }, /^\\$\\(\\(/],\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n // Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n operator: /--|\\+\\+|\\*\\*=?|<<=?|>>=?|&&|\\|\\||[=!+\\-*/%<>^&|]=?|[?~:]/,\n // If there is no $ sign at the beginning highlight (( and )) as punctuation\n punctuation: /\\(\\(?|\\)\\)?|,|;/\n }\n }, // [1]: Command Substitution\n {\n pattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n greedy: true,\n inside: {\n variable: /^\\$\\(|^`|\\)$|`$/\n }\n }, // [2]: Brace expansion\n {\n pattern: /\\$\\{[^}]+\\}/,\n greedy: true,\n inside: {\n operator: /:[-=?+]?|[!\\/]|##?|%%?|\\^\\^?|,,?/,\n punctuation: /[\\[\\]]/,\n environment: {\n pattern: RegExp('(\\\\{)' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n }\n }, /\\$(?:\\w+|[#?*!@$])/],\n // Escape sequences from echo and printf's manuals, and escaped quotes.\n entity: /\\\\(?:[abceEfnrtv\\\\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/\n };\n Prism.languages.bash = {\n shebang: {\n pattern: /^#!\\s*\\/.*/,\n alias: 'important'\n },\n comment: {\n pattern: /(^|[^\"{\\\\$])#.*/,\n lookbehind: true\n },\n 'function-name': [// a) function foo {\n // b) foo() {\n // c) function foo() {\n // but not “foo {”\n {\n // a) and c)\n pattern: /(\\bfunction\\s+)[\\w-]+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n lookbehind: true,\n alias: 'function'\n }, {\n // b)\n pattern: /\\b[\\w-]+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n alias: 'function'\n }],\n // Highlight variable names as variables in for and select beginnings.\n 'for-or-select': {\n pattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n alias: 'variable',\n lookbehind: true\n },\n // Highlight variable names as variables in the left-hand part\n // of assignments (“=” and “+=”).\n 'assign-left': {\n pattern: /(^|[\\s;|&]|[<>]\\()\\w+(?=\\+?=)/,\n inside: {\n environment: {\n pattern: RegExp('(^|[\\\\s;|&]|[<>]\\\\()' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n },\n alias: 'variable',\n lookbehind: true\n },\n string: [// Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n {\n pattern: /((?:^|[^<])<<-?\\s*)(\\w+)\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\2/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n }, // Here-document with quotes around the tag\n // → No expansion (so no “inside”).\n {\n pattern: /((?:^|[^<])<<-?\\s*)([\"'])(\\w+)\\2\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\3/,\n lookbehind: true,\n greedy: true,\n inside: {\n bash: commandAfterHeredoc\n }\n }, // “Normal” string\n {\n // https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html\n pattern: /(^|[^\\\\](?:\\\\\\\\)*)\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n }, {\n // https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html\n pattern: /(^|[^$\\\\])'[^']*'/,\n lookbehind: true,\n greedy: true\n }, {\n // https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html\n pattern: /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n greedy: true,\n inside: {\n entity: insideString.entity\n }\n }],\n environment: {\n pattern: RegExp('\\\\$?' + envVars),\n alias: 'constant'\n },\n variable: insideString.variable,\n function: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n keyword: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n // https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n builtin: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:\\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\\s;|&])/,\n lookbehind: true,\n // Alias added to make those easier to distinguish from strings.\n alias: 'class-name'\n },\n boolean: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:false|true)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n 'file-descriptor': {\n pattern: /\\B&\\d\\b/,\n alias: 'important'\n },\n operator: {\n // Lots of redirections here, but not just that.\n pattern: /\\d?<>|>\\||\\+=|=[=~]?|!=?|<<[<-]?|[&\\d]?>>|\\d[<>]&?|[<>][&=]?|&[>&]?|\\|[&|]?/,\n inside: {\n 'file-descriptor': {\n pattern: /^\\d/,\n alias: 'important'\n }\n }\n },\n punctuation: /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];\\\\]/,\n number: {\n pattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n lookbehind: true\n }\n };\n commandAfterHeredoc.inside = Prism.languages.bash;\n /* Patterns in command substitution. */\n\n var toBeCopied = ['comment', 'function-name', 'for-or-select', 'assign-left', 'string', 'environment', 'function', 'keyword', 'builtin', 'boolean', 'file-descriptor', 'operator', 'punctuation', 'number'];\n var inside = insideString.variable[1].inside;\n\n for (var i = 0; i < toBeCopied.length; i++) {\n inside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]];\n }\n\n Prism.languages.shell = Prism.languages.bash;\n })(Prism);\n}\n\nvar bash$1 = bash_1;\nvar css_1 = css$1;\ncss$1.displayName = 'css';\ncss$1.aliases = [];\n\nfunction css$1(Prism) {\n (function (Prism) {\n var string = /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/;\n Prism.languages.css = {\n comment: /\\/\\*[\\s\\S]*?\\*\\//,\n atrule: {\n pattern: /@[\\w-](?:[^;{\\s]|\\s+(?![\\s{]))*(?:;|(?=\\s*\\{))/,\n inside: {\n rule: /^@[\\w-]+/,\n 'selector-function-argument': {\n pattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n lookbehind: true,\n alias: 'selector'\n },\n keyword: {\n pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n lookbehind: true\n } // See rest below\n\n }\n },\n url: {\n // https://drafts.csswg.org/css-values-3/#urls\n pattern: RegExp('\\\\burl\\\\((?:' + string.source + '|' + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + ')\\\\)', 'i'),\n greedy: true,\n inside: {\n function: /^url/i,\n punctuation: /^\\(|\\)$/,\n string: {\n pattern: RegExp('^' + string.source + '$'),\n alias: 'url'\n }\n }\n },\n selector: {\n pattern: RegExp('(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' + string.source + ')*(?=\\\\s*\\\\{)'),\n lookbehind: true\n },\n string: {\n pattern: string,\n greedy: true\n },\n property: {\n pattern: /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n lookbehind: true\n },\n important: /!important\\b/i,\n function: {\n pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n lookbehind: true\n },\n punctuation: /[(){};:,]/\n };\n Prism.languages.css['atrule'].inside.rest = Prism.languages.css;\n var markup = Prism.languages.markup;\n\n if (markup) {\n markup.tag.addInlined('style', 'css');\n markup.tag.addAttribute('style', 'css');\n }\n })(Prism);\n}\n\nvar css$2 = css_1;\nvar jsExtras_1 = jsExtras;\njsExtras.displayName = 'jsExtras';\njsExtras.aliases = [];\n\nfunction jsExtras(Prism) {\n (function (Prism) {\n Prism.languages.insertBefore('javascript', 'function-variable', {\n 'method-variable': {\n pattern: RegExp('(\\\\.\\\\s*)' + Prism.languages.javascript['function-variable'].pattern.source),\n lookbehind: true,\n alias: ['function-variable', 'method', 'function', 'property-access']\n }\n });\n Prism.languages.insertBefore('javascript', 'function', {\n method: {\n pattern: RegExp('(\\\\.\\\\s*)' + Prism.languages.javascript['function'].source),\n lookbehind: true,\n alias: ['function', 'property-access']\n }\n });\n Prism.languages.insertBefore('javascript', 'constant', {\n 'known-class-name': [{\n // standard built-ins\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\n pattern: /\\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\\b/,\n alias: 'class-name'\n }, {\n // errors\n pattern: /\\b(?:[A-Z]\\w*)Error\\b/,\n alias: 'class-name'\n }]\n });\n /**\n * Replaces the `<ID>` placeholder in the given pattern with a pattern for general JS identifiers.\n *\n * @param {string} source\n * @param {string} [flags]\n * @returns {RegExp}\n */\n\n function withId(source, flags) {\n return RegExp(source.replace(/<ID>/g, function () {\n return /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/.source;\n }), flags);\n }\n\n Prism.languages.insertBefore('javascript', 'keyword', {\n imports: {\n // https://tc39.es/ecma262/#sec-imports\n pattern: withId(/(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)/.source),\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n exports: {\n // https://tc39.es/ecma262/#sec-exports\n pattern: withId(/(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})/.source),\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n });\n Prism.languages.javascript['keyword'].unshift({\n pattern: /\\b(?:as|default|export|from|import)\\b/,\n alias: 'module'\n }, {\n pattern: /\\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\\b/,\n alias: 'control-flow'\n }, {\n pattern: /\\bnull\\b/,\n alias: ['null', 'nil']\n }, {\n pattern: /\\bundefined\\b/,\n alias: 'nil'\n });\n Prism.languages.insertBefore('javascript', 'operator', {\n spread: {\n pattern: /\\.{3}/,\n alias: 'operator'\n },\n arrow: {\n pattern: /=>/,\n alias: 'operator'\n }\n });\n Prism.languages.insertBefore('javascript', 'punctuation', {\n 'property-access': {\n pattern: withId(/(\\.\\s*)#?<ID>/.source),\n lookbehind: true\n },\n 'maybe-class-name': {\n pattern: /(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/,\n lookbehind: true\n },\n dom: {\n // this contains only a few commonly used DOM variables\n pattern: /\\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\\b/,\n alias: 'variable'\n },\n console: {\n pattern: /\\bconsole(?=\\s*\\.)/,\n alias: 'class-name'\n }\n }); // add 'maybe-class-name' to tokens which might be a class name\n\n var maybeClassNameTokens = ['function', 'function-variable', 'method', 'method-variable', 'property-access'];\n\n for (var i = 0; i < maybeClassNameTokens.length; i++) {\n var token = maybeClassNameTokens[i];\n var value = Prism.languages.javascript[token]; // convert regex to object\n\n if (Prism.util.type(value) === 'RegExp') {\n value = Prism.languages.javascript[token] = {\n pattern: value\n };\n } // keep in mind that we don't support arrays\n\n\n var inside = value.inside || {};\n value.inside = inside;\n inside['maybe-class-name'] = /^[A-Z][\\s\\S]*/;\n }\n })(Prism);\n}\n\nvar jsExtras$1 = jsExtras_1;\nvar json_1 = json;\njson.displayName = 'json';\njson.aliases = ['webmanifest'];\n\nfunction json(Prism) {\n // https://www.json.org/json-en.html\n Prism.languages.json = {\n property: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n punctuation: /[{}[\\],]/,\n operator: /:/,\n boolean: /\\b(?:false|true)\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n }\n };\n Prism.languages.webmanifest = Prism.languages.json;\n}\n\nvar json$1 = json_1;\nvar graphql_1 = graphql;\ngraphql.displayName = 'graphql';\ngraphql.aliases = [];\n\nfunction graphql(Prism) {\n Prism.languages.graphql = {\n comment: /#.*/,\n description: {\n pattern: /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i,\n greedy: true,\n alias: 'string',\n inside: {\n 'language-markdown': {\n pattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/,\n lookbehind: true,\n inside: Prism.languages.markdown\n }\n }\n },\n string: {\n pattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n number: /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n boolean: /\\b(?:false|true)\\b/,\n variable: /\\$[a-z_]\\w*/i,\n directive: {\n pattern: /@[a-z_]\\w*/i,\n alias: 'function'\n },\n 'attr-name': {\n pattern: /\\b[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i,\n greedy: true\n },\n 'atom-input': {\n pattern: /\\b[A-Z]\\w*Input\\b/,\n alias: 'class-name'\n },\n scalar: /\\b(?:Boolean|Float|ID|Int|String)\\b/,\n constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n 'class-name': {\n pattern: /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*|:\\s*|\\[)[A-Z_]\\w*/,\n lookbehind: true\n },\n fragment: {\n pattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n 'definition-mutation': {\n pattern: /(\\bmutation\\s+)[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n 'definition-query': {\n pattern: /(\\bquery\\s+)[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n keyword: /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/,\n operator: /[!=|&]|\\.{3}/,\n 'property-query': /\\w+(?=\\s*\\()/,\n object: /\\w+(?=\\s*\\{)/,\n punctuation: /[!(){}\\[\\]:=,]/,\n property: /\\w+/\n };\n Prism.hooks.add('after-tokenize', function afterTokenizeGraphql(env) {\n if (env.language !== 'graphql') {\n return;\n }\n /**\n * get the graphql token stream that we want to customize\n *\n * @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n * @type {Token[]}\n */\n\n\n var validTokens = env.tokens.filter(function (token) {\n return typeof token !== 'string' && token.type !== 'comment' && token.type !== 'scalar';\n });\n var currentIndex = 0;\n /**\n * Returns whether the token relative to the current index has the given type.\n *\n * @param {number} offset\n * @returns {Token | undefined}\n */\n\n function getToken(offset) {\n return validTokens[currentIndex + offset];\n }\n /**\n * Returns whether the token relative to the current index has the given type.\n *\n * @param {readonly string[]} types\n * @param {number} [offset=0]\n * @returns {boolean}\n */\n\n\n function isTokenType(types, offset) {\n offset = offset || 0;\n\n for (var i = 0; i < types.length; i++) {\n var token = getToken(i + offset);\n\n if (!token || token.type !== types[i]) {\n return false;\n }\n }\n\n return true;\n }\n /**\n * Returns the index of the closing bracket to an opening bracket.\n *\n * It is assumed that `token[currentIndex - 1]` is an opening bracket.\n *\n * If no closing bracket could be found, `-1` will be returned.\n *\n * @param {RegExp} open\n * @param {RegExp} close\n * @returns {number}\n */\n\n\n function findClosingBracket(open, close) {\n var stackHeight = 1;\n\n for (var i = currentIndex; i < validTokens.length; i++) {\n var token = validTokens[i];\n var content = token.content;\n\n if (token.type === 'punctuation' && typeof content === 'string') {\n if (open.test(content)) {\n stackHeight++;\n } else if (close.test(content)) {\n stackHeight--;\n\n if (stackHeight === 0) {\n return i;\n }\n }\n }\n }\n\n return -1;\n }\n /**\n * Adds an alias to the given token.\n *\n * @param {Token} token\n * @param {string} alias\n * @returns {void}\n */\n\n\n function addAlias(token, alias) {\n var aliases = token.alias;\n\n if (!aliases) {\n token.alias = aliases = [];\n } else if (!Array.isArray(aliases)) {\n token.alias = aliases = [aliases];\n }\n\n aliases.push(alias);\n }\n\n for (; currentIndex < validTokens.length;) {\n var startToken = validTokens[currentIndex++]; // add special aliases for mutation tokens\n\n if (startToken.type === 'keyword' && startToken.content === 'mutation') {\n // any array of the names of all input variables (if any)\n var inputVariables = [];\n\n if (isTokenType(['definition-mutation', 'punctuation']) && getToken(1).content === '(') {\n // definition\n currentIndex += 2; // skip 'definition-mutation' and 'punctuation'\n\n var definitionEnd = findClosingBracket(/^\\($/, /^\\)$/);\n\n if (definitionEnd === -1) {\n continue;\n } // find all input variables\n\n\n for (; currentIndex < definitionEnd; currentIndex++) {\n var t = getToken(0);\n\n if (t.type === 'variable') {\n addAlias(t, 'variable-input');\n inputVariables.push(t.content);\n }\n }\n\n currentIndex = definitionEnd + 1;\n }\n\n if (isTokenType(['punctuation', 'property-query']) && getToken(0).content === '{') {\n currentIndex++; // skip opening bracket\n\n addAlias(getToken(0), 'property-mutation');\n\n if (inputVariables.length > 0) {\n var mutationEnd = findClosingBracket(/^\\{$/, /^\\}$/);\n\n if (mutationEnd === -1) {\n continue;\n } // give references to input variables a special alias\n\n\n for (var i = currentIndex; i < mutationEnd; i++) {\n var varToken = validTokens[i];\n\n if (varToken.type === 'variable' && inputVariables.indexOf(varToken.content) >= 0) {\n addAlias(varToken, 'variable-input');\n }\n }\n }\n }\n }\n }\n });\n}\n\nvar graphql$1 = graphql_1;\nvar markup_1 = markup$1;\nmarkup$1.displayName = 'markup';\nmarkup$1.aliases = ['html', 'mathml', 'svg', 'xml', 'ssml', 'atom', 'rss'];\n\nfunction markup$1(Prism) {\n Prism.languages.markup = {\n comment: {\n pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n greedy: true\n },\n prolog: {\n pattern: /<\\?[\\s\\S]+?\\?>/,\n greedy: true\n },\n doctype: {\n // https://www.w3.org/TR/xml/#NT-doctypedecl\n pattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n greedy: true,\n inside: {\n 'internal-subset': {\n pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n punctuation: /^<!|>$|[[\\]]/,\n 'doctype-tag': /^DOCTYPE/i,\n name: /[^\\s<>'\"]+/\n }\n },\n cdata: {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n greedy: true\n },\n tag: {\n pattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n greedy: true,\n inside: {\n tag: {\n pattern: /^<\\/?[^\\s>\\/]+/,\n inside: {\n punctuation: /^<\\/?/,\n namespace: /^[^\\s>\\/:]+:/\n }\n },\n 'special-attr': [],\n 'attr-value': {\n pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n inside: {\n punctuation: [{\n pattern: /^=/,\n alias: 'attr-equals'\n }, /\"|'/]\n }\n },\n punctuation: /\\/?>/,\n 'attr-name': {\n pattern: /[^\\s>\\/]+/,\n inside: {\n namespace: /^[^\\s>\\/:]+:/\n }\n }\n }\n },\n entity: [{\n pattern: /&[\\da-z]{1,8};/i,\n alias: 'named-entity'\n }, /&#x?[\\da-f]{1,8};/i]\n };\n Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] = Prism.languages.markup['entity'];\n Prism.languages.markup['doctype'].inside['internal-subset'].inside = Prism.languages.markup; // Plugin to make entity title show the real entity, idea by Roman Komarov\n\n Prism.hooks.add('wrap', function (env) {\n if (env.type === 'entity') {\n env.attributes['title'] = env.content.value.replace(/&/, '&');\n }\n });\n Object.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n /**\n * Adds an inlined language to markup.\n *\n * An example of an inlined language is CSS with `<style>` tags.\n *\n * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addInlined('style', 'css');\n */\n value: function addInlined(tagName, lang) {\n var includedCdataInside = {};\n includedCdataInside['language-' + lang] = {\n pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n lookbehind: true,\n inside: Prism.languages[lang]\n };\n includedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i;\n var inside = {\n 'included-cdata': {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n inside: includedCdataInside\n }\n };\n inside['language-' + lang] = {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages[lang]\n };\n var def = {};\n def[tagName] = {\n pattern: RegExp(/(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function () {\n return tagName;\n }), 'i'),\n lookbehind: true,\n greedy: true,\n inside: inside\n };\n Prism.languages.insertBefore('markup', 'cdata', def);\n }\n });\n Object.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n /**\n * Adds an pattern to highlight languages embedded in HTML attributes.\n *\n * An example of an inlined language is CSS with `style` attributes.\n *\n * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addAttribute('style', 'css');\n */\n value: function value(attrName, lang) {\n Prism.languages.markup.tag.inside['special-attr'].push({\n pattern: RegExp(/(^|[\"'\\s])/.source + '(?:' + attrName + ')' + /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source, 'i'),\n lookbehind: true,\n inside: {\n 'attr-name': /^[^\\s=]+/,\n 'attr-value': {\n pattern: /=[\\s\\S]+/,\n inside: {\n value: {\n pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n lookbehind: true,\n alias: [lang, 'language-' + lang],\n inside: Prism.languages[lang]\n },\n punctuation: [{\n pattern: /^=/,\n alias: 'attr-equals'\n }, /\"|'/]\n }\n }\n }\n });\n }\n });\n Prism.languages.html = Prism.languages.markup;\n Prism.languages.mathml = Prism.languages.markup;\n Prism.languages.svg = Prism.languages.markup;\n Prism.languages.xml = Prism.languages.extend('markup', {});\n Prism.languages.ssml = Prism.languages.xml;\n Prism.languages.atom = Prism.languages.xml;\n Prism.languages.rss = Prism.languages.xml;\n}\n\nvar markup$2 = markup_1;\nvar markdown_1 = markdown;\nmarkdown.displayName = 'markdown';\nmarkdown.aliases = ['md'];\n\nfunction markdown(Prism) {\n (function (Prism) {\n // Allow only one line break\n var inner = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source;\n /**\n * This function is intended for the creation of the bold or italic pattern.\n *\n * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.\n *\n * _Note:_ Keep in mind that this adds a capturing group.\n *\n * @param {string} pattern\n * @returns {RegExp}\n */\n\n function createInline(pattern) {\n pattern = pattern.replace(/<inner>/g, function () {\n return inner;\n });\n return RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + '(?:' + pattern + ')');\n }\n\n var tableCell = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/.source;\n var tableRow = /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(/__/g, function () {\n return tableCell;\n });\n var tableLine = /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/.source;\n Prism.languages.markdown = Prism.languages.extend('markup', {});\n Prism.languages.insertBefore('markdown', 'prolog', {\n 'front-matter-block': {\n pattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/,\n lookbehind: true,\n greedy: true,\n inside: {\n punctuation: /^---|---$/,\n 'front-matter': {\n pattern: /\\S+(?:\\s+\\S+)*/,\n alias: ['yaml', 'language-yaml'],\n inside: Prism.languages.yaml\n }\n }\n },\n blockquote: {\n // > ...\n pattern: /^>(?:[\\t ]*>)*/m,\n alias: 'punctuation'\n },\n table: {\n pattern: RegExp('^' + tableRow + tableLine + '(?:' + tableRow + ')*', 'm'),\n inside: {\n 'table-data-rows': {\n pattern: RegExp('^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'),\n lookbehind: true,\n inside: {\n 'table-data': {\n pattern: RegExp(tableCell),\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n },\n 'table-line': {\n pattern: RegExp('^(' + tableRow + ')' + tableLine + '$'),\n lookbehind: true,\n inside: {\n punctuation: /\\||:?-{3,}:?/\n }\n },\n 'table-header-row': {\n pattern: RegExp('^' + tableRow + '$'),\n inside: {\n 'table-header': {\n pattern: RegExp(tableCell),\n alias: 'important',\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n }\n }\n },\n code: [{\n // Prefixed by 4 spaces or 1 tab and preceded by an empty line\n pattern: /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/,\n lookbehind: true,\n alias: 'keyword'\n }, {\n // ```optional language\n // code block\n // ```\n pattern: /^```[\\s\\S]*?^```$/m,\n greedy: true,\n inside: {\n 'code-block': {\n pattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m,\n lookbehind: true\n },\n 'code-language': {\n pattern: /^(```).+/,\n lookbehind: true\n },\n punctuation: /```/\n }\n }],\n title: [{\n // title 1\n // =======\n // title 2\n // -------\n pattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m,\n alias: 'important',\n inside: {\n punctuation: /==+$|--+$/\n }\n }, {\n // # title 1\n // ###### title 6\n pattern: /(^\\s*)#.+/m,\n lookbehind: true,\n alias: 'important',\n inside: {\n punctuation: /^#+|#+$/\n }\n }],\n hr: {\n // ***\n // ---\n // * * *\n // -----------\n pattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n list: {\n // * item\n // + item\n // - item\n // 1. item\n pattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'url-reference': {\n // [id]: http://example.com \"Optional title\"\n // [id]: http://example.com 'Optional title'\n // [id]: http://example.com (Optional title)\n // [id]: <http://example.com> \"Optional title\"\n pattern: /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\n inside: {\n variable: {\n pattern: /^(!?\\[)[^\\]]+/,\n lookbehind: true\n },\n string: /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\n punctuation: /^[\\[\\]!:]|[<>]/\n },\n alias: 'url'\n },\n bold: {\n // **strong**\n // __strong__\n // allow one nested instance of italic text using the same delimiter\n pattern: createInline(/\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/.source),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^..)[\\s\\S]+(?=..$)/,\n lookbehind: true,\n inside: {} // see below\n\n },\n punctuation: /\\*\\*|__/\n }\n },\n italic: {\n // *em*\n // _em_\n // allow one nested instance of bold text using the same delimiter\n pattern: createInline(/\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/.source),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^.)[\\s\\S]+(?=.$)/,\n lookbehind: true,\n inside: {} // see below\n\n },\n punctuation: /[*_]/\n }\n },\n strike: {\n // ~~strike through~~\n // ~strike~\n // eslint-disable-next-line regexp/strict\n pattern: createInline(/(~~?)(?:(?!~)<inner>)+\\2/.source),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^~~?)[\\s\\S]+(?=\\1$)/,\n lookbehind: true,\n inside: {} // see below\n\n },\n punctuation: /~~?/\n }\n },\n 'code-snippet': {\n // `code`\n // ``code``\n pattern: /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/,\n lookbehind: true,\n greedy: true,\n alias: ['code', 'keyword']\n },\n url: {\n // [example](http://example.com \"Optional title\")\n // [example][id]\n // [example] [id]\n pattern: createInline(/!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/.source),\n lookbehind: true,\n greedy: true,\n inside: {\n operator: /^!/,\n content: {\n pattern: /(^\\[)[^\\]]+(?=\\])/,\n lookbehind: true,\n inside: {} // see below\n\n },\n variable: {\n pattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/,\n lookbehind: true\n },\n url: {\n pattern: /(^\\]\\()[^\\s)]+/,\n lookbehind: true\n },\n string: {\n pattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/,\n lookbehind: true\n }\n }\n }\n });\n ['url', 'bold', 'italic', 'strike'].forEach(function (token) {\n ['url', 'bold', 'italic', 'strike', 'code-snippet'].forEach(function (inside) {\n if (token !== inside) {\n Prism.languages.markdown[token].inside.content.inside[inside] = Prism.languages.markdown[inside];\n }\n });\n });\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'markdown' && env.language !== 'md') {\n return;\n }\n\n function walkTokens(tokens) {\n if (!tokens || typeof tokens === 'string') {\n return;\n }\n\n for (var i = 0, l = tokens.length; i < l; i++) {\n var token = tokens[i];\n\n if (token.type !== 'code') {\n walkTokens(token.content);\n continue;\n }\n /*\n * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token\n * is optional. But the grammar is defined so that there is only one case we have to handle:\n *\n * token.content = [\n * <span class=\"punctuation\">```</span>,\n * <span class=\"code-language\">xxxx</span>,\n * '\\n', // exactly one new lines (\\r or \\n or \\r\\n)\n * <span class=\"code-block\">...</span>,\n * '\\n', // exactly one new lines again\n * <span class=\"punctuation\">```</span>\n * ];\n */\n\n\n var codeLang = token.content[1];\n var codeBlock = token.content[3];\n\n if (codeLang && codeBlock && codeLang.type === 'code-language' && codeBlock.type === 'code-block' && typeof codeLang.content === 'string') {\n // this might be a language that Prism does not support\n // do some replacements to support C++, C#, and F#\n var lang = codeLang.content.replace(/\\b#/g, 'sharp').replace(/\\b\\+\\+/g, 'pp'); // only use the first word\n\n lang = (/[a-z][\\w-]*/i.exec(lang) || [''])[0].toLowerCase();\n var alias = 'language-' + lang; // add alias\n\n if (!codeBlock.alias) {\n codeBlock.alias = [alias];\n } else if (typeof codeBlock.alias === 'string') {\n codeBlock.alias = [codeBlock.alias, alias];\n } else {\n codeBlock.alias.push(alias);\n }\n }\n }\n }\n\n walkTokens(env.tokens);\n });\n Prism.hooks.add('wrap', function (env) {\n if (env.type !== 'code-block') {\n return;\n }\n\n var codeLang = '';\n\n for (var i = 0, l = env.classes.length; i < l; i++) {\n var cls = env.classes[i];\n var match = /language-(.+)/.exec(cls);\n\n if (match) {\n codeLang = match[1];\n break;\n }\n }\n\n var grammar = Prism.languages[codeLang];\n\n if (!grammar) {\n if (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) {\n var id = 'md-' + new Date().valueOf() + '-' + Math.floor(Math.random() * 1e16);\n env.attributes['id'] = id;\n Prism.plugins.autoloader.loadLanguages(codeLang, function () {\n var ele = document.getElementById(id);\n\n if (ele) {\n ele.innerHTML = Prism.highlight(ele.textContent, Prism.languages[codeLang], codeLang);\n }\n });\n }\n } else {\n env.content = Prism.highlight(textContent(env.content.value), grammar, codeLang);\n }\n });\n var tagPattern = RegExp(Prism.languages.markup.tag.pattern.source, 'gi');\n /**\n * A list of known entity names.\n *\n * This will always be incomplete to save space. The current list is the one used by lowdash's unescape function.\n *\n * @see {@link https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/unescape.js#L2}\n */\n\n var KNOWN_ENTITY_NAMES = {\n amp: '&',\n lt: '<',\n gt: '>',\n quot: '\"'\n }; // IE 11 doesn't support `String.fromCodePoint`\n\n var fromCodePoint = String.fromCodePoint || String.fromCharCode;\n /**\n * Returns the text content of a given HTML source code string.\n *\n * @param {string} html\n * @returns {string}\n */\n\n function textContent(html) {\n // remove all tags\n var text = html.replace(tagPattern, ''); // decode known entities\n\n text = text.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function (m, code) {\n code = code.toLowerCase();\n\n if (code[0] === '#') {\n var value;\n\n if (code[1] === 'x') {\n value = parseInt(code.slice(2), 16);\n } else {\n value = Number(code.slice(1));\n }\n\n return fromCodePoint(value);\n } else {\n var known = KNOWN_ENTITY_NAMES[code];\n\n if (known) {\n return known;\n } // unable to decode\n\n\n return m;\n }\n });\n return text;\n }\n\n Prism.languages.md = Prism.languages.markdown;\n })(Prism);\n}\n\nvar markdown$1 = markdown_1;\nvar yaml_1 = yaml;\nyaml.displayName = 'yaml';\nyaml.aliases = ['yml'];\n\nfunction yaml(Prism) {\n (function (Prism) {\n // https://yaml.org/spec/1.2/spec.html#c-ns-anchor-property\n // https://yaml.org/spec/1.2/spec.html#c-ns-alias-node\n var anchorOrAlias = /[*&][^\\s[\\]{},]+/; // https://yaml.org/spec/1.2/spec.html#c-ns-tag-property\n\n var tag = /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/; // https://yaml.org/spec/1.2/spec.html#c-ns-properties(n,c)\n\n var properties = '(?:' + tag.source + '(?:[ \\t]+' + anchorOrAlias.source + ')?|' + anchorOrAlias.source + '(?:[ \\t]+' + tag.source + ')?)'; // https://yaml.org/spec/1.2/spec.html#ns-plain(n,c)\n // This is a simplified version that doesn't support \"#\" and multiline keys\n // All these long scarry character classes are simplified versions of YAML's characters\n\n var plainKey = /(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g, function () {\n return /[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/.source;\n });\n var string = /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/.source;\n /**\n *\n * @param {string} value\n * @param {string} [flags]\n * @returns {RegExp}\n */\n\n function createValuePattern(value, flags) {\n flags = (flags || '').replace(/m/g, '') + 'm'; // add m flag\n\n var pattern = /([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/.source.replace(/<<prop>>/g, function () {\n return properties;\n }).replace(/<<value>>/g, function () {\n return value;\n });\n return RegExp(pattern, flags);\n }\n\n Prism.languages.yaml = {\n scalar: {\n pattern: RegExp(/([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/.source.replace(/<<prop>>/g, function () {\n return properties;\n })),\n lookbehind: true,\n alias: 'string'\n },\n comment: /#.*/,\n key: {\n pattern: RegExp(/((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)/.source.replace(/<<prop>>/g, function () {\n return properties;\n }).replace(/<<key>>/g, function () {\n return '(?:' + plainKey + '|' + string + ')';\n })),\n lookbehind: true,\n greedy: true,\n alias: 'atrule'\n },\n directive: {\n pattern: /(^[ \\t]*)%.+/m,\n lookbehind: true,\n alias: 'important'\n },\n datetime: {\n pattern: createValuePattern(/\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?/.source),\n lookbehind: true,\n alias: 'number'\n },\n boolean: {\n pattern: createValuePattern(/false|true/.source, 'i'),\n lookbehind: true,\n alias: 'important'\n },\n null: {\n pattern: createValuePattern(/null|~/.source, 'i'),\n lookbehind: true,\n alias: 'important'\n },\n string: {\n pattern: createValuePattern(string),\n lookbehind: true,\n greedy: true\n },\n number: {\n pattern: createValuePattern(/[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/.source, 'i'),\n lookbehind: true\n },\n tag: tag,\n important: anchorOrAlias,\n punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./\n };\n Prism.languages.yml = Prism.languages.yaml;\n })(Prism);\n}\n\nvar yaml$1 = yaml_1;\nvar typescript_1 = typescript;\ntypescript.displayName = 'typescript';\ntypescript.aliases = ['ts'];\n\nfunction typescript(Prism) {\n (function (Prism) {\n Prism.languages.typescript = Prism.languages.extend('javascript', {\n 'class-name': {\n pattern: /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n\n },\n builtin: /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/\n }); // The keywords TypeScript adds to JavaScript\n\n Prism.languages.typescript.keyword.push(/\\b(?:abstract|declare|is|keyof|readonly|require)\\b/, // keywords that have to be followed by an identifier\n /\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/, // This is for `import type *, {}`\n /\\btype\\b(?=\\s*(?:[\\{*]|$))/); // doesn't work with TS because TS is too complex\n\n delete Prism.languages.typescript['parameter'];\n delete Prism.languages.typescript['literal-property']; // a version of typescript specifically for highlighting types\n\n var typeInside = Prism.languages.extend('typescript', {});\n delete typeInside['class-name'];\n Prism.languages.typescript['class-name'].inside = typeInside;\n Prism.languages.insertBefore('typescript', 'function', {\n decorator: {\n pattern: /@[$\\w\\xA0-\\uFFFF]+/,\n inside: {\n at: {\n pattern: /^@/,\n alias: 'operator'\n },\n function: /^[\\s\\S]+/\n }\n },\n 'generic-function': {\n // e.g. foo<T extends \"bar\" | \"baz\">( ...\n pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/,\n greedy: true,\n inside: {\n function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/,\n generic: {\n pattern: /<[\\s\\S]+/,\n // everything after the first <\n alias: 'class-name',\n inside: typeInside\n }\n }\n }\n });\n Prism.languages.ts = Prism.languages.typescript;\n })(Prism);\n}\n\nvar typescript$1 = typescript_1;\nvar refractorJsx = jsx_1;\nvar refractorTypescript = typescript_1;\nvar tsx_1 = tsx;\ntsx.displayName = 'tsx';\ntsx.aliases = [];\n\nfunction tsx(Prism) {\n Prism.register(refractorJsx);\n Prism.register(refractorTypescript);\n\n (function (Prism) {\n var typescript = Prism.util.clone(Prism.languages.typescript);\n Prism.languages.tsx = Prism.languages.extend('jsx', typescript); // doesn't work with TS because TS is too complex\n\n delete Prism.languages.tsx['parameter'];\n delete Prism.languages.tsx['literal-property']; // This will prevent collisions between TSX tags and TS generic types.\n // Idea by https://github.com/karlhorky\n // Discussion: https://github.com/PrismJS/prism/issues/2594#issuecomment-710666928\n\n var tag = Prism.languages.tsx.tag;\n tag.pattern = RegExp(/(^|[^\\w$]|(?=<\\/))/.source + '(?:' + tag.pattern.source + ')', tag.pattern.flags);\n tag.lookbehind = true;\n })(Prism);\n}\n\nvar tsx$1 = tsx_1;\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n} //\n// Super simple, non-algorithmic solution since the\n// number of class names will not be greater than 4\n\n\nfunction powerSetPermutations(arr) {\n var arrLength = arr.length;\n if (arrLength === 0 || arrLength === 1) return arr;\n\n if (arrLength === 2) {\n // prettier-ignore\n return [arr[0], arr[1], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0])];\n }\n\n if (arrLength === 3) {\n return [arr[0], arr[1], arr[2], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n\n if (arrLength >= 4) {\n // Currently does not support more than 4 extra\n // class names (after `.token` has been removed)\n return [arr[0], arr[1], arr[2], arr[3], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n}\n\nvar classNameCombinations = {};\n\nfunction getClassNameCombinations(classNames) {\n if (classNames.length === 0 || classNames.length === 1) return classNames;\n var key = classNames.join('.');\n\n if (!classNameCombinations[key]) {\n classNameCombinations[key] = powerSetPermutations(classNames);\n }\n\n return classNameCombinations[key];\n}\n\nfunction createStyleObject(classNames) {\n var elementStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var stylesheet = arguments.length > 2 ? arguments[2] : undefined;\n var nonTokenClassNames = classNames.filter(function (className) {\n return className !== 'token';\n });\n var classNamesCombinations = getClassNameCombinations(nonTokenClassNames);\n return classNamesCombinations.reduce(function (styleObject, className) {\n return _objectSpread({}, styleObject, stylesheet[className]);\n }, elementStyle);\n}\n\nfunction createClassNameString(classNames) {\n return classNames.join(' ');\n}\n\nfunction createChildren(stylesheet, useInlineStyles) {\n var childrenCount = 0;\n return function (children) {\n childrenCount += 1;\n return children.map(function (child, i) {\n return createElement({\n node: child,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segment-\".concat(childrenCount, \"-\").concat(i)\n });\n });\n };\n}\n\nfunction createElement(_ref) {\n var node = _ref.node,\n stylesheet = _ref.stylesheet,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n useInlineStyles = _ref.useInlineStyles,\n key = _ref.key;\n var properties = node.properties,\n type = node.type,\n TagName = node.tagName,\n value = node.value;\n\n if (type === 'text') {\n return value;\n } else if (TagName) {\n var childrenCreator = createChildren(stylesheet, useInlineStyles);\n var props;\n\n if (!useInlineStyles) {\n props = _objectSpread({}, properties, {\n className: createClassNameString(properties.className)\n });\n } else {\n var allStylesheetSelectors = Object.keys(stylesheet).reduce(function (classes, selector) {\n selector.split('.').forEach(function (className) {\n if (!classes.includes(className)) classes.push(className);\n });\n return classes;\n }, []); // For compatibility with older versions of react-syntax-highlighter\n\n var startingClassName = properties.className && properties.className.includes('token') ? ['token'] : [];\n var className = properties.className && startingClassName.concat(properties.className.filter(function (className) {\n return !allStylesheetSelectors.includes(className);\n }));\n props = _objectSpread({}, properties, {\n className: createClassNameString(className) || undefined,\n style: createStyleObject(properties.className, Object.assign({}, properties.style, style), stylesheet)\n });\n }\n\n var children = childrenCreator(node.children);\n return React__default.createElement(TagName, _extends({\n key: key\n }, props), children);\n }\n}\n\nvar checkForListedLanguage = function checkForListedLanguage(astGenerator, language) {\n var langs = astGenerator.listLanguages();\n return langs.indexOf(language) !== -1;\n};\n\nvar newLineRegex = /\\n/g;\n\nfunction getNewLines(str) {\n return str.match(newLineRegex);\n}\n\nfunction getAllLineNumbers(_ref) {\n var lines = _ref.lines,\n startingLineNumber = _ref.startingLineNumber,\n style = _ref.style;\n return lines.map(function (_, i) {\n var number = i + startingLineNumber;\n return React__default.createElement(\"span\", {\n key: \"line-\".concat(i),\n className: \"react-syntax-highlighter-line-number\",\n style: typeof style === 'function' ? style(number) : style\n }, \"\".concat(number, \"\\n\"));\n });\n}\n\nfunction AllLineNumbers(_ref2) {\n var codeString = _ref2.codeString,\n codeStyle = _ref2.codeStyle,\n _ref2$containerStyle = _ref2.containerStyle,\n containerStyle = _ref2$containerStyle === void 0 ? {\n float: 'left',\n paddingRight: '10px'\n } : _ref2$containerStyle,\n _ref2$numberStyle = _ref2.numberStyle,\n numberStyle = _ref2$numberStyle === void 0 ? {} : _ref2$numberStyle,\n startingLineNumber = _ref2.startingLineNumber;\n return React__default.createElement(\"code\", {\n style: Object.assign({}, codeStyle, containerStyle)\n }, getAllLineNumbers({\n lines: codeString.replace(/\\n$/, '').split('\\n'),\n style: numberStyle,\n startingLineNumber: startingLineNumber\n }));\n}\n\nfunction getEmWidthOfNumber(num) {\n return \"\".concat(num.toString().length, \".25em\");\n}\n\nfunction getInlineLineNumber(lineNumber, inlineLineNumberStyle) {\n return {\n type: 'element',\n tagName: 'span',\n properties: {\n key: \"line-number--\".concat(lineNumber),\n className: ['comment', 'linenumber', 'react-syntax-highlighter-line-number'],\n style: inlineLineNumberStyle\n },\n children: [{\n type: 'text',\n value: lineNumber\n }]\n };\n}\n\nfunction assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber) {\n // minimally necessary styling for line numbers\n var defaultLineNumberStyle = {\n display: 'inline-block',\n minWidth: getEmWidthOfNumber(largestLineNumber),\n paddingRight: '1em',\n textAlign: 'right',\n userSelect: 'none'\n }; // prep custom styling\n\n var customLineNumberStyle = typeof lineNumberStyle === 'function' ? lineNumberStyle(lineNumber) : lineNumberStyle; // combine\n\n var assembledStyle = _objectSpread({}, defaultLineNumberStyle, customLineNumberStyle);\n\n return assembledStyle;\n}\n\nfunction createLineElement(_ref3) {\n var children = _ref3.children,\n lineNumber = _ref3.lineNumber,\n lineNumberStyle = _ref3.lineNumberStyle,\n largestLineNumber = _ref3.largestLineNumber,\n showInlineLineNumbers = _ref3.showInlineLineNumbers,\n _ref3$lineProps = _ref3.lineProps,\n lineProps = _ref3$lineProps === void 0 ? {} : _ref3$lineProps,\n _ref3$className = _ref3.className,\n className = _ref3$className === void 0 ? [] : _ref3$className,\n showLineNumbers = _ref3.showLineNumbers,\n wrapLongLines = _ref3.wrapLongLines;\n var properties = typeof lineProps === 'function' ? lineProps(lineNumber) : lineProps;\n properties['className'] = className;\n\n if (lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n\n if (wrapLongLines & showLineNumbers) {\n properties.style = _objectSpread({}, properties.style, {\n display: 'flex'\n });\n }\n\n return {\n type: 'element',\n tagName: 'span',\n properties: properties,\n children: children\n };\n}\n\nfunction flattenCodeTree(tree) {\n var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var newTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n\n if (node.type === 'text') {\n newTree.push(createLineElement({\n children: [node],\n className: _toConsumableArray(new Set(className))\n }));\n } else if (node.children) {\n var classNames = className.concat(node.properties.className);\n newTree = newTree.concat(flattenCodeTree(node.children, classNames));\n }\n }\n\n return newTree;\n}\n\nfunction processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines) {\n var _ref4;\n\n var tree = flattenCodeTree(codeTree.value);\n var newTree = [];\n var lastLineBreakIndex = -1;\n var index = 0;\n\n function createWrappedLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return createLineElement({\n children: children,\n lineNumber: lineNumber,\n lineNumberStyle: lineNumberStyle,\n largestLineNumber: largestLineNumber,\n showInlineLineNumbers: showInlineLineNumbers,\n lineProps: lineProps,\n className: className,\n showLineNumbers: showLineNumbers,\n wrapLongLines: wrapLongLines\n });\n }\n\n function createUnwrappedLine(children, lineNumber) {\n if (showLineNumbers && lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n\n return children;\n }\n\n function createLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return wrapLines || className.length > 0 ? createWrappedLine(children, lineNumber, className) : createUnwrappedLine(children, lineNumber);\n }\n\n var _loop = function _loop() {\n var node = tree[index];\n var value = node.children[0].value;\n var newLines = getNewLines(value);\n\n if (newLines) {\n var splitValue = value.split('\\n');\n splitValue.forEach(function (text, i) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var newChild = {\n type: 'text',\n value: \"\".concat(text, \"\\n\")\n }; // if it's the first line\n\n if (i === 0) {\n var _children = tree.slice(lastLineBreakIndex + 1, index).concat(createLineElement({\n children: [newChild],\n className: node.properties.className\n }));\n\n var _line = createLine(_children, lineNumber);\n\n newTree.push(_line); // if it's the last line\n } else if (i === splitValue.length - 1) {\n var stringChild = tree[index + 1] && tree[index + 1].children && tree[index + 1].children[0];\n\n if (stringChild) {\n var lastLineInPreviousSpan = {\n type: 'text',\n value: \"\".concat(text)\n };\n var newElem = createLineElement({\n children: [lastLineInPreviousSpan],\n className: node.properties.className\n });\n tree.splice(index + 1, 0, newElem);\n } else {\n var _children2 = [newChild];\n\n var _line2 = createLine(_children2, lineNumber, node.properties.className);\n\n newTree.push(_line2);\n } // if it's neither the first nor the last line\n\n } else {\n var _children3 = [newChild];\n\n var _line3 = createLine(_children3, lineNumber, node.properties.className);\n\n newTree.push(_line3);\n }\n });\n lastLineBreakIndex = index;\n }\n\n index++;\n };\n\n while (index < tree.length) {\n _loop();\n }\n\n if (lastLineBreakIndex !== tree.length - 1) {\n var children = tree.slice(lastLineBreakIndex + 1, tree.length);\n\n if (children && children.length) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var line = createLine(children, lineNumber);\n newTree.push(line);\n }\n }\n\n return wrapLines ? newTree : (_ref4 = []).concat.apply(_ref4, newTree);\n}\n\nfunction defaultRenderer(_ref5) {\n var rows = _ref5.rows,\n stylesheet = _ref5.stylesheet,\n useInlineStyles = _ref5.useInlineStyles;\n return rows.map(function (node, i) {\n return createElement({\n node: node,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segement\".concat(i)\n });\n });\n} // only highlight.js has the highlightAuto method\n\n\nfunction isHighlightJs(astGenerator) {\n return astGenerator && typeof astGenerator.highlightAuto !== 'undefined';\n}\n\nfunction getCodeTree(_ref6) {\n var astGenerator = _ref6.astGenerator,\n language = _ref6.language,\n code = _ref6.code,\n defaultCodeValue = _ref6.defaultCodeValue; // figure out whether we're using lowlight/highlight or refractor/prism\n // then attempt highlighting accordingly\n // lowlight/highlight?\n\n if (isHighlightJs(astGenerator)) {\n var hasLanguage = checkForListedLanguage(astGenerator, language);\n\n if (language === 'text') {\n return {\n value: defaultCodeValue,\n language: 'text'\n };\n } else if (hasLanguage) {\n return astGenerator.highlight(language, code);\n } else {\n return astGenerator.highlightAuto(code);\n }\n } // must be refractor/prism, then\n\n\n try {\n return language && language !== 'text' ? {\n value: astGenerator.highlight(code, language)\n } : {\n value: defaultCodeValue\n };\n } catch (e) {\n return {\n value: defaultCodeValue\n };\n }\n}\n\nfunction highlight$1(defaultAstGenerator, defaultStyle) {\n return function SyntaxHighlighter(_ref7) {\n var language = _ref7.language,\n children = _ref7.children,\n _ref7$style = _ref7.style,\n style = _ref7$style === void 0 ? defaultStyle : _ref7$style,\n _ref7$customStyle = _ref7.customStyle,\n customStyle = _ref7$customStyle === void 0 ? {} : _ref7$customStyle,\n _ref7$codeTagProps = _ref7.codeTagProps,\n codeTagProps = _ref7$codeTagProps === void 0 ? {\n className: language ? \"language-\".concat(language) : undefined,\n style: _objectSpread({}, style['code[class*=\"language-\"]'], style[\"code[class*=\\\"language-\".concat(language, \"\\\"]\")])\n } : _ref7$codeTagProps,\n _ref7$useInlineStyles = _ref7.useInlineStyles,\n useInlineStyles = _ref7$useInlineStyles === void 0 ? true : _ref7$useInlineStyles,\n _ref7$showLineNumbers = _ref7.showLineNumbers,\n showLineNumbers = _ref7$showLineNumbers === void 0 ? false : _ref7$showLineNumbers,\n _ref7$showInlineLineN = _ref7.showInlineLineNumbers,\n showInlineLineNumbers = _ref7$showInlineLineN === void 0 ? true : _ref7$showInlineLineN,\n _ref7$startingLineNum = _ref7.startingLineNumber,\n startingLineNumber = _ref7$startingLineNum === void 0 ? 1 : _ref7$startingLineNum,\n lineNumberContainerStyle = _ref7.lineNumberContainerStyle,\n _ref7$lineNumberStyle = _ref7.lineNumberStyle,\n lineNumberStyle = _ref7$lineNumberStyle === void 0 ? {} : _ref7$lineNumberStyle,\n wrapLines = _ref7.wrapLines,\n _ref7$wrapLongLines = _ref7.wrapLongLines,\n wrapLongLines = _ref7$wrapLongLines === void 0 ? false : _ref7$wrapLongLines,\n _ref7$lineProps = _ref7.lineProps,\n lineProps = _ref7$lineProps === void 0 ? {} : _ref7$lineProps,\n renderer = _ref7.renderer,\n _ref7$PreTag = _ref7.PreTag,\n PreTag = _ref7$PreTag === void 0 ? 'pre' : _ref7$PreTag,\n _ref7$CodeTag = _ref7.CodeTag,\n CodeTag = _ref7$CodeTag === void 0 ? 'code' : _ref7$CodeTag,\n _ref7$code = _ref7.code,\n code = _ref7$code === void 0 ? Array.isArray(children) ? children[0] : children : _ref7$code,\n astGenerator = _ref7.astGenerator,\n rest = _objectWithoutProperties(_ref7, [\"language\", \"children\", \"style\", \"customStyle\", \"codeTagProps\", \"useInlineStyles\", \"showLineNumbers\", \"showInlineLineNumbers\", \"startingLineNumber\", \"lineNumberContainerStyle\", \"lineNumberStyle\", \"wrapLines\", \"wrapLongLines\", \"lineProps\", \"renderer\", \"PreTag\", \"CodeTag\", \"code\", \"astGenerator\"]);\n\n astGenerator = astGenerator || defaultAstGenerator;\n var allLineNumbers = showLineNumbers ? React__default.createElement(AllLineNumbers, {\n containerStyle: lineNumberContainerStyle,\n codeStyle: codeTagProps.style || {},\n numberStyle: lineNumberStyle,\n startingLineNumber: startingLineNumber,\n codeString: code\n }) : null;\n var defaultPreStyle = style.hljs || style['pre[class*=\"language-\"]'] || {\n backgroundColor: '#fff'\n };\n var generatorClassName = isHighlightJs(astGenerator) ? 'hljs' : 'prismjs';\n var preProps = useInlineStyles ? Object.assign({}, rest, {\n style: Object.assign({}, defaultPreStyle, customStyle)\n }) : Object.assign({}, rest, {\n className: rest.className ? \"\".concat(generatorClassName, \" \").concat(rest.className) : generatorClassName,\n style: Object.assign({}, customStyle)\n });\n\n if (!astGenerator) {\n return React__default.createElement(PreTag, preProps, allLineNumbers, React__default.createElement(CodeTag, codeTagProps, code));\n }\n /*\n * Some custom renderers rely on individual row elements so we need to turn wrapLines on\n * if renderer is provided and wrapLines is undefined.\n */\n\n\n if (wrapLines === undefined && renderer || wrapLongLines) wrapLines = true;\n renderer = renderer || defaultRenderer;\n var defaultCodeValue = [{\n type: 'text',\n value: code\n }];\n var codeTree = getCodeTree({\n astGenerator: astGenerator,\n language: language,\n code: code,\n defaultCodeValue: defaultCodeValue\n });\n\n if (codeTree.language === null) {\n codeTree.value = defaultCodeValue;\n } // determine largest line number so that we can force minWidth on all linenumber elements\n\n\n var largestLineNumber = codeTree.value.length + startingLineNumber;\n var rows = processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines);\n\n if (wrapLongLines) {\n codeTagProps.style = _objectSpread({}, codeTagProps.style, {\n whiteSpace: 'pre-wrap'\n });\n } else {\n codeTagProps.style = _objectSpread({}, codeTagProps.style, {\n whiteSpace: 'pre'\n });\n }\n\n return React__default.createElement(PreTag, preProps, React__default.createElement(CodeTag, codeTagProps, !showInlineLineNumbers && allLineNumbers, renderer({\n rows: rows,\n stylesheet: style,\n useInlineStyles: useInlineStyles\n })));\n };\n}\n\nvar immutable = extend;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {};\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}\n\nvar schema$1 = Schema$2;\nvar proto$1 = Schema$2.prototype;\nproto$1.space = null;\nproto$1.normal = {};\nproto$1.property = {};\n\nfunction Schema$2(property, normal, space) {\n this.property = property;\n this.normal = normal;\n\n if (space) {\n this.space = space;\n }\n}\n\nvar xtend = immutable;\nvar Schema$1 = schema$1;\nvar merge_1 = merge$1;\n\nfunction merge$1(definitions) {\n var length = definitions.length;\n var property = [];\n var normal = [];\n var index = -1;\n var info;\n var space;\n\n while (++index < length) {\n info = definitions[index];\n property.push(info.property);\n normal.push(info.normal);\n space = info.space;\n }\n\n return new Schema$1(xtend.apply(null, property), xtend.apply(null, normal), space);\n}\n\nvar normalize_1 = normalize$3;\n\nfunction normalize$3(value) {\n return value.toLowerCase();\n}\n\nvar info = Info$2;\nvar proto = Info$2.prototype;\nproto.space = null;\nproto.attribute = null;\nproto.property = null;\nproto.boolean = false;\nproto.booleanish = false;\nproto.overloadedBoolean = false;\nproto.number = false;\nproto.commaSeparated = false;\nproto.spaceSeparated = false;\nproto.commaOrSpaceSeparated = false;\nproto.mustUseProperty = false;\nproto.defined = false;\n\nfunction Info$2(property, attribute) {\n this.property = property;\n this.attribute = attribute;\n}\n\nvar types$3 = {};\nvar powers = 0;\ntypes$3.boolean = increment();\ntypes$3.booleanish = increment();\ntypes$3.overloadedBoolean = increment();\ntypes$3.number = increment();\ntypes$3.spaceSeparated = increment();\ntypes$3.commaSeparated = increment();\ntypes$3.commaOrSpaceSeparated = increment();\n\nfunction increment() {\n return Math.pow(2, ++powers);\n}\n\nvar Info$1 = info;\nvar types$2 = types$3;\nvar definedInfo = DefinedInfo$2;\nDefinedInfo$2.prototype = new Info$1();\nDefinedInfo$2.prototype.defined = true;\nvar checks = ['boolean', 'booleanish', 'overloadedBoolean', 'number', 'commaSeparated', 'spaceSeparated', 'commaOrSpaceSeparated'];\nvar checksLength = checks.length;\n\nfunction DefinedInfo$2(property, attribute, mask, space) {\n var index = -1;\n var check;\n mark(this, 'space', space);\n Info$1.call(this, property, attribute);\n\n while (++index < checksLength) {\n check = checks[index];\n mark(this, check, (mask & types$2[check]) === types$2[check]);\n }\n}\n\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value;\n }\n}\n\nvar normalize$2 = normalize_1;\nvar Schema = schema$1;\nvar DefinedInfo$1 = definedInfo;\nvar create_1 = create$5;\n\nfunction create$5(definition) {\n var space = definition.space;\n var mustUseProperty = definition.mustUseProperty || [];\n var attributes = definition.attributes || {};\n var props = definition.properties;\n var transform = definition.transform;\n var property = {};\n var normal = {};\n var prop;\n var info;\n\n for (prop in props) {\n info = new DefinedInfo$1(prop, transform(attributes, prop), props[prop], space);\n\n if (mustUseProperty.indexOf(prop) !== -1) {\n info.mustUseProperty = true;\n }\n\n property[prop] = info;\n normal[normalize$2(prop)] = prop;\n normal[normalize$2(info.attribute)] = prop;\n }\n\n return new Schema(property, normal, space);\n}\n\nvar create$4 = create_1;\nvar xlink$1 = create$4({\n space: 'xlink',\n transform: xlinkTransform,\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n});\n\nfunction xlinkTransform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase();\n}\n\nvar create$3 = create_1;\nvar xml$1 = create$3({\n space: 'xml',\n transform: xmlTransform,\n properties: {\n xmlLang: null,\n xmlBase: null,\n xmlSpace: null\n }\n});\n\nfunction xmlTransform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase();\n}\n\nvar caseSensitiveTransform_1 = caseSensitiveTransform$1;\n\nfunction caseSensitiveTransform$1(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute;\n}\n\nvar caseSensitiveTransform = caseSensitiveTransform_1;\nvar caseInsensitiveTransform_1 = caseInsensitiveTransform$2;\n\nfunction caseInsensitiveTransform$2(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase());\n}\n\nvar create$2 = create_1;\nvar caseInsensitiveTransform$1 = caseInsensitiveTransform_1;\nvar xmlns$1 = create$2({\n space: 'xmlns',\n attributes: {\n xmlnsxlink: 'xmlns:xlink'\n },\n transform: caseInsensitiveTransform$1,\n properties: {\n xmlns: null,\n xmlnsXLink: null\n }\n});\nvar types$1 = types$3;\nvar create$1 = create_1;\nvar booleanish$1 = types$1.booleanish;\nvar number$1 = types$1.number;\nvar spaceSeparated$1 = types$1.spaceSeparated;\nvar aria$1 = create$1({\n transform: ariaTransform,\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish$1,\n ariaAutoComplete: null,\n ariaBusy: booleanish$1,\n ariaChecked: booleanish$1,\n ariaColCount: number$1,\n ariaColIndex: number$1,\n ariaColSpan: number$1,\n ariaControls: spaceSeparated$1,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated$1,\n ariaDetails: null,\n ariaDisabled: booleanish$1,\n ariaDropEffect: spaceSeparated$1,\n ariaErrorMessage: null,\n ariaExpanded: booleanish$1,\n ariaFlowTo: spaceSeparated$1,\n ariaGrabbed: booleanish$1,\n ariaHasPopup: null,\n ariaHidden: booleanish$1,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated$1,\n ariaLevel: number$1,\n ariaLive: null,\n ariaModal: booleanish$1,\n ariaMultiLine: booleanish$1,\n ariaMultiSelectable: booleanish$1,\n ariaOrientation: null,\n ariaOwns: spaceSeparated$1,\n ariaPlaceholder: null,\n ariaPosInSet: number$1,\n ariaPressed: booleanish$1,\n ariaReadOnly: booleanish$1,\n ariaRelevant: null,\n ariaRequired: booleanish$1,\n ariaRoleDescription: spaceSeparated$1,\n ariaRowCount: number$1,\n ariaRowIndex: number$1,\n ariaRowSpan: number$1,\n ariaSelected: booleanish$1,\n ariaSetSize: number$1,\n ariaSort: null,\n ariaValueMax: number$1,\n ariaValueMin: number$1,\n ariaValueNow: number$1,\n ariaValueText: null,\n role: null\n }\n});\n\nfunction ariaTransform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase();\n}\n\nvar types = types$3;\nvar create = create_1;\nvar caseInsensitiveTransform = caseInsensitiveTransform_1;\nvar boolean = types.boolean;\nvar overloadedBoolean = types.overloadedBoolean;\nvar booleanish = types.booleanish;\nvar number = types.number;\nvar spaceSeparated = types.spaceSeparated;\nvar commaSeparated = types.commaSeparated;\nvar html$2 = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: commaSeparated,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextMenu: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: commaSeparated,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null,\n // Several. Use CSS `text-align` instead,\n aLink: null,\n // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated,\n // `<object>`. List of URIs to archives\n axis: null,\n // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null,\n // `<body>`. Use CSS `background-image` instead\n bgColor: null,\n // `<body>` and table elements. Use CSS `background-color` instead\n border: number,\n // `<table>`. Use CSS `border-width` instead,\n borderColor: null,\n // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number,\n // `<body>`\n cellPadding: null,\n // `<table>`\n cellSpacing: null,\n // `<table>`\n char: null,\n // Several table elements. When `align=char`, sets the character to align on\n charOff: null,\n // Several table elements. When `char`, offsets the alignment\n classId: null,\n // `<object>`\n clear: null,\n // `<br>`. Use CSS `clear` instead\n code: null,\n // `<object>`\n codeBase: null,\n // `<object>`\n codeType: null,\n // `<object>`\n color: null,\n // `<font>` and `<hr>`. Use CSS instead\n compact: boolean,\n // Lists. Use CSS to reduce space between items instead\n declare: boolean,\n // `<object>`\n event: null,\n // `<script>`\n face: null,\n // `<font>`. Use CSS instead\n frame: null,\n // `<table>`\n frameBorder: null,\n // `<iframe>`. Use CSS `border` instead\n hSpace: number,\n // `<img>` and `<object>`\n leftMargin: number,\n // `<body>`\n link: null,\n // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null,\n // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null,\n // `<img>`. Use a `<picture>`\n marginHeight: number,\n // `<body>`\n marginWidth: number,\n // `<body>`\n noResize: boolean,\n // `<frame>`\n noHref: boolean,\n // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean,\n // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean,\n // `<td>` and `<th>`\n object: null,\n // `<applet>`\n profile: null,\n // `<head>`\n prompt: null,\n // `<isindex>`\n rev: null,\n // `<link>`\n rightMargin: number,\n // `<body>`\n rules: null,\n // `<table>`\n scheme: null,\n // `<meta>`\n scrolling: booleanish,\n // `<frame>`. Use overflow in the child context\n standby: null,\n // `<object>`\n summary: null,\n // `<table>`\n text: null,\n // `<body>`. Use CSS `color` instead\n topMargin: number,\n // `<body>`\n valueType: null,\n // `<param>`\n version: null,\n // `<html>`. Use a doctype.\n vAlign: null,\n // Several. Use CSS `vertical-align` instead\n vLink: null,\n // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number,\n // `<img>` and `<object>`\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n});\nvar merge = merge_1;\nvar xlink = xlink$1;\nvar xml = xml$1;\nvar xmlns = xmlns$1;\nvar aria = aria$1;\nvar html$1 = html$2;\nvar html_1$1 = merge([xml, xlink, xmlns, aria, html$1]);\nvar normalize$1 = normalize_1;\nvar DefinedInfo = definedInfo;\nvar Info = info;\nvar data = 'data';\nvar find_1 = find$1;\nvar valid = /^data[-\\w.:]+$/i;\nvar dash$1 = /-[a-z]/g;\nvar cap$1 = /[A-Z]/g;\n\nfunction find$1(schema, value) {\n var normal = normalize$1(value);\n var prop = value;\n var Type = Info;\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]];\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === data && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n prop = datasetToProperty(value);\n } else {\n value = datasetToAttribute(value);\n }\n\n Type = DefinedInfo;\n }\n\n return new Type(prop, value);\n}\n\nfunction datasetToProperty(attribute) {\n var value = attribute.slice(5).replace(dash$1, camelcase);\n return data + value.charAt(0).toUpperCase() + value.slice(1);\n}\n\nfunction datasetToAttribute(property) {\n var value = property.slice(4);\n\n if (dash$1.test(value)) {\n return property;\n }\n\n value = value.replace(cap$1, kebab);\n\n if (value.charAt(0) !== '-') {\n value = '-' + value;\n }\n\n return data + value;\n}\n\nfunction kebab($0) {\n return '-' + $0.toLowerCase();\n}\n\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase();\n}\n\nvar hastUtilParseSelector = parse$3;\nvar search = /[#.]/g; // Create a hast element from a simple CSS selector.\n\nfunction parse$3(selector, defaultTagName) {\n var value = selector || '';\n var name = defaultTagName || 'div';\n var props = {};\n var start = 0;\n var subvalue;\n var previous;\n var match;\n\n while (start < value.length) {\n search.lastIndex = start;\n match = search.exec(value);\n subvalue = value.slice(start, match ? match.index : value.length);\n\n if (subvalue) {\n if (!previous) {\n name = subvalue;\n } else if (previous === '#') {\n props.id = subvalue;\n } else if (props.className) {\n props.className.push(subvalue);\n } else {\n props.className = [subvalue];\n }\n\n start += subvalue.length;\n }\n\n if (match) {\n previous = match[0];\n start++;\n }\n }\n\n return {\n type: 'element',\n tagName: name,\n properties: props,\n children: []\n };\n}\n\nvar spaceSeparatedTokens = {};\nspaceSeparatedTokens.parse = parse$2;\nspaceSeparatedTokens.stringify = stringify$2;\nvar empty$2 = '';\nvar space$2 = ' ';\nvar whiteSpace = /[ \\t\\n\\r\\f]+/g;\n\nfunction parse$2(value) {\n var input = String(value || empty$2).trim();\n return input === empty$2 ? [] : input.split(whiteSpace);\n}\n\nfunction stringify$2(values) {\n return values.join(space$2).trim();\n}\n\nvar commaSeparatedTokens = {};\ncommaSeparatedTokens.parse = parse$1;\ncommaSeparatedTokens.stringify = stringify$1;\nvar comma$1 = ',';\nvar space$1 = ' ';\nvar empty$1 = ''; // Parse comma-separated tokens to an array.\n\nfunction parse$1(value) {\n var values = [];\n var input = String(value || empty$1);\n var index = input.indexOf(comma$1);\n var lastIndex = 0;\n var end = false;\n var val;\n\n while (!end) {\n if (index === -1) {\n index = input.length;\n end = true;\n }\n\n val = input.slice(lastIndex, index).trim();\n\n if (val || !end) {\n values.push(val);\n }\n\n lastIndex = index + 1;\n index = input.indexOf(comma$1, lastIndex);\n }\n\n return values;\n} // Compile an array to comma-separated tokens.\n// `options.padLeft` (default: `true`) pads a space left of each token, and\n// `options.padRight` (default: `false`) pads a space to the right of each token.\n\n\nfunction stringify$1(values, options) {\n var settings = options || {};\n var left = settings.padLeft === false ? empty$1 : space$1;\n var right = settings.padRight ? space$1 : empty$1; // Ensure the last empty entry is seen.\n\n if (values[values.length - 1] === empty$1) {\n values = values.concat(empty$1);\n }\n\n return values.join(right + comma$1 + left).trim();\n}\n\nvar find = find_1;\nvar normalize = normalize_1;\nvar parseSelector = hastUtilParseSelector;\nvar spaces = spaceSeparatedTokens.parse;\nvar commas = commaSeparatedTokens.parse;\nvar factory_1 = factory$1;\nvar own$3 = {}.hasOwnProperty;\n\nfunction factory$1(schema, defaultTagName, caseSensitive) {\n var adjust = caseSensitive ? createAdjustMap(caseSensitive) : null;\n return h; // Hyperscript compatible DSL for creating virtual hast trees.\n\n function h(selector, properties) {\n var node = parseSelector(selector, defaultTagName);\n var children = Array.prototype.slice.call(arguments, 2);\n var name = node.tagName.toLowerCase();\n var property;\n node.tagName = adjust && own$3.call(adjust, name) ? adjust[name] : name;\n\n if (properties && isChildren(properties, node)) {\n children.unshift(properties);\n properties = null;\n }\n\n if (properties) {\n for (property in properties) {\n addProperty(node.properties, property, properties[property]);\n }\n }\n\n addChild(node.children, children);\n\n if (node.tagName === 'template') {\n node.content = {\n type: 'root',\n children: node.children\n };\n node.children = [];\n }\n\n return node;\n }\n\n function addProperty(properties, key, value) {\n var info;\n var property;\n var result; // Ignore nullish and NaN values.\n\n if (value === null || value === undefined || value !== value) {\n return;\n }\n\n info = find(schema, key);\n property = info.property;\n result = value; // Handle list values.\n\n if (typeof result === 'string') {\n if (info.spaceSeparated) {\n result = spaces(result);\n } else if (info.commaSeparated) {\n result = commas(result);\n } else if (info.commaOrSpaceSeparated) {\n result = spaces(commas(result).join(' '));\n }\n } // Accept `object` on style.\n\n\n if (property === 'style' && typeof value !== 'string') {\n result = style(result);\n } // Class-names (which can be added both on the `selector` and here).\n\n\n if (property === 'className' && properties.className) {\n result = properties.className.concat(result);\n }\n\n properties[property] = parsePrimitives(info, property, result);\n }\n}\n\nfunction isChildren(value, node) {\n return typeof value === 'string' || 'length' in value || isNode(node.tagName, value);\n}\n\nfunction isNode(tagName, value) {\n var type = value.type;\n\n if (tagName === 'input' || !type || typeof type !== 'string') {\n return false;\n }\n\n if (_typeof(value.children) === 'object' && 'length' in value.children) {\n return true;\n }\n\n type = type.toLowerCase();\n\n if (tagName === 'button') {\n return type !== 'menu' && type !== 'submit' && type !== 'reset' && type !== 'button';\n }\n\n return 'value' in value;\n}\n\nfunction addChild(nodes, value) {\n var index;\n var length;\n\n if (typeof value === 'string' || typeof value === 'number') {\n nodes.push({\n type: 'text',\n value: String(value)\n });\n return;\n }\n\n if (_typeof(value) === 'object' && 'length' in value) {\n index = -1;\n length = value.length;\n\n while (++index < length) {\n addChild(nodes, value[index]);\n }\n\n return;\n }\n\n if (_typeof(value) !== 'object' || !('type' in value)) {\n throw new Error('Expected node, nodes, or string, got `' + value + '`');\n }\n\n nodes.push(value);\n} // Parse a (list of) primitives.\n\n\nfunction parsePrimitives(info, name, value) {\n var index;\n var length;\n var result;\n\n if (_typeof(value) !== 'object' || !('length' in value)) {\n return parsePrimitive(info, name, value);\n }\n\n length = value.length;\n index = -1;\n result = [];\n\n while (++index < length) {\n result[index] = parsePrimitive(info, name, value[index]);\n }\n\n return result;\n} // Parse a single primitives.\n\n\nfunction parsePrimitive(info, name, value) {\n var result = value;\n\n if (info.number || info.positiveNumber) {\n if (!isNaN(result) && result !== '') {\n result = Number(result);\n }\n } else if (info.boolean || info.overloadedBoolean) {\n // Accept `boolean` and `string`.\n if (typeof result === 'string' && (result === '' || normalize(value) === normalize(name))) {\n result = true;\n }\n }\n\n return result;\n}\n\nfunction style(value) {\n var result = [];\n var key;\n\n for (key in value) {\n result.push([key, value[key]].join(': '));\n }\n\n return result.join('; ');\n}\n\nfunction createAdjustMap(values) {\n var length = values.length;\n var index = -1;\n var result = {};\n var value;\n\n while (++index < length) {\n value = values[index];\n result[value.toLowerCase()] = value;\n }\n\n return result;\n}\n\nvar schema = html_1$1;\nvar factory = factory_1;\nvar html = factory(schema, 'div');\nhtml.displayName = 'html';\nvar html_1 = html;\nvar hastscript = html_1;\nvar AElig$1 = \"Æ\";\nvar AMP$1 = \"&\";\nvar Aacute$1 = \"Á\";\nvar Acirc$1 = \"Â\";\nvar Agrave$1 = \"À\";\nvar Aring$1 = \"Å\";\nvar Atilde$1 = \"Ã\";\nvar Auml$1 = \"Ä\";\nvar COPY$1 = \"©\";\nvar Ccedil$1 = \"Ç\";\nvar ETH$1 = \"Ð\";\nvar Eacute$1 = \"É\";\nvar Ecirc$1 = \"Ê\";\nvar Egrave$1 = \"È\";\nvar Euml$1 = \"Ë\";\nvar GT$1 = \">\";\nvar Iacute$1 = \"Í\";\nvar Icirc$1 = \"Î\";\nvar Igrave$1 = \"Ì\";\nvar Iuml$1 = \"Ï\";\nvar LT$1 = \"<\";\nvar Ntilde$1 = \"Ñ\";\nvar Oacute$1 = \"Ó\";\nvar Ocirc$1 = \"Ô\";\nvar Ograve$1 = \"Ò\";\nvar Oslash$1 = \"Ø\";\nvar Otilde$1 = \"Õ\";\nvar Ouml$1 = \"Ö\";\nvar QUOT$1 = \"\\\"\";\nvar REG$1 = \"®\";\nvar THORN$1 = \"Þ\";\nvar Uacute$1 = \"Ú\";\nvar Ucirc$1 = \"Û\";\nvar Ugrave$1 = \"Ù\";\nvar Uuml$1 = \"Ü\";\nvar Yacute$1 = \"Ý\";\nvar aacute$1 = \"á\";\nvar acirc$1 = \"â\";\nvar acute$1 = \"´\";\nvar aelig$1 = \"æ\";\nvar agrave$1 = \"à\";\nvar amp$1 = \"&\";\nvar aring$1 = \"å\";\nvar atilde$1 = \"ã\";\nvar auml$1 = \"ä\";\nvar brvbar$1 = \"¦\";\nvar ccedil$1 = \"ç\";\nvar cedil$1 = \"¸\";\nvar cent$1 = \"¢\";\nvar copy$1 = \"©\";\nvar curren$1 = \"¤\";\nvar deg$1 = \"°\";\nvar divide$1 = \"÷\";\nvar eacute$1 = \"é\";\nvar ecirc$1 = \"ê\";\nvar egrave$1 = \"è\";\nvar eth$1 = \"ð\";\nvar euml$1 = \"ë\";\nvar frac12$1 = \"½\";\nvar frac14$1 = \"¼\";\nvar frac34$1 = \"¾\";\nvar gt$1 = \">\";\nvar iacute$1 = \"í\";\nvar icirc$1 = \"î\";\nvar iexcl$1 = \"¡\";\nvar igrave$1 = \"ì\";\nvar iquest$1 = \"¿\";\nvar iuml$1 = \"ï\";\nvar laquo$1 = \"«\";\nvar lt$1 = \"<\";\nvar macr$1 = \"¯\";\nvar micro$1 = \"µ\";\nvar middot$1 = \"·\";\nvar nbsp$1 = \" \";\nvar not$1 = \"¬\";\nvar ntilde$1 = \"ñ\";\nvar oacute$1 = \"ó\";\nvar ocirc$1 = \"ô\";\nvar ograve$1 = \"ò\";\nvar ordf$1 = \"ª\";\nvar ordm$1 = \"º\";\nvar oslash$1 = \"ø\";\nvar otilde$1 = \"õ\";\nvar ouml$1 = \"ö\";\nvar para$1 = \"¶\";\nvar plusmn$1 = \"±\";\nvar pound$1 = \"£\";\nvar quot$1 = \"\\\"\";\nvar raquo$1 = \"»\";\nvar reg$1 = \"®\";\nvar sect$1 = \"§\";\nvar shy$1 = \"\";\nvar sup1$1 = \"¹\";\nvar sup2$1 = \"²\";\nvar sup3$1 = \"³\";\nvar szlig$1 = \"ß\";\nvar thorn$1 = \"þ\";\nvar times$1 = \"×\";\nvar uacute$1 = \"ú\";\nvar ucirc$1 = \"û\";\nvar ugrave$1 = \"ù\";\nvar uml$1 = \"¨\";\nvar uuml$1 = \"ü\";\nvar yacute$1 = \"ý\";\nvar yen$1 = \"¥\";\nvar yuml$1 = \"ÿ\";\nvar require$$0$1 = {\n AElig: AElig$1,\n AMP: AMP$1,\n Aacute: Aacute$1,\n Acirc: Acirc$1,\n Agrave: Agrave$1,\n Aring: Aring$1,\n Atilde: Atilde$1,\n Auml: Auml$1,\n COPY: COPY$1,\n Ccedil: Ccedil$1,\n ETH: ETH$1,\n Eacute: Eacute$1,\n Ecirc: Ecirc$1,\n Egrave: Egrave$1,\n Euml: Euml$1,\n GT: GT$1,\n Iacute: Iacute$1,\n Icirc: Icirc$1,\n Igrave: Igrave$1,\n Iuml: Iuml$1,\n LT: LT$1,\n Ntilde: Ntilde$1,\n Oacute: Oacute$1,\n Ocirc: Ocirc$1,\n Ograve: Ograve$1,\n Oslash: Oslash$1,\n Otilde: Otilde$1,\n Ouml: Ouml$1,\n QUOT: QUOT$1,\n REG: REG$1,\n THORN: THORN$1,\n Uacute: Uacute$1,\n Ucirc: Ucirc$1,\n Ugrave: Ugrave$1,\n Uuml: Uuml$1,\n Yacute: Yacute$1,\n aacute: aacute$1,\n acirc: acirc$1,\n acute: acute$1,\n aelig: aelig$1,\n agrave: agrave$1,\n amp: amp$1,\n aring: aring$1,\n atilde: atilde$1,\n auml: auml$1,\n brvbar: brvbar$1,\n ccedil: ccedil$1,\n cedil: cedil$1,\n cent: cent$1,\n copy: copy$1,\n curren: curren$1,\n deg: deg$1,\n divide: divide$1,\n eacute: eacute$1,\n ecirc: ecirc$1,\n egrave: egrave$1,\n eth: eth$1,\n euml: euml$1,\n frac12: frac12$1,\n frac14: frac14$1,\n frac34: frac34$1,\n gt: gt$1,\n iacute: iacute$1,\n icirc: icirc$1,\n iexcl: iexcl$1,\n igrave: igrave$1,\n iquest: iquest$1,\n iuml: iuml$1,\n laquo: laquo$1,\n lt: lt$1,\n macr: macr$1,\n micro: micro$1,\n middot: middot$1,\n nbsp: nbsp$1,\n not: not$1,\n ntilde: ntilde$1,\n oacute: oacute$1,\n ocirc: ocirc$1,\n ograve: ograve$1,\n ordf: ordf$1,\n ordm: ordm$1,\n oslash: oslash$1,\n otilde: otilde$1,\n ouml: ouml$1,\n para: para$1,\n plusmn: plusmn$1,\n pound: pound$1,\n quot: quot$1,\n raquo: raquo$1,\n reg: reg$1,\n sect: sect$1,\n shy: shy$1,\n sup1: sup1$1,\n sup2: sup2$1,\n sup3: sup3$1,\n szlig: szlig$1,\n thorn: thorn$1,\n times: times$1,\n uacute: uacute$1,\n ucirc: ucirc$1,\n ugrave: ugrave$1,\n uml: uml$1,\n uuml: uuml$1,\n yacute: yacute$1,\n yen: yen$1,\n yuml: yuml$1\n};\nvar require$$1 = {\n \"0\": \"�\",\n \"128\": \"€\",\n \"130\": \"‚\",\n \"131\": \"ƒ\",\n \"132\": \"„\",\n \"133\": \"…\",\n \"134\": \"†\",\n \"135\": \"‡\",\n \"136\": \"ˆ\",\n \"137\": \"‰\",\n \"138\": \"Š\",\n \"139\": \"‹\",\n \"140\": \"Œ\",\n \"142\": \"Ž\",\n \"145\": \"‘\",\n \"146\": \"’\",\n \"147\": \"“\",\n \"148\": \"”\",\n \"149\": \"•\",\n \"150\": \"–\",\n \"151\": \"—\",\n \"152\": \"˜\",\n \"153\": \"™\",\n \"154\": \"š\",\n \"155\": \"›\",\n \"156\": \"œ\",\n \"158\": \"ž\",\n \"159\": \"Ÿ\"\n};\nvar isDecimal = decimal$2; // Check if the given character code, or the character code at the first\n// character, is decimal.\n\nfunction decimal$2(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character;\n return code >= 48 && code <= 57;\n /* 0-9 */\n}\n\nvar isHexadecimal = hexadecimal$1; // Check if the given character code, or the character code at the first\n// character, is hexadecimal.\n\nfunction hexadecimal$1(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character;\n return code >= 97\n /* a */\n && code <= 102\n /* z */\n || code >= 65\n /* A */\n && code <= 70\n /* Z */\n || code >= 48\n /* A */\n && code <= 57\n /* Z */\n ;\n}\n\nvar isAlphabetical = alphabetical$1; // Check if the given character code, or the character code at the first\n// character, is alphabetical.\n\nfunction alphabetical$1(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character;\n return code >= 97 && code <= 122\n /* a-z */\n || code >= 65 && code <= 90\n /* A-Z */\n ;\n}\n\nvar alphabetical = isAlphabetical;\nvar decimal$1 = isDecimal;\nvar isAlphanumerical = alphanumerical$1; // Check if the given character code, or the character code at the first\n// character, is alphanumerical.\n\nfunction alphanumerical$1(character) {\n return alphabetical(character) || decimal$1(character);\n}\n\nvar AEli = \"Æ\";\nvar AElig = \"Æ\";\nvar AM = \"&\";\nvar AMP = \"&\";\nvar Aacut = \"Á\";\nvar Aacute = \"Á\";\nvar Abreve = \"Ă\";\nvar Acir = \"Â\";\nvar Acirc = \"Â\";\nvar Acy = \"А\";\nvar Afr = \"𝔄\";\nvar Agrav = \"À\";\nvar Agrave = \"À\";\nvar Alpha = \"Α\";\nvar Amacr = \"Ā\";\nvar And = \"⩓\";\nvar Aogon = \"Ą\";\nvar Aopf = \"𝔸\";\nvar ApplyFunction = \"\";\nvar Arin = \"Å\";\nvar Aring = \"Å\";\nvar Ascr = \"𝒜\";\nvar Assign = \"≔\";\nvar Atild = \"Ã\";\nvar Atilde = \"Ã\";\nvar Aum = \"Ä\";\nvar Auml = \"Ä\";\nvar Backslash = \"∖\";\nvar Barv = \"⫧\";\nvar Barwed = \"⌆\";\nvar Bcy = \"Б\";\nvar Because = \"∵\";\nvar Bernoullis = \"ℬ\";\nvar Beta = \"Β\";\nvar Bfr = \"𝔅\";\nvar Bopf = \"𝔹\";\nvar Breve = \"˘\";\nvar Bscr = \"ℬ\";\nvar Bumpeq = \"≎\";\nvar CHcy = \"Ч\";\nvar COP = \"©\";\nvar COPY = \"©\";\nvar Cacute = \"Ć\";\nvar Cap = \"⋒\";\nvar CapitalDifferentialD = \"ⅅ\";\nvar Cayleys = \"ℭ\";\nvar Ccaron = \"Č\";\nvar Ccedi = \"Ç\";\nvar Ccedil = \"Ç\";\nvar Ccirc = \"Ĉ\";\nvar Cconint = \"∰\";\nvar Cdot = \"Ċ\";\nvar Cedilla = \"¸\";\nvar CenterDot = \"·\";\nvar Cfr = \"ℭ\";\nvar Chi = \"Χ\";\nvar CircleDot = \"⊙\";\nvar CircleMinus = \"⊖\";\nvar CirclePlus = \"⊕\";\nvar CircleTimes = \"⊗\";\nvar ClockwiseContourIntegral = \"∲\";\nvar CloseCurlyDoubleQuote = \"”\";\nvar CloseCurlyQuote = \"’\";\nvar Colon = \"∷\";\nvar Colone = \"⩴\";\nvar Congruent = \"≡\";\nvar Conint = \"∯\";\nvar ContourIntegral = \"∮\";\nvar Copf = \"ℂ\";\nvar Coproduct = \"∐\";\nvar CounterClockwiseContourIntegral = \"∳\";\nvar Cross = \"⨯\";\nvar Cscr = \"𝒞\";\nvar Cup = \"⋓\";\nvar CupCap = \"≍\";\nvar DD = \"ⅅ\";\nvar DDotrahd = \"⤑\";\nvar DJcy = \"Ђ\";\nvar DScy = \"Ѕ\";\nvar DZcy = \"Џ\";\nvar Dagger = \"‡\";\nvar Darr = \"↡\";\nvar Dashv = \"⫤\";\nvar Dcaron = \"Ď\";\nvar Dcy = \"Д\";\nvar Del = \"∇\";\nvar Delta = \"Δ\";\nvar Dfr = \"𝔇\";\nvar DiacriticalAcute = \"´\";\nvar DiacriticalDot = \"˙\";\nvar DiacriticalDoubleAcute = \"˝\";\nvar DiacriticalGrave = \"`\";\nvar DiacriticalTilde = \"˜\";\nvar Diamond = \"⋄\";\nvar DifferentialD = \"ⅆ\";\nvar Dopf = \"𝔻\";\nvar Dot = \"¨\";\nvar DotDot = \"⃜\";\nvar DotEqual = \"≐\";\nvar DoubleContourIntegral = \"∯\";\nvar DoubleDot = \"¨\";\nvar DoubleDownArrow = \"⇓\";\nvar DoubleLeftArrow = \"⇐\";\nvar DoubleLeftRightArrow = \"⇔\";\nvar DoubleLeftTee = \"⫤\";\nvar DoubleLongLeftArrow = \"⟸\";\nvar DoubleLongLeftRightArrow = \"⟺\";\nvar DoubleLongRightArrow = \"⟹\";\nvar DoubleRightArrow = \"⇒\";\nvar DoubleRightTee = \"⊨\";\nvar DoubleUpArrow = \"⇑\";\nvar DoubleUpDownArrow = \"⇕\";\nvar DoubleVerticalBar = \"∥\";\nvar DownArrow = \"↓\";\nvar DownArrowBar = \"⤓\";\nvar DownArrowUpArrow = \"⇵\";\nvar DownBreve = \"̑\";\nvar DownLeftRightVector = \"⥐\";\nvar DownLeftTeeVector = \"⥞\";\nvar DownLeftVector = \"↽\";\nvar DownLeftVectorBar = \"⥖\";\nvar DownRightTeeVector = \"⥟\";\nvar DownRightVector = \"⇁\";\nvar DownRightVectorBar = \"⥗\";\nvar DownTee = \"⊤\";\nvar DownTeeArrow = \"↧\";\nvar Downarrow = \"⇓\";\nvar Dscr = \"𝒟\";\nvar Dstrok = \"Đ\";\nvar ENG = \"Ŋ\";\nvar ET = \"Ð\";\nvar ETH = \"Ð\";\nvar Eacut = \"É\";\nvar Eacute = \"É\";\nvar Ecaron = \"Ě\";\nvar Ecir = \"Ê\";\nvar Ecirc = \"Ê\";\nvar Ecy = \"Э\";\nvar Edot = \"Ė\";\nvar Efr = \"𝔈\";\nvar Egrav = \"È\";\nvar Egrave = \"È\";\nvar Element = \"∈\";\nvar Emacr = \"Ē\";\nvar EmptySmallSquare = \"◻\";\nvar EmptyVerySmallSquare = \"▫\";\nvar Eogon = \"Ę\";\nvar Eopf = \"𝔼\";\nvar Epsilon = \"Ε\";\nvar Equal = \"⩵\";\nvar EqualTilde = \"≂\";\nvar Equilibrium = \"⇌\";\nvar Escr = \"ℰ\";\nvar Esim = \"⩳\";\nvar Eta = \"Η\";\nvar Eum = \"Ë\";\nvar Euml = \"Ë\";\nvar Exists = \"∃\";\nvar ExponentialE = \"ⅇ\";\nvar Fcy = \"Ф\";\nvar Ffr = \"𝔉\";\nvar FilledSmallSquare = \"◼\";\nvar FilledVerySmallSquare = \"▪\";\nvar Fopf = \"𝔽\";\nvar ForAll = \"∀\";\nvar Fouriertrf = \"ℱ\";\nvar Fscr = \"ℱ\";\nvar GJcy = \"Ѓ\";\nvar G = \">\";\nvar GT = \">\";\nvar Gamma = \"Γ\";\nvar Gammad = \"Ϝ\";\nvar Gbreve = \"Ğ\";\nvar Gcedil = \"Ģ\";\nvar Gcirc = \"Ĝ\";\nvar Gcy = \"Г\";\nvar Gdot = \"Ġ\";\nvar Gfr = \"𝔊\";\nvar Gg = \"⋙\";\nvar Gopf = \"𝔾\";\nvar GreaterEqual = \"≥\";\nvar GreaterEqualLess = \"⋛\";\nvar GreaterFullEqual = \"≧\";\nvar GreaterGreater = \"⪢\";\nvar GreaterLess = \"≷\";\nvar GreaterSlantEqual = \"⩾\";\nvar GreaterTilde = \"≳\";\nvar Gscr = \"𝒢\";\nvar Gt = \"≫\";\nvar HARDcy = \"Ъ\";\nvar Hacek = \"ˇ\";\nvar Hat = \"^\";\nvar Hcirc = \"Ĥ\";\nvar Hfr = \"ℌ\";\nvar HilbertSpace = \"ℋ\";\nvar Hopf = \"ℍ\";\nvar HorizontalLine = \"─\";\nvar Hscr = \"ℋ\";\nvar Hstrok = \"Ħ\";\nvar HumpDownHump = \"≎\";\nvar HumpEqual = \"≏\";\nvar IEcy = \"Е\";\nvar IJlig = \"IJ\";\nvar IOcy = \"Ё\";\nvar Iacut = \"Í\";\nvar Iacute = \"Í\";\nvar Icir = \"Î\";\nvar Icirc = \"Î\";\nvar Icy = \"И\";\nvar Idot = \"İ\";\nvar Ifr = \"ℑ\";\nvar Igrav = \"Ì\";\nvar Igrave = \"Ì\";\nvar Im = \"ℑ\";\nvar Imacr = \"Ī\";\nvar ImaginaryI = \"ⅈ\";\nvar Implies = \"⇒\";\nvar Int = \"∬\";\nvar Integral = \"∫\";\nvar Intersection = \"⋂\";\nvar InvisibleComma = \"\";\nvar InvisibleTimes = \"\";\nvar Iogon = \"Į\";\nvar Iopf = \"𝕀\";\nvar Iota = \"Ι\";\nvar Iscr = \"ℐ\";\nvar Itilde = \"Ĩ\";\nvar Iukcy = \"І\";\nvar Ium = \"Ï\";\nvar Iuml = \"Ï\";\nvar Jcirc = \"Ĵ\";\nvar Jcy = \"Й\";\nvar Jfr = \"𝔍\";\nvar Jopf = \"𝕁\";\nvar Jscr = \"𝒥\";\nvar Jsercy = \"Ј\";\nvar Jukcy = \"Є\";\nvar KHcy = \"Х\";\nvar KJcy = \"Ќ\";\nvar Kappa = \"Κ\";\nvar Kcedil = \"Ķ\";\nvar Kcy = \"К\";\nvar Kfr = \"𝔎\";\nvar Kopf = \"𝕂\";\nvar Kscr = \"𝒦\";\nvar LJcy = \"Љ\";\nvar L = \"<\";\nvar LT = \"<\";\nvar Lacute = \"Ĺ\";\nvar Lambda = \"Λ\";\nvar Lang = \"⟪\";\nvar Laplacetrf = \"ℒ\";\nvar Larr = \"↞\";\nvar Lcaron = \"Ľ\";\nvar Lcedil = \"Ļ\";\nvar Lcy = \"Л\";\nvar LeftAngleBracket = \"⟨\";\nvar LeftArrow = \"←\";\nvar LeftArrowBar = \"⇤\";\nvar LeftArrowRightArrow = \"⇆\";\nvar LeftCeiling = \"⌈\";\nvar LeftDoubleBracket = \"⟦\";\nvar LeftDownTeeVector = \"⥡\";\nvar LeftDownVector = \"⇃\";\nvar LeftDownVectorBar = \"⥙\";\nvar LeftFloor = \"⌊\";\nvar LeftRightArrow = \"↔\";\nvar LeftRightVector = \"⥎\";\nvar LeftTee = \"⊣\";\nvar LeftTeeArrow = \"↤\";\nvar LeftTeeVector = \"⥚\";\nvar LeftTriangle = \"⊲\";\nvar LeftTriangleBar = \"⧏\";\nvar LeftTriangleEqual = \"⊴\";\nvar LeftUpDownVector = \"⥑\";\nvar LeftUpTeeVector = \"⥠\";\nvar LeftUpVector = \"↿\";\nvar LeftUpVectorBar = \"⥘\";\nvar LeftVector = \"↼\";\nvar LeftVectorBar = \"⥒\";\nvar Leftarrow = \"⇐\";\nvar Leftrightarrow = \"⇔\";\nvar LessEqualGreater = \"⋚\";\nvar LessFullEqual = \"≦\";\nvar LessGreater = \"≶\";\nvar LessLess = \"⪡\";\nvar LessSlantEqual = \"⩽\";\nvar LessTilde = \"≲\";\nvar Lfr = \"𝔏\";\nvar Ll = \"⋘\";\nvar Lleftarrow = \"⇚\";\nvar Lmidot = \"Ŀ\";\nvar LongLeftArrow = \"⟵\";\nvar LongLeftRightArrow = \"⟷\";\nvar LongRightArrow = \"⟶\";\nvar Longleftarrow = \"⟸\";\nvar Longleftrightarrow = \"⟺\";\nvar Longrightarrow = \"⟹\";\nvar Lopf = \"𝕃\";\nvar LowerLeftArrow = \"↙\";\nvar LowerRightArrow = \"↘\";\nvar Lscr = \"ℒ\";\nvar Lsh = \"↰\";\nvar Lstrok = \"Ł\";\nvar Lt = \"≪\";\nvar Mcy = \"М\";\nvar MediumSpace = \" \";\nvar Mellintrf = \"ℳ\";\nvar Mfr = \"𝔐\";\nvar MinusPlus = \"∓\";\nvar Mopf = \"𝕄\";\nvar Mscr = \"ℳ\";\nvar Mu = \"Μ\";\nvar NJcy = \"Њ\";\nvar Nacute = \"Ń\";\nvar Ncaron = \"Ň\";\nvar Ncedil = \"Ņ\";\nvar Ncy = \"Н\";\nvar NegativeMediumSpace = \"\";\nvar NegativeThickSpace = \"\";\nvar NegativeThinSpace = \"\";\nvar NegativeVeryThinSpace = \"\";\nvar NestedGreaterGreater = \"≫\";\nvar NestedLessLess = \"≪\";\nvar NewLine = \"\\n\";\nvar Nfr = \"𝔑\";\nvar NoBreak = \"\";\nvar NonBreakingSpace = \" \";\nvar Nopf = \"ℕ\";\nvar Not = \"⫬\";\nvar NotCongruent = \"≢\";\nvar NotCupCap = \"≭\";\nvar NotDoubleVerticalBar = \"∦\";\nvar NotElement = \"∉\";\nvar NotEqual = \"≠\";\nvar NotEqualTilde = \"≂̸\";\nvar NotExists = \"∄\";\nvar NotGreater = \"≯\";\nvar NotGreaterEqual = \"≱\";\nvar NotGreaterFullEqual = \"≧̸\";\nvar NotGreaterGreater = \"≫̸\";\nvar NotGreaterLess = \"≹\";\nvar NotGreaterSlantEqual = \"⩾̸\";\nvar NotGreaterTilde = \"≵\";\nvar NotHumpDownHump = \"≎̸\";\nvar NotHumpEqual = \"≏̸\";\nvar NotLeftTriangle = \"⋪\";\nvar NotLeftTriangleBar = \"⧏̸\";\nvar NotLeftTriangleEqual = \"⋬\";\nvar NotLess = \"≮\";\nvar NotLessEqual = \"≰\";\nvar NotLessGreater = \"≸\";\nvar NotLessLess = \"≪̸\";\nvar NotLessSlantEqual = \"⩽̸\";\nvar NotLessTilde = \"≴\";\nvar NotNestedGreaterGreater = \"⪢̸\";\nvar NotNestedLessLess = \"⪡̸\";\nvar NotPrecedes = \"⊀\";\nvar NotPrecedesEqual = \"⪯̸\";\nvar NotPrecedesSlantEqual = \"⋠\";\nvar NotReverseElement = \"∌\";\nvar NotRightTriangle = \"⋫\";\nvar NotRightTriangleBar = \"⧐̸\";\nvar NotRightTriangleEqual = \"⋭\";\nvar NotSquareSubset = \"⊏̸\";\nvar NotSquareSubsetEqual = \"⋢\";\nvar NotSquareSuperset = \"⊐̸\";\nvar NotSquareSupersetEqual = \"⋣\";\nvar NotSubset = \"⊂⃒\";\nvar NotSubsetEqual = \"⊈\";\nvar NotSucceeds = \"⊁\";\nvar NotSucceedsEqual = \"⪰̸\";\nvar NotSucceedsSlantEqual = \"⋡\";\nvar NotSucceedsTilde = \"≿̸\";\nvar NotSuperset = \"⊃⃒\";\nvar NotSupersetEqual = \"⊉\";\nvar NotTilde = \"≁\";\nvar NotTildeEqual = \"≄\";\nvar NotTildeFullEqual = \"≇\";\nvar NotTildeTilde = \"≉\";\nvar NotVerticalBar = \"∤\";\nvar Nscr = \"𝒩\";\nvar Ntild = \"Ñ\";\nvar Ntilde = \"Ñ\";\nvar Nu = \"Ν\";\nvar OElig = \"Œ\";\nvar Oacut = \"Ó\";\nvar Oacute = \"Ó\";\nvar Ocir = \"Ô\";\nvar Ocirc = \"Ô\";\nvar Ocy = \"О\";\nvar Odblac = \"Ő\";\nvar Ofr = \"𝔒\";\nvar Ograv = \"Ò\";\nvar Ograve = \"Ò\";\nvar Omacr = \"Ō\";\nvar Omega = \"Ω\";\nvar Omicron = \"Ο\";\nvar Oopf = \"𝕆\";\nvar OpenCurlyDoubleQuote = \"“\";\nvar OpenCurlyQuote = \"‘\";\nvar Or = \"⩔\";\nvar Oscr = \"𝒪\";\nvar Oslas = \"Ø\";\nvar Oslash = \"Ø\";\nvar Otild = \"Õ\";\nvar Otilde = \"Õ\";\nvar Otimes = \"⨷\";\nvar Oum = \"Ö\";\nvar Ouml = \"Ö\";\nvar OverBar = \"‾\";\nvar OverBrace = \"⏞\";\nvar OverBracket = \"⎴\";\nvar OverParenthesis = \"⏜\";\nvar PartialD = \"∂\";\nvar Pcy = \"П\";\nvar Pfr = \"𝔓\";\nvar Phi = \"Φ\";\nvar Pi = \"Π\";\nvar PlusMinus = \"±\";\nvar Poincareplane = \"ℌ\";\nvar Popf = \"ℙ\";\nvar Pr = \"⪻\";\nvar Precedes = \"≺\";\nvar PrecedesEqual = \"⪯\";\nvar PrecedesSlantEqual = \"≼\";\nvar PrecedesTilde = \"≾\";\nvar Prime = \"″\";\nvar Product = \"∏\";\nvar Proportion = \"∷\";\nvar Proportional = \"∝\";\nvar Pscr = \"𝒫\";\nvar Psi = \"Ψ\";\nvar QUO = \"\\\"\";\nvar QUOT = \"\\\"\";\nvar Qfr = \"𝔔\";\nvar Qopf = \"ℚ\";\nvar Qscr = \"𝒬\";\nvar RBarr = \"⤐\";\nvar RE = \"®\";\nvar REG = \"®\";\nvar Racute = \"Ŕ\";\nvar Rang = \"⟫\";\nvar Rarr = \"↠\";\nvar Rarrtl = \"⤖\";\nvar Rcaron = \"Ř\";\nvar Rcedil = \"Ŗ\";\nvar Rcy = \"Р\";\nvar Re = \"ℜ\";\nvar ReverseElement = \"∋\";\nvar ReverseEquilibrium = \"⇋\";\nvar ReverseUpEquilibrium = \"⥯\";\nvar Rfr = \"ℜ\";\nvar Rho = \"Ρ\";\nvar RightAngleBracket = \"⟩\";\nvar RightArrow = \"→\";\nvar RightArrowBar = \"⇥\";\nvar RightArrowLeftArrow = \"⇄\";\nvar RightCeiling = \"⌉\";\nvar RightDoubleBracket = \"⟧\";\nvar RightDownTeeVector = \"⥝\";\nvar RightDownVector = \"⇂\";\nvar RightDownVectorBar = \"⥕\";\nvar RightFloor = \"⌋\";\nvar RightTee = \"⊢\";\nvar RightTeeArrow = \"↦\";\nvar RightTeeVector = \"⥛\";\nvar RightTriangle = \"⊳\";\nvar RightTriangleBar = \"⧐\";\nvar RightTriangleEqual = \"⊵\";\nvar RightUpDownVector = \"⥏\";\nvar RightUpTeeVector = \"⥜\";\nvar RightUpVector = \"↾\";\nvar RightUpVectorBar = \"⥔\";\nvar RightVector = \"⇀\";\nvar RightVectorBar = \"⥓\";\nvar Rightarrow = \"⇒\";\nvar Ropf = \"ℝ\";\nvar RoundImplies = \"⥰\";\nvar Rrightarrow = \"⇛\";\nvar Rscr = \"ℛ\";\nvar Rsh = \"↱\";\nvar RuleDelayed = \"⧴\";\nvar SHCHcy = \"Щ\";\nvar SHcy = \"Ш\";\nvar SOFTcy = \"Ь\";\nvar Sacute = \"Ś\";\nvar Sc = \"⪼\";\nvar Scaron = \"Š\";\nvar Scedil = \"Ş\";\nvar Scirc = \"Ŝ\";\nvar Scy = \"С\";\nvar Sfr = \"𝔖\";\nvar ShortDownArrow = \"↓\";\nvar ShortLeftArrow = \"←\";\nvar ShortRightArrow = \"→\";\nvar ShortUpArrow = \"↑\";\nvar Sigma = \"Σ\";\nvar SmallCircle = \"∘\";\nvar Sopf = \"𝕊\";\nvar Sqrt = \"√\";\nvar Square = \"□\";\nvar SquareIntersection = \"⊓\";\nvar SquareSubset = \"⊏\";\nvar SquareSubsetEqual = \"⊑\";\nvar SquareSuperset = \"⊐\";\nvar SquareSupersetEqual = \"⊒\";\nvar SquareUnion = \"⊔\";\nvar Sscr = \"𝒮\";\nvar Star = \"⋆\";\nvar Sub = \"⋐\";\nvar Subset = \"⋐\";\nvar SubsetEqual = \"⊆\";\nvar Succeeds = \"≻\";\nvar SucceedsEqual = \"⪰\";\nvar SucceedsSlantEqual = \"≽\";\nvar SucceedsTilde = \"≿\";\nvar SuchThat = \"∋\";\nvar Sum = \"∑\";\nvar Sup = \"⋑\";\nvar Superset = \"⊃\";\nvar SupersetEqual = \"⊇\";\nvar Supset = \"⋑\";\nvar THOR = \"Þ\";\nvar THORN = \"Þ\";\nvar TRADE = \"™\";\nvar TSHcy = \"Ћ\";\nvar TScy = \"Ц\";\nvar Tab = \"\\t\";\nvar Tau = \"Τ\";\nvar Tcaron = \"Ť\";\nvar Tcedil = \"Ţ\";\nvar Tcy = \"Т\";\nvar Tfr = \"𝔗\";\nvar Therefore = \"∴\";\nvar Theta = \"Θ\";\nvar ThickSpace = \" \";\nvar ThinSpace = \" \";\nvar Tilde = \"∼\";\nvar TildeEqual = \"≃\";\nvar TildeFullEqual = \"≅\";\nvar TildeTilde = \"≈\";\nvar Topf = \"𝕋\";\nvar TripleDot = \"⃛\";\nvar Tscr = \"𝒯\";\nvar Tstrok = \"Ŧ\";\nvar Uacut = \"Ú\";\nvar Uacute = \"Ú\";\nvar Uarr = \"↟\";\nvar Uarrocir = \"⥉\";\nvar Ubrcy = \"Ў\";\nvar Ubreve = \"Ŭ\";\nvar Ucir = \"Û\";\nvar Ucirc = \"Û\";\nvar Ucy = \"У\";\nvar Udblac = \"Ű\";\nvar Ufr = \"𝔘\";\nvar Ugrav = \"Ù\";\nvar Ugrave = \"Ù\";\nvar Umacr = \"Ū\";\nvar UnderBar = \"_\";\nvar UnderBrace = \"⏟\";\nvar UnderBracket = \"⎵\";\nvar UnderParenthesis = \"⏝\";\nvar Union = \"⋃\";\nvar UnionPlus = \"⊎\";\nvar Uogon = \"Ų\";\nvar Uopf = \"𝕌\";\nvar UpArrow = \"↑\";\nvar UpArrowBar = \"⤒\";\nvar UpArrowDownArrow = \"⇅\";\nvar UpDownArrow = \"↕\";\nvar UpEquilibrium = \"⥮\";\nvar UpTee = \"⊥\";\nvar UpTeeArrow = \"↥\";\nvar Uparrow = \"⇑\";\nvar Updownarrow = \"⇕\";\nvar UpperLeftArrow = \"↖\";\nvar UpperRightArrow = \"↗\";\nvar Upsi = \"ϒ\";\nvar Upsilon = \"Υ\";\nvar Uring = \"Ů\";\nvar Uscr = \"𝒰\";\nvar Utilde = \"Ũ\";\nvar Uum = \"Ü\";\nvar Uuml = \"Ü\";\nvar VDash = \"⊫\";\nvar Vbar = \"⫫\";\nvar Vcy = \"В\";\nvar Vdash = \"⊩\";\nvar Vdashl = \"⫦\";\nvar Vee = \"⋁\";\nvar Verbar = \"‖\";\nvar Vert = \"‖\";\nvar VerticalBar = \"∣\";\nvar VerticalLine = \"|\";\nvar VerticalSeparator = \"❘\";\nvar VerticalTilde = \"≀\";\nvar VeryThinSpace = \" \";\nvar Vfr = \"𝔙\";\nvar Vopf = \"𝕍\";\nvar Vscr = \"𝒱\";\nvar Vvdash = \"⊪\";\nvar Wcirc = \"Ŵ\";\nvar Wedge = \"⋀\";\nvar Wfr = \"𝔚\";\nvar Wopf = \"𝕎\";\nvar Wscr = \"𝒲\";\nvar Xfr = \"𝔛\";\nvar Xi = \"Ξ\";\nvar Xopf = \"𝕏\";\nvar Xscr = \"𝒳\";\nvar YAcy = \"Я\";\nvar YIcy = \"Ї\";\nvar YUcy = \"Ю\";\nvar Yacut = \"Ý\";\nvar Yacute = \"Ý\";\nvar Ycirc = \"Ŷ\";\nvar Ycy = \"Ы\";\nvar Yfr = \"𝔜\";\nvar Yopf = \"𝕐\";\nvar Yscr = \"𝒴\";\nvar Yuml = \"Ÿ\";\nvar ZHcy = \"Ж\";\nvar Zacute = \"Ź\";\nvar Zcaron = \"Ž\";\nvar Zcy = \"З\";\nvar Zdot = \"Ż\";\nvar ZeroWidthSpace = \"\";\nvar Zeta = \"Ζ\";\nvar Zfr = \"ℨ\";\nvar Zopf = \"ℤ\";\nvar Zscr = \"𝒵\";\nvar aacut = \"á\";\nvar aacute = \"á\";\nvar abreve = \"ă\";\nvar ac = \"∾\";\nvar acE = \"∾̳\";\nvar acd = \"∿\";\nvar acir = \"â\";\nvar acirc = \"â\";\nvar acut = \"´\";\nvar acute = \"´\";\nvar acy = \"а\";\nvar aeli = \"æ\";\nvar aelig = \"æ\";\nvar af = \"\";\nvar afr = \"𝔞\";\nvar agrav = \"à\";\nvar agrave = \"à\";\nvar alefsym = \"ℵ\";\nvar aleph = \"ℵ\";\nvar alpha = \"α\";\nvar amacr = \"ā\";\nvar amalg = \"⨿\";\nvar am = \"&\";\nvar amp = \"&\";\nvar and = \"∧\";\nvar andand = \"⩕\";\nvar andd = \"⩜\";\nvar andslope = \"⩘\";\nvar andv = \"⩚\";\nvar ang = \"∠\";\nvar ange = \"⦤\";\nvar angle = \"∠\";\nvar angmsd = \"∡\";\nvar angmsdaa = \"⦨\";\nvar angmsdab = \"⦩\";\nvar angmsdac = \"⦪\";\nvar angmsdad = \"⦫\";\nvar angmsdae = \"⦬\";\nvar angmsdaf = \"⦭\";\nvar angmsdag = \"⦮\";\nvar angmsdah = \"⦯\";\nvar angrt = \"∟\";\nvar angrtvb = \"⊾\";\nvar angrtvbd = \"⦝\";\nvar angsph = \"∢\";\nvar angst = \"Å\";\nvar angzarr = \"⍼\";\nvar aogon = \"ą\";\nvar aopf = \"𝕒\";\nvar ap = \"≈\";\nvar apE = \"⩰\";\nvar apacir = \"⩯\";\nvar ape = \"≊\";\nvar apid = \"≋\";\nvar apos = \"'\";\nvar approx = \"≈\";\nvar approxeq = \"≊\";\nvar arin = \"å\";\nvar aring = \"å\";\nvar ascr = \"𝒶\";\nvar ast = \"*\";\nvar asymp = \"≈\";\nvar asympeq = \"≍\";\nvar atild = \"ã\";\nvar atilde = \"ã\";\nvar aum = \"ä\";\nvar auml = \"ä\";\nvar awconint = \"∳\";\nvar awint = \"⨑\";\nvar bNot = \"⫭\";\nvar backcong = \"≌\";\nvar backepsilon = \"϶\";\nvar backprime = \"‵\";\nvar backsim = \"∽\";\nvar backsimeq = \"⋍\";\nvar barvee = \"⊽\";\nvar barwed = \"⌅\";\nvar barwedge = \"⌅\";\nvar bbrk = \"⎵\";\nvar bbrktbrk = \"⎶\";\nvar bcong = \"≌\";\nvar bcy = \"б\";\nvar bdquo = \"„\";\nvar becaus = \"∵\";\nvar because = \"∵\";\nvar bemptyv = \"⦰\";\nvar bepsi = \"϶\";\nvar bernou = \"ℬ\";\nvar beta = \"β\";\nvar beth = \"ℶ\";\nvar between = \"≬\";\nvar bfr = \"𝔟\";\nvar bigcap = \"⋂\";\nvar bigcirc = \"◯\";\nvar bigcup = \"⋃\";\nvar bigodot = \"⨀\";\nvar bigoplus = \"⨁\";\nvar bigotimes = \"⨂\";\nvar bigsqcup = \"⨆\";\nvar bigstar = \"★\";\nvar bigtriangledown = \"▽\";\nvar bigtriangleup = \"△\";\nvar biguplus = \"⨄\";\nvar bigvee = \"⋁\";\nvar bigwedge = \"⋀\";\nvar bkarow = \"⤍\";\nvar blacklozenge = \"⧫\";\nvar blacksquare = \"▪\";\nvar blacktriangle = \"▴\";\nvar blacktriangledown = \"▾\";\nvar blacktriangleleft = \"◂\";\nvar blacktriangleright = \"▸\";\nvar blank = \"␣\";\nvar blk12 = \"▒\";\nvar blk14 = \"░\";\nvar blk34 = \"▓\";\nvar block = \"█\";\nvar bne = \"=⃥\";\nvar bnequiv = \"≡⃥\";\nvar bnot = \"⌐\";\nvar bopf = \"𝕓\";\nvar bot = \"⊥\";\nvar bottom = \"⊥\";\nvar bowtie = \"⋈\";\nvar boxDL = \"╗\";\nvar boxDR = \"╔\";\nvar boxDl = \"╖\";\nvar boxDr = \"╓\";\nvar boxH = \"═\";\nvar boxHD = \"╦\";\nvar boxHU = \"╩\";\nvar boxHd = \"╤\";\nvar boxHu = \"╧\";\nvar boxUL = \"╝\";\nvar boxUR = \"╚\";\nvar boxUl = \"╜\";\nvar boxUr = \"╙\";\nvar boxV = \"║\";\nvar boxVH = \"╬\";\nvar boxVL = \"╣\";\nvar boxVR = \"╠\";\nvar boxVh = \"╫\";\nvar boxVl = \"╢\";\nvar boxVr = \"╟\";\nvar boxbox = \"⧉\";\nvar boxdL = \"╕\";\nvar boxdR = \"╒\";\nvar boxdl = \"┐\";\nvar boxdr = \"┌\";\nvar boxh = \"─\";\nvar boxhD = \"╥\";\nvar boxhU = \"╨\";\nvar boxhd = \"┬\";\nvar boxhu = \"┴\";\nvar boxminus = \"⊟\";\nvar boxplus = \"⊞\";\nvar boxtimes = \"⊠\";\nvar boxuL = \"╛\";\nvar boxuR = \"╘\";\nvar boxul = \"┘\";\nvar boxur = \"└\";\nvar boxv = \"│\";\nvar boxvH = \"╪\";\nvar boxvL = \"╡\";\nvar boxvR = \"╞\";\nvar boxvh = \"┼\";\nvar boxvl = \"┤\";\nvar boxvr = \"├\";\nvar bprime = \"‵\";\nvar breve = \"˘\";\nvar brvba = \"¦\";\nvar brvbar = \"¦\";\nvar bscr = \"𝒷\";\nvar bsemi = \"⁏\";\nvar bsim = \"∽\";\nvar bsime = \"⋍\";\nvar bsol = \"\\\\\";\nvar bsolb = \"⧅\";\nvar bsolhsub = \"⟈\";\nvar bull = \"•\";\nvar bullet = \"•\";\nvar bump = \"≎\";\nvar bumpE = \"⪮\";\nvar bumpe = \"≏\";\nvar bumpeq = \"≏\";\nvar cacute = \"ć\";\nvar cap = \"∩\";\nvar capand = \"⩄\";\nvar capbrcup = \"⩉\";\nvar capcap = \"⩋\";\nvar capcup = \"⩇\";\nvar capdot = \"⩀\";\nvar caps = \"∩︀\";\nvar caret = \"⁁\";\nvar caron = \"ˇ\";\nvar ccaps = \"⩍\";\nvar ccaron = \"č\";\nvar ccedi = \"ç\";\nvar ccedil = \"ç\";\nvar ccirc = \"ĉ\";\nvar ccups = \"⩌\";\nvar ccupssm = \"⩐\";\nvar cdot = \"ċ\";\nvar cedi = \"¸\";\nvar cedil = \"¸\";\nvar cemptyv = \"⦲\";\nvar cen = \"¢\";\nvar cent = \"¢\";\nvar centerdot = \"·\";\nvar cfr = \"𝔠\";\nvar chcy = \"ч\";\nvar check = \"✓\";\nvar checkmark = \"✓\";\nvar chi = \"χ\";\nvar cir = \"○\";\nvar cirE = \"⧃\";\nvar circ = \"ˆ\";\nvar circeq = \"≗\";\nvar circlearrowleft = \"↺\";\nvar circlearrowright = \"↻\";\nvar circledR = \"®\";\nvar circledS = \"Ⓢ\";\nvar circledast = \"⊛\";\nvar circledcirc = \"⊚\";\nvar circleddash = \"⊝\";\nvar cire = \"≗\";\nvar cirfnint = \"⨐\";\nvar cirmid = \"⫯\";\nvar cirscir = \"⧂\";\nvar clubs = \"♣\";\nvar clubsuit = \"♣\";\nvar colon = \":\";\nvar colone = \"≔\";\nvar coloneq = \"≔\";\nvar comma = \",\";\nvar commat = \"@\";\nvar comp = \"∁\";\nvar compfn = \"∘\";\nvar complement = \"∁\";\nvar complexes = \"ℂ\";\nvar cong = \"≅\";\nvar congdot = \"⩭\";\nvar conint = \"∮\";\nvar copf = \"𝕔\";\nvar coprod = \"∐\";\nvar cop = \"©\";\nvar copy = \"©\";\nvar copysr = \"℗\";\nvar crarr = \"↵\";\nvar cross = \"✗\";\nvar cscr = \"𝒸\";\nvar csub = \"⫏\";\nvar csube = \"⫑\";\nvar csup = \"⫐\";\nvar csupe = \"⫒\";\nvar ctdot = \"⋯\";\nvar cudarrl = \"⤸\";\nvar cudarrr = \"⤵\";\nvar cuepr = \"⋞\";\nvar cuesc = \"⋟\";\nvar cularr = \"↶\";\nvar cularrp = \"⤽\";\nvar cup = \"∪\";\nvar cupbrcap = \"⩈\";\nvar cupcap = \"⩆\";\nvar cupcup = \"⩊\";\nvar cupdot = \"⊍\";\nvar cupor = \"⩅\";\nvar cups = \"∪︀\";\nvar curarr = \"↷\";\nvar curarrm = \"⤼\";\nvar curlyeqprec = \"⋞\";\nvar curlyeqsucc = \"⋟\";\nvar curlyvee = \"⋎\";\nvar curlywedge = \"⋏\";\nvar curre = \"¤\";\nvar curren = \"¤\";\nvar curvearrowleft = \"↶\";\nvar curvearrowright = \"↷\";\nvar cuvee = \"⋎\";\nvar cuwed = \"⋏\";\nvar cwconint = \"∲\";\nvar cwint = \"∱\";\nvar cylcty = \"⌭\";\nvar dArr = \"⇓\";\nvar dHar = \"⥥\";\nvar dagger = \"†\";\nvar daleth = \"ℸ\";\nvar darr = \"↓\";\nvar dash = \"‐\";\nvar dashv = \"⊣\";\nvar dbkarow = \"⤏\";\nvar dblac = \"˝\";\nvar dcaron = \"ď\";\nvar dcy = \"д\";\nvar dd = \"ⅆ\";\nvar ddagger = \"‡\";\nvar ddarr = \"⇊\";\nvar ddotseq = \"⩷\";\nvar de = \"°\";\nvar deg = \"°\";\nvar delta = \"δ\";\nvar demptyv = \"⦱\";\nvar dfisht = \"⥿\";\nvar dfr = \"𝔡\";\nvar dharl = \"⇃\";\nvar dharr = \"⇂\";\nvar diam = \"⋄\";\nvar diamond = \"⋄\";\nvar diamondsuit = \"♦\";\nvar diams = \"♦\";\nvar die = \"¨\";\nvar digamma = \"ϝ\";\nvar disin = \"⋲\";\nvar div = \"÷\";\nvar divid = \"÷\";\nvar divide = \"÷\";\nvar divideontimes = \"⋇\";\nvar divonx = \"⋇\";\nvar djcy = \"ђ\";\nvar dlcorn = \"⌞\";\nvar dlcrop = \"⌍\";\nvar dollar = \"$\";\nvar dopf = \"𝕕\";\nvar dot = \"˙\";\nvar doteq = \"≐\";\nvar doteqdot = \"≑\";\nvar dotminus = \"∸\";\nvar dotplus = \"∔\";\nvar dotsquare = \"⊡\";\nvar doublebarwedge = \"⌆\";\nvar downarrow = \"↓\";\nvar downdownarrows = \"⇊\";\nvar downharpoonleft = \"⇃\";\nvar downharpoonright = \"⇂\";\nvar drbkarow = \"⤐\";\nvar drcorn = \"⌟\";\nvar drcrop = \"⌌\";\nvar dscr = \"𝒹\";\nvar dscy = \"ѕ\";\nvar dsol = \"⧶\";\nvar dstrok = \"đ\";\nvar dtdot = \"⋱\";\nvar dtri = \"▿\";\nvar dtrif = \"▾\";\nvar duarr = \"⇵\";\nvar duhar = \"⥯\";\nvar dwangle = \"⦦\";\nvar dzcy = \"џ\";\nvar dzigrarr = \"⟿\";\nvar eDDot = \"⩷\";\nvar eDot = \"≑\";\nvar eacut = \"é\";\nvar eacute = \"é\";\nvar easter = \"⩮\";\nvar ecaron = \"ě\";\nvar ecir = \"ê\";\nvar ecirc = \"ê\";\nvar ecolon = \"≕\";\nvar ecy = \"э\";\nvar edot = \"ė\";\nvar ee = \"ⅇ\";\nvar efDot = \"≒\";\nvar efr = \"𝔢\";\nvar eg = \"⪚\";\nvar egrav = \"è\";\nvar egrave = \"è\";\nvar egs = \"⪖\";\nvar egsdot = \"⪘\";\nvar el = \"⪙\";\nvar elinters = \"⏧\";\nvar ell = \"ℓ\";\nvar els = \"⪕\";\nvar elsdot = \"⪗\";\nvar emacr = \"ē\";\nvar empty = \"∅\";\nvar emptyset = \"∅\";\nvar emptyv = \"∅\";\nvar emsp13 = \" \";\nvar emsp14 = \" \";\nvar emsp = \" \";\nvar eng = \"ŋ\";\nvar ensp = \" \";\nvar eogon = \"ę\";\nvar eopf = \"𝕖\";\nvar epar = \"⋕\";\nvar eparsl = \"⧣\";\nvar eplus = \"⩱\";\nvar epsi = \"ε\";\nvar epsilon = \"ε\";\nvar epsiv = \"ϵ\";\nvar eqcirc = \"≖\";\nvar eqcolon = \"≕\";\nvar eqsim = \"≂\";\nvar eqslantgtr = \"⪖\";\nvar eqslantless = \"⪕\";\nvar equals = \"=\";\nvar equest = \"≟\";\nvar equiv = \"≡\";\nvar equivDD = \"⩸\";\nvar eqvparsl = \"⧥\";\nvar erDot = \"≓\";\nvar erarr = \"⥱\";\nvar escr = \"ℯ\";\nvar esdot = \"≐\";\nvar esim = \"≂\";\nvar eta = \"η\";\nvar et = \"ð\";\nvar eth = \"ð\";\nvar eum = \"ë\";\nvar euml = \"ë\";\nvar euro = \"€\";\nvar excl = \"!\";\nvar exist = \"∃\";\nvar expectation = \"ℰ\";\nvar exponentiale = \"ⅇ\";\nvar fallingdotseq = \"≒\";\nvar fcy = \"ф\";\nvar female = \"♀\";\nvar ffilig = \"ffi\";\nvar fflig = \"ff\";\nvar ffllig = \"ffl\";\nvar ffr = \"𝔣\";\nvar filig = \"fi\";\nvar fjlig = \"fj\";\nvar flat = \"♭\";\nvar fllig = \"fl\";\nvar fltns = \"▱\";\nvar fnof = \"ƒ\";\nvar fopf = \"𝕗\";\nvar forall = \"∀\";\nvar fork = \"⋔\";\nvar forkv = \"⫙\";\nvar fpartint = \"⨍\";\nvar frac1 = \"¼\";\nvar frac12 = \"½\";\nvar frac13 = \"⅓\";\nvar frac14 = \"¼\";\nvar frac15 = \"⅕\";\nvar frac16 = \"⅙\";\nvar frac18 = \"⅛\";\nvar frac23 = \"⅔\";\nvar frac25 = \"⅖\";\nvar frac3 = \"¾\";\nvar frac34 = \"¾\";\nvar frac35 = \"⅗\";\nvar frac38 = \"⅜\";\nvar frac45 = \"⅘\";\nvar frac56 = \"⅚\";\nvar frac58 = \"⅝\";\nvar frac78 = \"⅞\";\nvar frasl = \"⁄\";\nvar frown = \"⌢\";\nvar fscr = \"𝒻\";\nvar gE = \"≧\";\nvar gEl = \"⪌\";\nvar gacute = \"ǵ\";\nvar gamma = \"γ\";\nvar gammad = \"ϝ\";\nvar gap = \"⪆\";\nvar gbreve = \"ğ\";\nvar gcirc = \"ĝ\";\nvar gcy = \"г\";\nvar gdot = \"ġ\";\nvar ge = \"≥\";\nvar gel = \"⋛\";\nvar geq = \"≥\";\nvar geqq = \"≧\";\nvar geqslant = \"⩾\";\nvar ges = \"⩾\";\nvar gescc = \"⪩\";\nvar gesdot = \"⪀\";\nvar gesdoto = \"⪂\";\nvar gesdotol = \"⪄\";\nvar gesl = \"⋛︀\";\nvar gesles = \"⪔\";\nvar gfr = \"𝔤\";\nvar gg = \"≫\";\nvar ggg = \"⋙\";\nvar gimel = \"ℷ\";\nvar gjcy = \"ѓ\";\nvar gl = \"≷\";\nvar glE = \"⪒\";\nvar gla = \"⪥\";\nvar glj = \"⪤\";\nvar gnE = \"≩\";\nvar gnap = \"⪊\";\nvar gnapprox = \"⪊\";\nvar gne = \"⪈\";\nvar gneq = \"⪈\";\nvar gneqq = \"≩\";\nvar gnsim = \"⋧\";\nvar gopf = \"𝕘\";\nvar grave = \"`\";\nvar gscr = \"ℊ\";\nvar gsim = \"≳\";\nvar gsime = \"⪎\";\nvar gsiml = \"⪐\";\nvar g = \">\";\nvar gt = \">\";\nvar gtcc = \"⪧\";\nvar gtcir = \"⩺\";\nvar gtdot = \"⋗\";\nvar gtlPar = \"⦕\";\nvar gtquest = \"⩼\";\nvar gtrapprox = \"⪆\";\nvar gtrarr = \"⥸\";\nvar gtrdot = \"⋗\";\nvar gtreqless = \"⋛\";\nvar gtreqqless = \"⪌\";\nvar gtrless = \"≷\";\nvar gtrsim = \"≳\";\nvar gvertneqq = \"≩︀\";\nvar gvnE = \"≩︀\";\nvar hArr = \"⇔\";\nvar hairsp = \" \";\nvar half = \"½\";\nvar hamilt = \"ℋ\";\nvar hardcy = \"ъ\";\nvar harr = \"↔\";\nvar harrcir = \"⥈\";\nvar harrw = \"↭\";\nvar hbar = \"ℏ\";\nvar hcirc = \"ĥ\";\nvar hearts = \"♥\";\nvar heartsuit = \"♥\";\nvar hellip = \"…\";\nvar hercon = \"⊹\";\nvar hfr = \"𝔥\";\nvar hksearow = \"⤥\";\nvar hkswarow = \"⤦\";\nvar hoarr = \"⇿\";\nvar homtht = \"∻\";\nvar hookleftarrow = \"↩\";\nvar hookrightarrow = \"↪\";\nvar hopf = \"𝕙\";\nvar horbar = \"―\";\nvar hscr = \"𝒽\";\nvar hslash = \"ℏ\";\nvar hstrok = \"ħ\";\nvar hybull = \"⁃\";\nvar hyphen = \"‐\";\nvar iacut = \"í\";\nvar iacute = \"í\";\nvar ic = \"\";\nvar icir = \"î\";\nvar icirc = \"î\";\nvar icy = \"и\";\nvar iecy = \"е\";\nvar iexc = \"¡\";\nvar iexcl = \"¡\";\nvar iff = \"⇔\";\nvar ifr = \"𝔦\";\nvar igrav = \"ì\";\nvar igrave = \"ì\";\nvar ii = \"ⅈ\";\nvar iiiint = \"⨌\";\nvar iiint = \"∭\";\nvar iinfin = \"⧜\";\nvar iiota = \"℩\";\nvar ijlig = \"ij\";\nvar imacr = \"ī\";\nvar image = \"ℑ\";\nvar imagline = \"ℐ\";\nvar imagpart = \"ℑ\";\nvar imath = \"ı\";\nvar imof = \"⊷\";\nvar imped = \"Ƶ\";\nvar incare = \"℅\";\nvar infin = \"∞\";\nvar infintie = \"⧝\";\nvar inodot = \"ı\";\nvar int = \"∫\";\nvar intcal = \"⊺\";\nvar integers = \"ℤ\";\nvar intercal = \"⊺\";\nvar intlarhk = \"⨗\";\nvar intprod = \"⨼\";\nvar iocy = \"ё\";\nvar iogon = \"į\";\nvar iopf = \"𝕚\";\nvar iota = \"ι\";\nvar iprod = \"⨼\";\nvar iques = \"¿\";\nvar iquest = \"¿\";\nvar iscr = \"𝒾\";\nvar isin = \"∈\";\nvar isinE = \"⋹\";\nvar isindot = \"⋵\";\nvar isins = \"⋴\";\nvar isinsv = \"⋳\";\nvar isinv = \"∈\";\nvar it = \"\";\nvar itilde = \"ĩ\";\nvar iukcy = \"і\";\nvar ium = \"ï\";\nvar iuml = \"ï\";\nvar jcirc = \"ĵ\";\nvar jcy = \"й\";\nvar jfr = \"𝔧\";\nvar jmath = \"ȷ\";\nvar jopf = \"𝕛\";\nvar jscr = \"𝒿\";\nvar jsercy = \"ј\";\nvar jukcy = \"є\";\nvar kappa = \"κ\";\nvar kappav = \"ϰ\";\nvar kcedil = \"ķ\";\nvar kcy = \"к\";\nvar kfr = \"𝔨\";\nvar kgreen = \"ĸ\";\nvar khcy = \"х\";\nvar kjcy = \"ќ\";\nvar kopf = \"𝕜\";\nvar kscr = \"𝓀\";\nvar lAarr = \"⇚\";\nvar lArr = \"⇐\";\nvar lAtail = \"⤛\";\nvar lBarr = \"⤎\";\nvar lE = \"≦\";\nvar lEg = \"⪋\";\nvar lHar = \"⥢\";\nvar lacute = \"ĺ\";\nvar laemptyv = \"⦴\";\nvar lagran = \"ℒ\";\nvar lambda = \"λ\";\nvar lang = \"⟨\";\nvar langd = \"⦑\";\nvar langle = \"⟨\";\nvar lap = \"⪅\";\nvar laqu = \"«\";\nvar laquo = \"«\";\nvar larr = \"←\";\nvar larrb = \"⇤\";\nvar larrbfs = \"⤟\";\nvar larrfs = \"⤝\";\nvar larrhk = \"↩\";\nvar larrlp = \"↫\";\nvar larrpl = \"⤹\";\nvar larrsim = \"⥳\";\nvar larrtl = \"↢\";\nvar lat = \"⪫\";\nvar latail = \"⤙\";\nvar late = \"⪭\";\nvar lates = \"⪭︀\";\nvar lbarr = \"⤌\";\nvar lbbrk = \"❲\";\nvar lbrace = \"{\";\nvar lbrack = \"[\";\nvar lbrke = \"⦋\";\nvar lbrksld = \"⦏\";\nvar lbrkslu = \"⦍\";\nvar lcaron = \"ľ\";\nvar lcedil = \"ļ\";\nvar lceil = \"⌈\";\nvar lcub = \"{\";\nvar lcy = \"л\";\nvar ldca = \"⤶\";\nvar ldquo = \"“\";\nvar ldquor = \"„\";\nvar ldrdhar = \"⥧\";\nvar ldrushar = \"⥋\";\nvar ldsh = \"↲\";\nvar le = \"≤\";\nvar leftarrow = \"←\";\nvar leftarrowtail = \"↢\";\nvar leftharpoondown = \"↽\";\nvar leftharpoonup = \"↼\";\nvar leftleftarrows = \"⇇\";\nvar leftrightarrow = \"↔\";\nvar leftrightarrows = \"⇆\";\nvar leftrightharpoons = \"⇋\";\nvar leftrightsquigarrow = \"↭\";\nvar leftthreetimes = \"⋋\";\nvar leg = \"⋚\";\nvar leq = \"≤\";\nvar leqq = \"≦\";\nvar leqslant = \"⩽\";\nvar les = \"⩽\";\nvar lescc = \"⪨\";\nvar lesdot = \"⩿\";\nvar lesdoto = \"⪁\";\nvar lesdotor = \"⪃\";\nvar lesg = \"⋚︀\";\nvar lesges = \"⪓\";\nvar lessapprox = \"⪅\";\nvar lessdot = \"⋖\";\nvar lesseqgtr = \"⋚\";\nvar lesseqqgtr = \"⪋\";\nvar lessgtr = \"≶\";\nvar lesssim = \"≲\";\nvar lfisht = \"⥼\";\nvar lfloor = \"⌊\";\nvar lfr = \"𝔩\";\nvar lg = \"≶\";\nvar lgE = \"⪑\";\nvar lhard = \"↽\";\nvar lharu = \"↼\";\nvar lharul = \"⥪\";\nvar lhblk = \"▄\";\nvar ljcy = \"љ\";\nvar ll = \"≪\";\nvar llarr = \"⇇\";\nvar llcorner = \"⌞\";\nvar llhard = \"⥫\";\nvar lltri = \"◺\";\nvar lmidot = \"ŀ\";\nvar lmoust = \"⎰\";\nvar lmoustache = \"⎰\";\nvar lnE = \"≨\";\nvar lnap = \"⪉\";\nvar lnapprox = \"⪉\";\nvar lne = \"⪇\";\nvar lneq = \"⪇\";\nvar lneqq = \"≨\";\nvar lnsim = \"⋦\";\nvar loang = \"⟬\";\nvar loarr = \"⇽\";\nvar lobrk = \"⟦\";\nvar longleftarrow = \"⟵\";\nvar longleftrightarrow = \"⟷\";\nvar longmapsto = \"⟼\";\nvar longrightarrow = \"⟶\";\nvar looparrowleft = \"↫\";\nvar looparrowright = \"↬\";\nvar lopar = \"⦅\";\nvar lopf = \"𝕝\";\nvar loplus = \"⨭\";\nvar lotimes = \"⨴\";\nvar lowast = \"∗\";\nvar lowbar = \"_\";\nvar loz = \"◊\";\nvar lozenge = \"◊\";\nvar lozf = \"⧫\";\nvar lpar = \"(\";\nvar lparlt = \"⦓\";\nvar lrarr = \"⇆\";\nvar lrcorner = \"⌟\";\nvar lrhar = \"⇋\";\nvar lrhard = \"⥭\";\nvar lrm = \"\";\nvar lrtri = \"⊿\";\nvar lsaquo = \"‹\";\nvar lscr = \"𝓁\";\nvar lsh = \"↰\";\nvar lsim = \"≲\";\nvar lsime = \"⪍\";\nvar lsimg = \"⪏\";\nvar lsqb = \"[\";\nvar lsquo = \"‘\";\nvar lsquor = \"‚\";\nvar lstrok = \"ł\";\nvar l = \"<\";\nvar lt = \"<\";\nvar ltcc = \"⪦\";\nvar ltcir = \"⩹\";\nvar ltdot = \"⋖\";\nvar lthree = \"⋋\";\nvar ltimes = \"⋉\";\nvar ltlarr = \"⥶\";\nvar ltquest = \"⩻\";\nvar ltrPar = \"⦖\";\nvar ltri = \"◃\";\nvar ltrie = \"⊴\";\nvar ltrif = \"◂\";\nvar lurdshar = \"⥊\";\nvar luruhar = \"⥦\";\nvar lvertneqq = \"≨︀\";\nvar lvnE = \"≨︀\";\nvar mDDot = \"∺\";\nvar mac = \"¯\";\nvar macr = \"¯\";\nvar male = \"♂\";\nvar malt = \"✠\";\nvar maltese = \"✠\";\nvar map = \"↦\";\nvar mapsto = \"↦\";\nvar mapstodown = \"↧\";\nvar mapstoleft = \"↤\";\nvar mapstoup = \"↥\";\nvar marker = \"▮\";\nvar mcomma = \"⨩\";\nvar mcy = \"м\";\nvar mdash = \"—\";\nvar measuredangle = \"∡\";\nvar mfr = \"𝔪\";\nvar mho = \"℧\";\nvar micr = \"µ\";\nvar micro = \"µ\";\nvar mid = \"∣\";\nvar midast = \"*\";\nvar midcir = \"⫰\";\nvar middo = \"·\";\nvar middot = \"·\";\nvar minus = \"−\";\nvar minusb = \"⊟\";\nvar minusd = \"∸\";\nvar minusdu = \"⨪\";\nvar mlcp = \"⫛\";\nvar mldr = \"…\";\nvar mnplus = \"∓\";\nvar models = \"⊧\";\nvar mopf = \"𝕞\";\nvar mp = \"∓\";\nvar mscr = \"𝓂\";\nvar mstpos = \"∾\";\nvar mu = \"μ\";\nvar multimap = \"⊸\";\nvar mumap = \"⊸\";\nvar nGg = \"⋙̸\";\nvar nGt = \"≫⃒\";\nvar nGtv = \"≫̸\";\nvar nLeftarrow = \"⇍\";\nvar nLeftrightarrow = \"⇎\";\nvar nLl = \"⋘̸\";\nvar nLt = \"≪⃒\";\nvar nLtv = \"≪̸\";\nvar nRightarrow = \"⇏\";\nvar nVDash = \"⊯\";\nvar nVdash = \"⊮\";\nvar nabla = \"∇\";\nvar nacute = \"ń\";\nvar nang = \"∠⃒\";\nvar nap = \"≉\";\nvar napE = \"⩰̸\";\nvar napid = \"≋̸\";\nvar napos = \"ʼn\";\nvar napprox = \"≉\";\nvar natur = \"♮\";\nvar natural = \"♮\";\nvar naturals = \"ℕ\";\nvar nbs = \" \";\nvar nbsp = \" \";\nvar nbump = \"≎̸\";\nvar nbumpe = \"≏̸\";\nvar ncap = \"⩃\";\nvar ncaron = \"ň\";\nvar ncedil = \"ņ\";\nvar ncong = \"≇\";\nvar ncongdot = \"⩭̸\";\nvar ncup = \"⩂\";\nvar ncy = \"н\";\nvar ndash = \"–\";\nvar ne = \"≠\";\nvar neArr = \"⇗\";\nvar nearhk = \"⤤\";\nvar nearr = \"↗\";\nvar nearrow = \"↗\";\nvar nedot = \"≐̸\";\nvar nequiv = \"≢\";\nvar nesear = \"⤨\";\nvar nesim = \"≂̸\";\nvar nexist = \"∄\";\nvar nexists = \"∄\";\nvar nfr = \"𝔫\";\nvar ngE = \"≧̸\";\nvar nge = \"≱\";\nvar ngeq = \"≱\";\nvar ngeqq = \"≧̸\";\nvar ngeqslant = \"⩾̸\";\nvar nges = \"⩾̸\";\nvar ngsim = \"≵\";\nvar ngt = \"≯\";\nvar ngtr = \"≯\";\nvar nhArr = \"⇎\";\nvar nharr = \"↮\";\nvar nhpar = \"⫲\";\nvar ni = \"∋\";\nvar nis = \"⋼\";\nvar nisd = \"⋺\";\nvar niv = \"∋\";\nvar njcy = \"њ\";\nvar nlArr = \"⇍\";\nvar nlE = \"≦̸\";\nvar nlarr = \"↚\";\nvar nldr = \"‥\";\nvar nle = \"≰\";\nvar nleftarrow = \"↚\";\nvar nleftrightarrow = \"↮\";\nvar nleq = \"≰\";\nvar nleqq = \"≦̸\";\nvar nleqslant = \"⩽̸\";\nvar nles = \"⩽̸\";\nvar nless = \"≮\";\nvar nlsim = \"≴\";\nvar nlt = \"≮\";\nvar nltri = \"⋪\";\nvar nltrie = \"⋬\";\nvar nmid = \"∤\";\nvar nopf = \"𝕟\";\nvar no = \"¬\";\nvar not = \"¬\";\nvar notin = \"∉\";\nvar notinE = \"⋹̸\";\nvar notindot = \"⋵̸\";\nvar notinva = \"∉\";\nvar notinvb = \"⋷\";\nvar notinvc = \"⋶\";\nvar notni = \"∌\";\nvar notniva = \"∌\";\nvar notnivb = \"⋾\";\nvar notnivc = \"⋽\";\nvar npar = \"∦\";\nvar nparallel = \"∦\";\nvar nparsl = \"⫽⃥\";\nvar npart = \"∂̸\";\nvar npolint = \"⨔\";\nvar npr = \"⊀\";\nvar nprcue = \"⋠\";\nvar npre = \"⪯̸\";\nvar nprec = \"⊀\";\nvar npreceq = \"⪯̸\";\nvar nrArr = \"⇏\";\nvar nrarr = \"↛\";\nvar nrarrc = \"⤳̸\";\nvar nrarrw = \"↝̸\";\nvar nrightarrow = \"↛\";\nvar nrtri = \"⋫\";\nvar nrtrie = \"⋭\";\nvar nsc = \"⊁\";\nvar nsccue = \"⋡\";\nvar nsce = \"⪰̸\";\nvar nscr = \"𝓃\";\nvar nshortmid = \"∤\";\nvar nshortparallel = \"∦\";\nvar nsim = \"≁\";\nvar nsime = \"≄\";\nvar nsimeq = \"≄\";\nvar nsmid = \"∤\";\nvar nspar = \"∦\";\nvar nsqsube = \"⋢\";\nvar nsqsupe = \"⋣\";\nvar nsub = \"⊄\";\nvar nsubE = \"⫅̸\";\nvar nsube = \"⊈\";\nvar nsubset = \"⊂⃒\";\nvar nsubseteq = \"⊈\";\nvar nsubseteqq = \"⫅̸\";\nvar nsucc = \"⊁\";\nvar nsucceq = \"⪰̸\";\nvar nsup = \"⊅\";\nvar nsupE = \"⫆̸\";\nvar nsupe = \"⊉\";\nvar nsupset = \"⊃⃒\";\nvar nsupseteq = \"⊉\";\nvar nsupseteqq = \"⫆̸\";\nvar ntgl = \"≹\";\nvar ntild = \"ñ\";\nvar ntilde = \"ñ\";\nvar ntlg = \"≸\";\nvar ntriangleleft = \"⋪\";\nvar ntrianglelefteq = \"⋬\";\nvar ntriangleright = \"⋫\";\nvar ntrianglerighteq = \"⋭\";\nvar nu = \"ν\";\nvar num = \"#\";\nvar numero = \"№\";\nvar numsp = \" \";\nvar nvDash = \"⊭\";\nvar nvHarr = \"⤄\";\nvar nvap = \"≍⃒\";\nvar nvdash = \"⊬\";\nvar nvge = \"≥⃒\";\nvar nvgt = \">⃒\";\nvar nvinfin = \"⧞\";\nvar nvlArr = \"⤂\";\nvar nvle = \"≤⃒\";\nvar nvlt = \"<⃒\";\nvar nvltrie = \"⊴⃒\";\nvar nvrArr = \"⤃\";\nvar nvrtrie = \"⊵⃒\";\nvar nvsim = \"∼⃒\";\nvar nwArr = \"⇖\";\nvar nwarhk = \"⤣\";\nvar nwarr = \"↖\";\nvar nwarrow = \"↖\";\nvar nwnear = \"⤧\";\nvar oS = \"Ⓢ\";\nvar oacut = \"ó\";\nvar oacute = \"ó\";\nvar oast = \"⊛\";\nvar ocir = \"ô\";\nvar ocirc = \"ô\";\nvar ocy = \"о\";\nvar odash = \"⊝\";\nvar odblac = \"ő\";\nvar odiv = \"⨸\";\nvar odot = \"⊙\";\nvar odsold = \"⦼\";\nvar oelig = \"œ\";\nvar ofcir = \"⦿\";\nvar ofr = \"𝔬\";\nvar ogon = \"˛\";\nvar ograv = \"ò\";\nvar ograve = \"ò\";\nvar ogt = \"⧁\";\nvar ohbar = \"⦵\";\nvar ohm = \"Ω\";\nvar oint = \"∮\";\nvar olarr = \"↺\";\nvar olcir = \"⦾\";\nvar olcross = \"⦻\";\nvar oline = \"‾\";\nvar olt = \"⧀\";\nvar omacr = \"ō\";\nvar omega = \"ω\";\nvar omicron = \"ο\";\nvar omid = \"⦶\";\nvar ominus = \"⊖\";\nvar oopf = \"𝕠\";\nvar opar = \"⦷\";\nvar operp = \"⦹\";\nvar oplus = \"⊕\";\nvar or = \"∨\";\nvar orarr = \"↻\";\nvar ord = \"º\";\nvar order = \"ℴ\";\nvar orderof = \"ℴ\";\nvar ordf = \"ª\";\nvar ordm = \"º\";\nvar origof = \"⊶\";\nvar oror = \"⩖\";\nvar orslope = \"⩗\";\nvar orv = \"⩛\";\nvar oscr = \"ℴ\";\nvar oslas = \"ø\";\nvar oslash = \"ø\";\nvar osol = \"⊘\";\nvar otild = \"õ\";\nvar otilde = \"õ\";\nvar otimes = \"⊗\";\nvar otimesas = \"⨶\";\nvar oum = \"ö\";\nvar ouml = \"ö\";\nvar ovbar = \"⌽\";\nvar par = \"¶\";\nvar para = \"¶\";\nvar parallel = \"∥\";\nvar parsim = \"⫳\";\nvar parsl = \"⫽\";\nvar part = \"∂\";\nvar pcy = \"п\";\nvar percnt = \"%\";\nvar period = \".\";\nvar permil = \"‰\";\nvar perp = \"⊥\";\nvar pertenk = \"‱\";\nvar pfr = \"𝔭\";\nvar phi = \"φ\";\nvar phiv = \"ϕ\";\nvar phmmat = \"ℳ\";\nvar phone = \"☎\";\nvar pi = \"π\";\nvar pitchfork = \"⋔\";\nvar piv = \"ϖ\";\nvar planck = \"ℏ\";\nvar planckh = \"ℎ\";\nvar plankv = \"ℏ\";\nvar plus = \"+\";\nvar plusacir = \"⨣\";\nvar plusb = \"⊞\";\nvar pluscir = \"⨢\";\nvar plusdo = \"∔\";\nvar plusdu = \"⨥\";\nvar pluse = \"⩲\";\nvar plusm = \"±\";\nvar plusmn = \"±\";\nvar plussim = \"⨦\";\nvar plustwo = \"⨧\";\nvar pm = \"±\";\nvar pointint = \"⨕\";\nvar popf = \"𝕡\";\nvar poun = \"£\";\nvar pound = \"£\";\nvar pr = \"≺\";\nvar prE = \"⪳\";\nvar prap = \"⪷\";\nvar prcue = \"≼\";\nvar pre = \"⪯\";\nvar prec = \"≺\";\nvar precapprox = \"⪷\";\nvar preccurlyeq = \"≼\";\nvar preceq = \"⪯\";\nvar precnapprox = \"⪹\";\nvar precneqq = \"⪵\";\nvar precnsim = \"⋨\";\nvar precsim = \"≾\";\nvar prime = \"′\";\nvar primes = \"ℙ\";\nvar prnE = \"⪵\";\nvar prnap = \"⪹\";\nvar prnsim = \"⋨\";\nvar prod = \"∏\";\nvar profalar = \"⌮\";\nvar profline = \"⌒\";\nvar profsurf = \"⌓\";\nvar prop = \"∝\";\nvar propto = \"∝\";\nvar prsim = \"≾\";\nvar prurel = \"⊰\";\nvar pscr = \"𝓅\";\nvar psi = \"ψ\";\nvar puncsp = \" \";\nvar qfr = \"𝔮\";\nvar qint = \"⨌\";\nvar qopf = \"𝕢\";\nvar qprime = \"⁗\";\nvar qscr = \"𝓆\";\nvar quaternions = \"ℍ\";\nvar quatint = \"⨖\";\nvar quest = \"?\";\nvar questeq = \"≟\";\nvar quo = \"\\\"\";\nvar quot = \"\\\"\";\nvar rAarr = \"⇛\";\nvar rArr = \"⇒\";\nvar rAtail = \"⤜\";\nvar rBarr = \"⤏\";\nvar rHar = \"⥤\";\nvar race = \"∽̱\";\nvar racute = \"ŕ\";\nvar radic = \"√\";\nvar raemptyv = \"⦳\";\nvar rang = \"⟩\";\nvar rangd = \"⦒\";\nvar range = \"⦥\";\nvar rangle = \"⟩\";\nvar raqu = \"»\";\nvar raquo = \"»\";\nvar rarr = \"→\";\nvar rarrap = \"⥵\";\nvar rarrb = \"⇥\";\nvar rarrbfs = \"⤠\";\nvar rarrc = \"⤳\";\nvar rarrfs = \"⤞\";\nvar rarrhk = \"↪\";\nvar rarrlp = \"↬\";\nvar rarrpl = \"⥅\";\nvar rarrsim = \"⥴\";\nvar rarrtl = \"↣\";\nvar rarrw = \"↝\";\nvar ratail = \"⤚\";\nvar ratio = \"∶\";\nvar rationals = \"ℚ\";\nvar rbarr = \"⤍\";\nvar rbbrk = \"❳\";\nvar rbrace = \"}\";\nvar rbrack = \"]\";\nvar rbrke = \"⦌\";\nvar rbrksld = \"⦎\";\nvar rbrkslu = \"⦐\";\nvar rcaron = \"ř\";\nvar rcedil = \"ŗ\";\nvar rceil = \"⌉\";\nvar rcub = \"}\";\nvar rcy = \"р\";\nvar rdca = \"⤷\";\nvar rdldhar = \"⥩\";\nvar rdquo = \"”\";\nvar rdquor = \"”\";\nvar rdsh = \"↳\";\nvar real = \"ℜ\";\nvar realine = \"ℛ\";\nvar realpart = \"ℜ\";\nvar reals = \"ℝ\";\nvar rect = \"▭\";\nvar re = \"®\";\nvar reg = \"®\";\nvar rfisht = \"⥽\";\nvar rfloor = \"⌋\";\nvar rfr = \"𝔯\";\nvar rhard = \"⇁\";\nvar rharu = \"⇀\";\nvar rharul = \"⥬\";\nvar rho = \"ρ\";\nvar rhov = \"ϱ\";\nvar rightarrow = \"→\";\nvar rightarrowtail = \"↣\";\nvar rightharpoondown = \"⇁\";\nvar rightharpoonup = \"⇀\";\nvar rightleftarrows = \"⇄\";\nvar rightleftharpoons = \"⇌\";\nvar rightrightarrows = \"⇉\";\nvar rightsquigarrow = \"↝\";\nvar rightthreetimes = \"⋌\";\nvar ring = \"˚\";\nvar risingdotseq = \"≓\";\nvar rlarr = \"⇄\";\nvar rlhar = \"⇌\";\nvar rlm = \"\";\nvar rmoust = \"⎱\";\nvar rmoustache = \"⎱\";\nvar rnmid = \"⫮\";\nvar roang = \"⟭\";\nvar roarr = \"⇾\";\nvar robrk = \"⟧\";\nvar ropar = \"⦆\";\nvar ropf = \"𝕣\";\nvar roplus = \"⨮\";\nvar rotimes = \"⨵\";\nvar rpar = \")\";\nvar rpargt = \"⦔\";\nvar rppolint = \"⨒\";\nvar rrarr = \"⇉\";\nvar rsaquo = \"›\";\nvar rscr = \"𝓇\";\nvar rsh = \"↱\";\nvar rsqb = \"]\";\nvar rsquo = \"’\";\nvar rsquor = \"’\";\nvar rthree = \"⋌\";\nvar rtimes = \"⋊\";\nvar rtri = \"▹\";\nvar rtrie = \"⊵\";\nvar rtrif = \"▸\";\nvar rtriltri = \"⧎\";\nvar ruluhar = \"⥨\";\nvar rx = \"℞\";\nvar sacute = \"ś\";\nvar sbquo = \"‚\";\nvar sc = \"≻\";\nvar scE = \"⪴\";\nvar scap = \"⪸\";\nvar scaron = \"š\";\nvar sccue = \"≽\";\nvar sce = \"⪰\";\nvar scedil = \"ş\";\nvar scirc = \"ŝ\";\nvar scnE = \"⪶\";\nvar scnap = \"⪺\";\nvar scnsim = \"⋩\";\nvar scpolint = \"⨓\";\nvar scsim = \"≿\";\nvar scy = \"с\";\nvar sdot = \"⋅\";\nvar sdotb = \"⊡\";\nvar sdote = \"⩦\";\nvar seArr = \"⇘\";\nvar searhk = \"⤥\";\nvar searr = \"↘\";\nvar searrow = \"↘\";\nvar sec = \"§\";\nvar sect = \"§\";\nvar semi = \";\";\nvar seswar = \"⤩\";\nvar setminus = \"∖\";\nvar setmn = \"∖\";\nvar sext = \"✶\";\nvar sfr = \"𝔰\";\nvar sfrown = \"⌢\";\nvar sharp = \"♯\";\nvar shchcy = \"щ\";\nvar shcy = \"ш\";\nvar shortmid = \"∣\";\nvar shortparallel = \"∥\";\nvar sh = \"\";\nvar shy = \"\";\nvar sigma = \"σ\";\nvar sigmaf = \"ς\";\nvar sigmav = \"ς\";\nvar sim = \"∼\";\nvar simdot = \"⩪\";\nvar sime = \"≃\";\nvar simeq = \"≃\";\nvar simg = \"⪞\";\nvar simgE = \"⪠\";\nvar siml = \"⪝\";\nvar simlE = \"⪟\";\nvar simne = \"≆\";\nvar simplus = \"⨤\";\nvar simrarr = \"⥲\";\nvar slarr = \"←\";\nvar smallsetminus = \"∖\";\nvar smashp = \"⨳\";\nvar smeparsl = \"⧤\";\nvar smid = \"∣\";\nvar smile = \"⌣\";\nvar smt = \"⪪\";\nvar smte = \"⪬\";\nvar smtes = \"⪬︀\";\nvar softcy = \"ь\";\nvar sol = \"/\";\nvar solb = \"⧄\";\nvar solbar = \"⌿\";\nvar sopf = \"𝕤\";\nvar spades = \"♠\";\nvar spadesuit = \"♠\";\nvar spar = \"∥\";\nvar sqcap = \"⊓\";\nvar sqcaps = \"⊓︀\";\nvar sqcup = \"⊔\";\nvar sqcups = \"⊔︀\";\nvar sqsub = \"⊏\";\nvar sqsube = \"⊑\";\nvar sqsubset = \"⊏\";\nvar sqsubseteq = \"⊑\";\nvar sqsup = \"⊐\";\nvar sqsupe = \"⊒\";\nvar sqsupset = \"⊐\";\nvar sqsupseteq = \"⊒\";\nvar squ = \"□\";\nvar square = \"□\";\nvar squarf = \"▪\";\nvar squf = \"▪\";\nvar srarr = \"→\";\nvar sscr = \"𝓈\";\nvar ssetmn = \"∖\";\nvar ssmile = \"⌣\";\nvar sstarf = \"⋆\";\nvar star = \"☆\";\nvar starf = \"★\";\nvar straightepsilon = \"ϵ\";\nvar straightphi = \"ϕ\";\nvar strns = \"¯\";\nvar sub = \"⊂\";\nvar subE = \"⫅\";\nvar subdot = \"⪽\";\nvar sube = \"⊆\";\nvar subedot = \"⫃\";\nvar submult = \"⫁\";\nvar subnE = \"⫋\";\nvar subne = \"⊊\";\nvar subplus = \"⪿\";\nvar subrarr = \"⥹\";\nvar subset = \"⊂\";\nvar subseteq = \"⊆\";\nvar subseteqq = \"⫅\";\nvar subsetneq = \"⊊\";\nvar subsetneqq = \"⫋\";\nvar subsim = \"⫇\";\nvar subsub = \"⫕\";\nvar subsup = \"⫓\";\nvar succ = \"≻\";\nvar succapprox = \"⪸\";\nvar succcurlyeq = \"≽\";\nvar succeq = \"⪰\";\nvar succnapprox = \"⪺\";\nvar succneqq = \"⪶\";\nvar succnsim = \"⋩\";\nvar succsim = \"≿\";\nvar sum = \"∑\";\nvar sung = \"♪\";\nvar sup = \"⊃\";\nvar sup1 = \"¹\";\nvar sup2 = \"²\";\nvar sup3 = \"³\";\nvar supE = \"⫆\";\nvar supdot = \"⪾\";\nvar supdsub = \"⫘\";\nvar supe = \"⊇\";\nvar supedot = \"⫄\";\nvar suphsol = \"⟉\";\nvar suphsub = \"⫗\";\nvar suplarr = \"⥻\";\nvar supmult = \"⫂\";\nvar supnE = \"⫌\";\nvar supne = \"⊋\";\nvar supplus = \"⫀\";\nvar supset = \"⊃\";\nvar supseteq = \"⊇\";\nvar supseteqq = \"⫆\";\nvar supsetneq = \"⊋\";\nvar supsetneqq = \"⫌\";\nvar supsim = \"⫈\";\nvar supsub = \"⫔\";\nvar supsup = \"⫖\";\nvar swArr = \"⇙\";\nvar swarhk = \"⤦\";\nvar swarr = \"↙\";\nvar swarrow = \"↙\";\nvar swnwar = \"⤪\";\nvar szli = \"ß\";\nvar szlig = \"ß\";\nvar target = \"⌖\";\nvar tau = \"τ\";\nvar tbrk = \"⎴\";\nvar tcaron = \"ť\";\nvar tcedil = \"ţ\";\nvar tcy = \"т\";\nvar tdot = \"⃛\";\nvar telrec = \"⌕\";\nvar tfr = \"𝔱\";\nvar there4 = \"∴\";\nvar therefore = \"∴\";\nvar theta = \"θ\";\nvar thetasym = \"ϑ\";\nvar thetav = \"ϑ\";\nvar thickapprox = \"≈\";\nvar thicksim = \"∼\";\nvar thinsp = \" \";\nvar thkap = \"≈\";\nvar thksim = \"∼\";\nvar thor = \"þ\";\nvar thorn = \"þ\";\nvar tilde = \"˜\";\nvar time = \"×\";\nvar times = \"×\";\nvar timesb = \"⊠\";\nvar timesbar = \"⨱\";\nvar timesd = \"⨰\";\nvar tint = \"∭\";\nvar toea = \"⤨\";\nvar top = \"⊤\";\nvar topbot = \"⌶\";\nvar topcir = \"⫱\";\nvar topf = \"𝕥\";\nvar topfork = \"⫚\";\nvar tosa = \"⤩\";\nvar tprime = \"‴\";\nvar trade = \"™\";\nvar triangle = \"▵\";\nvar triangledown = \"▿\";\nvar triangleleft = \"◃\";\nvar trianglelefteq = \"⊴\";\nvar triangleq = \"≜\";\nvar triangleright = \"▹\";\nvar trianglerighteq = \"⊵\";\nvar tridot = \"◬\";\nvar trie = \"≜\";\nvar triminus = \"⨺\";\nvar triplus = \"⨹\";\nvar trisb = \"⧍\";\nvar tritime = \"⨻\";\nvar trpezium = \"⏢\";\nvar tscr = \"𝓉\";\nvar tscy = \"ц\";\nvar tshcy = \"ћ\";\nvar tstrok = \"ŧ\";\nvar twixt = \"≬\";\nvar twoheadleftarrow = \"↞\";\nvar twoheadrightarrow = \"↠\";\nvar uArr = \"⇑\";\nvar uHar = \"⥣\";\nvar uacut = \"ú\";\nvar uacute = \"ú\";\nvar uarr = \"↑\";\nvar ubrcy = \"ў\";\nvar ubreve = \"ŭ\";\nvar ucir = \"û\";\nvar ucirc = \"û\";\nvar ucy = \"у\";\nvar udarr = \"⇅\";\nvar udblac = \"ű\";\nvar udhar = \"⥮\";\nvar ufisht = \"⥾\";\nvar ufr = \"𝔲\";\nvar ugrav = \"ù\";\nvar ugrave = \"ù\";\nvar uharl = \"↿\";\nvar uharr = \"↾\";\nvar uhblk = \"▀\";\nvar ulcorn = \"⌜\";\nvar ulcorner = \"⌜\";\nvar ulcrop = \"⌏\";\nvar ultri = \"◸\";\nvar umacr = \"ū\";\nvar um = \"¨\";\nvar uml = \"¨\";\nvar uogon = \"ų\";\nvar uopf = \"𝕦\";\nvar uparrow = \"↑\";\nvar updownarrow = \"↕\";\nvar upharpoonleft = \"↿\";\nvar upharpoonright = \"↾\";\nvar uplus = \"⊎\";\nvar upsi = \"υ\";\nvar upsih = \"ϒ\";\nvar upsilon = \"υ\";\nvar upuparrows = \"⇈\";\nvar urcorn = \"⌝\";\nvar urcorner = \"⌝\";\nvar urcrop = \"⌎\";\nvar uring = \"ů\";\nvar urtri = \"◹\";\nvar uscr = \"𝓊\";\nvar utdot = \"⋰\";\nvar utilde = \"ũ\";\nvar utri = \"▵\";\nvar utrif = \"▴\";\nvar uuarr = \"⇈\";\nvar uum = \"ü\";\nvar uuml = \"ü\";\nvar uwangle = \"⦧\";\nvar vArr = \"⇕\";\nvar vBar = \"⫨\";\nvar vBarv = \"⫩\";\nvar vDash = \"⊨\";\nvar vangrt = \"⦜\";\nvar varepsilon = \"ϵ\";\nvar varkappa = \"ϰ\";\nvar varnothing = \"∅\";\nvar varphi = \"ϕ\";\nvar varpi = \"ϖ\";\nvar varpropto = \"∝\";\nvar varr = \"↕\";\nvar varrho = \"ϱ\";\nvar varsigma = \"ς\";\nvar varsubsetneq = \"⊊︀\";\nvar varsubsetneqq = \"⫋︀\";\nvar varsupsetneq = \"⊋︀\";\nvar varsupsetneqq = \"⫌︀\";\nvar vartheta = \"ϑ\";\nvar vartriangleleft = \"⊲\";\nvar vartriangleright = \"⊳\";\nvar vcy = \"в\";\nvar vdash = \"⊢\";\nvar vee = \"∨\";\nvar veebar = \"⊻\";\nvar veeeq = \"≚\";\nvar vellip = \"⋮\";\nvar verbar = \"|\";\nvar vert = \"|\";\nvar vfr = \"𝔳\";\nvar vltri = \"⊲\";\nvar vnsub = \"⊂⃒\";\nvar vnsup = \"⊃⃒\";\nvar vopf = \"𝕧\";\nvar vprop = \"∝\";\nvar vrtri = \"⊳\";\nvar vscr = \"𝓋\";\nvar vsubnE = \"⫋︀\";\nvar vsubne = \"⊊︀\";\nvar vsupnE = \"⫌︀\";\nvar vsupne = \"⊋︀\";\nvar vzigzag = \"⦚\";\nvar wcirc = \"ŵ\";\nvar wedbar = \"⩟\";\nvar wedge = \"∧\";\nvar wedgeq = \"≙\";\nvar weierp = \"℘\";\nvar wfr = \"𝔴\";\nvar wopf = \"𝕨\";\nvar wp = \"℘\";\nvar wr = \"≀\";\nvar wreath = \"≀\";\nvar wscr = \"𝓌\";\nvar xcap = \"⋂\";\nvar xcirc = \"◯\";\nvar xcup = \"⋃\";\nvar xdtri = \"▽\";\nvar xfr = \"𝔵\";\nvar xhArr = \"⟺\";\nvar xharr = \"⟷\";\nvar xi = \"ξ\";\nvar xlArr = \"⟸\";\nvar xlarr = \"⟵\";\nvar xmap = \"⟼\";\nvar xnis = \"⋻\";\nvar xodot = \"⨀\";\nvar xopf = \"𝕩\";\nvar xoplus = \"⨁\";\nvar xotime = \"⨂\";\nvar xrArr = \"⟹\";\nvar xrarr = \"⟶\";\nvar xscr = \"𝓍\";\nvar xsqcup = \"⨆\";\nvar xuplus = \"⨄\";\nvar xutri = \"△\";\nvar xvee = \"⋁\";\nvar xwedge = \"⋀\";\nvar yacut = \"ý\";\nvar yacute = \"ý\";\nvar yacy = \"я\";\nvar ycirc = \"ŷ\";\nvar ycy = \"ы\";\nvar ye = \"¥\";\nvar yen = \"¥\";\nvar yfr = \"𝔶\";\nvar yicy = \"ї\";\nvar yopf = \"𝕪\";\nvar yscr = \"𝓎\";\nvar yucy = \"ю\";\nvar yum = \"ÿ\";\nvar yuml = \"ÿ\";\nvar zacute = \"ź\";\nvar zcaron = \"ž\";\nvar zcy = \"з\";\nvar zdot = \"ż\";\nvar zeetrf = \"ℨ\";\nvar zeta = \"ζ\";\nvar zfr = \"𝔷\";\nvar zhcy = \"ж\";\nvar zigrarr = \"⇝\";\nvar zopf = \"𝕫\";\nvar zscr = \"𝓏\";\nvar zwj = \"\";\nvar zwnj = \"\";\nvar require$$0 = {\n AEli: AEli,\n AElig: AElig,\n AM: AM,\n AMP: AMP,\n Aacut: Aacut,\n Aacute: Aacute,\n Abreve: Abreve,\n Acir: Acir,\n Acirc: Acirc,\n Acy: Acy,\n Afr: Afr,\n Agrav: Agrav,\n Agrave: Agrave,\n Alpha: Alpha,\n Amacr: Amacr,\n And: And,\n Aogon: Aogon,\n Aopf: Aopf,\n ApplyFunction: ApplyFunction,\n Arin: Arin,\n Aring: Aring,\n Ascr: Ascr,\n Assign: Assign,\n Atild: Atild,\n Atilde: Atilde,\n Aum: Aum,\n Auml: Auml,\n Backslash: Backslash,\n Barv: Barv,\n Barwed: Barwed,\n Bcy: Bcy,\n Because: Because,\n Bernoullis: Bernoullis,\n Beta: Beta,\n Bfr: Bfr,\n Bopf: Bopf,\n Breve: Breve,\n Bscr: Bscr,\n Bumpeq: Bumpeq,\n CHcy: CHcy,\n COP: COP,\n COPY: COPY,\n Cacute: Cacute,\n Cap: Cap,\n CapitalDifferentialD: CapitalDifferentialD,\n Cayleys: Cayleys,\n Ccaron: Ccaron,\n Ccedi: Ccedi,\n Ccedil: Ccedil,\n Ccirc: Ccirc,\n Cconint: Cconint,\n Cdot: Cdot,\n Cedilla: Cedilla,\n CenterDot: CenterDot,\n Cfr: Cfr,\n Chi: Chi,\n CircleDot: CircleDot,\n CircleMinus: CircleMinus,\n CirclePlus: CirclePlus,\n CircleTimes: CircleTimes,\n ClockwiseContourIntegral: ClockwiseContourIntegral,\n CloseCurlyDoubleQuote: CloseCurlyDoubleQuote,\n CloseCurlyQuote: CloseCurlyQuote,\n Colon: Colon,\n Colone: Colone,\n Congruent: Congruent,\n Conint: Conint,\n ContourIntegral: ContourIntegral,\n Copf: Copf,\n Coproduct: Coproduct,\n CounterClockwiseContourIntegral: CounterClockwiseContourIntegral,\n Cross: Cross,\n Cscr: Cscr,\n Cup: Cup,\n CupCap: CupCap,\n DD: DD,\n DDotrahd: DDotrahd,\n DJcy: DJcy,\n DScy: DScy,\n DZcy: DZcy,\n Dagger: Dagger,\n Darr: Darr,\n Dashv: Dashv,\n Dcaron: Dcaron,\n Dcy: Dcy,\n Del: Del,\n Delta: Delta,\n Dfr: Dfr,\n DiacriticalAcute: DiacriticalAcute,\n DiacriticalDot: DiacriticalDot,\n DiacriticalDoubleAcute: DiacriticalDoubleAcute,\n DiacriticalGrave: DiacriticalGrave,\n DiacriticalTilde: DiacriticalTilde,\n Diamond: Diamond,\n DifferentialD: DifferentialD,\n Dopf: Dopf,\n Dot: Dot,\n DotDot: DotDot,\n DotEqual: DotEqual,\n DoubleContourIntegral: DoubleContourIntegral,\n DoubleDot: DoubleDot,\n DoubleDownArrow: DoubleDownArrow,\n DoubleLeftArrow: DoubleLeftArrow,\n DoubleLeftRightArrow: DoubleLeftRightArrow,\n DoubleLeftTee: DoubleLeftTee,\n DoubleLongLeftArrow: DoubleLongLeftArrow,\n DoubleLongLeftRightArrow: DoubleLongLeftRightArrow,\n DoubleLongRightArrow: DoubleLongRightArrow,\n DoubleRightArrow: DoubleRightArrow,\n DoubleRightTee: DoubleRightTee,\n DoubleUpArrow: DoubleUpArrow,\n DoubleUpDownArrow: DoubleUpDownArrow,\n DoubleVerticalBar: DoubleVerticalBar,\n DownArrow: DownArrow,\n DownArrowBar: DownArrowBar,\n DownArrowUpArrow: DownArrowUpArrow,\n DownBreve: DownBreve,\n DownLeftRightVector: DownLeftRightVector,\n DownLeftTeeVector: DownLeftTeeVector,\n DownLeftVector: DownLeftVector,\n DownLeftVectorBar: DownLeftVectorBar,\n DownRightTeeVector: DownRightTeeVector,\n DownRightVector: DownRightVector,\n DownRightVectorBar: DownRightVectorBar,\n DownTee: DownTee,\n DownTeeArrow: DownTeeArrow,\n Downarrow: Downarrow,\n Dscr: Dscr,\n Dstrok: Dstrok,\n ENG: ENG,\n ET: ET,\n ETH: ETH,\n Eacut: Eacut,\n Eacute: Eacute,\n Ecaron: Ecaron,\n Ecir: Ecir,\n Ecirc: Ecirc,\n Ecy: Ecy,\n Edot: Edot,\n Efr: Efr,\n Egrav: Egrav,\n Egrave: Egrave,\n Element: Element,\n Emacr: Emacr,\n EmptySmallSquare: EmptySmallSquare,\n EmptyVerySmallSquare: EmptyVerySmallSquare,\n Eogon: Eogon,\n Eopf: Eopf,\n Epsilon: Epsilon,\n Equal: Equal,\n EqualTilde: EqualTilde,\n Equilibrium: Equilibrium,\n Escr: Escr,\n Esim: Esim,\n Eta: Eta,\n Eum: Eum,\n Euml: Euml,\n Exists: Exists,\n ExponentialE: ExponentialE,\n Fcy: Fcy,\n Ffr: Ffr,\n FilledSmallSquare: FilledSmallSquare,\n FilledVerySmallSquare: FilledVerySmallSquare,\n Fopf: Fopf,\n ForAll: ForAll,\n Fouriertrf: Fouriertrf,\n Fscr: Fscr,\n GJcy: GJcy,\n G: G,\n GT: GT,\n Gamma: Gamma,\n Gammad: Gammad,\n Gbreve: Gbreve,\n Gcedil: Gcedil,\n Gcirc: Gcirc,\n Gcy: Gcy,\n Gdot: Gdot,\n Gfr: Gfr,\n Gg: Gg,\n Gopf: Gopf,\n GreaterEqual: GreaterEqual,\n GreaterEqualLess: GreaterEqualLess,\n GreaterFullEqual: GreaterFullEqual,\n GreaterGreater: GreaterGreater,\n GreaterLess: GreaterLess,\n GreaterSlantEqual: GreaterSlantEqual,\n GreaterTilde: GreaterTilde,\n Gscr: Gscr,\n Gt: Gt,\n HARDcy: HARDcy,\n Hacek: Hacek,\n Hat: Hat,\n Hcirc: Hcirc,\n Hfr: Hfr,\n HilbertSpace: HilbertSpace,\n Hopf: Hopf,\n HorizontalLine: HorizontalLine,\n Hscr: Hscr,\n Hstrok: Hstrok,\n HumpDownHump: HumpDownHump,\n HumpEqual: HumpEqual,\n IEcy: IEcy,\n IJlig: IJlig,\n IOcy: IOcy,\n Iacut: Iacut,\n Iacute: Iacute,\n Icir: Icir,\n Icirc: Icirc,\n Icy: Icy,\n Idot: Idot,\n Ifr: Ifr,\n Igrav: Igrav,\n Igrave: Igrave,\n Im: Im,\n Imacr: Imacr,\n ImaginaryI: ImaginaryI,\n Implies: Implies,\n Int: Int,\n Integral: Integral,\n Intersection: Intersection,\n InvisibleComma: InvisibleComma,\n InvisibleTimes: InvisibleTimes,\n Iogon: Iogon,\n Iopf: Iopf,\n Iota: Iota,\n Iscr: Iscr,\n Itilde: Itilde,\n Iukcy: Iukcy,\n Ium: Ium,\n Iuml: Iuml,\n Jcirc: Jcirc,\n Jcy: Jcy,\n Jfr: Jfr,\n Jopf: Jopf,\n Jscr: Jscr,\n Jsercy: Jsercy,\n Jukcy: Jukcy,\n KHcy: KHcy,\n KJcy: KJcy,\n Kappa: Kappa,\n Kcedil: Kcedil,\n Kcy: Kcy,\n Kfr: Kfr,\n Kopf: Kopf,\n Kscr: Kscr,\n LJcy: LJcy,\n L: L,\n LT: LT,\n Lacute: Lacute,\n Lambda: Lambda,\n Lang: Lang,\n Laplacetrf: Laplacetrf,\n Larr: Larr,\n Lcaron: Lcaron,\n Lcedil: Lcedil,\n Lcy: Lcy,\n LeftAngleBracket: LeftAngleBracket,\n LeftArrow: LeftArrow,\n LeftArrowBar: LeftArrowBar,\n LeftArrowRightArrow: LeftArrowRightArrow,\n LeftCeiling: LeftCeiling,\n LeftDoubleBracket: LeftDoubleBracket,\n LeftDownTeeVector: LeftDownTeeVector,\n LeftDownVector: LeftDownVector,\n LeftDownVectorBar: LeftDownVectorBar,\n LeftFloor: LeftFloor,\n LeftRightArrow: LeftRightArrow,\n LeftRightVector: LeftRightVector,\n LeftTee: LeftTee,\n LeftTeeArrow: LeftTeeArrow,\n LeftTeeVector: LeftTeeVector,\n LeftTriangle: LeftTriangle,\n LeftTriangleBar: LeftTriangleBar,\n LeftTriangleEqual: LeftTriangleEqual,\n LeftUpDownVector: LeftUpDownVector,\n LeftUpTeeVector: LeftUpTeeVector,\n LeftUpVector: LeftUpVector,\n LeftUpVectorBar: LeftUpVectorBar,\n LeftVector: LeftVector,\n LeftVectorBar: LeftVectorBar,\n Leftarrow: Leftarrow,\n Leftrightarrow: Leftrightarrow,\n LessEqualGreater: LessEqualGreater,\n LessFullEqual: LessFullEqual,\n LessGreater: LessGreater,\n LessLess: LessLess,\n LessSlantEqual: LessSlantEqual,\n LessTilde: LessTilde,\n Lfr: Lfr,\n Ll: Ll,\n Lleftarrow: Lleftarrow,\n Lmidot: Lmidot,\n LongLeftArrow: LongLeftArrow,\n LongLeftRightArrow: LongLeftRightArrow,\n LongRightArrow: LongRightArrow,\n Longleftarrow: Longleftarrow,\n Longleftrightarrow: Longleftrightarrow,\n Longrightarrow: Longrightarrow,\n Lopf: Lopf,\n LowerLeftArrow: LowerLeftArrow,\n LowerRightArrow: LowerRightArrow,\n Lscr: Lscr,\n Lsh: Lsh,\n Lstrok: Lstrok,\n Lt: Lt,\n \"Map\": \"⤅\",\n Mcy: Mcy,\n MediumSpace: MediumSpace,\n Mellintrf: Mellintrf,\n Mfr: Mfr,\n MinusPlus: MinusPlus,\n Mopf: Mopf,\n Mscr: Mscr,\n Mu: Mu,\n NJcy: NJcy,\n Nacute: Nacute,\n Ncaron: Ncaron,\n Ncedil: Ncedil,\n Ncy: Ncy,\n NegativeMediumSpace: NegativeMediumSpace,\n NegativeThickSpace: NegativeThickSpace,\n NegativeThinSpace: NegativeThinSpace,\n NegativeVeryThinSpace: NegativeVeryThinSpace,\n NestedGreaterGreater: NestedGreaterGreater,\n NestedLessLess: NestedLessLess,\n NewLine: NewLine,\n Nfr: Nfr,\n NoBreak: NoBreak,\n NonBreakingSpace: NonBreakingSpace,\n Nopf: Nopf,\n Not: Not,\n NotCongruent: NotCongruent,\n NotCupCap: NotCupCap,\n NotDoubleVerticalBar: NotDoubleVerticalBar,\n NotElement: NotElement,\n NotEqual: NotEqual,\n NotEqualTilde: NotEqualTilde,\n NotExists: NotExists,\n NotGreater: NotGreater,\n NotGreaterEqual: NotGreaterEqual,\n NotGreaterFullEqual: NotGreaterFullEqual,\n NotGreaterGreater: NotGreaterGreater,\n NotGreaterLess: NotGreaterLess,\n NotGreaterSlantEqual: NotGreaterSlantEqual,\n NotGreaterTilde: NotGreaterTilde,\n NotHumpDownHump: NotHumpDownHump,\n NotHumpEqual: NotHumpEqual,\n NotLeftTriangle: NotLeftTriangle,\n NotLeftTriangleBar: NotLeftTriangleBar,\n NotLeftTriangleEqual: NotLeftTriangleEqual,\n NotLess: NotLess,\n NotLessEqual: NotLessEqual,\n NotLessGreater: NotLessGreater,\n NotLessLess: NotLessLess,\n NotLessSlantEqual: NotLessSlantEqual,\n NotLessTilde: NotLessTilde,\n NotNestedGreaterGreater: NotNestedGreaterGreater,\n NotNestedLessLess: NotNestedLessLess,\n NotPrecedes: NotPrecedes,\n NotPrecedesEqual: NotPrecedesEqual,\n NotPrecedesSlantEqual: NotPrecedesSlantEqual,\n NotReverseElement: NotReverseElement,\n NotRightTriangle: NotRightTriangle,\n NotRightTriangleBar: NotRightTriangleBar,\n NotRightTriangleEqual: NotRightTriangleEqual,\n NotSquareSubset: NotSquareSubset,\n NotSquareSubsetEqual: NotSquareSubsetEqual,\n NotSquareSuperset: NotSquareSuperset,\n NotSquareSupersetEqual: NotSquareSupersetEqual,\n NotSubset: NotSubset,\n NotSubsetEqual: NotSubsetEqual,\n NotSucceeds: NotSucceeds,\n NotSucceedsEqual: NotSucceedsEqual,\n NotSucceedsSlantEqual: NotSucceedsSlantEqual,\n NotSucceedsTilde: NotSucceedsTilde,\n NotSuperset: NotSuperset,\n NotSupersetEqual: NotSupersetEqual,\n NotTilde: NotTilde,\n NotTildeEqual: NotTildeEqual,\n NotTildeFullEqual: NotTildeFullEqual,\n NotTildeTilde: NotTildeTilde,\n NotVerticalBar: NotVerticalBar,\n Nscr: Nscr,\n Ntild: Ntild,\n Ntilde: Ntilde,\n Nu: Nu,\n OElig: OElig,\n Oacut: Oacut,\n Oacute: Oacute,\n Ocir: Ocir,\n Ocirc: Ocirc,\n Ocy: Ocy,\n Odblac: Odblac,\n Ofr: Ofr,\n Ograv: Ograv,\n Ograve: Ograve,\n Omacr: Omacr,\n Omega: Omega,\n Omicron: Omicron,\n Oopf: Oopf,\n OpenCurlyDoubleQuote: OpenCurlyDoubleQuote,\n OpenCurlyQuote: OpenCurlyQuote,\n Or: Or,\n Oscr: Oscr,\n Oslas: Oslas,\n Oslash: Oslash,\n Otild: Otild,\n Otilde: Otilde,\n Otimes: Otimes,\n Oum: Oum,\n Ouml: Ouml,\n OverBar: OverBar,\n OverBrace: OverBrace,\n OverBracket: OverBracket,\n OverParenthesis: OverParenthesis,\n PartialD: PartialD,\n Pcy: Pcy,\n Pfr: Pfr,\n Phi: Phi,\n Pi: Pi,\n PlusMinus: PlusMinus,\n Poincareplane: Poincareplane,\n Popf: Popf,\n Pr: Pr,\n Precedes: Precedes,\n PrecedesEqual: PrecedesEqual,\n PrecedesSlantEqual: PrecedesSlantEqual,\n PrecedesTilde: PrecedesTilde,\n Prime: Prime,\n Product: Product,\n Proportion: Proportion,\n Proportional: Proportional,\n Pscr: Pscr,\n Psi: Psi,\n QUO: QUO,\n QUOT: QUOT,\n Qfr: Qfr,\n Qopf: Qopf,\n Qscr: Qscr,\n RBarr: RBarr,\n RE: RE,\n REG: REG,\n Racute: Racute,\n Rang: Rang,\n Rarr: Rarr,\n Rarrtl: Rarrtl,\n Rcaron: Rcaron,\n Rcedil: Rcedil,\n Rcy: Rcy,\n Re: Re,\n ReverseElement: ReverseElement,\n ReverseEquilibrium: ReverseEquilibrium,\n ReverseUpEquilibrium: ReverseUpEquilibrium,\n Rfr: Rfr,\n Rho: Rho,\n RightAngleBracket: RightAngleBracket,\n RightArrow: RightArrow,\n RightArrowBar: RightArrowBar,\n RightArrowLeftArrow: RightArrowLeftArrow,\n RightCeiling: RightCeiling,\n RightDoubleBracket: RightDoubleBracket,\n RightDownTeeVector: RightDownTeeVector,\n RightDownVector: RightDownVector,\n RightDownVectorBar: RightDownVectorBar,\n RightFloor: RightFloor,\n RightTee: RightTee,\n RightTeeArrow: RightTeeArrow,\n RightTeeVector: RightTeeVector,\n RightTriangle: RightTriangle,\n RightTriangleBar: RightTriangleBar,\n RightTriangleEqual: RightTriangleEqual,\n RightUpDownVector: RightUpDownVector,\n RightUpTeeVector: RightUpTeeVector,\n RightUpVector: RightUpVector,\n RightUpVectorBar: RightUpVectorBar,\n RightVector: RightVector,\n RightVectorBar: RightVectorBar,\n Rightarrow: Rightarrow,\n Ropf: Ropf,\n RoundImplies: RoundImplies,\n Rrightarrow: Rrightarrow,\n Rscr: Rscr,\n Rsh: Rsh,\n RuleDelayed: RuleDelayed,\n SHCHcy: SHCHcy,\n SHcy: SHcy,\n SOFTcy: SOFTcy,\n Sacute: Sacute,\n Sc: Sc,\n Scaron: Scaron,\n Scedil: Scedil,\n Scirc: Scirc,\n Scy: Scy,\n Sfr: Sfr,\n ShortDownArrow: ShortDownArrow,\n ShortLeftArrow: ShortLeftArrow,\n ShortRightArrow: ShortRightArrow,\n ShortUpArrow: ShortUpArrow,\n Sigma: Sigma,\n SmallCircle: SmallCircle,\n Sopf: Sopf,\n Sqrt: Sqrt,\n Square: Square,\n SquareIntersection: SquareIntersection,\n SquareSubset: SquareSubset,\n SquareSubsetEqual: SquareSubsetEqual,\n SquareSuperset: SquareSuperset,\n SquareSupersetEqual: SquareSupersetEqual,\n SquareUnion: SquareUnion,\n Sscr: Sscr,\n Star: Star,\n Sub: Sub,\n Subset: Subset,\n SubsetEqual: SubsetEqual,\n Succeeds: Succeeds,\n SucceedsEqual: SucceedsEqual,\n SucceedsSlantEqual: SucceedsSlantEqual,\n SucceedsTilde: SucceedsTilde,\n SuchThat: SuchThat,\n Sum: Sum,\n Sup: Sup,\n Superset: Superset,\n SupersetEqual: SupersetEqual,\n Supset: Supset,\n THOR: THOR,\n THORN: THORN,\n TRADE: TRADE,\n TSHcy: TSHcy,\n TScy: TScy,\n Tab: Tab,\n Tau: Tau,\n Tcaron: Tcaron,\n Tcedil: Tcedil,\n Tcy: Tcy,\n Tfr: Tfr,\n Therefore: Therefore,\n Theta: Theta,\n ThickSpace: ThickSpace,\n ThinSpace: ThinSpace,\n Tilde: Tilde,\n TildeEqual: TildeEqual,\n TildeFullEqual: TildeFullEqual,\n TildeTilde: TildeTilde,\n Topf: Topf,\n TripleDot: TripleDot,\n Tscr: Tscr,\n Tstrok: Tstrok,\n Uacut: Uacut,\n Uacute: Uacute,\n Uarr: Uarr,\n Uarrocir: Uarrocir,\n Ubrcy: Ubrcy,\n Ubreve: Ubreve,\n Ucir: Ucir,\n Ucirc: Ucirc,\n Ucy: Ucy,\n Udblac: Udblac,\n Ufr: Ufr,\n Ugrav: Ugrav,\n Ugrave: Ugrave,\n Umacr: Umacr,\n UnderBar: UnderBar,\n UnderBrace: UnderBrace,\n UnderBracket: UnderBracket,\n UnderParenthesis: UnderParenthesis,\n Union: Union,\n UnionPlus: UnionPlus,\n Uogon: Uogon,\n Uopf: Uopf,\n UpArrow: UpArrow,\n UpArrowBar: UpArrowBar,\n UpArrowDownArrow: UpArrowDownArrow,\n UpDownArrow: UpDownArrow,\n UpEquilibrium: UpEquilibrium,\n UpTee: UpTee,\n UpTeeArrow: UpTeeArrow,\n Uparrow: Uparrow,\n Updownarrow: Updownarrow,\n UpperLeftArrow: UpperLeftArrow,\n UpperRightArrow: UpperRightArrow,\n Upsi: Upsi,\n Upsilon: Upsilon,\n Uring: Uring,\n Uscr: Uscr,\n Utilde: Utilde,\n Uum: Uum,\n Uuml: Uuml,\n VDash: VDash,\n Vbar: Vbar,\n Vcy: Vcy,\n Vdash: Vdash,\n Vdashl: Vdashl,\n Vee: Vee,\n Verbar: Verbar,\n Vert: Vert,\n VerticalBar: VerticalBar,\n VerticalLine: VerticalLine,\n VerticalSeparator: VerticalSeparator,\n VerticalTilde: VerticalTilde,\n VeryThinSpace: VeryThinSpace,\n Vfr: Vfr,\n Vopf: Vopf,\n Vscr: Vscr,\n Vvdash: Vvdash,\n Wcirc: Wcirc,\n Wedge: Wedge,\n Wfr: Wfr,\n Wopf: Wopf,\n Wscr: Wscr,\n Xfr: Xfr,\n Xi: Xi,\n Xopf: Xopf,\n Xscr: Xscr,\n YAcy: YAcy,\n YIcy: YIcy,\n YUcy: YUcy,\n Yacut: Yacut,\n Yacute: Yacute,\n Ycirc: Ycirc,\n Ycy: Ycy,\n Yfr: Yfr,\n Yopf: Yopf,\n Yscr: Yscr,\n Yuml: Yuml,\n ZHcy: ZHcy,\n Zacute: Zacute,\n Zcaron: Zcaron,\n Zcy: Zcy,\n Zdot: Zdot,\n ZeroWidthSpace: ZeroWidthSpace,\n Zeta: Zeta,\n Zfr: Zfr,\n Zopf: Zopf,\n Zscr: Zscr,\n aacut: aacut,\n aacute: aacute,\n abreve: abreve,\n ac: ac,\n acE: acE,\n acd: acd,\n acir: acir,\n acirc: acirc,\n acut: acut,\n acute: acute,\n acy: acy,\n aeli: aeli,\n aelig: aelig,\n af: af,\n afr: afr,\n agrav: agrav,\n agrave: agrave,\n alefsym: alefsym,\n aleph: aleph,\n alpha: alpha,\n amacr: amacr,\n amalg: amalg,\n am: am,\n amp: amp,\n and: and,\n andand: andand,\n andd: andd,\n andslope: andslope,\n andv: andv,\n ang: ang,\n ange: ange,\n angle: angle,\n angmsd: angmsd,\n angmsdaa: angmsdaa,\n angmsdab: angmsdab,\n angmsdac: angmsdac,\n angmsdad: angmsdad,\n angmsdae: angmsdae,\n angmsdaf: angmsdaf,\n angmsdag: angmsdag,\n angmsdah: angmsdah,\n angrt: angrt,\n angrtvb: angrtvb,\n angrtvbd: angrtvbd,\n angsph: angsph,\n angst: angst,\n angzarr: angzarr,\n aogon: aogon,\n aopf: aopf,\n ap: ap,\n apE: apE,\n apacir: apacir,\n ape: ape,\n apid: apid,\n apos: apos,\n approx: approx,\n approxeq: approxeq,\n arin: arin,\n aring: aring,\n ascr: ascr,\n ast: ast,\n asymp: asymp,\n asympeq: asympeq,\n atild: atild,\n atilde: atilde,\n aum: aum,\n auml: auml,\n awconint: awconint,\n awint: awint,\n bNot: bNot,\n backcong: backcong,\n backepsilon: backepsilon,\n backprime: backprime,\n backsim: backsim,\n backsimeq: backsimeq,\n barvee: barvee,\n barwed: barwed,\n barwedge: barwedge,\n bbrk: bbrk,\n bbrktbrk: bbrktbrk,\n bcong: bcong,\n bcy: bcy,\n bdquo: bdquo,\n becaus: becaus,\n because: because,\n bemptyv: bemptyv,\n bepsi: bepsi,\n bernou: bernou,\n beta: beta,\n beth: beth,\n between: between,\n bfr: bfr,\n bigcap: bigcap,\n bigcirc: bigcirc,\n bigcup: bigcup,\n bigodot: bigodot,\n bigoplus: bigoplus,\n bigotimes: bigotimes,\n bigsqcup: bigsqcup,\n bigstar: bigstar,\n bigtriangledown: bigtriangledown,\n bigtriangleup: bigtriangleup,\n biguplus: biguplus,\n bigvee: bigvee,\n bigwedge: bigwedge,\n bkarow: bkarow,\n blacklozenge: blacklozenge,\n blacksquare: blacksquare,\n blacktriangle: blacktriangle,\n blacktriangledown: blacktriangledown,\n blacktriangleleft: blacktriangleleft,\n blacktriangleright: blacktriangleright,\n blank: blank,\n blk12: blk12,\n blk14: blk14,\n blk34: blk34,\n block: block,\n bne: bne,\n bnequiv: bnequiv,\n bnot: bnot,\n bopf: bopf,\n bot: bot,\n bottom: bottom,\n bowtie: bowtie,\n boxDL: boxDL,\n boxDR: boxDR,\n boxDl: boxDl,\n boxDr: boxDr,\n boxH: boxH,\n boxHD: boxHD,\n boxHU: boxHU,\n boxHd: boxHd,\n boxHu: boxHu,\n boxUL: boxUL,\n boxUR: boxUR,\n boxUl: boxUl,\n boxUr: boxUr,\n boxV: boxV,\n boxVH: boxVH,\n boxVL: boxVL,\n boxVR: boxVR,\n boxVh: boxVh,\n boxVl: boxVl,\n boxVr: boxVr,\n boxbox: boxbox,\n boxdL: boxdL,\n boxdR: boxdR,\n boxdl: boxdl,\n boxdr: boxdr,\n boxh: boxh,\n boxhD: boxhD,\n boxhU: boxhU,\n boxhd: boxhd,\n boxhu: boxhu,\n boxminus: boxminus,\n boxplus: boxplus,\n boxtimes: boxtimes,\n boxuL: boxuL,\n boxuR: boxuR,\n boxul: boxul,\n boxur: boxur,\n boxv: boxv,\n boxvH: boxvH,\n boxvL: boxvL,\n boxvR: boxvR,\n boxvh: boxvh,\n boxvl: boxvl,\n boxvr: boxvr,\n bprime: bprime,\n breve: breve,\n brvba: brvba,\n brvbar: brvbar,\n bscr: bscr,\n bsemi: bsemi,\n bsim: bsim,\n bsime: bsime,\n bsol: bsol,\n bsolb: bsolb,\n bsolhsub: bsolhsub,\n bull: bull,\n bullet: bullet,\n bump: bump,\n bumpE: bumpE,\n bumpe: bumpe,\n bumpeq: bumpeq,\n cacute: cacute,\n cap: cap,\n capand: capand,\n capbrcup: capbrcup,\n capcap: capcap,\n capcup: capcup,\n capdot: capdot,\n caps: caps,\n caret: caret,\n caron: caron,\n ccaps: ccaps,\n ccaron: ccaron,\n ccedi: ccedi,\n ccedil: ccedil,\n ccirc: ccirc,\n ccups: ccups,\n ccupssm: ccupssm,\n cdot: cdot,\n cedi: cedi,\n cedil: cedil,\n cemptyv: cemptyv,\n cen: cen,\n cent: cent,\n centerdot: centerdot,\n cfr: cfr,\n chcy: chcy,\n check: check,\n checkmark: checkmark,\n chi: chi,\n cir: cir,\n cirE: cirE,\n circ: circ,\n circeq: circeq,\n circlearrowleft: circlearrowleft,\n circlearrowright: circlearrowright,\n circledR: circledR,\n circledS: circledS,\n circledast: circledast,\n circledcirc: circledcirc,\n circleddash: circleddash,\n cire: cire,\n cirfnint: cirfnint,\n cirmid: cirmid,\n cirscir: cirscir,\n clubs: clubs,\n clubsuit: clubsuit,\n colon: colon,\n colone: colone,\n coloneq: coloneq,\n comma: comma,\n commat: commat,\n comp: comp,\n compfn: compfn,\n complement: complement,\n complexes: complexes,\n cong: cong,\n congdot: congdot,\n conint: conint,\n copf: copf,\n coprod: coprod,\n cop: cop,\n copy: copy,\n copysr: copysr,\n crarr: crarr,\n cross: cross,\n cscr: cscr,\n csub: csub,\n csube: csube,\n csup: csup,\n csupe: csupe,\n ctdot: ctdot,\n cudarrl: cudarrl,\n cudarrr: cudarrr,\n cuepr: cuepr,\n cuesc: cuesc,\n cularr: cularr,\n cularrp: cularrp,\n cup: cup,\n cupbrcap: cupbrcap,\n cupcap: cupcap,\n cupcup: cupcup,\n cupdot: cupdot,\n cupor: cupor,\n cups: cups,\n curarr: curarr,\n curarrm: curarrm,\n curlyeqprec: curlyeqprec,\n curlyeqsucc: curlyeqsucc,\n curlyvee: curlyvee,\n curlywedge: curlywedge,\n curre: curre,\n curren: curren,\n curvearrowleft: curvearrowleft,\n curvearrowright: curvearrowright,\n cuvee: cuvee,\n cuwed: cuwed,\n cwconint: cwconint,\n cwint: cwint,\n cylcty: cylcty,\n dArr: dArr,\n dHar: dHar,\n dagger: dagger,\n daleth: daleth,\n darr: darr,\n dash: dash,\n dashv: dashv,\n dbkarow: dbkarow,\n dblac: dblac,\n dcaron: dcaron,\n dcy: dcy,\n dd: dd,\n ddagger: ddagger,\n ddarr: ddarr,\n ddotseq: ddotseq,\n de: de,\n deg: deg,\n delta: delta,\n demptyv: demptyv,\n dfisht: dfisht,\n dfr: dfr,\n dharl: dharl,\n dharr: dharr,\n diam: diam,\n diamond: diamond,\n diamondsuit: diamondsuit,\n diams: diams,\n die: die,\n digamma: digamma,\n disin: disin,\n div: div,\n divid: divid,\n divide: divide,\n divideontimes: divideontimes,\n divonx: divonx,\n djcy: djcy,\n dlcorn: dlcorn,\n dlcrop: dlcrop,\n dollar: dollar,\n dopf: dopf,\n dot: dot,\n doteq: doteq,\n doteqdot: doteqdot,\n dotminus: dotminus,\n dotplus: dotplus,\n dotsquare: dotsquare,\n doublebarwedge: doublebarwedge,\n downarrow: downarrow,\n downdownarrows: downdownarrows,\n downharpoonleft: downharpoonleft,\n downharpoonright: downharpoonright,\n drbkarow: drbkarow,\n drcorn: drcorn,\n drcrop: drcrop,\n dscr: dscr,\n dscy: dscy,\n dsol: dsol,\n dstrok: dstrok,\n dtdot: dtdot,\n dtri: dtri,\n dtrif: dtrif,\n duarr: duarr,\n duhar: duhar,\n dwangle: dwangle,\n dzcy: dzcy,\n dzigrarr: dzigrarr,\n eDDot: eDDot,\n eDot: eDot,\n eacut: eacut,\n eacute: eacute,\n easter: easter,\n ecaron: ecaron,\n ecir: ecir,\n ecirc: ecirc,\n ecolon: ecolon,\n ecy: ecy,\n edot: edot,\n ee: ee,\n efDot: efDot,\n efr: efr,\n eg: eg,\n egrav: egrav,\n egrave: egrave,\n egs: egs,\n egsdot: egsdot,\n el: el,\n elinters: elinters,\n ell: ell,\n els: els,\n elsdot: elsdot,\n emacr: emacr,\n empty: empty,\n emptyset: emptyset,\n emptyv: emptyv,\n emsp13: emsp13,\n emsp14: emsp14,\n emsp: emsp,\n eng: eng,\n ensp: ensp,\n eogon: eogon,\n eopf: eopf,\n epar: epar,\n eparsl: eparsl,\n eplus: eplus,\n epsi: epsi,\n epsilon: epsilon,\n epsiv: epsiv,\n eqcirc: eqcirc,\n eqcolon: eqcolon,\n eqsim: eqsim,\n eqslantgtr: eqslantgtr,\n eqslantless: eqslantless,\n equals: equals,\n equest: equest,\n equiv: equiv,\n equivDD: equivDD,\n eqvparsl: eqvparsl,\n erDot: erDot,\n erarr: erarr,\n escr: escr,\n esdot: esdot,\n esim: esim,\n eta: eta,\n et: et,\n eth: eth,\n eum: eum,\n euml: euml,\n euro: euro,\n excl: excl,\n exist: exist,\n expectation: expectation,\n exponentiale: exponentiale,\n fallingdotseq: fallingdotseq,\n fcy: fcy,\n female: female,\n ffilig: ffilig,\n fflig: fflig,\n ffllig: ffllig,\n ffr: ffr,\n filig: filig,\n fjlig: fjlig,\n flat: flat,\n fllig: fllig,\n fltns: fltns,\n fnof: fnof,\n fopf: fopf,\n forall: forall,\n fork: fork,\n forkv: forkv,\n fpartint: fpartint,\n frac1: frac1,\n frac12: frac12,\n frac13: frac13,\n frac14: frac14,\n frac15: frac15,\n frac16: frac16,\n frac18: frac18,\n frac23: frac23,\n frac25: frac25,\n frac3: frac3,\n frac34: frac34,\n frac35: frac35,\n frac38: frac38,\n frac45: frac45,\n frac56: frac56,\n frac58: frac58,\n frac78: frac78,\n frasl: frasl,\n frown: frown,\n fscr: fscr,\n gE: gE,\n gEl: gEl,\n gacute: gacute,\n gamma: gamma,\n gammad: gammad,\n gap: gap,\n gbreve: gbreve,\n gcirc: gcirc,\n gcy: gcy,\n gdot: gdot,\n ge: ge,\n gel: gel,\n geq: geq,\n geqq: geqq,\n geqslant: geqslant,\n ges: ges,\n gescc: gescc,\n gesdot: gesdot,\n gesdoto: gesdoto,\n gesdotol: gesdotol,\n gesl: gesl,\n gesles: gesles,\n gfr: gfr,\n gg: gg,\n ggg: ggg,\n gimel: gimel,\n gjcy: gjcy,\n gl: gl,\n glE: glE,\n gla: gla,\n glj: glj,\n gnE: gnE,\n gnap: gnap,\n gnapprox: gnapprox,\n gne: gne,\n gneq: gneq,\n gneqq: gneqq,\n gnsim: gnsim,\n gopf: gopf,\n grave: grave,\n gscr: gscr,\n gsim: gsim,\n gsime: gsime,\n gsiml: gsiml,\n g: g,\n gt: gt,\n gtcc: gtcc,\n gtcir: gtcir,\n gtdot: gtdot,\n gtlPar: gtlPar,\n gtquest: gtquest,\n gtrapprox: gtrapprox,\n gtrarr: gtrarr,\n gtrdot: gtrdot,\n gtreqless: gtreqless,\n gtreqqless: gtreqqless,\n gtrless: gtrless,\n gtrsim: gtrsim,\n gvertneqq: gvertneqq,\n gvnE: gvnE,\n hArr: hArr,\n hairsp: hairsp,\n half: half,\n hamilt: hamilt,\n hardcy: hardcy,\n harr: harr,\n harrcir: harrcir,\n harrw: harrw,\n hbar: hbar,\n hcirc: hcirc,\n hearts: hearts,\n heartsuit: heartsuit,\n hellip: hellip,\n hercon: hercon,\n hfr: hfr,\n hksearow: hksearow,\n hkswarow: hkswarow,\n hoarr: hoarr,\n homtht: homtht,\n hookleftarrow: hookleftarrow,\n hookrightarrow: hookrightarrow,\n hopf: hopf,\n horbar: horbar,\n hscr: hscr,\n hslash: hslash,\n hstrok: hstrok,\n hybull: hybull,\n hyphen: hyphen,\n iacut: iacut,\n iacute: iacute,\n ic: ic,\n icir: icir,\n icirc: icirc,\n icy: icy,\n iecy: iecy,\n iexc: iexc,\n iexcl: iexcl,\n iff: iff,\n ifr: ifr,\n igrav: igrav,\n igrave: igrave,\n ii: ii,\n iiiint: iiiint,\n iiint: iiint,\n iinfin: iinfin,\n iiota: iiota,\n ijlig: ijlig,\n imacr: imacr,\n image: image,\n imagline: imagline,\n imagpart: imagpart,\n imath: imath,\n imof: imof,\n imped: imped,\n \"in\": \"∈\",\n incare: incare,\n infin: infin,\n infintie: infintie,\n inodot: inodot,\n int: int,\n intcal: intcal,\n integers: integers,\n intercal: intercal,\n intlarhk: intlarhk,\n intprod: intprod,\n iocy: iocy,\n iogon: iogon,\n iopf: iopf,\n iota: iota,\n iprod: iprod,\n iques: iques,\n iquest: iquest,\n iscr: iscr,\n isin: isin,\n isinE: isinE,\n isindot: isindot,\n isins: isins,\n isinsv: isinsv,\n isinv: isinv,\n it: it,\n itilde: itilde,\n iukcy: iukcy,\n ium: ium,\n iuml: iuml,\n jcirc: jcirc,\n jcy: jcy,\n jfr: jfr,\n jmath: jmath,\n jopf: jopf,\n jscr: jscr,\n jsercy: jsercy,\n jukcy: jukcy,\n kappa: kappa,\n kappav: kappav,\n kcedil: kcedil,\n kcy: kcy,\n kfr: kfr,\n kgreen: kgreen,\n khcy: khcy,\n kjcy: kjcy,\n kopf: kopf,\n kscr: kscr,\n lAarr: lAarr,\n lArr: lArr,\n lAtail: lAtail,\n lBarr: lBarr,\n lE: lE,\n lEg: lEg,\n lHar: lHar,\n lacute: lacute,\n laemptyv: laemptyv,\n lagran: lagran,\n lambda: lambda,\n lang: lang,\n langd: langd,\n langle: langle,\n lap: lap,\n laqu: laqu,\n laquo: laquo,\n larr: larr,\n larrb: larrb,\n larrbfs: larrbfs,\n larrfs: larrfs,\n larrhk: larrhk,\n larrlp: larrlp,\n larrpl: larrpl,\n larrsim: larrsim,\n larrtl: larrtl,\n lat: lat,\n latail: latail,\n late: late,\n lates: lates,\n lbarr: lbarr,\n lbbrk: lbbrk,\n lbrace: lbrace,\n lbrack: lbrack,\n lbrke: lbrke,\n lbrksld: lbrksld,\n lbrkslu: lbrkslu,\n lcaron: lcaron,\n lcedil: lcedil,\n lceil: lceil,\n lcub: lcub,\n lcy: lcy,\n ldca: ldca,\n ldquo: ldquo,\n ldquor: ldquor,\n ldrdhar: ldrdhar,\n ldrushar: ldrushar,\n ldsh: ldsh,\n le: le,\n leftarrow: leftarrow,\n leftarrowtail: leftarrowtail,\n leftharpoondown: leftharpoondown,\n leftharpoonup: leftharpoonup,\n leftleftarrows: leftleftarrows,\n leftrightarrow: leftrightarrow,\n leftrightarrows: leftrightarrows,\n leftrightharpoons: leftrightharpoons,\n leftrightsquigarrow: leftrightsquigarrow,\n leftthreetimes: leftthreetimes,\n leg: leg,\n leq: leq,\n leqq: leqq,\n leqslant: leqslant,\n les: les,\n lescc: lescc,\n lesdot: lesdot,\n lesdoto: lesdoto,\n lesdotor: lesdotor,\n lesg: lesg,\n lesges: lesges,\n lessapprox: lessapprox,\n lessdot: lessdot,\n lesseqgtr: lesseqgtr,\n lesseqqgtr: lesseqqgtr,\n lessgtr: lessgtr,\n lesssim: lesssim,\n lfisht: lfisht,\n lfloor: lfloor,\n lfr: lfr,\n lg: lg,\n lgE: lgE,\n lhard: lhard,\n lharu: lharu,\n lharul: lharul,\n lhblk: lhblk,\n ljcy: ljcy,\n ll: ll,\n llarr: llarr,\n llcorner: llcorner,\n llhard: llhard,\n lltri: lltri,\n lmidot: lmidot,\n lmoust: lmoust,\n lmoustache: lmoustache,\n lnE: lnE,\n lnap: lnap,\n lnapprox: lnapprox,\n lne: lne,\n lneq: lneq,\n lneqq: lneqq,\n lnsim: lnsim,\n loang: loang,\n loarr: loarr,\n lobrk: lobrk,\n longleftarrow: longleftarrow,\n longleftrightarrow: longleftrightarrow,\n longmapsto: longmapsto,\n longrightarrow: longrightarrow,\n looparrowleft: looparrowleft,\n looparrowright: looparrowright,\n lopar: lopar,\n lopf: lopf,\n loplus: loplus,\n lotimes: lotimes,\n lowast: lowast,\n lowbar: lowbar,\n loz: loz,\n lozenge: lozenge,\n lozf: lozf,\n lpar: lpar,\n lparlt: lparlt,\n lrarr: lrarr,\n lrcorner: lrcorner,\n lrhar: lrhar,\n lrhard: lrhard,\n lrm: lrm,\n lrtri: lrtri,\n lsaquo: lsaquo,\n lscr: lscr,\n lsh: lsh,\n lsim: lsim,\n lsime: lsime,\n lsimg: lsimg,\n lsqb: lsqb,\n lsquo: lsquo,\n lsquor: lsquor,\n lstrok: lstrok,\n l: l,\n lt: lt,\n ltcc: ltcc,\n ltcir: ltcir,\n ltdot: ltdot,\n lthree: lthree,\n ltimes: ltimes,\n ltlarr: ltlarr,\n ltquest: ltquest,\n ltrPar: ltrPar,\n ltri: ltri,\n ltrie: ltrie,\n ltrif: ltrif,\n lurdshar: lurdshar,\n luruhar: luruhar,\n lvertneqq: lvertneqq,\n lvnE: lvnE,\n mDDot: mDDot,\n mac: mac,\n macr: macr,\n male: male,\n malt: malt,\n maltese: maltese,\n map: map,\n mapsto: mapsto,\n mapstodown: mapstodown,\n mapstoleft: mapstoleft,\n mapstoup: mapstoup,\n marker: marker,\n mcomma: mcomma,\n mcy: mcy,\n mdash: mdash,\n measuredangle: measuredangle,\n mfr: mfr,\n mho: mho,\n micr: micr,\n micro: micro,\n mid: mid,\n midast: midast,\n midcir: midcir,\n middo: middo,\n middot: middot,\n minus: minus,\n minusb: minusb,\n minusd: minusd,\n minusdu: minusdu,\n mlcp: mlcp,\n mldr: mldr,\n mnplus: mnplus,\n models: models,\n mopf: mopf,\n mp: mp,\n mscr: mscr,\n mstpos: mstpos,\n mu: mu,\n multimap: multimap,\n mumap: mumap,\n nGg: nGg,\n nGt: nGt,\n nGtv: nGtv,\n nLeftarrow: nLeftarrow,\n nLeftrightarrow: nLeftrightarrow,\n nLl: nLl,\n nLt: nLt,\n nLtv: nLtv,\n nRightarrow: nRightarrow,\n nVDash: nVDash,\n nVdash: nVdash,\n nabla: nabla,\n nacute: nacute,\n nang: nang,\n nap: nap,\n napE: napE,\n napid: napid,\n napos: napos,\n napprox: napprox,\n natur: natur,\n natural: natural,\n naturals: naturals,\n nbs: nbs,\n nbsp: nbsp,\n nbump: nbump,\n nbumpe: nbumpe,\n ncap: ncap,\n ncaron: ncaron,\n ncedil: ncedil,\n ncong: ncong,\n ncongdot: ncongdot,\n ncup: ncup,\n ncy: ncy,\n ndash: ndash,\n ne: ne,\n neArr: neArr,\n nearhk: nearhk,\n nearr: nearr,\n nearrow: nearrow,\n nedot: nedot,\n nequiv: nequiv,\n nesear: nesear,\n nesim: nesim,\n nexist: nexist,\n nexists: nexists,\n nfr: nfr,\n ngE: ngE,\n nge: nge,\n ngeq: ngeq,\n ngeqq: ngeqq,\n ngeqslant: ngeqslant,\n nges: nges,\n ngsim: ngsim,\n ngt: ngt,\n ngtr: ngtr,\n nhArr: nhArr,\n nharr: nharr,\n nhpar: nhpar,\n ni: ni,\n nis: nis,\n nisd: nisd,\n niv: niv,\n njcy: njcy,\n nlArr: nlArr,\n nlE: nlE,\n nlarr: nlarr,\n nldr: nldr,\n nle: nle,\n nleftarrow: nleftarrow,\n nleftrightarrow: nleftrightarrow,\n nleq: nleq,\n nleqq: nleqq,\n nleqslant: nleqslant,\n nles: nles,\n nless: nless,\n nlsim: nlsim,\n nlt: nlt,\n nltri: nltri,\n nltrie: nltrie,\n nmid: nmid,\n nopf: nopf,\n no: no,\n not: not,\n notin: notin,\n notinE: notinE,\n notindot: notindot,\n notinva: notinva,\n notinvb: notinvb,\n notinvc: notinvc,\n notni: notni,\n notniva: notniva,\n notnivb: notnivb,\n notnivc: notnivc,\n npar: npar,\n nparallel: nparallel,\n nparsl: nparsl,\n npart: npart,\n npolint: npolint,\n npr: npr,\n nprcue: nprcue,\n npre: npre,\n nprec: nprec,\n npreceq: npreceq,\n nrArr: nrArr,\n nrarr: nrarr,\n nrarrc: nrarrc,\n nrarrw: nrarrw,\n nrightarrow: nrightarrow,\n nrtri: nrtri,\n nrtrie: nrtrie,\n nsc: nsc,\n nsccue: nsccue,\n nsce: nsce,\n nscr: nscr,\n nshortmid: nshortmid,\n nshortparallel: nshortparallel,\n nsim: nsim,\n nsime: nsime,\n nsimeq: nsimeq,\n nsmid: nsmid,\n nspar: nspar,\n nsqsube: nsqsube,\n nsqsupe: nsqsupe,\n nsub: nsub,\n nsubE: nsubE,\n nsube: nsube,\n nsubset: nsubset,\n nsubseteq: nsubseteq,\n nsubseteqq: nsubseteqq,\n nsucc: nsucc,\n nsucceq: nsucceq,\n nsup: nsup,\n nsupE: nsupE,\n nsupe: nsupe,\n nsupset: nsupset,\n nsupseteq: nsupseteq,\n nsupseteqq: nsupseteqq,\n ntgl: ntgl,\n ntild: ntild,\n ntilde: ntilde,\n ntlg: ntlg,\n ntriangleleft: ntriangleleft,\n ntrianglelefteq: ntrianglelefteq,\n ntriangleright: ntriangleright,\n ntrianglerighteq: ntrianglerighteq,\n nu: nu,\n num: num,\n numero: numero,\n numsp: numsp,\n nvDash: nvDash,\n nvHarr: nvHarr,\n nvap: nvap,\n nvdash: nvdash,\n nvge: nvge,\n nvgt: nvgt,\n nvinfin: nvinfin,\n nvlArr: nvlArr,\n nvle: nvle,\n nvlt: nvlt,\n nvltrie: nvltrie,\n nvrArr: nvrArr,\n nvrtrie: nvrtrie,\n nvsim: nvsim,\n nwArr: nwArr,\n nwarhk: nwarhk,\n nwarr: nwarr,\n nwarrow: nwarrow,\n nwnear: nwnear,\n oS: oS,\n oacut: oacut,\n oacute: oacute,\n oast: oast,\n ocir: ocir,\n ocirc: ocirc,\n ocy: ocy,\n odash: odash,\n odblac: odblac,\n odiv: odiv,\n odot: odot,\n odsold: odsold,\n oelig: oelig,\n ofcir: ofcir,\n ofr: ofr,\n ogon: ogon,\n ograv: ograv,\n ograve: ograve,\n ogt: ogt,\n ohbar: ohbar,\n ohm: ohm,\n oint: oint,\n olarr: olarr,\n olcir: olcir,\n olcross: olcross,\n oline: oline,\n olt: olt,\n omacr: omacr,\n omega: omega,\n omicron: omicron,\n omid: omid,\n ominus: ominus,\n oopf: oopf,\n opar: opar,\n operp: operp,\n oplus: oplus,\n or: or,\n orarr: orarr,\n ord: ord,\n order: order,\n orderof: orderof,\n ordf: ordf,\n ordm: ordm,\n origof: origof,\n oror: oror,\n orslope: orslope,\n orv: orv,\n oscr: oscr,\n oslas: oslas,\n oslash: oslash,\n osol: osol,\n otild: otild,\n otilde: otilde,\n otimes: otimes,\n otimesas: otimesas,\n oum: oum,\n ouml: ouml,\n ovbar: ovbar,\n par: par,\n para: para,\n parallel: parallel,\n parsim: parsim,\n parsl: parsl,\n part: part,\n pcy: pcy,\n percnt: percnt,\n period: period,\n permil: permil,\n perp: perp,\n pertenk: pertenk,\n pfr: pfr,\n phi: phi,\n phiv: phiv,\n phmmat: phmmat,\n phone: phone,\n pi: pi,\n pitchfork: pitchfork,\n piv: piv,\n planck: planck,\n planckh: planckh,\n plankv: plankv,\n plus: plus,\n plusacir: plusacir,\n plusb: plusb,\n pluscir: pluscir,\n plusdo: plusdo,\n plusdu: plusdu,\n pluse: pluse,\n plusm: plusm,\n plusmn: plusmn,\n plussim: plussim,\n plustwo: plustwo,\n pm: pm,\n pointint: pointint,\n popf: popf,\n poun: poun,\n pound: pound,\n pr: pr,\n prE: prE,\n prap: prap,\n prcue: prcue,\n pre: pre,\n prec: prec,\n precapprox: precapprox,\n preccurlyeq: preccurlyeq,\n preceq: preceq,\n precnapprox: precnapprox,\n precneqq: precneqq,\n precnsim: precnsim,\n precsim: precsim,\n prime: prime,\n primes: primes,\n prnE: prnE,\n prnap: prnap,\n prnsim: prnsim,\n prod: prod,\n profalar: profalar,\n profline: profline,\n profsurf: profsurf,\n prop: prop,\n propto: propto,\n prsim: prsim,\n prurel: prurel,\n pscr: pscr,\n psi: psi,\n puncsp: puncsp,\n qfr: qfr,\n qint: qint,\n qopf: qopf,\n qprime: qprime,\n qscr: qscr,\n quaternions: quaternions,\n quatint: quatint,\n quest: quest,\n questeq: questeq,\n quo: quo,\n quot: quot,\n rAarr: rAarr,\n rArr: rArr,\n rAtail: rAtail,\n rBarr: rBarr,\n rHar: rHar,\n race: race,\n racute: racute,\n radic: radic,\n raemptyv: raemptyv,\n rang: rang,\n rangd: rangd,\n range: range,\n rangle: rangle,\n raqu: raqu,\n raquo: raquo,\n rarr: rarr,\n rarrap: rarrap,\n rarrb: rarrb,\n rarrbfs: rarrbfs,\n rarrc: rarrc,\n rarrfs: rarrfs,\n rarrhk: rarrhk,\n rarrlp: rarrlp,\n rarrpl: rarrpl,\n rarrsim: rarrsim,\n rarrtl: rarrtl,\n rarrw: rarrw,\n ratail: ratail,\n ratio: ratio,\n rationals: rationals,\n rbarr: rbarr,\n rbbrk: rbbrk,\n rbrace: rbrace,\n rbrack: rbrack,\n rbrke: rbrke,\n rbrksld: rbrksld,\n rbrkslu: rbrkslu,\n rcaron: rcaron,\n rcedil: rcedil,\n rceil: rceil,\n rcub: rcub,\n rcy: rcy,\n rdca: rdca,\n rdldhar: rdldhar,\n rdquo: rdquo,\n rdquor: rdquor,\n rdsh: rdsh,\n real: real,\n realine: realine,\n realpart: realpart,\n reals: reals,\n rect: rect,\n re: re,\n reg: reg,\n rfisht: rfisht,\n rfloor: rfloor,\n rfr: rfr,\n rhard: rhard,\n rharu: rharu,\n rharul: rharul,\n rho: rho,\n rhov: rhov,\n rightarrow: rightarrow,\n rightarrowtail: rightarrowtail,\n rightharpoondown: rightharpoondown,\n rightharpoonup: rightharpoonup,\n rightleftarrows: rightleftarrows,\n rightleftharpoons: rightleftharpoons,\n rightrightarrows: rightrightarrows,\n rightsquigarrow: rightsquigarrow,\n rightthreetimes: rightthreetimes,\n ring: ring,\n risingdotseq: risingdotseq,\n rlarr: rlarr,\n rlhar: rlhar,\n rlm: rlm,\n rmoust: rmoust,\n rmoustache: rmoustache,\n rnmid: rnmid,\n roang: roang,\n roarr: roarr,\n robrk: robrk,\n ropar: ropar,\n ropf: ropf,\n roplus: roplus,\n rotimes: rotimes,\n rpar: rpar,\n rpargt: rpargt,\n rppolint: rppolint,\n rrarr: rrarr,\n rsaquo: rsaquo,\n rscr: rscr,\n rsh: rsh,\n rsqb: rsqb,\n rsquo: rsquo,\n rsquor: rsquor,\n rthree: rthree,\n rtimes: rtimes,\n rtri: rtri,\n rtrie: rtrie,\n rtrif: rtrif,\n rtriltri: rtriltri,\n ruluhar: ruluhar,\n rx: rx,\n sacute: sacute,\n sbquo: sbquo,\n sc: sc,\n scE: scE,\n scap: scap,\n scaron: scaron,\n sccue: sccue,\n sce: sce,\n scedil: scedil,\n scirc: scirc,\n scnE: scnE,\n scnap: scnap,\n scnsim: scnsim,\n scpolint: scpolint,\n scsim: scsim,\n scy: scy,\n sdot: sdot,\n sdotb: sdotb,\n sdote: sdote,\n seArr: seArr,\n searhk: searhk,\n searr: searr,\n searrow: searrow,\n sec: sec,\n sect: sect,\n semi: semi,\n seswar: seswar,\n setminus: setminus,\n setmn: setmn,\n sext: sext,\n sfr: sfr,\n sfrown: sfrown,\n sharp: sharp,\n shchcy: shchcy,\n shcy: shcy,\n shortmid: shortmid,\n shortparallel: shortparallel,\n sh: sh,\n shy: shy,\n sigma: sigma,\n sigmaf: sigmaf,\n sigmav: sigmav,\n sim: sim,\n simdot: simdot,\n sime: sime,\n simeq: simeq,\n simg: simg,\n simgE: simgE,\n siml: siml,\n simlE: simlE,\n simne: simne,\n simplus: simplus,\n simrarr: simrarr,\n slarr: slarr,\n smallsetminus: smallsetminus,\n smashp: smashp,\n smeparsl: smeparsl,\n smid: smid,\n smile: smile,\n smt: smt,\n smte: smte,\n smtes: smtes,\n softcy: softcy,\n sol: sol,\n solb: solb,\n solbar: solbar,\n sopf: sopf,\n spades: spades,\n spadesuit: spadesuit,\n spar: spar,\n sqcap: sqcap,\n sqcaps: sqcaps,\n sqcup: sqcup,\n sqcups: sqcups,\n sqsub: sqsub,\n sqsube: sqsube,\n sqsubset: sqsubset,\n sqsubseteq: sqsubseteq,\n sqsup: sqsup,\n sqsupe: sqsupe,\n sqsupset: sqsupset,\n sqsupseteq: sqsupseteq,\n squ: squ,\n square: square,\n squarf: squarf,\n squf: squf,\n srarr: srarr,\n sscr: sscr,\n ssetmn: ssetmn,\n ssmile: ssmile,\n sstarf: sstarf,\n star: star,\n starf: starf,\n straightepsilon: straightepsilon,\n straightphi: straightphi,\n strns: strns,\n sub: sub,\n subE: subE,\n subdot: subdot,\n sube: sube,\n subedot: subedot,\n submult: submult,\n subnE: subnE,\n subne: subne,\n subplus: subplus,\n subrarr: subrarr,\n subset: subset,\n subseteq: subseteq,\n subseteqq: subseteqq,\n subsetneq: subsetneq,\n subsetneqq: subsetneqq,\n subsim: subsim,\n subsub: subsub,\n subsup: subsup,\n succ: succ,\n succapprox: succapprox,\n succcurlyeq: succcurlyeq,\n succeq: succeq,\n succnapprox: succnapprox,\n succneqq: succneqq,\n succnsim: succnsim,\n succsim: succsim,\n sum: sum,\n sung: sung,\n sup: sup,\n sup1: sup1,\n sup2: sup2,\n sup3: sup3,\n supE: supE,\n supdot: supdot,\n supdsub: supdsub,\n supe: supe,\n supedot: supedot,\n suphsol: suphsol,\n suphsub: suphsub,\n suplarr: suplarr,\n supmult: supmult,\n supnE: supnE,\n supne: supne,\n supplus: supplus,\n supset: supset,\n supseteq: supseteq,\n supseteqq: supseteqq,\n supsetneq: supsetneq,\n supsetneqq: supsetneqq,\n supsim: supsim,\n supsub: supsub,\n supsup: supsup,\n swArr: swArr,\n swarhk: swarhk,\n swarr: swarr,\n swarrow: swarrow,\n swnwar: swnwar,\n szli: szli,\n szlig: szlig,\n target: target,\n tau: tau,\n tbrk: tbrk,\n tcaron: tcaron,\n tcedil: tcedil,\n tcy: tcy,\n tdot: tdot,\n telrec: telrec,\n tfr: tfr,\n there4: there4,\n therefore: therefore,\n theta: theta,\n thetasym: thetasym,\n thetav: thetav,\n thickapprox: thickapprox,\n thicksim: thicksim,\n thinsp: thinsp,\n thkap: thkap,\n thksim: thksim,\n thor: thor,\n thorn: thorn,\n tilde: tilde,\n time: time,\n times: times,\n timesb: timesb,\n timesbar: timesbar,\n timesd: timesd,\n tint: tint,\n toea: toea,\n top: top,\n topbot: topbot,\n topcir: topcir,\n topf: topf,\n topfork: topfork,\n tosa: tosa,\n tprime: tprime,\n trade: trade,\n triangle: triangle,\n triangledown: triangledown,\n triangleleft: triangleleft,\n trianglelefteq: trianglelefteq,\n triangleq: triangleq,\n triangleright: triangleright,\n trianglerighteq: trianglerighteq,\n tridot: tridot,\n trie: trie,\n triminus: triminus,\n triplus: triplus,\n trisb: trisb,\n tritime: tritime,\n trpezium: trpezium,\n tscr: tscr,\n tscy: tscy,\n tshcy: tshcy,\n tstrok: tstrok,\n twixt: twixt,\n twoheadleftarrow: twoheadleftarrow,\n twoheadrightarrow: twoheadrightarrow,\n uArr: uArr,\n uHar: uHar,\n uacut: uacut,\n uacute: uacute,\n uarr: uarr,\n ubrcy: ubrcy,\n ubreve: ubreve,\n ucir: ucir,\n ucirc: ucirc,\n ucy: ucy,\n udarr: udarr,\n udblac: udblac,\n udhar: udhar,\n ufisht: ufisht,\n ufr: ufr,\n ugrav: ugrav,\n ugrave: ugrave,\n uharl: uharl,\n uharr: uharr,\n uhblk: uhblk,\n ulcorn: ulcorn,\n ulcorner: ulcorner,\n ulcrop: ulcrop,\n ultri: ultri,\n umacr: umacr,\n um: um,\n uml: uml,\n uogon: uogon,\n uopf: uopf,\n uparrow: uparrow,\n updownarrow: updownarrow,\n upharpoonleft: upharpoonleft,\n upharpoonright: upharpoonright,\n uplus: uplus,\n upsi: upsi,\n upsih: upsih,\n upsilon: upsilon,\n upuparrows: upuparrows,\n urcorn: urcorn,\n urcorner: urcorner,\n urcrop: urcrop,\n uring: uring,\n urtri: urtri,\n uscr: uscr,\n utdot: utdot,\n utilde: utilde,\n utri: utri,\n utrif: utrif,\n uuarr: uuarr,\n uum: uum,\n uuml: uuml,\n uwangle: uwangle,\n vArr: vArr,\n vBar: vBar,\n vBarv: vBarv,\n vDash: vDash,\n vangrt: vangrt,\n varepsilon: varepsilon,\n varkappa: varkappa,\n varnothing: varnothing,\n varphi: varphi,\n varpi: varpi,\n varpropto: varpropto,\n varr: varr,\n varrho: varrho,\n varsigma: varsigma,\n varsubsetneq: varsubsetneq,\n varsubsetneqq: varsubsetneqq,\n varsupsetneq: varsupsetneq,\n varsupsetneqq: varsupsetneqq,\n vartheta: vartheta,\n vartriangleleft: vartriangleleft,\n vartriangleright: vartriangleright,\n vcy: vcy,\n vdash: vdash,\n vee: vee,\n veebar: veebar,\n veeeq: veeeq,\n vellip: vellip,\n verbar: verbar,\n vert: vert,\n vfr: vfr,\n vltri: vltri,\n vnsub: vnsub,\n vnsup: vnsup,\n vopf: vopf,\n vprop: vprop,\n vrtri: vrtri,\n vscr: vscr,\n vsubnE: vsubnE,\n vsubne: vsubne,\n vsupnE: vsupnE,\n vsupne: vsupne,\n vzigzag: vzigzag,\n wcirc: wcirc,\n wedbar: wedbar,\n wedge: wedge,\n wedgeq: wedgeq,\n weierp: weierp,\n wfr: wfr,\n wopf: wopf,\n wp: wp,\n wr: wr,\n wreath: wreath,\n wscr: wscr,\n xcap: xcap,\n xcirc: xcirc,\n xcup: xcup,\n xdtri: xdtri,\n xfr: xfr,\n xhArr: xhArr,\n xharr: xharr,\n xi: xi,\n xlArr: xlArr,\n xlarr: xlarr,\n xmap: xmap,\n xnis: xnis,\n xodot: xodot,\n xopf: xopf,\n xoplus: xoplus,\n xotime: xotime,\n xrArr: xrArr,\n xrarr: xrarr,\n xscr: xscr,\n xsqcup: xsqcup,\n xuplus: xuplus,\n xutri: xutri,\n xvee: xvee,\n xwedge: xwedge,\n yacut: yacut,\n yacute: yacute,\n yacy: yacy,\n ycirc: ycirc,\n ycy: ycy,\n ye: ye,\n yen: yen,\n yfr: yfr,\n yicy: yicy,\n yopf: yopf,\n yscr: yscr,\n yucy: yucy,\n yum: yum,\n yuml: yuml,\n zacute: zacute,\n zcaron: zcaron,\n zcy: zcy,\n zdot: zdot,\n zeetrf: zeetrf,\n zeta: zeta,\n zfr: zfr,\n zhcy: zhcy,\n zigrarr: zigrarr,\n zopf: zopf,\n zscr: zscr,\n zwj: zwj,\n zwnj: zwnj\n};\nvar characterEntities = require$$0;\nvar decodeEntity_1 = decodeEntity$1;\nvar own$2 = {}.hasOwnProperty;\n\nfunction decodeEntity$1(characters) {\n return own$2.call(characterEntities, characters) ? characterEntities[characters] : false;\n}\n\nvar legacy = require$$0$1;\nvar invalid = require$$1;\nvar decimal = isDecimal;\nvar hexadecimal = isHexadecimal;\nvar alphanumerical = isAlphanumerical;\nvar decodeEntity = decodeEntity_1;\nvar parseEntities_1 = parseEntities;\nvar own$1 = {}.hasOwnProperty;\nvar fromCharCode = String.fromCharCode;\nvar noop = Function.prototype; // Default settings.\n\nvar defaults = {\n warning: null,\n reference: null,\n text: null,\n warningContext: null,\n referenceContext: null,\n textContext: null,\n position: {},\n additional: null,\n attribute: false,\n nonTerminated: true\n}; // Characters.\n\nvar tab = 9; // '\\t'\n\nvar lineFeed = 10; // '\\n'\n\nvar formFeed = 12; // '\\f'\n\nvar space = 32; // ' '\n\nvar ampersand = 38; // '&'\n\nvar semicolon = 59; // ';'\n\nvar lessThan = 60; // '<'\n\nvar equalsTo = 61; // '='\n\nvar numberSign = 35; // '#'\n\nvar uppercaseX = 88; // 'X'\n\nvar lowercaseX = 120; // 'x'\n\nvar replacementCharacter = 65533; // '�'\n// Reference types.\n\nvar name = 'named';\nvar hexa = 'hexadecimal';\nvar deci = 'decimal'; // Map of bases.\n\nvar bases = {};\nbases[hexa] = 16;\nbases[deci] = 10; // Map of types to tests.\n// Each type of character reference accepts different characters.\n// This test is used to detect whether a reference has ended (as the semicolon\n// is not strictly needed).\n\nvar tests = {};\ntests[name] = alphanumerical;\ntests[deci] = decimal;\ntests[hexa] = hexadecimal; // Warning types.\n\nvar namedNotTerminated = 1;\nvar numericNotTerminated = 2;\nvar namedEmpty = 3;\nvar numericEmpty = 4;\nvar namedUnknown = 5;\nvar numericDisallowed = 6;\nvar numericProhibited = 7; // Warning messages.\n\nvar messages = {};\nmessages[namedNotTerminated] = 'Named character references must be terminated by a semicolon';\nmessages[numericNotTerminated] = 'Numeric character references must be terminated by a semicolon';\nmessages[namedEmpty] = 'Named character references cannot be empty';\nmessages[numericEmpty] = 'Numeric character references cannot be empty';\nmessages[namedUnknown] = 'Named character references must be known';\nmessages[numericDisallowed] = 'Numeric character references cannot be disallowed';\nmessages[numericProhibited] = 'Numeric character references cannot be outside the permissible Unicode range'; // Wrap to ensure clean parameters are given to `parse`.\n\nfunction parseEntities(value, options) {\n var settings = {};\n var option;\n var key;\n\n if (!options) {\n options = {};\n }\n\n for (key in defaults) {\n option = options[key];\n settings[key] = option === null || option === undefined ? defaults[key] : option;\n }\n\n if (settings.position.indent || settings.position.start) {\n settings.indent = settings.position.indent || [];\n settings.position = settings.position.start;\n }\n\n return parse(value, settings);\n} // Parse entities.\n// eslint-disable-next-line complexity\n\n\nfunction parse(value, settings) {\n var additional = settings.additional;\n var nonTerminated = settings.nonTerminated;\n var handleText = settings.text;\n var handleReference = settings.reference;\n var handleWarning = settings.warning;\n var textContext = settings.textContext;\n var referenceContext = settings.referenceContext;\n var warningContext = settings.warningContext;\n var pos = settings.position;\n var indent = settings.indent || [];\n var length = value.length;\n var index = 0;\n var lines = -1;\n var column = pos.column || 1;\n var line = pos.line || 1;\n var queue = '';\n var result = [];\n var entityCharacters;\n var namedEntity;\n var terminated;\n var characters;\n var character;\n var reference;\n var following;\n var warning;\n var reason;\n var output;\n var entity;\n var begin;\n var start;\n var type;\n var test;\n var prev;\n var next;\n var diff;\n var end;\n\n if (typeof additional === 'string') {\n additional = additional.charCodeAt(0);\n } // Cache the current point.\n\n\n prev = now(); // Wrap `handleWarning`.\n\n warning = handleWarning ? parseError : noop; // Ensure the algorithm walks over the first character and the end\n // (inclusive).\n\n index--;\n length++;\n\n while (++index < length) {\n // If the previous character was a newline.\n if (character === lineFeed) {\n column = indent[lines] || 1;\n }\n\n character = value.charCodeAt(index);\n\n if (character === ampersand) {\n following = value.charCodeAt(index + 1); // The behaviour depends on the identity of the next character.\n\n if (following === tab || following === lineFeed || following === formFeed || following === space || following === ampersand || following === lessThan || following !== following || additional && following === additional) {\n // Not a character reference.\n // No characters are consumed, and nothing is returned.\n // This is not an error, either.\n queue += fromCharCode(character);\n column++;\n continue;\n }\n\n start = index + 1;\n begin = start;\n end = start;\n\n if (following === numberSign) {\n // Numerical entity.\n end = ++begin; // The behaviour further depends on the next character.\n\n following = value.charCodeAt(end);\n\n if (following === uppercaseX || following === lowercaseX) {\n // ASCII hex digits.\n type = hexa;\n end = ++begin;\n } else {\n // ASCII digits.\n type = deci;\n }\n } else {\n // Named entity.\n type = name;\n }\n\n entityCharacters = '';\n entity = '';\n characters = '';\n test = tests[type];\n end--;\n\n while (++end < length) {\n following = value.charCodeAt(end);\n\n if (!test(following)) {\n break;\n }\n\n characters += fromCharCode(following); // Check if we can match a legacy named reference.\n // If so, we cache that as the last viable named reference.\n // This ensures we do not need to walk backwards later.\n\n if (type === name && own$1.call(legacy, characters)) {\n entityCharacters = characters;\n entity = legacy[characters];\n }\n }\n\n terminated = value.charCodeAt(end) === semicolon;\n\n if (terminated) {\n end++;\n namedEntity = type === name ? decodeEntity(characters) : false;\n\n if (namedEntity) {\n entityCharacters = characters;\n entity = namedEntity;\n }\n }\n\n diff = 1 + end - start;\n if (!terminated && !nonTerminated) ;else if (!characters) {\n // An empty (possible) entity is valid, unless it’s numeric (thus an\n // ampersand followed by an octothorp).\n if (type !== name) {\n warning(numericEmpty, diff);\n }\n } else if (type === name) {\n // An ampersand followed by anything unknown, and not terminated, is\n // invalid.\n if (terminated && !entity) {\n warning(namedUnknown, 1);\n } else {\n // If theres something after an entity name which is not known, cap\n // the reference.\n if (entityCharacters !== characters) {\n end = begin + entityCharacters.length;\n diff = 1 + end - begin;\n terminated = false;\n } // If the reference is not terminated, warn.\n\n\n if (!terminated) {\n reason = entityCharacters ? namedNotTerminated : namedEmpty;\n\n if (settings.attribute) {\n following = value.charCodeAt(end);\n\n if (following === equalsTo) {\n warning(reason, diff);\n entity = null;\n } else if (alphanumerical(following)) {\n entity = null;\n } else {\n warning(reason, diff);\n }\n } else {\n warning(reason, diff);\n }\n }\n }\n\n reference = entity;\n } else {\n if (!terminated) {\n // All non-terminated numeric entities are not rendered, and trigger a\n // warning.\n warning(numericNotTerminated, diff);\n } // When terminated and number, parse as either hexadecimal or decimal.\n\n\n reference = parseInt(characters, bases[type]); // Trigger a warning when the parsed number is prohibited, and replace\n // with replacement character.\n\n if (prohibited(reference)) {\n warning(numericProhibited, diff);\n reference = fromCharCode(replacementCharacter);\n } else if (reference in invalid) {\n // Trigger a warning when the parsed number is disallowed, and replace\n // by an alternative.\n warning(numericDisallowed, diff);\n reference = invalid[reference];\n } else {\n // Parse the number.\n output = ''; // Trigger a warning when the parsed number should not be used.\n\n if (disallowed(reference)) {\n warning(numericDisallowed, diff);\n } // Stringify the number.\n\n\n if (reference > 0xffff) {\n reference -= 0x10000;\n output += fromCharCode(reference >>> (10 & 0x3ff) | 0xd800);\n reference = 0xdc00 | reference & 0x3ff;\n }\n\n reference = output + fromCharCode(reference);\n }\n } // Found it!\n // First eat the queued characters as normal text, then eat an entity.\n\n if (reference) {\n flush();\n prev = now();\n index = end - 1;\n column += end - start + 1;\n result.push(reference);\n next = now();\n next.offset++;\n\n if (handleReference) {\n handleReference.call(referenceContext, reference, {\n start: prev,\n end: next\n }, value.slice(start - 1, end));\n }\n\n prev = next;\n } else {\n // If we could not find a reference, queue the checked characters (as\n // normal characters), and move the pointer to their end.\n // This is possible because we can be certain neither newlines nor\n // ampersands are included.\n characters = value.slice(start - 1, end);\n queue += characters;\n column += characters.length;\n index = end - 1;\n }\n } else {\n // Handle anything other than an ampersand, including newlines and EOF.\n if (character === 10 // Line feed\n ) {\n line++;\n lines++;\n column = 0;\n }\n\n if (character === character) {\n queue += fromCharCode(character);\n column++;\n } else {\n flush();\n }\n }\n } // Return the reduced nodes.\n\n\n return result.join(''); // Get current position.\n\n function now() {\n return {\n line: line,\n column: column,\n offset: index + (pos.offset || 0)\n };\n } // “Throw” a parse-error: a warning.\n\n\n function parseError(code, offset) {\n var position = now();\n position.column += offset;\n position.offset += offset;\n handleWarning.call(warningContext, messages[code], position, code);\n } // Flush `queue` (normal text).\n // Macro invoked before each entity and at the end of `value`.\n // Does nothing when `queue` is empty.\n\n\n function flush() {\n if (queue) {\n result.push(queue);\n\n if (handleText) {\n handleText.call(textContext, queue, {\n start: prev,\n end: now()\n });\n }\n\n queue = '';\n }\n }\n} // Check if `character` is outside the permissible unicode range.\n\n\nfunction prohibited(code) {\n return code >= 0xd800 && code <= 0xdfff || code > 0x10ffff;\n} // Check if `character` is disallowed.\n\n\nfunction disallowed(code) {\n return code >= 0x0001 && code <= 0x0008 || code === 0x000b || code >= 0x000d && code <= 0x001f || code >= 0x007f && code <= 0x009f || code >= 0xfdd0 && code <= 0xfdef || (code & 0xffff) === 0xffff || (code & 0xffff) === 0xfffe;\n}\n\nvar prismCore = {\n exports: {}\n};\n\n(function (module) {\n /// <reference lib=\"WebWorker\"/>\n var _self = typeof window !== 'undefined' ? window // if in browser\n : typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope ? self // if in worker\n : {} // if in node js\n ;\n /**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\n\n\n var Prism = function (_self) {\n // Private helper vars\n var lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n var uniqueId = 0; // The grammar object for plaintext\n\n var plainTextGrammar = {};\n var _ = {\n /**\n * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n * additional languages or plugins yourself.\n *\n * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n *\n * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n * empty Prism object into the global scope before loading the Prism script like this:\n *\n * ```js\n * window.Prism = window.Prism || {};\n * Prism.manual = true;\n * // add a new <script> to load Prism's script\n * ```\n *\n * @default false\n * @type {boolean}\n * @memberof Prism\n * @public\n */\n manual: _self.Prism && _self.Prism.manual,\n\n /**\n * By default, if Prism is in a web worker, it assumes that it is in a worker it created itself, so it uses\n * `addEventListener` to communicate with its parent instance. However, if you're using Prism manually in your\n * own worker, you don't want it to do this.\n *\n * By setting this value to `true`, Prism will not add its own listeners to the worker.\n *\n * You obviously have to change this value before Prism executes. To do this, you can add an\n * empty Prism object into the global scope before loading the Prism script like this:\n *\n * ```js\n * window.Prism = window.Prism || {};\n * Prism.disableWorkerMessageHandler = true;\n * // Load Prism's script\n * ```\n *\n * @default false\n * @type {boolean}\n * @memberof Prism\n * @public\n */\n disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\n /**\n * A namespace for utility methods.\n *\n * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n * change or disappear at any time.\n *\n * @namespace\n * @memberof Prism\n */\n util: {\n encode: function encode(tokens) {\n if (tokens instanceof Token) {\n return new Token(tokens.type, encode(tokens.content), tokens.alias);\n } else if (Array.isArray(tokens)) {\n return tokens.map(encode);\n } else {\n return tokens.replace(/&/g, '&').replace(/</g, '<').replace(/\\u00a0/g, ' ');\n }\n },\n\n /**\n * Returns the name of the type of the given value.\n *\n * @param {any} o\n * @returns {string}\n * @example\n * type(null) === 'Null'\n * type(undefined) === 'Undefined'\n * type(123) === 'Number'\n * type('foo') === 'String'\n * type(true) === 'Boolean'\n * type([1, 2]) === 'Array'\n * type({}) === 'Object'\n * type(String) === 'Function'\n * type(/abc+/) === 'RegExp'\n */\n type: function type(o) {\n return Object.prototype.toString.call(o).slice(8, -1);\n },\n\n /**\n * Returns a unique number for the given object. Later calls will still return the same number.\n *\n * @param {Object} obj\n * @returns {number}\n */\n objId: function objId(obj) {\n if (!obj['__id']) {\n Object.defineProperty(obj, '__id', {\n value: ++uniqueId\n });\n }\n\n return obj['__id'];\n },\n\n /**\n * Creates a deep clone of the given object.\n *\n * The main intended use of this function is to clone language definitions.\n *\n * @param {T} o\n * @param {Record<number, any>} [visited]\n * @returns {T}\n * @template T\n */\n clone: function deepClone(o, visited) {\n visited = visited || {};\n var clone;\n var id;\n\n switch (_.util.type(o)) {\n case 'Object':\n id = _.util.objId(o);\n\n if (visited[id]) {\n return visited[id];\n }\n\n clone =\n /** @type {Record<string, any>} */\n {};\n visited[id] = clone;\n\n for (var key in o) {\n if (o.hasOwnProperty(key)) {\n clone[key] = deepClone(o[key], visited);\n }\n }\n\n return (\n /** @type {any} */\n clone\n );\n\n case 'Array':\n id = _.util.objId(o);\n\n if (visited[id]) {\n return visited[id];\n }\n\n clone = [];\n visited[id] = clone;\n /** @type {Array} */\n\n /** @type {any} */\n\n o.forEach(function (v, i) {\n clone[i] = deepClone(v, visited);\n });\n return (\n /** @type {any} */\n clone\n );\n\n default:\n return o;\n }\n },\n\n /**\n * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n *\n * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n *\n * @param {Element} element\n * @returns {string}\n */\n getLanguage: function getLanguage(element) {\n while (element) {\n var m = lang.exec(element.className);\n\n if (m) {\n return m[1].toLowerCase();\n }\n\n element = element.parentElement;\n }\n\n return 'none';\n },\n\n /**\n * Sets the Prism `language-xxxx` class of the given element.\n *\n * @param {Element} element\n * @param {string} language\n * @returns {void}\n */\n setLanguage: function setLanguage(element, language) {\n // remove all `language-xxxx` classes\n // (this might leave behind a leading space)\n element.className = element.className.replace(RegExp(lang, 'gi'), ''); // add the new `language-xxxx` class\n // (using `classList` will automatically clean up spaces for us)\n\n element.classList.add('language-' + language);\n },\n\n /**\n * Returns the script element that is currently executing.\n *\n * This does __not__ work for line script element.\n *\n * @returns {HTMLScriptElement | null}\n */\n currentScript: function currentScript() {\n if (typeof document === 'undefined') {\n return null;\n }\n\n if ('currentScript' in document && 1 < 2\n /* hack to trip TS' flow analysis */\n ) {\n return (\n /** @type {any} */\n document.currentScript\n );\n } // IE11 workaround\n // we'll get the src of the current script by parsing IE11's error stack trace\n // this will not work for inline scripts\n\n\n try {\n throw new Error();\n } catch (err) {\n // Get file src url from stack. Specifically works with the format of stack traces in IE.\n // A stack will look like this:\n //\n // Error\n // at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n // at Global code (http://localhost/components/prism-core.js:606:1)\n var src = (/at [^(\\r\\n]*\\((.*):[^:]+:[^:]+\\)$/i.exec(err.stack) || [])[1];\n\n if (src) {\n var scripts = document.getElementsByTagName('script');\n\n for (var i in scripts) {\n if (scripts[i].src == src) {\n return scripts[i];\n }\n }\n }\n\n return null;\n }\n },\n\n /**\n * Returns whether a given class is active for `element`.\n *\n * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n * given class is just the given class with a `no-` prefix.\n *\n * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n * ancestors have the given class or the negated version of it, then the default activation will be returned.\n *\n * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n * version of it, the class is considered active.\n *\n * @param {Element} element\n * @param {string} className\n * @param {boolean} [defaultActivation=false]\n * @returns {boolean}\n */\n isActive: function isActive(element, className, defaultActivation) {\n var no = 'no-' + className;\n\n while (element) {\n var classList = element.classList;\n\n if (classList.contains(className)) {\n return true;\n }\n\n if (classList.contains(no)) {\n return false;\n }\n\n element = element.parentElement;\n }\n\n return !!defaultActivation;\n }\n },\n\n /**\n * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n *\n * @namespace\n * @memberof Prism\n * @public\n */\n languages: {\n /**\n * The grammar for plain, unformatted text.\n */\n plain: plainTextGrammar,\n plaintext: plainTextGrammar,\n text: plainTextGrammar,\n txt: plainTextGrammar,\n\n /**\n * Creates a deep copy of the language with the given id and appends the given tokens.\n *\n * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n * will be overwritten at its original position.\n *\n * ## Best practices\n *\n * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n *\n * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n *\n * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n * @param {Grammar} redef The new tokens to append.\n * @returns {Grammar} The new language created.\n * @public\n * @example\n * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n * // at its original position\n * 'comment': { ... },\n * // CSS doesn't have a 'color' token, so this token will be appended\n * 'color': /\\b(?:red|green|blue)\\b/\n * });\n */\n extend: function extend(id, redef) {\n var lang = _.util.clone(_.languages[id]);\n\n for (var key in redef) {\n lang[key] = redef[key];\n }\n\n return lang;\n },\n\n /**\n * Inserts tokens _before_ another token in a language definition or any other grammar.\n *\n * ## Usage\n *\n * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n * this:\n *\n * ```js\n * Prism.languages.markup.style = {\n * // token\n * };\n * ```\n *\n * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n * before existing tokens. For the CSS example above, you would use it like this:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'cdata', {\n * 'style': {\n * // token\n * }\n * });\n * ```\n *\n * ## Special cases\n *\n * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n * will be ignored.\n *\n * This behavior can be used to insert tokens after `before`:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'comment', {\n * 'comment': Prism.languages.markup.comment,\n * // tokens after 'comment'\n * });\n * ```\n *\n * ## Limitations\n *\n * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n * deleting properties which is necessary to insert at arbitrary positions.\n *\n * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n * Instead, it will create a new object and replace all references to the target object with the new one. This\n * can be done without temporarily deleting properties, so the iteration order is well-defined.\n *\n * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n * you hold the target object in a variable, then the value of the variable will not change.\n *\n * ```js\n * var oldMarkup = Prism.languages.markup;\n * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n *\n * assert(oldMarkup !== Prism.languages.markup);\n * assert(newMarkup === Prism.languages.markup);\n * ```\n *\n * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n * object to be modified.\n * @param {string} before The key to insert before.\n * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n * object to be modified.\n *\n * Defaults to `Prism.languages`.\n * @returns {Grammar} The new grammar object.\n * @public\n */\n insertBefore: function insertBefore(inside, before, insert, root) {\n root = root ||\n /** @type {any} */\n _.languages;\n var grammar = root[inside];\n /** @type {Grammar} */\n\n var ret = {};\n\n for (var token in grammar) {\n if (grammar.hasOwnProperty(token)) {\n if (token == before) {\n for (var newToken in insert) {\n if (insert.hasOwnProperty(newToken)) {\n ret[newToken] = insert[newToken];\n }\n }\n } // Do not insert token which also occur in insert. See #1525\n\n\n if (!insert.hasOwnProperty(token)) {\n ret[token] = grammar[token];\n }\n }\n }\n\n var old = root[inside];\n root[inside] = ret; // Update references in other language definitions\n\n _.languages.DFS(_.languages, function (key, value) {\n if (value === old && key != inside) {\n this[key] = ret;\n }\n });\n\n return ret;\n },\n // Traverse a language definition with Depth First Search\n DFS: function DFS(o, callback, type, visited) {\n visited = visited || {};\n var objId = _.util.objId;\n\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n callback.call(o, i, o[i], type || i);\n var property = o[i];\n\n var propertyType = _.util.type(property);\n\n if (propertyType === 'Object' && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, null, visited);\n } else if (propertyType === 'Array' && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, i, visited);\n }\n }\n }\n }\n },\n plugins: {},\n\n /**\n * This is the most high-level function in Prism’s API.\n * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n * each one of them.\n *\n * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n *\n * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n * @memberof Prism\n * @public\n */\n highlightAll: function highlightAll(async, callback) {\n _.highlightAllUnder(document, async, callback);\n },\n\n /**\n * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n * {@link Prism.highlightElement} on each one of them.\n *\n * The following hooks will be run:\n * 1. `before-highlightall`\n * 2. `before-all-elements-highlight`\n * 3. All hooks of {@link Prism.highlightElement} for each element.\n *\n * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n * @memberof Prism\n * @public\n */\n highlightAllUnder: function highlightAllUnder(container, async, callback) {\n var env = {\n callback: callback,\n container: container,\n selector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n };\n\n _.hooks.run('before-highlightall', env);\n\n env.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n _.hooks.run('before-all-elements-highlight', env);\n\n for (var i = 0, element; element = env.elements[i++];) {\n _.highlightElement(element, async === true, env.callback);\n }\n },\n\n /**\n * Highlights the code inside a single element.\n *\n * The following hooks will be run:\n * 1. `before-sanity-check`\n * 2. `before-highlight`\n * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n * 4. `before-insert`\n * 5. `after-highlight`\n * 6. `complete`\n *\n * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n * the element's language.\n *\n * @param {Element} element The element containing the code.\n * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n *\n * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n * asynchronous highlighting to work. You can build your own bundle on the\n * [Download page](https://prismjs.com/download.html).\n * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n * @memberof Prism\n * @public\n */\n highlightElement: function highlightElement(element, async, callback) {\n // Find language\n var language = _.util.getLanguage(element);\n\n var grammar = _.languages[language]; // Set language on the element, if not present\n\n _.util.setLanguage(element, language); // Set language on the parent, for styling\n\n\n var parent = element.parentElement;\n\n if (parent && parent.nodeName.toLowerCase() === 'pre') {\n _.util.setLanguage(parent, language);\n }\n\n var code = element.textContent;\n var env = {\n element: element,\n language: language,\n grammar: grammar,\n code: code\n };\n\n function insertHighlightedCode(highlightedCode) {\n env.highlightedCode = highlightedCode;\n\n _.hooks.run('before-insert', env);\n\n env.element.innerHTML = env.highlightedCode;\n\n _.hooks.run('after-highlight', env);\n\n _.hooks.run('complete', env);\n\n callback && callback.call(env.element);\n }\n\n _.hooks.run('before-sanity-check', env); // plugins may change/add the parent/element\n\n\n parent = env.element.parentElement;\n\n if (parent && parent.nodeName.toLowerCase() === 'pre' && !parent.hasAttribute('tabindex')) {\n parent.setAttribute('tabindex', '0');\n }\n\n if (!env.code) {\n _.hooks.run('complete', env);\n\n callback && callback.call(env.element);\n return;\n }\n\n _.hooks.run('before-highlight', env);\n\n if (!env.grammar) {\n insertHighlightedCode(_.util.encode(env.code));\n return;\n }\n\n if (async && _self.Worker) {\n var worker = new Worker(_.filename);\n\n worker.onmessage = function (evt) {\n insertHighlightedCode(evt.data);\n };\n\n worker.postMessage(JSON.stringify({\n language: env.language,\n code: env.code,\n immediateClose: true\n }));\n } else {\n insertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n }\n },\n\n /**\n * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n * and the language definitions to use, and returns a string with the HTML produced.\n *\n * The following hooks will be run:\n * 1. `before-tokenize`\n * 2. `after-tokenize`\n * 3. `wrap`: On each {@link Token}.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @param {string} language The name of the language definition passed to `grammar`.\n * @returns {string} The highlighted HTML.\n * @memberof Prism\n * @public\n * @example\n * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n */\n highlight: function highlight(text, grammar, language) {\n var env = {\n code: text,\n grammar: grammar,\n language: language\n };\n\n _.hooks.run('before-tokenize', env);\n\n if (!env.grammar) {\n throw new Error('The language \"' + env.language + '\" has no grammar.');\n }\n\n env.tokens = _.tokenize(env.code, env.grammar);\n\n _.hooks.run('after-tokenize', env);\n\n return Token.stringify(_.util.encode(env.tokens), env.language);\n },\n\n /**\n * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n * and the language definitions to use, and returns an array with the tokenized code.\n *\n * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n *\n * This method could be useful in other contexts as well, as a very crude parser.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @returns {TokenStream} An array of strings and tokens, a token stream.\n * @memberof Prism\n * @public\n * @example\n * let code = `var foo = 0;`;\n * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n * tokens.forEach(token => {\n * if (token instanceof Prism.Token && token.type === 'number') {\n * console.log(`Found numeric literal: ${token.content}`);\n * }\n * });\n */\n tokenize: function tokenize(text, grammar) {\n var rest = grammar.rest;\n\n if (rest) {\n for (var token in rest) {\n grammar[token] = rest[token];\n }\n\n delete grammar.rest;\n }\n\n var tokenList = new LinkedList();\n addAfter(tokenList, tokenList.head, text);\n matchGrammar(text, tokenList, grammar, tokenList.head, 0);\n return toArray(tokenList);\n },\n\n /**\n * @namespace\n * @memberof Prism\n * @public\n */\n hooks: {\n all: {},\n\n /**\n * Adds the given callback to the list of callbacks for the given hook.\n *\n * The callback will be invoked when the hook it is registered for is run.\n * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n *\n * One callback function can be registered to multiple hooks and the same hook multiple times.\n *\n * @param {string} name The name of the hook.\n * @param {HookCallback} callback The callback function which is given environment variables.\n * @public\n */\n add: function add(name, callback) {\n var hooks = _.hooks.all;\n hooks[name] = hooks[name] || [];\n hooks[name].push(callback);\n },\n\n /**\n * Runs a hook invoking all registered callbacks with the given environment variables.\n *\n * Callbacks will be invoked synchronously and in the order in which they were registered.\n *\n * @param {string} name The name of the hook.\n * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n * @public\n */\n run: function run(name, env) {\n var callbacks = _.hooks.all[name];\n\n if (!callbacks || !callbacks.length) {\n return;\n }\n\n for (var i = 0, callback; callback = callbacks[i++];) {\n callback(env);\n }\n }\n },\n Token: Token\n };\n _self.Prism = _; // Typescript note:\n // The following can be used to import the Token type in JSDoc:\n //\n // @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n /**\n * Creates a new token.\n *\n * @param {string} type See {@link Token#type type}\n * @param {string | TokenStream} content See {@link Token#content content}\n * @param {string|string[]} [alias] The alias(es) of the token.\n * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n * @class\n * @global\n * @public\n */\n\n function Token(type, content, alias, matchedStr) {\n /**\n * The type of the token.\n *\n * This is usually the key of a pattern in a {@link Grammar}.\n *\n * @type {string}\n * @see GrammarToken\n * @public\n */\n this.type = type;\n /**\n * The strings or tokens contained by this token.\n *\n * This will be a token stream if the pattern matched also defined an `inside` grammar.\n *\n * @type {string | TokenStream}\n * @public\n */\n\n this.content = content;\n /**\n * The alias(es) of the token.\n *\n * @type {string|string[]}\n * @see GrammarToken\n * @public\n */\n\n this.alias = alias; // Copy of the full string this token was created from\n\n this.length = (matchedStr || '').length | 0;\n }\n /**\n * A token stream is an array of strings and {@link Token Token} objects.\n *\n * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n * them.\n *\n * 1. No adjacent strings.\n * 2. No empty strings.\n *\n * The only exception here is the token stream that only contains the empty string and nothing else.\n *\n * @typedef {Array<string | Token>} TokenStream\n * @global\n * @public\n */\n\n /**\n * Converts the given token or token stream to an HTML representation.\n *\n * The following hooks will be run:\n * 1. `wrap`: On each {@link Token}.\n *\n * @param {string | Token | TokenStream} o The token or token stream to be converted.\n * @param {string} language The name of current language.\n * @returns {string} The HTML representation of the token or token stream.\n * @memberof Token\n * @static\n */\n\n\n Token.stringify = function stringify(o, language) {\n if (typeof o == 'string') {\n return o;\n }\n\n if (Array.isArray(o)) {\n var s = '';\n o.forEach(function (e) {\n s += stringify(e, language);\n });\n return s;\n }\n\n var env = {\n type: o.type,\n content: stringify(o.content, language),\n tag: 'span',\n classes: ['token', o.type],\n attributes: {},\n language: language\n };\n var aliases = o.alias;\n\n if (aliases) {\n if (Array.isArray(aliases)) {\n Array.prototype.push.apply(env.classes, aliases);\n } else {\n env.classes.push(aliases);\n }\n }\n\n _.hooks.run('wrap', env);\n\n var attributes = '';\n\n for (var name in env.attributes) {\n attributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '"') + '\"';\n }\n\n return '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n };\n /**\n * @param {RegExp} pattern\n * @param {number} pos\n * @param {string} text\n * @param {boolean} lookbehind\n * @returns {RegExpExecArray | null}\n */\n\n\n function matchPattern(pattern, pos, text, lookbehind) {\n pattern.lastIndex = pos;\n var match = pattern.exec(text);\n\n if (match && lookbehind && match[1]) {\n // change the match to remove the text matched by the Prism lookbehind group\n var lookbehindLength = match[1].length;\n match.index += lookbehindLength;\n match[0] = match[0].slice(lookbehindLength);\n }\n\n return match;\n }\n /**\n * @param {string} text\n * @param {LinkedList<string | Token>} tokenList\n * @param {any} grammar\n * @param {LinkedListNode<string | Token>} startNode\n * @param {number} startPos\n * @param {RematchOptions} [rematch]\n * @returns {void}\n * @private\n *\n * @typedef RematchOptions\n * @property {string} cause\n * @property {number} reach\n */\n\n\n function matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n for (var token in grammar) {\n if (!grammar.hasOwnProperty(token) || !grammar[token]) {\n continue;\n }\n\n var patterns = grammar[token];\n patterns = Array.isArray(patterns) ? patterns : [patterns];\n\n for (var j = 0; j < patterns.length; ++j) {\n if (rematch && rematch.cause == token + ',' + j) {\n return;\n }\n\n var patternObj = patterns[j];\n var inside = patternObj.inside;\n var lookbehind = !!patternObj.lookbehind;\n var greedy = !!patternObj.greedy;\n var alias = patternObj.alias;\n\n if (greedy && !patternObj.pattern.global) {\n // Without the global flag, lastIndex won't work\n var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n patternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n }\n /** @type {RegExp} */\n\n\n var pattern = patternObj.pattern || patternObj;\n\n for ( // iterate the token list and keep track of the current token/string position\n var currentNode = startNode.next, pos = startPos; currentNode !== tokenList.tail; pos += currentNode.value.length, currentNode = currentNode.next) {\n if (rematch && pos >= rematch.reach) {\n break;\n }\n\n var str = currentNode.value;\n\n if (tokenList.length > text.length) {\n // Something went terribly wrong, ABORT, ABORT!\n return;\n }\n\n if (str instanceof Token) {\n continue;\n }\n\n var removeCount = 1; // this is the to parameter of removeBetween\n\n var match;\n\n if (greedy) {\n match = matchPattern(pattern, pos, text, lookbehind);\n\n if (!match || match.index >= text.length) {\n break;\n }\n\n var from = match.index;\n var to = match.index + match[0].length;\n var p = pos; // find the node that contains the match\n\n p += currentNode.value.length;\n\n while (from >= p) {\n currentNode = currentNode.next;\n p += currentNode.value.length;\n } // adjust pos (and p)\n\n\n p -= currentNode.value.length;\n pos = p; // the current node is a Token, then the match starts inside another Token, which is invalid\n\n if (currentNode.value instanceof Token) {\n continue;\n } // find the last node which is affected by this match\n\n\n for (var k = currentNode; k !== tokenList.tail && (p < to || typeof k.value === 'string'); k = k.next) {\n removeCount++;\n p += k.value.length;\n }\n\n removeCount--; // replace with the new match\n\n str = text.slice(pos, p);\n match.index -= pos;\n } else {\n match = matchPattern(pattern, 0, str, lookbehind);\n\n if (!match) {\n continue;\n }\n } // eslint-disable-next-line no-redeclare\n\n\n var from = match.index;\n var matchStr = match[0];\n var before = str.slice(0, from);\n var after = str.slice(from + matchStr.length);\n var reach = pos + str.length;\n\n if (rematch && reach > rematch.reach) {\n rematch.reach = reach;\n }\n\n var removeFrom = currentNode.prev;\n\n if (before) {\n removeFrom = addAfter(tokenList, removeFrom, before);\n pos += before.length;\n }\n\n removeRange(tokenList, removeFrom, removeCount);\n var wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n currentNode = addAfter(tokenList, removeFrom, wrapped);\n\n if (after) {\n addAfter(tokenList, currentNode, after);\n }\n\n if (removeCount > 1) {\n // at least one Token object was removed, so we have to do some rematching\n // this can only happen if the current pattern is greedy\n\n /** @type {RematchOptions} */\n var nestedRematch = {\n cause: token + ',' + j,\n reach: reach\n };\n matchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch); // the reach might have been extended because of the rematching\n\n if (rematch && nestedRematch.reach > rematch.reach) {\n rematch.reach = nestedRematch.reach;\n }\n }\n }\n }\n }\n }\n /**\n * @typedef LinkedListNode\n * @property {T} value\n * @property {LinkedListNode<T> | null} prev The previous node.\n * @property {LinkedListNode<T> | null} next The next node.\n * @template T\n * @private\n */\n\n /**\n * @template T\n * @private\n */\n\n\n function LinkedList() {\n /** @type {LinkedListNode<T>} */\n var head = {\n value: null,\n prev: null,\n next: null\n };\n /** @type {LinkedListNode<T>} */\n\n var tail = {\n value: null,\n prev: head,\n next: null\n };\n head.next = tail;\n /** @type {LinkedListNode<T>} */\n\n this.head = head;\n /** @type {LinkedListNode<T>} */\n\n this.tail = tail;\n this.length = 0;\n }\n /**\n * Adds a new node with the given value to the list.\n *\n * @param {LinkedList<T>} list\n * @param {LinkedListNode<T>} node\n * @param {T} value\n * @returns {LinkedListNode<T>} The added node.\n * @template T\n */\n\n\n function addAfter(list, node, value) {\n // assumes that node != list.tail && values.length >= 0\n var next = node.next;\n var newNode = {\n value: value,\n prev: node,\n next: next\n };\n node.next = newNode;\n next.prev = newNode;\n list.length++;\n return newNode;\n }\n /**\n * Removes `count` nodes after the given node. The given node will not be removed.\n *\n * @param {LinkedList<T>} list\n * @param {LinkedListNode<T>} node\n * @param {number} count\n * @template T\n */\n\n\n function removeRange(list, node, count) {\n var next = node.next;\n\n for (var i = 0; i < count && next !== list.tail; i++) {\n next = next.next;\n }\n\n node.next = next;\n next.prev = node;\n list.length -= i;\n }\n /**\n * @param {LinkedList<T>} list\n * @returns {T[]}\n * @template T\n */\n\n\n function toArray(list) {\n var array = [];\n var node = list.head.next;\n\n while (node !== list.tail) {\n array.push(node.value);\n node = node.next;\n }\n\n return array;\n }\n\n if (!_self.document) {\n if (!_self.addEventListener) {\n // in Node.js\n return _;\n }\n\n if (!_.disableWorkerMessageHandler) {\n // In worker\n _self.addEventListener('message', function (evt) {\n var message = JSON.parse(evt.data);\n var lang = message.language;\n var code = message.code;\n var immediateClose = message.immediateClose;\n\n _self.postMessage(_.highlight(code, _.languages[lang], lang));\n\n if (immediateClose) {\n _self.close();\n }\n }, false);\n }\n\n return _;\n } // Get current script and highlight\n\n\n var script = _.util.currentScript();\n\n if (script) {\n _.filename = script.src;\n\n if (script.hasAttribute('data-manual')) {\n _.manual = true;\n }\n }\n\n function highlightAutomaticallyCallback() {\n if (!_.manual) {\n _.highlightAll();\n }\n }\n\n if (!_.manual) {\n // If the document state is \"loading\", then we'll use DOMContentLoaded.\n // If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n // DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n // might take longer one animation frame to execute which can create a race condition where only some plugins have\n // been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n // See https://github.com/PrismJS/prism/issues/2102\n var readyState = document.readyState;\n\n if (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n document.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n } else {\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(highlightAutomaticallyCallback);\n } else {\n window.setTimeout(highlightAutomaticallyCallback, 16);\n }\n }\n }\n\n return _;\n }(_self);\n\n if (module.exports) {\n module.exports = Prism;\n } // hack for components to work correctly in node.js\n\n\n if (typeof commonjsGlobal !== 'undefined') {\n commonjsGlobal.Prism = Prism;\n } // some additional documentation/types\n\n /**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n */\n\n /**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n /**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n */\n\n /**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n\n})(prismCore);\n\nvar clike_1 = clike$1;\nclike$1.displayName = 'clike';\nclike$1.aliases = [];\n\nfunction clike$1(Prism) {\n Prism.languages.clike = {\n comment: [{\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n }, {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }],\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n lookbehind: true,\n inside: {\n punctuation: /[.\\\\]/\n }\n },\n keyword: /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: /\\b\\w+(?=\\()/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n punctuation: /[{}[\\];(),.:]/\n };\n}\n\nvar javascript_1 = javascript;\njavascript.displayName = 'javascript';\njavascript.aliases = ['js'];\n\nfunction javascript(Prism) {\n Prism.languages.javascript = Prism.languages.extend('clike', {\n 'class-name': [Prism.languages.clike['class-name'], {\n pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n lookbehind: true\n }],\n keyword: [{\n pattern: /((?:^|\\})\\s*)catch\\b/,\n lookbehind: true\n }, {\n pattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n lookbehind: true\n }],\n // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n function: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n number: {\n pattern: RegExp(/(^|[^\\w$])/.source + '(?:' + ( // constant\n /NaN|Infinity/.source + '|' + // binary integer\n /0[bB][01]+(?:_[01]+)*n?/.source + '|' + // octal integer\n /0[oO][0-7]+(?:_[0-7]+)*n?/.source + '|' + // hexadecimal integer\n /0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source + '|' + // decimal bigint\n /\\d+(?:_\\d+)*n/.source + '|' + // decimal number (integer or float) but no bigint\n /(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source) + ')' + /(?![\\w$])/.source),\n lookbehind: true\n },\n operator: /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n });\n Prism.languages.javascript['class-name'][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/;\n Prism.languages.insertBefore('javascript', 'keyword', {\n regex: {\n // eslint-disable-next-line regexp/no-dupe-characters-character-class\n pattern: /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/,\n lookbehind: true,\n greedy: true,\n inside: {\n 'regex-source': {\n pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-delimiter': /^\\/|\\/$/,\n 'regex-flags': /^[a-z]+$/\n }\n },\n // This must be declared before keyword because we use \"function\" inside the look-forward\n 'function-variable': {\n pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n alias: 'function'\n },\n parameter: [{\n pattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n lookbehind: true,\n inside: Prism.languages.javascript\n }, {\n pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n lookbehind: true,\n inside: Prism.languages.javascript\n }, {\n pattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n }, {\n pattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n }],\n constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n });\n Prism.languages.insertBefore('javascript', 'string', {\n hashbang: {\n pattern: /^#!.*/,\n greedy: true,\n alias: 'comment'\n },\n 'template-string': {\n pattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n greedy: true,\n inside: {\n 'template-punctuation': {\n pattern: /^`|`$/,\n alias: 'string'\n },\n interpolation: {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.javascript\n }\n },\n string: /[\\s\\S]+/\n }\n },\n 'string-property': {\n pattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n }\n });\n Prism.languages.insertBefore('javascript', 'operator', {\n 'literal-property': {\n pattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n lookbehind: true,\n alias: 'property'\n }\n });\n\n if (Prism.languages.markup) {\n Prism.languages.markup.tag.addInlined('script', 'javascript'); // add attribute support for all DOM events.\n // https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n\n Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source, 'javascript');\n }\n\n Prism.languages.js = Prism.languages.javascript;\n}\n/* global window, self */\n// istanbul ignore next - Don't allow Prism to run on page load in browser or\n// to start messaging from workers.\n\n\nvar ctx = (typeof globalThis === \"undefined\" ? \"undefined\" : _typeof(globalThis)) === 'object' ? globalThis : (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) === 'object' ? self : (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' ? window : _typeof(commonjsGlobal) === 'object' ? commonjsGlobal : {};\nvar restore = capture();\nctx.Prism = {\n manual: true,\n disableWorkerMessageHandler: true\n}; // Load all stuff in `prism.js` itself, except for `prism-file-highlight.js`.\n// The wrapped non-leaky grammars are loaded instead of Prism’s originals.\n\nvar h = hastscript;\nvar decode = parseEntities_1;\nvar Prism = prismCore.exports;\nvar markup = markup_1;\nvar css = css_1;\nvar clike = clike_1;\nvar js = javascript_1;\nrestore();\nvar own = {}.hasOwnProperty; // Inherit.\n\nfunction Refractor() {}\n\nRefractor.prototype = Prism; // Construct.\n\nvar refract = new Refractor(); // Expose.\n\nvar core = refract; // Create.\n\nrefract.highlight = highlight;\nrefract.register = register;\nrefract.alias = alias;\nrefract.registered = registered;\nrefract.listLanguages = listLanguages; // Register bundled grammars.\n\nregister(markup);\nregister(css);\nregister(clike);\nregister(js);\nrefract.util.encode = encode;\nrefract.Token.stringify = stringify;\n\nfunction register(grammar) {\n if (typeof grammar !== 'function' || !grammar.displayName) {\n throw new Error('Expected `function` for `grammar`, got `' + grammar + '`');\n } // Do not duplicate registrations.\n\n\n if (refract.languages[grammar.displayName] === undefined) {\n grammar(refract);\n }\n}\n\nfunction alias(name, alias) {\n var languages = refract.languages;\n var map = name;\n var key;\n var list;\n var length;\n var index;\n\n if (alias) {\n map = {};\n map[name] = alias;\n }\n\n for (key in map) {\n list = map[key];\n list = typeof list === 'string' ? [list] : list;\n length = list.length;\n index = -1;\n\n while (++index < length) {\n languages[list[index]] = languages[key];\n }\n }\n}\n\nfunction highlight(value, name) {\n var sup = Prism.highlight;\n var grammar;\n\n if (typeof value !== 'string') {\n throw new Error('Expected `string` for `value`, got `' + value + '`');\n } // `name` is a grammar object.\n\n\n if (refract.util.type(name) === 'Object') {\n grammar = name;\n name = null;\n } else {\n if (typeof name !== 'string') {\n throw new Error('Expected `string` for `name`, got `' + name + '`');\n }\n\n if (own.call(refract.languages, name)) {\n grammar = refract.languages[name];\n } else {\n throw new Error('Unknown language: `' + name + '` is not registered');\n }\n }\n\n return sup.call(this, value, grammar, name);\n}\n\nfunction registered(language) {\n if (typeof language !== 'string') {\n throw new Error('Expected `string` for `language`, got `' + language + '`');\n }\n\n return own.call(refract.languages, language);\n}\n\nfunction listLanguages() {\n var languages = refract.languages;\n var list = [];\n var language;\n\n for (language in languages) {\n if (own.call(languages, language) && _typeof(languages[language]) === 'object') {\n list.push(language);\n }\n }\n\n return list;\n}\n\nfunction stringify(value, language, parent) {\n var env;\n\n if (typeof value === 'string') {\n return {\n type: 'text',\n value: value\n };\n }\n\n if (refract.util.type(value) === 'Array') {\n return stringifyAll(value, language);\n }\n\n env = {\n type: value.type,\n content: refract.Token.stringify(value.content, language, parent),\n tag: 'span',\n classes: ['token', value.type],\n attributes: {},\n language: language,\n parent: parent\n };\n\n if (value.alias) {\n env.classes = env.classes.concat(value.alias);\n }\n\n refract.hooks.run('wrap', env);\n return h(env.tag + '.' + env.classes.join('.'), attributes(env.attributes), env.content);\n}\n\nfunction stringifyAll(values, language) {\n var result = [];\n var length = values.length;\n var index = -1;\n var value;\n\n while (++index < length) {\n value = values[index];\n\n if (value !== '' && value !== null && value !== undefined) {\n result.push(value);\n }\n }\n\n index = -1;\n length = result.length;\n\n while (++index < length) {\n value = result[index];\n result[index] = refract.Token.stringify(value, language, result);\n }\n\n return result;\n}\n\nfunction encode(tokens) {\n return tokens;\n}\n\nfunction attributes(attrs) {\n var key;\n\n for (key in attrs) {\n attrs[key] = decode(attrs[key]);\n }\n\n return attrs;\n}\n\nfunction capture() {\n var defined = ('Prism' in ctx);\n /* istanbul ignore next */\n\n var current = defined ? ctx.Prism : undefined;\n return restore;\n\n function restore() {\n /* istanbul ignore else - Clean leaks after Prism. */\n if (defined) {\n ctx.Prism = current;\n } else {\n delete ctx.Prism;\n }\n\n defined = undefined;\n current = undefined;\n }\n}\n\nvar SyntaxHighlighter$1 = highlight$1(core, {});\n\nSyntaxHighlighter$1.registerLanguage = function (_, language) {\n return core.register(language);\n};\n\nvar ReactSyntaxHighlighter = SyntaxHighlighter$1;\nvar navigator = window_1.navigator,\n document$1 = window_1.document,\n globalWindow = window_1.window;\nReactSyntaxHighlighter.registerLanguage('jsextra', jsExtras$1);\nReactSyntaxHighlighter.registerLanguage('jsx', jsx$1);\nReactSyntaxHighlighter.registerLanguage('json', json$1);\nReactSyntaxHighlighter.registerLanguage('yml', yaml$1);\nReactSyntaxHighlighter.registerLanguage('md', markdown$1);\nReactSyntaxHighlighter.registerLanguage('bash', bash$1);\nReactSyntaxHighlighter.registerLanguage('css', css$2);\nReactSyntaxHighlighter.registerLanguage('html', markup$2);\nReactSyntaxHighlighter.registerLanguage('tsx', tsx$1);\nReactSyntaxHighlighter.registerLanguage('typescript', typescript$1);\nReactSyntaxHighlighter.registerLanguage('graphql', graphql$1);\nvar themedSyntax = memoize(2)(function (theme) {\n return Object.entries(theme.code || {}).reduce(function (acc, _ref8) {\n var _ref9 = _slicedToArray(_ref8, 2),\n key = _ref9[0],\n val = _ref9[1];\n\n return Object.assign(Object.assign({}, acc), _defineProperty2({}, \"* .\".concat(key), val));\n }, {});\n});\nvar copyToClipboard = createCopyToClipboardFunction();\n\nfunction createCopyToClipboardFunction() {\n var _this = this;\n\n if (navigator === null || navigator === void 0 ? void 0 : navigator.clipboard) {\n return function (text) {\n return navigator.clipboard.writeText(text);\n };\n }\n\n return function (text) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var tmp, focus;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n tmp = document$1.createElement('TEXTAREA');\n focus = document$1.activeElement;\n tmp.value = text;\n document$1.body.appendChild(tmp);\n tmp.select();\n document$1.execCommand('copy');\n document$1.body.removeChild(tmp);\n focus.focus();\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n };\n}\n\nvar Wrapper = styled.div(function (_ref10) {\n var theme = _ref10.theme;\n return {\n position: 'relative',\n overflow: 'hidden',\n color: theme.color.defaultText\n };\n}, function (_ref11) {\n var theme = _ref11.theme,\n bordered = _ref11.bordered;\n return bordered ? {\n border: \"1px solid \".concat(theme.appBorderColor),\n borderRadius: theme.borderRadius,\n background: theme.background.content\n } : {};\n});\nvar Scroller = styled(function (_ref12) {\n var children = _ref12.children,\n className = _ref12.className;\n return React__default.createElement(ScrollArea, {\n horizontal: true,\n vertical: true,\n className: className\n }, children);\n})({\n position: 'relative'\n}, function (_ref13) {\n var theme = _ref13.theme;\n return themedSyntax(theme);\n});\nvar Pre = styled.pre(function (_ref14) {\n var theme = _ref14.theme,\n padded = _ref14.padded;\n return {\n display: 'flex',\n justifyContent: 'flex-start',\n margin: 0,\n padding: padded ? theme.layoutMargin : 0\n };\n});\n/*\nWe can't use `code` since PrismJS races for it.\nSee https://github.com/storybookjs/storybook/issues/18090\n */\n\nvar Code = styled.div(function (_ref15) {\n var theme = _ref15.theme;\n return {\n flex: 1,\n paddingLeft: 2,\n paddingRight: theme.layoutMargin,\n opacity: 1\n };\n}); // copied from @types/react-syntax-highlighter/index.d.ts\n\nvar SyntaxHighlighter = function SyntaxHighlighter(_a) {\n var children = _a.children,\n _a$language = _a.language,\n language = _a$language === void 0 ? 'jsx' : _a$language,\n _a$copyable = _a.copyable,\n copyable = _a$copyable === void 0 ? false : _a$copyable,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? false : _a$bordered,\n _a$padded = _a.padded,\n padded = _a$padded === void 0 ? false : _a$padded,\n _a$format = _a.format,\n format = _a$format === void 0 ? true : _a$format,\n _a$formatter = _a.formatter,\n formatter = _a$formatter === void 0 ? null : _a$formatter,\n _a$className = _a.className,\n className = _a$className === void 0 ? null : _a$className,\n _a$showLineNumbers = _a.showLineNumbers,\n showLineNumbers = _a$showLineNumbers === void 0 ? false : _a$showLineNumbers,\n rest = __rest(_a, [\"children\", \"language\", \"copyable\", \"bordered\", \"padded\", \"format\", \"formatter\", \"className\", \"showLineNumbers\"]);\n\n if (typeof children !== 'string' || !children.trim()) {\n return null;\n }\n\n var highlightableCode = formatter ? formatter(format, children) : children.trim();\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n copied = _useState2[0],\n setCopied = _useState2[1];\n\n var onClick = useCallback(function (e) {\n e.preventDefault();\n var selectedText = globalWindow.getSelection().toString();\n var textToCopy = e.type !== 'click' && selectedText ? selectedText : highlightableCode;\n copyToClipboard(textToCopy).then(function () {\n setCopied(true);\n globalWindow.setTimeout(function () {\n return setCopied(false);\n }, 1500);\n }).catch(logger.error);\n }, []);\n return React__default.createElement(Wrapper, {\n bordered: bordered,\n padded: padded,\n className: className,\n onCopyCapture: onClick\n }, React__default.createElement(Scroller, null, React__default.createElement(ReactSyntaxHighlighter, Object.assign({\n padded: padded || bordered,\n language: language,\n showLineNumbers: showLineNumbers,\n showInlineLineNumbers: showLineNumbers,\n useInlineStyles: false,\n PreTag: Pre,\n CodeTag: Code,\n lineNumberContainerStyle: {}\n }, rest), highlightableCode)), copyable ? React__default.createElement(ActionBar, {\n actionItems: [{\n title: copied ? 'Copied' : 'Copy',\n onClick: onClick\n }]\n }) : null);\n};\n\nexport { SyntaxHighlighter, createCopyToClipboardFunction, SyntaxHighlighter as default };\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","sourceRoot":""}