(this["webpackJsonpPlugin"] = this["webpackJsonpPlugin"] || []).push([[8,15,37,91],{

/***/ 870:
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

/**
 * Link to the project's GitHub page:
 * https://github.com/pickhardt/coffeescript-codemirror-mode
 */
(function (mod) {
  if (( false ? undefined : _typeof(exports)) == "object" && ( false ? undefined : _typeof(module)) == "object") // CommonJS
    mod(__webpack_require__(266));else if (true) // AMD
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(266)], __WEBPACK_AMD_DEFINE_FACTORY__ = (mod),
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));else // Plain browser env
    {}
})(function (CodeMirror) {
  "use strict";

  CodeMirror.defineMode("coffeescript", function (conf, parserConf) {
    var ERRORCLASS = "error";

    function wordRegexp(words) {
      return new RegExp("^((" + words.join(")|(") + "))\\b");
    }

    var operators = /^(?:->|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?|(or|and|\|\||&&|\?)=)/;
    var delimiters = /^(?:[()\[\]{},:`=;]|\.\.?\.?)/;
    var identifiers = /^[_A-Za-z$][_A-Za-z$0-9]*/;
    var atProp = /^@[_A-Za-z$][_A-Za-z$0-9]*/;
    var wordOperators = wordRegexp(["and", "or", "not", "is", "isnt", "in", "instanceof", "typeof"]);
    var indentKeywords = ["for", "while", "loop", "if", "unless", "else", "switch", "try", "catch", "finally", "class"];
    var commonKeywords = ["break", "by", "continue", "debugger", "delete", "do", "in", "of", "new", "return", "then", "this", "@", "throw", "when", "until", "extends"];
    var keywords = wordRegexp(indentKeywords.concat(commonKeywords));
    indentKeywords = wordRegexp(indentKeywords);
    var stringPrefixes = /^('{3}|\"{3}|['\"])/;
    var regexPrefixes = /^(\/{3}|\/)/;
    var commonConstants = ["Infinity", "NaN", "undefined", "null", "true", "false", "on", "off", "yes", "no"];
    var constants = wordRegexp(commonConstants); // Tokenizers

    function tokenBase(stream, state) {
      // Handle scope changes
      if (stream.sol()) {
        if (state.scope.align === null) state.scope.align = false;
        var scopeOffset = state.scope.offset;

        if (stream.eatSpace()) {
          var lineOffset = stream.indentation();

          if (lineOffset > scopeOffset && state.scope.type == "coffee") {
            return "indent";
          } else if (lineOffset < scopeOffset) {
            return "dedent";
          }

          return null;
        } else {
          if (scopeOffset > 0) {
            dedent(stream, state);
          }
        }
      }

      if (stream.eatSpace()) {
        return null;
      }

      var ch = stream.peek(); // Handle docco title comment (single line)

      if (stream.match("####")) {
        stream.skipToEnd();
        return "comment";
      } // Handle multi line comments


      if (stream.match("###")) {
        state.tokenize = longComment;
        return state.tokenize(stream, state);
      } // Single line comment


      if (ch === "#") {
        stream.skipToEnd();
        return "comment";
      } // Handle number literals


      if (stream.match(/^-?[0-9\.]/, false)) {
        var floatLiteral = false; // Floats

        if (stream.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)) {
          floatLiteral = true;
        }

        if (stream.match(/^-?\d+\.\d*/)) {
          floatLiteral = true;
        }

        if (stream.match(/^-?\.\d+/)) {
          floatLiteral = true;
        }

        if (floatLiteral) {
          // prevent from getting extra . on 1..
          if (stream.peek() == ".") {
            stream.backUp(1);
          }

          return "number";
        } // Integers


        var intLiteral = false; // Hex

        if (stream.match(/^-?0x[0-9a-f]+/i)) {
          intLiteral = true;
        } // Decimal


        if (stream.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)) {
          intLiteral = true;
        } // Zero by itself with no other piece of number.


        if (stream.match(/^-?0(?![\dx])/i)) {
          intLiteral = true;
        }

        if (intLiteral) {
          return "number";
        }
      } // Handle strings


      if (stream.match(stringPrefixes)) {
        state.tokenize = tokenFactory(stream.current(), false, "string");
        return state.tokenize(stream, state);
      } // Handle regex literals


      if (stream.match(regexPrefixes)) {
        if (stream.current() != "/" || stream.match(/^.*\//, false)) {
          // prevent highlight of division
          state.tokenize = tokenFactory(stream.current(), true, "string-2");
          return state.tokenize(stream, state);
        } else {
          stream.backUp(1);
        }
      } // Handle operators and delimiters


      if (stream.match(operators) || stream.match(wordOperators)) {
        return "operator";
      }

      if (stream.match(delimiters)) {
        return "punctuation";
      }

      if (stream.match(constants)) {
        return "atom";
      }

      if (stream.match(atProp) || state.prop && stream.match(identifiers)) {
        return "property";
      }

      if (stream.match(keywords)) {
        return "keyword";
      }

      if (stream.match(identifiers)) {
        return "variable";
      } // Handle non-detected items


      stream.next();
      return ERRORCLASS;
    }

    function tokenFactory(delimiter, singleline, outclass) {
      return function (stream, state) {
        while (!stream.eol()) {
          stream.eatWhile(/[^'"\/\\]/);

          if (stream.eat("\\")) {
            stream.next();

            if (singleline && stream.eol()) {
              return outclass;
            }
          } else if (stream.match(delimiter)) {
            state.tokenize = tokenBase;
            return outclass;
          } else {
            stream.eat(/['"\/]/);
          }
        }

        if (singleline) {
          if (parserConf.singleLineStringErrors) {
            outclass = ERRORCLASS;
          } else {
            state.tokenize = tokenBase;
          }
        }

        return outclass;
      };
    }

    function longComment(stream, state) {
      while (!stream.eol()) {
        stream.eatWhile(/[^#]/);

        if (stream.match("###")) {
          state.tokenize = tokenBase;
          break;
        }

        stream.eatWhile("#");
      }

      return "comment";
    }

    function indent(stream, state, type) {
      type = type || "coffee";
      var offset = 0,
          align = false,
          alignOffset = null;

      for (var scope = state.scope; scope; scope = scope.prev) {
        if (scope.type === "coffee" || scope.type == "}") {
          offset = scope.offset + conf.indentUnit;
          break;
        }
      }

      if (type !== "coffee") {
        align = null;
        alignOffset = stream.column() + stream.current().length;
      } else if (state.scope.align) {
        state.scope.align = false;
      }

      state.scope = {
        offset: offset,
        type: type,
        prev: state.scope,
        align: align,
        alignOffset: alignOffset
      };
    }

    function dedent(stream, state) {
      if (!state.scope.prev) return;

      if (state.scope.type === "coffee") {
        var _indent = stream.indentation();

        var matched = false;

        for (var scope = state.scope; scope; scope = scope.prev) {
          if (_indent === scope.offset) {
            matched = true;
            break;
          }
        }

        if (!matched) {
          return true;
        }

        while (state.scope.prev && state.scope.offset !== _indent) {
          state.scope = state.scope.prev;
        }

        return false;
      } else {
        state.scope = state.scope.prev;
        return false;
      }
    }

    function tokenLexer(stream, state) {
      var style = state.tokenize(stream, state);
      var current = stream.current(); // Handle scope changes.

      if (current === "return") {
        state.dedent = true;
      }

      if ((current === "->" || current === "=>") && stream.eol() || style === "indent") {
        indent(stream, state);
      }

      var delimiter_index = "[({".indexOf(current);

      if (delimiter_index !== -1) {
        indent(stream, state, "])}".slice(delimiter_index, delimiter_index + 1));
      }

      if (indentKeywords.exec(current)) {
        indent(stream, state);
      }

      if (current == "then") {
        dedent(stream, state);
      }

      if (style === "dedent") {
        if (dedent(stream, state)) {
          return ERRORCLASS;
        }
      }

      delimiter_index = "])}".indexOf(current);

      if (delimiter_index !== -1) {
        while (state.scope.type == "coffee" && state.scope.prev) {
          state.scope = state.scope.prev;
        }

        if (state.scope.type == current) state.scope = state.scope.prev;
      }

      if (state.dedent && stream.eol()) {
        if (state.scope.type == "coffee" && state.scope.prev) state.scope = state.scope.prev;
        state.dedent = false;
      }

      return style;
    }

    var external = {
      startState: function startState(basecolumn) {
        return {
          tokenize: tokenBase,
          scope: {
            offset: basecolumn || 0,
            type: "coffee",
            prev: null,
            align: false
          },
          prop: false,
          dedent: 0
        };
      },
      token: function token(stream, state) {
        var fillAlign = state.scope.align === null && state.scope;
        if (fillAlign && stream.sol()) fillAlign.align = false;
        var style = tokenLexer(stream, state);

        if (style && style != "comment") {
          if (fillAlign) fillAlign.align = true;
          state.prop = style == "punctuation" && stream.current() == ".";
        }

        return style;
      },
      indent: function indent(state, text) {
        if (state.tokenize != tokenBase) return 0;
        var scope = state.scope;
        var closer = text && "])}".indexOf(text.charAt(0)) > -1;
        if (closer) while (scope.type == "coffee" && scope.prev) {
          scope = scope.prev;
        }
        var closes = closer && scope.type === text.charAt(0);
        if (scope.align) return scope.alignOffset - (closes ? 1 : 0);else return (closes ? scope.prev : scope).offset;
      },
      lineComment: "#",
      fold: "indent"
    };
    return external;
  }); // IANA registered media type
  // https://www.iana.org/assignments/media-types/

  CodeMirror.defineMIME("application/vnd.coffeescript", "coffeescript");
  CodeMirror.defineMIME("text/x-coffeescript", "coffeescript");
  CodeMirror.defineMIME("text/coffeescript", "coffeescript");
});
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(102)(module)))

/***/ }),

/***/ 871:
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE
(function (mod) {
  if (( false ? undefined : _typeof(exports)) == "object" && ( false ? undefined : _typeof(module)) == "object") // CommonJS
    mod(__webpack_require__(266), __webpack_require__(985), __webpack_require__(987));else if (true) // AMD
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(266), __webpack_require__(985), __webpack_require__(987)], __WEBPACK_AMD_DEFINE_FACTORY__ = (mod),
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));else // Plain browser env
    {}
})(function (CodeMirror) {
  "use strict";

  CodeMirror.defineSimpleMode("handlebars-tags", {
    start: [{
      regex: /\{\{\{/,
      push: "handlebars_raw",
      token: "tag"
    }, {
      regex: /\{\{!--/,
      push: "dash_comment",
      token: "comment"
    }, {
      regex: /\{\{!/,
      push: "comment",
      token: "comment"
    }, {
      regex: /\{\{/,
      push: "handlebars",
      token: "tag"
    }],
    handlebars_raw: [{
      regex: /\}\}\}/,
      pop: true,
      token: "tag"
    }],
    handlebars: [{
      regex: /\}\}/,
      pop: true,
      token: "tag"
    }, // Double and single quotes
    {
      regex: /"(?:[^\\"]|\\.)*"?/,
      token: "string"
    }, {
      regex: /'(?:[^\\']|\\.)*'?/,
      token: "string"
    }, // Handlebars keywords
    {
      regex: />|[#\/]([A-Za-z_]\w*)/,
      token: "keyword"
    }, {
      regex: /(?:else|this)\b/,
      token: "keyword"
    }, // Numeral
    {
      regex: /\d+/i,
      token: "number"
    }, // Atoms like = and .
    {
      regex: /=|~|@|true|false/,
      token: "atom"
    }, // Paths
    {
      regex: /(?:\.\.\/)*(?:[A-Za-z_][\w\.]*)+/,
      token: "variable-2"
    }],
    dash_comment: [{
      regex: /--\}\}/,
      pop: true,
      token: "comment"
    }, // Commented code
    {
      regex: /./,
      token: "comment"
    }],
    comment: [{
      regex: /\}\}/,
      pop: true,
      token: "comment"
    }, {
      regex: /./,
      token: "comment"
    }],
    meta: {
      blockCommentStart: "{{--",
      blockCommentEnd: "--}}"
    }
  });
  CodeMirror.defineMode("handlebars", function (config, parserConfig) {
    var handlebars = CodeMirror.getMode(config, "handlebars-tags");
    if (!parserConfig || !parserConfig.base) return handlebars;
    return CodeMirror.multiplexingMode(CodeMirror.getMode(config, parserConfig.base), {
      open: "{{",
      close: /\}\}\}?/,
      mode: handlebars,
      parseDelimiters: true
    });
  });
  CodeMirror.defineMIME("text/x-handlebars-template", "handlebars");
});
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(102)(module)))

/***/ }),

/***/ 875:
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE
(function (mod) {
  if (( false ? undefined : _typeof(exports)) == "object" && ( false ? undefined : _typeof(module)) == "object") // CommonJS
    mod(__webpack_require__(266), __webpack_require__(865));else if (true) // AMD
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(266), __webpack_require__(865)], __WEBPACK_AMD_DEFINE_FACTORY__ = (mod),
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));else // Plain browser env
    {}
})(function (CodeMirror) {
  "use strict";

  CodeMirror.defineMode("sass", function (config) {
    var cssMode = CodeMirror.mimeModes["text/css"];
    var propertyKeywords = cssMode.propertyKeywords || {},
        colorKeywords = cssMode.colorKeywords || {},
        valueKeywords = cssMode.valueKeywords || {},
        fontProperties = cssMode.fontProperties || {};

    function tokenRegexp(words) {
      return new RegExp("^" + words.join("|"));
    }

    var keywords = ["true", "false", "null", "auto"];
    var keywordsRegexp = new RegExp("^" + keywords.join("|"));
    var operators = ["\\(", "\\)", "=", ">", "<", "==", ">=", "<=", "\\+", "-", "\\!=", "/", "\\*", "%", "and", "or", "not", ";", "\\{", "\\}", ":"];
    var opRegexp = tokenRegexp(operators);
    var pseudoElementsRegexp = /^::?[a-zA-Z_][\w\-]*/;
    var word;

    function isEndLine(stream) {
      return !stream.peek() || stream.match(/\s+$/, false);
    }

    function urlTokens(stream, state) {
      var ch = stream.peek();

      if (ch === ")") {
        stream.next();
        state.tokenizer = tokenBase;
        return "operator";
      } else if (ch === "(") {
        stream.next();
        stream.eatSpace();
        return "operator";
      } else if (ch === "'" || ch === '"') {
        state.tokenizer = buildStringTokenizer(stream.next());
        return "string";
      } else {
        state.tokenizer = buildStringTokenizer(")", false);
        return "string";
      }
    }

    function comment(indentation, multiLine) {
      return function (stream, state) {
        if (stream.sol() && stream.indentation() <= indentation) {
          state.tokenizer = tokenBase;
          return tokenBase(stream, state);
        }

        if (multiLine && stream.skipTo("*/")) {
          stream.next();
          stream.next();
          state.tokenizer = tokenBase;
        } else {
          stream.skipToEnd();
        }

        return "comment";
      };
    }

    function buildStringTokenizer(quote, greedy) {
      if (greedy == null) {
        greedy = true;
      }

      function stringTokenizer(stream, state) {
        var nextChar = stream.next();
        var peekChar = stream.peek();
        var previousChar = stream.string.charAt(stream.pos - 2);
        var endingString = nextChar !== "\\" && peekChar === quote || nextChar === quote && previousChar !== "\\";

        if (endingString) {
          if (nextChar !== quote && greedy) {
            stream.next();
          }

          if (isEndLine(stream)) {
            state.cursorHalf = 0;
          }

          state.tokenizer = tokenBase;
          return "string";
        } else if (nextChar === "#" && peekChar === "{") {
          state.tokenizer = buildInterpolationTokenizer(stringTokenizer);
          stream.next();
          return "operator";
        } else {
          return "string";
        }
      }

      return stringTokenizer;
    }

    function buildInterpolationTokenizer(currentTokenizer) {
      return function (stream, state) {
        if (stream.peek() === "}") {
          stream.next();
          state.tokenizer = currentTokenizer;
          return "operator";
        } else {
          return tokenBase(stream, state);
        }
      };
    }

    function indent(state) {
      if (state.indentCount == 0) {
        state.indentCount++;
        var lastScopeOffset = state.scopes[0].offset;
        var currentOffset = lastScopeOffset + config.indentUnit;
        state.scopes.unshift({
          offset: currentOffset
        });
      }
    }

    function dedent(state) {
      if (state.scopes.length == 1) return;
      state.scopes.shift();
    }

    function tokenBase(stream, state) {
      var ch = stream.peek(); // Comment

      if (stream.match("/*")) {
        state.tokenizer = comment(stream.indentation(), true);
        return state.tokenizer(stream, state);
      }

      if (stream.match("//")) {
        state.tokenizer = comment(stream.indentation(), false);
        return state.tokenizer(stream, state);
      } // Interpolation


      if (stream.match("#{")) {
        state.tokenizer = buildInterpolationTokenizer(tokenBase);
        return "operator";
      } // Strings


      if (ch === '"' || ch === "'") {
        stream.next();
        state.tokenizer = buildStringTokenizer(ch);
        return "string";
      }

      if (!state.cursorHalf) {
        // state.cursorHalf === 0
        // first half i.e. before : for key-value pairs
        // including selectors
        if (ch === "-") {
          if (stream.match(/^-\w+-/)) {
            return "meta";
          }
        }

        if (ch === ".") {
          stream.next();

          if (stream.match(/^[\w-]+/)) {
            indent(state);
            return "qualifier";
          } else if (stream.peek() === "#") {
            indent(state);
            return "tag";
          }
        }

        if (ch === "#") {
          stream.next(); // ID selectors

          if (stream.match(/^[\w-]+/)) {
            indent(state);
            return "builtin";
          }

          if (stream.peek() === "#") {
            indent(state);
            return "tag";
          }
        } // Variables


        if (ch === "$") {
          stream.next();
          stream.eatWhile(/[\w-]/);
          return "variable-2";
        } // Numbers


        if (stream.match(/^-?[0-9\.]+/)) return "number"; // Units

        if (stream.match(/^(px|em|in)\b/)) return "unit";
        if (stream.match(keywordsRegexp)) return "keyword";

        if (stream.match(/^url/) && stream.peek() === "(") {
          state.tokenizer = urlTokens;
          return "atom";
        }

        if (ch === "=") {
          // Match shortcut mixin definition
          if (stream.match(/^=[\w-]+/)) {
            indent(state);
            return "meta";
          }
        }

        if (ch === "+") {
          // Match shortcut mixin definition
          if (stream.match(/^\+[\w-]+/)) {
            return "variable-3";
          }
        }

        if (ch === "@") {
          if (stream.match(/@extend/)) {
            if (!stream.match(/\s*[\w]/)) dedent(state);
          }
        } // Indent Directives


        if (stream.match(/^@(else if|if|media|else|for|each|while|mixin|function)/)) {
          indent(state);
          return "def";
        } // Other Directives


        if (ch === "@") {
          stream.next();
          stream.eatWhile(/[\w-]/);
          return "def";
        }

        if (stream.eatWhile(/[\w-]/)) {
          if (stream.match(/ *: *[\w-\+\$#!\("']/, false)) {
            word = stream.current().toLowerCase();
            var prop = state.prevProp + "-" + word;

            if (propertyKeywords.hasOwnProperty(prop)) {
              return "property";
            } else if (propertyKeywords.hasOwnProperty(word)) {
              state.prevProp = word;
              return "property";
            } else if (fontProperties.hasOwnProperty(word)) {
              return "property";
            }

            return "tag";
          } else if (stream.match(/ *:/, false)) {
            indent(state);
            state.cursorHalf = 1;
            state.prevProp = stream.current().toLowerCase();
            return "property";
          } else if (stream.match(/ *,/, false)) {
            return "tag";
          } else {
            indent(state);
            return "tag";
          }
        }

        if (ch === ":") {
          if (stream.match(pseudoElementsRegexp)) {
            // could be a pseudo-element
            return "variable-3";
          }

          stream.next();
          state.cursorHalf = 1;
          return "operator";
        }
      } // cursorHalf===0 ends here
      else {
          if (ch === "#") {
            stream.next(); // Hex numbers

            if (stream.match(/[0-9a-fA-F]{6}|[0-9a-fA-F]{3}/)) {
              if (isEndLine(stream)) {
                state.cursorHalf = 0;
              }

              return "number";
            }
          } // Numbers


          if (stream.match(/^-?[0-9\.]+/)) {
            if (isEndLine(stream)) {
              state.cursorHalf = 0;
            }

            return "number";
          } // Units


          if (stream.match(/^(px|em|in)\b/)) {
            if (isEndLine(stream)) {
              state.cursorHalf = 0;
            }

            return "unit";
          }

          if (stream.match(keywordsRegexp)) {
            if (isEndLine(stream)) {
              state.cursorHalf = 0;
            }

            return "keyword";
          }

          if (stream.match(/^url/) && stream.peek() === "(") {
            state.tokenizer = urlTokens;

            if (isEndLine(stream)) {
              state.cursorHalf = 0;
            }

            return "atom";
          } // Variables


          if (ch === "$") {
            stream.next();
            stream.eatWhile(/[\w-]/);

            if (isEndLine(stream)) {
              state.cursorHalf = 0;
            }

            return "variable-2";
          } // bang character for !important, !default, etc.


          if (ch === "!") {
            stream.next();
            state.cursorHalf = 0;
            return stream.match(/^[\w]+/) ? "keyword" : "operator";
          }

          if (stream.match(opRegexp)) {
            if (isEndLine(stream)) {
              state.cursorHalf = 0;
            }

            return "operator";
          } // attributes


          if (stream.eatWhile(/[\w-]/)) {
            if (isEndLine(stream)) {
              state.cursorHalf = 0;
            }

            word = stream.current().toLowerCase();

            if (valueKeywords.hasOwnProperty(word)) {
              return "atom";
            } else if (colorKeywords.hasOwnProperty(word)) {
              return "keyword";
            } else if (propertyKeywords.hasOwnProperty(word)) {
              state.prevProp = stream.current().toLowerCase();
              return "property";
            } else {
              return "tag";
            }
          } //stream.eatSpace();


          if (isEndLine(stream)) {
            state.cursorHalf = 0;
            return null;
          }
        } // else ends here


      if (stream.match(opRegexp)) return "operator"; // If we haven't returned by now, we move 1 character
      // and return an error

      stream.next();
      return null;
    }

    function tokenLexer(stream, state) {
      if (stream.sol()) state.indentCount = 0;
      var style = state.tokenizer(stream, state);
      var current = stream.current();

      if (current === "@return" || current === "}") {
        dedent(state);
      }

      if (style !== null) {
        var startOfToken = stream.pos - current.length;
        var withCurrentIndent = startOfToken + config.indentUnit * state.indentCount;
        var newScopes = [];

        for (var i = 0; i < state.scopes.length; i++) {
          var scope = state.scopes[i];
          if (scope.offset <= withCurrentIndent) newScopes.push(scope);
        }

        state.scopes = newScopes;
      }

      return style;
    }

    return {
      startState: function startState() {
        return {
          tokenizer: tokenBase,
          scopes: [{
            offset: 0,
            type: "sass"
          }],
          indentCount: 0,
          cursorHalf: 0,
          // cursor half tells us if cursor lies after (1)
          // or before (0) colon (well... more or less)
          definedVars: [],
          definedMixins: []
        };
      },
      token: function token(stream, state) {
        var style = tokenLexer(stream, state);
        state.lastToken = {
          style: style,
          content: stream.current()
        };
        return style;
      },
      indent: function indent(state) {
        return state.scopes[0].offset;
      }
    };
  }, "css");
  CodeMirror.defineMIME("text/x-sass", "sass");
});
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(102)(module)))

/***/ }),

/***/ 978:
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE
(function (mod) {
  "use strict";

  if (( false ? undefined : _typeof(exports)) === "object" && ( false ? undefined : _typeof(module)) === "object") {
    // CommonJS
    mod(__webpack_require__(266), __webpack_require__(986), __webpack_require__(864), __webpack_require__(866), __webpack_require__(870), __webpack_require__(865), __webpack_require__(875), __webpack_require__(879), __webpack_require__(878), __webpack_require__(871));
  } else if (true) {
    // AMD
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(266), __webpack_require__(986), __webpack_require__(864), __webpack_require__(866), __webpack_require__(870), __webpack_require__(865), __webpack_require__(875), __webpack_require__(879), __webpack_require__(878), __webpack_require__(871)], __WEBPACK_AMD_DEFINE_FACTORY__ = (mod),
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  } else {}
})(function (CodeMirror) {
  var tagLanguages = {
    script: [["lang", /coffee(script)?/, "coffeescript"], ["type", /^(?:text|application)\/(?:x-)?coffee(?:script)?$/, "coffeescript"], ["lang", /^babel$/, "javascript"], ["type", /^text\/babel$/, "javascript"], ["type", /^text\/ecmascript-\d+$/, "javascript"]],
    style: [["lang", /^stylus$/i, "stylus"], ["lang", /^sass$/i, "sass"], ["lang", /^less$/i, "text/x-less"], ["lang", /^scss$/i, "text/x-scss"], ["type", /^(text\/)?(x-)?styl(us)?$/i, "stylus"], ["type", /^text\/sass/i, "sass"], ["type", /^(text\/)?(x-)?scss$/i, "text/x-scss"], ["type", /^(text\/)?(x-)?less$/i, "text/x-less"]],
    template: [["lang", /^vue-template$/i, "vue"], ["lang", /^pug$/i, "pug"], ["lang", /^handlebars$/i, "handlebars"], ["type", /^(text\/)?(x-)?pug$/i, "pug"], ["type", /^text\/x-handlebars-template$/i, "handlebars"], [null, null, "vue-template"]]
  };
  CodeMirror.defineMode("vue-template", function (config, parserConfig) {
    var mustacheOverlay = {
      token: function token(stream) {
        if (stream.match(/^\{\{.*?\}\}/)) return "meta mustache";

        while (stream.next() && !stream.match("{{", false)) {}

        return null;
      }
    };
    return CodeMirror.overlayMode(CodeMirror.getMode(config, parserConfig.backdrop || "text/html"), mustacheOverlay);
  });
  CodeMirror.defineMode("vue", function (config) {
    return CodeMirror.getMode(config, {
      name: "htmlmixed",
      tags: tagLanguages
    });
  }, "htmlmixed", "xml", "javascript", "coffeescript", "css", "sass", "stylus", "pug", "handlebars");
  CodeMirror.defineMIME("script/x-vue", "vue");
  CodeMirror.defineMIME("text/x-vue", "vue");
});
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(102)(module)))

/***/ }),

/***/ 985:
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE
(function (mod) {
  if (( false ? undefined : _typeof(exports)) == "object" && ( false ? undefined : _typeof(module)) == "object") // CommonJS
    mod(__webpack_require__(266));else if (true) // AMD
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(266)], __WEBPACK_AMD_DEFINE_FACTORY__ = (mod),
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));else // Plain browser env
    {}
})(function (CodeMirror) {
  "use strict";

  CodeMirror.defineSimpleMode = function (name, states) {
    CodeMirror.defineMode(name, function (config) {
      return CodeMirror.simpleMode(config, states);
    });
  };

  CodeMirror.simpleMode = function (config, states) {
    ensureState(states, "start");
    var states_ = {},
        meta = states.meta || {},
        hasIndentation = false;

    for (var state in states) {
      if (state != meta && states.hasOwnProperty(state)) {
        var list = states_[state] = [],
            orig = states[state];

        for (var i = 0; i < orig.length; i++) {
          var data = orig[i];
          list.push(new Rule(data, states));
          if (data.indent || data.dedent) hasIndentation = true;
        }
      }
    }

    var mode = {
      startState: function startState() {
        return {
          state: "start",
          pending: null,
          local: null,
          localState: null,
          indent: hasIndentation ? [] : null
        };
      },
      copyState: function copyState(state) {
        var s = {
          state: state.state,
          pending: state.pending,
          local: state.local,
          localState: null,
          indent: state.indent && state.indent.slice(0)
        };
        if (state.localState) s.localState = CodeMirror.copyState(state.local.mode, state.localState);
        if (state.stack) s.stack = state.stack.slice(0);

        for (var pers = state.persistentStates; pers; pers = pers.next) {
          s.persistentStates = {
            mode: pers.mode,
            spec: pers.spec,
            state: pers.state == state.localState ? s.localState : CodeMirror.copyState(pers.mode, pers.state),
            next: s.persistentStates
          };
        }

        return s;
      },
      token: tokenFunction(states_, config),
      innerMode: function innerMode(state) {
        return state.local && {
          mode: state.local.mode,
          state: state.localState
        };
      },
      indent: indentFunction(states_, meta)
    };
    if (meta) for (var prop in meta) {
      if (meta.hasOwnProperty(prop)) mode[prop] = meta[prop];
    }
    return mode;
  };

  function ensureState(states, name) {
    if (!states.hasOwnProperty(name)) throw new Error("Undefined state " + name + " in simple mode");
  }

  function toRegex(val, caret) {
    if (!val) return /(?:)/;
    var flags = "";

    if (val instanceof RegExp) {
      if (val.ignoreCase) flags = "i";
      val = val.source;
    } else {
      val = String(val);
    }

    return new RegExp((caret === false ? "" : "^") + "(?:" + val + ")", flags);
  }

  function asToken(val) {
    if (!val) return null;
    if (val.apply) return val;
    if (typeof val == "string") return val.replace(/\./g, " ");
    var result = [];

    for (var i = 0; i < val.length; i++) {
      result.push(val[i] && val[i].replace(/\./g, " "));
    }

    return result;
  }

  function Rule(data, states) {
    if (data.next || data.push) ensureState(states, data.next || data.push);
    this.regex = toRegex(data.regex);
    this.token = asToken(data.token);
    this.data = data;
  }

  function tokenFunction(states, config) {
    return function (stream, state) {
      if (state.pending) {
        var pend = state.pending.shift();
        if (state.pending.length == 0) state.pending = null;
        stream.pos += pend.text.length;
        return pend.token;
      }

      if (state.local) {
        if (state.local.end && stream.match(state.local.end)) {
          var tok = state.local.endToken || null;
          state.local = state.localState = null;
          return tok;
        } else {
          var tok = state.local.mode.token(stream, state.localState),
              m;
          if (state.local.endScan && (m = state.local.endScan.exec(stream.current()))) stream.pos = stream.start + m.index;
          return tok;
        }
      }

      var curState = states[state.state];

      for (var i = 0; i < curState.length; i++) {
        var rule = curState[i];
        var matches = (!rule.data.sol || stream.sol()) && stream.match(rule.regex);

        if (matches) {
          if (rule.data.next) {
            state.state = rule.data.next;
          } else if (rule.data.push) {
            (state.stack || (state.stack = [])).push(state.state);
            state.state = rule.data.push;
          } else if (rule.data.pop && state.stack && state.stack.length) {
            state.state = state.stack.pop();
          }

          if (rule.data.mode) enterLocalMode(config, state, rule.data.mode, rule.token);
          if (rule.data.indent) state.indent.push(stream.indentation() + config.indentUnit);
          if (rule.data.dedent) state.indent.pop();
          var token = rule.token;
          if (token && token.apply) token = token(matches);

          if (matches.length > 2 && rule.token && typeof rule.token != "string") {
            state.pending = [];

            for (var j = 2; j < matches.length; j++) {
              if (matches[j]) state.pending.push({
                text: matches[j],
                token: rule.token[j - 1]
              });
            }

            stream.backUp(matches[0].length - (matches[1] ? matches[1].length : 0));
            return token[0];
          } else if (token && token.join) {
            return token[0];
          } else {
            return token;
          }
        }
      }

      stream.next();
      return null;
    };
  }

  function cmp(a, b) {
    if (a === b) return true;
    if (!a || _typeof(a) != "object" || !b || _typeof(b) != "object") return false;
    var props = 0;

    for (var prop in a) {
      if (a.hasOwnProperty(prop)) {
        if (!b.hasOwnProperty(prop) || !cmp(a[prop], b[prop])) return false;
        props++;
      }
    }

    for (var prop in b) {
      if (b.hasOwnProperty(prop)) props--;
    }

    return props == 0;
  }

  function enterLocalMode(config, state, spec, token) {
    var pers;
    if (spec.persistent) for (var p = state.persistentStates; p && !pers; p = p.next) {
      if (spec.spec ? cmp(spec.spec, p.spec) : spec.mode == p.mode) pers = p;
    }
    var mode = pers ? pers.mode : spec.mode || CodeMirror.getMode(config, spec.spec);
    var lState = pers ? pers.state : CodeMirror.startState(mode);
    if (spec.persistent && !pers) state.persistentStates = {
      mode: mode,
      spec: spec.spec,
      state: lState,
      next: state.persistentStates
    };
    state.localState = lState;
    state.local = {
      mode: mode,
      end: spec.end && toRegex(spec.end),
      endScan: spec.end && spec.forceEnd !== false && toRegex(spec.end, false),
      endToken: token && token.join ? token[token.length - 1] : token
    };
  }

  function indexOf(val, arr) {
    for (var i = 0; i < arr.length; i++) {
      if (arr[i] === val) return true;
    }
  }

  function indentFunction(states, meta) {
    return function (state, textAfter, line) {
      if (state.local && state.local.mode.indent) return state.local.mode.indent(state.localState, textAfter, line);
      if (state.indent == null || state.local || meta.dontIndentStates && indexOf(state.state, meta.dontIndentStates) > -1) return CodeMirror.Pass;
      var pos = state.indent.length - 1,
          rules = states[state.state];

      scan: for (;;) {
        for (var i = 0; i < rules.length; i++) {
          var rule = rules[i];

          if (rule.data.dedent && rule.data.dedentIfLineStart !== false) {
            var m = rule.regex.exec(textAfter);

            if (m && m[0]) {
              pos--;
              if (rule.next || rule.push) rules = states[rule.next || rule.push];
              textAfter = textAfter.slice(m[0].length);
              continue scan;
            }
          }
        }

        break;
      }

      return pos < 0 ? 0 : state.indent[pos];
    };
  }
});
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(102)(module)))

/***/ }),

/***/ 986:
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE
// Utility function that allows modes to be combined. The mode given
// as the base argument takes care of most of the normal mode
// functionality, but a second (typically simple) mode is used, which
// can override the style of text. Both modes get to parse all of the
// text, but when both assign a non-null style to a piece of code, the
// overlay wins, unless the combine argument was true and not overridden,
// or state.overlay.combineTokens was true, in which case the styles are
// combined.
(function (mod) {
  if (( false ? undefined : _typeof(exports)) == "object" && ( false ? undefined : _typeof(module)) == "object") // CommonJS
    mod(__webpack_require__(266));else if (true) // AMD
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(266)], __WEBPACK_AMD_DEFINE_FACTORY__ = (mod),
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));else // Plain browser env
    {}
})(function (CodeMirror) {
  "use strict";

  CodeMirror.overlayMode = function (base, overlay, combine) {
    return {
      startState: function startState() {
        return {
          base: CodeMirror.startState(base),
          overlay: CodeMirror.startState(overlay),
          basePos: 0,
          baseCur: null,
          overlayPos: 0,
          overlayCur: null,
          streamSeen: null
        };
      },
      copyState: function copyState(state) {
        return {
          base: CodeMirror.copyState(base, state.base),
          overlay: CodeMirror.copyState(overlay, state.overlay),
          basePos: state.basePos,
          baseCur: null,
          overlayPos: state.overlayPos,
          overlayCur: null
        };
      },
      token: function token(stream, state) {
        if (stream != state.streamSeen || Math.min(state.basePos, state.overlayPos) < stream.start) {
          state.streamSeen = stream;
          state.basePos = state.overlayPos = stream.start;
        }

        if (stream.start == state.basePos) {
          state.baseCur = base.token(stream, state.base);
          state.basePos = stream.pos;
        }

        if (stream.start == state.overlayPos) {
          stream.pos = stream.start;
          state.overlayCur = overlay.token(stream, state.overlay);
          state.overlayPos = stream.pos;
        }

        stream.pos = Math.min(state.basePos, state.overlayPos); // state.overlay.combineTokens always takes precedence over combine,
        // unless set to null

        if (state.overlayCur == null) return state.baseCur;else if (state.baseCur != null && state.overlay.combineTokens || combine && state.overlay.combineTokens == null) return state.baseCur + " " + state.overlayCur;else return state.overlayCur;
      },
      indent: base.indent && function (state, textAfter, line) {
        return base.indent(state.base, textAfter, line);
      },
      electricChars: base.electricChars,
      innerMode: function innerMode(state) {
        return {
          state: state.base,
          mode: base
        };
      },
      blankLine: function blankLine(state) {
        var baseToken, overlayToken;
        if (base.blankLine) baseToken = base.blankLine(state.base);
        if (overlay.blankLine) overlayToken = overlay.blankLine(state.overlay);
        return overlayToken == null ? baseToken : combine && baseToken != null ? baseToken + " " + overlayToken : overlayToken;
      }
    };
  };
});
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(102)(module)))

/***/ }),

/***/ 987:
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE
(function (mod) {
  if (( false ? undefined : _typeof(exports)) == "object" && ( false ? undefined : _typeof(module)) == "object") // CommonJS
    mod(__webpack_require__(266));else if (true) // AMD
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(266)], __WEBPACK_AMD_DEFINE_FACTORY__ = (mod),
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));else // Plain browser env
    {}
})(function (CodeMirror) {
  "use strict";

  CodeMirror.multiplexingMode = function (outer
  /*, others */
  ) {
    // Others should be {open, close, mode [, delimStyle] [, innerStyle]} objects
    var others = Array.prototype.slice.call(arguments, 1);

    function indexOf(string, pattern, from, returnEnd) {
      if (typeof pattern == "string") {
        var found = string.indexOf(pattern, from);
        return returnEnd && found > -1 ? found + pattern.length : found;
      }

      var m = pattern.exec(from ? string.slice(from) : string);
      return m ? m.index + from + (returnEnd ? m[0].length : 0) : -1;
    }

    return {
      startState: function startState() {
        return {
          outer: CodeMirror.startState(outer),
          innerActive: null,
          inner: null
        };
      },
      copyState: function copyState(state) {
        return {
          outer: CodeMirror.copyState(outer, state.outer),
          innerActive: state.innerActive,
          inner: state.innerActive && CodeMirror.copyState(state.innerActive.mode, state.inner)
        };
      },
      token: function token(stream, state) {
        if (!state.innerActive) {
          var cutOff = Infinity,
              oldContent = stream.string;

          for (var i = 0; i < others.length; ++i) {
            var other = others[i];
            var found = indexOf(oldContent, other.open, stream.pos);

            if (found == stream.pos) {
              if (!other.parseDelimiters) stream.match(other.open);
              state.innerActive = other; // Get the outer indent, making sure to handle CodeMirror.Pass

              var outerIndent = 0;

              if (outer.indent) {
                var possibleOuterIndent = outer.indent(state.outer, "", "");
                if (possibleOuterIndent !== CodeMirror.Pass) outerIndent = possibleOuterIndent;
              }

              state.inner = CodeMirror.startState(other.mode, outerIndent);
              return other.delimStyle && other.delimStyle + " " + other.delimStyle + "-open";
            } else if (found != -1 && found < cutOff) {
              cutOff = found;
            }
          }

          if (cutOff != Infinity) stream.string = oldContent.slice(0, cutOff);
          var outerToken = outer.token(stream, state.outer);
          if (cutOff != Infinity) stream.string = oldContent;
          return outerToken;
        } else {
          var curInner = state.innerActive,
              oldContent = stream.string;

          if (!curInner.close && stream.sol()) {
            state.innerActive = state.inner = null;
            return this.token(stream, state);
          }

          var found = curInner.close ? indexOf(oldContent, curInner.close, stream.pos, curInner.parseDelimiters) : -1;

          if (found == stream.pos && !curInner.parseDelimiters) {
            stream.match(curInner.close);
            state.innerActive = state.inner = null;
            return curInner.delimStyle && curInner.delimStyle + " " + curInner.delimStyle + "-close";
          }

          if (found > -1) stream.string = oldContent.slice(0, found);
          var innerToken = curInner.mode.token(stream, state.inner);
          if (found > -1) stream.string = oldContent;
          if (found == stream.pos && curInner.parseDelimiters) state.innerActive = state.inner = null;

          if (curInner.innerStyle) {
            if (innerToken) innerToken = innerToken + " " + curInner.innerStyle;else innerToken = curInner.innerStyle;
          }

          return innerToken;
        }
      },
      indent: function indent(state, textAfter, line) {
        var mode = state.innerActive ? state.innerActive.mode : outer;
        if (!mode.indent) return CodeMirror.Pass;
        return mode.indent(state.innerActive ? state.inner : state.outer, textAfter, line);
      },
      blankLine: function blankLine(state) {
        var mode = state.innerActive ? state.innerActive.mode : outer;

        if (mode.blankLine) {
          mode.blankLine(state.innerActive ? state.inner : state.outer);
        }

        if (!state.innerActive) {
          for (var i = 0; i < others.length; ++i) {
            var other = others[i];

            if (other.open === "\n") {
              state.innerActive = other;
              state.inner = CodeMirror.startState(other.mode, mode.indent ? mode.indent(state.outer, "", "") : 0);
            }
          }
        } else if (state.innerActive.close === "\n") {
          state.innerActive = state.inner = null;
        }
      },
      electricChars: outer.electricChars,
      innerMode: function innerMode(state) {
        return state.inner ? {
          state: state.inner,
          mode: state.innerActive.mode
        } : {
          state: state.outer,
          mode: outer
        };
      }
    };
  };
});
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(102)(module)))

/***/ })

}]);