{"version":3,"sources":["webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/strong.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/util/html.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/decode.js","webpack:///./node_modules/is-alphabetical/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenizer.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/table.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/defaults.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/code-inline.js","webpack:///./node_modules/trim-trailing-lines/index.js","webpack:///./node_modules/react-markdown/lib/renderers.js","webpack:///./node_modules/replace-ext/index.js","webpack:///./node_modules/state-toggle/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/text.js","webpack:///./node_modules/unherit/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/footnote-definition.js","webpack:///./node_modules/extend/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/parse.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/break.js","webpack:///./node_modules/vfile-location/index.js","webpack:///./node_modules/react-markdown/lib/wrap-table-rows.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/link.js","webpack:///./node_modules/is-buffer/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/emphasis.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/url.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/url.js","webpack:///./node_modules/trough/wrap.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/delete.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/escape.js","webpack:///./node_modules/bail/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/unescape.js","webpack:///./node_modules/unist-util-remove-position/node_modules/unist-util-is/convert.js","webpack:///./node_modules/react-markdown/node_modules/unist-util-is/convert.js","webpack:///./node_modules/is-whitespace-character/index.js","webpack:///./node_modules/x-is-string/index.js","webpack:///./node_modules/react-markdown/lib/get-definitions.js","webpack:///./node_modules/react-markdown/lib/react-markdown.js","webpack:///./node_modules/is-alphanumerical/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/parser.js","webpack:///./node_modules/collapse-white-space/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/link.js","webpack:///./node_modules/markdown-escapes/index.js","webpack:///./node_modules/react-markdown/node_modules/unist-util-stringify-position/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/tag.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/paragraph.js","webpack:///./src/components/main-wrap/MainWrap.css.ts","webpack:///./node_modules/react-markdown/lib/uri-transformer.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/list.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/repeat-string/index.js","webpack:///./node_modules/trim/index.js","webpack:///./node_modules/react-markdown/node_modules/vfile/core.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/auto-link.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/code-fenced.js","webpack:///./node_modules/xtend/immutable.js","webpack:///./node_modules/react-markdown/lib/ast-to-react.js","webpack:///./node_modules/mdast-add-list-metadata/node_modules/unist-util-visit-parents/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/emphasis.js","webpack:///./node_modules/react-markdown/node_modules/parse-entities/index.js","webpack:///./node_modules/react-markdown/node_modules/is-plain-obj/index.js","webpack:///./node_modules/react-markdown/node_modules/unified/index.js","webpack:///./node_modules/is-decimal/index.js","webpack:///./node_modules/unist-util-remove-position/node_modules/unist-util-visit/index.js","webpack:///./node_modules/@material-ui/icons/Star.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/newline.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/reference.js","webpack:///./node_modules/unist-util-remove-position/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/code-inline.js","webpack:///./node_modules/react-markdown/lib/plugins/naive-html.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/util/interrupt.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/util/normalize.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/delete.js","webpack:///./node_modules/is-hexadecimal/index.js","webpack:///./node_modules/react-markdown/node_modules/unist-util-visit/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/html-inline.js","webpack:///./node_modules/react-markdown/node_modules/unist-util-visit-parents/index.js","webpack:///./node_modules/react-markdown/lib/symbols.js","webpack:///./node_modules/unist-util-remove-position/node_modules/unist-util-visit-parents/index.js","webpack:///./node_modules/react-markdown/node_modules/parse-entities/decode-entity.browser.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/heading-atx.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/code-indented.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/heading-setext.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/break.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/escape.js","webpack:///./node_modules/is-word-character/index.js","webpack:///./src/components/main-title/MainTitle.css.ts","webpack:///./src/components/main-title/MainTitle.tsx","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/strong.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/set-options.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/thematic-break.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/blockquote.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/html-block.js","webpack:///./node_modules/react-markdown/lib/plugins/disallow-node.js","webpack:///./node_modules/react-markdown/node_modules/vfile-message/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/definition.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/index.js","webpack:///./node_modules/react-markdown/node_modules/vfile/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/util/get-indentation.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/util/remove-indentation.js","webpack:///./node_modules/mdast-add-list-metadata/index.js","webpack:///./node_modules/trough/index.js"],"names":["module","exports","value","fromIndex","asterisk","indexOf","underscore","openTag","closeTag","openCloseTag","RegExp","tag","xtend","entities","ctx","decoder","raw","position","options","normalize","warning","handleWarning","offsets","offset","line","result","push","start","indent","reason","code","file","message","handler","text","reference","textContext","referenceContext","character","charCodeAt","type","location","index","length","method","name","matched","valueLength","self","this","tokens","methods","tokenizers","column","eat","now","updatePosition","onlyAtStart","atStart","notInList","inList","notInBlock","inBlock","notInLink","inLink","apply","fail","Error","eof","subvalue","lastIndex","pos","toOffset","Position","end","before","indentation","last","getOffset","node","prev","combined","n","l","concat","current","substring","validateEat","reset","test","parent","children","MERGEABLE_NODES","mergeable","call","exitStart","add","arguments","blockquote","commonmark","whitespace","silent","alignments","alignment","row","lines","queue","hasDash","align","cell","preamble","count","opening","lineCount","rows","table","lineIndex","pipeIndex","first","gfm","slice","join","splice","charAt","tokenizeInline","footnotes","pedantic","blocks","normalizeArray","parts","allowAboveRoot","up","i","unshift","filter","xs","f","res","resolve","resolvedPath","resolvedAbsolute","path","process","cwd","TypeError","split","p","isAbsolute","trailingSlash","substr","paths","Array","prototype","relative","from","to","trim","arr","fromParts","toParts","Math","min","samePartsLength","outputParts","sep","delimiter","dirname","hasRoot","matchedSlash","basename","ext","extname","startDot","startPart","preDotState","str","len","String","replace","React","supportsStringRender","parseInt","version","createElement","SimpleRenderer","props","getCoreProps","break","paragraph","emphasis","strong","thematicBreak","delete","link","image","linkReference","imageReference","bind","tableHead","tableBody","tableRow","tableCell","style","textAlign","undefined","coreProps","isHeader","root","useFragment","className","Fragment","list","attrs","toString","ordered","listItem","checkbox","checked","readOnly","definition","heading","level","inlineCode","language","html","skipHtml","isBlock","escapeHtml","comp","nodeProps","dangerouslySetInnerHTML","__html","virtualHtml","parsedHtml","cloneElement","element","npath","nFileName","key","state","context","tokenizer","inlineMethods","inlineTokenizers","locator","decode","content","source","inherits","Super","Of","From","parameters","footnoteDefinition","EXPRESSION_INITIAL_TAB","currentLine","subqueue","identifier","exit","C_BRACKET_OPEN","enterBlock","tokenizeBlock","hasOwn","Object","hasOwnProperty","toStr","defineProperty","gOPD","getOwnPropertyDescriptor","isArray","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","constructor","setProperty","target","enumerable","configurable","newValue","writable","getProperty","extend","src","copy","copyIsArray","clone","deep","removePosition","EXPRESSION_LINE_BREAKS","offsetToPositionFactory","indices","positionToOffsetFactory","isNaN","contents","toPosition","visit","wrap","isBuffer","readFloatLE","isSlowBuffer","_isBuffer","word","locate","marker","url","PROTOCOLS","PROTOCOLS_LENGTH","protocol","match","parenCount","nextCharacter","toLowerCase","enterLink","title","nonTerminated","fn","callback","invoked","params","done","error","then","err","escape","convert","Boolean","typeFactory","ok","anyFactory","matchesFactory","tests","checks","results","convertAll","re","fromCode","fromCharCode","getDefinitions","defs","reduce","definitions","child","href","_toConsumableArray","arr2","_arrayWithoutHoles","iter","Symbol","iterator","_iterableToArray","_nonIterableSpread","unified","parse","PropTypes","addListMetadata","naiveHtml","disallowNode","astToReact","wrapTableRows","uriTransformer","defaultRenderers","symbols","allTypes","keys","ReactMarkdown","parserOptions","allowedTypes","disallowedTypes","renderers","parser","plugins","applyParserPlugin","rawAst","renderProps","astPlugins","removalMethod","unwrapDisallowed","ofType","allowNode","ifNotMatch","renderHtml","hasHtmlParser","some","item","identity","HtmlParser","determineAstPlugins","transformedAst","runSync","ast","plugin","use","defaultProps","sourcePos","rawSourcePos","transformLinkUri","propTypes","string","bool","func","arrayOf","oneOf","oneOfType","linkTarget","transformImageUri","object","array","types","alphabetical","decimal","toggle","vfileLocation","unescape","Parser","doc","setOptions","proto","enterList","interruptParagraph","interruptList","interruptBlockquote","blockTokenizers","newline","indentedCode","fencedCode","atxHeading","setextHeading","footnote","autoLink","deletion","blockMethods","tokenizeFactory","own","LINK_MARKERS","COMMONMARK_LINK_MARKERS","closed","beforeURL","beforeTitle","hasMarker","markers","isImage","depth","alt","escapes","defaults","settings","default","point","trimTrailingLines","interrupt","size","interruptors","left","HolderWrap","styled","div","protocols","uri","colon","repeat","getIndent","removeIndent","nextIndex","startIndex","prefixed","currentMarker","prevEmpty","empty","items","allLines","emptyLines","enterTop","exitBlockquote","isLoose","indented","interuptors","LIST_ORDERED_COMMONMARK_MARKERS","LIST_ORDERED_MARKERS","LIST_UNORDERED_MARKERS","TAB_SIZE","trail","loose","EXPRESSION_LOOSE_LIST_ITEM","EXPRESSION_TASK_ITEM","EXPRESSION_BULLET","EXPRESSION_PEDANTIC_BULLET","EXPRESSION_INITIAL_INDENT","task","pedanticListItem","normalListItem","replacer","$0","max","bullet","rest","trimmedLines","$1","$2","$3","$4","Number","create","ctor","superCtor","super_","TempCtor","cache","num","right","buffer","VFile","encoding","order","prop","data","messages","history","assertPart","part","assertNonEmpty","assertPath","get","set","stem","MAILTO_LENGTH","hasAtCharacter","fenceCount","flag","exdentedContent","closing","exdentedClosing","lang","ReactIs","defaultNodePosition","renderer","isValidElementType","getNodeProps","resolveChildren","map","childNode","opts","isTagRenderer","sourcePosition","includeNodeIndex","parentChildCount","ref","assignDefined","nodeKey","tight","unwrapParagraphs","getListItemChildren","inline","columnAlignment","parsedChildren","el","Children","toArray","mergeNodeChildren","tree","visitor","stack","one","pop","all","legacy","invalid","hexadecimal","alphanumerical","decodeEntity","option","entityCharacters","namedEntity","terminated","characters","following","output","entity","begin","next","diff","additional","handleText","handleReference","warningContext","noop","hexa","attribute","bases","disallowed","flush","Function","x","getPrototypeOf","bail","vfile","trough","plain","attachers","transformers","namespace","frozen","freezeIndex","processor","assertUnfrozen","freeze","addPlugin","addList","addPreset","entry","find","assertParser","newable","stringify","Compiler","assertCompiler","assertNode","compile","run","complete","assertDone","processSync","destination","values","transformer","Infinity","cb","Promise","executor","reject","pipeline","asyncName","visitParents","CONTINUE","SKIP","EXIT","reverse","parents","_interopRequireDefault","_react","_default","d","bracketed","intro","referenceType","hard","soft","force","contentQueue","openingCount","found","tickQueue","selfClosingRe","simpleTagRe","open","currentParent","selfClosing","getSelfClosing","getSimpleTag","matching","matchingTag","findAndPull","fromNode","toNode","toIndex","virtual","interruptor","config","ignore","bools","collapseWhiteSpace","strikethrough","previous","preceding","inlineHTML","EXPRESSION_HTML_LINK_OPEN","EXPRESSION_HTML_LINK_CLOSE","is","subresult","toResult","step","char","document","innerHTML","textContent","blankQueue","subvalueQueue","CODE_INDENT","SETEXT_MARKERS","hardBreak","Wrap","responsiveTopNudge","Title","h1","MainTitle","color","fontSize","markerCount","indents","sequence","sequences","untangle","mode","args","forEach","disallow","VMessagePrototype","VMessage","origin","range","parseOrigin","ruleId","fatal","isEnclosedURLCharacter","isUnclosedURLCharacter","unherit","Local","filePath","info","warn","stops","floor","maximum","padding","minIndent","matrix","shift","visitWithParents","listNode","fns","middleware","input"],"mappings":"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","file":"158eaa1ea2f2f449246fa1b1043ff2807e1f8bca-7e321df2c8f617d1944f.js","sourcesContent":["'use strict';\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n var asterisk = value.indexOf('**', fromIndex);\n var underscore = value.indexOf('__', fromIndex);\n\n if (underscore === -1) {\n return asterisk;\n }\n\n if (asterisk === -1) {\n return underscore;\n }\n\n return underscore < asterisk ? underscore : asterisk;\n}","'use strict';\n\nvar attributeName = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\nvar unquoted = \"[^\\\"'=<>`\\\\u0000-\\\\u0020]+\";\nvar singleQuoted = '\\'[^\\']*\\'';\nvar doubleQuoted = '\"[^\"]*\"';\nvar attributeValue = '(?:' + unquoted + '|' + singleQuoted + '|' + doubleQuoted + ')';\nvar attribute = '(?:\\\\s+' + attributeName + '(?:\\\\s*=\\\\s*' + attributeValue + ')?)';\nvar openTag = '<[A-Za-z][A-Za-z0-9\\\\-]*' + attribute + '*\\\\s*\\\\/?>';\nvar closeTag = '<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>';\nvar comment = '|';\nvar processing = '<[?].*?[?]>';\nvar declaration = ']*>';\nvar cdata = '';\nexports.openCloseTag = new RegExp('^(?:' + openTag + '|' + closeTag + ')');\nexports.tag = new RegExp('^(?:' + openTag + '|' + closeTag + '|' + comment + '|' + processing + '|' + declaration + '|' + cdata + ')');","'use strict';\n\nvar xtend = require('xtend');\n\nvar entities = require('parse-entities');\n\nmodule.exports = factory;\n/* Factory to create an entity decoder. */\n\nfunction factory(ctx) {\n decoder.raw = decodeRaw;\n return decoder;\n /* Normalize `position` to add an `indent`. */\n\n function normalize(position) {\n var offsets = ctx.offset;\n var line = position.line;\n var result = [];\n\n while (++line) {\n if (!(line in offsets)) {\n break;\n }\n\n result.push((offsets[line] || 0) + 1);\n }\n\n return {\n start: position,\n indent: result\n };\n }\n /* Handle a warning.\n * See https://github.com/wooorm/parse-entities\n * for the warnings. */\n\n\n function handleWarning(reason, position, code) {\n if (code === 3) {\n return;\n }\n\n ctx.file.message(reason, position);\n }\n /* Decode `value` (at `position`) into text-nodes. */\n\n\n function decoder(value, position, handler) {\n entities(value, {\n position: normalize(position),\n warning: handleWarning,\n text: handler,\n reference: handler,\n textContext: ctx,\n referenceContext: ctx\n });\n }\n /* Decode `value` (at `position`) into a string. */\n\n\n function decodeRaw(value, position, options) {\n return entities(value, xtend(options, {\n position: normalize(position),\n warning: handleWarning\n }));\n }\n}","'use strict';\n\nmodule.exports = alphabetical; // Check if the given character code, or the character code at the first\n// character, is alphabetical.\n\nfunction alphabetical(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}","'use strict';\n\nmodule.exports = factory;\nvar MERGEABLE_NODES = {\n text: mergeText,\n blockquote: mergeBlockquote\n};\n/* Check whether a node is mergeable with adjacent nodes. */\n\nfunction mergeable(node) {\n var start;\n var end;\n\n if (node.type !== 'text' || !node.position) {\n return true;\n }\n\n start = node.position.start;\n end = node.position.end;\n /* Only merge nodes which occupy the same size as their\n * `value`. */\n\n return start.line !== end.line || end.column - start.column === node.value.length;\n}\n/* Merge two text nodes: `node` into `prev`. */\n\n\nfunction mergeText(prev, node) {\n prev.value += node.value;\n return prev;\n}\n/* Merge two blockquotes: `node` into `prev`, unless in\n * CommonMark mode. */\n\n\nfunction mergeBlockquote(prev, node) {\n if (this.options.commonmark) {\n return node;\n }\n\n prev.children = prev.children.concat(node.children);\n return prev;\n}\n/* Construct a tokenizer. This creates both\n * `tokenizeInline` and `tokenizeBlock`. */\n\n\nfunction factory(type) {\n return tokenize;\n /* Tokenizer for a bound `type`. */\n\n function tokenize(value, location) {\n var self = this;\n var offset = self.offset;\n var tokens = [];\n var methods = self[type + 'Methods'];\n var tokenizers = self[type + 'Tokenizers'];\n var line = location.line;\n var column = location.column;\n var index;\n var length;\n var method;\n var name;\n var matched;\n var valueLength;\n /* Trim white space only lines. */\n\n if (!value) {\n return tokens;\n }\n /* Expose on `eat`. */\n\n\n eat.now = now;\n eat.file = self.file;\n /* Sync initial offset. */\n\n updatePosition('');\n /* Iterate over `value`, and iterate over all\n * tokenizers. When one eats something, re-iterate\n * with the remaining value. If no tokenizer eats,\n * something failed (should not happen) and an\n * exception is thrown. */\n\n while (value) {\n index = -1;\n length = methods.length;\n matched = false;\n\n while (++index < length) {\n name = methods[index];\n method = tokenizers[name];\n\n if (method && (\n /* istanbul ignore next */\n !method.onlyAtStart || self.atStart) && (!method.notInList || !self.inList) && (!method.notInBlock || !self.inBlock) && (!method.notInLink || !self.inLink)) {\n valueLength = value.length;\n method.apply(self, [eat, value]);\n matched = valueLength !== value.length;\n\n if (matched) {\n break;\n }\n }\n }\n /* istanbul ignore if */\n\n\n if (!matched) {\n self.file.fail(new Error('Infinite loop'), eat.now());\n }\n }\n\n self.eof = now();\n return tokens;\n /* Update line, column, and offset based on\n * `value`. */\n\n function updatePosition(subvalue) {\n var lastIndex = -1;\n var index = subvalue.indexOf('\\n');\n\n while (index !== -1) {\n line++;\n lastIndex = index;\n index = subvalue.indexOf('\\n', index + 1);\n }\n\n if (lastIndex === -1) {\n column += subvalue.length;\n } else {\n column = subvalue.length - lastIndex;\n }\n\n if (line in offset) {\n if (lastIndex !== -1) {\n column += offset[line];\n } else if (column <= offset[line]) {\n column = offset[line] + 1;\n }\n }\n }\n /* Get offset. Called before the first character is\n * eaten to retrieve the range's offsets. */\n\n\n function getOffset() {\n var indentation = [];\n var pos = line + 1;\n /* Done. Called when the last character is\n * eaten to retrieve the range’s offsets. */\n\n return function () {\n var last = line + 1;\n\n while (pos < last) {\n indentation.push((offset[pos] || 0) + 1);\n pos++;\n }\n\n return indentation;\n };\n }\n /* Get the current position. */\n\n\n function now() {\n var pos = {\n line: line,\n column: column\n };\n pos.offset = self.toOffset(pos);\n return pos;\n }\n /* Store position information for a node. */\n\n\n function Position(start) {\n this.start = start;\n this.end = now();\n }\n /* Throw when a value is incorrectly eaten.\n * This shouldn’t happen but will throw on new,\n * incorrect rules. */\n\n\n function validateEat(subvalue) {\n /* istanbul ignore if */\n if (value.substring(0, subvalue.length) !== subvalue) {\n /* Capture stack-trace. */\n self.file.fail(new Error('Incorrectly eaten value: please report this ' + 'warning on http://git.io/vg5Ft'), now());\n }\n }\n /* Mark position and patch `node.position`. */\n\n\n function position() {\n var before = now();\n return update;\n /* Add the position to a node. */\n\n function update(node, indent) {\n var prev = node.position;\n var start = prev ? prev.start : before;\n var combined = [];\n var n = prev && prev.end.line;\n var l = before.line;\n node.position = new Position(start);\n /* If there was already a `position`, this\n * node was merged. Fixing `start` wasn’t\n * hard, but the indent is different.\n * Especially because some information, the\n * indent between `n` and `l` wasn’t\n * tracked. Luckily, that space is\n * (should be?) empty, so we can safely\n * check for it now. */\n\n if (prev && indent && prev.indent) {\n combined = prev.indent;\n\n if (n < l) {\n while (++n < l) {\n combined.push((offset[n] || 0) + 1);\n }\n\n combined.push(before.column);\n }\n\n indent = combined.concat(indent);\n }\n\n node.position.indent = indent || [];\n return node;\n }\n }\n /* Add `node` to `parent`s children or to `tokens`.\n * Performs merges where possible. */\n\n\n function add(node, parent) {\n var children = parent ? parent.children : tokens;\n var prev = children[children.length - 1];\n\n if (prev && node.type === prev.type && node.type in MERGEABLE_NODES && mergeable(prev) && mergeable(node)) {\n node = MERGEABLE_NODES[node.type].call(self, prev, node);\n }\n\n if (node !== prev) {\n children.push(node);\n }\n\n if (self.atStart && tokens.length !== 0) {\n self.exitStart();\n }\n\n return node;\n }\n /* Remove `subvalue` from `value`.\n * `subvalue` must be at the start of `value`. */\n\n\n function eat(subvalue) {\n var indent = getOffset();\n var pos = position();\n var current = now();\n validateEat(subvalue);\n apply.reset = reset;\n reset.test = test;\n apply.test = test;\n value = value.substring(subvalue.length);\n updatePosition(subvalue);\n indent = indent();\n return apply;\n /* Add the given arguments, add `position` to\n * the returned node, and return the node. */\n\n function apply(node, parent) {\n return pos(add(pos(node), parent), indent);\n }\n /* Functions just like apply, but resets the\n * content: the line and column are reversed,\n * and the eaten value is re-added.\n * This is useful for nodes with a single\n * type of content, such as lists and tables.\n * See `apply` above for what parameters are\n * expected. */\n\n\n function reset() {\n var node = apply.apply(null, arguments);\n line = current.line;\n column = current.column;\n value = subvalue + value;\n return node;\n }\n /* Test the position, after eating, and reverse\n * to a not-eaten state. */\n\n\n function test() {\n var result = pos({});\n line = current.line;\n column = current.column;\n value = subvalue + value;\n return result.position;\n }\n }\n }\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nmodule.exports = table;\nvar C_BACKSLASH = '\\\\';\nvar C_TICK = '`';\nvar C_DASH = '-';\nvar C_PIPE = '|';\nvar C_COLON = ':';\nvar C_SPACE = ' ';\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar MIN_TABLE_COLUMNS = 1;\nvar MIN_TABLE_ROWS = 2;\nvar TABLE_ALIGN_LEFT = 'left';\nvar TABLE_ALIGN_CENTER = 'center';\nvar TABLE_ALIGN_RIGHT = 'right';\nvar TABLE_ALIGN_NONE = null;\n\nfunction table(eat, value, silent) {\n var self = this;\n var index;\n var alignments;\n var alignment;\n var subvalue;\n var row;\n var length;\n var lines;\n var queue;\n var character;\n var hasDash;\n var align;\n var cell;\n var preamble;\n var count;\n var opening;\n var now;\n var position;\n var lineCount;\n var line;\n var rows;\n var table;\n var lineIndex;\n var pipeIndex;\n var first;\n /* Exit when not in gfm-mode. */\n\n if (!self.options.gfm) {\n return;\n }\n /* Get the rows.\n * Detecting tables soon is hard, so there are some\n * checks for performance here, such as the minimum\n * number of rows, and allowed characters in the\n * alignment row. */\n\n\n index = 0;\n lineCount = 0;\n length = value.length + 1;\n lines = [];\n\n while (index < length) {\n lineIndex = value.indexOf(C_NEWLINE, index);\n pipeIndex = value.indexOf(C_PIPE, index + 1);\n\n if (lineIndex === -1) {\n lineIndex = value.length;\n }\n\n if (pipeIndex === -1 || pipeIndex > lineIndex) {\n if (lineCount < MIN_TABLE_ROWS) {\n return;\n }\n\n break;\n }\n\n lines.push(value.slice(index, lineIndex));\n lineCount++;\n index = lineIndex + 1;\n }\n /* Parse the alignment row. */\n\n\n subvalue = lines.join(C_NEWLINE);\n alignments = lines.splice(1, 1)[0] || [];\n index = 0;\n length = alignments.length;\n lineCount--;\n alignment = false;\n align = [];\n\n while (index < length) {\n character = alignments.charAt(index);\n\n if (character === C_PIPE) {\n hasDash = null;\n\n if (alignment === false) {\n if (first === false) {\n return;\n }\n } else {\n align.push(alignment);\n alignment = false;\n }\n\n first = false;\n } else if (character === C_DASH) {\n hasDash = true;\n alignment = alignment || TABLE_ALIGN_NONE;\n } else if (character === C_COLON) {\n if (alignment === TABLE_ALIGN_LEFT) {\n alignment = TABLE_ALIGN_CENTER;\n } else if (hasDash && alignment === TABLE_ALIGN_NONE) {\n alignment = TABLE_ALIGN_RIGHT;\n } else {\n alignment = TABLE_ALIGN_LEFT;\n }\n } else if (!whitespace(character)) {\n return;\n }\n\n index++;\n }\n\n if (alignment !== false) {\n align.push(alignment);\n }\n /* Exit when without enough columns. */\n\n\n if (align.length < MIN_TABLE_COLUMNS) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n /* Parse the rows. */\n\n\n position = -1;\n rows = [];\n table = eat(subvalue).reset({\n type: 'table',\n align: align,\n children: rows\n });\n\n while (++position < lineCount) {\n line = lines[position];\n row = {\n type: 'tableRow',\n children: []\n };\n /* Eat a newline character when this is not the\n * first row. */\n\n if (position) {\n eat(C_NEWLINE);\n }\n /* Eat the row. */\n\n\n eat(line).reset(row, table);\n length = line.length + 1;\n index = 0;\n queue = '';\n cell = '';\n preamble = true;\n count = null;\n opening = null;\n\n while (index < length) {\n character = line.charAt(index);\n\n if (character === C_TAB || character === C_SPACE) {\n if (cell) {\n queue += character;\n } else {\n eat(character);\n }\n\n index++;\n continue;\n }\n\n if (character === '' || character === C_PIPE) {\n if (preamble) {\n eat(character);\n } else {\n if (character && opening) {\n queue += character;\n index++;\n continue;\n }\n\n if ((cell || character) && !preamble) {\n subvalue = cell;\n\n if (queue.length > 1) {\n if (character) {\n subvalue += queue.slice(0, queue.length - 1);\n queue = queue.charAt(queue.length - 1);\n } else {\n subvalue += queue;\n queue = '';\n }\n }\n\n now = eat.now();\n eat(subvalue)({\n type: 'tableCell',\n children: self.tokenizeInline(cell, now)\n }, row);\n }\n\n eat(queue + character);\n queue = '';\n cell = '';\n }\n } else {\n if (queue) {\n cell += queue;\n queue = '';\n }\n\n cell += character;\n\n if (character === C_BACKSLASH && index !== length - 2) {\n cell += line.charAt(index + 1);\n index++;\n }\n\n if (character === C_TICK) {\n count = 1;\n\n while (line.charAt(index + 1) === character) {\n cell += character;\n index++;\n count++;\n }\n\n if (!opening) {\n opening = count;\n } else if (count >= opening) {\n opening = 0;\n }\n }\n }\n\n preamble = false;\n index++;\n }\n /* Eat the alignment row. */\n\n\n if (!position) {\n eat(C_NEWLINE + alignments);\n }\n }\n\n return table;\n}","'use strict';\n\nmodule.exports = {\n position: true,\n gfm: true,\n commonmark: false,\n footnotes: false,\n pedantic: false,\n blocks: require('./block-elements.json')\n};","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n} // path.resolve([from ...], to)\n// posix version\n\n\nexports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}; // path.normalize(path)\n// posix version\n\n\nexports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n}; // posix version\n\n\nexports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n}; // posix version\n\n\nexports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n}; // path.relative(from, to)\n// posix version\n\n\nexports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n} // Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\n\n\nexports.basename = function (path, ext) {\n var f = basename(path);\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n\n return path.slice(startDot, end);\n};\n\nfunction filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n} // String.prototype.substr - negative index don't work in IE8\n\n\nvar substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n} : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n};","'use strict';\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('`', fromIndex);\n}","'use strict';\n\nmodule.exports = trimTrailingLines; // Remove final newline characters from `value`.\n\nfunction trimTrailingLines(value) {\n return String(value).replace(/\\n+$/, '');\n}","/* eslint-disable react/prop-types, react/no-multi-comp */\n'use strict';\n\nvar xtend = require('xtend');\n\nvar React = require('react');\n\nvar supportsStringRender = parseInt((React.version || '16').slice(0, 2), 10) >= 16;\nvar createElement = React.createElement;\nmodule.exports = {\n break: 'br',\n paragraph: 'p',\n emphasis: 'em',\n strong: 'strong',\n thematicBreak: 'hr',\n blockquote: 'blockquote',\n delete: 'del',\n link: 'a',\n image: 'img',\n linkReference: 'a',\n imageReference: 'img',\n table: SimpleRenderer.bind(null, 'table'),\n tableHead: SimpleRenderer.bind(null, 'thead'),\n tableBody: SimpleRenderer.bind(null, 'tbody'),\n tableRow: SimpleRenderer.bind(null, 'tr'),\n tableCell: TableCell,\n root: Root,\n text: TextRenderer,\n list: List,\n listItem: ListItem,\n definition: NullRenderer,\n heading: Heading,\n inlineCode: InlineCode,\n code: CodeBlock,\n html: Html,\n virtualHtml: VirtualHtml,\n parsedHtml: ParsedHtml\n};\n\nfunction TextRenderer(props) {\n return supportsStringRender ? props.children : createElement('span', null, props.children);\n}\n\nfunction Root(props) {\n var useFragment = !props.className;\n var root = useFragment ? React.Fragment || 'div' : 'div';\n return createElement(root, useFragment ? null : props, props.children);\n}\n\nfunction SimpleRenderer(tag, props) {\n return createElement(tag, getCoreProps(props), props.children);\n}\n\nfunction TableCell(props) {\n var style = props.align ? {\n textAlign: props.align\n } : undefined;\n var coreProps = getCoreProps(props);\n return createElement(props.isHeader ? 'th' : 'td', style ? xtend({\n style: style\n }, coreProps) : coreProps, props.children);\n}\n\nfunction Heading(props) {\n return createElement(\"h\".concat(props.level), getCoreProps(props), props.children);\n}\n\nfunction List(props) {\n var attrs = getCoreProps(props);\n\n if (props.start !== null && props.start !== 1 && props.start !== undefined) {\n attrs.start = props.start.toString();\n }\n\n return createElement(props.ordered ? 'ol' : 'ul', attrs, props.children);\n}\n\nfunction ListItem(props) {\n var checkbox = null;\n\n if (props.checked !== null && props.checked !== undefined) {\n var checked = props.checked;\n checkbox = createElement('input', {\n type: 'checkbox',\n checked: checked,\n readOnly: true\n });\n }\n\n return createElement('li', getCoreProps(props), checkbox, props.children);\n}\n\nfunction CodeBlock(props) {\n var className = props.language && \"language-\".concat(props.language);\n var code = createElement('code', className ? {\n className: className\n } : null, props.value);\n return createElement('pre', getCoreProps(props), code);\n}\n\nfunction InlineCode(props) {\n return createElement('code', getCoreProps(props), props.children);\n}\n\nfunction Html(props) {\n if (props.skipHtml) {\n return null;\n }\n\n var tag = props.isBlock ? 'div' : 'span';\n\n if (props.escapeHtml) {\n var comp = React.Fragment || tag;\n return createElement(comp, null, props.value);\n }\n\n var nodeProps = {\n dangerouslySetInnerHTML: {\n __html: props.value\n }\n };\n return createElement(tag, nodeProps);\n}\n\nfunction ParsedHtml(props) {\n return props['data-sourcepos'] ? React.cloneElement(props.element, {\n 'data-sourcepos': props['data-sourcepos']\n }) : props.element;\n}\n\nfunction VirtualHtml(props) {\n return createElement(props.tag, getCoreProps(props), props.children);\n}\n\nfunction NullRenderer() {\n return null;\n}\n\nfunction getCoreProps(props) {\n return props['data-sourcepos'] ? {\n 'data-sourcepos': props['data-sourcepos']\n } : {};\n}","'use strict';\n\nvar path = require('path');\n\nfunction replaceExt(npath, ext) {\n if (typeof npath !== 'string') {\n return npath;\n }\n\n if (npath.length === 0) {\n return npath;\n }\n\n var nFileName = path.basename(npath, path.extname(npath)) + ext;\n return path.join(path.dirname(npath), nFileName);\n}\n\nmodule.exports = replaceExt;","'use strict';\n\nmodule.exports = factory; // Construct a state `toggler`: a function which inverses `property` in context\n// based on its current value.\n// The by `toggler` returned function restores that value.\n\nfunction factory(key, state, ctx) {\n return enter;\n\n function enter() {\n var context = ctx || this;\n var current = context[key];\n context[key] = !state;\n return exit;\n\n function exit() {\n context[key] = current;\n }\n }\n}","'use strict';\n\nmodule.exports = text;\n\nfunction text(eat, value, silent) {\n var self = this;\n var methods;\n var tokenizers;\n var index;\n var length;\n var subvalue;\n var position;\n var tokenizer;\n var name;\n var min;\n var now;\n /* istanbul ignore if - never used (yet) */\n\n if (silent) {\n return true;\n }\n\n methods = self.inlineMethods;\n length = methods.length;\n tokenizers = self.inlineTokenizers;\n index = -1;\n min = value.length;\n\n while (++index < length) {\n name = methods[index];\n\n if (name === 'text' || !tokenizers[name]) {\n continue;\n }\n\n tokenizer = tokenizers[name].locator;\n\n if (!tokenizer) {\n eat.file.fail('Missing locator: `' + name + '`');\n }\n\n position = tokenizer.call(self, value, 1);\n\n if (position !== -1 && position < min) {\n min = position;\n }\n }\n\n subvalue = value.slice(0, min);\n now = eat.now();\n self.decode(subvalue, now, function (content, position, source) {\n eat(source || content)({\n type: 'text',\n value: content\n });\n });\n}","'use strict';\n\nvar xtend = require('xtend');\n\nvar inherits = require('inherits');\n\nmodule.exports = unherit; // Create a custom constructor which can be modified without affecting the\n// original class.\n\nfunction unherit(Super) {\n var result;\n var key;\n var value;\n inherits(Of, Super);\n inherits(From, Of); // Clone values.\n\n result = Of.prototype;\n\n for (key in result) {\n value = result[key];\n\n if (value && typeof value === 'object') {\n result[key] = 'concat' in value ? value.concat() : xtend(value);\n }\n }\n\n return Of; // Constructor accepting a single argument, which itself is an `arguments`\n // object.\n\n function From(parameters) {\n return Super.apply(this, parameters);\n } // Constructor accepting variadic arguments.\n\n\n function Of() {\n if (!(this instanceof Of)) {\n return new From(arguments);\n }\n\n return Super.apply(this, arguments);\n }\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar normalize = require('../util/normalize');\n\nmodule.exports = footnoteDefinition;\nfootnoteDefinition.notInList = true;\nfootnoteDefinition.notInBlock = true;\nvar C_BACKSLASH = '\\\\';\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_BRACKET_OPEN = '[';\nvar C_BRACKET_CLOSE = ']';\nvar C_CARET = '^';\nvar C_COLON = ':';\nvar EXPRESSION_INITIAL_TAB = /^( {4}|\\t)?/gm;\n\nfunction footnoteDefinition(eat, value, silent) {\n var self = this;\n var offsets = self.offset;\n var index;\n var length;\n var subvalue;\n var now;\n var currentLine;\n var content;\n var queue;\n var subqueue;\n var character;\n var identifier;\n var add;\n var exit;\n\n if (!self.options.footnotes) {\n return;\n }\n\n index = 0;\n length = value.length;\n subvalue = '';\n now = eat.now();\n currentLine = now.line;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n if (value.charAt(index) !== C_BRACKET_OPEN || value.charAt(index + 1) !== C_CARET) {\n return;\n }\n\n subvalue += C_BRACKET_OPEN + C_CARET;\n index = subvalue.length;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_BRACKET_CLOSE) {\n break;\n } else if (character === C_BACKSLASH) {\n queue += character;\n index++;\n character = value.charAt(index);\n }\n\n queue += character;\n index++;\n }\n\n if (!queue || value.charAt(index) !== C_BRACKET_CLOSE || value.charAt(index + 1) !== C_COLON) {\n return;\n }\n\n if (silent) {\n return true;\n }\n\n identifier = normalize(queue);\n subvalue += queue + C_BRACKET_CLOSE + C_COLON;\n index = subvalue.length;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n now.column += subvalue.length;\n now.offset += subvalue.length;\n queue = '';\n content = '';\n subqueue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_NEWLINE) {\n subqueue = character;\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_NEWLINE) {\n break;\n }\n\n subqueue += character;\n index++;\n }\n\n queue += subqueue;\n subqueue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE) {\n break;\n }\n\n subqueue += character;\n index++;\n }\n\n if (subqueue.length === 0) {\n break;\n }\n\n queue += subqueue;\n }\n\n if (queue) {\n content += queue;\n queue = '';\n }\n\n content += character;\n index++;\n }\n\n subvalue += content;\n content = content.replace(EXPRESSION_INITIAL_TAB, function (line) {\n offsets[currentLine] = (offsets[currentLine] || 0) + line.length;\n currentLine++;\n return '';\n });\n add = eat(subvalue);\n exit = self.enterBlock();\n content = self.tokenizeBlock(content, now);\n exit();\n return add({\n type: 'footnoteDefinition',\n identifier: identifier,\n children: content\n });\n}","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n if (typeof Array.isArray === 'function') {\n return Array.isArray(arr);\n }\n\n return toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n if (!obj || toStr.call(obj) !== '[object Object]') {\n return false;\n }\n\n var hasOwnConstructor = hasOwn.call(obj, 'constructor');\n var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'); // Not own constructor property must be Object\n\n if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n return false;\n } // Own properties are enumerated firstly, so to speed up,\n // if last one is own, then all properties are own.\n\n\n var key;\n\n for (key in obj) {\n /**/\n }\n\n return typeof key === 'undefined' || hasOwn.call(obj, key);\n}; // If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\n\n\nvar setProperty = function setProperty(target, options) {\n if (defineProperty && options.name === '__proto__') {\n defineProperty(target, options.name, {\n enumerable: true,\n configurable: true,\n value: options.newValue,\n writable: true\n });\n } else {\n target[options.name] = options.newValue;\n }\n}; // Return undefined instead of __proto__ if '__proto__' is not an own property\n\n\nvar getProperty = function getProperty(obj, name) {\n if (name === '__proto__') {\n if (!hasOwn.call(obj, name)) {\n return void 0;\n } else if (gOPD) {\n // In early versions of node, obj['__proto__'] is buggy when obj has\n // __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n return gOPD(obj, name).value;\n }\n }\n\n return obj[name];\n};\n\nmodule.exports = function extend() {\n var options, name, src, copy, copyIsArray, clone;\n var target = arguments[0];\n var i = 1;\n var length = arguments.length;\n var deep = false; // Handle a deep copy situation\n\n if (typeof target === 'boolean') {\n deep = target;\n target = arguments[1] || {}; // skip the boolean and the target\n\n i = 2;\n }\n\n if (target == null || typeof target !== 'object' && typeof target !== 'function') {\n target = {};\n }\n\n for (; i < length; ++i) {\n options = arguments[i]; // Only deal with non-null/undefined values\n\n if (options != null) {\n // Extend the base object\n for (name in options) {\n src = getProperty(target, name);\n copy = getProperty(options, name); // Prevent never-ending loop\n\n if (target !== copy) {\n // Recurse if we're merging plain objects or arrays\n if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && isArray(src) ? src : [];\n } else {\n clone = src && isPlainObject(src) ? src : {};\n } // Never move original objects, clone them\n\n\n setProperty(target, {\n name: name,\n newValue: extend(deep, clone, copy)\n }); // Don't bring in undefined values\n } else if (typeof copy !== 'undefined') {\n setProperty(target, {\n name: name,\n newValue: copy\n });\n }\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n};","'use strict';\n\nvar xtend = require('xtend');\n\nvar removePosition = require('unist-util-remove-position');\n\nmodule.exports = parse;\nvar C_NEWLINE = '\\n';\nvar EXPRESSION_LINE_BREAKS = /\\r\\n|\\r/g;\n/* Parse the bound file. */\n\nfunction parse() {\n var self = this;\n var value = String(self.file);\n var start = {\n line: 1,\n column: 1,\n offset: 0\n };\n var content = xtend(start);\n var node;\n /* Clean non-unix newlines: `\\r\\n` and `\\r` are all\n * changed to `\\n`. This should not affect positional\n * information. */\n\n value = value.replace(EXPRESSION_LINE_BREAKS, C_NEWLINE);\n\n if (value.charCodeAt(0) === 0xFEFF) {\n value = value.slice(1);\n content.column++;\n content.offset++;\n }\n\n node = {\n type: 'root',\n children: self.tokenizeBlock(value, content),\n position: {\n start: start,\n end: self.eof || xtend(start)\n }\n };\n\n if (!self.options.position) {\n removePosition(node, true);\n }\n\n return node;\n}","'use strict';\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n var index = value.indexOf('\\n', fromIndex);\n\n while (index > fromIndex) {\n if (value.charAt(index - 1) !== ' ') {\n break;\n }\n\n index--;\n }\n\n return index;\n}","'use strict';\n\nmodule.exports = factory;\n\nfunction factory(file) {\n var contents = indices(String(file));\n return {\n toPosition: offsetToPositionFactory(contents),\n toOffset: positionToOffsetFactory(contents)\n };\n} // Factory to get the line and column-based `position` for `offset` in the bound\n// indices.\n\n\nfunction offsetToPositionFactory(indices) {\n return offsetToPosition; // Get the line and column-based `position` for `offset` in the bound indices.\n\n function offsetToPosition(offset) {\n var index = -1;\n var length = indices.length;\n\n if (offset < 0) {\n return {};\n }\n\n while (++index < length) {\n if (indices[index] > offset) {\n return {\n line: index + 1,\n column: offset - (indices[index - 1] || 0) + 1,\n offset: offset\n };\n }\n }\n\n return {};\n }\n} // Factory to get the `offset` for a line and column-based `position` in the\n// bound indices.\n\n\nfunction positionToOffsetFactory(indices) {\n return positionToOffset; // Get the `offset` for a line and column-based `position` in the bound\n // indices.\n\n function positionToOffset(position) {\n var line = position && position.line;\n var column = position && position.column;\n\n if (!isNaN(line) && !isNaN(column) && line - 1 in indices) {\n return (indices[line - 2] || 0) + column - 1 || 0;\n }\n\n return -1;\n }\n} // Get indices of line-breaks in `value`.\n\n\nfunction indices(value) {\n var result = [];\n var index = value.indexOf('\\n');\n\n while (index !== -1) {\n result.push(index + 1);\n index = value.indexOf('\\n', index + 1);\n }\n\n result.push(value.length + 1);\n return result;\n}","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function (node) {\n visit(node, 'table', wrap);\n return node;\n};\n\nfunction wrap(table) {\n var children = table.children;\n table.children = [{\n type: 'tableHead',\n align: table.align,\n children: [children[0]],\n position: children[0].position\n }];\n\n if (children.length > 1) {\n table.children.push({\n type: 'tableBody',\n align: table.align,\n children: children.slice(1),\n position: {\n start: children[1].position.start,\n end: children[children.length - 1].position.end\n }\n });\n }\n}","'use strict';\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n var link = value.indexOf('[', fromIndex);\n var image = value.indexOf('![', fromIndex);\n\n if (image === -1) {\n return link;\n }\n /* Link can never be `-1` if an image is found, so we don’t need\n * to check for that :) */\n\n\n return link < image ? link : image;\n}","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer);\n};\n\nfunction isBuffer(obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n} // For Node v0.10 support. Remove this eventually.\n\n\nfunction isSlowBuffer(obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0));\n}","'use strict';\n\nvar trim = require('trim');\n\nvar word = require('is-word-character');\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/emphasis');\n\nmodule.exports = emphasis;\nemphasis.locator = locate;\nvar C_ASTERISK = '*';\nvar C_UNDERSCORE = '_';\n\nfunction emphasis(eat, value, silent) {\n var self = this;\n var index = 0;\n var character = value.charAt(index);\n var now;\n var pedantic;\n var marker;\n var queue;\n var subvalue;\n var length;\n var prev;\n\n if (character !== C_ASTERISK && character !== C_UNDERSCORE) {\n return;\n }\n\n pedantic = self.options.pedantic;\n subvalue = character;\n marker = character;\n length = value.length;\n index++;\n queue = '';\n character = '';\n\n if (pedantic && whitespace(value.charAt(index))) {\n return;\n }\n\n while (index < length) {\n prev = character;\n character = value.charAt(index);\n\n if (character === marker && (!pedantic || !whitespace(prev))) {\n character = value.charAt(++index);\n\n if (character !== marker) {\n if (!trim(queue) || prev === marker) {\n return;\n }\n\n if (!pedantic && marker === C_UNDERSCORE && word(character)) {\n queue += marker;\n continue;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n now = eat.now();\n now.column++;\n now.offset++;\n return eat(subvalue + queue + marker)({\n type: 'emphasis',\n children: self.tokenizeInline(queue, now)\n });\n }\n\n queue += marker;\n }\n\n if (!pedantic && character === '\\\\') {\n queue += character;\n character = value.charAt(++index);\n }\n\n queue += character;\n index++;\n }\n}","'use strict';\n\nvar decode = require('parse-entities');\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/url');\n\nmodule.exports = url;\nurl.locator = locate;\nurl.notInLink = true;\nvar C_BRACKET_OPEN = '[';\nvar C_BRACKET_CLOSE = ']';\nvar C_PAREN_OPEN = '(';\nvar C_PAREN_CLOSE = ')';\nvar C_LT = '<';\nvar C_AT_SIGN = '@';\nvar HTTP_PROTOCOL = 'http://';\nvar HTTPS_PROTOCOL = 'https://';\nvar MAILTO_PROTOCOL = 'mailto:';\nvar PROTOCOLS = [HTTP_PROTOCOL, HTTPS_PROTOCOL, MAILTO_PROTOCOL];\nvar PROTOCOLS_LENGTH = PROTOCOLS.length;\n\nfunction url(eat, value, silent) {\n var self = this;\n var subvalue;\n var content;\n var character;\n var index;\n var position;\n var protocol;\n var match;\n var length;\n var queue;\n var parenCount;\n var nextCharacter;\n var exit;\n\n if (!self.options.gfm) {\n return;\n }\n\n subvalue = '';\n index = -1;\n length = PROTOCOLS_LENGTH;\n\n while (++index < length) {\n protocol = PROTOCOLS[index];\n match = value.slice(0, protocol.length);\n\n if (match.toLowerCase() === protocol) {\n subvalue = match;\n break;\n }\n }\n\n if (!subvalue) {\n return;\n }\n\n index = subvalue.length;\n length = value.length;\n queue = '';\n parenCount = 0;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (whitespace(character) || character === C_LT) {\n break;\n }\n\n if (character === '.' || character === ',' || character === ':' || character === ';' || character === '\"' || character === '\\'' || character === ')' || character === ']') {\n nextCharacter = value.charAt(index + 1);\n\n if (!nextCharacter || whitespace(nextCharacter)) {\n break;\n }\n }\n\n if (character === C_PAREN_OPEN || character === C_BRACKET_OPEN) {\n parenCount++;\n }\n\n if (character === C_PAREN_CLOSE || character === C_BRACKET_CLOSE) {\n parenCount--;\n\n if (parenCount < 0) {\n break;\n }\n }\n\n queue += character;\n index++;\n }\n\n if (!queue) {\n return;\n }\n\n subvalue += queue;\n content = subvalue;\n\n if (protocol === MAILTO_PROTOCOL) {\n position = queue.indexOf(C_AT_SIGN);\n\n if (position === -1 || position === length - 1) {\n return;\n }\n\n content = content.substr(MAILTO_PROTOCOL.length);\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n exit = self.enterLink();\n content = self.tokenizeInline(content, eat.now());\n exit();\n return eat(subvalue)({\n type: 'link',\n title: null,\n url: decode(subvalue, {\n nonTerminated: false\n }),\n children: content\n });\n}","'use strict';\n\nmodule.exports = locate;\nvar PROTOCOLS = ['https://', 'http://', 'mailto:'];\n\nfunction locate(value, fromIndex) {\n var length = PROTOCOLS.length;\n var index = -1;\n var min = -1;\n var position;\n\n if (!this.options.gfm) {\n return -1;\n }\n\n while (++index < length) {\n position = value.indexOf(PROTOCOLS[index], fromIndex);\n\n if (position !== -1 && (position < min || min === -1)) {\n min = position;\n }\n }\n\n return min;\n}","'use strict';\n\nvar slice = [].slice;\nmodule.exports = wrap; // Wrap `fn`.\n// Can be sync or async; return a promise, receive a completion handler, return\n// new values and errors.\n\nfunction wrap(fn, callback) {\n var invoked;\n return wrapped;\n\n function wrapped() {\n var params = slice.call(arguments, 0);\n var callback = fn.length > params.length;\n var result;\n\n if (callback) {\n params.push(done);\n }\n\n try {\n result = fn.apply(null, params);\n } catch (error) {\n // Well, this is quite the pickle.\n // `fn` received a callback and invoked it (thus continuing the pipeline),\n // but later also threw an error.\n // We’re not about to restart the pipeline again, so the only thing left\n // to do is to throw the thing instead.\n if (callback && invoked) {\n throw error;\n }\n\n return done(error);\n }\n\n if (!callback) {\n if (result && typeof result.then === 'function') {\n result.then(then, done);\n } else if (result instanceof Error) {\n done(result);\n } else {\n then(result);\n }\n }\n } // Invoke `next`, only once.\n\n\n function done() {\n if (!invoked) {\n invoked = true;\n callback.apply(null, arguments);\n }\n } // Invoke `done` with one value.\n // Tracks if an error is passed, too.\n\n\n function then(value) {\n done(null, value);\n }\n}","'use strict';\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('~~', fromIndex);\n}","'use strict';\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('\\\\', fromIndex);\n}","'use strict';\n\nmodule.exports = bail;\n\nfunction bail(err) {\n if (err) {\n throw err;\n }\n}","'use strict';\n\nmodule.exports = factory;\n/* Factory to de-escape a value, based on a list at `key`\n * in `ctx`. */\n\nfunction factory(ctx, key) {\n return unescape;\n /* De-escape a string using the expression at `key`\n * in `ctx`. */\n\n function unescape(value) {\n var prev = 0;\n var index = value.indexOf('\\\\');\n var escape = ctx[key];\n var queue = [];\n var character;\n\n while (index !== -1) {\n queue.push(value.slice(prev, index));\n prev = index + 1;\n character = value.charAt(prev);\n /* If the following character is not a valid escape,\n * add the slash. */\n\n if (!character || escape.indexOf(character) === -1) {\n queue.push('\\\\');\n }\n\n index = value.indexOf('\\\\', prev);\n }\n\n queue.push(value.slice(prev));\n return queue.join('');\n }\n}","'use strict';\n\nmodule.exports = convert;\n\nfunction convert(test) {\n if (typeof test === 'string') {\n return typeFactory(test);\n }\n\n if (test === null || test === undefined) {\n return ok;\n }\n\n if (typeof test === 'object') {\n return ('length' in test ? anyFactory : matchesFactory)(test);\n }\n\n if (typeof test === 'function') {\n return test;\n }\n\n throw new Error('Expected function, string, or object as test');\n}\n\nfunction convertAll(tests) {\n var results = [];\n var length = tests.length;\n var index = -1;\n\n while (++index < length) {\n results[index] = convert(tests[index]);\n }\n\n return results;\n} // Utility assert each property in `test` is represented in `node`, and each\n// values are strictly equal.\n\n\nfunction matchesFactory(test) {\n return matches;\n\n function matches(node) {\n var key;\n\n for (key in test) {\n if (node[key] !== test[key]) {\n return false;\n }\n }\n\n return true;\n }\n}\n\nfunction anyFactory(tests) {\n var checks = convertAll(tests);\n var length = checks.length;\n return matches;\n\n function matches() {\n var index = -1;\n\n while (++index < length) {\n if (checks[index].apply(this, arguments)) {\n return true;\n }\n }\n\n return false;\n }\n} // Utility to convert a string into a function which checks a given node’s type\n// for said string.\n\n\nfunction typeFactory(test) {\n return type;\n\n function type(node) {\n return Boolean(node && node.type === test);\n }\n} // Utility to return true.\n\n\nfunction ok() {\n return true;\n}","'use strict';\n\nmodule.exports = convert;\n\nfunction convert(test) {\n if (typeof test === 'string') {\n return typeFactory(test);\n }\n\n if (test === null || test === undefined) {\n return ok;\n }\n\n if (typeof test === 'object') {\n return ('length' in test ? anyFactory : matchesFactory)(test);\n }\n\n if (typeof test === 'function') {\n return test;\n }\n\n throw new Error('Expected function, string, or object as test');\n}\n\nfunction convertAll(tests) {\n var results = [];\n var length = tests.length;\n var index = -1;\n\n while (++index < length) {\n results[index] = convert(tests[index]);\n }\n\n return results;\n} // Utility assert each property in `test` is represented in `node`, and each\n// values are strictly equal.\n\n\nfunction matchesFactory(test) {\n return matches;\n\n function matches(node) {\n var key;\n\n for (key in test) {\n if (node[key] !== test[key]) {\n return false;\n }\n }\n\n return true;\n }\n}\n\nfunction anyFactory(tests) {\n var checks = convertAll(tests);\n var length = checks.length;\n return matches;\n\n function matches() {\n var index = -1;\n\n while (++index < length) {\n if (checks[index].apply(this, arguments)) {\n return true;\n }\n }\n\n return false;\n }\n} // Utility to convert a string into a function which checks a given node’s type\n// for said string.\n\n\nfunction typeFactory(test) {\n return type;\n\n function type(node) {\n return Boolean(node && node.type === test);\n }\n} // Utility to return true.\n\n\nfunction ok() {\n return true;\n}","'use strict';\n\nmodule.exports = whitespace;\nvar fromCode = String.fromCharCode;\nvar re = /\\s/; // Check if the given character code, or the character code at the first\n// character, is a whitespace character.\n\nfunction whitespace(character) {\n return re.test(typeof character === 'number' ? fromCode(character) : character.charAt(0));\n}","var toString = Object.prototype.toString;\nmodule.exports = isString;\n\nfunction isString(obj) {\n return toString.call(obj) === \"[object String]\";\n}","'use strict';\n\nrequire(\"core-js/modules/es.array.reduce.js\");\n\nmodule.exports = function getDefinitions(node) {\n var defs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return (node.children || []).reduce(function (definitions, child) {\n if (child.type === 'definition') {\n definitions[child.identifier] = {\n href: child.url,\n title: child.title\n };\n }\n\n return getDefinitions(child, definitions);\n }, defs);\n};","'use strict';\n\nrequire(\"core-js/modules/es.array.reduce.js\");\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nvar xtend = require('xtend');\n\nvar unified = require('unified');\n\nvar parse = require('remark-parse');\n\nvar PropTypes = require('prop-types');\n\nvar addListMetadata = require('mdast-add-list-metadata');\n\nvar naiveHtml = require('./plugins/naive-html');\n\nvar disallowNode = require('./plugins/disallow-node');\n\nvar astToReact = require('./ast-to-react');\n\nvar wrapTableRows = require('./wrap-table-rows');\n\nvar getDefinitions = require('./get-definitions');\n\nvar uriTransformer = require('./uri-transformer');\n\nvar defaultRenderers = require('./renderers');\n\nvar symbols = require('./symbols');\n\nvar allTypes = Object.keys(defaultRenderers);\n\nvar ReactMarkdown = function ReactMarkdown(props) {\n var src = props.source || props.children || '';\n var parserOptions = props.parserOptions;\n\n if (props.allowedTypes && props.disallowedTypes) {\n throw new Error('Only one of `allowedTypes` and `disallowedTypes` should be defined');\n }\n\n var renderers = xtend(defaultRenderers, props.renderers);\n var plugins = [[parse, parserOptions]].concat(props.plugins || []);\n var parser = plugins.reduce(applyParserPlugin, unified());\n var rawAst = parser.parse(src);\n var renderProps = xtend(props, {\n renderers: renderers,\n definitions: getDefinitions(rawAst)\n });\n var astPlugins = determineAstPlugins(props); // eslint-disable-next-line no-sync\n\n var transformedAst = parser.runSync(rawAst);\n var ast = astPlugins.reduce(function (node, plugin) {\n return plugin(node, renderProps);\n }, transformedAst);\n return astToReact(ast, renderProps);\n};\n\nfunction applyParserPlugin(parser, plugin) {\n return Array.isArray(plugin) ? parser.use.apply(parser, _toConsumableArray(plugin)) : parser.use(plugin);\n}\n\nfunction determineAstPlugins(props) {\n var plugins = [wrapTableRows, addListMetadata()];\n var disallowedTypes = props.disallowedTypes;\n\n if (props.allowedTypes) {\n disallowedTypes = allTypes.filter(function (type) {\n return type !== 'root' && props.allowedTypes.indexOf(type) === -1;\n });\n }\n\n var removalMethod = props.unwrapDisallowed ? 'unwrap' : 'remove';\n\n if (disallowedTypes && disallowedTypes.length > 0) {\n plugins.push(disallowNode.ofType(disallowedTypes, removalMethod));\n }\n\n if (props.allowNode) {\n plugins.push(disallowNode.ifNotMatch(props.allowNode, removalMethod));\n }\n\n var renderHtml = !props.escapeHtml && !props.skipHtml;\n var hasHtmlParser = (props.astPlugins || []).some(function (item) {\n var plugin = Array.isArray(item) ? item[0] : item;\n return plugin.identity === symbols.HtmlParser;\n });\n\n if (renderHtml && !hasHtmlParser) {\n plugins.push(naiveHtml);\n }\n\n return props.astPlugins ? plugins.concat(props.astPlugins) : plugins;\n}\n\nReactMarkdown.defaultProps = {\n renderers: {},\n escapeHtml: true,\n skipHtml: false,\n sourcePos: false,\n rawSourcePos: false,\n transformLinkUri: uriTransformer,\n astPlugins: [],\n plugins: [],\n parserOptions: {}\n};\nReactMarkdown.propTypes = {\n className: PropTypes.string,\n source: PropTypes.string,\n children: PropTypes.string,\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n escapeHtml: PropTypes.bool,\n skipHtml: PropTypes.bool,\n allowNode: PropTypes.func,\n allowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n disallowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n astPlugins: PropTypes.arrayOf(PropTypes.func),\n unwrapDisallowed: PropTypes.bool,\n renderers: PropTypes.object,\n plugins: PropTypes.array,\n parserOptions: PropTypes.object\n};\nReactMarkdown.types = allTypes;\nReactMarkdown.renderers = defaultRenderers;\nReactMarkdown.uriTransformer = uriTransformer;\nmodule.exports = ReactMarkdown;","'use strict';\n\nvar alphabetical = require('is-alphabetical');\n\nvar decimal = require('is-decimal');\n\nmodule.exports = alphanumerical; // Check if the given character code, or the character code at the first\n// character, is alphanumerical.\n\nfunction alphanumerical(character) {\n return alphabetical(character) || decimal(character);\n}","'use strict';\n\nvar xtend = require('xtend');\n\nvar toggle = require('state-toggle');\n\nvar vfileLocation = require('vfile-location');\n\nvar unescape = require('./unescape');\n\nvar decode = require('./decode');\n\nvar tokenizer = require('./tokenizer');\n\nmodule.exports = Parser;\n\nfunction Parser(doc, file) {\n this.file = file;\n this.offset = {};\n this.options = xtend(this.options);\n this.setOptions({});\n this.inList = false;\n this.inBlock = false;\n this.inLink = false;\n this.atStart = true;\n this.toOffset = vfileLocation(file).toOffset;\n this.unescape = unescape(this, 'escape');\n this.decode = decode(this);\n}\n\nvar proto = Parser.prototype;\n/* Expose core. */\n\nproto.setOptions = require('./set-options');\nproto.parse = require('./parse');\n/* Expose `defaults`. */\n\nproto.options = require('./defaults');\n/* Enter and exit helpers. */\n\nproto.exitStart = toggle('atStart', true);\nproto.enterList = toggle('inList', false);\nproto.enterLink = toggle('inLink', false);\nproto.enterBlock = toggle('inBlock', false);\n/* Nodes that can interupt a paragraph:\n *\n * ```markdown\n * A paragraph, followed by a thematic break.\n * ___\n * ```\n *\n * In the above example, the thematic break “interupts”\n * the paragraph. */\n\nproto.interruptParagraph = [['thematicBreak'], ['atxHeading'], ['fencedCode'], ['blockquote'], ['html'], ['setextHeading', {\n commonmark: false\n}], ['definition', {\n commonmark: false\n}], ['footnote', {\n commonmark: false\n}]];\n/* Nodes that can interupt a list:\n *\n * ```markdown\n * - One\n * ___\n * ```\n *\n * In the above example, the thematic break “interupts”\n * the list. */\n\nproto.interruptList = [['atxHeading', {\n pedantic: false\n}], ['fencedCode', {\n pedantic: false\n}], ['thematicBreak', {\n pedantic: false\n}], ['definition', {\n commonmark: false\n}], ['footnote', {\n commonmark: false\n}]];\n/* Nodes that can interupt a blockquote:\n *\n * ```markdown\n * > A paragraph.\n * ___\n * ```\n *\n * In the above example, the thematic break “interupts”\n * the blockquote. */\n\nproto.interruptBlockquote = [['indentedCode', {\n commonmark: true\n}], ['fencedCode', {\n commonmark: true\n}], ['atxHeading', {\n commonmark: true\n}], ['setextHeading', {\n commonmark: true\n}], ['thematicBreak', {\n commonmark: true\n}], ['html', {\n commonmark: true\n}], ['list', {\n commonmark: true\n}], ['definition', {\n commonmark: false\n}], ['footnote', {\n commonmark: false\n}]];\n/* Handlers. */\n\nproto.blockTokenizers = {\n newline: require('./tokenize/newline'),\n indentedCode: require('./tokenize/code-indented'),\n fencedCode: require('./tokenize/code-fenced'),\n blockquote: require('./tokenize/blockquote'),\n atxHeading: require('./tokenize/heading-atx'),\n thematicBreak: require('./tokenize/thematic-break'),\n list: require('./tokenize/list'),\n setextHeading: require('./tokenize/heading-setext'),\n html: require('./tokenize/html-block'),\n footnote: require('./tokenize/footnote-definition'),\n definition: require('./tokenize/definition'),\n table: require('./tokenize/table'),\n paragraph: require('./tokenize/paragraph')\n};\nproto.inlineTokenizers = {\n escape: require('./tokenize/escape'),\n autoLink: require('./tokenize/auto-link'),\n url: require('./tokenize/url'),\n html: require('./tokenize/html-inline'),\n link: require('./tokenize/link'),\n reference: require('./tokenize/reference'),\n strong: require('./tokenize/strong'),\n emphasis: require('./tokenize/emphasis'),\n deletion: require('./tokenize/delete'),\n code: require('./tokenize/code-inline'),\n break: require('./tokenize/break'),\n text: require('./tokenize/text')\n};\n/* Expose precedence. */\n\nproto.blockMethods = keys(proto.blockTokenizers);\nproto.inlineMethods = keys(proto.inlineTokenizers);\n/* Tokenizers. */\n\nproto.tokenizeBlock = tokenizer('block');\nproto.tokenizeInline = tokenizer('inline');\nproto.tokenizeFactory = tokenizer;\n/* Get all keys in `value`. */\n\nfunction keys(value) {\n var result = [];\n var key;\n\n for (key in value) {\n result.push(key);\n }\n\n return result;\n}","'use strict';\n\nmodule.exports = collapse; // `collapse(' \\t\\nbar \\nbaz\\t') // ' bar baz '`\n\nfunction collapse(value) {\n return String(value).replace(/\\s+/g, ' ');\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/link');\n\nmodule.exports = link;\nlink.locator = locate;\nvar own = {}.hasOwnProperty;\nvar C_BACKSLASH = '\\\\';\nvar C_BRACKET_OPEN = '[';\nvar C_BRACKET_CLOSE = ']';\nvar C_PAREN_OPEN = '(';\nvar C_PAREN_CLOSE = ')';\nvar C_LT = '<';\nvar C_GT = '>';\nvar C_TICK = '`';\nvar C_DOUBLE_QUOTE = '\"';\nvar C_SINGLE_QUOTE = '\\'';\n/* Map of characters, which can be used to mark link\n * and image titles. */\n\nvar LINK_MARKERS = {};\nLINK_MARKERS[C_DOUBLE_QUOTE] = C_DOUBLE_QUOTE;\nLINK_MARKERS[C_SINGLE_QUOTE] = C_SINGLE_QUOTE;\n/* Map of characters, which can be used to mark link\n * and image titles in commonmark-mode. */\n\nvar COMMONMARK_LINK_MARKERS = {};\nCOMMONMARK_LINK_MARKERS[C_DOUBLE_QUOTE] = C_DOUBLE_QUOTE;\nCOMMONMARK_LINK_MARKERS[C_SINGLE_QUOTE] = C_SINGLE_QUOTE;\nCOMMONMARK_LINK_MARKERS[C_PAREN_OPEN] = C_PAREN_CLOSE;\n\nfunction link(eat, value, silent) {\n var self = this;\n var subvalue = '';\n var index = 0;\n var character = value.charAt(0);\n var pedantic = self.options.pedantic;\n var commonmark = self.options.commonmark;\n var gfm = self.options.gfm;\n var closed;\n var count;\n var opening;\n var beforeURL;\n var beforeTitle;\n var subqueue;\n var hasMarker;\n var markers;\n var isImage;\n var content;\n var marker;\n var length;\n var title;\n var depth;\n var queue;\n var url;\n var now;\n var exit;\n var node;\n /* Detect whether this is an image. */\n\n if (character === '!') {\n isImage = true;\n subvalue = character;\n character = value.charAt(++index);\n }\n /* Eat the opening. */\n\n\n if (character !== C_BRACKET_OPEN) {\n return;\n }\n /* Exit when this is a link and we’re already inside\n * a link. */\n\n\n if (!isImage && self.inLink) {\n return;\n }\n\n subvalue += character;\n queue = '';\n index++;\n /* Eat the content. */\n\n length = value.length;\n now = eat.now();\n depth = 0;\n now.column += index;\n now.offset += index;\n\n while (index < length) {\n character = value.charAt(index);\n subqueue = character;\n\n if (character === C_TICK) {\n /* Inline-code in link content. */\n count = 1;\n\n while (value.charAt(index + 1) === C_TICK) {\n subqueue += character;\n index++;\n count++;\n }\n\n if (!opening) {\n opening = count;\n } else if (count >= opening) {\n opening = 0;\n }\n } else if (character === C_BACKSLASH) {\n /* Allow brackets to be escaped. */\n index++;\n subqueue += value.charAt(index);\n /* In GFM mode, brackets in code still count.\n * In all other modes, they don’t. This empty\n * block prevents the next statements are\n * entered. */\n } else if ((!opening || gfm) && character === C_BRACKET_OPEN) {\n depth++;\n } else if ((!opening || gfm) && character === C_BRACKET_CLOSE) {\n if (depth) {\n depth--;\n } else {\n /* Allow white-space between content and\n * url in GFM mode. */\n if (!pedantic) {\n while (index < length) {\n character = value.charAt(index + 1);\n\n if (!whitespace(character)) {\n break;\n }\n\n subqueue += character;\n index++;\n }\n }\n\n if (value.charAt(index + 1) !== C_PAREN_OPEN) {\n return;\n }\n\n subqueue += C_PAREN_OPEN;\n closed = true;\n index++;\n break;\n }\n }\n\n queue += subqueue;\n subqueue = '';\n index++;\n }\n /* Eat the content closing. */\n\n\n if (!closed) {\n return;\n }\n\n content = queue;\n subvalue += queue + subqueue;\n index++;\n /* Eat white-space. */\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n /* Eat the URL. */\n\n\n character = value.charAt(index);\n markers = commonmark ? COMMONMARK_LINK_MARKERS : LINK_MARKERS;\n queue = '';\n beforeURL = subvalue;\n\n if (character === C_LT) {\n index++;\n beforeURL += C_LT;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_GT) {\n break;\n }\n\n if (commonmark && character === '\\n') {\n return;\n }\n\n queue += character;\n index++;\n }\n\n if (value.charAt(index) !== C_GT) {\n return;\n }\n\n subvalue += C_LT + queue + C_GT;\n url = queue;\n index++;\n } else {\n character = null;\n subqueue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (subqueue && own.call(markers, character)) {\n break;\n }\n\n if (whitespace(character)) {\n if (!pedantic) {\n break;\n }\n\n subqueue += character;\n } else {\n if (character === C_PAREN_OPEN) {\n depth++;\n } else if (character === C_PAREN_CLOSE) {\n if (depth === 0) {\n break;\n }\n\n depth--;\n }\n\n queue += subqueue;\n subqueue = '';\n\n if (character === C_BACKSLASH) {\n queue += C_BACKSLASH;\n character = value.charAt(++index);\n }\n\n queue += character;\n }\n\n index++;\n }\n\n subvalue += queue;\n url = queue;\n index = subvalue.length;\n }\n /* Eat white-space. */\n\n\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n subvalue += queue;\n /* Eat the title. */\n\n if (queue && own.call(markers, character)) {\n index++;\n subvalue += character;\n queue = '';\n marker = markers[character];\n beforeTitle = subvalue;\n /* In commonmark-mode, things are pretty easy: the\n * marker cannot occur inside the title.\n *\n * Non-commonmark does, however, support nested\n * delimiters. */\n\n if (commonmark) {\n while (index < length) {\n character = value.charAt(index);\n\n if (character === marker) {\n break;\n }\n\n if (character === C_BACKSLASH) {\n queue += C_BACKSLASH;\n character = value.charAt(++index);\n }\n\n index++;\n queue += character;\n }\n\n character = value.charAt(index);\n\n if (character !== marker) {\n return;\n }\n\n title = queue;\n subvalue += queue + character;\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n } else {\n subqueue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === marker) {\n if (hasMarker) {\n queue += marker + subqueue;\n subqueue = '';\n }\n\n hasMarker = true;\n } else if (!hasMarker) {\n queue += character;\n } else if (character === C_PAREN_CLOSE) {\n subvalue += queue + marker + subqueue;\n title = queue;\n break;\n } else if (whitespace(character)) {\n subqueue += character;\n } else {\n queue += marker + subqueue + character;\n subqueue = '';\n hasMarker = false;\n }\n\n index++;\n }\n }\n }\n\n if (value.charAt(index) !== C_PAREN_CLOSE) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n subvalue += C_PAREN_CLOSE;\n url = self.decode.raw(self.unescape(url), eat(beforeURL).test().end, {\n nonTerminated: false\n });\n\n if (title) {\n beforeTitle = eat(beforeTitle).test().end;\n title = self.decode.raw(self.unescape(title), beforeTitle);\n }\n\n node = {\n type: isImage ? 'image' : 'link',\n title: title || null,\n url: url\n };\n\n if (isImage) {\n node.alt = self.decode.raw(self.unescape(content), now) || null;\n } else {\n exit = self.enterLink();\n node.children = self.tokenizeInline(content, now);\n exit();\n }\n\n return eat(subvalue)(node);\n}","'use strict';\n\nmodule.exports = escapes;\nvar defaults = ['\\\\', '`', '*', '{', '}', '[', ']', '(', ')', '#', '+', '-', '.', '!', '_', '>'];\nvar gfm = defaults.concat(['~', '|']);\nvar commonmark = gfm.concat(['\\n', '\"', '$', '%', '&', \"'\", ',', '/', ':', ';', '<', '=', '?', '@', '^']);\nescapes.default = defaults;\nescapes.gfm = gfm;\nescapes.commonmark = commonmark; // Get markdown escapes.\n\nfunction escapes(options) {\n var settings = options || {};\n\n if (settings.commonmark) {\n return commonmark;\n }\n\n return settings.gfm ? gfm : defaults;\n}","'use strict';\n\nvar own = {}.hasOwnProperty;\nmodule.exports = stringify;\n\nfunction stringify(value) {\n /* Nothing. */\n if (!value || typeof value !== 'object') {\n return null;\n }\n /* Node. */\n\n\n if (own.call(value, 'position') || own.call(value, 'type')) {\n return position(value.position);\n }\n /* Position. */\n\n\n if (own.call(value, 'start') || own.call(value, 'end')) {\n return position(value);\n }\n /* Point. */\n\n\n if (own.call(value, 'line') || own.call(value, 'column')) {\n return point(value);\n }\n /* ? */\n\n\n return null;\n}\n\nfunction point(point) {\n if (!point || typeof point !== 'object') {\n point = {};\n }\n\n return index(point.line) + ':' + index(point.column);\n}\n\nfunction position(pos) {\n if (!pos || typeof pos !== 'object') {\n pos = {};\n }\n\n return point(pos.start) + '-' + point(pos.end);\n}\n\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1;\n}","'use strict';\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('<', fromIndex);\n}","'use strict';\n\nvar trim = require('trim');\n\nvar decimal = require('is-decimal');\n\nvar trimTrailingLines = require('trim-trailing-lines');\n\nvar interrupt = require('../util/interrupt');\n\nmodule.exports = paragraph;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar TAB_SIZE = 4;\n/* Tokenise paragraph. */\n\nfunction paragraph(eat, value, silent) {\n var self = this;\n var settings = self.options;\n var commonmark = settings.commonmark;\n var gfm = settings.gfm;\n var tokenizers = self.blockTokenizers;\n var interruptors = self.interruptParagraph;\n var index = value.indexOf(C_NEWLINE);\n var length = value.length;\n var position;\n var subvalue;\n var character;\n var size;\n var now;\n\n while (index < length) {\n /* Eat everything if there’s no following newline. */\n if (index === -1) {\n index = length;\n break;\n }\n /* Stop if the next character is NEWLINE. */\n\n\n if (value.charAt(index + 1) === C_NEWLINE) {\n break;\n }\n /* In commonmark-mode, following indented lines\n * are part of the paragraph. */\n\n\n if (commonmark) {\n size = 0;\n position = index + 1;\n\n while (position < length) {\n character = value.charAt(position);\n\n if (character === C_TAB) {\n size = TAB_SIZE;\n break;\n } else if (character === C_SPACE) {\n size++;\n } else {\n break;\n }\n\n position++;\n }\n\n if (size >= TAB_SIZE) {\n index = value.indexOf(C_NEWLINE, index + 1);\n continue;\n }\n }\n\n subvalue = value.slice(index + 1);\n /* Check if the following code contains a possible\n * block. */\n\n if (interrupt(interruptors, tokenizers, self, [eat, subvalue, true])) {\n break;\n }\n /* Break if the following line starts a list, when\n * already in a list, or when in commonmark, or when\n * in gfm mode and the bullet is *not* numeric. */\n\n\n if (tokenizers.list.call(self, eat, subvalue, true) && (self.inList || commonmark || gfm && !decimal(trim.left(subvalue).charAt(0)))) {\n break;\n }\n\n position = index;\n index = value.indexOf(C_NEWLINE, index + 1);\n\n if (index !== -1 && trim(value.slice(position, index)) === '') {\n index = position;\n break;\n }\n }\n\n subvalue = value.slice(0, index);\n\n if (trim(subvalue) === '') {\n eat(subvalue);\n return null;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n now = eat.now();\n subvalue = trimTrailingLines(subvalue);\n return eat(subvalue)({\n type: 'paragraph',\n children: self.tokenizeInline(subvalue, now)\n });\n}","import styled from \"styled-components\"\n\nexport const HolderWrap = styled.div`\n width: 1200px;\n margin: 0 auto;\n max-width: 100%;\n padding: 0 75px;\n @media (max-width: 960px) {\n padding: 0 15px;\n }\n`\n","\"use strict\";\n\nvar protocols = ['http', 'https', 'mailto', 'tel'];\n\nmodule.exports = function uriTransformer(uri) {\n var url = (uri || '').trim();\n var first = url.charAt(0);\n\n if (first === '#' || first === '/') {\n return url;\n }\n\n var colon = url.indexOf(':');\n\n if (colon === -1) {\n return url;\n }\n\n var length = protocols.length;\n var index = -1;\n\n while (++index < length) {\n var protocol = protocols[index];\n\n if (colon === protocol.length && url.slice(0, protocol.length).toLowerCase() === protocol) {\n return url;\n }\n }\n\n index = url.indexOf('?');\n\n if (index !== -1 && colon > index) {\n return url;\n }\n\n index = url.indexOf('#');\n\n if (index !== -1 && colon > index) {\n return url;\n } // eslint-disable-next-line no-script-url\n\n\n return 'javascript:void(0)';\n};","'use strict';\n/* eslint-disable max-params */\n\nvar trim = require('trim');\n\nvar repeat = require('repeat-string');\n\nvar decimal = require('is-decimal');\n\nvar getIndent = require('../util/get-indentation');\n\nvar removeIndent = require('../util/remove-indentation');\n\nvar interrupt = require('../util/interrupt');\n\nmodule.exports = list;\nvar C_ASTERISK = '*';\nvar C_UNDERSCORE = '_';\nvar C_PLUS = '+';\nvar C_DASH = '-';\nvar C_DOT = '.';\nvar C_SPACE = ' ';\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_PAREN_CLOSE = ')';\nvar C_X_LOWER = 'x';\nvar TAB_SIZE = 4;\nvar EXPRESSION_LOOSE_LIST_ITEM = /\\n\\n(?!\\s*$)/;\nvar EXPRESSION_TASK_ITEM = /^\\[([ \\t]|x|X)][ \\t]/;\nvar EXPRESSION_BULLET = /^([ \\t]*)([*+-]|\\d+[.)])( {1,4}(?! )| |\\t|$|(?=\\n))([^\\n]*)/;\nvar EXPRESSION_PEDANTIC_BULLET = /^([ \\t]*)([*+-]|\\d+[.)])([ \\t]+)/;\nvar EXPRESSION_INITIAL_INDENT = /^( {1,4}|\\t)?/gm;\n/* Map of characters which can be used to mark\n * list-items. */\n\nvar LIST_UNORDERED_MARKERS = {};\nLIST_UNORDERED_MARKERS[C_ASTERISK] = true;\nLIST_UNORDERED_MARKERS[C_PLUS] = true;\nLIST_UNORDERED_MARKERS[C_DASH] = true;\n/* Map of characters which can be used to mark\n * list-items after a digit. */\n\nvar LIST_ORDERED_MARKERS = {};\nLIST_ORDERED_MARKERS[C_DOT] = true;\n/* Map of characters which can be used to mark\n * list-items after a digit. */\n\nvar LIST_ORDERED_COMMONMARK_MARKERS = {};\nLIST_ORDERED_COMMONMARK_MARKERS[C_DOT] = true;\nLIST_ORDERED_COMMONMARK_MARKERS[C_PAREN_CLOSE] = true;\n\nfunction list(eat, value, silent) {\n var self = this;\n var commonmark = self.options.commonmark;\n var pedantic = self.options.pedantic;\n var tokenizers = self.blockTokenizers;\n var interuptors = self.interruptList;\n var markers;\n var index = 0;\n var length = value.length;\n var start = null;\n var size = 0;\n var queue;\n var ordered;\n var character;\n var marker;\n var nextIndex;\n var startIndex;\n var prefixed;\n var currentMarker;\n var content;\n var line;\n var prevEmpty;\n var empty;\n var items;\n var allLines;\n var emptyLines;\n var item;\n var enterTop;\n var exitBlockquote;\n var isLoose;\n var node;\n var now;\n var end;\n var indented;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_TAB) {\n size += TAB_SIZE - size % TAB_SIZE;\n } else if (character === C_SPACE) {\n size++;\n } else {\n break;\n }\n\n index++;\n }\n\n if (size >= TAB_SIZE) {\n return;\n }\n\n character = value.charAt(index);\n markers = commonmark ? LIST_ORDERED_COMMONMARK_MARKERS : LIST_ORDERED_MARKERS;\n\n if (LIST_UNORDERED_MARKERS[character] === true) {\n marker = character;\n ordered = false;\n } else {\n ordered = true;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!decimal(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (!queue || markers[character] !== true) {\n return;\n }\n\n start = parseInt(queue, 10);\n marker = character;\n }\n\n character = value.charAt(++index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n return;\n }\n\n if (silent) {\n return true;\n }\n\n index = 0;\n items = [];\n allLines = [];\n emptyLines = [];\n\n while (index < length) {\n nextIndex = value.indexOf(C_NEWLINE, index);\n startIndex = index;\n prefixed = false;\n indented = false;\n\n if (nextIndex === -1) {\n nextIndex = length;\n }\n\n end = index + TAB_SIZE;\n size = 0;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_TAB) {\n size += TAB_SIZE - size % TAB_SIZE;\n } else if (character === C_SPACE) {\n size++;\n } else {\n break;\n }\n\n index++;\n }\n\n if (size >= TAB_SIZE) {\n indented = true;\n }\n\n if (item && size >= item.indent) {\n indented = true;\n }\n\n character = value.charAt(index);\n currentMarker = null;\n\n if (!indented) {\n if (LIST_UNORDERED_MARKERS[character] === true) {\n currentMarker = character;\n index++;\n size++;\n } else {\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!decimal(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n index++;\n\n if (queue && markers[character] === true) {\n currentMarker = character;\n size += queue.length + 1;\n }\n }\n\n if (currentMarker) {\n character = value.charAt(index);\n\n if (character === C_TAB) {\n size += TAB_SIZE - size % TAB_SIZE;\n index++;\n } else if (character === C_SPACE) {\n end = index + TAB_SIZE;\n\n while (index < end) {\n if (value.charAt(index) !== C_SPACE) {\n break;\n }\n\n index++;\n size++;\n }\n\n if (index === end && value.charAt(index) === C_SPACE) {\n index -= TAB_SIZE - 1;\n size -= TAB_SIZE - 1;\n }\n } else if (character !== C_NEWLINE && character !== '') {\n currentMarker = null;\n }\n }\n }\n\n if (currentMarker) {\n if (!pedantic && marker !== currentMarker) {\n break;\n }\n\n prefixed = true;\n } else {\n if (!commonmark && !indented && value.charAt(startIndex) === C_SPACE) {\n indented = true;\n } else if (commonmark && item) {\n indented = size >= item.indent || size > TAB_SIZE;\n }\n\n prefixed = false;\n index = startIndex;\n }\n\n line = value.slice(startIndex, nextIndex);\n content = startIndex === index ? line : value.slice(index, nextIndex);\n\n if (currentMarker === C_ASTERISK || currentMarker === C_UNDERSCORE || currentMarker === C_DASH) {\n if (tokenizers.thematicBreak.call(self, eat, line, true)) {\n break;\n }\n }\n\n prevEmpty = empty;\n empty = !trim(content).length;\n\n if (indented && item) {\n item.value = item.value.concat(emptyLines, line);\n allLines = allLines.concat(emptyLines, line);\n emptyLines = [];\n } else if (prefixed) {\n if (emptyLines.length !== 0) {\n item.value.push('');\n item.trail = emptyLines.concat();\n }\n\n item = {\n value: [line],\n indent: size,\n trail: []\n };\n items.push(item);\n allLines = allLines.concat(emptyLines, line);\n emptyLines = [];\n } else if (empty) {\n if (prevEmpty) {\n break;\n }\n\n emptyLines.push(line);\n } else {\n if (prevEmpty) {\n break;\n }\n\n if (interrupt(interuptors, tokenizers, self, [eat, line, true])) {\n break;\n }\n\n item.value = item.value.concat(emptyLines, line);\n allLines = allLines.concat(emptyLines, line);\n emptyLines = [];\n }\n\n index = nextIndex + 1;\n }\n\n node = eat(allLines.join(C_NEWLINE)).reset({\n type: 'list',\n ordered: ordered,\n start: start,\n loose: null,\n children: []\n });\n enterTop = self.enterList();\n exitBlockquote = self.enterBlock();\n isLoose = false;\n index = -1;\n length = items.length;\n\n while (++index < length) {\n item = items[index].value.join(C_NEWLINE);\n now = eat.now();\n item = eat(item)(listItem(self, item, now), node);\n\n if (item.loose) {\n isLoose = true;\n }\n\n item = items[index].trail.join(C_NEWLINE);\n\n if (index !== length - 1) {\n item += C_NEWLINE;\n }\n\n eat(item);\n }\n\n enterTop();\n exitBlockquote();\n node.loose = isLoose;\n return node;\n}\n\nfunction listItem(ctx, value, position) {\n var offsets = ctx.offset;\n var fn = ctx.options.pedantic ? pedanticListItem : normalListItem;\n var checked = null;\n var task;\n var indent;\n value = fn.apply(null, arguments);\n\n if (ctx.options.gfm) {\n task = value.match(EXPRESSION_TASK_ITEM);\n\n if (task) {\n indent = task[0].length;\n checked = task[1].toLowerCase() === C_X_LOWER;\n offsets[position.line] += indent;\n value = value.slice(indent);\n }\n }\n\n return {\n type: 'listItem',\n loose: EXPRESSION_LOOSE_LIST_ITEM.test(value) || value.charAt(value.length - 1) === C_NEWLINE,\n checked: checked,\n children: ctx.tokenizeBlock(value, position)\n };\n}\n/* Create a list-item using overly simple mechanics. */\n\n\nfunction pedanticListItem(ctx, value, position) {\n var offsets = ctx.offset;\n var line = position.line;\n /* Remove the list-item’s bullet. */\n\n value = value.replace(EXPRESSION_PEDANTIC_BULLET, replacer);\n /* The initial line was also matched by the below, so\n * we reset the `line`. */\n\n line = position.line;\n return value.replace(EXPRESSION_INITIAL_INDENT, replacer);\n /* A simple replacer which removed all matches,\n * and adds their length to `offset`. */\n\n function replacer($0) {\n offsets[line] = (offsets[line] || 0) + $0.length;\n line++;\n return '';\n }\n}\n/* Create a list-item using sane mechanics. */\n\n\nfunction normalListItem(ctx, value, position) {\n var offsets = ctx.offset;\n var line = position.line;\n var max;\n var bullet;\n var rest;\n var lines;\n var trimmedLines;\n var index;\n var length;\n /* Remove the list-item’s bullet. */\n\n value = value.replace(EXPRESSION_BULLET, replacer);\n lines = value.split(C_NEWLINE);\n trimmedLines = removeIndent(value, getIndent(max).indent).split(C_NEWLINE);\n /* We replaced the initial bullet with something\n * else above, which was used to trick\n * `removeIndentation` into removing some more\n * characters when possible. However, that could\n * result in the initial line to be stripped more\n * than it should be. */\n\n trimmedLines[0] = rest;\n offsets[line] = (offsets[line] || 0) + bullet.length;\n line++;\n index = 0;\n length = lines.length;\n\n while (++index < length) {\n offsets[line] = (offsets[line] || 0) + lines[index].length - trimmedLines[index].length;\n line++;\n }\n\n return trimmedLines.join(C_NEWLINE);\n\n function replacer($0, $1, $2, $3, $4) {\n bullet = $1 + $2 + $3;\n rest = $4;\n /* Make sure that the first nine numbered list items\n * can indent with an extra space. That is, when\n * the bullet did not receive an extra final space. */\n\n if (Number($2) < 10 && bullet.length % 2 === 1) {\n $2 = C_SPACE + $2;\n }\n\n max = $1 + repeat(C_SPACE, $2.length) + $3;\n return max + rest;\n }\n}","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}","/*!\n * repeat-string \n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n'use strict';\n/**\n * Results cache\n */\n\nvar res = '';\nvar cache;\n/**\n * Expose `repeat`\n */\n\nmodule.exports = repeat;\n/**\n * Repeat the given `string` the specified `number`\n * of times.\n *\n * **Example:**\n *\n * ```js\n * var repeat = require('repeat-string');\n * repeat('A', 5);\n * //=> AAAAA\n * ```\n *\n * @param {String} `string` The string to repeat\n * @param {Number} `number` The number of times to repeat the string\n * @return {String} Repeated string\n * @api public\n */\n\nfunction repeat(str, num) {\n if (typeof str !== 'string') {\n throw new TypeError('expected a string');\n } // cover common, quick use cases\n\n\n if (num === 1) return str;\n if (num === 2) return str + str;\n var max = str.length * num;\n\n if (cache !== str || typeof cache === 'undefined') {\n cache = str;\n res = '';\n } else if (res.length >= max) {\n return res.substr(0, max);\n }\n\n while (max > res.length && num > 1) {\n if (num & 1) {\n res += str;\n }\n\n num >>= 1;\n str += str;\n }\n\n res += str;\n res = res.substr(0, max);\n return res;\n}","exports = module.exports = trim;\n\nfunction trim(str) {\n return str.replace(/^\\s*|\\s*$/g, '');\n}\n\nexports.left = function (str) {\n return str.replace(/^\\s*/, '');\n};\n\nexports.right = function (str) {\n return str.replace(/\\s*$/, '');\n};","'use strict';\n\nvar path = require('path');\n\nvar replace = require('replace-ext');\n\nvar buffer = require('is-buffer');\n\nmodule.exports = VFile;\nvar own = {}.hasOwnProperty;\nvar proto = VFile.prototype;\nproto.toString = toString;\n/* Order of setting (least specific to most), we need this because\n * otherwise `{stem: 'a', path: '~/b.js'}` would throw, as a path\n * is needed before a stem can be set. */\n\nvar order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname'];\n/* Construct a new file. */\n\nfunction VFile(options) {\n var prop;\n var index;\n var length;\n\n if (!options) {\n options = {};\n } else if (typeof options === 'string' || buffer(options)) {\n options = {\n contents: options\n };\n } else if ('message' in options && 'messages' in options) {\n return options;\n }\n\n if (!(this instanceof VFile)) {\n return new VFile(options);\n }\n\n this.data = {};\n this.messages = [];\n this.history = [];\n this.cwd = process.cwd();\n /* Set path related properties in the correct order. */\n\n index = -1;\n length = order.length;\n\n while (++index < length) {\n prop = order[index];\n\n if (own.call(options, prop)) {\n this[prop] = options[prop];\n }\n }\n /* Set non-path related properties. */\n\n\n for (prop in options) {\n if (order.indexOf(prop) === -1) {\n this[prop] = options[prop];\n }\n }\n}\n/* Access full path (`~/index.min.js`). */\n\n\nObject.defineProperty(proto, 'path', {\n get: function get() {\n return this.history[this.history.length - 1];\n },\n set: function set(path) {\n assertNonEmpty(path, 'path');\n\n if (path !== this.path) {\n this.history.push(path);\n }\n }\n});\n/* Access parent path (`~`). */\n\nObject.defineProperty(proto, 'dirname', {\n get: function get() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined;\n },\n set: function set(dirname) {\n assertPath(this.path, 'dirname');\n this.path = path.join(dirname || '', this.basename);\n }\n});\n/* Access basename (`index.min.js`). */\n\nObject.defineProperty(proto, 'basename', {\n get: function get() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined;\n },\n set: function set(basename) {\n assertNonEmpty(basename, 'basename');\n assertPart(basename, 'basename');\n this.path = path.join(this.dirname || '', basename);\n }\n});\n/* Access extname (`.js`). */\n\nObject.defineProperty(proto, 'extname', {\n get: function get() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined;\n },\n set: function set(extname) {\n var ext = extname || '';\n assertPart(ext, 'extname');\n assertPath(this.path, 'extname');\n\n if (ext) {\n if (ext.charAt(0) !== '.') {\n throw new Error('`extname` must start with `.`');\n }\n\n if (ext.indexOf('.', 1) !== -1) {\n throw new Error('`extname` cannot contain multiple dots');\n }\n }\n\n this.path = replace(this.path, ext);\n }\n});\n/* Access stem (`index.min`). */\n\nObject.defineProperty(proto, 'stem', {\n get: function get() {\n return typeof this.path === 'string' ? path.basename(this.path, this.extname) : undefined;\n },\n set: function set(stem) {\n assertNonEmpty(stem, 'stem');\n assertPart(stem, 'stem');\n this.path = path.join(this.dirname || '', stem + (this.extname || ''));\n }\n});\n/* Get the value of the file. */\n\nfunction toString(encoding) {\n var value = this.contents || '';\n return buffer(value) ? value.toString(encoding) : String(value);\n}\n/* Assert that `part` is not a path (i.e., does\n * not contain `path.sep`). */\n\n\nfunction assertPart(part, name) {\n if (part.indexOf(path.sep) !== -1) {\n throw new Error('`' + name + '` cannot be a path: did not expect `' + path.sep + '`');\n }\n}\n/* Assert that `part` is not empty. */\n\n\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty');\n }\n}\n/* Assert `path` exists. */\n\n\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too');\n }\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar decode = require('parse-entities');\n\nvar locate = require('../locate/tag');\n\nmodule.exports = autoLink;\nautoLink.locator = locate;\nautoLink.notInLink = true;\nvar C_LT = '<';\nvar C_GT = '>';\nvar C_AT_SIGN = '@';\nvar C_SLASH = '/';\nvar MAILTO = 'mailto:';\nvar MAILTO_LENGTH = MAILTO.length;\n/* Tokenise a link. */\n\nfunction autoLink(eat, value, silent) {\n var self;\n var subvalue;\n var length;\n var index;\n var queue;\n var character;\n var hasAtCharacter;\n var link;\n var now;\n var content;\n var tokenizers;\n var exit;\n\n if (value.charAt(0) !== C_LT) {\n return;\n }\n\n self = this;\n subvalue = '';\n length = value.length;\n index = 0;\n queue = '';\n hasAtCharacter = false;\n link = '';\n index++;\n subvalue = C_LT;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (whitespace(character) || character === C_GT || character === C_AT_SIGN || character === ':' && value.charAt(index + 1) === C_SLASH) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n if (!queue) {\n return;\n }\n\n link += queue;\n queue = '';\n character = value.charAt(index);\n link += character;\n index++;\n\n if (character === C_AT_SIGN) {\n hasAtCharacter = true;\n } else {\n if (character !== ':' || value.charAt(index + 1) !== C_SLASH) {\n return;\n }\n\n link += C_SLASH;\n index++;\n }\n\n while (index < length) {\n character = value.charAt(index);\n\n if (whitespace(character) || character === C_GT) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (!queue || character !== C_GT) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n link += queue;\n content = link;\n subvalue += link + character;\n now = eat.now();\n now.column++;\n now.offset++;\n\n if (hasAtCharacter) {\n if (link.slice(0, MAILTO_LENGTH).toLowerCase() === MAILTO) {\n content = content.substr(MAILTO_LENGTH);\n now.column += MAILTO_LENGTH;\n now.offset += MAILTO_LENGTH;\n } else {\n link = MAILTO + link;\n }\n }\n /* Temporarily remove all tokenizers except text in autolinks. */\n\n\n tokenizers = self.inlineTokenizers;\n self.inlineTokenizers = {\n text: tokenizers.text\n };\n exit = self.enterLink();\n content = self.tokenizeInline(content, now);\n self.inlineTokenizers = tokenizers;\n exit();\n return eat(subvalue)({\n type: 'link',\n title: null,\n url: decode(link, {\n nonTerminated: false\n }),\n children: content\n });\n}","'use strict';\n\nvar trim = require('trim-trailing-lines');\n\nmodule.exports = fencedCode;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_TILDE = '~';\nvar C_TICK = '`';\nvar MIN_FENCE_COUNT = 3;\nvar CODE_INDENT_COUNT = 4;\n\nfunction fencedCode(eat, value, silent) {\n var self = this;\n var settings = self.options;\n var length = value.length + 1;\n var index = 0;\n var subvalue = '';\n var fenceCount;\n var marker;\n var character;\n var flag;\n var queue;\n var content;\n var exdentedContent;\n var closing;\n var exdentedClosing;\n var indent;\n var now;\n\n if (!settings.gfm) {\n return;\n }\n /* Eat initial spacing. */\n\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n indent = index;\n /* Eat the fence. */\n\n character = value.charAt(index);\n\n if (character !== C_TILDE && character !== C_TICK) {\n return;\n }\n\n index++;\n marker = character;\n fenceCount = 1;\n subvalue += character;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== marker) {\n break;\n }\n\n subvalue += character;\n fenceCount++;\n index++;\n }\n\n if (fenceCount < MIN_FENCE_COUNT) {\n return;\n }\n /* Eat spacing before flag. */\n\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n /* Eat flag. */\n\n\n flag = '';\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_NEWLINE || character === C_TILDE || character === C_TICK) {\n break;\n }\n\n if (character === C_SPACE || character === C_TAB) {\n queue += character;\n } else {\n flag += queue + character;\n queue = '';\n }\n\n index++;\n }\n\n character = value.charAt(index);\n\n if (character && character !== C_NEWLINE) {\n return;\n }\n\n if (silent) {\n return true;\n }\n\n now = eat.now();\n now.column += subvalue.length;\n now.offset += subvalue.length;\n subvalue += flag;\n flag = self.decode.raw(self.unescape(flag), now);\n\n if (queue) {\n subvalue += queue;\n }\n\n queue = '';\n closing = '';\n exdentedClosing = '';\n content = '';\n exdentedContent = '';\n /* Eat content. */\n\n while (index < length) {\n character = value.charAt(index);\n content += closing;\n exdentedContent += exdentedClosing;\n closing = '';\n exdentedClosing = '';\n\n if (character !== C_NEWLINE) {\n content += character;\n exdentedClosing += character;\n index++;\n continue;\n }\n /* Add the newline to `subvalue` if its the first\n * character. Otherwise, add it to the `closing`\n * queue. */\n\n\n if (content) {\n closing += character;\n exdentedClosing += character;\n } else {\n subvalue += character;\n }\n\n queue = '';\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n closing += queue;\n exdentedClosing += queue.slice(indent);\n\n if (queue.length >= CODE_INDENT_COUNT) {\n continue;\n }\n\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== marker) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n closing += queue;\n exdentedClosing += queue;\n\n if (queue.length < fenceCount) {\n continue;\n }\n\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n closing += character;\n exdentedClosing += character;\n index++;\n }\n\n if (!character || character === C_NEWLINE) {\n break;\n }\n }\n\n subvalue += content + closing;\n return eat(subvalue)({\n type: 'code',\n lang: flag || null,\n value: trim(exdentedContent)\n });\n}","module.exports = 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}","'use strict';\n\nrequire(\"core-js/modules/es.array.reduce.js\");\n\nvar React = require('react');\n\nvar xtend = require('xtend');\n\nvar ReactIs = require('react-is');\n\nvar defaultNodePosition = {\n start: {\n line: 1,\n column: 1,\n offset: 0\n },\n end: {\n line: 1,\n column: 1,\n offset: 0\n }\n};\n\nfunction astToReact(node, options) {\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var renderer = options.renderers[node.type]; // nodes generated by plugins may not have position data\n // much of the code after this point will attempt to access properties of the node.position\n // this will set the node position to the parent node's position to prevent errors\n\n if (node.position === undefined) {\n node.position = parent.node && parent.node.position || defaultNodePosition;\n }\n\n var pos = node.position.start;\n var key = [node.type, pos.line, pos.column, index].join('-');\n\n if (!ReactIs.isValidElementType(renderer)) {\n throw new Error(\"Renderer for type `\".concat(node.type, \"` not defined or is not renderable\"));\n }\n\n var nodeProps = getNodeProps(node, key, options, renderer, parent, index);\n return React.createElement(renderer, nodeProps, nodeProps.children || resolveChildren() || undefined);\n\n function resolveChildren() {\n return node.children && node.children.map(function (childNode, i) {\n return astToReact(childNode, options, {\n node: node,\n props: nodeProps\n }, i);\n });\n }\n} // eslint-disable-next-line max-params, complexity\n\n\nfunction getNodeProps(node, key, opts, renderer, parent, index) {\n var props = {\n key: key\n };\n var isTagRenderer = typeof renderer === 'string'; // `sourcePos` is true if the user wants source information (line/column info from markdown source)\n\n if (opts.sourcePos && node.position) {\n props['data-sourcepos'] = flattenPosition(node.position);\n }\n\n if (opts.rawSourcePos && !isTagRenderer) {\n props.sourcePosition = node.position;\n } // If `includeNodeIndex` is true, pass node index info to all non-tag renderers\n\n\n if (opts.includeNodeIndex && parent.node && parent.node.children && !isTagRenderer) {\n props.index = parent.node.children.indexOf(node);\n props.parentChildCount = parent.node.children.length;\n }\n\n var ref = node.identifier !== null && node.identifier !== undefined ? opts.definitions[node.identifier] || {} : null;\n\n switch (node.type) {\n case 'root':\n assignDefined(props, {\n className: opts.className\n });\n break;\n\n case 'text':\n props.nodeKey = key;\n props.children = node.value;\n break;\n\n case 'heading':\n props.level = node.depth;\n break;\n\n case 'list':\n props.start = node.start;\n props.ordered = node.ordered;\n props.tight = !node.loose;\n props.depth = node.depth;\n break;\n\n case 'listItem':\n props.checked = node.checked;\n props.tight = !node.loose;\n props.ordered = node.ordered;\n props.index = node.index;\n props.children = getListItemChildren(node, parent).map(function (childNode, i) {\n return astToReact(childNode, opts, {\n node: node,\n props: props\n }, i);\n });\n break;\n\n case 'definition':\n assignDefined(props, {\n identifier: node.identifier,\n title: node.title,\n url: node.url\n });\n break;\n\n case 'code':\n assignDefined(props, {\n language: node.lang && node.lang.split(/\\s/, 1)[0]\n });\n break;\n\n case 'inlineCode':\n props.children = node.value;\n props.inline = true;\n break;\n\n case 'link':\n assignDefined(props, {\n title: node.title || undefined,\n target: typeof opts.linkTarget === 'function' ? opts.linkTarget(node.url, node.children, node.title) : opts.linkTarget,\n href: opts.transformLinkUri ? opts.transformLinkUri(node.url, node.children, node.title) : node.url\n });\n break;\n\n case 'image':\n assignDefined(props, {\n alt: node.alt || undefined,\n title: node.title || undefined,\n src: opts.transformImageUri ? opts.transformImageUri(node.url, node.children, node.title, node.alt) : node.url\n });\n break;\n\n case 'linkReference':\n assignDefined(props, xtend(ref, {\n href: opts.transformLinkUri ? opts.transformLinkUri(ref.href) : ref.href\n }));\n break;\n\n case 'imageReference':\n assignDefined(props, {\n src: opts.transformImageUri && ref.href ? opts.transformImageUri(ref.href, node.children, ref.title, node.alt) : ref.href,\n title: ref.title || undefined,\n alt: node.alt || undefined\n });\n break;\n\n case 'table':\n case 'tableHead':\n case 'tableBody':\n props.columnAlignment = node.align;\n break;\n\n case 'tableRow':\n props.isHeader = parent.node.type === 'tableHead';\n props.columnAlignment = parent.props.columnAlignment;\n break;\n\n case 'tableCell':\n assignDefined(props, {\n isHeader: parent.props.isHeader,\n align: parent.props.columnAlignment[index]\n });\n break;\n\n case 'virtualHtml':\n props.tag = node.tag;\n break;\n\n case 'html':\n // @todo find a better way than this\n props.isBlock = node.position.start.line !== node.position.end.line;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n break;\n\n case 'parsedHtml':\n {\n var parsedChildren;\n\n if (node.children) {\n parsedChildren = node.children.map(function (child, i) {\n return astToReact(child, opts, {\n node: node,\n props: props\n }, i);\n });\n }\n\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n props.element = mergeNodeChildren(node, parsedChildren);\n break;\n }\n\n default:\n assignDefined(props, xtend(node, {\n type: undefined,\n position: undefined,\n children: undefined\n }));\n }\n\n if (!isTagRenderer && node.value) {\n props.value = node.value;\n }\n\n return props;\n}\n\nfunction assignDefined(target, attrs) {\n for (var key in attrs) {\n if (typeof attrs[key] !== 'undefined') {\n target[key] = attrs[key];\n }\n }\n}\n\nfunction mergeNodeChildren(node, parsedChildren) {\n var el = node.element;\n\n if (Array.isArray(el)) {\n var Fragment = React.Fragment || 'div';\n return React.createElement(Fragment, null, el);\n }\n\n if (el.props.children || parsedChildren) {\n var children = React.Children.toArray(el.props.children).concat(parsedChildren);\n return React.cloneElement(el, null, children);\n }\n\n return React.cloneElement(el, null);\n}\n\nfunction flattenPosition(pos) {\n return [pos.start.line, ':', pos.start.column, '-', pos.end.line, ':', pos.end.column].map(String).join('');\n}\n\nfunction getListItemChildren(node, parent) {\n if (node.loose) {\n return node.children;\n }\n\n if (parent.node && node.index > 0 && parent.node.children[node.index - 1].loose) {\n return node.children;\n }\n\n return unwrapParagraphs(node);\n}\n\nfunction unwrapParagraphs(node) {\n return node.children.reduce(function (array, child) {\n return array.concat(child.type === 'paragraph' ? child.children || [] : [child]);\n }, []);\n}\n\nmodule.exports = astToReact;","'use strict';\n/* Expose. */\n\nmodule.exports = visitParents;\n/* Visit. */\n\nfunction visitParents(tree, type, visitor) {\n var stack = [];\n\n if (typeof type === 'function') {\n visitor = type;\n type = null;\n }\n\n one(tree);\n /* Visit a single node. */\n\n function one(node) {\n var result;\n\n if (!type || node.type === type) {\n result = visitor(node, stack.concat());\n }\n\n if (node.children && result !== false) {\n return all(node.children, node);\n }\n\n return result;\n }\n /* Visit children in `parent`. */\n\n\n function all(children, parent) {\n var length = children.length;\n var index = -1;\n var child;\n stack.push(parent);\n\n while (++index < length) {\n child = children[index];\n\n if (child && one(child) === false) {\n return false;\n }\n }\n\n stack.pop();\n return true;\n }\n}","'use strict';\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n var asterisk = value.indexOf('*', fromIndex);\n var underscore = value.indexOf('_', fromIndex);\n\n if (underscore === -1) {\n return asterisk;\n }\n\n if (asterisk === -1) {\n return underscore;\n }\n\n return underscore < asterisk ? underscore : asterisk;\n}","'use strict';\n\nvar legacy = require('character-entities-legacy');\n\nvar invalid = require('character-reference-invalid');\n\nvar decimal = require('is-decimal');\n\nvar hexadecimal = require('is-hexadecimal');\n\nvar alphanumerical = require('is-alphanumerical');\n\nvar decodeEntity = require('./decode-entity');\n\nmodule.exports = parseEntities;\nvar own = {}.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 (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.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\n if (!terminated && !nonTerminated) {// Empty.\n } 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\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, and any possible warnings.\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}","'use strict';\n\nvar toString = Object.prototype.toString;\n\nmodule.exports = function (x) {\n var prototype;\n return toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({}));\n};","'use strict';\n/* Dependencies. */\n\nvar extend = require('extend');\n\nvar bail = require('bail');\n\nvar vfile = require('vfile');\n\nvar trough = require('trough');\n\nvar string = require('x-is-string');\n\nvar plain = require('is-plain-obj');\n/* Expose a frozen processor. */\n\n\nmodule.exports = unified().freeze();\nvar slice = [].slice;\nvar own = {}.hasOwnProperty;\n/* Process pipeline. */\n\nvar pipeline = trough().use(pipelineParse).use(pipelineRun).use(pipelineStringify);\n\nfunction pipelineParse(p, ctx) {\n ctx.tree = p.parse(ctx.file);\n}\n\nfunction pipelineRun(p, ctx, next) {\n p.run(ctx.tree, ctx.file, done);\n\n function done(err, tree, file) {\n if (err) {\n next(err);\n } else {\n ctx.tree = tree;\n ctx.file = file;\n next();\n }\n }\n}\n\nfunction pipelineStringify(p, ctx) {\n ctx.file.contents = p.stringify(ctx.tree, ctx.file);\n}\n/* Function to create the first processor. */\n\n\nfunction unified() {\n var attachers = [];\n var transformers = trough();\n var namespace = {};\n var frozen = false;\n var freezeIndex = -1;\n /* Data management. */\n\n processor.data = data;\n /* Lock. */\n\n processor.freeze = freeze;\n /* Plug-ins. */\n\n processor.attachers = attachers;\n processor.use = use;\n /* API. */\n\n processor.parse = parse;\n processor.stringify = stringify;\n processor.run = run;\n processor.runSync = runSync;\n processor.process = process;\n processor.processSync = processSync;\n /* Expose. */\n\n return processor;\n /* Create a new processor based on the processor\n * in the current scope. */\n\n function processor() {\n var destination = unified();\n var length = attachers.length;\n var index = -1;\n\n while (++index < length) {\n destination.use.apply(null, attachers[index]);\n }\n\n destination.data(extend(true, {}, namespace));\n return destination;\n }\n /* Freeze: used to signal a processor that has finished\n * configuration.\n *\n * For example, take unified itself. It’s frozen.\n * Plug-ins should not be added to it. Rather, it should\n * be extended, by invoking it, before modifying it.\n *\n * In essence, always invoke this when exporting a\n * processor. */\n\n\n function freeze() {\n var values;\n var plugin;\n var options;\n var transformer;\n\n if (frozen) {\n return processor;\n }\n\n while (++freezeIndex < attachers.length) {\n values = attachers[freezeIndex];\n plugin = values[0];\n options = values[1];\n transformer = null;\n\n if (options === false) {\n continue;\n }\n\n if (options === true) {\n values[1] = undefined;\n }\n\n transformer = plugin.apply(processor, values.slice(1));\n\n if (typeof transformer === 'function') {\n transformers.use(transformer);\n }\n }\n\n frozen = true;\n freezeIndex = Infinity;\n return processor;\n }\n /* Data management.\n * Getter / setter for processor-specific informtion. */\n\n\n function data(key, value) {\n if (string(key)) {\n /* Set `key`. */\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen);\n namespace[key] = value;\n return processor;\n }\n /* Get `key`. */\n\n\n return own.call(namespace, key) && namespace[key] || null;\n }\n /* Set space. */\n\n\n if (key) {\n assertUnfrozen('data', frozen);\n namespace = key;\n return processor;\n }\n /* Get space. */\n\n\n return namespace;\n }\n /* Plug-in management.\n *\n * Pass it:\n * * an attacher and options,\n * * a preset,\n * * a list of presets, attachers, and arguments (list\n * of attachers and options). */\n\n\n function use(value) {\n var settings;\n assertUnfrozen('use', frozen);\n\n if (value === null || value === undefined) {\n /* Empty */\n } else if (typeof value === 'function') {\n addPlugin.apply(null, arguments);\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addList(value);\n } else {\n addPreset(value);\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`');\n }\n\n if (settings) {\n namespace.settings = extend(namespace.settings || {}, settings);\n }\n\n return processor;\n\n function addPreset(result) {\n addList(result.plugins);\n\n if (result.settings) {\n settings = extend(settings || {}, result.settings);\n }\n }\n\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value);\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addPlugin.apply(null, value);\n } else {\n addPreset(value);\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`');\n }\n }\n\n function addList(plugins) {\n var length;\n var index;\n\n if (plugins === null || plugins === undefined) {\n /* Empty */\n } else if (typeof plugins === 'object' && 'length' in plugins) {\n length = plugins.length;\n index = -1;\n\n while (++index < length) {\n add(plugins[index]);\n }\n } else {\n throw new Error('Expected a list of plugins, not `' + plugins + '`');\n }\n }\n\n function addPlugin(plugin, value) {\n var entry = find(plugin);\n\n if (entry) {\n if (plain(entry[1]) && plain(value)) {\n value = extend(entry[1], value);\n }\n\n entry[1] = value;\n } else {\n attachers.push(slice.call(arguments));\n }\n }\n }\n\n function find(plugin) {\n var length = attachers.length;\n var index = -1;\n var entry;\n\n while (++index < length) {\n entry = attachers[index];\n\n if (entry[0] === plugin) {\n return entry;\n }\n }\n }\n /* Parse a file (in string or VFile representation)\n * into a Unist node using the `Parser` on the\n * processor. */\n\n\n function parse(doc) {\n var file = vfile(doc);\n var Parser;\n freeze();\n Parser = processor.Parser;\n assertParser('parse', Parser);\n\n if (newable(Parser)) {\n return new Parser(String(file), file).parse();\n }\n\n return Parser(String(file), file); // eslint-disable-line new-cap\n }\n /* Run transforms on a Unist node representation of a file\n * (in string or VFile representation), async. */\n\n\n function run(node, file, cb) {\n assertNode(node);\n freeze();\n\n if (!cb && typeof file === 'function') {\n cb = file;\n file = null;\n }\n\n if (!cb) {\n return new Promise(executor);\n }\n\n executor(null, cb);\n\n function executor(resolve, reject) {\n transformers.run(node, vfile(file), done);\n\n function done(err, tree, file) {\n tree = tree || node;\n\n if (err) {\n reject(err);\n } else if (resolve) {\n resolve(tree);\n } else {\n cb(null, tree, file);\n }\n }\n }\n }\n /* Run transforms on a Unist node representation of a file\n * (in string or VFile representation), sync. */\n\n\n function runSync(node, file) {\n var complete = false;\n var result;\n run(node, file, done);\n assertDone('runSync', 'run', complete);\n return result;\n\n function done(err, tree) {\n complete = true;\n bail(err);\n result = tree;\n }\n }\n /* Stringify a Unist node representation of a file\n * (in string or VFile representation) into a string\n * using the `Compiler` on the processor. */\n\n\n function stringify(node, doc) {\n var file = vfile(doc);\n var Compiler;\n freeze();\n Compiler = processor.Compiler;\n assertCompiler('stringify', Compiler);\n assertNode(node);\n\n if (newable(Compiler)) {\n return new Compiler(node, file).compile();\n }\n\n return Compiler(node, file); // eslint-disable-line new-cap\n }\n /* Parse a file (in string or VFile representation)\n * into a Unist node using the `Parser` on the processor,\n * then run transforms on that node, and compile the\n * resulting node using the `Compiler` on the processor,\n * and store that result on the VFile. */\n\n\n function process(doc, cb) {\n freeze();\n assertParser('process', processor.Parser);\n assertCompiler('process', processor.Compiler);\n\n if (!cb) {\n return new Promise(executor);\n }\n\n executor(null, cb);\n\n function executor(resolve, reject) {\n var file = vfile(doc);\n pipeline.run(processor, {\n file: file\n }, done);\n\n function done(err) {\n if (err) {\n reject(err);\n } else if (resolve) {\n resolve(file);\n } else {\n cb(null, file);\n }\n }\n }\n }\n /* Process the given document (in string or VFile\n * representation), sync. */\n\n\n function processSync(doc) {\n var complete = false;\n var file;\n freeze();\n assertParser('processSync', processor.Parser);\n assertCompiler('processSync', processor.Compiler);\n file = vfile(doc);\n process(file, done);\n assertDone('processSync', 'process', complete);\n return file;\n\n function done(err) {\n complete = true;\n bail(err);\n }\n }\n}\n/* Check if `func` is a constructor. */\n\n\nfunction newable(value) {\n return typeof value === 'function' && keys(value.prototype);\n}\n/* Check if `value` is an object with keys. */\n\n\nfunction keys(value) {\n var key;\n\n for (key in value) {\n return true;\n }\n\n return false;\n}\n/* Assert a parser is available. */\n\n\nfunction assertParser(name, Parser) {\n if (typeof Parser !== 'function') {\n throw new Error('Cannot `' + name + '` without `Parser`');\n }\n}\n/* Assert a compiler is available. */\n\n\nfunction assertCompiler(name, Compiler) {\n if (typeof Compiler !== 'function') {\n throw new Error('Cannot `' + name + '` without `Compiler`');\n }\n}\n/* Assert the processor is not frozen. */\n\n\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(['Cannot invoke `' + name + '` on a frozen processor.\\nCreate a new ', 'processor first, by invoking it: use `processor()` instead of ', '`processor`.'].join(''));\n }\n}\n/* Assert `node` is a Unist node. */\n\n\nfunction assertNode(node) {\n if (!node || !string(node.type)) {\n throw new Error('Expected node, got `' + node + '`');\n }\n}\n/* Assert that `complete` is `true`. */\n\n\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error('`' + name + '` finished async. Use `' + asyncName + '` instead');\n }\n}","'use strict';\n\nmodule.exports = decimal; // Check if the given character code, or the character code at the first\n// character, is decimal.\n\nfunction decimal(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character;\n return code >= 48 && code <= 57;\n /* 0-9 */\n}","'use strict';\n\nmodule.exports = visit;\n\nvar visitParents = require('unist-util-visit-parents');\n\nvar CONTINUE = visitParents.CONTINUE;\nvar SKIP = visitParents.SKIP;\nvar EXIT = visitParents.EXIT;\nvisit.CONTINUE = CONTINUE;\nvisit.SKIP = SKIP;\nvisit.EXIT = EXIT;\n\nfunction visit(tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor;\n visitor = test;\n test = null;\n }\n\n visitParents(tree, test, overload, reverse);\n\n function overload(node, parents) {\n var parent = parents[parents.length - 1];\n var index = parent ? parent.children.indexOf(node) : null;\n return visitor(node, index, parent);\n }\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"\n}), 'Star');\n\nexports.default = _default;","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nmodule.exports = newline;\n/* Tokenise newline. */\n\nfunction newline(eat, value, silent) {\n var character = value.charAt(0);\n var length;\n var subvalue;\n var queue;\n var index;\n\n if (character !== '\\n') {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n index = 1;\n length = value.length;\n subvalue = character;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n queue += character;\n\n if (character === '\\n') {\n subvalue += queue;\n queue = '';\n }\n\n index++;\n }\n\n eat(subvalue);\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/link');\n\nvar normalize = require('../util/normalize');\n\nmodule.exports = reference;\nreference.locator = locate;\nvar T_LINK = 'link';\nvar T_IMAGE = 'image';\nvar T_FOOTNOTE = 'footnote';\nvar REFERENCE_TYPE_SHORTCUT = 'shortcut';\nvar REFERENCE_TYPE_COLLAPSED = 'collapsed';\nvar REFERENCE_TYPE_FULL = 'full';\nvar C_CARET = '^';\nvar C_BACKSLASH = '\\\\';\nvar C_BRACKET_OPEN = '[';\nvar C_BRACKET_CLOSE = ']';\n\nfunction reference(eat, value, silent) {\n var self = this;\n var character = value.charAt(0);\n var index = 0;\n var length = value.length;\n var subvalue = '';\n var intro = '';\n var type = T_LINK;\n var referenceType = REFERENCE_TYPE_SHORTCUT;\n var content;\n var identifier;\n var now;\n var node;\n var exit;\n var queue;\n var bracketed;\n var depth;\n /* Check whether we’re eating an image. */\n\n if (character === '!') {\n type = T_IMAGE;\n intro = character;\n character = value.charAt(++index);\n }\n\n if (character !== C_BRACKET_OPEN) {\n return;\n }\n\n index++;\n intro += character;\n queue = '';\n /* Check whether we’re eating a footnote. */\n\n if (self.options.footnotes && value.charAt(index) === C_CARET) {\n /* Exit if `![^` is found, so the `!` will be seen as text after this,\n * and we’ll enter this function again when `[^` is found. */\n if (type === T_IMAGE) {\n return;\n }\n\n intro += C_CARET;\n index++;\n type = T_FOOTNOTE;\n }\n /* Eat the text. */\n\n\n depth = 0;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_BRACKET_OPEN) {\n bracketed = true;\n depth++;\n } else if (character === C_BRACKET_CLOSE) {\n if (!depth) {\n break;\n }\n\n depth--;\n }\n\n if (character === C_BACKSLASH) {\n queue += C_BACKSLASH;\n character = value.charAt(++index);\n }\n\n queue += character;\n index++;\n }\n\n subvalue = queue;\n content = queue;\n character = value.charAt(index);\n\n if (character !== C_BRACKET_CLOSE) {\n return;\n }\n\n index++;\n subvalue += character;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n /* Inline footnotes cannot have an identifier. */\n\n if (type !== T_FOOTNOTE && character === C_BRACKET_OPEN) {\n identifier = '';\n queue += character;\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_BRACKET_OPEN || character === C_BRACKET_CLOSE) {\n break;\n }\n\n if (character === C_BACKSLASH) {\n identifier += C_BACKSLASH;\n character = value.charAt(++index);\n }\n\n identifier += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (character === C_BRACKET_CLOSE) {\n referenceType = identifier ? REFERENCE_TYPE_FULL : REFERENCE_TYPE_COLLAPSED;\n queue += identifier + character;\n index++;\n } else {\n identifier = '';\n }\n\n subvalue += queue;\n queue = '';\n } else {\n if (!content) {\n return;\n }\n\n identifier = content;\n }\n /* Brackets cannot be inside the identifier. */\n\n\n if (referenceType !== REFERENCE_TYPE_FULL && bracketed) {\n return;\n }\n\n subvalue = intro + subvalue;\n\n if (type === T_LINK && self.inLink) {\n return null;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n if (type === T_FOOTNOTE && content.indexOf(' ') !== -1) {\n return eat(subvalue)({\n type: 'footnote',\n children: this.tokenizeInline(content, eat.now())\n });\n }\n\n now = eat.now();\n now.column += intro.length;\n now.offset += intro.length;\n identifier = referenceType === REFERENCE_TYPE_FULL ? identifier : content;\n node = {\n type: type + 'Reference',\n identifier: normalize(identifier)\n };\n\n if (type === T_LINK || type === T_IMAGE) {\n node.referenceType = referenceType;\n }\n\n if (type === T_LINK) {\n exit = self.enterLink();\n node.children = self.tokenizeInline(content, now);\n exit();\n } else if (type === T_IMAGE) {\n node.alt = self.decode.raw(self.unescape(content), now) || null;\n }\n\n return eat(subvalue)(node);\n}","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = removePosition;\n\nfunction removePosition(node, force) {\n visit(node, force ? hard : soft);\n return node;\n}\n\nfunction hard(node) {\n delete node.position;\n}\n\nfunction soft(node) {\n node.position = undefined;\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/code-inline');\n\nmodule.exports = inlineCode;\ninlineCode.locator = locate;\nvar C_TICK = '`';\n/* Tokenise inline code. */\n\nfunction inlineCode(eat, value, silent) {\n var length = value.length;\n var index = 0;\n var queue = '';\n var tickQueue = '';\n var contentQueue;\n var subqueue;\n var count;\n var openingCount;\n var subvalue;\n var character;\n var found;\n var next;\n\n while (index < length) {\n if (value.charAt(index) !== C_TICK) {\n break;\n }\n\n queue += C_TICK;\n index++;\n }\n\n if (!queue) {\n return;\n }\n\n subvalue = queue;\n openingCount = index;\n queue = '';\n next = value.charAt(index);\n count = 0;\n\n while (index < length) {\n character = next;\n next = value.charAt(index + 1);\n\n if (character === C_TICK) {\n count++;\n tickQueue += character;\n } else {\n count = 0;\n queue += character;\n }\n\n if (count && next !== C_TICK) {\n if (count === openingCount) {\n subvalue += queue + tickQueue;\n found = true;\n break;\n }\n\n queue += tickQueue;\n tickQueue = '';\n }\n\n index++;\n }\n\n if (!found) {\n if (openingCount % 2 !== 0) {\n return;\n }\n\n queue = '';\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n contentQueue = '';\n subqueue = '';\n length = queue.length;\n index = -1;\n\n while (++index < length) {\n character = queue.charAt(index);\n\n if (whitespace(character)) {\n subqueue += character;\n continue;\n }\n\n if (subqueue) {\n if (contentQueue) {\n contentQueue += subqueue;\n }\n\n subqueue = '';\n }\n\n contentQueue += character;\n }\n\n return eat(subvalue)({\n type: 'inlineCode',\n value: contentQueue\n });\n}","\"use strict\";\n/**\n * Naive, simple plugin to match inline nodes without attributes\n * This allows say foo, but not foo\n * For proper HTML support, you'll want a different plugin\n **/\n\nvar visit = require('unist-util-visit');\n\nvar type = 'virtualHtml';\nvar selfClosingRe = /^<(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)\\s*\\/?>$/i;\nvar simpleTagRe = /^<(\\/?)([a-z]+)\\s*>$/;\n\nmodule.exports = function (tree) {\n var open;\n var currentParent;\n visit(tree, 'html', function (node, index, parent) {\n if (currentParent !== parent) {\n open = [];\n currentParent = parent;\n }\n\n var selfClosing = getSelfClosing(node);\n\n if (selfClosing) {\n parent.children.splice(index, 1, {\n type: type,\n tag: selfClosing,\n position: node.position\n });\n return true;\n }\n\n var current = getSimpleTag(node, parent);\n\n if (!current) {\n return true;\n }\n\n var matching = findAndPull(open, current.tag);\n\n if (matching) {\n parent.children.splice(index, 0, virtual(current, matching, parent));\n } else if (!current.opening) {\n open.push(current);\n }\n\n return true;\n }, true // Iterate in reverse\n );\n return tree;\n};\n\nfunction findAndPull(open, matchingTag) {\n var i = open.length;\n\n while (i--) {\n if (open[i].tag === matchingTag) {\n return open.splice(i, 1)[0];\n }\n }\n\n return false;\n}\n\nfunction getSimpleTag(node, parent) {\n var match = node.value.match(simpleTagRe);\n return match ? {\n tag: match[2],\n opening: !match[1],\n node: node\n } : false;\n}\n\nfunction getSelfClosing(node) {\n var match = node.value.match(selfClosingRe);\n return match ? match[1] : false;\n}\n\nfunction virtual(fromNode, toNode, parent) {\n var fromIndex = parent.children.indexOf(fromNode.node);\n var toIndex = parent.children.indexOf(toNode.node);\n var extracted = parent.children.splice(fromIndex, toIndex - fromIndex + 1);\n var children = extracted.slice(1, -1);\n return {\n type: type,\n children: children,\n tag: fromNode.tag,\n position: {\n start: fromNode.node.position.start,\n end: toNode.node.position.end,\n indent: []\n }\n };\n}","'use strict';\n\nmodule.exports = interrupt;\n\nfunction interrupt(interruptors, tokenizers, ctx, params) {\n var bools = ['pedantic', 'commonmark'];\n var count = bools.length;\n var length = interruptors.length;\n var index = -1;\n var interruptor;\n var config;\n var fn;\n var offset;\n var bool;\n var ignore;\n\n while (++index < length) {\n interruptor = interruptors[index];\n config = interruptor[1] || {};\n fn = interruptor[0];\n offset = -1;\n ignore = false;\n\n while (++offset < count) {\n bool = bools[offset];\n\n if (config[bool] !== undefined && config[bool] !== ctx.options[bool]) {\n ignore = true;\n break;\n }\n }\n\n if (ignore) {\n continue;\n }\n\n if (tokenizers[fn].apply(ctx, params)) {\n return true;\n }\n }\n\n return false;\n}","'use strict';\n\nvar collapseWhiteSpace = require('collapse-white-space');\n\nmodule.exports = normalize;\n/* Normalize an identifier. Collapses multiple white space\n * characters into a single space, and removes casing. */\n\nfunction normalize(value) {\n return collapseWhiteSpace(value).toLowerCase();\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/delete');\n\nmodule.exports = strikethrough;\nstrikethrough.locator = locate;\nvar C_TILDE = '~';\nvar DOUBLE = '~~';\n\nfunction strikethrough(eat, value, silent) {\n var self = this;\n var character = '';\n var previous = '';\n var preceding = '';\n var subvalue = '';\n var index;\n var length;\n var now;\n\n if (!self.options.gfm || value.charAt(0) !== C_TILDE || value.charAt(1) !== C_TILDE || whitespace(value.charAt(2))) {\n return;\n }\n\n index = 1;\n length = value.length;\n now = eat.now();\n now.column += 2;\n now.offset += 2;\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character === C_TILDE && previous === C_TILDE && (!preceding || !whitespace(preceding))) {\n /* istanbul ignore if - never used (yet) */\n if (silent) {\n return true;\n }\n\n return eat(DOUBLE + subvalue + DOUBLE)({\n type: 'delete',\n children: self.tokenizeInline(subvalue, now)\n });\n }\n\n subvalue += previous;\n preceding = previous;\n previous = character;\n }\n}","'use strict';\n\nmodule.exports = hexadecimal; // Check if the given character code, or the character code at the first\n// character, is hexadecimal.\n\nfunction hexadecimal(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}","'use strict';\n\nmodule.exports = visit;\n\nvar visitParents = require('unist-util-visit-parents');\n\nvar CONTINUE = visitParents.CONTINUE;\nvar SKIP = visitParents.SKIP;\nvar EXIT = visitParents.EXIT;\nvisit.CONTINUE = CONTINUE;\nvisit.SKIP = SKIP;\nvisit.EXIT = EXIT;\n\nfunction visit(tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor;\n visitor = test;\n test = null;\n }\n\n visitParents(tree, test, overload, reverse);\n\n function overload(node, parents) {\n var parent = parents[parents.length - 1];\n var index = parent ? parent.children.indexOf(node) : null;\n return visitor(node, index, parent);\n }\n}","'use strict';\n\nvar alphabetical = require('is-alphabetical');\n\nvar locate = require('../locate/tag');\n\nvar tag = require('../util/html').tag;\n\nmodule.exports = inlineHTML;\ninlineHTML.locator = locate;\nvar EXPRESSION_HTML_LINK_OPEN = /^/i;\n\nfunction inlineHTML(eat, value, silent) {\n var self = this;\n var length = value.length;\n var character;\n var subvalue;\n\n if (value.charAt(0) !== '<' || length < 3) {\n return;\n }\n\n character = value.charAt(1);\n\n if (!alphabetical(character) && character !== '?' && character !== '!' && character !== '/') {\n return;\n }\n\n subvalue = value.match(tag);\n\n if (!subvalue) {\n return;\n }\n /* istanbul ignore if - not used yet. */\n\n\n if (silent) {\n return true;\n }\n\n subvalue = subvalue[0];\n\n if (!self.inLink && EXPRESSION_HTML_LINK_OPEN.test(subvalue)) {\n self.inLink = true;\n } else if (self.inLink && EXPRESSION_HTML_LINK_CLOSE.test(subvalue)) {\n self.inLink = false;\n }\n\n return eat(subvalue)({\n type: 'html',\n value: subvalue\n });\n}","'use strict';\n\nmodule.exports = visitParents;\n\nvar convert = require('unist-util-is/convert');\n\nvar CONTINUE = true;\nvar SKIP = 'skip';\nvar EXIT = false;\nvisitParents.CONTINUE = CONTINUE;\nvisitParents.SKIP = SKIP;\nvisitParents.EXIT = EXIT;\n\nfunction visitParents(tree, test, visitor, reverse) {\n var is;\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor;\n visitor = test;\n test = null;\n }\n\n is = convert(test);\n one(tree, null, []); // Visit a single node.\n\n function one(node, index, parents) {\n var result = [];\n var subresult;\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents));\n\n if (result[0] === EXIT) {\n return result;\n }\n }\n\n if (node.children && result[0] !== SKIP) {\n subresult = toResult(all(node.children, parents.concat(node)));\n return subresult[0] === EXIT ? subresult : result;\n }\n\n return result;\n } // Visit children in `parent`.\n\n\n function all(children, parents) {\n var min = -1;\n var step = reverse ? -1 : 1;\n var index = (reverse ? children.length : min) + step;\n var result;\n\n while (index > min && index < children.length) {\n result = one(children[index], index, parents);\n\n if (result[0] === EXIT) {\n return result;\n }\n\n index = typeof result[1] === 'number' ? result[1] : index + step;\n }\n }\n}\n\nfunction toResult(value) {\n if (value !== null && typeof value === 'object' && 'length' in value) {\n return value;\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value];\n }\n\n return [value];\n}","\"use strict\";\n\nvar HtmlParser = '__RMD_HTML_PARSER__';\nexports.HtmlParser = typeof Symbol === 'undefined' ? HtmlParser : Symbol(HtmlParser);","'use strict';\n\nmodule.exports = visitParents;\n\nvar convert = require('unist-util-is/convert');\n\nvar CONTINUE = true;\nvar SKIP = 'skip';\nvar EXIT = false;\nvisitParents.CONTINUE = CONTINUE;\nvisitParents.SKIP = SKIP;\nvisitParents.EXIT = EXIT;\n\nfunction visitParents(tree, test, visitor, reverse) {\n var is;\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor;\n visitor = test;\n test = null;\n }\n\n is = convert(test);\n one(tree, null, []); // Visit a single node.\n\n function one(node, index, parents) {\n var result = [];\n var subresult;\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents));\n\n if (result[0] === EXIT) {\n return result;\n }\n }\n\n if (node.children && result[0] !== SKIP) {\n subresult = toResult(all(node.children, parents.concat(node)));\n return subresult[0] === EXIT ? subresult : result;\n }\n\n return result;\n } // Visit children in `parent`.\n\n\n function all(children, parents) {\n var min = -1;\n var step = reverse ? -1 : 1;\n var index = (reverse ? children.length : min) + step;\n var result;\n\n while (index > min && index < children.length) {\n result = one(children[index], index, parents);\n\n if (result[0] === EXIT) {\n return result;\n }\n\n index = typeof result[1] === 'number' ? result[1] : index + step;\n }\n }\n}\n\nfunction toResult(value) {\n if (value !== null && typeof value === 'object' && 'length' in value) {\n return value;\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value];\n }\n\n return [value];\n}","'use strict';\n/* eslint-env browser */\n\nvar el;\nvar semicolon = 59; // ';'\n\nmodule.exports = decodeEntity;\n\nfunction decodeEntity(characters) {\n var entity = '&' + characters + ';';\n var char;\n el = el || document.createElement('i');\n el.innerHTML = entity;\n char = el.textContent; // Some entities do not require the closing semicolon (`¬` - for instance),\n // which leads to situations where parsing the assumed entity of ¬it; will\n // result in the string `¬it;`. When we encounter a trailing semicolon after\n // parsing and the entity to decode was not a semicolon (`;`), we can\n // assume that the matching was incomplete\n\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false;\n } // If the decoded string is equal to the input, the entity was not valid\n\n\n return char === entity ? false : char;\n}","'use strict';\n\nmodule.exports = atxHeading;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_HASH = '#';\nvar MAX_ATX_COUNT = 6;\n\nfunction atxHeading(eat, value, silent) {\n var self = this;\n var settings = self.options;\n var length = value.length + 1;\n var index = -1;\n var now = eat.now();\n var subvalue = '';\n var content = '';\n var character;\n var queue;\n var depth;\n /* Eat initial spacing. */\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n index--;\n break;\n }\n\n subvalue += character;\n }\n /* Eat hashes. */\n\n\n depth = 0;\n\n while (++index <= length) {\n character = value.charAt(index);\n\n if (character !== C_HASH) {\n index--;\n break;\n }\n\n subvalue += character;\n depth++;\n }\n\n if (depth > MAX_ATX_COUNT) {\n return;\n }\n\n if (!depth || !settings.pedantic && value.charAt(index + 1) === C_HASH) {\n return;\n }\n\n length = value.length + 1;\n /* Eat intermediate white-space. */\n\n queue = '';\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n index--;\n break;\n }\n\n queue += character;\n }\n /* Exit when not in pedantic mode without spacing. */\n\n\n if (!settings.pedantic && queue.length === 0 && character && character !== C_NEWLINE) {\n return;\n }\n\n if (silent) {\n return true;\n }\n /* Eat content. */\n\n\n subvalue += queue;\n queue = '';\n content = '';\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (!character || character === C_NEWLINE) {\n break;\n }\n\n if (character !== C_SPACE && character !== C_TAB && character !== C_HASH) {\n content += queue + character;\n queue = '';\n continue;\n }\n\n while (character === C_SPACE || character === C_TAB) {\n queue += character;\n character = value.charAt(++index);\n }\n\n while (character === C_HASH) {\n queue += character;\n character = value.charAt(++index);\n }\n\n while (character === C_SPACE || character === C_TAB) {\n queue += character;\n character = value.charAt(++index);\n }\n\n index--;\n }\n\n now.column += subvalue.length;\n now.offset += subvalue.length;\n subvalue += content + queue;\n return eat(subvalue)({\n type: 'heading',\n depth: depth,\n children: self.tokenizeInline(content, now)\n });\n}","'use strict';\n\nvar repeat = require('repeat-string');\n\nvar trim = require('trim-trailing-lines');\n\nmodule.exports = indentedCode;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar CODE_INDENT_COUNT = 4;\nvar CODE_INDENT = repeat(C_SPACE, CODE_INDENT_COUNT);\n/* Tokenise indented code. */\n\nfunction indentedCode(eat, value, silent) {\n var index = -1;\n var length = value.length;\n var subvalue = '';\n var content = '';\n var subvalueQueue = '';\n var contentQueue = '';\n var character;\n var blankQueue;\n var indent;\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (indent) {\n indent = false;\n subvalue += subvalueQueue;\n content += contentQueue;\n subvalueQueue = '';\n contentQueue = '';\n\n if (character === C_NEWLINE) {\n subvalueQueue = character;\n contentQueue = character;\n } else {\n subvalue += character;\n content += character;\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (!character || character === C_NEWLINE) {\n contentQueue = character;\n subvalueQueue = character;\n break;\n }\n\n subvalue += character;\n content += character;\n }\n }\n } else if (character === C_SPACE && value.charAt(index + 1) === character && value.charAt(index + 2) === character && value.charAt(index + 3) === character) {\n subvalueQueue += CODE_INDENT;\n index += 3;\n indent = true;\n } else if (character === C_TAB) {\n subvalueQueue += character;\n indent = true;\n } else {\n blankQueue = '';\n\n while (character === C_TAB || character === C_SPACE) {\n blankQueue += character;\n character = value.charAt(++index);\n }\n\n if (character !== C_NEWLINE) {\n break;\n }\n\n subvalueQueue += blankQueue + character;\n contentQueue += character;\n }\n }\n\n if (content) {\n if (silent) {\n return true;\n }\n\n return eat(subvalue)({\n type: 'code',\n lang: null,\n value: trim(content)\n });\n }\n}","'use strict';\n\nmodule.exports = setextHeading;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_EQUALS = '=';\nvar C_DASH = '-';\nvar MAX_HEADING_INDENT = 3;\n/* Map of characters which can be used to mark setext\n * headers, mapping to their corresponding depth. */\n\nvar SETEXT_MARKERS = {};\nSETEXT_MARKERS[C_EQUALS] = 1;\nSETEXT_MARKERS[C_DASH] = 2;\n\nfunction setextHeading(eat, value, silent) {\n var self = this;\n var now = eat.now();\n var length = value.length;\n var index = -1;\n var subvalue = '';\n var content;\n var queue;\n var character;\n var marker;\n var depth;\n /* Eat initial indentation. */\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE || index >= MAX_HEADING_INDENT) {\n index--;\n break;\n }\n\n subvalue += character;\n }\n /* Eat content. */\n\n\n content = '';\n queue = '';\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character === C_NEWLINE) {\n index--;\n break;\n }\n\n if (character === C_SPACE || character === C_TAB) {\n queue += character;\n } else {\n content += queue + character;\n queue = '';\n }\n }\n\n now.column += subvalue.length;\n now.offset += subvalue.length;\n subvalue += content + queue;\n /* Ensure the content is followed by a newline and a\n * valid marker. */\n\n character = value.charAt(++index);\n marker = value.charAt(++index);\n\n if (character !== C_NEWLINE || !SETEXT_MARKERS[marker]) {\n return;\n }\n\n subvalue += character;\n /* Eat Setext-line. */\n\n queue = marker;\n depth = SETEXT_MARKERS[marker];\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== marker) {\n if (character !== C_NEWLINE) {\n return;\n }\n\n index--;\n break;\n }\n\n queue += character;\n }\n\n if (silent) {\n return true;\n }\n\n return eat(subvalue + queue)({\n type: 'heading',\n depth: depth,\n children: self.tokenizeInline(content, now)\n });\n}","'use strict';\n\nvar locate = require('../locate/break');\n\nmodule.exports = hardBreak;\nhardBreak.locator = locate;\nvar MIN_BREAK_LENGTH = 2;\n\nfunction hardBreak(eat, value, silent) {\n var length = value.length;\n var index = -1;\n var queue = '';\n var character;\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character === '\\n') {\n if (index < MIN_BREAK_LENGTH) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n queue += character;\n return eat(queue)({\n type: 'break'\n });\n }\n\n if (character !== ' ') {\n return;\n }\n\n queue += character;\n }\n}","'use strict';\n\nvar locate = require('../locate/escape');\n\nmodule.exports = escape;\nescape.locator = locate;\n\nfunction escape(eat, value, silent) {\n var self = this;\n var character;\n var node;\n\n if (value.charAt(0) === '\\\\') {\n character = value.charAt(1);\n\n if (self.escape.indexOf(character) !== -1) {\n /* istanbul ignore if - never used (yet) */\n if (silent) {\n return true;\n }\n\n if (character === '\\n') {\n node = {\n type: 'break'\n };\n } else {\n node = {\n type: 'text',\n value: character\n };\n }\n\n return eat('\\\\' + character)(node);\n }\n }\n}","'use strict';\n\nmodule.exports = wordCharacter;\nvar fromCode = String.fromCharCode;\nvar re = /\\w/; // Check if the given character code, or the character code at the first\n// character, is a word character.\n\nfunction wordCharacter(character) {\n return re.test(typeof character === 'number' ? fromCode(character) : character.charAt(0));\n}","import styled from \"styled-components\"\n\nexport const Wrap = styled.div<{ responsiveTopNudge }>`\n display: flex;\n justify-content: center;\n padding: 60px 0;\n @media (max-width: 960px) {\n padding: ${({ responsiveTopNudge }) => responsiveTopNudge || 60}px 0 60px;\n }\n`\nexport const Title = styled.h1`\n font-family: Font-Cond-Bold;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n text-transform: uppercase;\n position: relative;\n font-size: 30px;\n padding: 0 40px;\n text-align: center;\n line-height: 32px;\n svg:first-child {\n left: 0;\n position: absolute;\n top:50%;\n transform: translateY(-50%);\n }\n svg:last-child {\n right: 0;\n position: absolute;\n top:50%;\n transform: translateY(-50%);\n }\n`\n","import * as React from \"react\"\nimport { FunctionComponent } from \"react\"\nimport { Title, Wrap } from \"./MainTitle.css\"\nimport StarIcon from \"@material-ui/icons/Star\"\nexport type Props = {\n responsiveTopNudge?:number\n}\nexport type Functions = {}\n\nexport type AllProps = Props & Functions\n\nexport const MainTitle: FunctionComponent = ({ children,responsiveTopNudge }) => (\n \n \n <StarIcon style={{ color: \"#F5A206\", fontSize: \"18px\" }} />\n {children}\n <StarIcon style={{ color: \"#F5A206\", fontSize: \"18px\" }} />\n \n \n)\n\nexport default MainTitle\n","'use strict';\n\nvar trim = require('trim');\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/strong');\n\nmodule.exports = strong;\nstrong.locator = locate;\nvar C_ASTERISK = '*';\nvar C_UNDERSCORE = '_';\n\nfunction strong(eat, value, silent) {\n var self = this;\n var index = 0;\n var character = value.charAt(index);\n var now;\n var pedantic;\n var marker;\n var queue;\n var subvalue;\n var length;\n var prev;\n\n if (character !== C_ASTERISK && character !== C_UNDERSCORE || value.charAt(++index) !== character) {\n return;\n }\n\n pedantic = self.options.pedantic;\n marker = character;\n subvalue = marker + marker;\n length = value.length;\n index++;\n queue = '';\n character = '';\n\n if (pedantic && whitespace(value.charAt(index))) {\n return;\n }\n\n while (index < length) {\n prev = character;\n character = value.charAt(index);\n\n if (character === marker && value.charAt(index + 1) === marker && (!pedantic || !whitespace(prev))) {\n character = value.charAt(index + 2);\n\n if (character !== marker) {\n if (!trim(queue)) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n now = eat.now();\n now.column += 2;\n now.offset += 2;\n return eat(subvalue + queue + subvalue)({\n type: 'strong',\n children: self.tokenizeInline(queue, now)\n });\n }\n }\n\n if (!pedantic && character === '\\\\') {\n queue += character;\n character = value.charAt(++index);\n }\n\n queue += character;\n index++;\n }\n}","'use strict';\n\nvar xtend = require('xtend');\n\nvar escapes = require('markdown-escapes');\n\nvar defaults = require('./defaults');\n\nmodule.exports = setOptions;\n\nfunction setOptions(options) {\n var self = this;\n var current = self.options;\n var key;\n var value;\n\n if (options == null) {\n options = {};\n } else if (typeof options === 'object') {\n options = xtend(options);\n } else {\n throw new Error('Invalid value `' + options + '` ' + 'for setting `options`');\n }\n\n for (key in defaults) {\n value = options[key];\n\n if (value == null) {\n value = current[key];\n }\n\n if (key !== 'blocks' && typeof value !== 'boolean' || key === 'blocks' && typeof value !== 'object') {\n throw new Error('Invalid value `' + value + '` for setting `options.' + key + '`');\n }\n\n options[key] = value;\n }\n\n self.options = options;\n self.escape = escapes(options);\n return self;\n}","'use strict';\n\nmodule.exports = thematicBreak;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_ASTERISK = '*';\nvar C_UNDERSCORE = '_';\nvar C_DASH = '-';\nvar THEMATIC_BREAK_MARKER_COUNT = 3;\n\nfunction thematicBreak(eat, value, silent) {\n var index = -1;\n var length = value.length + 1;\n var subvalue = '';\n var character;\n var marker;\n var markerCount;\n var queue;\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE) {\n break;\n }\n\n subvalue += character;\n }\n\n if (character !== C_ASTERISK && character !== C_DASH && character !== C_UNDERSCORE) {\n return;\n }\n\n marker = character;\n subvalue += character;\n markerCount = 1;\n queue = '';\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character === marker) {\n markerCount++;\n subvalue += queue + marker;\n queue = '';\n } else if (character === C_SPACE) {\n queue += character;\n } else if (markerCount >= THEMATIC_BREAK_MARKER_COUNT && (!character || character === C_NEWLINE)) {\n subvalue += queue;\n\n if (silent) {\n return true;\n }\n\n return eat(subvalue)({\n type: 'thematicBreak'\n });\n } else {\n return;\n }\n }\n}","'use strict';\n\nvar trim = require('trim');\n\nvar interrupt = require('../util/interrupt');\n\nmodule.exports = blockquote;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_GT = '>';\n/* Tokenise a blockquote. */\n\nfunction blockquote(eat, value, silent) {\n var self = this;\n var offsets = self.offset;\n var tokenizers = self.blockTokenizers;\n var interruptors = self.interruptBlockquote;\n var now = eat.now();\n var currentLine = now.line;\n var length = value.length;\n var values = [];\n var contents = [];\n var indents = [];\n var add;\n var index = 0;\n var character;\n var rest;\n var nextIndex;\n var content;\n var line;\n var startIndex;\n var prefixed;\n var exit;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n index++;\n }\n\n if (value.charAt(index) !== C_GT) {\n return;\n }\n\n if (silent) {\n return true;\n }\n\n index = 0;\n\n while (index < length) {\n nextIndex = value.indexOf(C_NEWLINE, index);\n startIndex = index;\n prefixed = false;\n\n if (nextIndex === -1) {\n nextIndex = length;\n }\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n index++;\n }\n\n if (value.charAt(index) === C_GT) {\n index++;\n prefixed = true;\n\n if (value.charAt(index) === C_SPACE) {\n index++;\n }\n } else {\n index = startIndex;\n }\n\n content = value.slice(index, nextIndex);\n\n if (!prefixed && !trim(content)) {\n index = startIndex;\n break;\n }\n\n if (!prefixed) {\n rest = value.slice(index);\n /* Check if the following code contains a possible\n * block. */\n\n if (interrupt(interruptors, tokenizers, self, [eat, rest, true])) {\n break;\n }\n }\n\n line = startIndex === index ? content : value.slice(startIndex, nextIndex);\n indents.push(index - startIndex);\n values.push(line);\n contents.push(content);\n index = nextIndex + 1;\n }\n\n index = -1;\n length = indents.length;\n add = eat(values.join(C_NEWLINE));\n\n while (++index < length) {\n offsets[currentLine] = (offsets[currentLine] || 0) + indents[index];\n currentLine++;\n }\n\n exit = self.enterBlock();\n contents = self.tokenizeBlock(contents.join(C_NEWLINE), now);\n exit();\n return add({\n type: 'blockquote',\n children: contents\n });\n}","'use strict';\n\nvar openCloseTag = require('../util/html').openCloseTag;\n\nmodule.exports = blockHTML;\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_NEWLINE = '\\n';\nvar C_LT = '<';\n\nfunction blockHTML(eat, value, silent) {\n var self = this;\n var blocks = self.options.blocks;\n var length = value.length;\n var index = 0;\n var next;\n var line;\n var offset;\n var character;\n var count;\n var sequence;\n var subvalue;\n var sequences = [[/^<(script|pre|style)(?=(\\s|>|$))/i, /<\\/(script|pre|style)>/i, true], [/^/, true], [/^<\\?/, /\\?>/, true], [/^/, true], [/^/, true], [new RegExp('^|$))', 'i'), /^$/, true], [new RegExp(openCloseTag.source + '\\\\s*$'), /^$/, false]];\n /* Eat initial spacing. */\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE) {\n break;\n }\n\n index++;\n }\n\n if (value.charAt(index) !== C_LT) {\n return;\n }\n\n next = value.indexOf(C_NEWLINE, index + 1);\n next = next === -1 ? length : next;\n line = value.slice(index, next);\n offset = -1;\n count = sequences.length;\n\n while (++offset < count) {\n if (sequences[offset][0].test(line)) {\n sequence = sequences[offset];\n break;\n }\n }\n\n if (!sequence) {\n return;\n }\n\n if (silent) {\n return sequence[2];\n }\n\n index = next;\n\n if (!sequence[1].test(line)) {\n while (index < length) {\n next = value.indexOf(C_NEWLINE, index + 1);\n next = next === -1 ? length : next;\n line = value.slice(index + 1, next);\n\n if (sequence[1].test(line)) {\n if (line) {\n index = next;\n }\n\n break;\n }\n\n index = next;\n }\n }\n\n subvalue = value.slice(0, index);\n return eat(subvalue)({\n type: 'html',\n value: subvalue\n });\n}","\"use strict\";\n\nvar visit = require('unist-util-visit');\n\nexports.ofType = function (types, mode) {\n return function (node) {\n types.forEach(function (type) {\n return visit(node, type, disallow, true);\n });\n return node;\n };\n\n function disallow(node, index, parent) {\n if (parent) {\n untangle(node, index, parent, mode);\n }\n }\n};\n\nexports.ifNotMatch = function (allowNode, mode) {\n return function (node) {\n visit(node, disallow, true);\n return node;\n };\n\n function disallow(node, index, parent) {\n if (parent && !allowNode(node, index, parent)) {\n untangle(node, index, parent, mode);\n }\n }\n};\n\nfunction untangle(node, index, parent, mode) {\n if (mode === 'remove') {\n parent.children.splice(index, 1);\n } else if (mode === 'unwrap') {\n var args = [index, 1];\n\n if (node.children) {\n args = args.concat(node.children);\n }\n\n Array.prototype.splice.apply(parent.children, args);\n }\n}","'use strict';\n\nvar stringify = require('unist-util-stringify-position');\n\nmodule.exports = VMessage; // Inherit from `Error#`.\n\nfunction VMessagePrototype() {}\n\nVMessagePrototype.prototype = Error.prototype;\nVMessage.prototype = new VMessagePrototype(); // Message properties.\n\nvar proto = VMessage.prototype;\nproto.file = '';\nproto.name = '';\nproto.reason = '';\nproto.message = '';\nproto.stack = '';\nproto.fatal = null;\nproto.column = null;\nproto.line = null; // Construct a new VMessage.\n//\n// Note: We cannot invoke `Error` on the created context, as that adds readonly\n// `line` and `column` attributes on Safari 9, thus throwing and failing the\n// data.\n\nfunction VMessage(reason, position, origin) {\n var parts;\n var range;\n var location;\n\n if (typeof position === 'string') {\n origin = position;\n position = null;\n }\n\n parts = parseOrigin(origin);\n range = stringify(position) || '1:1';\n location = {\n start: {\n line: null,\n column: null\n },\n end: {\n line: null,\n column: null\n }\n }; // Node.\n\n if (position && position.position) {\n position = position.position;\n }\n\n if (position) {\n // Position.\n if (position.start) {\n location = position;\n position = position.start;\n } else {\n // Point.\n location.start = position;\n }\n }\n\n if (reason.stack) {\n this.stack = reason.stack;\n reason = reason.message;\n }\n\n this.message = reason;\n this.name = range;\n this.reason = reason;\n this.line = position ? position.line : null;\n this.column = position ? position.column : null;\n this.location = location;\n this.source = parts[0];\n this.ruleId = parts[1];\n}\n\nfunction parseOrigin(origin) {\n var result = [null, null];\n var index;\n\n if (typeof origin === 'string') {\n index = origin.indexOf(':');\n\n if (index === -1) {\n result[1] = origin;\n } else {\n result[0] = origin.slice(0, index);\n result[1] = origin.slice(index + 1);\n }\n }\n\n return result;\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar normalize = require('../util/normalize');\n\nmodule.exports = definition;\ndefinition.notInList = true;\ndefinition.notInBlock = true;\nvar C_DOUBLE_QUOTE = '\"';\nvar C_SINGLE_QUOTE = '\\'';\nvar C_BACKSLASH = '\\\\';\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_BRACKET_OPEN = '[';\nvar C_BRACKET_CLOSE = ']';\nvar C_PAREN_OPEN = '(';\nvar C_PAREN_CLOSE = ')';\nvar C_COLON = ':';\nvar C_LT = '<';\nvar C_GT = '>';\n\nfunction definition(eat, value, silent) {\n var self = this;\n var commonmark = self.options.commonmark;\n var index = 0;\n var length = value.length;\n var subvalue = '';\n var beforeURL;\n var beforeTitle;\n var queue;\n var character;\n var test;\n var identifier;\n var url;\n var title;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (character !== C_BRACKET_OPEN) {\n return;\n }\n\n index++;\n subvalue += character;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_BRACKET_CLOSE) {\n break;\n } else if (character === C_BACKSLASH) {\n queue += character;\n index++;\n character = value.charAt(index);\n }\n\n queue += character;\n index++;\n }\n\n if (!queue || value.charAt(index) !== C_BRACKET_CLOSE || value.charAt(index + 1) !== C_COLON) {\n return;\n }\n\n identifier = queue;\n subvalue += queue + C_BRACKET_CLOSE + C_COLON;\n index = subvalue.length;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE && character !== C_NEWLINE) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n character = value.charAt(index);\n queue = '';\n beforeURL = subvalue;\n\n if (character === C_LT) {\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!isEnclosedURLCharacter(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (character === isEnclosedURLCharacter.delimiter) {\n subvalue += C_LT + queue + character;\n index++;\n } else {\n if (commonmark) {\n return;\n }\n\n index -= queue.length + 1;\n queue = '';\n }\n }\n\n if (!queue) {\n while (index < length) {\n character = value.charAt(index);\n\n if (!isUnclosedURLCharacter(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n subvalue += queue;\n }\n\n if (!queue) {\n return;\n }\n\n url = queue;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE && character !== C_NEWLINE) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n test = null;\n\n if (character === C_DOUBLE_QUOTE) {\n test = C_DOUBLE_QUOTE;\n } else if (character === C_SINGLE_QUOTE) {\n test = C_SINGLE_QUOTE;\n } else if (character === C_PAREN_OPEN) {\n test = C_PAREN_CLOSE;\n }\n\n if (!test) {\n queue = '';\n index = subvalue.length;\n } else if (queue) {\n subvalue += queue + character;\n index = subvalue.length;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === test) {\n break;\n }\n\n if (character === C_NEWLINE) {\n index++;\n character = value.charAt(index);\n\n if (character === C_NEWLINE || character === test) {\n return;\n }\n\n queue += C_NEWLINE;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (character !== test) {\n return;\n }\n\n beforeTitle = subvalue;\n subvalue += queue + character;\n index++;\n title = queue;\n queue = '';\n } else {\n return;\n }\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (!character || character === C_NEWLINE) {\n if (silent) {\n return true;\n }\n\n beforeURL = eat(beforeURL).test().end;\n url = self.decode.raw(self.unescape(url), beforeURL, {\n nonTerminated: false\n });\n\n if (title) {\n beforeTitle = eat(beforeTitle).test().end;\n title = self.decode.raw(self.unescape(title), beforeTitle);\n }\n\n return eat(subvalue)({\n type: 'definition',\n identifier: normalize(identifier),\n title: title || null,\n url: url\n });\n }\n}\n/* Check if `character` can be inside an enclosed URI. */\n\n\nfunction isEnclosedURLCharacter(character) {\n return character !== C_GT && character !== C_BRACKET_OPEN && character !== C_BRACKET_CLOSE;\n}\n\nisEnclosedURLCharacter.delimiter = C_GT;\n/* Check if `character` can be inside an unclosed URI. */\n\nfunction isUnclosedURLCharacter(character) {\n return character !== C_BRACKET_OPEN && character !== C_BRACKET_CLOSE && !whitespace(character);\n}","'use strict';\n\nvar unherit = require('unherit');\n\nvar xtend = require('xtend');\n\nvar Parser = require('./lib/parser.js');\n\nmodule.exports = parse;\nparse.Parser = Parser;\n\nfunction parse(options) {\n var Local = unherit(Parser);\n Local.prototype.options = xtend(Local.prototype.options, this.data('settings'), options);\n this.Parser = Local;\n}","'use strict';\n\nvar VMessage = require('vfile-message');\n\nvar VFile = require('./core.js');\n\nmodule.exports = VFile;\nvar proto = VFile.prototype;\nproto.message = message;\nproto.info = info;\nproto.fail = fail;\n/* Slight backwards compatibility. Remove in the future. */\n\nproto.warn = message;\n/* Create a message with `reason` at `position`.\n * When an error is passed in as `reason`, copies the stack. */\n\nfunction message(reason, position, origin) {\n var filePath = this.path;\n var message = new VMessage(reason, position, origin);\n\n if (filePath) {\n message.name = filePath + ':' + message.name;\n message.file = filePath;\n }\n\n message.fatal = false;\n this.messages.push(message);\n return message;\n}\n/* Fail. Creates a vmessage, associates it with the file,\n * and throws it. */\n\n\nfunction fail() {\n var message = this.message.apply(this, arguments);\n message.fatal = true;\n throw message;\n}\n/* Info. Creates a vmessage, associates it with the file,\n * and marks the fatality as null. */\n\n\nfunction info() {\n var message = this.message.apply(this, arguments);\n message.fatal = null;\n return message;\n}","'use strict';\n\nmodule.exports = indentation;\n/* Map of characters, and their column length,\n * which can be used as indentation. */\n\nvar characters = {\n ' ': 1,\n '\\t': 4\n};\n/* Gets indentation information for a line. */\n\nfunction indentation(value) {\n var index = 0;\n var indent = 0;\n var character = value.charAt(index);\n var stops = {};\n var size;\n\n while (character in characters) {\n size = characters[character];\n indent += size;\n\n if (size > 1) {\n indent = Math.floor(indent / size) * size;\n }\n\n stops[indent] = index;\n character = value.charAt(++index);\n }\n\n return {\n indent: indent,\n stops: stops\n };\n}","'use strict';\n\nvar trim = require('trim');\n\nvar repeat = require('repeat-string');\n\nvar getIndent = require('./get-indentation');\n\nmodule.exports = indentation;\nvar C_SPACE = ' ';\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\n/* Remove the minimum indent from every line in `value`.\n * Supports both tab, spaced, and mixed indentation (as\n * well as possible). */\n\nfunction indentation(value, maximum) {\n var values = value.split(C_NEWLINE);\n var position = values.length + 1;\n var minIndent = Infinity;\n var matrix = [];\n var index;\n var indentation;\n var stops;\n var padding;\n values.unshift(repeat(C_SPACE, maximum) + '!');\n\n while (position--) {\n indentation = getIndent(values[position]);\n matrix[position] = indentation.stops;\n\n if (trim(values[position]).length === 0) {\n continue;\n }\n\n if (indentation.indent) {\n if (indentation.indent > 0 && indentation.indent < minIndent) {\n minIndent = indentation.indent;\n }\n } else {\n minIndent = Infinity;\n break;\n }\n }\n\n if (minIndent !== Infinity) {\n position = values.length;\n\n while (position--) {\n stops = matrix[position];\n index = minIndent;\n\n while (index && !(index in stops)) {\n index--;\n }\n\n if (trim(values[position]).length !== 0 && minIndent && index !== minIndent) {\n padding = C_TAB;\n } else {\n padding = '';\n }\n\n values[position] = padding + values[position].slice(index in stops ? stops[index] + 1 : 0);\n }\n }\n\n values.shift();\n return values.join(C_NEWLINE);\n}","var visitWithParents = require('unist-util-visit-parents');\n\nfunction addListMetadata() {\n return function (ast) {\n visitWithParents(ast, 'list', function (listNode, parents) {\n var depth = 0,\n i,\n n;\n\n for (i = 0, n = parents.length; i < n; i++) {\n if (parents[i].type === 'list') depth += 1;\n }\n\n for (i = 0, n = listNode.children.length; i < n; i++) {\n var child = listNode.children[i];\n child.index = i;\n child.ordered = listNode.ordered;\n }\n\n listNode.depth = depth;\n });\n return ast;\n };\n}\n\nmodule.exports = addListMetadata;","'use strict';\n\nvar wrap = require('./wrap.js');\n\nmodule.exports = trough;\ntrough.wrap = wrap;\nvar slice = [].slice; // Create new middleware.\n\nfunction trough() {\n var fns = [];\n var middleware = {};\n middleware.run = run;\n middleware.use = use;\n return middleware; // Run `fns`. Last argument must be a completion handler.\n\n function run() {\n var index = -1;\n var input = slice.call(arguments, 0, -1);\n var done = arguments[arguments.length - 1];\n\n if (typeof done !== 'function') {\n throw new Error('Expected function as last argument, not ' + done);\n }\n\n next.apply(null, [null].concat(input)); // Run the next `fn`, if any.\n\n function next(err) {\n var fn = fns[++index];\n var params = slice.call(arguments, 0);\n var values = params.slice(1);\n var length = input.length;\n var pos = -1;\n\n if (err) {\n done(err);\n return;\n } // Copy non-nully input into values.\n\n\n while (++pos < length) {\n if (values[pos] === null || values[pos] === undefined) {\n values[pos] = input[pos];\n }\n }\n\n input = values; // Next or done.\n\n if (fn) {\n wrap(fn, next).apply(null, input);\n } else {\n done.apply(null, [null].concat(input));\n }\n }\n } // Add `fn` to the list.\n\n\n function use(fn) {\n if (typeof fn !== 'function') {\n throw new Error('Expected `fn` to be a function, not ' + fn);\n }\n\n fns.push(fn);\n return middleware;\n }\n}"],"sourceRoot":""}